{"version":3,"file":"main.6d14e36bef5511a9.js","mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["en.js","./apps/bems-cloud/src/app/api.interceptor.ts","./apps/bems-cloud/src/app/app.component.ts","./apps/bems-cloud/src/app/app.component.html","./apps/bems-cloud/src/app/app.config.ts","./apps/bems-cloud/src/app/app.routes.ts","./apps/bems-cloud/src/app/bems/api/auth/auth-api.service.ts","./apps/bems-cloud/src/app/bems/api/auth/index.ts","./apps/bems-cloud/src/app/bems/api/auth/io/logout.io.ts","./apps/bems-cloud/src/app/bems/api/auth/io/refresh-token.io.ts","./apps/bems-cloud/src/app/bems/api/bems-api.service.ts","./apps/bems-cloud/src/app/bems/api/bems-api.types.ts","./apps/bems-cloud/src/app/bems/api/bems-api.utils.ts","./apps/bems-cloud/src/app/bems/api/devices/devices-api.services.ts","./apps/bems-cloud/src/app/bems/api/devices/index.ts","./apps/bems-cloud/src/app/bems/api/devices/io/advanced-peak-shaving-history.io.ts","./apps/bems-cloud/src/app/bems/api/devices/io/device-settings.io.ts","./apps/bems-cloud/src/app/bems/api/devices/io/device-user-role.io.ts","./apps/bems-cloud/src/app/bems/api/devices/io/device.io.ts","./apps/bems-cloud/src/app/bems/api/devices/io/grid-settings.io.ts","./apps/bems-cloud/src/app/bems/api/devices/io/value-trend-data.io.ts","./apps/bems-cloud/src/app/bems/api/devices/io/value-trend.io.ts","./apps/bems-cloud/src/app/bems/api/devices/io/value-trends.io.ts","./apps/bems-cloud/src/app/bems/api/devices/io/weather.io.ts","./apps/bems-cloud/src/app/bems/api/devices/value-trend-api.services.ts","./apps/bems-cloud/src/app/bems/api/internals/io/country.io.ts","./apps/bems-cloud/src/app/bems/api/internals/io/currencies.io.ts","./apps/bems-cloud/src/app/bems/api/internals/io/index.ts","./apps/bems-cloud/src/app/bems/api/internals/io/postal-code.io.ts","./apps/bems-cloud/src/app/bems/api/notifications/index.ts","./apps/bems-cloud/src/app/bems/api/notifications/io/notification-count.io.ts","./apps/bems-cloud/src/app/bems/api/notifications/io/notification.io.ts","./apps/bems-cloud/src/app/bems/api/notifications/notifications-api.service.ts","./apps/bems-cloud/src/app/bems/api/users/index.ts","./apps/bems-cloud/src/app/bems/api/users/io/audit-log-file-name.io.ts","./apps/bems-cloud/src/app/bems/api/users/io/user-file-name.io.ts","./apps/bems-cloud/src/app/bems/api/users/io/user-profile.io.ts","./apps/bems-cloud/src/app/bems/api/users/io/user.io.ts","./apps/bems-cloud/src/app/bems/api/users/users-api.service.ts","./apps/bems-cloud/src/app/bems/core/const/duration.ts","./apps/bems-cloud/src/app/bems/core/const/index.ts","./apps/bems-cloud/src/app/bems/core/const/navigation.ts","./apps/bems-cloud/src/app/bems/core/guards/auth.guard.ts","./apps/bems-cloud/src/app/bems/core/guards/current-device.guard.ts","./apps/bems-cloud/src/app/bems/core/guards/current-user.guard.ts","./apps/bems-cloud/src/app/bems/core/guards/index.ts","./apps/bems-cloud/src/app/bems/core/services/index.ts","./apps/bems-cloud/src/app/bems/core/services/navigation.service.ts","./apps/bems-cloud/src/app/bems/core/utils/animation.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/assets.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/bar-charts.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/charts.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/eula.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/index.ts","./apps/bems-cloud/src/app/bems/core/utils/languages.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/line-charts.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/navigation.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/roles.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/route-utils.ts","./apps/bems-cloud/src/app/bems/core/utils/scheduler.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/units.utils.ts","./apps/bems-cloud/src/app/bems/core/utils/weather.utils.ts","./apps/bems-cloud/src/app/bems/models/assets/asset-category.ts","./apps/bems-cloud/src/app/bems/models/assets/asset-data.ts","./apps/bems-cloud/src/app/bems/models/assets/asset-metric.ts","./apps/bems-cloud/src/app/bems/models/assets/enums/asset-category-type-id.ts","./apps/bems-cloud/src/app/bems/models/assets/enums/asset-category-type.ts","./apps/bems-cloud/src/app/bems/models/assets/enums/asset-status.ts","./apps/bems-cloud/src/app/bems/models/assets/enums/ev-status.ts","./apps/bems-cloud/src/app/bems/models/assets/ev-charger/ev-charger-unit-asset.ts","./apps/bems-cloud/src/app/bems/models/assets/ev-charger/ev-charger-unit-details.ts","./apps/bems-cloud/src/app/bems/models/assets/index.ts","./apps/bems-cloud/src/app/bems/models/assets/list-asset.ts","./apps/bems-cloud/src/app/bems/models/assets/power-meter/phases.ts","./apps/bems-cloud/src/app/bems/models/assets/power-meter/power-meter-details.ts","./apps/bems-cloud/src/app/bems/models/assets/power-meter/power-meter-top-metrics.ts","./apps/bems-cloud/src/app/bems/models/assets/power-meter/power-meter-unit-asset.ts","./apps/bems-cloud/src/app/bems/models/assets/solar-panel/solar-panel-asset.ts","./apps/bems-cloud/src/app/bems/models/assets/solar-panel/solar-panel-details.ts","./apps/bems-cloud/src/app/bems/models/assets/storage-unit/storage-unit-asset.ts","./apps/bems-cloud/src/app/bems/models/assets/storage-unit/storage-unit-details.ts","./apps/bems-cloud/src/app/bems/models/assets/total-and-phases.ts","./apps/bems-cloud/src/app/bems/models/charts/chart-data-field.ts","./apps/bems-cloud/src/app/bems/models/charts/chart-data-limit.ts","./apps/bems-cloud/src/app/bems/models/charts/chart-data-value.ts","./apps/bems-cloud/src/app/bems/models/charts/chart-data.ts","./apps/bems-cloud/src/app/bems/models/charts/chart.ts","./apps/bems-cloud/src/app/bems/models/charts/charts.ts","./apps/bems-cloud/src/app/bems/models/charts/enums/chart-data-field-step.ts","./apps/bems-cloud/src/app/bems/models/charts/enums/chart-data-field-unit.ts","./apps/bems-cloud/src/app/bems/models/charts/enums/chart-data-limit-type.ts","./apps/bems-cloud/src/app/bems/models/charts/enums/chart-type.ts","./apps/bems-cloud/src/app/bems/models/charts/enums/data-type.ts","./apps/bems-cloud/src/app/bems/models/charts/enums/measure-type.ts","./apps/bems-cloud/src/app/bems/models/charts/index.ts","./apps/bems-cloud/src/app/bems/models/charts/solar-radiation.ts","./apps/bems-cloud/src/app/bems/models/dashboard/energy-point-property.ts","./apps/bems-cloud/src/app/bems/models/dashboard/energy-point.ts","./apps/bems-cloud/src/app/bems/models/dashboard/enums/energy-point-connection.ts","./apps/bems-cloud/src/app/bems/models/dashboard/enums/energy-point-type.ts","./apps/bems-cloud/src/app/bems/models/dashboard/enums/energy-point-unit.ts","./apps/bems-cloud/src/app/bems/models/dashboard/enums/trend-type.ts","./apps/bems-cloud/src/app/bems/models/dashboard/enums/value-trend-type.ts","./apps/bems-cloud/src/app/bems/models/dashboard/index.ts","./apps/bems-cloud/src/app/bems/models/dashboard/value-trend-data.ts","./apps/bems-cloud/src/app/bems/models/dashboard/value-trend.ts","./apps/bems-cloud/src/app/bems/models/dashboard/value-trends.ts","./apps/bems-cloud/src/app/bems/models/devices/advanced-peak-shaving-configuration.ts","./apps/bems-cloud/src/app/bems/models/devices/advanced-peak-shaving-history.ts","./apps/bems-cloud/src/app/bems/models/devices/device-settings.ts","./apps/bems-cloud/src/app/bems/models/devices/device.ts","./apps/bems-cloud/src/app/bems/models/devices/enums/weather-code.ts","./apps/bems-cloud/src/app/bems/models/devices/grid-settings.ts","./apps/bems-cloud/src/app/bems/models/devices/index.ts","./apps/bems-cloud/src/app/bems/models/devices/weather.ts","./apps/bems-cloud/src/app/bems/models/internals/country.ts","./apps/bems-cloud/src/app/bems/models/internals/currency.ts","./apps/bems-cloud/src/app/bems/models/internals/index.ts","./apps/bems-cloud/src/app/bems/models/internals/month.ts","./apps/bems-cloud/src/app/bems/models/internals/postal-code.ts","./apps/bems-cloud/src/app/bems/models/notifications/enums/notification-severity-level.ts","./apps/bems-cloud/src/app/bems/models/notifications/index.ts","./apps/bems-cloud/src/app/bems/models/notifications/notification-count.ts","./apps/bems-cloud/src/app/bems/models/notifications/notification.ts","./apps/bems-cloud/src/app/bems/models/notifications/read-notifications.ts","./apps/bems-cloud/src/app/bems/models/roles/index.ts","./apps/bems-cloud/src/app/bems/models/roles/role.ts","./apps/bems-cloud/src/app/bems/models/scheduler/index.ts","./apps/bems-cloud/src/app/bems/models/scheduler/scheduler-event.ts","./apps/bems-cloud/src/app/bems/models/scheduler/scheduler-events-list.ts","./apps/bems-cloud/src/app/bems/models/users/change-password.ts","./apps/bems-cloud/src/app/bems/models/users/enums/date-format.ts","./apps/bems-cloud/src/app/bems/models/users/enums/language.ts","./apps/bems-cloud/src/app/bems/models/users/index.ts","./apps/bems-cloud/src/app/bems/models/users/language-option.ts","./apps/bems-cloud/src/app/bems/models/users/user.ts","./apps/bems-cloud/src/app/global-error.handler.ts","./apps/bems-cloud/src/app/login-portal/api/auth/auth-api.service.ts","./apps/bems-cloud/src/app/login-portal/api/auth/index.ts","./apps/bems-cloud/src/app/login-portal/api/auth/io/index.ts","./apps/bems-cloud/src/app/login-portal/api/auth/io/login-response.io.ts","./apps/bems-cloud/src/app/login-portal/api/auth/io/login.io.ts","./apps/bems-cloud/src/app/login-portal/api/login-portal-api.service.ts","./apps/bems-cloud/src/app/login-portal/api/login-portal-api.types.ts","./apps/bems-cloud/src/app/login-portal/core/const/index.ts","./apps/bems-cloud/src/app/login-portal/core/const/navigation.ts","./apps/bems-cloud/src/app/login-portal/core/path-location-strategy.ts","./apps/bems-cloud/src/app/store/auth/auth.actions.ts","./apps/bems-cloud/src/app/store/auth/auth.const.ts","./apps/bems-cloud/src/app/store/auth/auth.effects.ts","./apps/bems-cloud/src/app/store/auth/auth.reducers.ts","./apps/bems-cloud/src/app/store/auth/auth.selectors.ts","./apps/bems-cloud/src/app/store/auth/auth.service.ts","./apps/bems-cloud/src/app/store/auth/auth.state.ts","./apps/bems-cloud/src/app/store/auth/index.ts","./apps/bems-cloud/src/app/store/current-device/current-device.actions.ts","./apps/bems-cloud/src/app/store/current-device/current-device.effects.ts","./apps/bems-cloud/src/app/store/current-device/current-device.reducers.ts","./apps/bems-cloud/src/app/store/current-device/current-device.selectors.ts","./apps/bems-cloud/src/app/store/current-device/current-device.service.ts","./apps/bems-cloud/src/app/store/current-device/current-device.state.ts","./apps/bems-cloud/src/app/store/current-device/index.ts","./apps/bems-cloud/src/app/store/current-user/current-user.actions.ts","./apps/bems-cloud/src/app/store/current-user/current-user.effects.ts","./apps/bems-cloud/src/app/store/current-user/current-user.reducers.ts","./apps/bems-cloud/src/app/store/current-user/current-user.selectors.ts","./apps/bems-cloud/src/app/store/current-user/current-user.service.ts","./apps/bems-cloud/src/app/store/current-user/current-user.state.ts","./apps/bems-cloud/src/app/store/current-user/index.ts","./apps/bems-cloud/src/app/store/index.ts","./apps/bems-cloud/src/app/store/layout/index.ts","./apps/bems-cloud/src/app/store/layout/layout.actions.ts","./apps/bems-cloud/src/app/store/layout/layout.effects.ts","./apps/bems-cloud/src/app/store/layout/layout.reducer.ts","./apps/bems-cloud/src/app/store/layout/layout.selectors.ts","./apps/bems-cloud/src/app/store/layout/layout.service.ts","./apps/bems-cloud/src/app/store/layout/layout.state.ts","./apps/bems-cloud/src/app/store/notifications/index.ts","./apps/bems-cloud/src/app/store/notifications/notifications.actions.ts","./apps/bems-cloud/src/app/store/notifications/notifications.effects.ts","./apps/bems-cloud/src/app/store/notifications/notifications.reducers.ts","./apps/bems-cloud/src/app/store/notifications/notifications.selectors.ts","./apps/bems-cloud/src/app/store/notifications/notifications.service.ts","./apps/bems-cloud/src/app/store/notifications/notifications.state.ts","./apps/bems-cloud/src/app/store/router/index.ts","./apps/bems-cloud/src/app/store/router/router.effects.ts","./apps/bems-cloud/src/app/store/store.reducers.ts","./apps/bems-cloud/src/environments/environment.dev.ts","./apps/bems-cloud/src/i18n/index.ts","./apps/bems-cloud/src/i18n/messages.ts","./apps/bems-cloud/src/main.ts","./libs/api/src/lib/api.types.ts","./libs/api/src/lib/api.utils.ts","./libs/api/src/lib/index.ts","./libs/api/src/lib/ip-info-api.service.ts","./libs/api/src/lib/ip-stack-api.service.ts","./libs/core/src/lib/date/date-utils.ts","./libs/core/src/lib/date/index.ts","./libs/core/src/lib/enum/enum-utils.ts","./libs/core/src/lib/enum/index.ts","./libs/core/src/lib/is-not-nil.ts","./libs/core/src/lib/math/decimal.ts","./libs/core/src/lib/math/index.ts","./libs/core/src/lib/math/power.ts","./libs/core/src/lib/ngrx/action-name-factory.ts","./libs/core/src/lib/ngrx/empty-action.ts","./libs/core/src/lib/ngrx/index.ts","./libs/core/src/lib/ngrx/no-dispatch.ts","./libs/core/src/lib/ngrx/payload.ts","./libs/core/src/lib/rxjs/filter-nil.ts","./libs/core/src/lib/tracking/event.ts","./libs/core/src/lib/tracking/index.ts","./libs/core/src/lib/tracking/tracking.module.ts","./libs/core/src/lib/tracking/tracking.service.mock.ts","./libs/core/src/lib/tracking/tracking.service.ts","./libs/design-system/src/index.ts","./libs/design-system/src/lib/brand.ts","./libs/design-system/src/lib/image.ts","./libs/design-system/src/lib/logo.ts","./libs/layout/src/lib/loading/index.ts","./libs/layout/src/lib/loading/loading.component.ts","./libs/layout/src/lib/loading/loading.component.html","./libs/layout/src/lib/loading/loading.types.ts","./libs/model/src/lib/address.ts","./libs/model/src/lib/connector-type.ts","./libs/model/src/lib/coordinates.ts","./libs/model/src/lib/date-format.ts","./libs/model/src/lib/day-of-week.ts","./libs/model/src/lib/evse-status.ts","./libs/model/src/lib/file-extension.ts","./libs/model/src/lib/file-size.ts","./libs/model/src/lib/form-model.ts","./libs/model/src/lib/index.ts","./libs/model/src/lib/ip-info.ts","./libs/model/src/lib/language-code.ts","./libs/model/src/lib/multi-language.ts","./libs/model/src/lib/nil.ts","./libs/model/src/lib/number-format.ts","./libs/model/src/lib/ocpp-security-profile.ts","./libs/model/src/lib/plug-type.ts","./libs/model/src/lib/temperature.ts","./libs/model/src/lib/with-display-name.ts","./libs/model/src/lib/with-embedded.ts","./libs/model/src/lib/with-id.ts","./libs/model/src/lib/with-links.ts","./libs/ui/src/lib/action/action.component.ts","./libs/ui/src/lib/action/action.component.html","./libs/ui/src/lib/action/action.types.ts","./libs/ui/src/lib/action/action.utils.ts","./libs/ui/src/lib/action/container/action-container.component.ts","./libs/ui/src/lib/action/container/action-container.component.html","./libs/ui/src/lib/action/index.ts","./libs/ui/src/lib/action/menu/action-menu.component.ts","./libs/ui/src/lib/action/menu/action-menu.component.html","./libs/ui/src/lib/card/card.component.ts","./libs/ui/src/lib/card/card.component.html","./libs/ui/src/lib/card/index.ts","./libs/ui/src/lib/chart/chart.types.ts","./libs/ui/src/lib/chart/index.ts","./libs/ui/src/lib/checkbox/checkbox.component.ts","./libs/ui/src/lib/checkbox/checkbox.component.html","./libs/ui/src/lib/checkbox/index.ts","./libs/ui/src/lib/cookie-consent/cookie-consent.component.ts","./libs/ui/src/lib/cookie-consent/cookie-consent.component.html","./libs/ui/src/lib/cookie-consent/cookie-consent.module.ts","./libs/ui/src/lib/cookie-consent/cookie-consent.service.ts","./libs/ui/src/lib/cookie-consent/cookie-consent.types.ts","./libs/ui/src/lib/cookie-consent/index.ts","./libs/ui/src/lib/dialog/dialog.component.ts","./libs/ui/src/lib/dialog/dialog.component.html","./libs/ui/src/lib/dialog/dialog.module.ts","./libs/ui/src/lib/dialog/dialog.service.ts","./libs/ui/src/lib/dialog/dialog.types.ts","./libs/ui/src/lib/dialog/dialog.utils.ts","./libs/ui/src/lib/dialog/index.ts","./libs/ui/src/lib/fab-icon/fab-icon.component.ts","./libs/ui/src/lib/fab-icon/fab-icon.component.html","./libs/ui/src/lib/fab-icon/fab-icon.types.ts","./libs/ui/src/lib/fab-icon/index.ts","./libs/ui/src/lib/form/form-field.component.ts","./libs/ui/src/lib/form/form.component.ts","./libs/ui/src/lib/form/index.ts","./libs/ui/src/lib/icon/icon.component.ts","./libs/ui/src/lib/icon/icon.component.html","./libs/ui/src/lib/icon/icon.types.ts","./libs/ui/src/lib/icon/index.ts","./libs/ui/src/lib/image/image.component.ts","./libs/ui/src/lib/image/image.component.html","./libs/ui/src/lib/image/image.module.ts","./libs/ui/src/lib/image/index.ts","./libs/ui/src/lib/language/index.ts","./libs/ui/src/lib/language/language-utils.ts","./libs/ui/src/lib/language/language.directive.ts","./libs/ui/src/lib/language/language.module.ts","./libs/ui/src/lib/language/language.service.ts","./libs/ui/src/lib/language/language.types.ts","./libs/ui/src/lib/list-item/index.ts","./libs/ui/src/lib/list-item/list-item-tag/list-item-tag.component.ts","./libs/ui/src/lib/list-item/list-item-tag/list-item-tag.component.html","./libs/ui/src/lib/list-item/list-item.component.ts","./libs/ui/src/lib/list-item/list-item.component.html","./libs/ui/src/lib/list-item/list-item.types.ts","./libs/ui/src/lib/list-item/separator/list-item-separator.component.ts","./libs/ui/src/lib/lottie-animation/index.ts","./libs/ui/src/lib/lottie-animation/lottie-animation.component.ts","./libs/ui/src/lib/lottie-animation/lottie-animation.component.html","./libs/ui/src/lib/lottie-animation/lottie-animation.provider.ts","./libs/ui/src/lib/notification/index.ts","./libs/ui/src/lib/notification/notification.component.ts","./libs/ui/src/lib/notification/notification.component.html","./libs/ui/src/lib/notification/notification.service.ts","./libs/ui/src/lib/notification/notification.types.ts","./libs/ui/src/lib/progress-spinner/index.ts","./libs/ui/src/lib/progress-spinner/progress-spinner.component.ts","./libs/ui/src/lib/progress-spinner/progress-spinner.component.html","./libs/ui/src/lib/progress-spinner/progress-spinner.types.ts","./libs/ui/src/lib/save-trap/index.ts","./libs/ui/src/lib/save-trap/save-trap.component.ts","./libs/ui/src/lib/save-trap/save-trap.guard.ts","./libs/ui/src/lib/save-trap/save-trap.provider.ts","./libs/ui/src/lib/save-trap/save-trap.service.ts","./libs/ui/src/lib/time-line/index.ts","./libs/ui/src/lib/time-line/time-line.component.ts","./libs/ui/src/lib/time-line/time-line.component.html","./libs/ui/src/lib/time-line/time-line.provider.ts","./libs/ui/src/lib/time-line/time-line.types.ts","./libs/ui/src/lib/tooltip/focus-tooltip.directive.ts","./libs/ui/src/lib/tooltip/index.ts","./libs/ui/src/lib/tooltip/tooltip.component.ts","./libs/ui/src/lib/tooltip/tooltip.component.html","./libs/ui/src/lib/tooltip/tooltip.directive.ts","./libs/ui/src/lib/tooltip/tooltip.module.ts","./libs/ui/src/lib/tooltip/tooltip.types.ts","./libs/ui/src/lib/tooltip/tooltip.utils.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["\"use strict\";(function(global,_global$ng,_global$ng2,_global$ng2$common,_global$ng$common,_global$ng$common$loc){(_global$ng=global.ng)!==null&&_global$ng!==void 0?_global$ng:global.ng={};(_global$ng2$common=(_global$ng2=global.ng).common)!==null&&_global$ng2$common!==void 0?_global$ng2$common:_global$ng2.common={};(_global$ng$common$loc=(_global$ng$common=global.ng.common).locales)!==null&&_global$ng$common$loc!==void 0?_global$ng$common$loc:_global$ng$common.locales={};const u=undefined;function plural(val){const n=val,i=Math.floor(Math.abs(val)),v=val.toString().replace(/^[^.]*\\.?/,\"\").length;if(i===1&&v===0)return 1;return 5}global.ng.common.locales[\"en\"]=[\"en\",[[\"a\",\"p\"],[\"AM\",\"PM\"],u],[[\"AM\",\"PM\"],u,u],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],u,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],u,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",u,\"{1} 'at' {0}\",u],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xD7\",\"\\u2030\",\"\\u221E\",\"NaN\",\":\"],[\"#,##0.###\",\"#,##0%\",\"\\xA4#,##0.00\",\"#E0\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",plural,[[[\"mi\",\"n\",\"in the morning\",\"in the afternoon\",\"in the evening\",\"at night\"],[\"midnight\",\"noon\",\"in the morning\",\"in the afternoon\",\"in the evening\",\"at night\"],u],[[\"midnight\",\"noon\",\"morning\",\"afternoon\",\"evening\",\"night\"],u,u],[\"00:00\",\"12:00\",[\"06:00\",\"12:00\"],[\"12:00\",\"18:00\"],[\"18:00\",\"21:00\"],[\"21:00\",\"06:00\"]]]]})(globalThis);","import { HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { environment } from '@env/bems-cloud/environment';\nimport { mergeMap, take } from 'rxjs';\n\nimport { AuthService } from './store/auth';\n\nexport const apiInterceptor: HttpInterceptorFn = (request, next) => {\n const authService = inject(AuthService);\n\n if (request.url.startsWith(environment.urls.api)) {\n return authService.auth$.pipe(\n take(1),\n mergeMap((auth) => {\n const headers = request.headers.set(\n 'X-CSRF-TOKEN',\n `${auth?.csrfToken}`,\n );\n\n return next(\n request.clone({\n headers,\n }),\n );\n }),\n );\n }\n\n return next(request);\n};\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n OnInit,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { RouterModule } from '@angular/router';\nimport { isNotNil } from '@core/is-not-nil';\nimport { filterNil } from '@core/rxjs/filter-nil';\nimport { TrackingService } from '@core/tracking';\nimport { LoadingComponent } from '@layout/loading';\nimport { Nil } from '@model';\nimport {\n CookieConsent,\n CookieConsentComponent,\n CookieConsentMessages,\n CookieConsentPosition,\n CookieConsentService,\n} from '@ui/cookie-consent';\nimport { SaveTrapComponent } from '@ui/save-trap';\nimport { filter, map, mergeMap, take, tap } from 'rxjs';\nimport { MESSAGES } from '../i18n/messages';\nimport { checkUrlMatch } from './bems/core/utils';\nimport { User } from './bems/models/users';\nimport { AUTH_URL_SEGMENT, LOGIN_URL_SEGMENT } from './login-portal/core/const';\nimport { AuthService } from './store/auth';\nimport { CurrentUserService } from './store/current-user';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CookieConsentComponent,\n LoadingComponent,\n RouterModule,\n SaveTrapComponent,\n ],\n})\nexport class AppComponent implements OnInit, AfterViewInit {\n public constructor(\n private authService: AuthService,\n private currentUserService: CurrentUserService,\n private trackingService: TrackingService,\n private cookieConsentService: CookieConsentService,\n ) {}\n\n private currentUser$ = this.currentUserService.currentUser$;\n\n public currentUser = toSignal(this.currentUser$);\n\n public cookieConsentPosition = CookieConsentPosition.BottomRight;\n\n public cookieConsentMessages: CookieConsentMessages =\n MESSAGES.app.cookieConsent;\n\n public cookieConsents: CookieConsent[] = [\n {\n id: 'analytics',\n name: MESSAGES.app.cookieConsent.analytics,\n accepted: true,\n },\n ];\n\n public cookiesNotAccepted$ = this.currentUser$.pipe(\n filterNil(),\n mergeMap((currentUser) => {\n return this.cookieConsentService.hasConsentObservable(\n this.cookieConsents,\n currentUser.id,\n );\n }),\n map((accepted) => {\n return !accepted;\n }),\n );\n\n public analyticsCookiesAccepted$ = this.currentUser$.pipe(\n filterNil(),\n mergeMap((currentUser) => {\n return this.cookieConsentService.getCookieValueObservable(\n this.cookieConsents[0],\n currentUser.id,\n );\n }),\n );\n\n public ngOnInit(): void {\n this.analyticsCookiesAccepted$\n .pipe(\n filter(Boolean),\n take(1),\n tap(() => {\n this.trackingService.initialize();\n }),\n )\n .subscribe();\n }\n\n public ngAfterViewInit(): void {\n this.currentUserService.fetchCurrentUser();\n\n // TODO: find a better solution to detect the login application.\n if (!checkUrlMatch([LOGIN_URL_SEGMENT, AUTH_URL_SEGMENT])) {\n this.authService.triggerRefershTokenMechanism();\n }\n }\n\n public onAcceptCookies(consents: CookieConsent[], currentUser: User | Nil) {\n if (isNotNil(currentUser)) {\n this.cookieConsentService.saveConsent(consents, currentUser.id);\n }\n }\n}\n","\n\n\n\n\n\n@if (cookiesNotAccepted$ | async) {\n \n}\n","import { LocationStrategy } from '@angular/common';\nimport { provideHttpClient, withInterceptors } from '@angular/common/http';\nimport {\n ApplicationConfig,\n ErrorHandler,\n importProvidersFrom,\n} from '@angular/core';\nimport { provideAnimations } from '@angular/platform-browser/animations';\nimport { provideRouter, withRouterConfig } from '@angular/router';\nimport { TrackingModule } from '@core/tracking';\nimport { environment } from '@env/bems-cloud/environment';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreRouterConnectingModule } from '@ngrx/router-store';\nimport { StoreModule } from '@ngrx/store';\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\nimport { AuthEffects } from '@store/bems-cloud/auth';\nimport { CurrentDeviceEffects } from '@store/bems-cloud/current-device';\nimport { CurrentUserEffects } from '@store/bems-cloud/current-user';\nimport { NotificationsEffects } from '@store/bems-cloud/notifications';\nimport { StoreRouterEffects } from '@store/bems-cloud/router';\nimport { CookieConsentService } from '@ui/cookie-consent';\nimport { DialogModule } from '@ui/dialog';\nimport { FORM_FIELD_APPEARANCE, HIDE_REQUIRED_MARKER } from '@ui/form';\nimport {\n LanguageModule,\n LanguageService,\n MultiLanguageFallback,\n} from '@ui/language';\nimport { provideLottieAnimation } from '@ui/lottie-animation';\nimport { NotificationComponent, NotificationService } from '@ui/notification';\nimport { provideSaveTrap } from '@ui/save-trap';\nimport { provideTimeLineKey } from '@ui/time-line';\nimport { ToastrModule } from 'ngx-toastr';\nimport { MESSAGES } from '../i18n';\nimport { apiInterceptor } from './api.interceptor';\nimport { appRoutes } from './app.routes';\nimport { GlobalErrorHandler } from './global-error.handler';\nimport { PathPreserveQueryLocationStrategy } from './login-portal/core/path-location-strategy';\nimport { metaReducers, reducers } from './store';\nimport { LayoutEffects } from './store/layout';\n\nconst multiLanguageFallback: MultiLanguageFallback = () => {\n return '';\n};\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n LanguageService,\n NotificationService,\n CookieConsentService,\n {\n provide: HIDE_REQUIRED_MARKER,\n useValue: true,\n },\n {\n provide: FORM_FIELD_APPEARANCE,\n useValue: 'outline',\n },\n { provide: ErrorHandler, useClass: GlobalErrorHandler },\n { provide: LocationStrategy, useClass: PathPreserveQueryLocationStrategy },\n provideAnimations(),\n provideLottieAnimation(),\n provideRouter(\n appRoutes,\n withRouterConfig({\n paramsInheritanceStrategy: 'always',\n onSameUrlNavigation: 'reload',\n }),\n ),\n provideHttpClient(withInterceptors([apiInterceptor])),\n provideSaveTrap(MESSAGES.app.saveTrap.confirm),\n importProvidersFrom(\n DialogModule,\n StoreModule.forRoot(reducers, { metaReducers }),\n StoreRouterConnectingModule.forRoot(),\n EffectsModule.forRoot([\n AuthEffects,\n CurrentDeviceEffects,\n CurrentUserEffects,\n LayoutEffects,\n NotificationsEffects,\n StoreRouterEffects,\n ]),\n ToastrModule.forRoot({\n toastComponent: NotificationComponent,\n }),\n StoreDevtoolsModule.instrument({\n maxAge: 25,\n }),\n LanguageModule.forRoot(multiLanguageFallback),\n TrackingModule.forRoot(environment.googleTagManagerId),\n ),\n provideTimeLineKey(environment.schedulerLicenseKey),\n ],\n};\n","import { Route } from '@angular/router';\nimport {\n AUTH_URL_SEGMENT,\n LOGIN_URL_SEGMENT,\n} from '@core/bems-cloud/login-portal/const';\n\nimport { NOT_FOUND_URL_SEGMENT } from './bems/core/const';\nimport { AuthGuard } from './bems/core/guards';\n\nexport const appRoutes: Route[] = [\n {\n path: LOGIN_URL_SEGMENT,\n loadChildren: async () => {\n return (await import('./login-portal/login-portal-app.routes'))\n .loginAppRoutes;\n },\n },\n {\n path: AUTH_URL_SEGMENT,\n loadChildren: async () => {\n return (await import('./login-portal/login-portal-app.routes'))\n .loginAppAuthRoutes;\n },\n },\n {\n path: '',\n loadChildren: async () => {\n return (await import('./bems/bems-app.routes')).bemsAppRoutes;\n },\n canActivate: [AuthGuard],\n runGuardsAndResolvers: 'always',\n },\n {\n path: '**',\n redirectTo: NOT_FOUND_URL_SEGMENT,\n },\n];\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n LogoutResponse,\n RefreshTokenResponse,\n} from '@model/bems-cloud/bems/auth';\nimport { Observable } from 'rxjs';\n\nimport { BemsApiService } from '../bems-api.service';\nimport { ApiErrorResponse } from '../bems-api.types';\nimport { LogoutResponseJson, LogoutResponseJsonSchema } from './io/logout.io';\nimport {\n RefreshTokenResponseJson,\n RefreshTokenResponseJsonSchema,\n} from './io/refresh-token.io';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthApiService extends BemsApiService {\n public constructor(httpClient: HttpClient) {\n super(httpClient);\n }\n\n public signOut(): Observable {\n return this.postWithoutPayload({\n endpoint: 'auth/sign-out',\n responseSchema: LogoutResponseJsonSchema,\n responseDeserializer: (response) => {\n return response;\n },\n });\n }\n\n public refreshToken(): Observable {\n return this.postWithoutPayload<\n RefreshTokenResponse,\n RefreshTokenResponseJson\n >({\n endpoint: 'auth/refresh-token',\n responseSchema: RefreshTokenResponseJsonSchema,\n responseDeserializer: (response) => {\n return response;\n },\n });\n }\n}\n","export * from './auth-api.service';\nexport * from './io/logout.io';\nexport * from './io/refresh-token.io';\n","import { z } from 'zod';\n\nexport const LogoutResponseJsonSchema = z.object({\n response: z.string(),\n});\n\nexport type LogoutResponseJson = z.infer;\n","import { z } from 'zod';\n\nexport const RefreshTokenResponseDetailsJsonSchema = z.object({\n exp: z.string(),\n iat: z.string(),\n});\n\nexport const RefreshTokenResponseJsonSchema = z.object({\n details: RefreshTokenResponseDetailsJsonSchema,\n response: z.string(),\n});\n\nexport type RefreshTokenResponseJson = z.infer<\n typeof RefreshTokenResponseJsonSchema\n>;\n","import {\n HttpClient,\n HttpErrorResponse,\n HttpStatusCode,\n} from '@angular/common/http';\nimport { environment } from '@env/bems-cloud/environment';\nimport { Observable, catchError, map, of } from 'rxjs';\nimport { ZodError, z } from 'zod';\n\nimport { Nil } from '@model';\nimport {\n ApiError,\n ApiErrorResponse,\n PaginatedResults,\n PaginatedResultsJsonSchemaFactory,\n RequestOptions,\n} from './bems-api.types';\nimport { ErrorCode } from './bems-api.utils';\n\n/**\n * Abstract API service for HTTP requests\n * Almost all exceptions from the API are rethrown and handled GlobalErrorHandler. So if you need to handle exceptions on the component level (not globally)\n * you need to add @see catchError\n */\nexport abstract class BemsApiService {\n public constructor(private httpClient: HttpClient) {}\n\n protected post({\n endpoint,\n payload,\n responseSchema,\n payloadSerializer: serializer,\n responseDeserializer: deserializer,\n }: {\n endpoint: string;\n payload: Payload;\n responseSchema: z.Schema;\n payloadSerializer: (payload: Payload) => PayloadJson;\n responseDeserializer: (response: ResponseJson) => Response;\n }): Observable {\n return this.httpClient\n .post(\n `${environment.urls.api}/${endpoint}`,\n serializer(payload),\n )\n .pipe(\n map((response) => {\n return deserializer(responseSchema.parse(response));\n }),\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected patch({\n endpoint,\n payload,\n responseSchema,\n payloadSerializer: serializer,\n responseDeserializer: deserializer,\n }: {\n endpoint: string;\n payload: Payload;\n responseSchema: z.Schema;\n payloadSerializer: (payload: Payload) => PayloadJson;\n responseDeserializer: (response: ResponseJson) => Response;\n }): Observable {\n return this.httpClient\n .patch(\n `${environment.urls.api}/${endpoint}`,\n serializer(payload),\n )\n .pipe(\n map((response) => {\n return deserializer(responseSchema.parse(response));\n }),\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected put({\n endpoint,\n payload,\n responseSchema,\n payloadSerializer: serializer,\n responseDeserializer: deserializer,\n }: {\n endpoint: string;\n payload: Payload;\n responseSchema: z.Schema;\n payloadSerializer: (payload: Payload) => PayloadJson;\n responseDeserializer: (response: ResponseJson) => Response;\n }): Observable {\n return this.httpClient\n .put(`${environment.urls.api}/${endpoint}`, serializer(payload))\n .pipe(\n map((response) => {\n return deserializer(responseSchema.parse(response));\n }),\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected postWithoutPayload({\n endpoint,\n responseSchema,\n responseDeserializer: deserializer,\n }: {\n endpoint: string;\n responseSchema: z.Schema;\n responseDeserializer: (response: ResponseJson) => Response;\n }): Observable {\n return this.httpClient\n .post(`${environment.urls.api}/${endpoint}`, null)\n .pipe(\n map((response) => {\n return deserializer(responseSchema.parse(response));\n }),\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected postWithoutResponse({\n endpoint,\n payload,\n payloadSerializer: serializer,\n }: {\n endpoint: string;\n payload: Payload;\n payloadSerializer: (payload: Payload) => PayloadJson;\n }): Observable {\n return this.httpClient\n .post(\n `${environment.urls.api}/${endpoint}`,\n serializer(payload),\n )\n .pipe(\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected list({\n endpoint,\n schema,\n deserializer,\n }: {\n endpoint: string;\n schema: z.Schema;\n deserializer: (response: Response) => Model;\n }): Observable | ApiErrorResponse> {\n return this.httpClient\n .get(`${environment.urls.api}/${endpoint}`)\n .pipe(\n map((response) => {\n const results =\n PaginatedResultsJsonSchemaFactory(schema).parse(response);\n return {\n ...results,\n items: (results.items || []).map(deserializer),\n };\n }),\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected get({\n endpoint,\n schema,\n deserializer,\n options,\n }: {\n endpoint: string;\n schema: z.Schema;\n deserializer: (response: Response) => Model;\n options?: RequestOptions;\n }): Observable {\n return this.httpClient\n .get(`${environment.urls.api}/${endpoint}`, options)\n .pipe(\n map((response) => {\n return deserializer(schema.parse(response));\n }),\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected deleteWithoutResponse({\n endpoint,\n }: {\n endpoint: string;\n }): Observable {\n return this.httpClient.delete(`${environment.urls.api}/${endpoint}`).pipe(\n map(() => {\n return null;\n }),\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected getText({\n endpoint,\n }: {\n endpoint: string;\n }): Observable {\n return this.httpClient\n .get(`${environment.urls.api}/${endpoint}`, { responseType: 'text' })\n .pipe(\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n private getApiErrorResponse(\n response: HttpErrorResponse | ZodError,\n ): ApiErrorResponse {\n if (response instanceof ZodError) {\n console.error(response);\n throw new Error();\n }\n\n // If the response is a 401, 403, 404, 500 or 503 we want to throw it so\n // that the global error handler can handle it.\n if (\n response.status === HttpStatusCode.Unauthorized ||\n response.status === HttpStatusCode.Forbidden ||\n response.status === HttpStatusCode.InternalServerError ||\n response.status === HttpStatusCode.ServiceUnavailable\n ) {\n throw response;\n }\n if (response.status === HttpStatusCode.NotFound) {\n const apiErrorResponse: ApiErrorResponse = response.error;\n const apiErrors: ApiError[] | Nil = apiErrorResponse.errors;\n apiErrors?.forEach((apiError) => {\n apiError.messages?.forEach((message) => {\n // 404 Not Found with code 9015 is an edge case as it indicates\n // an error when trying to revoke the access of the unit's sole administrator.\n // In this situation we don't throw the response so that the app's flow\n // can continue, i.e. transfer ownership.\n if (message.code !== ErrorCode.CurrentUserIsSoleAdmin) {\n throw response;\n }\n });\n });\n }\n\n return {\n code: response.status,\n errors: response.error?.errors,\n message: response.error?.messages,\n };\n }\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { has } from 'lodash-es';\nimport { z } from 'zod';\n\nexport interface ApiErrorResponse {\n code: number;\n errors: ApiError[] | null;\n message?: string;\n}\n\nexport interface ApiError {\n field: string;\n messages: ApiErrorMessage[];\n}\n\nexport interface ApiErrorMessage {\n code: number;\n message: string;\n description: string;\n}\n\nexport interface PaginatedResults {\n size: number;\n total: number;\n items: T[];\n}\n\nexport interface RequestOptions {\n headers?:\n | HttpHeaders\n | {\n [header: string]: string | string[];\n };\n}\n\nexport const PaginatedResultsJsonSchemaFactory = (\n schema: Schema,\n) => {\n return z.object({\n size: z.number(),\n total: z.number(),\n next: z.string(),\n previous: z.string(),\n items: z.array(schema).or(z.null()),\n });\n};\n\nexport const PaginatedSelectableResultsJsonSchemaFactory = <\n Schema extends z.Schema,\n>(\n schema: Schema,\n) => {\n return z.object({\n size: z.number(),\n total: z.number(),\n next: z.string(),\n prev: z.string(),\n selectedPos: z.number(),\n items: z.array(schema).or(z.null()),\n });\n};\n\nexport const AssetJsonSchemaFactory = (\n schema: Schema,\n) => {\n return z.object({\n assetName: z.string(),\n timestamp: z.string(),\n isOnline: z.boolean(),\n noData: z.boolean(),\n assetCategory: z.number(),\n assetDetails: schema,\n });\n};\n\nexport function isApiErrorResponse(\n response: unknown,\n): response is ApiErrorResponse {\n return has(response, 'errors');\n}\n","export enum ErrorCode {\n DeviceNotFound = 4001,\n EULANotAccepted = 2022,\n AccessTokenExpired = 2030,\n EventOverlapForAssetID = 6721,\n AssetNotFound = 8019,\n InvalidInvitationID = 9002,\n PermissionNotFound = 9003,\n InvalidEmailAddress = 9008,\n CurrentUserIsSoleAdmin = 9015,\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Id } from '@model';\nimport {\n AdvancedPeakShavingConfiguration,\n AdvancedPeakShavingHistory,\n BillingPeriod,\n Device,\n DeviceSettings,\n GridSettings,\n PeakShavingStatus,\n Weather,\n} from '@model/bems-cloud/bems/devices';\nimport { Role } from '@model/bems-cloud/bems/roles';\nimport { Observable, of } from 'rxjs';\n\nimport { BemsApiService } from '../bems-api.service';\nimport { ApiErrorResponse, PaginatedResults } from '../bems-api.types';\n\nimport { Month } from '@model/bems-cloud/bems/internals';\nimport {\n AdvancedPeakShavingHistoryJson,\n AdvancedPeakShavingHistoryJsonSchema,\n} from './io/advanced-peak-shaving-history.io';\nimport {\n DeviceSettingsJson,\n DeviceSettingsJsonSchema,\n serializeDeviceSettings,\n} from './io/device-settings.io';\nimport {\n DeviceUserRoleJson,\n DeviceUserRoleJsonSchema,\n} from './io/device-user-role.io';\nimport { DeviceJson, DeviceJsonSchema } from './io/device.io';\nimport {\n GridSettingsJson,\n GridSettingsJsonSchema,\n GridSettingsWithCurrencyJson,\n GridSettingsWithCurrencyJsonSchema,\n deserializeGridSettings,\n serializeGridSettings,\n} from './io/grid-settings.io';\nimport { WeatherJson, WeatherJsonSchema } from './io/weather.io';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DevicesApiService extends BemsApiService {\n public constructor(httpClient: HttpClient) {\n super(httpClient);\n }\n\n public getDevices(): Observable | ApiErrorResponse> {\n return this.list({\n endpoint: 'devices',\n schema: DeviceJsonSchema,\n deserializer: (response) => {\n return response;\n },\n });\n }\n\n public getDevice(id: Id): Observable {\n return this.get({\n endpoint: `devices/${id}`,\n schema: DeviceJsonSchema,\n deserializer: (response) => {\n return response;\n },\n });\n }\n\n public getDeviceSettings(\n id: Id,\n ): Observable {\n return this.get({\n endpoint: `devices/${id}/settings`,\n schema: DeviceSettingsJsonSchema,\n deserializer: (response) => {\n return serializeDeviceSettings(response);\n },\n });\n }\n\n public getDeviceWeather(id: Id): Observable {\n return this.get({\n endpoint: `devices/${id}/weather`,\n schema: WeatherJsonSchema,\n deserializer: (response) => {\n return response;\n },\n });\n }\n\n public saveDeviceSettings(\n id: Id,\n deviceSettings: Partial,\n ): Observable {\n return this.patch<\n Partial,\n Partial,\n DeviceSettings,\n DeviceSettingsJson\n >({\n endpoint: `devices/${id}/settings`,\n payload: deviceSettings,\n responseSchema: DeviceSettingsJsonSchema,\n payloadSerializer: (payload: Partial) => {\n return {\n deviceName: payload.name,\n countryId: payload.countryId,\n currencyId: payload.currencyId,\n postalCodeId: payload.postalCodeId,\n systemGoal: payload.systemGoal,\n };\n },\n responseDeserializer: (response: DeviceSettingsJson) => {\n return serializeDeviceSettings(response);\n },\n });\n }\n\n public getGridSettings(id: Id): Observable {\n return this.get({\n endpoint: `devices/${id}/settings/grid/consumption-rates`,\n schema: GridSettingsWithCurrencyJsonSchema,\n deserializer: (model) => {\n return deserializeGridSettings(model);\n },\n });\n }\n\n public saveGridSettings(\n id: Id,\n settings: Partial,\n ): Observable {\n return this.put<\n Partial,\n Partial,\n GridSettings,\n GridSettingsJson\n >({\n endpoint: `devices/${id}/settings/grid/consumption-rates`,\n payload: settings,\n responseSchema: GridSettingsJsonSchema,\n payloadSerializer: (payload: Partial) => {\n return serializeGridSettings(payload);\n },\n responseDeserializer: (model: GridSettingsJson) => {\n return deserializeGridSettings(model);\n },\n });\n }\n\n public getAdvancedPeakShavingHistory(\n id: Id,\n ): Observable {\n return this.get(\n {\n endpoint: `devices/${id}/settings/grid/consumption-rates`,\n schema: AdvancedPeakShavingHistoryJsonSchema,\n deserializer: (model) => {\n return model;\n },\n },\n );\n }\n\n public getAdvancedPeakShavingConfiguration(\n id: Id,\n ): Observable {\n return of({\n peakShavingEnabled: true,\n peakShavingStatus: PeakShavingStatus.Active,\n billingPeriod: BillingPeriod.Yearly,\n monthlyConfiguration: [\n {\n year: 2024,\n month: Month.January,\n limit: 50,\n read: 48,\n unit: 'kW',\n closed: true,\n },\n {\n year: 2024,\n month: Month.February,\n limit: 60,\n read: 55,\n unit: 'kW',\n closed: true,\n },\n {\n year: 2024,\n month: Month.March,\n limit: 61,\n read: 53,\n unit: 'kW',\n closed: false,\n },\n {\n year: 2025,\n month: Month.January,\n limit: 33,\n unit: 'kW',\n closed: false,\n },\n ],\n yearlyConfiguration: [\n {\n year: 2024,\n limit: 50,\n read: 55,\n unit: 'kW',\n closed: false,\n },\n {\n year: 2025,\n limit: 100,\n unit: 'kW',\n closed: false,\n },\n ],\n });\n // return this.get<\n // AdvancedPeakShavingConfigurationJson,\n // AdvancedPeakShavingConfiguration\n // >({\n // endpoint: `devices/${id}/settings/grid/consumption-rates`,\n // schema: AdvancedPeakShavingConfigurationJsonSchema,\n // deserializer: (model) => {\n // return model;\n // },\n // });\n }\n\n public getUserRole(id: Id): Observable {\n return this.get({\n endpoint: `devices/${id}/role`,\n deserializer: (response) => {\n return response.role;\n },\n schema: DeviceUserRoleJsonSchema,\n });\n }\n}\n","export * from './devices-api.services';\nexport * from './io/device-user-role.io';\nexport * from './io/device.io';\nexport * from './io/value-trend-data.io';\nexport * from './io/value-trend.io';\nexport * from './io/value-trends.io';\nexport * from './value-trend-api.services';\n","import { z } from 'zod';\n\nexport const MonthlyHistoryJsonSchema = z.object({\n year: z.number(),\n month: z.number(),\n read: z.number(),\n unit: z.string(),\n});\n\nexport const YearlyHistoryJsonSchema = z.object({\n year: z.number(),\n read: z.number(),\n unit: z.string(),\n});\n\nexport const AdvancedPeakShavingHistoryJsonSchema = z.object({\n monthlyHistory: z.array(MonthlyHistoryJsonSchema),\n yearlyHistory: z.array(YearlyHistoryJsonSchema),\n});\n\nexport type AdvancedPeakShavingHistoryJson = z.infer<\n typeof AdvancedPeakShavingHistoryJsonSchema\n>;\n","import { IdJsonSchema } from '@api';\nimport { Id, Nil } from '@model';\nimport {\n DeviceSettings,\n SelectedPostalCode,\n} from '@model/bems-cloud/bems/devices';\nimport { isNil } from 'lodash-es';\nimport { z } from 'zod';\n\nimport { PaginatedSelectableResultsJsonSchemaFactory } from '../../bems-api.types';\nimport { CurrencyJsonSchema } from '../../internals/io';\n\nexport const CountryInfoJsonSchema = z.object({\n id: IdJsonSchema,\n name: z.string(),\n});\n\nexport const TimezoneJsonSchema = z.object({\n id: IdJsonSchema,\n timezone: z.string(),\n name: z.string(),\n dstOffset: z.number(),\n rawOffset: z.number(),\n});\n\nexport const PostalCodeInfoJsonSchema = z.object({\n id: IdJsonSchema,\n name: z.string(),\n timezone: TimezoneJsonSchema,\n});\n\nexport const PaginatedSelectableResultsJsonSchema =\n PaginatedSelectableResultsJsonSchemaFactory(CountryInfoJsonSchema);\n\nexport const PaginatedPostalCodeInfoJsonSchema =\n PaginatedSelectableResultsJsonSchemaFactory(PostalCodeInfoJsonSchema);\n\nexport const LobbyViewUrlJsonSchema = z.object({\n isActive: z.boolean(),\n url: z.string().optional(),\n});\n\nexport const DeviceSettingsJsonSchema = z.object({\n id: IdJsonSchema,\n deviceId: IdJsonSchema,\n deviceName: z.string(),\n countryInfo: PaginatedSelectableResultsJsonSchema,\n postalCodeInfo: PaginatedPostalCodeInfoJsonSchema,\n gridSupplierCurrency: CurrencyJsonSchema,\n systemGoal: z.number(),\n lobbyView: LobbyViewUrlJsonSchema.optional(),\n});\n\nexport type PaginatedSelectableResultsJson = z.infer<\n typeof PaginatedSelectableResultsJsonSchema\n>;\n\nexport type PaginatedPostalCodeInfoJson = z.infer<\n typeof PaginatedPostalCodeInfoJsonSchema\n>;\n\nexport type DeviceSettingsJson = z.infer;\n\nexport function serializeDeviceSettings(\n response: DeviceSettingsJson,\n): DeviceSettings {\n return {\n id: response.id,\n deviceId: response.deviceId,\n name: response.deviceName,\n country: getSelectableResultName(response.countryInfo),\n countryId: getSelectableResultId(response.countryInfo),\n postalCode: getSelectableResultName(response.postalCodeInfo),\n postalCodeId: getSelectableResultId(response.postalCodeInfo),\n postalCodeInfo: getPostalCode(response.postalCodeInfo),\n currency: response.gridSupplierCurrency,\n currencyId: response.gridSupplierCurrency.id,\n systemGoal: response.systemGoal,\n lobbyView: {\n isActive: response.lobbyView?.isActive ?? true,\n url:\n response.lobbyView?.url ??\n 'https://brightlayer-bems-dev.eaton.com/en/7eb85e03-cc2b-43ab-b7cc-76bc0f0aeeda/dashboard/',\n },\n };\n}\n\nfunction getPostalCode(\n postalCode: PaginatedPostalCodeInfoJson,\n): SelectedPostalCode | Nil {\n const selectedPos = postalCode.selectedPos;\n if (\n isNil(selectedPos) ||\n isNil(postalCode.items) ||\n selectedPos >= postalCode.items.length\n ) {\n return undefined;\n }\n\n const selectedPostalCode = postalCode.items[selectedPos];\n\n return {\n extendedName: selectedPostalCode.name,\n ...selectedPostalCode,\n };\n}\n\nfunction getSelectableResultId(\n settings: PaginatedSelectableResultsJson,\n): Id | Nil {\n const selectedPos = settings.selectedPos;\n if (\n isNil(selectedPos) ||\n isNil(settings.items) ||\n selectedPos >= settings.items.length\n ) {\n return undefined;\n }\n return settings.items[selectedPos].id;\n}\n\nfunction getSelectableResultName(\n settings: PaginatedSelectableResultsJson,\n): string | Nil {\n const selectedPos = settings.selectedPos;\n if (\n isNil(selectedPos) ||\n isNil(settings.items) ||\n selectedPos >= settings.items.length\n ) {\n return undefined;\n }\n return settings.items[selectedPos].name;\n}\n","import { Role } from '@model/bems-cloud/bems/roles';\nimport { z } from 'zod';\n\nexport const DeviceUserRoleJsonSchema = z.object({\n role: z.nativeEnum(Role),\n});\n\nexport type DeviceUserRoleJson = z.infer;\n","import { IdJsonSchema } from '@api';\nimport { z } from 'zod';\n\nexport const DeviceJsonSchema = z.object({\n asset: z.string().optional(),\n family: z.string().optional(),\n hardware: z.string().optional(),\n id: IdJsonSchema,\n macAddress: z.string().optional(),\n model: z.string().optional(),\n modelLongName: z.string().optional(),\n modelShortName: z.string().optional(),\n name: z.string(),\n profileId: z.string().optional(),\n role: z.string().optional(),\n serial: z.string().optional(),\n software: z.string().optional(),\n vendor: z.string().optional(),\n});\n\nexport type DeviceJson = z.infer;\n","import { getDateFromMilitaryTime, getMilitaryTime } from '@core/date';\nimport {\n ConsumptionRateType,\n GridSettings,\n RateTypes,\n} from '@model/bems-cloud/bems/devices';\nimport { z } from 'zod';\n\nimport { CurrencyJsonSchema } from '../../internals/io';\n\nexport const GridConsumptionRateJsonSchema = z.object({\n type: z.nativeEnum(ConsumptionRateType),\n start: z.number(),\n end: z.number(),\n tariff: z.number(),\n});\n\nexport const GridSettingsWithCurrencyJsonSchema = z.object({\n gridSupplierCurrency: CurrencyJsonSchema,\n consumptionRates: z.array(GridConsumptionRateJsonSchema),\n});\n\nexport const GridSettingsJsonSchema = z.object({\n consumptionRates: z.array(GridConsumptionRateJsonSchema),\n});\n\nexport type GridConsumptionRateJson = z.infer<\n typeof GridConsumptionRateJsonSchema\n>;\nexport type GridSettingsWithCurrencyJson = z.infer<\n typeof GridSettingsWithCurrencyJsonSchema\n>;\nexport type GridSettingsJson = z.infer;\n\nexport function deserializeGridSettings(model: GridSettingsJson): GridSettings {\n const peak = model.consumptionRates?.find((x) => {\n return x.type === ConsumptionRateType.Peak;\n });\n const offPeak = model.consumptionRates?.find((x) => {\n return x.type === ConsumptionRateType.OffPeak;\n });\n\n return {\n rateType:\n model.consumptionRates?.length === 2\n ? RateTypes.TwoRates\n : RateTypes.OneRate,\n tariff: model.consumptionRates?.[0]?.tariff ?? 0,\n startPeak: getDateFromMilitaryTime(peak?.start),\n endPeak: getDateFromMilitaryTime(peak?.end),\n tariffPeak: peak?.tariff ?? 0,\n startOffPeak: getDateFromMilitaryTime(offPeak?.start),\n endOffPeak: getDateFromMilitaryTime(offPeak?.end),\n tariffOffPeak: offPeak?.tariff ?? 0,\n };\n}\n\nexport function serializeGridSettings(\n payload: Partial,\n): Partial {\n let consumptionRates: GridConsumptionRateJson[] = [];\n if (payload.rateType === RateTypes.OneRate) {\n consumptionRates.push({\n type: ConsumptionRateType.OffPeak,\n start: 0,\n end: 0,\n tariff: payload.tariff ?? 0,\n });\n } else {\n consumptionRates = [\n {\n type: ConsumptionRateType.Peak,\n start: getMilitaryTime(payload.startPeak) ?? 0,\n end: getMilitaryTime(payload.endPeak) ?? 0,\n tariff: payload.tariffPeak ?? 0,\n },\n {\n type: ConsumptionRateType.OffPeak,\n start: getMilitaryTime(payload.startOffPeak) ?? 0,\n end: getMilitaryTime(payload.endOffPeak) ?? 0,\n tariff: payload.tariffOffPeak ?? 0,\n },\n ];\n }\n return {\n consumptionRates,\n };\n}\n","import { TrendType } from '@model/bems-cloud/bems/dashboard';\nimport { z } from 'zod';\n\nexport const ValueTrendDataJsonSchema = z.object({\n value: z.string(),\n unit: z.string(),\n trend: z.nativeEnum(TrendType),\n});\n\nexport type ValueTrendDataJson = z.infer;\n","import { z } from 'zod';\n\nimport { ValueTrendDataJsonSchema } from './value-trend-data.io';\n\nexport const ValueTrendJsonSchema = z.object({\n day: ValueTrendDataJsonSchema,\n month: ValueTrendDataJsonSchema,\n});\n\nexport type ValueTrendJson = z.infer;\n","import { z } from 'zod';\n\nimport { ValueTrendJsonSchema } from './value-trend.io';\n\nexport const ValueTrendsJsonSchema = z.object({\n gridNode: ValueTrendJsonSchema.optional(),\n pvNode: ValueTrendJsonSchema.optional(),\n selfSufficiencyNode: ValueTrendJsonSchema.optional(),\n evChargerNode: ValueTrendJsonSchema.optional(),\n energyCostsNode: ValueTrendJsonSchema.optional(),\n});\n\nexport type ValueTrendsJson = z.infer;\n","import { TemperatureUnit } from '@model';\nimport { WeatherCode } from '@model/bems-cloud/bems/devices';\nimport { z } from 'zod';\n\nexport const WeatherJsonSchema = z.object({\n temperature: z.number(),\n unit: z.nativeEnum(TemperatureUnit),\n weatherCode: z.nativeEnum(WeatherCode),\n});\n\nexport type WeatherJson = z.infer;\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { isNotNil } from '@core/is-not-nil';\nimport { Id } from '@model';\nimport { ValueTrend, ValueTrendType } from '@model/bems-cloud/bems/dashboard';\nimport { Observable } from 'rxjs';\n\nimport { BemsApiService } from '../bems-api.service';\nimport { ApiErrorResponse } from '../bems-api.types';\nimport { ValueTrendJson } from './io/value-trend.io';\nimport { ValueTrendsJson, ValueTrendsJsonSchema } from './io/value-trends.io';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ValueTrendApiService extends BemsApiService {\n public constructor(\n httpClient: HttpClient,\n @Inject(LOCALE_ID) public language: string,\n ) {\n super(httpClient);\n }\n\n public getValueTrendData(\n id: Id,\n ): Observable {\n return this.get({\n endpoint: `devices/${id}/valuetrends`,\n schema: ValueTrendsJsonSchema,\n deserializer: (response) => {\n return this.valueTrendsDeserializer(response);\n },\n });\n }\n\n private valueTrendsDeserializer(response: ValueTrendsJson): ValueTrend[] {\n const valueTrends: ValueTrend[] = [];\n if (isNotNil(response.gridNode)) {\n const newGridNode = this.formatValue(response.gridNode);\n valueTrends.push({\n ...newGridNode,\n type: ValueTrendType.GridNode,\n });\n }\n\n if (isNotNil(response.pvNode)) {\n const newPVNode = this.formatValue(response.pvNode);\n valueTrends.push({ ...newPVNode, type: ValueTrendType.PvNode });\n }\n\n if (isNotNil(response.selfSufficiencyNode)) {\n valueTrends.push({\n ...response.selfSufficiencyNode,\n type: ValueTrendType.SelfSufficiencyNode,\n });\n }\n\n if (isNotNil(response.evChargerNode)) {\n const newEvChargerNode = this.formatValue(response.evChargerNode);\n valueTrends.push({\n ...newEvChargerNode,\n type: ValueTrendType.EvChargerNode,\n });\n }\n\n if (isNotNil(response.energyCostsNode)) {\n const newEnergyCostsNode = this.formatValue(response.energyCostsNode);\n valueTrends.push({\n ...newEnergyCostsNode,\n type: ValueTrendType.EnergyCostsNode,\n });\n }\n\n return valueTrends;\n }\n\n private formatValue(node: ValueTrendJson): ValueTrendJson {\n const dayValueNumber = new Intl.NumberFormat(this.language).format(\n parseFloat(node.day.value),\n );\n\n const monthValueNumber = new Intl.NumberFormat(this.language).format(\n parseFloat(node.month.value),\n );\n\n return {\n ...node,\n day: {\n ...node.day,\n value: dayValueNumber,\n },\n month: {\n ...node.month,\n value: monthValueNumber,\n },\n };\n }\n}\n","import { IdJsonSchema } from '@api';\nimport { PaginatedResultsJsonSchemaFactory } from '@api/bems-cloud/bems/bems-api.types';\nimport { z } from 'zod';\n\nexport const CountryJsonSchema = z.object({\n id: IdJsonSchema,\n name: z.string(),\n geonameId: z.string(),\n isoAlpha2: z.string(),\n isoAlpha3: z.string(),\n isoAlphaNumeric: z.number(),\n});\n\nexport type CountryJson = z.infer;\n\nconst PaginatedCountryJsonSchema =\n PaginatedResultsJsonSchemaFactory(CountryJsonSchema);\n\nexport type PaginatedCountryJson = z.infer;\n","import { IdJsonSchema } from '@api';\nimport { PaginatedResultsJsonSchemaFactory } from '@api/bems-cloud/bems/bems-api.types';\nimport { z } from 'zod';\n\nexport const CurrencyJsonSchema = z.object({\n id: IdJsonSchema,\n name: z.string(),\n symbol: z.string(),\n code: z.string(),\n});\n\nexport type CurrencyJson = z.infer;\n\nconst PaginatedCurrencyJsonSchema =\n PaginatedResultsJsonSchemaFactory(CurrencyJsonSchema);\n\nexport type PaginatedCurrencyJson = z.infer;\n","export * from './country.io';\nexport * from './currencies.io';\nexport * from './postal-code.io';\n","import { IdJsonSchema } from '@api';\nimport { PaginatedResultsJsonSchemaFactory } from '@api/bems-cloud/bems/bems-api.types';\nimport { z } from 'zod';\n\nexport const TimezoneJsonSchema = z.object({\n id: IdJsonSchema,\n name: z.string(),\n timezone: z.string(),\n gmtOffset: z.number(),\n dstOffset: z.number(),\n rawOffset: z.number(),\n});\n\nexport const CoordinatesJsonSchema = z.object({\n lat: z.number(),\n lng: z.number(),\n});\n\nexport const PostalCodeJsonSchema = z.object({\n id: IdJsonSchema,\n name: z.string(),\n code: z.string(),\n timezone: TimezoneJsonSchema,\n countryId: z.string(),\n coordinates: CoordinatesJsonSchema,\n});\n\nexport type PostalCodeJson = z.infer;\n\nconst PaginatedPostalCodeJsonSchema =\n PaginatedResultsJsonSchemaFactory(PostalCodeJsonSchema);\n\nexport type PaginatedPostalCodeJson = z.infer<\n typeof PaginatedPostalCodeJsonSchema\n>;\n","export * from './notifications-api.service';\n","import { z } from 'zod';\n\nexport const NotificationCountJsonSchema = z.object({\n critical: z.number(),\n info: z.number(),\n warning: z.number(),\n});\n\nexport type NotificationCountJson = z.infer;\n","import { IdJsonSchema } from '@api';\nimport { NotificationSeverityLevel } from '@model/bems-cloud/bems/notifications';\nimport { z } from 'zod';\n\nexport const NotificationJsonSchema = z.object({\n id: IdJsonSchema,\n severityLevel: z.nativeEnum(NotificationSeverityLevel),\n message: z.string(),\n createdAt: z.string(),\n isRead: z.boolean(),\n});\n\nexport type NotificationJson = z.infer;\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n Notification,\n NotificationCount,\n ReadNotifications,\n} from '@model/bems-cloud/bems/notifications';\nimport { Observable } from 'rxjs';\n\nimport { BemsApiService } from '../bems-api.service';\nimport { ApiErrorResponse, PaginatedResults } from '../bems-api.types';\nimport {\n NotificationCountJson,\n NotificationCountJsonSchema,\n} from './io/notification-count.io';\nimport { NotificationJson, NotificationJsonSchema } from './io/notification.io';\nimport { ReadNotificationsJson } from './io/read-notifications.io';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationsApiService extends BemsApiService {\n public constructor(httpClient: HttpClient) {\n super(httpClient);\n }\n\n public getNotificationCount(): Observable<\n NotificationCount | ApiErrorResponse\n > {\n return this.get({\n endpoint: 'notifications/count-per-level?isRead=false',\n schema: NotificationCountJsonSchema,\n deserializer: (response) => {\n return response;\n },\n });\n }\n\n public getNotifications(\n offset: number,\n pageSize: number,\n sortBy: string,\n sortOrder: string,\n ): Observable | ApiErrorResponse> {\n return this.list({\n endpoint: `notifications/?limit=${pageSize}&offset=${\n offset * pageSize\n }&sortBy=${sortBy}:${sortOrder}`,\n schema: NotificationJsonSchema,\n deserializer: (response) => {\n return {\n ...response,\n createdAt: new Date(response.createdAt),\n };\n },\n });\n }\n\n public markAllNotificationsAsRead(): Observable<\n ApiErrorResponse | undefined\n > {\n return this.postWithoutResponse({\n endpoint: 'notifications/',\n payload: { notificationIDs: [] },\n payloadSerializer: (payload) => {\n return payload;\n },\n });\n }\n}\n","export * from './io/user-profile.io';\nexport * from './io/user.io';\nexport * from './users-api.service';\n","import { z } from 'zod';\n\nexport const AuditLogFileNameJsonSchema = z.object({\n downloadPath: z.string(),\n});\n\nexport type AuditLogFilenameJson = z.infer;\n","import { z } from 'zod';\n\nexport const UserFileNameJsonSchema = z.object({\n name: z.string(),\n size: z.number(),\n type: z.string(),\n uri: z.string(),\n});\n\nexport type UserFilenameJson = z.infer;\n","import { z } from 'zod';\n\nimport { UserJsonSchema } from './user.io';\n\nexport const UserProfileJsonSchema = z.object({\n user: UserJsonSchema,\n});\n\nexport type UserProfileJson = z.infer;\n","import { IdJsonSchema } from '@api';\nimport { TemperatureUnit } from '@model';\nimport { DateFormat, LanguageCode, User } from '@model/bems-cloud/bems/users';\nimport { z } from 'zod';\n\nexport const UserJsonSchema = z.object({\n id: IdJsonSchema,\n email: z.string(),\n firstName: z.string(),\n lastName: z.string(),\n phoneNumber: z.string(),\n acceptedEula: z.string().optional(),\n language: z.nativeEnum(LanguageCode),\n temperatureUnit: z.nativeEnum(TemperatureUnit),\n dateFormat: z.nativeEnum(DateFormat),\n});\n\nexport type UserJson = z.infer;\n\nexport function deserializeUser(user: UserJson): User {\n return {\n ...user,\n };\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Nil } from '@model';\nimport { ChangePassword, User } from '@model/bems-cloud/bems/users';\nimport { AuditLogFileName } from '@model/bems-cloud/bems/users/audit-log-file-name';\nimport { UserFileName } from '@model/bems-cloud/bems/users/user-file-name';\nimport { Observable } from 'rxjs';\n\nimport { BemsApiService } from '../bems-api.service';\nimport { ApiErrorResponse } from '../bems-api.types';\nimport {\n AuditLogFileNameJsonSchema,\n AuditLogFilenameJson,\n} from './io/audit-log-file-name.io';\nimport { ChangePasswordJson } from './io/change-password.io';\nimport {\n UserFileNameJsonSchema,\n UserFilenameJson,\n} from './io/user-file-name.io';\nimport { UserProfileJson, UserProfileJsonSchema } from './io/user-profile.io';\nimport { UserJson, UserJsonSchema, deserializeUser } from './io/user.io';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UsersApiService extends BemsApiService {\n public constructor(httpClient: HttpClient) {\n super(httpClient);\n }\n\n public getUserProfile(): Observable {\n return this.get({\n endpoint: 'account/users/me',\n schema: UserProfileJsonSchema,\n deserializer: (response: UserProfileJson) => {\n return deserializeUser(response.user);\n },\n });\n }\n\n public getUserFileName(): Observable {\n return this.get({\n endpoint: 'account/export/users/me',\n schema: UserFileNameJsonSchema,\n deserializer: (response: UserFilenameJson) => {\n return response;\n },\n });\n }\n public getAuditLogsFileName(): Observable<\n AuditLogFileName | ApiErrorResponse\n > {\n return this.get({\n endpoint: 'device/logs',\n schema: AuditLogFileNameJsonSchema,\n deserializer: (response: AuditLogFilenameJson) => {\n return response;\n },\n });\n }\n\n public getFile(filename: string): Observable {\n return this.getText({\n endpoint: `account/files/${filename}`,\n });\n }\n\n public saveUserProfile(\n user: Partial,\n ): Observable {\n return this.patch, Partial, User, UserJson>({\n endpoint: 'account/users/me',\n payload: user,\n responseSchema: UserJsonSchema,\n payloadSerializer: (payload: Partial) => {\n return payload;\n },\n responseDeserializer: (response: UserJson) => {\n return deserializeUser(response);\n },\n });\n }\n\n public changePassword(\n payload: ChangePassword,\n ): Observable {\n return this.postWithoutResponse({\n endpoint: 'account/users/me/password',\n payload,\n payloadSerializer: ({ oldPassword, newPassword }: ChangePassword) => {\n return {\n currentPassword: oldPassword,\n newPassword,\n };\n },\n });\n }\n\n public deleteAccount(): Observable {\n return this.deleteWithoutResponse({\n endpoint: 'account/users/me',\n });\n }\n}\n","export const ONE_MINUTE = 1000 * 60;\nexport const ONE_HOUR = 1000 * 60 * 60;\nexport const ONE_DAY = 1000 * 60 * 60 * 24;\nexport const ONE_MONTH = 1000 * 60 * 60 * 24 * 30;\nexport const FIVE_MINUTES = 300000;\n","export * from './duration';\nexport * from './navigation';\n","export const ACCOUNT_URL_SEGMENT = 'account';\nexport const ASSETS_URL_SEGMENT = 'assets';\nexport const DEVICES_URL_SEGMENT = 'devices';\nexport const CHANGE_PASSWORD_URL_SEGMENT = 'change-password';\nexport const CHARTS_URL_SEGMENT = 'charts';\nexport const DASHBOARD_URL_SEGMENT = 'dashboard';\nexport const FORBIDDEN_URL_SEGMENT = 'forbidden';\nexport const EV_CHARGER_ID_URL_SEGMENT = 'chargerId';\nexport const EV_CHARGER_URL_SEGMENT = 'ev-charger';\nexport const GENERAL_URL_SEGMENT = 'general';\nexport const GRID_URL_SEGMENT = 'grid';\nexport const INVITATION_EXPIRED_URL_SEGMENT = 'invitation-expired';\nexport const INTERNAL_SERVER_ERROR_URL_SEGMENT = 'internal-server-error';\nexport const LICENSE_URL_SEGMENT = 'license';\nexport const LOGIN_URL_SEGMENT = 'login';\nexport const NOT_FOUND_URL_SEGMENT = 'not-found';\nexport const NO_DEVICE_URL_SEGMENT = 'no-device';\nexport const PERSONAL_INFORMATION_URL_SEGMENT = 'personal-information';\nexport const DOWNLOADS_URL_SEGMENT = 'downloads';\nexport const PREFERENCES_URL_SEGMENT = 'preferences';\nexport const SCHEDULER_URL_SEGMENT = 'scheduler';\nexport const SERVICE_UNAVAILABLE_URL_SEGMENT = 'service-unavailable';\nexport const SESSION_EXPIRED_URL_SEGMENT = 'session-expired';\nexport const SETTINGS_URL_SEGMENT = 'settings';\nexport const SUPPORT_URL_SEGMENT = 'support';\nexport const SYSTEM_GOALS_URL_SEGMENT = 'system-goals';\nexport const USERS_URL_SEGMENT = 'users';\nexport const SOLAR_PANEL_URL_SEGMENT = 'solar-panel';\nexport const STORAGE_UNIT_URL_SEGMENT = 'storage-unit';\nexport const STORAGE_UNIT_ID_PARAM = 'storageUnitId';\nexport const POWER_METER_URL_SEGMENT = 'power-meter';\nexport const PERMISSIONS_URL_SEGMENT = 'permissions';\nexport const INVITATIONS_URL_SEGMENT = 'invitations';\nexport const DELETE_URL_SEGMENT = 'delete';\nexport const ACCEPT_URL_SEGMENT = 'accept';\nexport const LOBBY_VIEW_URL_SEGMENT = 'lobby-view';\n\nexport const SOLAR_PANEL_ID_PARAM = 'solarPanelId';\n\nexport const ACCOUNT_CHANGE_PASSWORD_NAV_ITEM_ID = 'account-change-password';\nexport const ACCOUNT_NAV_ITEM_ID = 'account';\nexport const ACCOUNT_PERSONAL_INFORMATION_NAV_ITEM_ID =\n 'account-personal-information';\nexport const DOWNLOAD_ACCOUNT_INFORMATION_NAV_ITEM_ID =\n 'download-account-information';\nexport const ACCOUNT_PREFERENCES_NAV_ITEM_ID = 'preferences';\nexport const DELETE_ACCOUNT_NAV_ITEM_ID = 'delete-account';\nexport const ASSETS_NAV_ITEM_ID = 'assets';\nexport const CHARTS_NAV_ITEM_ID = 'charts';\nexport const DASHBOARD_NAV_ITEM_ID = 'dashboard';\nexport const SCHEDULER_NAV_ITEM_ID = 'scheduler';\nexport const SETTINGS_GENERAL_NAV_ITEM_ID = 'general';\nexport const SETTINGS_GRID_NAV_ITEM_ID = 'grid';\nexport const SETTINGS_LICENSE_NAV_ITEM_ID = 'license';\nexport const SETTINGS_NAV_ITEM_ID = 'settings';\nexport const SETTINGS_SUPPORT_NAV_ITEM_ID = 'support';\nexport const SETTINGS_SYSTEM_GOALS_NAV_ITEM_ID = 'system-goals';\nexport const USERS_NAV_ITEM_ID = 'users';\nexport const POWER_METER_ID_PARAM = 'powerMeterId';\n","import { inject } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\nimport { isNotNil } from '@core/is-not-nil';\nimport { filterNil } from '@core/rxjs/filter-nil';\nimport { CSRF_ACCESS_TOKEN } from '@store/bems-cloud/auth/auth.const';\nimport { CurrentUserService } from '@store/bems-cloud/current-user';\nimport { isEmpty } from 'lodash-es';\nimport { CookieService } from 'ngx-cookie-service';\nimport { map } from 'rxjs';\nimport { NavigationService } from '../services';\n\nexport const AuthGuard: CanActivateFn = () => {\n const cookie = inject(CookieService);\n const navigationService = inject(NavigationService);\n const currentUserService = inject(CurrentUserService);\n const csrfAccessToken = cookie.get(CSRF_ACCESS_TOKEN);\n currentUserService.currentUser$.pipe(\n filterNil(),\n map((user) => {\n if (isNotNil(user) && isEmpty(csrfAccessToken)) {\n navigationService.navigateToLogin();\n return false;\n }\n return true;\n }),\n );\n return true;\n};\n","import { inject } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\nimport { isNotNil } from '@core/is-not-nil';\nimport { filterNil } from '@core/rxjs/filter-nil';\nimport { CurrentDeviceService } from '@store/bems-cloud/current-device';\nimport { isNil } from 'lodash-es';\nimport { combineLatest, map } from 'rxjs';\nimport { NavigationService } from '../services';\n\nexport const currentDeviceGuard: CanActivateFn = () => {\n const currentDeviceService = inject(CurrentDeviceService);\n const navigationService = inject(NavigationService);\n return combineLatest([\n currentDeviceService.device$,\n currentDeviceService.devices$.pipe(filterNil()),\n ]).pipe(\n map(([device, devices]) => {\n if (isNil(device)) {\n if (isNotNil(devices) && devices.length > 0) {\n navigationService.navigateToDashboard(devices[0]);\n } else {\n navigationService.navigateToNoDevicePage();\n }\n return false;\n }\n return true;\n }),\n );\n};\n","import { inject } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\nimport { filterNil } from '@core/rxjs/filter-nil';\nimport { CurrentUserService } from '@store/bems-cloud/current-user';\nimport { map } from 'rxjs';\n\nexport const currentUserGuard: CanActivateFn = () => {\n return inject(CurrentUserService).currentUser$.pipe(\n filterNil(),\n map(() => {\n return true;\n }),\n );\n};\n","export * from './auth.guard';\nexport * from './current-device.guard';\nexport * from './current-user.guard';\n","export * from './navigation.service';\n","import { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { Loading } from '@layout/loading';\nimport { Id, isWithId } from '@model';\nimport { AssetCategoryTypeId, ListAsset } from '@model/bems-cloud/bems/assets';\nimport { Device } from '@model/bems-cloud/bems/devices';\nimport { Invitation } from '@model/bems-cloud/bems/invitations';\nimport { Permission } from '@model/bems-cloud/bems/permissions';\nimport { CurrentDeviceService } from '@store/bems-cloud/current-device';\nimport { LayoutService } from '@store/bems-cloud/layout';\n\nimport {\n EULA_ACCEPT_PAGE_URL_SEGMENTS,\n EULA_PAGE_URL_SEGMENTS,\n LOGIN_URL_SEGMENT,\n} from '@core/bems-cloud/login-portal/const';\nimport { environment } from '@env/bems-cloud/environment';\nimport { isEmpty } from 'lodash-es';\nimport { CookieService } from 'ngx-cookie-service';\nimport {\n ACCOUNT_URL_SEGMENT,\n ASSETS_URL_SEGMENT,\n DASHBOARD_URL_SEGMENT,\n FORBIDDEN_URL_SEGMENT,\n INTERNAL_SERVER_ERROR_URL_SEGMENT,\n INVITATIONS_URL_SEGMENT,\n INVITATION_EXPIRED_URL_SEGMENT,\n NOT_FOUND_URL_SEGMENT,\n NO_DEVICE_URL_SEGMENT,\n PERMISSIONS_URL_SEGMENT,\n SCHEDULER_URL_SEGMENT,\n SERVICE_UNAVAILABLE_URL_SEGMENT,\n SESSION_EXPIRED_URL_SEGMENT,\n USERS_URL_SEGMENT,\n} from '../const';\nimport {\n ASSET_CATEGORY_ID_URL_SEGMENT,\n checkUrlMatch,\n isRootRoute,\n} from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NavigationService {\n public constructor(\n private router: Router,\n private currentDeviceService: CurrentDeviceService,\n private layoutService: LayoutService,\n private cookiesService: CookieService,\n @Inject(LOCALE_ID) private locale: string,\n ) {}\n\n public readonly redirectUrlName = 'redirectUrl';\n\n public navigateToRoot() {\n this.router.navigate(['']);\n }\n\n /**\n * Redirect to new url with page refresh\n * @param url destinition url\n * @param includeRedirectUrl add current url as query param\n */\n public redirect(url: string, includeRedirectUrl = false) {\n const redirectUrl = this.getCurrentUrl();\n if (includeRedirectUrl && !isEmpty(redirectUrl)) {\n window.location.href = `${url}?${this.redirectUrlName}=${redirectUrl}`;\n } else {\n window.location.href = url;\n }\n }\n\n /**\n * Redirect user to new localized app if needed\n * @param language name of the new language\n */\n public updateCurrentLanguage(language: string): void {\n if (!environment.local && language !== this.locale) {\n this.cookiesService.set('prefered_language', language, undefined, '/');\n const newUrl = window.location.href.replace(\n `/${this.locale}/`,\n `/${language}/`,\n );\n\n this.redirect(newUrl);\n }\n }\n\n /*\n * LOGIN\n */\n public navigateToLogin(): void {\n this.router.navigate(\n [LOGIN_URL_SEGMENT],\n this.getRedirectUrl(LOGIN_URL_SEGMENT),\n );\n }\n\n /*\n * ACCOUNT\n */\n public navigateToAccount(): void {\n this.router.navigate([ACCOUNT_URL_SEGMENT]);\n }\n\n /**\n * EULA\n */\n public navigateToEULAAccept() {\n this.router.navigate(EULA_ACCEPT_PAGE_URL_SEGMENTS, this.getRedirectUrl());\n }\n\n public navigateToEULA() {\n this.router.navigate(EULA_PAGE_URL_SEGMENTS);\n }\n\n /*\n * DASHBOARD\n */\n public navigateToDashboard(deviceOrId: Device | Id): void {\n const id = isWithId(deviceOrId) ? deviceOrId.id : deviceOrId;\n this.router.navigate([id, DASHBOARD_URL_SEGMENT]);\n this.currentDeviceService.fetchCurrentDevice(id);\n }\n\n /*\n * DEVICE\n */\n public navigateToDevice(currentDeviceId: Id, newDeviceId: Id): void {\n // since the user can be anywhere in the application but we want to keep\n // the current route, we need to replace the current device id with the new id\n this.router.navigateByUrl(\n this.router.url.replace(\n currentDeviceId.toString(),\n newDeviceId.toString(),\n ),\n );\n this.currentDeviceService.fetchCurrentDevice(newDeviceId);\n this.layoutService.setLoading(Loading.App);\n }\n\n /*\n * ASSETS\n */\n public navigateToAssets(device: Device) {\n this.router.navigate([device.id, ASSETS_URL_SEGMENT]);\n }\n\n public navigateToAsset(\n categoryId: AssetCategoryTypeId | Id,\n device: Device,\n asset: ListAsset,\n ) {\n const assetTypeSegment = ASSET_CATEGORY_ID_URL_SEGMENT[categoryId];\n this.router.navigate([\n device.id,\n ASSETS_URL_SEGMENT,\n assetTypeSegment,\n asset.id,\n ]);\n }\n\n public navigateToAssetsCategory(\n categoryId: AssetCategoryTypeId,\n device: Device,\n ) {\n this.router.navigate([device.id, ASSETS_URL_SEGMENT], {\n queryParams: {\n category: categoryId,\n },\n });\n }\n\n /*\n * USERS\n */\n public navigateToUsers(device: Device): void {\n this.router.navigate([device.id, USERS_URL_SEGMENT]);\n }\n\n public navigateToUser(device: Device, permission: Permission): void {\n this.router.navigate([\n device.id,\n USERS_URL_SEGMENT,\n PERMISSIONS_URL_SEGMENT,\n permission.id,\n ]);\n }\n\n public navigateToUsersInvitations(device: Device) {\n this.router.navigate([\n device.id,\n USERS_URL_SEGMENT,\n INVITATIONS_URL_SEGMENT,\n ]);\n }\n\n public navigateToUserInvitation(device: Device, invitation: Invitation) {\n this.router.navigate([\n device.id,\n USERS_URL_SEGMENT,\n INVITATIONS_URL_SEGMENT,\n invitation.id,\n ]);\n }\n\n public navigateToScheduler(device: Device) {\n this.router.navigate([device.id, SCHEDULER_URL_SEGMENT]);\n }\n\n /*\n * ERRORS\n */\n public navigateToNoDevicePage(): void {\n this.router.navigate([NO_DEVICE_URL_SEGMENT]);\n }\n\n public navigateToExpiredInvitation(): void {\n this.router.navigate([INVITATION_EXPIRED_URL_SEGMENT]);\n }\n\n public navigateToSessionExpired(): void {\n this.router.navigate([SESSION_EXPIRED_URL_SEGMENT], this.getRedirectUrl());\n }\n\n public navigateToForbidden(): void {\n this.router.navigate([FORBIDDEN_URL_SEGMENT]);\n }\n\n public navigateToNotFound(): void {\n this.router.navigate([NOT_FOUND_URL_SEGMENT]);\n }\n\n public navigateToInternalServerError(): void {\n this.router.navigate([\n INTERNAL_SERVER_ERROR_URL_SEGMENT,\n {\n [this.redirectUrlName]: this.router.url.includes(LOGIN_URL_SEGMENT)\n ? LOGIN_URL_SEGMENT\n : DASHBOARD_URL_SEGMENT,\n },\n ]);\n }\n\n public navigateToServiceUnavailable(): void {\n this.router.navigate([SERVICE_UNAVAILABLE_URL_SEGMENT]);\n }\n\n /**\n * @returns Url with query params without host\n */\n private getCurrentUrl(): string {\n return isRootRoute()\n ? ''\n : window.location.pathname + window.location.search;\n }\n\n private getRedirectUrl(nextUrl = ''): NavigationExtras | undefined {\n return isRootRoute() ||\n window.location.search.includes(this.redirectUrlName) ||\n (!isEmpty(nextUrl) && checkUrlMatch([nextUrl]))\n ? undefined\n : {\n queryParams: {\n [this.redirectUrlName]: this.getCurrentUrl(),\n },\n queryParamsHandling: 'merge',\n };\n }\n}\n","export enum BemsAnimation {\n Expired = 'expired',\n Forbidden = 'forbidden',\n InternalServerError = 'internalServerError',\n NoDevice = 'noDevice',\n NotFound = 'notFound',\n ServiceUnavailable = 'serviceUnavailable',\n}\n\nexport const ANIMATION_TO_PATH: Record = {\n [BemsAnimation.Expired]: 'assets/animations/expired.json',\n [BemsAnimation.Forbidden]: 'assets/animations/error_403.json',\n [BemsAnimation.InternalServerError]: 'assets/animations/error_500.json',\n [BemsAnimation.NoDevice]: 'assets/animations/no_device.json',\n [BemsAnimation.NotFound]: 'assets/animations/error_404.json',\n [BemsAnimation.ServiceUnavailable]: 'assets/animations/error_503.json',\n};\n","import { MESSAGES } from '@i18n/bems-cloud';\nimport { Id, Nil } from '@model';\nimport {\n AssetCategoryType,\n AssetCategoryTypeId,\n AssetStatus,\n} from '@model/bems-cloud/bems/assets';\nimport { EnergyPointType } from '@model/bems-cloud/bems/dashboard';\nimport { TagColor } from '@ui/list-item';\nimport {\n EV_CHARGER_URL_SEGMENT,\n POWER_METER_URL_SEGMENT,\n SOLAR_PANEL_URL_SEGMENT,\n STORAGE_UNIT_URL_SEGMENT,\n} from '../const';\n\nexport const ASSET_CATEGORY_TYPE_TRANSLATIONS: Record<\n AssetCategoryType,\n string\n> = {\n [AssetCategoryType.EvCharger]: MESSAGES.general.assetCategory.evCharger,\n [AssetCategoryType.PowerMeter]: MESSAGES.general.assetCategory.powerMeter,\n [AssetCategoryType.StorageUnit]: MESSAGES.general.assetCategory.storageUnit,\n [AssetCategoryType.SolarPanel]: MESSAGES.general.assetCategory.solarPanel,\n [AssetCategoryType.BinaryLoad]: MESSAGES.general.assetCategory.binaryLoad,\n};\n\nexport const ASSET_STATUS_TRANSLATIONS: Record = {\n [AssetStatus.Available]: MESSAGES.general.assetStatus.available,\n [AssetStatus.Charging]: MESSAGES.general.assetStatus.charging,\n [AssetStatus.Consuming]: MESSAGES.general.assetStatus.consuming,\n [AssetStatus.Disabled]: MESSAGES.general.assetStatus.disabled,\n [AssetStatus.Discharging]: MESSAGES.general.assetStatus.discharging,\n [AssetStatus.Enabled]: MESSAGES.general.assetStatus.enabled,\n [AssetStatus.Error]: MESSAGES.general.assetStatus.error,\n [AssetStatus.Fault]: MESSAGES.general.assetStatus.faulted,\n [AssetStatus.Faulted]: MESSAGES.general.assetStatus.faulted,\n [AssetStatus.Finishing]: MESSAGES.general.assetStatus.finishing,\n [AssetStatus.Idle]: MESSAGES.general.assetStatus.idle,\n [AssetStatus.Initialising]: MESSAGES.general.assetStatus.initialising,\n [AssetStatus.Injecting]: MESSAGES.general.assetStatus.injecting,\n [AssetStatus.Offline]: MESSAGES.general.assetStatus.offline,\n [AssetStatus.Online]: MESSAGES.general.assetStatus.online,\n [AssetStatus.Preparing]: MESSAGES.general.assetStatus.preparing,\n [AssetStatus.Reserved]: MESSAGES.general.assetStatus.reserved,\n [AssetStatus.SuspendedEVSE]: MESSAGES.general.assetStatus.suspendedevse,\n [AssetStatus.Unavailable]: MESSAGES.general.assetStatus.unavailable,\n [AssetStatus.Unknown]: MESSAGES.general.assetStatus.unknown,\n};\n\nexport const ASSET_STATUS_TAG_COLORS: Record = {\n [AssetStatus.Available]: TagColor.LightGreen,\n [AssetStatus.Charging]: TagColor.Blue,\n [AssetStatus.Consuming]: TagColor.Blue,\n [AssetStatus.Disabled]: TagColor.Orange,\n [AssetStatus.Discharging]: TagColor.Blue,\n [AssetStatus.Enabled]: TagColor.LightGreen,\n [AssetStatus.Error]: TagColor.Red,\n [AssetStatus.Fault]: TagColor.Red,\n [AssetStatus.Faulted]: TagColor.Red,\n [AssetStatus.Finishing]: TagColor.Blue,\n [AssetStatus.Idle]: TagColor.Gray,\n [AssetStatus.Initialising]: TagColor.Blue,\n [AssetStatus.Injecting]: TagColor.Blue,\n [AssetStatus.Offline]: TagColor.Orange,\n [AssetStatus.Online]: TagColor.LightGreen,\n [AssetStatus.Preparing]: TagColor.Blue,\n [AssetStatus.Reserved]: TagColor.Gray,\n [AssetStatus.SuspendedEVSE]: TagColor.LightBlue,\n [AssetStatus.Unavailable]: TagColor.Orange,\n [AssetStatus.Unknown]: TagColor.Orange,\n};\n\nexport const STORAGE_UNIT_CHARGING_STATUS: Record = {\n 3: AssetStatus.Discharging,\n 4: AssetStatus.Charging,\n 6: AssetStatus.Idle,\n};\n\nexport const ENERGY_POINT_TYPE_TO_ASSET_CATEGORY_TYPE_ID: Record<\n EnergyPointType,\n AssetCategoryTypeId | Nil\n> = {\n [EnergyPointType.EvChargerNode]: AssetCategoryTypeId.EvCharger,\n [EnergyPointType.GridNode]: null,\n [EnergyPointType.Loads]: null,\n [EnergyPointType.PvNode]: AssetCategoryTypeId.SolarPanel,\n [EnergyPointType.StorageNode]: AssetCategoryTypeId.StorageUnit,\n [EnergyPointType.BuildingPower]: null,\n [EnergyPointType.BuildingPowerConsumption]: null,\n [EnergyPointType.BuildingPowerProduction]: null,\n};\n\nexport const ASSET_CATEGORY_ID_URL_SEGMENT: Record<\n AssetCategoryTypeId | Id,\n string\n> = {\n [AssetCategoryTypeId.EvCharger]: EV_CHARGER_URL_SEGMENT,\n [AssetCategoryTypeId.PowerMeter]: POWER_METER_URL_SEGMENT,\n [AssetCategoryTypeId.StorageUnit]: STORAGE_UNIT_URL_SEGMENT,\n [AssetCategoryTypeId.SolarPanel]: SOLAR_PANEL_URL_SEGMENT,\n};\n","import { Nil } from '@model';\nimport {\n ChartDataField,\n ChartDataFieldUnit,\n} from '@model/bems-cloud/bems/charts';\nimport { ChartColor, ChartData, XaxisUnit } from '@ui/chart';\n\nimport {\n EMPTY_DATA_SET_GENERATORS,\n convertDataToTimezone,\n getWattValueTransformer,\n mergeChartData,\n} from './charts.utils';\n\nexport function getBarChartData(\n chartDataField: ChartDataField | Nil,\n date: Date,\n color: ChartColor,\n timezone: string,\n negative: boolean,\n xAxisUnit: XaxisUnit,\n yAxisUnit: ChartDataFieldUnit,\n): ChartData[] {\n const measured = mergeChartData(\n EMPTY_DATA_SET_GENERATORS[xAxisUnit](color, date, timezone),\n convertDataToTimezone(chartDataField?.measured, timezone),\n getWattValueTransformer(negative, yAxisUnit),\n );\n\n return mergeChartData(\n measured,\n convertDataToTimezone(chartDataField?.forecast, timezone),\n getWattValueTransformer(negative, yAxisUnit),\n true,\n );\n}\n","import { daysInMonth } from '@core/date';\nimport { wattToGigaWatt, wattToKiloWatt, wattToMegaWatt } from '@core/math';\nimport { MESSAGES } from '@i18n/bems-cloud';\nimport { Nil } from '@model';\nimport {\n ChartDataFieldStep,\n ChartDataFieldUnit,\n ChartDataValue,\n ChartData as ModelChartData,\n SolarRadiation,\n} from '@model/bems-cloud/bems/charts';\nimport {\n ChartBoxAnnotation,\n ChartColor,\n ChartData,\n ChartLineAnnotation,\n XaxisUnit,\n} from '@ui/chart';\nimport { addDays } from 'date-fns';\nimport { isNil } from 'lodash-es';\nimport moment from 'moment-timezone';\n\nconst FIVE_MINUTES = 300000;\n\nexport type ValueTransformerFn = (\n value: number | Nil,\n currentValue: number,\n) => number;\n\nexport const EMPTY_DATA_SET_GENERATORS: Record<\n XaxisUnit,\n (color: ChartColor, date: Date, timezone: string) => ChartData[]\n> = {\n [XaxisUnit.Hour]: getEmptyDayData,\n [XaxisUnit.Day]: getEmptyBarMonthData,\n [XaxisUnit.Month]: getEmptyBarYearData,\n};\n\n// Generate \"zero\" data for each interval of five minutes because the backend does not return data for every interval\nexport function getEmptyDayData(\n color: ChartColor,\n date: Date,\n timezone: string,\n): ChartData[] {\n const startOfDay = new Date(date);\n startOfDay.setHours(0, 0, 0, 0);\n const now = addOffset(new Date().getTime(), getTimezoneOffset(timezone));\n\n return new Array(288)\n .fill({\n color,\n label: 0,\n value: 0,\n })\n .map((item, index) => {\n const label = startOfDay.getTime() + index * FIVE_MINUTES;\n return {\n ...item,\n label,\n // if the label/date is in the past, set the value to 0, otherwise set it to NaN so it is not displayed\n value: label < now ? 0 : NaN,\n };\n });\n}\n\n// Generate \"zero\" data for each day of the month because the backend does not return data for every day\nexport function getEmptyBarMonthData(\n color: ChartColor,\n date: Date,\n): ChartData[] {\n const startOfDay = new Date(date);\n startOfDay.setHours(0, 0, 0, 0);\n const now = new Date().getDate();\n\n const days = daysInMonth(startOfDay.getMonth() + 1, startOfDay.getFullYear());\n const firstDayOfTheMonth = new Date(date.getFullYear(), date.getMonth(), 1);\n\n return new Array(days)\n .fill({\n color,\n label: 0,\n value: 0,\n })\n .map((item, index) => {\n return {\n ...item,\n label: addDays(firstDayOfTheMonth, index).getTime(),\n // if the label/date is in the past, set the value to 0, otherwise set it to NaN so it is not displayed\n value: index < now ? 0 : NaN,\n };\n });\n}\n\n// Generate \"zero\" data for each month of the year because the backend does not return data for every month\nexport function getEmptyBarYearData(\n color: ChartColor,\n date: Date,\n): ChartData[] {\n const now = new Date().getMonth();\n\n return new Array(12)\n .fill({\n color,\n label: 0,\n value: 0,\n })\n .map((item, index) => {\n return {\n ...item,\n label: new Date(date.getFullYear(), index, 1).getTime(),\n // if the label/date is in the past, set the value to 0, otherwise set it to NaN so it is not displayed\n value: index < now ? 0 : NaN,\n };\n });\n}\n\n// Generate the chart vertical line annotations for the current time\nexport function getCurrentTimeVerticalLineAnnotation(\n label: string,\n step: ChartDataFieldStep,\n timezone: string,\n): ChartLineAnnotation {\n const now = new Date();\n\n if (step === ChartDataFieldStep.FiveMinutes) {\n now.setMinutes(Math.floor(now.getMinutes() / 5) * 5);\n }\n\n return {\n label,\n value: addOffset(now.getTime(), getTimezoneOffset(timezone)),\n };\n}\n\n// Check if the date is the same as the second date or today if missing\nexport function isSameDate(date: Date, otherDate?: Date): boolean {\n const now = otherDate ?? new Date();\n return (\n date.getDate() === now.getDate() &&\n date.getMonth() === now.getMonth() &&\n date.getFullYear() === now.getFullYear()\n );\n}\n\nexport function mergeChartData(\n data: ChartData[],\n otherData: ChartDataValue[] | Nil,\n transformValue: ValueTransformerFn,\n predictive?: boolean,\n): ChartData[] {\n if (isNil(otherData) || otherData.length === 0) {\n return data;\n }\n\n let cursorIndex = 0;\n\n return data.map((item) => {\n if (\n cursorIndex >= otherData.length ||\n item.label !== otherData[cursorIndex].x\n ) {\n return item;\n }\n\n const newData: ChartData = {\n ...item,\n label: otherData[cursorIndex].x,\n value: transformValue(otherData[cursorIndex].y, item.value),\n predictive: predictive ?? false,\n isNil:\n (item.isNil || item.isNil === undefined) &&\n isNil(otherData[cursorIndex].y),\n };\n\n cursorIndex++;\n\n return newData;\n });\n}\n\n// Generate the chart box annotations for the solar radiation\nexport function getSolarRadiationAnnotations(\n dataSet:\n | {\n solarRadiation: SolarRadiation | Nil;\n date: Date;\n timezone: string;\n }\n | Nil,\n): ChartBoxAnnotation[] | Nil {\n if (\n isNil(dataSet) ||\n isNil(dataSet.solarRadiation) ||\n isNil(dataSet.timezone)\n ) {\n return undefined;\n }\n\n const startOfDay = new Date(dataSet.date);\n startOfDay.setHours(0, 0, 0, 0);\n\n const offset = getTimezoneOffset(dataSet.timezone);\n\n return [\n {\n minX: startOfDay.getTime(),\n maxX: addOffset(dataSet.solarRadiation.periodStart.getTime(), offset),\n color: ChartColor.Blue,\n },\n {\n minX: addOffset(dataSet.solarRadiation.periodStart.getTime(), offset),\n maxX: addOffset(dataSet.solarRadiation.periodEnd.getTime(), offset),\n color: ChartColor.Yellow,\n },\n {\n minX: addOffset(dataSet.solarRadiation.periodEnd.getTime(), offset),\n color: ChartColor.Blue,\n },\n ];\n}\n\nexport function convertDataToTimezone(\n data: ChartDataValue[] | Nil,\n timezone: string,\n): ChartDataValue[] | Nil {\n if (isNil(data)) {\n return undefined;\n }\n\n const offset = getTimezoneOffset(timezone);\n return data.map((value) => {\n return {\n ...value,\n x: addOffset(value.x, offset),\n };\n });\n}\n\nfunction getTimezoneOffset(timezone: string): number {\n const offset = moment().utcOffset();\n const timezoneOffset = moment.tz(timezone).utcOffset();\n return timezoneOffset - offset;\n}\n\nfunction addOffset(timestamp: number, offset: number): number {\n return timestamp + offset * 60 * 1000;\n}\n\nexport function getWattValueTransformer(\n negative: boolean,\n unit: ChartDataFieldUnit,\n): ValueTransformerFn {\n return (value: number | Nil) => {\n return negative\n ? DATA_CONVERTER[unit](-(value ?? 0))\n : DATA_CONVERTER[unit](value ?? 0);\n };\n}\n\nexport function convertDateToTimezone(date: Date, timezone: string): Date {\n const offset = getTimezoneOffset(timezone);\n return new Date(addOffset(date.getTime(), offset));\n}\n\nexport const DATA_CONVERTER: Record<\n ChartDataFieldUnit,\n (value: number) => number\n> = {\n [ChartDataFieldUnit.GigaWatt]: wattToGigaWatt,\n [ChartDataFieldUnit.GigaWattHour]: wattToGigaWatt,\n [ChartDataFieldUnit.MegaWatt]: wattToMegaWatt,\n [ChartDataFieldUnit.MegaWattHour]: wattToMegaWatt,\n [ChartDataFieldUnit.KiloWatt]: wattToKiloWatt,\n [ChartDataFieldUnit.KiloWattHour]: wattToKiloWatt,\n [ChartDataFieldUnit.Watt]: defaultValue,\n [ChartDataFieldUnit.WattHour]: defaultValue,\n [ChartDataFieldUnit.Percentage]: defaultValue,\n};\n\nexport const CHART_DATA_FIELD_UNIT_TRANSLATIONS: Record<\n ChartDataFieldUnit,\n string\n> = {\n [ChartDataFieldUnit.GigaWatt]: MESSAGES.general.unit.energy.gWatt,\n [ChartDataFieldUnit.GigaWattHour]: MESSAGES.general.unit.energy.gWh,\n [ChartDataFieldUnit.MegaWatt]: MESSAGES.general.unit.energy.mWatt,\n [ChartDataFieldUnit.MegaWattHour]: MESSAGES.general.unit.energy.mWh,\n [ChartDataFieldUnit.KiloWatt]: MESSAGES.general.unit.energy.kWatt,\n [ChartDataFieldUnit.KiloWattHour]: MESSAGES.general.unit.energy.kWh,\n [ChartDataFieldUnit.Watt]: MESSAGES.general.unit.energy.watt,\n [ChartDataFieldUnit.WattHour]: MESSAGES.general.unit.energy.wh,\n [ChartDataFieldUnit.Percentage]: '%',\n};\n\nfunction defaultValue(value: number): number {\n return value;\n}\n\n/**\n * Find the greater and more used unit in chart data\n */\nexport function getChartUnit(\n loads: ModelChartData | Nil,\n sources: ModelChartData | Nil,\n): ChartDataFieldUnit {\n const allUnits = (\n loads?.fields.map((filed) => {\n return filed.dataUnit;\n }) ?? []\n ).concat(\n sources?.fields.map((filed) => {\n return filed.dataUnit;\n }) ?? [],\n );\n\n // Create a map with indices for quick access to pattern indices\n const patternMap = new Map(\n CHART_UNIT_ORDER.map((item, index) => {\n return [item, index];\n }),\n );\n\n // Create an object to count the frequency of each element\n const frequencyMap = allUnits.reduce((acc, str) => {\n acc[str] = (acc[str] || 0) + 1;\n return acc;\n }, getDefaultUnitMap());\n\n // Find the maximum frequency\n const maxFrequency = Math.max(...Object.values(frequencyMap));\n\n // Gather all elements with the maximum frequency\n const mostFrequentElements = Object.keys(frequencyMap).filter((key) => {\n return frequencyMap[key as ChartDataFieldUnit] === maxFrequency;\n }) as ChartDataFieldUnit[];\n\n // Sort the array of strings according to the indices in the pattern\n mostFrequentElements.sort((a, b) => {\n return (patternMap.get(a) ?? Infinity) - (patternMap.get(b) ?? Infinity);\n });\n\n return mostFrequentElements[0] ?? ChartDataFieldUnit.Watt;\n}\n\nfunction getDefaultUnitMap(): Record {\n return {\n [ChartDataFieldUnit.GigaWatt]: 0,\n [ChartDataFieldUnit.GigaWattHour]: 0,\n [ChartDataFieldUnit.MegaWatt]: 0,\n [ChartDataFieldUnit.MegaWattHour]: 0,\n [ChartDataFieldUnit.KiloWatt]: 0,\n [ChartDataFieldUnit.KiloWattHour]: 0,\n [ChartDataFieldUnit.Watt]: 0,\n [ChartDataFieldUnit.WattHour]: 0,\n [ChartDataFieldUnit.Percentage]: 0,\n };\n}\n\n/** list of unit ordered by size */\nconst CHART_UNIT_ORDER = [\n ChartDataFieldUnit.GigaWatt,\n ChartDataFieldUnit.GigaWattHour,\n ChartDataFieldUnit.MegaWatt,\n ChartDataFieldUnit.MegaWattHour,\n ChartDataFieldUnit.KiloWatt,\n ChartDataFieldUnit.KiloWattHour,\n ChartDataFieldUnit.Watt,\n ChartDataFieldUnit.WattHour,\n ChartDataFieldUnit.Percentage,\n];\n","import {\n ApiErrorResponse,\n isApiErrorResponse,\n} from '@api/bems-cloud/login-portal/login-portal-api.types';\n\nimport { Nil } from '@model';\nimport { Eula, Eulas } from '@model/bems-cloud/login-portal/internals';\nimport { first, isNil } from 'lodash-es';\n\nexport function getEula(eulas: Eulas | ApiErrorResponse | Nil): Eula | Nil {\n if (isNil(eulas)) {\n return undefined;\n }\n\n if (isApiErrorResponse(eulas) || eulas.eulas.length === 0) {\n return undefined;\n }\n\n const eula = first(eulas.eulas);\n\n if (isNil(eula)) {\n return undefined;\n }\n\n return eula;\n}\n","export * from './animation.utils';\nexport * from './assets.utils';\nexport * from './bar-charts.utils';\nexport * from './charts.utils';\nexport * from './languages.utils';\nexport * from './line-charts.utils';\nexport * from './navigation.utils';\nexport * from './roles.utils';\nexport * from './route-utils';\nexport * from './scheduler.utils';\nexport * from './units.utils';\nexport * from './weather.utils';\nexport * from './eula.utils';\n","import { MESSAGES } from '@i18n/bems-cloud';\nimport { LanguageCode } from '@model/bems-cloud/bems/users';\n\nexport const LANGUAGES_TRANSLATIONS: Record = {\n [LanguageCode.English]: MESSAGES.general.language.en,\n [LanguageCode.French]: MESSAGES.general.language.fr,\n [LanguageCode.German]: MESSAGES.general.language.de,\n [LanguageCode.Dutch]: MESSAGES.general.language.nl,\n [LanguageCode.Norwegian]: MESSAGES.general.language.no,\n};\n","import { isNotNil } from '@core/is-not-nil';\nimport { wattToKiloWatt } from '@core/math';\nimport { Nil } from '@model';\nimport {\n ChartDataField,\n ChartDataFieldUnit,\n} from '@model/bems-cloud/bems/charts';\nimport { ChartColor, ChartData, XaxisUnit } from '@ui/chart';\nimport { findIndex, isNil } from 'lodash-es';\n\nimport {\n EMPTY_DATA_SET_GENERATORS,\n convertDataToTimezone,\n getWattValueTransformer,\n mergeChartData,\n} from './charts.utils';\n\nexport function getLineChartData(\n chartDataField: ChartDataField | Nil,\n date: Date,\n color: ChartColor,\n timezone: string,\n negative: boolean,\n xAxisUnit: XaxisUnit,\n yAxisUnit: ChartDataFieldUnit,\n): ChartData[] {\n const measured = mergeChartData(\n EMPTY_DATA_SET_GENERATORS[xAxisUnit](color, date, timezone),\n convertDataToTimezone(chartDataField?.measured, timezone),\n getWattValueTransformer(negative, yAxisUnit),\n );\n\n return fillForecastData(chartDataField, measured, negative, timezone);\n}\n\nexport function getMergedLineChartData(\n load: ChartDataField | Nil,\n source: ChartDataField | Nil,\n date: Date,\n timezone: string,\n color: ChartColor,\n xAxisUnit: XaxisUnit,\n yAxisUnit: ChartDataFieldUnit,\n): ChartData[] {\n let data = EMPTY_DATA_SET_GENERATORS[xAxisUnit](color, date, timezone);\n\n data = mergeChartData(\n data,\n convertDataToTimezone(load?.measured, timezone),\n getWattValueTransformer(false, yAxisUnit),\n );\n\n data = mergeChartData(\n data,\n convertDataToTimezone(source?.measured, timezone),\n (value, currentValue) => {\n // the backend returns positive values for loads so we need to negate them\n // if the value is null we don't want to override the current value\n if (isNil(value)) {\n return currentValue;\n }\n return getWattValueTransformer(true, yAxisUnit)(value, currentValue);\n },\n );\n\n return data;\n}\n\n// Fill the chart data with the additional forecast data\nfunction fillForecastData(\n field: ChartDataField | Nil,\n data: ChartData[],\n negative: boolean,\n timezone: string,\n): ChartData[] {\n const forecast = convertDataToTimezone(field?.forecast, timezone);\n\n if (isNotNil(forecast) && forecast.length > 0) {\n // the forecast data don't necessarly start at the beginning of the day\n // so we must find the index of the first data point in the final data set\n const index = findIndex(data, { label: forecast[0].x });\n\n if (index > 0) {\n data[index] = {\n ...data[index],\n predictive: true,\n };\n }\n\n forecast.forEach((value, i) => {\n const y = value.y || 0;\n const currentValue = data[index + i].value;\n if (isNaN(currentValue)) {\n data[index + i] = {\n ...data[index + i],\n label: value.x,\n value: wattToKiloWatt(negative ? -y : y),\n isNil: isNil(value.y),\n predictive: true,\n };\n }\n });\n }\n return data;\n}\n","import { Router } from '@angular/router';\nimport { ACCEPT_URL_SEGMENT, USERS_URL_SEGMENT } from '../const';\n\nexport function addNavigationToLink(\n router: Router,\n containerId: string,\n link: string[],\n): void {\n document\n .getElementById(containerId)\n ?.getElementsByTagName('a')\n .item(0)\n ?.addEventListener('click', (event) => {\n event.preventDefault();\n router.navigate(link);\n });\n}\n\nexport function isUserInvitationAcceptPage(path: string): boolean {\n const parts = path.split('/');\n\n // if we are in a local env the url has 5 parts\n // if we are in a dev/qa/prod env the url has 6 parts\n\n if (parts.length !== 5 && parts.length !== 6) {\n return false;\n }\n\n const userUrlSegmentIndex = parts.length === 6 ? 3 : 2;\n\n if (parts[userUrlSegmentIndex] != USERS_URL_SEGMENT) {\n return false;\n }\n\n const acceptUrlSegmentIndex = parts.length === 6 ? 5 : 4;\n\n if (parts[acceptUrlSegmentIndex] != ACCEPT_URL_SEGMENT) {\n return false;\n }\n\n return true;\n}\n","import { MESSAGES } from '@i18n/bems-cloud';\nimport { Role } from '@model/bems-cloud/bems/roles';\nimport { SelectableItem } from '@ui/selectable-item';\n\nexport const ROLES: SelectableItem[] = [\n {\n id: Role.Administrator,\n name: MESSAGES.general.userRole.administrator,\n },\n {\n id: Role.Reader,\n name: MESSAGES.general.userRole.reader,\n },\n];\n\nexport const ROLES_TRANSLATIONS: Record = {\n [Role.Administrator]: MESSAGES.general.userRole.administrator,\n [Role.Reader]: MESSAGES.general.userRole.reader,\n};\n","import { ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router';\nimport { Nil } from '@model';\nimport { first, has, isNil } from 'lodash-es';\n\nexport function getData(\n route: ActivatedRoute | ActivatedRouteSnapshot,\n property: string,\n): T {\n const value = isActivatedRoute(route)\n ? route.snapshot.data[property]\n : route.data[property];\n\n if (isNil(value)) {\n throw new Error(`Missing route data property: ${property}`);\n }\n\n return value;\n}\n\nexport function getOptionalData(\n route: ActivatedRoute,\n property: string,\n): T | Nil {\n return route.snapshot.data[property];\n}\n\nexport function getChildPath(route: ActivatedRouteSnapshot): string | Nil {\n const child = first(route.children);\n if (isNil(child)) {\n return undefined;\n }\n return first(child.url)?.path;\n}\n\nfunction isActivatedRoute(\n route: ActivatedRoute | ActivatedRouteSnapshot,\n): route is ActivatedRoute {\n return has(route, 'snapshot');\n}\n\nexport function isRootRoute(): boolean {\n return new RegExp(`^(\\/\\\\w{2})?\\/$`).test(window.location.pathname);\n}\n\n/**\n * The device id, if there, is always the first segment of the url\n * use regex to ignore url with localization\n * @returns device id\n */\nexport function getDeviceIdFromRoute(): string | undefined {\n const deviceRegEx = new RegExp(\n `^(\\/\\\\w{2})?\\/(?[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12})`,\n );\n return window.location.pathname.match(deviceRegEx)?.groups?.deviceId;\n}\n\n/**\n * Parse url and remove localization part 'en', 'it', etc.\n * @param url current url\n * @returns new url\n */\nexport function getUrlWithoutLocalization(url: string): string {\n const reg = /^(\\/\\w{2})?(?\\/.*)/.exec(url);\n return reg?.groups?.url ?? '';\n}\n\n/**\n * Check if any url match with current URL\n * @param urls List of possible urls\n * @returns true if match\n */\nexport function checkUrlMatch(urls: string[]) {\n const path = window.location.pathname;\n const authUrls = urls.join('|');\n // ignores localization in url\n const reg = new RegExp(`^(\\/\\\\w{2})?\\/(${authUrls})`);\n return reg.test(path);\n}\n","import { getTimeInLocalFormat } from '@core/date';\nimport { isNotNil } from '@core/is-not-nil';\nimport { kwhToWatt, parseNumber, wattToKiloWatt } from '@core/math';\nimport { MESSAGES } from '@i18n/bems-cloud';\nimport { Id, Nil } from '@model';\nimport {\n AssetCategory,\n AssetCategoryType,\n ListAsset,\n} from '@model/bems-cloud/bems/assets';\nimport {\n EventActionFieldType,\n SchedulerAssetDetails,\n SchedulerEventActionType,\n SchedulerEventDetails,\n SchedulerEventsList,\n SchedulerField,\n} from '@model/bems-cloud/bems/scheduler';\nimport { Resource, ResourceEvent, TimeLineColor } from '@ui/time-line';\nimport { secondsToMilliseconds } from 'date-fns';\nimport { find, isNil } from 'lodash-es';\nimport moment from 'moment';\n\nexport const SCHEDULER_EVENT_ACTION_TYPE_TRANSLATIONS: Record<\n SchedulerEventActionType,\n string\n> = {\n [SchedulerEventActionType.EvPowerLimit]:\n MESSAGES.general.scheduler.eventActionType.evPowerLimit,\n [SchedulerEventActionType.TargetSoC]:\n MESSAGES.general.scheduler.eventActionType.evPowerLimit,\n};\n\nexport const SCHEDULER_EVENT_ACTION_TYPE_WITH_ASSET_TRANSLATIONS: Record<\n SchedulerEventActionType,\n (assetName: string | number) => string\n> = {\n [SchedulerEventActionType.EvPowerLimit]:\n MESSAGES.general.scheduler.eventActionType.evPowerLimitAsset,\n [SchedulerEventActionType.TargetSoC]:\n MESSAGES.general.scheduler.eventActionType.targetSocAsset,\n};\n\nexport const SCHEDULER_EVENT_ACTION_FIELD_TYPE_TRANSLATIONS: Record<\n EventActionFieldType,\n (amount: string | number) => string\n> = {\n [EventActionFieldType.Limit]:\n MESSAGES.general.scheduler.eventActionFieldType.limitAmount,\n [EventActionFieldType.SoC]:\n MESSAGES.general.scheduler.eventActionFieldType.socAmount,\n};\n\nexport const SCHEDULER_EVENT_ACTION_FIELD_VALUE_CONVERTER: Record<\n EventActionFieldType,\n (amount: string) => string\n> = {\n [EventActionFieldType.Limit]: (amount) => {\n return wattToKiloWatt(parseNumber(amount)).toString();\n },\n [EventActionFieldType.SoC]: (amount) => {\n return amount;\n },\n};\n\nexport const ASSET_CATEGORY_TYPE_COLOR: Record<\n AssetCategoryType,\n TimeLineColor\n> = {\n [AssetCategoryType.EvCharger]: TimeLineColor.Orange,\n [AssetCategoryType.StorageUnit]: TimeLineColor.Green,\n [AssetCategoryType.SolarPanel]: TimeLineColor.Disabled,\n [AssetCategoryType.PowerMeter]: TimeLineColor.Disabled,\n [AssetCategoryType.BinaryLoad]: TimeLineColor.Disabled,\n};\n\nexport const SCHEDULER_ACTION_TYPE_TO_FIELD_TYPE: Record<\n SchedulerEventActionType,\n EventActionFieldType\n> = {\n [SchedulerEventActionType.EvPowerLimit]: EventActionFieldType.Limit,\n [SchedulerEventActionType.TargetSoC]: EventActionFieldType.SoC,\n};\n\nexport function getResourceEvent(\n scheduler: SchedulerEventsList,\n categories: AssetCategory[],\n assetId?: Id | Nil,\n) {\n return scheduler.events\n .filter((r) => {\n return isNil(assetId) || r.assetId === assetId;\n })\n .map((e) => {\n return mapResourceEvent(e, scheduler, categories);\n })\n .filter(isNotNil);\n}\n\nfunction mapResourceEvent(\n eventDetails: SchedulerEventDetails,\n scheduler: SchedulerEventsList,\n categories: AssetCategory[],\n): ResourceEvent | Nil {\n const asset = find(scheduler.assets, { id: eventDetails.assetId });\n if (isNil(asset)) {\n return null;\n }\n\n const category = find(categories, { id: asset.categoryId });\n if (isNil(category)) {\n return null;\n }\n\n const selectionFields = eventDetails.fields\n .map((field) => {\n return SCHEDULER_EVENT_ACTION_FIELD_TYPE_TRANSLATIONS[field.name](\n SCHEDULER_EVENT_ACTION_FIELD_VALUE_CONVERTER[field.name](field.value),\n );\n })\n .join('\\n');\n\n return {\n id: eventDetails.id.toString(),\n name: SCHEDULER_EVENT_ACTION_TYPE_TRANSLATIONS[eventDetails.action],\n description: asset.name,\n resourceId: eventDetails.assetId.toString(),\n color: ASSET_CATEGORY_TYPE_COLOR[category.type],\n tooltip:\n MESSAGES.general.scheduler.placeholder.tooltip(\n getTimeInLocalFormat(eventDetails.startDate),\n getTimeInLocalFormat(eventDetails.endDate),\n ) +\n '\\n' +\n SCHEDULER_EVENT_ACTION_TYPE_WITH_ASSET_TRANSLATIONS[eventDetails.action](\n asset.name,\n ) +\n '\\n' +\n selectionFields,\n duration: secondsToMilliseconds(eventDetails.duration || 0),\n rrule: `DTSTART:${moment().format('YYYYMMDD')}T000000Z\\n${\n eventDetails.rrule || ''\n }`,\n };\n}\n\nexport function getSchedulerAssets(\n scheduler: SchedulerEventsList,\n categories: AssetCategory[],\n assetId?: Id | Nil,\n controllableAsset?: ListAsset[] | Nil,\n): Resource[] {\n return scheduler.assets\n .filter((r) => {\n return isNil(assetId) || r.id === assetId;\n })\n .filter((r) => {\n return (\n isNil(controllableAsset) ||\n controllableAsset.find((v) => {\n return v.id === r.id;\n })\n );\n })\n .map((a) => {\n return mapAssetToResource(categories, a);\n })\n .filter(isNotNil);\n}\n\nfunction mapAssetToResource(\n categories: AssetCategory[],\n asset: SchedulerAssetDetails,\n): Resource | Nil {\n const category = find(categories, { id: asset.categoryId });\n if (isNil(category)) {\n return null;\n }\n return {\n id: asset.id.toString(),\n color: ASSET_CATEGORY_TYPE_COLOR[category.type],\n name: asset.name,\n };\n}\n\nexport function getSchedulerFieldFromActionType(\n action: SchedulerEventActionType,\n value: number | undefined,\n): SchedulerField {\n if (action === SchedulerEventActionType.EvPowerLimit) {\n return {\n name: SCHEDULER_ACTION_TYPE_TO_FIELD_TYPE[action],\n value: value ? kwhToWatt(value).toString() : '',\n };\n }\n return {\n name: SCHEDULER_ACTION_TYPE_TO_FIELD_TYPE[action],\n value: value ? value.toString() : '',\n };\n}\n","import { MESSAGES } from '@i18n/bems-cloud';\nimport { TemperatureUnit } from '@model';\nimport { DateFormat } from '@model/bems-cloud/bems/users';\n\nexport const DATE_FORMATS_TRANSLATIONS: Record = {\n [DateFormat.Europe]: MESSAGES.general.dateFormat.europe,\n [DateFormat.US]: MESSAGES.general.dateFormat.us,\n};\n\nexport const TEMPERATURES_TRANSLATIONS: Record = {\n [TemperatureUnit.Celsius]: MESSAGES.general.unit.temperature.celsius,\n [TemperatureUnit.Fahrenheit]: MESSAGES.general.unit.temperature.fahrenheit,\n};\n","import { yellow } from '@brightlayer-ui/colors';\nimport { BLUIColor } from '@brightlayer-ui/types';\nimport { MESSAGES } from '@i18n/bems-cloud';\nimport { Nil } from '@model';\nimport { WeatherCode } from '@model/bems-cloud/bems/devices';\n\nexport const WEATHER_CODE_TRANSLATIONS: Record = {\n [WeatherCode.Clear]: MESSAGES.general.weather.clear,\n [WeatherCode.Cloudy]: MESSAGES.general.weather.cloudy,\n [WeatherCode.Drizzle]: MESSAGES.general.weather.drizzle,\n [WeatherCode.Flurries]: MESSAGES.general.weather.flurries,\n [WeatherCode.Fog]: MESSAGES.general.weather.fog,\n [WeatherCode.FreezingDrizzle]: MESSAGES.general.weather.freezingDrizzle,\n [WeatherCode.FreezingRain]: MESSAGES.general.weather.freezingRain,\n [WeatherCode.HeavyFreezingRain]: MESSAGES.general.weather.heavyFreezingRain,\n [WeatherCode.HeavyIcePellets]: MESSAGES.general.weather.heavyIcePellets,\n [WeatherCode.HeavyRain]: MESSAGES.general.weather.heavyRain,\n [WeatherCode.HeavySnow]: MESSAGES.general.weather.heavySnow,\n [WeatherCode.IcePellets]: MESSAGES.general.weather.icePellets,\n [WeatherCode.LightFog]: MESSAGES.general.weather.lightFog,\n [WeatherCode.LightFreezingRain]: MESSAGES.general.weather.lightFreezingRain,\n [WeatherCode.LightIcePellets]: MESSAGES.general.weather.lightIcePellets,\n [WeatherCode.LightRain]: MESSAGES.general.weather.lightRain,\n [WeatherCode.LightSnow]: MESSAGES.general.weather.lightSnow,\n [WeatherCode.LightWind]: MESSAGES.general.weather.lightWind,\n [WeatherCode.MostlyClear]: MESSAGES.general.weather.mostlyClear,\n [WeatherCode.MostlyCloudy]: MESSAGES.general.weather.mostlyCloudy,\n [WeatherCode.PartlyCloudy]: MESSAGES.general.weather.partlyCloudy,\n [WeatherCode.Rain]: MESSAGES.general.weather.rain,\n [WeatherCode.Snow]: MESSAGES.general.weather.snow,\n [WeatherCode.StrongWind]: MESSAGES.general.weather.strongWind,\n [WeatherCode.Thunderstorm]: MESSAGES.general.weather.thunderstorm,\n [WeatherCode.Unknown]: '',\n [WeatherCode.Wind]: MESSAGES.general.weather.wind,\n};\n\nexport const WEATHER_CODE_ICONS: Record = {\n [WeatherCode.Clear]: 'wi-day-sunny',\n [WeatherCode.Cloudy]: 'wi-cloudy',\n [WeatherCode.Drizzle]: 'wi-showers',\n [WeatherCode.Flurries]: 'wi-snow-wind',\n [WeatherCode.Fog]: 'wi-fog',\n [WeatherCode.FreezingDrizzle]: 'wi-sleet',\n [WeatherCode.FreezingRain]: 'wi-sleet',\n [WeatherCode.HeavyFreezingRain]: 'wi-sleet',\n [WeatherCode.HeavyIcePellets]: 'wi-hail',\n [WeatherCode.HeavyRain]: 'wi-rain',\n [WeatherCode.HeavySnow]: 'wi-snow-wind',\n [WeatherCode.IcePellets]: 'wi-hail',\n [WeatherCode.LightFog]: 'wi-day-fog',\n [WeatherCode.LightFreezingRain]: 'wi-sleet',\n [WeatherCode.LightIcePellets]: 'wi-hail',\n [WeatherCode.LightRain]: 'wi-rain',\n [WeatherCode.LightSnow]: 'wi-snow',\n [WeatherCode.LightWind]: 'wi-windy',\n [WeatherCode.MostlyClear]: 'wi-day-sunny',\n [WeatherCode.MostlyCloudy]: 'wi-cloudy',\n [WeatherCode.PartlyCloudy]: 'wi-day-cloudy',\n [WeatherCode.Rain]: 'wi-rain',\n [WeatherCode.Snow]: 'wi-snow',\n [WeatherCode.StrongWind]: 'wi-strong-wind',\n [WeatherCode.Thunderstorm]: 'wi-thunderstorm',\n [WeatherCode.Unknown]: 'wi-na',\n [WeatherCode.Wind]: 'wi-windy',\n};\n\nexport const WEATHER_CODE_COLOR: Record = {\n [WeatherCode.Clear]: yellow,\n [WeatherCode.Cloudy]: undefined,\n [WeatherCode.Drizzle]: undefined,\n [WeatherCode.Flurries]: undefined,\n [WeatherCode.Fog]: undefined,\n [WeatherCode.FreezingDrizzle]: undefined,\n [WeatherCode.FreezingRain]: undefined,\n [WeatherCode.HeavyFreezingRain]: undefined,\n [WeatherCode.HeavyIcePellets]: undefined,\n [WeatherCode.HeavyRain]: undefined,\n [WeatherCode.HeavySnow]: undefined,\n [WeatherCode.IcePellets]: undefined,\n [WeatherCode.LightFog]: undefined,\n [WeatherCode.LightFreezingRain]: undefined,\n [WeatherCode.LightIcePellets]: undefined,\n [WeatherCode.LightRain]: undefined,\n [WeatherCode.LightSnow]: undefined,\n [WeatherCode.LightWind]: undefined,\n [WeatherCode.MostlyClear]: yellow,\n [WeatherCode.MostlyCloudy]: undefined,\n [WeatherCode.PartlyCloudy]: undefined,\n [WeatherCode.Rain]: undefined,\n [WeatherCode.Snow]: undefined,\n [WeatherCode.StrongWind]: undefined,\n [WeatherCode.Thunderstorm]: undefined,\n [WeatherCode.Unknown]: undefined,\n [WeatherCode.Wind]: undefined,\n};\n","import { WithId } from '@model';\n\nimport { AssetCategoryType } from './enums/asset-category-type';\n\nexport interface AssetCategory extends WithId {\n type: AssetCategoryType;\n supportScheduledEvents: boolean;\n}\n","export interface Asset
{\n assetName: string;\n timestamp: string;\n isOnline: boolean;\n noData: boolean;\n assetCategory: number;\n assetDetails: Details;\n}\n","export interface AssetMetric {\n value: number;\n unit: string;\n}\n","export enum AssetCategoryTypeId {\n EvCharger = 16,\n PowerMeter = 125,\n StorageUnit = 82,\n SolarPanel = 222,\n BinaryLoad = 400,\n}\n","export enum AssetCategoryType {\n EvCharger = 'EV Charger',\n StorageUnit = 'Storage Unit',\n PowerMeter = 'Power Meter',\n SolarPanel = 'Solar Panel',\n BinaryLoad = 'Binary Load',\n}\n","export enum AssetStatus {\n Available = 'Available',\n Charging = 'Charging',\n Consuming = 'Consuming',\n Disabled = 'Disabled',\n Discharging = 'Discharging',\n Enabled = 'Enabled',\n Error = 'Error',\n Fault = 'Fault',\n Faulted = 'Faulted',\n Finishing = 'Finishing',\n Idle = 'Idle',\n Initialising = 'Initialising',\n Injecting = 'Injecting',\n Offline = 'Offline',\n Online = 'Online',\n Preparing = 'Preparing',\n Reserved = 'Reserved',\n SuspendedEVSE = 'Suspended EVSE',\n Unavailable = 'Unavailable',\n Unknown = '',\n}\n","export enum EVChargerStatus {\n Available = 1,\n Preparing = 2,\n Charging = 3,\n Suspendedevse = 4,\n Initialising = 5,\n Finishing = 6,\n Reserved = 7,\n Unavailable = 8,\n Fault = 9,\n}\n","import { Asset } from '../asset-data';\nimport { EvChargerUnitDetails } from './ev-charger-unit-details';\n\nexport type EvChargerUnitAsset = Asset;\n","import { Nil } from '@model';\n\nimport { AssetMetric } from '../asset-metric';\nimport { EVChargerStatus } from '../enums/ev-status';\n\nexport interface EvChargerUnitDetails {\n totalConsumption: AssetMetric;\n plugs: Plug[] | Nil;\n}\n\nexport interface Plug {\n status: EVChargerStatus;\n currentChargingPower: AssetMetric;\n externalConstraint: AssetMetric;\n maxPower: AssetMetric;\n chargingStart: number;\n errorCode: string;\n}\n","export * from './asset-category';\nexport * from './asset-data';\nexport * from './asset-metric';\nexport * from './enums/asset-category-type';\nexport * from './enums/asset-category-type-id';\nexport * from './enums/asset-status';\nexport * from './enums/ev-status';\nexport * from './ev-charger/ev-charger-unit-asset';\nexport * from './ev-charger/ev-charger-unit-details';\nexport * from './list-asset';\nexport * from './power-meter/phases';\nexport * from './power-meter/power-meter-details';\nexport * from './power-meter/power-meter-top-metrics';\nexport * from './power-meter/power-meter-unit-asset';\nexport * from './solar-panel/solar-panel-asset';\nexport * from './solar-panel/solar-panel-details';\nexport * from './storage-unit/storage-unit-asset';\nexport * from './storage-unit/storage-unit-details';\nexport * from './total-and-phases';\n","import { Id, WithId, WithName } from '@model';\n\nimport { AssetStatus } from './enums/asset-status';\n\nexport interface ListAsset extends WithId, WithName {\n categoryId: Id;\n value: number | string;\n unit: string;\n status: AssetStatus;\n isControllable: boolean;\n}\n","import { AssetMetric } from '../asset-metric';\n\nexport interface Phases {\n phase1: AssetMetric;\n phase2: AssetMetric;\n phase3: AssetMetric;\n total: AssetMetric;\n}\n","import { AssetMetric } from '../asset-metric';\nimport { Phases } from './phases';\n\nexport interface PowerMeterDetails {\n activePower: Phases;\n apparentPower: Phases;\n current: Phases;\n powerFactor: Phases;\n reactivePower: Phases;\n voltage: Phases;\n frequency: AssetMetric;\n numberOfPhases: number;\n}\n","import { AssetMetric } from '../../../features/assets/components/asset-metric';\n\nexport interface PowerMeterTopMetrics {\n totalActivePowerMetric: AssetMetric;\n totalApparentPowerMetric: AssetMetric;\n totalReactivePowerMetric: AssetMetric;\n totalCurrentMetric: AssetMetric;\n powerFactorMetric: AssetMetric;\n frequencyMetric: AssetMetric;\n}\n","import { Asset } from '../asset-data';\nimport { PowerMeterDetails } from './power-meter-details';\n\nexport type PowerMeterAsset = Asset;\n","import { Asset } from '../asset-data';\nimport { SolarPanelDetails } from './solar-panel-details';\n\nexport type SolarPanelAsset = Asset;\n","import { AssetMetric } from '../asset-metric';\nimport { TotalAndPhases } from '../total-and-phases';\n\nexport interface SolarPanelDetails {\n dcInputPower: AssetMetric;\n dcInputCurrent1: AssetMetric;\n dcInputVoltage1: AssetMetric;\n dcInputPower1: AssetMetric;\n dcInputCurrent2: AssetMetric;\n dcInputVoltage2: AssetMetric;\n dcInputPower2: AssetMetric;\n acOutputActivePower: TotalAndPhases;\n acOutputReactivePower: TotalAndPhases;\n acOutputApparentPower: TotalAndPhases;\n acOutputMaxPower: AssetMetric;\n acOutputMaxPowerSetpoint: AssetMetric;\n acOutputVoltage: TotalAndPhases;\n acOutputCurrent: TotalAndPhases;\n inverterTemperature: AssetMetric;\n installedCapacity: AssetMetric;\n numberOfPhases: 0;\n}\n","import { Asset } from '../asset-data';\nimport { StorageUnitDetails } from './storage-unit-details';\n\nexport type StorageUnitAsset = Asset;\n","import { AssetMetric } from '../asset-metric';\nimport { TotalAndPhases } from '../total-and-phases';\n\nexport interface StorageUnitDetails {\n chargingStatus: number;\n activePower: AssetMetric;\n maxTemperature: AssetMetric;\n stateOfCharge: number;\n stringsOnline: number;\n stringsTotal: number;\n maxChargePower: AssetMetric;\n maxDischargePower: AssetMetric;\n energyChargeable: AssetMetric;\n energyDischargeable: AssetMetric;\n x1InputActivePower: TotalAndPhases;\n x1InputReactivePower: TotalAndPhases;\n x1InputApparentPower: TotalAndPhases;\n x1InputPowerFactor: TotalAndPhases;\n x1InputCurrent: TotalAndPhases;\n x1InputVoltage: TotalAndPhases;\n x1InputFrequency: AssetMetric;\n x3OutputActivePower: TotalAndPhases;\n x3OutputReactivePower: TotalAndPhases;\n x3OutputApparentPower: TotalAndPhases;\n x3OutputPowerFactor: TotalAndPhases;\n x3OutputCurrent: TotalAndPhases;\n x3OutputVoltage: TotalAndPhases;\n x3OutputFrequency: AssetMetric;\n firmwareVersion: string;\n numberOfPhases: number;\n}\n","import { AssetMetric } from './asset-metric';\n\nexport interface TotalAndPhases {\n total: AssetMetric;\n phase1: AssetMetric;\n phase2: AssetMetric;\n phase3: AssetMetric;\n}\n","import { WithId, WithName } from '@model';\n\nimport { ChartDataValue } from './chart-data-value';\nimport { ChartDataFieldStep } from './enums/chart-data-field-step';\nimport { ChartDataFieldUnit } from './enums/chart-data-field-unit';\nimport { DataType } from './enums/data-type';\n\nexport interface ChartDataField extends WithId, WithName {\n dataType: DataType;\n dataUnit: ChartDataFieldUnit;\n measured: ChartDataValue[];\n forecast?: ChartDataValue[];\n step: ChartDataFieldStep;\n}\n","import { ChartDataLimitType } from './enums/chart-data-limit-type';\n\nexport interface ChartDataLimit {\n type: ChartDataLimitType;\n value: number;\n}\n","import { Nil } from '@model';\n\nexport interface ChartDataValue {\n x: number;\n y: number | Nil;\n}\n","import { ChartDataField } from './chart-data-field';\nimport { ChartDataLimit } from './chart-data-limit';\n\nexport interface ChartData {\n fields: ChartDataField[];\n limits: ChartDataLimit[];\n}\n","import { WithId } from '@model';\n\nimport { ChartType } from './enums/chart-type';\nimport { MeasureType } from './enums/measure-type';\n\nexport interface Chart extends WithId {\n type: ChartType;\n measureType: MeasureType;\n}\n","import { Nil } from '@model';\nimport { filter } from 'lodash-es';\n\nimport { Chart } from './chart';\nimport { ChartType } from './enums/chart-type';\nimport { SolarRadiation } from './solar-radiation';\n\nexport interface Charts {\n charts: Chart[];\n timezone: string;\n solarRadiation: SolarRadiation | Nil;\n}\n\nexport function getSourceChart({ charts }: Charts): Chart[] {\n return filter(charts, { type: ChartType.Source });\n}\n\nexport function getLoadChart({ charts }: Charts): Chart[] {\n return filter(charts, { type: ChartType.Load });\n}\n\nexport function getPerformanceMetricsChart({ charts }: Charts): Chart[] {\n return filter(charts, { type: ChartType.PerformanceMetrics });\n}\n","export enum ChartDataFieldStep {\n FiveMinutes = '5_min',\n Day = 'day',\n Month = 'month',\n}\n","export enum ChartDataFieldUnit {\n GigaWatt = 'GW',\n GigaWattHour = 'GWh',\n KiloWatt = 'kW',\n KiloWattHour = 'kWh',\n MegaWatt = 'MW',\n MegaWattHour = 'MWh',\n Watt = 'W',\n WattHour = 'Wh',\n Percentage = '%',\n}\n","// This enum has \"human readable\" values because the backend passed the type of the limit as a \"name\".\n// Unfortunately we can't use the name directly in the UI and using a \"string\" is annoying for business logics.\n// So we have turned the name into an enum.\nexport enum ChartDataLimitType {\n ConnectionCapacity = 'Connection capacity',\n GridInjectionLimit = 'Grid injection limit',\n PeakShaving = 'Peak shaving',\n}\n","export enum ChartType {\n Load = 'load',\n Source = 'source',\n PerformanceMetrics = 'performance_metrics',\n}\n","export enum DataType {\n Grid = 'grid',\n OtherLoad = 'other_load',\n PV = 'pv',\n EvCharger = 'ev_charger',\n Storage = 'storage',\n SelfSufficiency = 'self_sufficiency',\n SelfGeneration = 'self_generation',\n StateOfCharge = 'soc',\n}\n","export enum MeasureType {\n Power = 'power',\n Energy = 'energy',\n}\n","export * from './chart';\nexport * from './chart-data';\nexport * from './chart-data-field';\nexport * from './chart-data-limit';\nexport * from './chart-data-value';\nexport * from './charts';\nexport * from './enums/chart-data-field-step';\nexport * from './enums/chart-data-field-unit';\nexport * from './enums/chart-data-limit-type';\nexport * from './enums/chart-type';\nexport * from './enums/data-type';\nexport * from './enums/measure-type';\nexport * from './solar-radiation';\n","export interface SolarRadiation {\n periodStart: Date;\n periodEnd: Date;\n}\n","import { Nil } from '@model';\n\nimport { EnergyPointUnit } from './enums/energy-point-unit';\n\nexport interface EnergyPointProperty {\n key: string;\n unit: EnergyPointUnit | Nil;\n value: string;\n}\n","import { Nil } from '@model';\nimport { isNil } from 'lodash-es';\n\nimport { EnergyPointProperty } from './energy-point-property';\nimport { EnergyPointConnection } from './enums/energy-point-connection';\nimport { EnergyPointType } from './enums/energy-point-type';\nimport { EnergyPointUnit } from './enums/energy-point-unit';\n\nexport interface EnergyPoint {\n node: EnergyPointType;\n properties: EnergyPointProperty[];\n type: EnergyPointConnection;\n}\n\nexport function getPower(energyPoint: EnergyPoint): EnergyPointProperty | Nil {\n return getProperty(energyPoint, 'power');\n}\n\nexport function getPowerValue(energyPoint: EnergyPoint): number | Nil {\n return getPropertyValue(energyPoint, 'power');\n}\n\nexport function getPowerUnit(energyPoint: EnergyPoint): EnergyPointUnit | Nil {\n return getPropertyUnit(energyPoint, 'power');\n}\n\nexport function getInstalledValue(energyPoint: EnergyPoint): number | Nil {\n return getPropertyValue(energyPoint, 'installed');\n}\n\nexport function getCriticalValue(energyPoint: EnergyPoint): number | Nil {\n return getPropertyValue(energyPoint, 'critical');\n}\n\nexport function getSocValue(energyPoint: EnergyPoint): number | Nil {\n return getPropertyValue(energyPoint, 'soc');\n}\nexport function getSocUnit(energyPoint: EnergyPoint): EnergyPointUnit | Nil {\n return getPropertyUnit(energyPoint, 'soc');\n}\n\nexport function getProperty(\n energyPoint: EnergyPoint,\n key: string,\n): EnergyPointProperty | undefined {\n return energyPoint.properties.find((property) => {\n return property.key.endsWith(key);\n });\n}\n\nexport function getPropertyValue(\n energyPoint: EnergyPoint,\n key: string,\n): number | Nil {\n const property = getProperty(energyPoint, key);\n\n if (isNil(property)) {\n return undefined;\n }\n\n const value = Number(property.value);\n\n if (isNaN(value)) {\n return undefined;\n }\n\n return value;\n}\n\nexport function getPropertyUnit(\n energyPoint: EnergyPoint,\n key: string,\n): EnergyPointUnit | Nil {\n const property = getProperty(energyPoint, key);\n\n if (isNil(property)) {\n return undefined;\n }\n\n return property.unit;\n}\n","export enum EnergyPointConnection {\n Disconnected = 'DISCONNECTED',\n None = 'NONE',\n Receiver = 'RECEIVER',\n Emitter = 'EMITTER',\n Offline = 'OFFLINE',\n}\n","export enum EnergyPointType {\n EvChargerNode = 'evChargerNode',\n GridNode = 'gridNode',\n Loads = 'loads',\n PvNode = 'pvNode',\n StorageNode = 'storageNode',\n BuildingPower = 'buildingPower',\n BuildingPowerConsumption = 'buildingPowerConsumption',\n BuildingPowerProduction = 'buildingPowerProduction',\n}\n","export enum EnergyPointUnit {\n MW = 'MW',\n KW = 'kW',\n W = 'W',\n Percent = '%',\n None = '',\n}\n","export enum TrendType {\n Up = 'up',\n Down = 'down',\n Flat = 'flat',\n}\n","export enum ValueTrendType {\n GridNode = 'gridNode',\n PvNode = 'pvNode',\n SelfSufficiencyNode = 'selfSufficiencyNode',\n EvChargerNode = 'evChargerNode',\n EnergyCostsNode = 'energyCostsNode',\n}\n","export * from './energy-point';\nexport * from './energy-point-property';\nexport * from './enums/energy-point-connection';\nexport * from './enums/energy-point-type';\nexport * from './enums/energy-point-unit';\nexport * from './enums/trend-type';\nexport * from './enums/value-trend-type';\nexport * from './value-trend';\nexport * from './value-trend-data';\nexport * from './value-trends';\n","import { TrendType } from './enums/trend-type';\n\nexport interface ValueTrendData {\n trend: TrendType;\n value: string;\n unit: string;\n}\n","import { ValueTrendType } from './enums/value-trend-type';\nimport { ValueTrendData } from './value-trend-data';\n\nexport interface ValueTrend {\n day: ValueTrendData;\n month: ValueTrendData;\n type: ValueTrendType;\n}\n","import { ValueTrend } from './value-trend';\n\nexport interface ValueTrends {\n gridNode: ValueTrend;\n pvNode: ValueTrend;\n selfSufficiencyNode: ValueTrend;\n evChargerNode: ValueTrend;\n energyCostsNode: ValueTrend;\n}\n","import { Nil } from '@model';\nimport { Month } from '../internals';\n\nexport interface AdvancedPeakShavingConfiguration {\n peakShavingEnabled: boolean;\n peakShavingStatus: PeakShavingStatus;\n billingPeriod: BillingPeriod | Nil;\n monthlyConfiguration?: MonthlyConfiguration[] | Nil;\n yearlyConfiguration?: YearlyConfiguration[] | Nil;\n}\n\nexport interface MonthlyConfiguration {\n year: number;\n month: Month;\n limit: number;\n read?: number;\n unit: string;\n closed: boolean;\n}\n\nexport interface YearlyConfiguration {\n year: number;\n limit: number;\n read?: number;\n unit: string;\n closed: boolean;\n}\n\nexport enum PeakShavingStatus {\n Active = 'active',\n Pending = 'pending',\n}\n\nexport enum BillingPeriod {\n Yearly = 'yearly',\n Monthly = 'monthly',\n}\n","export interface AdvancedPeakShavingHistory {\n monthlyHistory: MonthlyHistory[];\n yearlyHistory: YearlyHistory[];\n}\n\nexport interface MonthlyHistory {\n year: number;\n month: number;\n read: number;\n unit: string;\n}\n\nexport interface YearlyHistory {\n year: number;\n read: number;\n unit: string;\n}\n","import { Id, Nil, WithId, WithName } from '@model';\n\nimport { Currency } from '../internals';\n\nexport interface DeviceSettings extends WithId, WithName {\n deviceId: Id;\n country: string | Nil;\n countryId: Id | Nil;\n postalCode: string | Nil;\n postalCodeId: Id | Nil;\n postalCodeInfo: SelectedPostalCode | Nil;\n currency: Currency;\n currencyId: Id | Nil;\n systemGoal: number;\n lobbyView: LobbyViewInfo;\n}\n\nexport interface SelectedPostalCode extends WithId, WithName {\n extendedName: string;\n timezone: SelectedTimezone;\n}\n\nexport interface SelectedTimezone extends WithId, WithName {\n timezone: string;\n dstOffset: number;\n rawOffset: number;\n}\n\nexport interface LobbyViewInfo {\n isActive: boolean;\n url?: string | Nil;\n}\n","import { WithId, WithName } from '@model';\n\nexport interface Device extends WithId, WithName {\n profileId?: string;\n macAddress?: string;\n serial?: string;\n asset?: string;\n family?: string;\n hardware?: string;\n model?: string;\n modelLongName?: string;\n modelShortName?: string;\n role?: string;\n software?: string;\n vendor?: string;\n}\n","export enum WeatherCode {\n Clear = 1000,\n Cloudy = 1001,\n Drizzle = 4000,\n Flurries = 5001,\n Fog = 2000,\n FreezingDrizzle = 6000,\n FreezingRain = 6001,\n HeavyFreezingRain = 6201,\n HeavyIcePellets = 7101,\n HeavyRain = 4201,\n HeavySnow = 5101,\n IcePellets = 7000,\n LightFog = 2100,\n LightFreezingRain = 6200,\n LightIcePellets = 7102,\n LightRain = 4200,\n LightSnow = 5100,\n LightWind = 3000,\n MostlyClear = 1100,\n MostlyCloudy = 1102,\n PartlyCloudy = 1101,\n Rain = 4001,\n Snow = 5000,\n StrongWind = 3002,\n Thunderstorm = 8000,\n Unknown = 0,\n Wind = 3001,\n}\n","import { Nil } from '@model';\n\nexport interface GridSettings {\n rateType: RateTypes | Nil;\n tariff: number | Nil;\n startOffPeak: Date | Nil;\n endOffPeak: Date | Nil;\n tariffOffPeak: number | Nil;\n startPeak: Date | Nil;\n endPeak: Date | Nil;\n tariffPeak: number | Nil;\n}\n\nexport enum RateTypes {\n OneRate = 'oneRate',\n TwoRates = 'twoRates',\n}\n\nexport enum ConsumptionRateType {\n OffPeak = 'off-peak',\n Peak = 'peak',\n}\n\nexport enum ThresholdGranularity {\n Yearly = 'yearly',\n Monthly = 'monthly',\n}\n","export * from './advanced-peak-shaving-configuration';\nexport * from './advanced-peak-shaving-history';\nexport * from './device';\nexport * from './device-settings';\nexport * from './enums/weather-code';\nexport * from './grid-settings';\nexport * from './weather';\n","import { TemperatureUnit } from '@model';\n\nimport { WeatherCode } from './enums/weather-code';\n\nexport interface Weather {\n temperature: number;\n unit: TemperatureUnit;\n weatherCode: WeatherCode;\n}\n","import { WithId, WithName } from '@model';\n\nexport interface Country extends WithId, WithName {\n geonameId: string;\n isoAlpha2: string;\n isoAlpha3: string;\n isoAlphaNumeric: number;\n}\n","import { WithId, WithName } from '@model';\n\nexport interface Currency extends WithId, WithName {\n symbol: string;\n code: string;\n}\n\nexport interface CurrencyExtended extends Currency {\n symbol: string;\n code: string;\n extendedName: string;\n}\n","export * from './country';\nexport * from './currency';\nexport * from './month';\nexport * from './postal-code';\n","export enum Month {\n January = '1',\n February = '2',\n March = '3',\n April = '4',\n May = '5',\n June = '6',\n July = '7',\n August = '8',\n September = '9',\n October = '10',\n November = '11',\n December = '12',\n}\n","import { WithId, WithName } from '@model';\n\nexport interface PostalCode extends WithId, WithName {\n code: string;\n extendedName: string;\n timezone: Timezone;\n countryId: string;\n coordinates: Coordinates;\n}\n\nexport interface Timezone extends WithId, WithName {\n timezone: string;\n gmtOffset: number;\n dstOffset: number;\n rawOffset: number;\n}\n\nexport interface Coordinates {\n lat: number;\n lng: number;\n}\n","export enum NotificationSeverityLevel {\n Info = 'INFO',\n Warning = 'WARNING',\n Critical = 'CRITICAL',\n}\n","export * from './enums/notification-severity-level';\nexport * from './notification';\nexport * from './notification-count';\nexport * from './read-notifications';\n","export interface NotificationCount {\n critical: number;\n info: number;\n warning: number;\n}\n","import { Id } from '@model';\n\nimport { NotificationSeverityLevel } from './enums/notification-severity-level';\n\nexport interface Notification {\n id: Id;\n severityLevel: NotificationSeverityLevel;\n message: string;\n createdAt: Date;\n isRead: boolean;\n}\n","export interface ReadNotifications {\n notificationIDs: string[];\n}\n","export * from './role';\n","import { Nil } from '@model';\n\nexport enum Role {\n Administrator = 0,\n Reader = 1,\n}\n\nexport function isAdministrator(role: Role | Nil): boolean {\n return role === Role.Administrator;\n}\n\nexport function isReader(role: Role | Nil): boolean {\n return role === Role.Reader;\n}\n","export * from './scheduler-event';\nexport * from './scheduler-events-list';\n","import { Id } from '@model';\nimport { isNil } from 'lodash';\n\nimport { AssetCategoryTypeId } from '../assets';\nimport { SchedulerEventActionType } from './scheduler-events-list';\n\nexport interface SchedulerEvent {\n assetTypeId: Id;\n assetId: Id;\n from: Date;\n until: Date;\n actionId: SchedulerEventActionType;\n stateOfCharge?: number;\n maxPowerRate?: number;\n}\n\nexport function makeSchedulerEvent(\n partial: Partial,\n): SchedulerEvent {\n if (isNil(partial.assetTypeId)) {\n throw new Error('Missing Scheduler Event property: assetTypeId');\n }\n if (isNil(partial.assetId)) {\n throw new Error('Missing Scheduler Event property: assetId');\n }\n if (isNil(partial.from)) {\n throw new Error('Missing Scheduler Event property: from');\n }\n if (isNil(partial.until)) {\n throw new Error('Missing Scheduler Event property: until');\n }\n if (isNil(partial.actionId)) {\n throw new Error('Missing Scheduler Event property: actionId');\n }\n if (\n partial.assetTypeId === AssetCategoryTypeId.EvCharger &&\n isNil(partial.maxPowerRate)\n ) {\n throw new Error('Missing Scheduler Event property: maxPowerRate');\n }\n if (\n partial.assetTypeId === AssetCategoryTypeId.StorageUnit &&\n isNil(partial.stateOfCharge)\n ) {\n throw new Error('Missing Scheduler Event property: stateOfCharge');\n }\n\n return {\n assetTypeId: partial.assetTypeId,\n assetId: partial.assetId,\n from: partial.from,\n until: partial.until,\n actionId: partial.actionId,\n stateOfCharge: partial.stateOfCharge,\n maxPowerRate: partial.maxPowerRate,\n };\n}\n","import { Id, WithId, WithName } from '@model';\n\nexport interface SchedulerEventsList {\n assets: SchedulerAssetDetails[];\n events: SchedulerEventDetails[];\n}\n\nexport interface SchedulerAssetDetails extends WithId, WithName {\n categoryId: Id;\n}\n\nexport interface SchedulerEventDetails extends WithId {\n startDate: string;\n endDate: string;\n assetId: Id;\n action: SchedulerEventActionType;\n fields: SchedulerField[];\n rrule?: string;\n duration?: number;\n}\n\nexport interface SchedulerField {\n name: EventActionFieldType;\n value: string;\n}\n\nexport enum SchedulerEventActionType {\n EvPowerLimit = 'evPowerLimit',\n TargetSoC = 'targetSoC',\n}\n\nexport enum EventActionFieldType {\n Limit = 'limit',\n SoC = 'soC',\n}\n","import { isNil } from 'lodash-es';\n\nexport interface ChangePassword {\n oldPassword: string;\n newPassword: string;\n confirmPassword: string;\n}\n\nexport function makeChangePassword(\n partial: Partial,\n): ChangePassword {\n if (isNil(partial.confirmPassword)) {\n throw new Error('Missing organization property: confirmPassword');\n }\n\n if (isNil(partial.newPassword)) {\n throw new Error('Missing organization property: confirmPassword');\n }\n\n if (isNil(partial.oldPassword)) {\n throw new Error('Missing organization property: confirmPassword');\n }\n\n return {\n confirmPassword: partial.confirmPassword,\n newPassword: partial.newPassword,\n oldPassword: partial.oldPassword,\n };\n}\n","export enum DateFormat {\n Europe = 'DD/MM/YY',\n US = 'MM/DD/YY',\n}\n","export enum LanguageCode {\n German = 'de-ch',\n Dutch = 'nl-nl',\n English = 'en',\n French = 'fr-ch',\n Norwegian = 'no-no',\n}\n","export * from './change-password';\nexport * from './enums/date-format';\nexport * from './enums/language';\nexport * from './language-option';\nexport * from './user';\n","import { LanguageCode } from './enums/language';\n\nexport interface LanguageOption {\n settingKey: LanguageCode;\n settingName: string;\n}\n","import { WithId } from '@model';\nimport { TemperatureUnit } from '@model/temperature';\n\nimport { DateFormat } from './enums/date-format';\nimport { LanguageCode } from './enums/language';\n\nexport interface User extends WithId {\n email: string;\n firstName: string;\n lastName: string;\n phoneNumber: string;\n acceptedEula?: string;\n language: LanguageCode;\n temperatureUnit: TemperatureUnit;\n dateFormat: DateFormat;\n}\n\nexport function getUserDisplayName({ firstName, lastName }: User): string {\n return `${firstName} ${lastName}`;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';\nimport { ErrorHandler, Injectable, Injector, NgZone } from '@angular/core';\nimport { isNotNil } from '@core/is-not-nil';\nimport { environment } from '@env/bems-cloud/environment';\nimport { get, has } from 'lodash-es';\nimport {\n Subject,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n take,\n} from 'rxjs';\n\nimport { Nil } from '@model';\nimport { SaveTrapService } from '@ui/save-trap';\nimport { ErrorCode } from './bems/api/bems-api.utils';\nimport { NavigationService } from './bems/core/services';\nimport { checkUrlMatch } from './bems/core/utils';\nimport { ApiErrorMessage } from './login-portal/api';\nimport { AUTH_URL_SEGMENT, LOGIN_URL_SEGMENT } from './login-portal/core/const';\nimport { CurrentDeviceService } from './store/current-device';\n@Injectable()\nexport class GlobalErrorHandler implements ErrorHandler {\n public constructor(private injector: Injector) {\n const zone = this.injector.get(NgZone);\n this.errorSubject$\n .pipe(debounceTime(250), distinctUntilChanged())\n .subscribe((error) => {\n zone.run(() => {\n this.handleApiError(error);\n });\n });\n }\n\n private errorSubject$ = new Subject();\n\n public handleError(error: any): void {\n this.errorSubject$.next(error);\n }\n\n private handleApiError(error: any): void {\n if (!environment.production) {\n console.error(error);\n }\n\n //we have to use injector here to get the service because of circular dependency\n const navigationService = this.injector.get(NavigationService);\n\n const httpErrorResponse = this.getHttpErrorResponse(error);\n\n if (isNotNil(httpErrorResponse) || this.isApiError(httpErrorResponse)) {\n if (httpErrorResponse.status === HttpStatusCode.Unauthorized) {\n this.handleUnauthorizedError(httpErrorResponse, navigationService);\n }\n if (httpErrorResponse.status === HttpStatusCode.Forbidden) {\n this.handleForbiddenError(httpErrorResponse, navigationService);\n }\n if (httpErrorResponse.status === HttpStatusCode.NotFound) {\n this.handleNotFoundError(httpErrorResponse, navigationService);\n }\n // 500 and 503 responses follow a different payload structure and for those\n // cases we only care about the status code.\n if (httpErrorResponse.status === HttpStatusCode.InternalServerError) {\n this.markFormAsPristine();\n navigationService.navigateToInternalServerError();\n }\n if (httpErrorResponse.status === HttpStatusCode.ServiceUnavailable) {\n this.markFormAsPristine();\n navigationService.navigateToServiceUnavailable();\n }\n }\n }\n\n private getHttpErrorResponse(error: any): HttpErrorResponse | Nil {\n if (error instanceof HttpErrorResponse) {\n return error;\n }\n if (has(error, 'rejection')) {\n const rejection = get(error, 'rejection');\n return rejection instanceof HttpErrorResponse ? rejection : undefined;\n }\n return undefined;\n }\n\n private isApiError(error: unknown): error is HttpErrorResponse {\n if (error instanceof HttpErrorResponse) {\n if (isNotNil(error.url)) {\n return error.url.includes(environment.urls.api);\n }\n }\n return false;\n }\n\n private handleNotFoundError(\n httpErrorResponse: HttpErrorResponse | Nil,\n navigationService: NavigationService,\n ): void {\n this.markFormAsPristine();\n\n const service = this.injector.get(CurrentDeviceService);\n const apiErrorMessage: ApiErrorMessage | Nil =\n httpErrorResponse?.error.errors?.[0]?.messages?.[0];\n\n // if we detect a \"4001 Device Not Found\" error we redirect the user to the\n // first available device or to the \"no device\" page if there are no devices\n if (apiErrorMessage?.code === ErrorCode.DeviceNotFound) {\n combineLatest([service.device$, service.devices$])\n .pipe(take(1))\n .subscribe(([device, devices]) => {\n const availableDevices = (devices ?? []).filter((d) => {\n return d.id !== device?.id;\n });\n if (availableDevices.length === 0) {\n navigationService.navigateToNoDevicePage();\n } else {\n navigationService.navigateToDashboard(availableDevices[0]);\n }\n });\n } else if (apiErrorMessage?.code === ErrorCode.AssetNotFound) {\n service.deviceRequired$.pipe(take(1)).subscribe((device) => {\n navigationService.navigateToAssets(device);\n });\n } else if (apiErrorMessage?.code === ErrorCode.PermissionNotFound) {\n service.deviceRequired$.pipe(take(1)).subscribe((device) => {\n navigationService.navigateToUsers(device);\n });\n } else {\n navigationService.navigateToNotFound();\n }\n }\n\n private handleUnauthorizedError(\n httpErrorResponse: HttpErrorResponse | Nil,\n navigationService: NavigationService,\n ): void {\n this.markFormAsPristine();\n\n if (checkUrlMatch([LOGIN_URL_SEGMENT, AUTH_URL_SEGMENT])) {\n return;\n }\n\n const apiErrorMessage: ApiErrorMessage | Nil =\n httpErrorResponse?.error.errors?.[0]?.messages?.[0];\n\n if (apiErrorMessage?.code === ErrorCode.AccessTokenExpired) {\n navigationService.navigateToSessionExpired();\n } else {\n navigationService.navigateToLogin();\n }\n }\n\n private handleForbiddenError(\n httpErrorResponse: HttpErrorResponse | Nil,\n navigationService: NavigationService,\n ): void {\n this.markFormAsPristine();\n\n const apiErrorMessage: ApiErrorMessage | Nil =\n httpErrorResponse?.error.errors?.[0]?.messages?.[0];\n if (apiErrorMessage?.code === ErrorCode.EULANotAccepted) {\n navigationService.navigateToEULAAccept();\n } else {\n navigationService.navigateToForbidden();\n }\n }\n\n private markFormAsPristine() {\n const trapService = this.injector.get(SaveTrapService);\n trapService.markAsPristine();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Nil } from '@model';\nimport {\n Login,\n LoginResponse,\n ResetPassword,\n SignUp,\n} from '@model/bems-cloud/login-portal/auth';\nimport { RecoverPassword } from '@model/bems-cloud/login-portal/auth/recovery';\nimport { Observable } from 'rxjs';\n\nimport { LoginPortalApiService } from '../login-portal-api.service';\nimport { ApiErrorResponse } from '../login-portal-api.types';\nimport { LoginJson, LoginResponseJson, LoginResponseJsonSchema } from './io';\nimport { RecoverPasswordJson } from './io/recover-password.io';\nimport { ResetPasswordJson } from './io/reset-password.io';\nimport { SignUpJson } from './io/signup.io';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthApiService extends LoginPortalApiService {\n public constructor(httpClient: HttpClient) {\n super(httpClient);\n }\n\n public signIn(login: Login): Observable {\n return this.post({\n endpoint: 'auth/sign-in',\n payload: login,\n payloadDeserializer: (payload) => {\n return payload;\n },\n responseSchema: LoginResponseJsonSchema,\n responseSerializer: (response) => {\n return response;\n },\n });\n }\n\n public signUp(signup: SignUp): Observable {\n return this.postWithoutResponse({\n endpoint: 'account/registration/signup',\n payload: signup,\n payloadDeserializer: (payload) => {\n return payload;\n },\n });\n }\n\n public recoverPassword(\n recoverPassword: RecoverPassword,\n ): Observable {\n return this.postWithoutResponse({\n endpoint: 'account/auth/recovery',\n payload: recoverPassword,\n payloadDeserializer: (payload) => {\n return payload;\n },\n });\n }\n\n public resetPassword(\n resetPassword: ResetPassword,\n ): Observable {\n return this.postWithoutResponse({\n endpoint: 'account/auth/password',\n payload: resetPassword,\n payloadDeserializer: (payload) => {\n return payload;\n },\n });\n }\n}\n","export * from './auth-api.service';\nexport * from './io';\n","export * from './login-response.io';\nexport * from './login.io';\n","import { z } from 'zod';\n\nexport const LoginResponseDetailsJsonSchema = z.object({\n exp: z.string(),\n iat: z.string(),\n});\n\nexport const LoginResponseJsonSchema = z.object({\n details: LoginResponseDetailsJsonSchema,\n response: z.string(),\n});\n\nexport type LoginResponseJson = z.infer;\n","import { z } from 'zod';\n\nexport const LoginJsonSchema = z.object({\n email: z.string(),\n password: z.string(),\n});\n\nexport type LoginJson = z.infer;\n","import {\n HttpClient,\n HttpErrorResponse,\n HttpStatusCode,\n} from '@angular/common/http';\nimport { environment } from '@env/bems-cloud/environment';\nimport { Observable, catchError, map, of } from 'rxjs';\nimport { ZodError, z } from 'zod';\n\nimport {\n ApiErrorResponse,\n PaginatedResults,\n PaginatedResultsJsonSchema,\n} from './login-portal-api.types';\n\nexport abstract class LoginPortalApiService {\n public constructor(private httpClient: HttpClient) {}\n\n protected post({\n endpoint,\n payload,\n responseSchema,\n payloadDeserializer: deserializer,\n responseSerializer: serializer,\n }: {\n endpoint: string;\n payload: Payload;\n responseSchema: z.Schema;\n payloadDeserializer: (payload: Payload) => PayloadJson;\n responseSerializer: (response: ResponseJson) => Response;\n }): Observable {\n return this.httpClient\n .post(\n `${environment.urls.api}/${endpoint}`,\n deserializer(payload),\n )\n .pipe(\n map((response) => {\n return serializer(responseSchema.parse(response));\n }),\n catchError((response: HttpErrorResponse) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected get({\n endpoint,\n schema,\n serializer,\n }: {\n endpoint: string;\n schema: z.Schema;\n serializer: (response: Response) => Model;\n }): Observable {\n return this.httpClient\n .get(`${environment.urls.api}/${endpoint}`)\n .pipe(\n map((response) => {\n return serializer(schema.parse(response));\n }),\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected postWithoutResponse({\n endpoint,\n payload,\n payloadDeserializer: deserializer,\n }: {\n endpoint: string;\n payload: Payload;\n payloadDeserializer: (payload: Payload) => PayloadJson;\n }): Observable {\n return this.httpClient\n .post(\n `${environment.urls.api}/${endpoint}`,\n deserializer(payload),\n )\n .pipe(\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n protected list({\n endpoint,\n schema,\n serializer,\n }: {\n endpoint: string;\n schema: z.Schema;\n serializer: (response: Response) => Model;\n }): Observable | ApiErrorResponse> {\n return this.httpClient\n .get(`${environment.urls.api}/${endpoint}`)\n .pipe(\n map((response) => {\n const results = PaginatedResultsJsonSchema(schema).parse(response);\n return {\n ...results,\n items: (results.items || []).map(serializer),\n };\n }),\n catchError((response: HttpErrorResponse | ZodError) => {\n return of(this.getApiErrorResponse(response));\n }),\n );\n }\n\n private getApiErrorResponse(\n response: HttpErrorResponse | ZodError,\n ): ApiErrorResponse {\n if (response instanceof ZodError) {\n console.error(response);\n throw new Error();\n }\n\n // If the response is a 500 or 503 we want to throw it so that the global\n // error handler can handle it.\n if (\n response.status === HttpStatusCode.InternalServerError ||\n response.status === HttpStatusCode.ServiceUnavailable\n ) {\n throw response;\n }\n\n return {\n code: response.status,\n errors: response.error.errors,\n message: response.error.messages,\n };\n }\n}\n","import { has } from 'lodash-es';\nimport { z } from 'zod';\n\nexport interface ApiErrorResponse {\n errors?: ApiError[];\n code: number;\n message?: string;\n}\n\nexport interface ApiError {\n field: string;\n messages: ApiErrorMessage[];\n}\n\nexport interface ApiErrorMessage {\n code: number;\n message: string;\n description: string;\n}\n\nexport function isApiErrorResponse(\n response: unknown,\n): response is ApiErrorResponse {\n return has(response, 'errors');\n}\n\nexport interface PaginatedResults {\n size: number;\n total: number;\n next: string;\n previous: string;\n items: T[];\n}\n\nexport const PaginatedResultsJsonSchema = (\n schema: Schema,\n) => {\n return z.object({\n size: z.number(),\n total: z.number(),\n next: z.string(),\n previous: z.string(),\n items: z.array(schema).or(z.null()),\n });\n};\n","export * from './navigation';\n","export const ACCEPT_URL_SEGMENT = 'accept';\nexport const ACCOUNT_URL_SEGMENT = 'account';\nexport const APPLICATIONS_URL_PARAMETER = ':name';\nexport const APPLICATIONS_URL_SEGMENT = 'applications';\nexport const AUTH_URL_SEGMENT = 'authorize';\nexport const CREATE_URL_SEGMENT = 'create';\nexport const ERROR_URL_SEGMENT = 'error';\nexport const EULA_URL_SEGMENT = 'eula';\nexport const FLOW_URL_PARAMETER = ':flow';\nexport const FORGOT_PASSWORD_URL_SEGMENT = 'forgot-password';\nexport const LOGIN_URL_SEGMENT = 'login';\nexport const RESET_URL_SEGMENT = 'reset';\nexport const SUCCESS_URL_SEGMENT = 'success';\nexport const VERIFY_EMAIL_URL_SEGMENT = 'verify-email';\n\n/* EULA */\nexport const EULA_PAGE_ROUTE_URL = EULA_URL_SEGMENT;\nexport const EULA_ACCEPT_PAGE_URL = `${EULA_URL_SEGMENT}/${ACCEPT_URL_SEGMENT}`;\nexport const EULA_PAGE_URL_SEGMENTS = [LOGIN_URL_SEGMENT, EULA_URL_SEGMENT];\nexport const EULA_ACCEPT_PAGE_URL_SEGMENTS = [\n LOGIN_URL_SEGMENT,\n EULA_URL_SEGMENT,\n ACCEPT_URL_SEGMENT,\n];\n\n/* VERIFY EMAIL */\nexport const VERIFY_EMAIL_PAGE_ROUTE_URL = `${FLOW_URL_PARAMETER}/${VERIFY_EMAIL_URL_SEGMENT}`;\n\n/* RESET PASSWORD */\nexport const RESET_PASSWORD_PAGE_URL_SEGMENTS = [\n LOGIN_URL_SEGMENT,\n FORGOT_PASSWORD_URL_SEGMENT,\n RESET_URL_SEGMENT,\n];\nexport const RESET_PASSWORD_VERIFY_EMAIL_PAGE_ROUTER_LINK = [\n FORGOT_PASSWORD_URL_SEGMENT,\n VERIFY_EMAIL_URL_SEGMENT,\n];\nexport const RESET_PASSWORD_PAGE_ROUTE_URL = `${FORGOT_PASSWORD_URL_SEGMENT}/${RESET_URL_SEGMENT}`;\nexport const RESET_PASSWORD_SUCCESS_PAGE_ROUTE_URL = `${FORGOT_PASSWORD_URL_SEGMENT}/${RESET_URL_SEGMENT}/${SUCCESS_URL_SEGMENT}`;\nexport const RESET_PASSWORD_SUCCESS_PAGE_URL_SEGMENTS = [\n LOGIN_URL_SEGMENT,\n FORGOT_PASSWORD_URL_SEGMENT,\n RESET_URL_SEGMENT,\n SUCCESS_URL_SEGMENT,\n];\nexport const RESET_PASSWORD_ERROR_PAGE_ROUTE_URL = `${FORGOT_PASSWORD_URL_SEGMENT}/${RESET_URL_SEGMENT}/${ERROR_URL_SEGMENT}`;\nexport const RESET_PASSWORD_ERROR_PAGE_URL_SEGMENTS = [\n LOGIN_URL_SEGMENT,\n FORGOT_PASSWORD_URL_SEGMENT,\n RESET_URL_SEGMENT,\n ERROR_URL_SEGMENT,\n];\n\n/* CREATE ACCOUNT */\nexport const CREATE_ACCOUNT_VERIFY_EMAIL_PAGE_URL_SEGMENTS = [\n LOGIN_URL_SEGMENT,\n ACCOUNT_URL_SEGMENT,\n VERIFY_EMAIL_URL_SEGMENT,\n];\nexport const CREATE_ACCOUNT_PAGE_URL_SEGMENTS = [\n LOGIN_URL_SEGMENT,\n ACCOUNT_URL_SEGMENT,\n CREATE_URL_SEGMENT,\n];\nexport const CREATE_ACCOUNT_SUCCESS_PAGE_URL_SEGMENTS = [\n LOGIN_URL_SEGMENT,\n ACCOUNT_URL_SEGMENT,\n CREATE_URL_SEGMENT,\n SUCCESS_URL_SEGMENT,\n];\nexport const CREATE_ACCOUNT_ERROR_PAGE_URL_SEGMENTS = [\n LOGIN_URL_SEGMENT,\n ACCOUNT_URL_SEGMENT,\n CREATE_URL_SEGMENT,\n ERROR_URL_SEGMENT,\n];\n\nexport const CREATE_ACCOUNT_PAGE_ROUTE_URL = `${ACCOUNT_URL_SEGMENT}/${CREATE_URL_SEGMENT}`;\nexport const CREATE_ACCOUNT_SUCCESS_PAGE_ROUTE_URL = `${ACCOUNT_URL_SEGMENT}/${CREATE_URL_SEGMENT}/${SUCCESS_URL_SEGMENT}`;\nexport const CREATE_ACCOUNT_ERROR_PAGE_ROUTE_URL = `${ACCOUNT_URL_SEGMENT}/${CREATE_URL_SEGMENT}/${ERROR_URL_SEGMENT}`;\n\n/* AUTH */\nexport const AUTHORIZE_APPLICATION_PAGE_URL_SEGMENTS = [\n AUTH_URL_SEGMENT,\n APPLICATIONS_URL_SEGMENT,\n APPLICATIONS_URL_PARAMETER,\n];\n\nexport const AUTHORIZE_APPLICATION_PAGE_ROUTE_URL = `${APPLICATIONS_URL_SEGMENT}/${APPLICATIONS_URL_PARAMETER}`;\nexport const AUTHORIZE_APPLICATION_ERROR_PAGE_ROUTE_URL = `${APPLICATIONS_URL_SEGMENT}/${APPLICATIONS_URL_PARAMETER}/${ERROR_URL_SEGMENT}`;\nexport const AUTHORIZE_APPLICATION_SUCCESS_PAGE_ROUTE_URL = `${APPLICATIONS_URL_SEGMENT}/${APPLICATIONS_URL_PARAMETER}/${SUCCESS_URL_SEGMENT}`;\n","import {\n APP_BASE_HREF,\n PathLocationStrategy,\n PlatformLocation,\n} from '@angular/common';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { UrlSerializer } from '@angular/router';\nimport { LOGIN_URL_SEGMENT } from './const';\n@Injectable()\nexport class PathPreserveQueryLocationStrategy extends PathLocationStrategy {\n public constructor(\n private platformLocation: PlatformLocation,\n private urlSerializer: UrlSerializer,\n @Optional() @Inject(APP_BASE_HREF) _baseHref?: string,\n ) {\n super(platformLocation, _baseHref);\n }\n\n public override prepareExternalUrl(internal: string): string {\n const path = super.prepareExternalUrl(internal);\n\n // we want to preserve query params (redirectUrl) for login related pages only\n if (!internal.startsWith(`/${LOGIN_URL_SEGMENT}`)) {\n return path;\n }\n\n const existingURLSearchParams = new URLSearchParams(\n this.platformLocation?.search ?? '',\n );\n const existingQueryParams = Object.fromEntries(\n existingURLSearchParams.entries(),\n );\n const urlTree = this.urlSerializer.parse(path);\n const nextQueryParams = urlTree.queryParams;\n urlTree.queryParams = { ...existingQueryParams, ...nextQueryParams };\n return urlTree.toString();\n }\n}\n","import { ApiErrorResponse } from '@api/bems-cloud/login-portal/login-portal-api.types';\nimport { actionNameFactory } from '@core/ngrx';\nimport { Login } from '@model/bems-cloud/login-portal/auth';\nimport { createAction, props } from '@ngrx/store';\n\nimport { AuthState } from './auth.state';\n\nconst createActionName = actionNameFactory('Auth');\n\nexport const setAuth = createAction(\n createActionName('set auth'),\n props(),\n);\n\n// LOGIN\nexport const login = createAction(createActionName('login'), props());\nexport const loginSuccess = createAction(\n createActionName('login success'),\n props<{\n authState: AuthState;\n redirectUrl?: string;\n }>(),\n);\nexport const loginError = createAction(\n createActionName('login error'),\n props(),\n);\n\n// REFRESH TOKEN\nexport const refreshToken = createAction(createActionName('refresh token'));\nexport const refreshTokenSuccess = createAction(\n createActionName('refresh token success'),\n props(),\n);\nexport const refreshTokenError = createAction(\n createActionName('refresh token error'),\n);\n\n// LOGOUT\nexport const logout = createAction(createActionName('logout'));\nexport const logoutSuccess = createAction(createActionName('logout success'));\nexport const logoutError = createAction(createActionName('logout error'));\n","export const ACCESS_TOKEN_COOKIE = 'access_token_cookie';\nexport const CSRF_ACCESS_TOKEN = 'csrf_access_token';\nexport const ONE_MINUTE = 1000 * 60;\nexport const FIVE_MINUTES = ONE_MINUTE * 5;\n","import { Injectable } from '@angular/core';\nimport { AuthApiService } from '@api/bems-cloud/bems/auth';\nimport { isApiErrorResponse } from '@api/bems-cloud/bems/bems-api.types';\nimport { AuthApiService as LoginPortalAuthApiService } from '@api/bems-cloud/login-portal/auth';\nimport { isApiErrorResponse as isLoginPortalApiErrorResponse } from '@api/bems-cloud/login-portal/login-portal-api.types';\nimport { LOGIN_URL_SEGMENT } from '@core/bems-cloud/bems/const';\nimport { isNotNil } from '@core/is-not-nil';\nimport { RefreshTokenResponse } from '@model/bems-cloud/bems/auth';\nimport { LoginResponse } from '@model/bems-cloud/login-portal/auth';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { isError, isNil } from 'lodash-es';\nimport { CookieService } from 'ngx-cookie-service';\nimport {\n Observable,\n delay,\n map,\n of,\n switchMap,\n tap,\n withLatestFrom,\n} from 'rxjs';\n\nimport { NavigationService } from '@core/bems-cloud/bems/services';\nimport {\n login,\n loginError,\n loginSuccess,\n logout,\n logoutError,\n logoutSuccess,\n refreshToken,\n refreshTokenError,\n refreshTokenSuccess,\n} from './auth.actions';\nimport {\n ACCESS_TOKEN_COOKIE,\n CSRF_ACCESS_TOKEN,\n FIVE_MINUTES,\n ONE_MINUTE,\n} from './auth.const';\nimport { AuthService } from './auth.service';\nimport { AuthState } from './auth.state';\n\n@Injectable()\nexport class AuthEffects {\n public constructor(\n private actions$: Actions,\n private authApiService: AuthApiService,\n private authService: AuthService,\n private cookieService: CookieService,\n private loginPortalAuthApiService: LoginPortalAuthApiService,\n private navigationService: NavigationService,\n ) {}\n\n public login$ = createEffect(() => {\n return this.loginEffect();\n });\n\n public loginSuccess$ = createEffect(\n () => {\n return this.loginSuccessEffect();\n },\n { dispatch: false },\n );\n\n public refreshToken$ = createEffect(() => {\n return this.refreshTokenEffect();\n });\n\n public logout$ = createEffect(() => {\n return this.logoutEffect();\n });\n\n public logoutSuccess$ = createEffect(\n () => {\n return this.logoutSuccessEffect();\n },\n { dispatch: false },\n );\n\n private loginEffect(): Observable {\n return this.actions$.pipe(\n ofType(login),\n switchMap((data) => {\n return this.loginPortalAuthApiService.signIn(data).pipe(\n map((response) => {\n if (isLoginPortalApiErrorResponse(response)) {\n return loginError(response);\n }\n return loginSuccess({\n authState: this.getAuthState(response),\n redirectUrl: data.redirectUrl,\n });\n }),\n );\n }),\n );\n }\n\n private loginSuccessEffect(): Observable {\n return this.actions$.pipe(\n ofType(loginSuccess),\n tap((data) => {\n this.navigationService.redirect(data.redirectUrl ?? '/');\n }),\n );\n }\n\n private refreshTokenEffect(): Observable {\n return this.actions$.pipe(\n ofType(refreshToken),\n delay(ONE_MINUTE),\n withLatestFrom(this.authService.tokenExpirationTime$),\n switchMap(([_, timestamp]) => {\n if (isNil(timestamp)) {\n return of(new Error());\n }\n\n if (this.mustRefreshToken(timestamp)) {\n return this.authApiService.refreshToken();\n }\n\n return of(null);\n }),\n switchMap((response) => {\n if (isError(response) || isApiErrorResponse(response)) {\n return [refreshTokenError()];\n } else if (isNotNil(response)) {\n return [\n refreshTokenSuccess(this.getAuthState(response)),\n refreshToken(),\n ];\n }\n\n return [refreshToken()];\n }),\n );\n }\n\n private logoutEffect(): Observable {\n return this.actions$.pipe(\n ofType(logout),\n switchMap(() => {\n return this.authApiService.signOut();\n }),\n map((response) => {\n if (isError(response)) {\n return logoutError();\n }\n return logoutSuccess();\n }),\n );\n }\n\n private logoutSuccessEffect(): Observable {\n return this.actions$.pipe(\n ofType(logoutSuccess),\n tap(() => {\n this.cookieService.delete(CSRF_ACCESS_TOKEN);\n this.cookieService.delete(ACCESS_TOKEN_COOKIE);\n this.navigationService.redirect(LOGIN_URL_SEGMENT);\n }),\n );\n }\n\n private getAuthState(\n response: LoginResponse | RefreshTokenResponse,\n ): AuthState {\n return {\n exp: parseInt(response.details.exp, 10) * 1000,\n csrfToken: this.cookieService.get('csrf_access_token'),\n };\n }\n\n private mustRefreshToken(timestamp: number): boolean {\n const now = new Date().getTime();\n const remainingTime = timestamp - now;\n\n console.log('refresh token expiration date', new Date(timestamp));\n console.log('time remaining before refresh token', remainingTime);\n\n return remainingTime < FIVE_MINUTES;\n }\n}\n","import { Nil } from '@model';\nimport { createReducer, on } from '@ngrx/store';\n\nimport {\n loginSuccess,\n logoutSuccess,\n refreshTokenSuccess,\n} from './auth.actions';\nimport { AuthState } from './auth.state';\n\nexport const AUTH_STATE_NAME = 'auth';\n\nconst INITIAL_STATE: AuthState | Nil = {};\n\nexport const authReducer = createReducer(\n INITIAL_STATE,\n on(loginSuccess, (_state, { authState: { exp, csrfToken } }) => {\n return { exp, csrfToken };\n }),\n on(refreshTokenSuccess, (_state, { exp, csrfToken }) => {\n return { exp, csrfToken };\n }),\n on(logoutSuccess, (_state) => {\n return {};\n }),\n);\n","import { createSelector } from '@ngrx/store';\n\nimport { State } from '../store.state';\n\nconst getAuthState = (state: State) => {\n return state.auth;\n};\n\nexport const getAuth = createSelector(getAuthState, (auth) => {\n return auth;\n});\n\nexport const getTokenExpirationDate = createSelector(getAuthState, (auth) => {\n return auth.exp;\n});\n","import { Injectable } from '@angular/core';\nimport { ApiErrorMessage } from '@api/bems-cloud/login-portal/login-portal-api.types';\nimport { Login } from '@model/bems-cloud/login-portal/auth';\nimport { Nil } from '@model/nil';\nimport { Actions, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { State } from '../store.state';\nimport { login, loginError, logout, refreshToken } from './auth.actions';\nimport { getAuth, getTokenExpirationDate } from './auth.selectors';\nimport { AuthState } from './auth.state';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService {\n public constructor(\n private actions$: Actions,\n private store: Store,\n ) {}\n\n public auth$: Observable = this.store.select(getAuth);\n public tokenExpirationTime$: Observable = this.store.select(\n getTokenExpirationDate,\n );\n\n public loginError$: Observable = this.actions$.pipe(\n ofType(loginError),\n );\n\n public login(data: Login): void {\n this.store.dispatch(login(data));\n }\n\n public logout(): void {\n this.store.dispatch(logout());\n }\n\n public triggerRefershTokenMechanism(): void {\n this.store.dispatch(refreshToken());\n }\n}\n","export interface AuthState {\n csrfToken?: string;\n exp?: number;\n}\n","export * from './auth.actions';\nexport * from './auth.effects';\nexport * from './auth.reducers';\nexport * from './auth.selectors';\nexport * from './auth.service';\nexport * from './auth.state';\n","import { ApiErrorResponse } from '@api/bems-cloud/bems/bems-api.types';\nimport { actionNameFactory } from '@core/ngrx';\nimport { Id } from '@model';\nimport { createAction, props } from '@ngrx/store';\n\nimport { CurrentDeviceState } from './current-device.state';\n\nconst createActionName = actionNameFactory('Device');\n\nexport const fetchCurrentDevice = createAction(\n createActionName('fetch current device'),\n props<{ id?: Id }>(),\n);\n\nexport const fetchCurrentDeviceError = createAction(\n createActionName('fetch current device error'),\n props(),\n);\n\nexport const noDeviceError = createAction(createActionName('no device error'));\n\nexport const fetchCurrentDeviceSuccess = createAction(\n createActionName('fetch current device success'),\n props>(),\n);\n\nexport const fetchCurrentDeviceWeather = createAction(\n createActionName('fetch current device weather'),\n);\n\nexport const fetchCurrentDeviceWeatherError = createAction(\n createActionName('fetch current device weather error'),\n props(),\n);\n\nexport const fetchCurrentDeviceWeatherSuccess = createAction(\n createActionName('fetch current device weather success'),\n props>(),\n);\n\nexport const fetchCurrentDeviceSettings = createAction(\n createActionName('fetch current device settings'),\n props<{ id: Id }>(),\n);\n\nexport const fetchCurrentDeviceSettingsError = createAction(\n createActionName('fetch current device settings error'),\n props(),\n);\n\nexport const fetchCurrentDeviceSettingsSuccess = createAction(\n createActionName('fetch current device settings success'),\n props>(),\n);\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { isApiErrorResponse } from '@api/bems-cloud/bems/bems-api.types';\nimport { DevicesApiService } from '@api/bems-cloud/bems/devices';\nimport { DASHBOARD_URL_SEGMENT } from '@core/bems-cloud/bems/const';\nimport { NavigationService } from '@core/bems-cloud/bems/services';\nimport { Id, Nil } from '@model';\nimport { Device } from '@model/bems-cloud/bems/devices';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { find, first, get, isNil, isString } from 'lodash-es';\nimport { Observable, map, of, switchMap, tap, withLatestFrom } from 'rxjs';\n\nimport {\n getDeviceIdFromRoute,\n isRootRoute,\n isUserInvitationAcceptPage,\n} from '@core/bems-cloud/bems/utils';\nimport { fetchCurrentUserRole } from '../current-user';\nimport { setLoading } from '../layout';\nimport {\n fetchCurrentDevice,\n fetchCurrentDeviceError,\n fetchCurrentDeviceSettings,\n fetchCurrentDeviceSettingsError,\n fetchCurrentDeviceSettingsSuccess,\n fetchCurrentDeviceSuccess,\n fetchCurrentDeviceWeather,\n fetchCurrentDeviceWeatherError,\n fetchCurrentDeviceWeatherSuccess,\n noDeviceError,\n} from './current-device.actions';\nimport { CurrentDeviceService } from './current-device.service';\n\n@Injectable()\nexport class CurrentDeviceEffects {\n public constructor(\n private actions$: Actions,\n private currentDeviceService: CurrentDeviceService,\n private deviceApiService: DevicesApiService,\n private router: Router,\n private navigationService: NavigationService,\n ) {}\n\n public fetchCurrentDevice$ = createEffect(() => {\n return this.fetchCurrentDeviceEffect();\n });\n\n public fetchCurrentDeviceWeather = createEffect(() => {\n return this.fetchCurrentDeviceWeatherEffect();\n });\n\n public fetchCurrentDeviceSuccess$ = createEffect(() => {\n return this.fetchCurrentDeviceSuccessEffect();\n });\n\n public fetchCurrentDeviceSettings$ = createEffect(() => {\n return this.fetchCurrentDeviceSettingsEffect();\n });\n\n public fetchCurrentDeviceSettingsSuccess$ = createEffect(() => {\n return this.fetchCurrentDeviceSettingsSuccessEffect();\n });\n\n public noDeviceError$ = createEffect(\n () => {\n return this.noDeviceErrorEffect();\n },\n { dispatch: false },\n );\n\n private fetchCurrentDeviceSettingsEffect(): Observable {\n return this.actions$.pipe(\n ofType(fetchCurrentDeviceSettings),\n switchMap(({ id }) => {\n return this.deviceApiService.getDeviceSettings(id);\n }),\n map((response) => {\n if (isApiErrorResponse(response)) {\n return fetchCurrentDeviceSettingsError(response);\n }\n return fetchCurrentDeviceSettingsSuccess({ settings: response });\n }),\n );\n }\n\n private fetchCurrentDeviceEffect(): Observable {\n return this.actions$.pipe(\n ofType(fetchCurrentDevice),\n withLatestFrom(this.currentDeviceService.device$),\n switchMap(([{ id }, device]) => {\n return this.fetchCurrentDevice(id || device);\n }),\n );\n }\n\n private fetchCurrentDeviceWeatherEffect(): Observable {\n return this.actions$.pipe(\n ofType(fetchCurrentDeviceWeather),\n withLatestFrom(this.currentDeviceService.device$),\n switchMap(([_, device]) => {\n if (isNil(device)) {\n return of(undefined);\n }\n return this.deviceApiService.getDeviceWeather(device.id);\n }),\n map((results) => {\n if (isApiErrorResponse(results)) {\n return fetchCurrentDeviceWeatherError(results);\n }\n\n return fetchCurrentDeviceWeatherSuccess({\n weather: results,\n });\n }),\n );\n }\n\n private fetchCurrentDeviceSuccessEffect(): Observable {\n return this.actions$.pipe(\n ofType(fetchCurrentDeviceSuccess),\n tap((state) => {\n // we need to redirect the user to dashboard if he is right now on the root '/'\n if (isRootRoute()) {\n this.router.navigate([state.device?.id, DASHBOARD_URL_SEGMENT]);\n }\n }),\n switchMap((state) => {\n const actions: Action[] = [];\n\n if (isNil(state.device)) {\n return [setLoading({ loading: undefined })];\n }\n\n actions.push(fetchCurrentDeviceSettings({ id: state.device.id }));\n\n actions.push(fetchCurrentDeviceWeather());\n\n actions.push(fetchCurrentUserRole(state.device));\n\n return actions;\n }),\n );\n }\n\n private fetchCurrentDeviceSettingsSuccessEffect(): Observable {\n return this.actions$.pipe(\n ofType(fetchCurrentDeviceSettingsSuccess),\n map(() => {\n return setLoading({ loading: undefined });\n }),\n );\n }\n\n private noDeviceErrorEffect(): Observable {\n return this.actions$.pipe(\n ofType(noDeviceError),\n tap(() => {\n // We have one special case with the invitation accept page\n // We can't fetch the device because the user might not have any or access to it for now\n // So we need to let the user access the invitation page instead of redirecting him to the no device page\n if (!isUserInvitationAcceptPage(window.location.pathname)) {\n this.navigationService.navigateToNoDevicePage();\n }\n }),\n );\n }\n\n private fetchCurrentDevice(\n currentDevice: Device | Id | Nil,\n ): Observable {\n // There is no direct way to fetch the current device so we have to fetch all of them then \"pick\" right one\n return this.deviceApiService.getDevices().pipe(\n switchMap((results) => {\n if (isApiErrorResponse(results)) {\n return of(fetchCurrentDeviceError(results));\n }\n\n // we get the id from the fetchCurrentDevice action or from the current device or from the url\n const currentDeviceId = this.getCurrentDeviceId(\n currentDevice,\n results.items,\n );\n\n if (isNil(currentDeviceId) || results.total === 0) {\n return of(noDeviceError());\n }\n\n return this.deviceApiService.getDevice(currentDeviceId).pipe(\n map((device) => {\n if (isApiErrorResponse(device)) {\n return fetchCurrentDeviceError(device);\n }\n if (isNil(device)) {\n return noDeviceError();\n }\n return fetchCurrentDeviceSuccess({\n device,\n devices: results.items,\n });\n }),\n );\n }),\n );\n }\n\n private getCurrentDeviceId(\n currentDevice: Device | Nil | Id,\n devices: Device[],\n ): Id | Nil {\n // if the id isn't provided we take it from the url\n if (isNil(currentDevice)) {\n return getDeviceIdFromRoute() || first(devices)?.id;\n }\n\n // if currentDevice is an Id we use it in priority\n if (isString(currentDevice)) {\n return currentDevice;\n }\n\n // if the currentDevice is a Device we use its id\n const id = get(currentDevice, 'id');\n\n //we must check if the id is part of the devices list\n if (isNil(id) || isNil(find(devices, { id }))) {\n return first(devices)?.id;\n }\n\n return id;\n }\n}\n","import { Nil } from '@model';\nimport { createReducer, on } from '@ngrx/store';\n\nimport {\n fetchCurrentDeviceSettingsSuccess,\n fetchCurrentDeviceSuccess,\n fetchCurrentDeviceWeatherSuccess,\n noDeviceError,\n} from './current-device.actions';\nimport { CurrentDeviceState } from './current-device.state';\n\nexport const CURRENT_DEVICE_STATE_NAME = 'currentDevice';\n\nconst INITIAL_STATE: CurrentDeviceState | Nil = {\n device: undefined,\n devices: undefined,\n weather: undefined,\n settings: undefined,\n};\n\nexport const currentDeviceReducer = createReducer(\n INITIAL_STATE,\n on(fetchCurrentDeviceSuccess, (state, { device, devices }) => {\n return { ...state, device, devices };\n }),\n on(fetchCurrentDeviceWeatherSuccess, (state, { weather }) => {\n return { ...state, weather };\n }),\n on(fetchCurrentDeviceSettingsSuccess, (state, { settings }) => {\n return { ...state, settings };\n }),\n on(noDeviceError, (state) => {\n return { ...state, device: undefined, devices: [] };\n }),\n);\n","import { createSelector } from '@ngrx/store';\n\nimport { State } from '../store.state';\n\nconst getCurrentDeviceState = (state: State) => {\n return state.currentDevice;\n};\n\nexport const getCurrentDevice = createSelector(\n getCurrentDeviceState,\n ({ device }) => {\n return device;\n },\n);\n\nexport const getCurrentDeviceWeather = createSelector(\n getCurrentDeviceState,\n ({ weather }) => {\n return weather;\n },\n);\n\nexport const getDevices = createSelector(\n getCurrentDeviceState,\n ({ devices }) => {\n return devices;\n },\n);\n\nexport const getCurrentDeviceName = createSelector(\n getCurrentDeviceState,\n ({ device }) => {\n return device?.name;\n },\n);\n\nexport const getCurrentDeviceId = createSelector(\n getCurrentDeviceState,\n ({ device }) => {\n return device?.id;\n },\n);\n\nexport const getCurrentDeviceSettings = createSelector(\n getCurrentDeviceState,\n ({ settings }) => {\n return settings;\n },\n);\n\nexport const getCurrentDeviceSettingsCountry = createSelector(\n getCurrentDeviceState,\n ({ settings }) => {\n return settings?.country;\n },\n);\n","import { Injectable } from '@angular/core';\nimport { filterNil } from '@core/rxjs/filter-nil';\nimport { Loading } from '@layout/loading';\nimport { Id } from '@model';\nimport {\n Device,\n DeviceSettings,\n Weather,\n} from '@model/bems-cloud/bems/devices';\nimport { Nil } from '@model/nil';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { setLoading } from '../layout';\nimport { State } from '../store.state';\nimport {\n fetchCurrentDevice,\n fetchCurrentDeviceSettings,\n fetchCurrentDeviceSettingsSuccess,\n} from './current-device.actions';\nimport {\n getCurrentDevice,\n getCurrentDeviceId,\n getCurrentDeviceName,\n getCurrentDeviceSettings,\n getCurrentDeviceSettingsCountry,\n getCurrentDeviceWeather,\n getDevices,\n} from './current-device.selectors';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CurrentDeviceService {\n public constructor(private store: Store) {}\n\n public device$: Observable =\n this.store.select(getCurrentDevice);\n\n public deviceRequired$: Observable = this.store\n .select(getCurrentDevice)\n .pipe(filterNil());\n\n public weather$: Observable = this.store.select(\n getCurrentDeviceWeather,\n );\n\n public devices$: Observable = this.store.select(getDevices);\n\n public deviceName$: Observable =\n this.store.select(getCurrentDeviceName);\n\n public deviceId$: Observable =\n this.store.select(getCurrentDeviceId);\n\n public deviceIdRequired$: Observable = this.deviceId$.pipe(filterNil());\n\n public deviceSettings$: Observable = this.store.select(\n getCurrentDeviceSettings,\n );\n\n public deviceSettingsRequired$: Observable = this.store\n .select(getCurrentDeviceSettings)\n .pipe(filterNil());\n\n public country$: Observable = this.store.select(\n getCurrentDeviceSettingsCountry,\n );\n\n public fetchCurrentDeviceSettings(id: Id): void {\n this.store.dispatch(fetchCurrentDeviceSettings({ id }));\n }\n\n public updateCurrentDeviceSettings(settings: DeviceSettings): void {\n this.store.dispatch(fetchCurrentDeviceSettingsSuccess({ settings }));\n }\n\n public fetchCurrentDevice(id?: Id) {\n this.store.dispatch(setLoading({ loading: Loading.App }));\n this.store.dispatch(fetchCurrentDevice({ id }));\n }\n}\n","import { Nil } from '@model';\nimport {\n Device,\n DeviceSettings,\n Weather,\n} from '@model/bems-cloud/bems/devices';\n\nexport interface CurrentDeviceState {\n device: Device | Nil;\n devices: Device[] | Nil;\n weather: Weather | Nil;\n settings: DeviceSettings | Nil;\n}\n","export * from './current-device.actions';\nexport * from './current-device.effects';\nexport * from './current-device.reducers';\nexport * from './current-device.selectors';\nexport * from './current-device.service';\nexport * from './current-device.state';\n","import { ApiErrorResponse } from '@api/bems-cloud/bems/bems-api.types';\nimport { actionNameFactory } from '@core/ngrx';\nimport { Device } from '@model/bems-cloud/bems/devices';\nimport { createAction, props } from '@ngrx/store';\n\nimport { CurrentUserState } from './current-user.state';\n\nconst createActionName = actionNameFactory('User');\n\nexport const fetchCurrentUser = createAction(createActionName('fetch user'));\n\nexport const acceptEula = createAction(\n createActionName('accept eula'),\n props<{ version: string }>(),\n);\n\nexport const fetchCurrentUserError = createAction(\n createActionName('fetch user error'),\n props(),\n);\n\nexport const fetchCurrentUserSuccess = createAction(\n createActionName('fetch user success'),\n props>(),\n);\n\nexport const fetchCurrentUserRole = createAction(\n createActionName('fetch user role'),\n props(),\n);\n\nexport const fetchCurrentUserRoleError = createAction(\n createActionName('fetch user role error'),\n props(),\n);\n\nexport const fetchCurrentUserRoleSuccess = createAction(\n createActionName('fetch user role success'),\n props>(),\n);\n","import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { isApiErrorResponse } from '@api/bems-cloud/bems/bems-api.types';\nimport { DevicesApiService } from '@api/bems-cloud/bems/devices';\nimport { UsersApiService } from '@api/bems-cloud/bems/users';\nimport { LOGIN_URL_SEGMENT } from '@core/bems-cloud/bems/const';\nimport { NavigationService } from '@core/bems-cloud/bems/services';\nimport {\n checkUrlMatch,\n getUrlWithoutLocalization,\n} from '@core/bems-cloud/bems/utils';\nimport { AUTH_URL_SEGMENT } from '@core/bems-cloud/login-portal/const';\nimport { EMPTY_ACTION } from '@core/ngrx';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { Observable, catchError, map, of, switchMap, tap } from 'rxjs';\nimport { fetchCurrentDevice } from '../current-device';\nimport { setLoading } from '../layout';\nimport { fetchNotificationCount } from '../notifications';\nimport {\n acceptEula,\n fetchCurrentUser,\n fetchCurrentUserError,\n fetchCurrentUserRole,\n fetchCurrentUserRoleError,\n fetchCurrentUserRoleSuccess,\n fetchCurrentUserSuccess,\n} from './current-user.actions';\n\n@Injectable()\nexport class CurrentUserEffects {\n public constructor(\n @Inject(LOCALE_ID) public locale: string,\n private actions$: Actions,\n private devicesApiService: DevicesApiService,\n private usersApiService: UsersApiService,\n private route: ActivatedRoute,\n private router: Router,\n private navigationService: NavigationService,\n ) {}\n\n public fetchCurrentUser$ = createEffect(() => {\n return this.fetchCurrentUserEffect();\n });\n\n public acceptEula$ = createEffect(() => {\n return this.acceptEulaEffect();\n });\n\n public fetchCurrentUserError = createEffect(() => {\n return this.fetchCurrentUserErrorEffect();\n });\n\n public fetchCurrentUserSuccess = createEffect(() => {\n return this.fetchCurrentUserSuccessEffect();\n });\n\n public fetchCurrentUserRole$ = createEffect(() => {\n return this.fetchCurrentUserRoleEffect();\n });\n\n private fetchCurrentUserEffect(): Observable {\n return this.actions$.pipe(\n ofType(fetchCurrentUser),\n switchMap(() => {\n return this.usersApiService.getUserProfile();\n }),\n catchError((response: HttpErrorResponse) => {\n if (response.status !== HttpStatusCode.Unauthorized) {\n throw response;\n }\n return of(response.error);\n }),\n map((response) => {\n if (isApiErrorResponse(response)) {\n return fetchCurrentUserError(response);\n }\n\n // if the user has changed the language we need to redirect the user to the proper application\n const language = response.language.split('-')[0];\n this.navigationService.updateCurrentLanguage(language);\n\n return fetchCurrentUserSuccess({ user: response });\n }),\n );\n }\n\n private fetchCurrentUserErrorEffect(): Observable {\n return this.actions$.pipe(\n ofType(fetchCurrentUserError),\n tap(() => {\n if (!checkUrlMatch([LOGIN_URL_SEGMENT, AUTH_URL_SEGMENT])) {\n this.navigationService.redirect(LOGIN_URL_SEGMENT, true);\n }\n }),\n map(() => {\n return EMPTY_ACTION;\n }),\n );\n }\n\n private fetchCurrentUserSuccessEffect(): Observable {\n return this.actions$.pipe(\n ofType(fetchCurrentUserSuccess),\n switchMap(() => {\n return [fetchCurrentDevice({}), fetchNotificationCount()];\n }),\n tap(() => {\n setLoading({ loading: undefined });\n }),\n );\n }\n\n private acceptEulaEffect(): Observable {\n return this.actions$.pipe(\n ofType(acceptEula),\n switchMap((data) => {\n return this.usersApiService.saveUserProfile({\n acceptedEula: data.version,\n });\n }),\n tap(() => {\n const redirectUrl = getUrlWithoutLocalization(\n this.route.snapshot.queryParams.redirectUrl,\n );\n this.router.navigateByUrl(redirectUrl);\n }),\n map((response) => {\n if (isApiErrorResponse(response)) {\n return fetchCurrentUserError(response);\n }\n\n return fetchCurrentUserSuccess({ user: response });\n }),\n );\n }\n\n private fetchCurrentUserRoleEffect(): Observable {\n return this.actions$.pipe(\n ofType(fetchCurrentUserRole),\n switchMap((device) => {\n return this.devicesApiService.getUserRole(device.id);\n }),\n map((response) => {\n if (isApiErrorResponse(response)) {\n return fetchCurrentUserRoleError(response);\n }\n\n return fetchCurrentUserRoleSuccess({ role: response });\n }),\n );\n }\n}\n","import { Role } from '@model/bems-cloud/bems/roles';\nimport { createReducer, on } from '@ngrx/store';\n\nimport { logoutSuccess } from '../auth';\nimport {\n fetchCurrentUserError,\n fetchCurrentUserRoleError,\n fetchCurrentUserRoleSuccess,\n fetchCurrentUserSuccess,\n} from './current-user.actions';\nimport { CurrentUserState } from './current-user.state';\n\nexport const CURRENT_USER_STATE_NAME = 'currentUser';\n\nconst INITIAL_STATE: CurrentUserState = {};\n\nexport const currentUserReducer = createReducer(\n INITIAL_STATE,\n on(fetchCurrentUserSuccess, (state, { user }) => {\n return { ...state, user };\n }),\n on(fetchCurrentUserError, (state) => {\n return { ...state, user: undefined };\n }),\n on(fetchCurrentUserRoleSuccess, (state, { role }) => {\n return { ...state, role };\n }),\n on(fetchCurrentUserRoleError, (state) => {\n return { ...state, role: Role.Reader };\n }),\n on(logoutSuccess, (state) => {\n return {\n ...state,\n user: undefined,\n role: undefined,\n };\n }),\n);\n","import { createSelector } from '@ngrx/store';\n\nimport { State } from '../store.state';\n\nconst getCurrentUserState = (state: State) => {\n return state.currentUser;\n};\n\nexport const getCurrentUser = createSelector(getCurrentUserState, (state) => {\n return state.user;\n});\n\nexport const getCurrentUserRole = createSelector(\n getCurrentUserState,\n (state) => {\n return state.role;\n },\n);\n","import { Injectable } from '@angular/core';\nimport { Role, isAdministrator, isReader } from '@model/bems-cloud/bems/roles';\nimport { User } from '@model/bems-cloud/bems/users';\nimport { Nil } from '@model/nil';\nimport { Store } from '@ngrx/store';\nimport { Observable, map } from 'rxjs';\n\nimport { State } from '../store.state';\nimport {\n acceptEula,\n fetchCurrentUser,\n fetchCurrentUserSuccess,\n} from './current-user.actions';\nimport { getCurrentUser, getCurrentUserRole } from './current-user.selectors';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CurrentUserService {\n public constructor(private store: Store) {}\n\n public currentUser$: Observable =\n this.store.select(getCurrentUser);\n\n public currentUserRole$: Observable =\n this.store.select(getCurrentUserRole);\n\n public isAdministrator$ = this.currentUserRole$.pipe(map(isAdministrator));\n\n public isReadOnly$ = this.currentUserRole$.pipe(map(isReader));\n\n public fetchCurrentUser(): void {\n this.store.dispatch(fetchCurrentUser());\n }\n\n public updateCurrentUser(user: User): void {\n this.store.dispatch(fetchCurrentUserSuccess({ user }));\n }\n\n public acceptEula(version: string) {\n this.store.dispatch(acceptEula({ version }));\n }\n}\n","import { Role } from '@model/bems-cloud/bems/roles';\nimport { User } from '@model/bems-cloud/bems/users';\n\nexport interface CurrentUserState {\n user?: User;\n role?: Role;\n}\n","export * from './current-user.actions';\nexport * from './current-user.effects';\nexport * from './current-user.reducers';\nexport * from './current-user.selectors';\nexport * from './current-user.service';\nexport * from './current-user.state';\n","export * from './store.reducers';\n","export * from './layout.actions';\nexport * from './layout.effects';\nexport * from './layout.reducer';\nexport * from './layout.selectors';\nexport * from './layout.service';\nexport * from './layout.state';\n","import { actionNameFactory } from '@core/ngrx';\nimport { CurrentLocation } from '@model/bems-cloud/bems//layout';\nimport { createAction, props } from '@ngrx/store';\n\nimport { LayoutState } from './layout.state';\n\nconst createActionName = actionNameFactory('Layout');\n\nexport const setCurrentLocation = createAction(\n createActionName('set current location'),\n props>(),\n);\n\nexport const setActiveMenuItem = createAction(\n createActionName('set active menu item'),\n props>(),\n);\n\nexport const setLoading = createAction(\n createActionName('set loading'),\n props>(),\n);\n\nexport const setRouteLoading = createAction(\n createActionName('set route loading'),\n props>(),\n);\n\nexport const showTopBar = createAction(\n createActionName('show top bar'),\n props>(),\n);\n","import { Injectable } from '@angular/core';\nimport { Actions } from '@ngrx/effects';\n\n@Injectable()\nexport class LayoutEffects {\n public constructor(private actions$: Actions) {}\n}\n","import { Loading } from '@layout/loading';\nimport { createReducer, on } from '@ngrx/store';\nimport { isNil } from 'lodash-es';\n\nimport {\n setActiveMenuItem,\n setCurrentLocation,\n setLoading,\n setRouteLoading,\n showTopBar,\n} from './layout.actions';\nimport { LayoutState } from './layout.state';\n\nexport const LAYOUT_REDUCER_STATE_NAME = 'layout';\n\nconst INITIAL_STATE: LayoutState = {\n loading: Loading.App,\n location: undefined,\n routeLoading: undefined,\n showTopBar: true,\n};\n\nexport const layoutReducer = createReducer(\n INITIAL_STATE,\n on(showTopBar, (state, action) => {\n return {\n ...state,\n showTopBar: action.showTopBar,\n };\n }),\n on(setLoading, (state, { loading }) => {\n return {\n ...state,\n loading,\n };\n }),\n on(setRouteLoading, (state, { routeLoading }) => {\n return {\n ...state,\n routeLoading,\n };\n }),\n on(setCurrentLocation, (state, { location }) => {\n return { ...state, location };\n }),\n on(setActiveMenuItem, (state, { activeMenuItemId }) => {\n return {\n ...state,\n location: isNil(state.location)\n ? undefined\n : {\n ...state.location,\n activeMenuItemId,\n },\n };\n }),\n);\n","import { createSelector } from '@ngrx/store';\n\nimport { State } from '../store.state';\n\nconst getLayoutState = (state: State) => {\n return state.layout;\n};\n\nexport const getCurrentLocation = createSelector(getLayoutState, (layout) => {\n return layout.location;\n});\n\nexport const getCurrentLocationName = createSelector(\n getLayoutState,\n (layout) => {\n return layout.location?.name;\n },\n);\n\nexport const getCurrentLocationMenu = createSelector(\n getLayoutState,\n (layout) => {\n return layout.location?.menu;\n },\n);\n\nexport const getCurrentLocationActiveMenuItemId = createSelector(\n getLayoutState,\n (layout) => {\n return layout.location?.activeMenuItemId;\n },\n);\n\nexport const getCurrentLocationId = createSelector(getLayoutState, (layout) => {\n return layout.location?.id;\n});\n\nexport const getLoading = createSelector(getLayoutState, (layout) => {\n return layout.loading;\n});\n\nexport const getRouteLoading = createSelector(getLayoutState, (layout) => {\n return layout.routeLoading;\n});\n\nexport const getShowTopBar = createSelector(getLayoutState, (layout) => {\n return layout.showTopBar;\n});\n","import { Injectable } from '@angular/core';\nimport { isNotNil } from '@core/is-not-nil';\nimport { Loading, RouteLoading } from '@layout/loading';\nimport { Id } from '@model';\nimport { CurrentLocation, MenuItem } from '@model/bems-cloud/bems//layout';\nimport { Nil } from '@model/nil';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, Observable, debounceTime, map } from 'rxjs';\n\nimport { Router } from '@angular/router';\nimport {\n ASSETS_NAV_ITEM_ID,\n ASSETS_URL_SEGMENT,\n USERS_NAV_ITEM_ID,\n USERS_URL_SEGMENT,\n} from '@core/bems-cloud/bems/const';\nimport { TrackingService } from '@core/tracking';\nimport { findIndex } from 'lodash-es';\nimport { State } from '../store.state';\nimport {\n setActiveMenuItem,\n setCurrentLocation,\n setLoading,\n setRouteLoading,\n showTopBar,\n} from './layout.actions';\nimport {\n getCurrentLocation,\n getCurrentLocationActiveMenuItemId,\n getCurrentLocationId,\n getCurrentLocationMenu,\n getCurrentLocationName,\n getLoading,\n getRouteLoading,\n getShowTopBar,\n} from './layout.selectors';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LayoutService {\n public constructor(\n private store: Store,\n private trackingService: TrackingService,\n private router: Router,\n ) {\n // no need to unsubscribe because we need this to be continuously running\n this.location$.pipe(debounceTime(500)).subscribe((location) => {\n this.trackLocation(location);\n });\n }\n\n private scrollTopSubject$ = new BehaviorSubject(0);\n\n public scrollTop$ = this.scrollTopSubject$.asObservable();\n\n public showTopBar$: Observable = this.store.select(getShowTopBar);\n\n public loading$: Observable = this.store.select(getLoading);\n\n public routeLoading$: Observable =\n this.store.select(getRouteLoading);\n\n public location$: Observable =\n this.store.select(getCurrentLocation);\n\n public locationName$: Observable = this.store.select(\n getCurrentLocationName,\n );\n\n public locationMenu$: Observable = this.store.select(\n getCurrentLocationMenu,\n );\n\n public locationHasMenu$: Observable = this.locationMenu$.pipe(\n map(isNotNil),\n );\n\n public activeMenuItemId$: Observable = this.store.select(\n getCurrentLocationActiveMenuItemId,\n );\n\n public locationId$: Observable =\n this.store.select(getCurrentLocationId);\n\n public showTopBar(show: boolean): void {\n this.store.dispatch(showTopBar({ showTopBar: show }));\n }\n\n public setLocation(location: CurrentLocation | Nil): void {\n this.store.dispatch(setCurrentLocation({ location }));\n }\n\n public setActiveMenuItem(activeMenuItemId: Id): void {\n this.store.dispatch(setActiveMenuItem({ activeMenuItemId }));\n }\n\n public setLoading(loading: Loading | Nil): void {\n this.store.dispatch(setLoading({ loading }));\n }\n\n public setRouteLoading(routeLoading: RouteLoading | Nil): void {\n this.store.dispatch(setRouteLoading({ routeLoading }));\n }\n\n public setScrollTop(scrollTop: number): void {\n this.scrollTopSubject$.next(scrollTop);\n }\n\n private trackLocation(location: CurrentLocation | Nil) {\n if (isNotNil(location)) {\n this.trackingService.trackView(\n this.getViewName(location),\n this.router.routerState.snapshot.root.queryParams,\n );\n }\n }\n\n private getViewName(location: CurrentLocation): string {\n // if the \"activeMenuItemId\" is set we now in which sub menu we are\n if (location.activeMenuItemId) {\n return `${location.id} > ${location.activeMenuItemId}`;\n }\n\n // if we are in assets we need to check if we are on an asset details and retrieve the type\n if (location.id === ASSETS_NAV_ITEM_ID) {\n const urlSegment = this.getNextUrlSegment(ASSETS_URL_SEGMENT);\n if (isNotNil(urlSegment)) {\n return `${location.id} > ${urlSegment}`;\n }\n }\n\n // if we are in users we need to check if we are on an user details\n if (location.id === USERS_NAV_ITEM_ID) {\n const urlSegment = this.getNextUrlSegment(USERS_URL_SEGMENT);\n if (isNotNil(urlSegment)) {\n return `${location.id} > ${urlSegment}`;\n }\n }\n\n return `${location.id}`;\n }\n\n // Retrive the next url segment after the one passed in parameter\n private getNextUrlSegment(parent: string): string | Nil {\n const urlParts = this.router.url.split('/');\n const index = findIndex(urlParts, (part) => {\n return part === parent;\n });\n if (index >= 0) {\n return urlParts[index + 1];\n }\n return undefined;\n }\n}\n","import { Loading, RouteLoading } from '@layout/loading';\nimport { CurrentLocation } from '@model/bems-cloud/bems//layout';\nimport { Nil } from '@model/nil';\n\nexport interface LayoutState {\n location: CurrentLocation | Nil;\n loading: Loading | Nil;\n routeLoading: RouteLoading | Nil;\n showTopBar: boolean;\n}\n","export * from './notifications.actions';\nexport * from './notifications.effects';\nexport * from './notifications.reducers';\nexport * from './notifications.selectors';\nexport * from './notifications.service';\nexport * from './notifications.state';\n","import { ApiErrorResponse } from '@api/bems-cloud/bems/bems-api.types';\nimport { actionNameFactory } from '@core/ngrx';\nimport { NotificationCount } from '@model/bems-cloud/bems/notifications';\nimport { createAction, props } from '@ngrx/store';\n\nconst createActionName = actionNameFactory('Notifications');\n\nexport const fetchNotificationCount = createAction(\n createActionName('fetch notifications count'),\n);\n\nexport const fetchNotificationCountSuccess = createAction(\n createActionName('fetch notifications count success'),\n props(),\n);\n\nexport const fetchNotificationCountError = createAction(\n createActionName('fetch notifications count error'),\n props(),\n);\n","import { Injectable } from '@angular/core';\nimport { isApiErrorResponse } from '@api/bems-cloud/bems/bems-api.types';\nimport { NotificationsApiService } from '@api/bems-cloud/bems/notifications';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { Observable, delay, map, switchMap } from 'rxjs';\n\nimport { ONE_MINUTE } from '../auth/auth.const';\nimport {\n fetchNotificationCount,\n fetchNotificationCountError,\n fetchNotificationCountSuccess,\n} from './notifications.actions';\n\n@Injectable()\nexport class NotificationsEffects {\n public constructor(\n private actions$: Actions,\n private api: NotificationsApiService,\n ) {}\n\n public fetchNotificationCount$ = createEffect(() => {\n return this.fetchNotificationCountEffect();\n });\n\n public fetchNotificationCountError$ = createEffect(() => {\n return this.fetchNotificationCountError();\n });\n\n public fetchNotificationCountSuccess$ = createEffect(() => {\n return this.fetchNotificationCountSuccess();\n });\n\n private fetchNotificationCountEffect(): Observable {\n return this.actions$.pipe(\n ofType(fetchNotificationCount),\n switchMap(() => {\n return this.api.getNotificationCount();\n }),\n map((response) => {\n if (isApiErrorResponse(response)) {\n return fetchNotificationCountError(response);\n }\n\n return fetchNotificationCountSuccess(response);\n }),\n );\n }\n\n private fetchNotificationCountSuccess(): Observable {\n return this.actions$.pipe(\n ofType(fetchNotificationCountSuccess),\n delay(ONE_MINUTE),\n map(() => {\n return fetchNotificationCount();\n }),\n );\n }\n\n private fetchNotificationCountError(): Observable {\n return this.actions$.pipe(\n ofType(fetchNotificationCountError),\n delay(ONE_MINUTE),\n map(() => {\n return fetchNotificationCount();\n }),\n );\n }\n}\n","import { createReducer, on } from '@ngrx/store';\n\nimport { fetchNotificationCountSuccess } from './notifications.actions';\nimport { NotificationsState } from './notifications.state';\n\nexport const NOTIFICATIONS_STATE_NAME = 'notifications';\n\nconst INITIAL_STATE: NotificationsState = {\n critical: 0,\n info: 0,\n warning: 0,\n};\n\nexport const notificationsReducer = createReducer(\n INITIAL_STATE,\n on(fetchNotificationCountSuccess, (_state, { critical, info, warning }) => {\n return {\n critical,\n info,\n warning,\n };\n }),\n);\n","import { State } from '../store.state';\n\nexport const getNotificationsState = (state: State) => {\n return state.notifications;\n};\n","import { Injectable } from '@angular/core';\nimport { NotificationCount } from '@model/bems-cloud/bems/notifications';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { State } from '../store.state';\nimport { fetchNotificationCount } from './notifications.actions';\nimport { getNotificationsState } from './notifications.selectors';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationsService {\n public constructor(private store: Store) {}\n\n public notificationCount$: Observable = this.store.select(\n getNotificationsState,\n );\n\n public fetchNotificationCount(): void {\n this.store.dispatch(fetchNotificationCount());\n }\n}\n","import { NotificationCount } from '@model/bems-cloud/bems/notifications';\n\nexport type NotificationsState = NotificationCount;\n","export * from './router.effects';\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RouteLoading } from '@layout/loading';\nimport { Nil } from '@model';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport {\n routerCancelAction,\n routerNavigatedAction,\n routerNavigationAction,\n} from '@ngrx/router-store';\nimport { Action } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { setRouteLoading } from '../layout';\n\n@Injectable()\nexport class StoreRouterEffects {\n public constructor(\n private actions$: Actions,\n private router: Router,\n ) {}\n\n public routerNavigation$ = createEffect(() => {\n return this.routerNavigationEffect();\n });\n\n public routerCancel$ = createEffect(() => {\n return this.routerCancelEffect();\n });\n\n public routerNavigated$ = createEffect(() => {\n return this.routerNavigatedEffect();\n });\n\n private routerNavigationEffect(): Observable {\n return this.actions$.pipe(\n ofType(routerNavigationAction),\n map((action) => {\n return setRouteLoading({\n routeLoading: this.getRouteLoading(\n this.router.url,\n action.payload.event.url,\n ),\n });\n }),\n );\n }\n\n private routerCancelEffect(): Observable {\n return this.actions$.pipe(\n ofType(routerCancelAction),\n map(() => {\n return setRouteLoading({ routeLoading: undefined });\n }),\n );\n }\n\n private routerNavigatedEffect(): Observable {\n return this.actions$.pipe(\n ofType(routerNavigatedAction),\n map(() => {\n return setRouteLoading({ routeLoading: undefined });\n }),\n );\n }\n\n private getRouteLoading(\n currentUrl: string,\n targetUrl: string,\n ): RouteLoading | Nil {\n const currentUrlParts = currentUrl.split('/');\n const targetUrlParts = targetUrl.split('/');\n\n const currentArea =\n currentUrlParts.length > 2\n ? currentUrlParts[currentUrlParts.length - 2]\n : undefined;\n\n const targetArea =\n targetUrlParts.length > 2\n ? targetUrlParts[targetUrlParts.length - 2]\n : undefined;\n\n if (currentArea === targetArea) {\n return RouteLoading.Tab;\n } else {\n return RouteLoading.Page;\n }\n }\n}\n","import { ActionReducer, ActionReducerMap, MetaReducer } from '@ngrx/store';\nimport { localStorageSync } from 'ngrx-store-localstorage';\n\nimport { AUTH_STATE_NAME, authReducer } from './auth';\nimport {\n CURRENT_DEVICE_STATE_NAME,\n currentDeviceReducer,\n} from './current-device';\nimport { CURRENT_USER_STATE_NAME, currentUserReducer } from './current-user';\nimport { LAYOUT_REDUCER_STATE_NAME, layoutReducer } from './layout';\nimport {\n NOTIFICATIONS_STATE_NAME,\n notificationsReducer,\n} from './notifications';\nimport { State } from './store.state';\n\nexport const reducers: ActionReducerMap = {\n [AUTH_STATE_NAME]: authReducer,\n [CURRENT_DEVICE_STATE_NAME]: currentDeviceReducer,\n [CURRENT_USER_STATE_NAME]: currentUserReducer,\n [LAYOUT_REDUCER_STATE_NAME]: layoutReducer,\n [NOTIFICATIONS_STATE_NAME]: notificationsReducer,\n};\n\nfunction localStorageSyncReducer(\n reducer: ActionReducer,\n): ActionReducer {\n return localStorageSync({\n keys: [AUTH_STATE_NAME, { [CURRENT_DEVICE_STATE_NAME]: ['device'] }],\n rehydrate: true,\n })(reducer);\n}\n\nexport const metaReducers: MetaReducer[] = [localStorageSyncReducer];\n","import { Environment } from './environment.types';\n\nexport const environment: Environment = {\n urls: {\n api: '/api/v1',\n supportEmail: 'BGTechSupport@eaton.com',\n },\n schedulerLicenseKey: '0536838352-fcs-1683300359',\n maxPermissionsPerDevice: 100,\n version: '1.3',\n versionSeason: 'Autumn 2023',\n versionTimestamp: parseInt('1719813284902', 10),\n production: false,\n local: false,\n googleTagManagerId: 'GTM-TZ6JSWRB',\n};\n","export * from './messages';\n","/* eslint-disable max-len */\nimport * as formatMessage from 'format-message';\n\n// AUTOMATICALLY GENERATED ! DO NOT EDIT MANUALLY !\n\nexport const MESSAGES = {\n accountPage: {\n description: {\n accountInformation: $localize`:@@account-page.description.account-information:Energy consumption and production history for all the devices and buildings associated with this account.`,\n auditLogs: $localize`:@@account-page.description.audit-logs:Records of all events and changes your account did on the software.`,\n },\n label: {\n accountInformation: $localize`:@@account-page.label.account-information:Account information`,\n auditLogs: $localize`:@@account-page.label.audit-logs:Audit logs`,\n support: $localize`:@@account-page.label.support:Support`,\n },\n menu: {\n changePassword: $localize`:@@account-page.menu.change-password:Change password`,\n deleteAccount: $localize`:@@account-page.menu.delete-account:Delete account`,\n downloadAccountInformation: $localize`:@@account-page.menu.download-account-information:Download account information`,\n personalInformation: $localize`:@@account-page.menu.personal-information:Personal information`,\n preferences: $localize`:@@account-page.menu.preferences:Preferences`,\n },\n title: {\n myAccount: $localize`:@@account-page.title.my-account:My Account`,\n },\n },\n appMenu: {\n label: {\n assets: $localize`:@@app-menu.label.assets:Assets`,\n charts: $localize`:@@app-menu.label.charts:Charts`,\n dashboard: $localize`:@@app-menu.label.dashboard:Dashboard`,\n scheduler: $localize`:@@app-menu.label.scheduler:Scheduler`,\n settings: $localize`:@@app-menu.label.settings:Settings`,\n users: $localize`:@@app-menu.label.users:Users`,\n },\n title: $localize`:@@app-menu.title:BEMS`,\n },\n app: {\n cookieConsent: {\n accept: $localize`:@@app.cookie-consent.accept:I accept cookies`,\n analytics: $localize`:@@app.cookie-consent.analytics:Analytics`,\n consent: $localize`:@@app.cookie-consent.consent:I allow this website to use the following cookies`,\n explanation: $localize`:@@app.cookie-consent.explanation:We use cookies to be able to provide social media features, analyze our traffic and behavior of the visitors on our website and for marketing purposes.`,\n link: $localize`:@@app.cookie-consent.link:More information`,\n linkUrl: $localize`:@@app.cookie-consent.link-url:https://www.cookiesandyou.com`,\n required: $localize`:@@app.cookie-consent.required:Required`,\n settings: $localize`:@@app.cookie-consent.settings:Change settings`,\n title: $localize`:@@app.cookie-consent.title:This website uses cookies`,\n },\n saveTrap: {\n confirm: $localize`:@@app.save-trap.confirm:If you proceed, your unsaved changes will be lost. Are you sure you want to continue?`,\n },\n },\n assetDetailsPage: {\n gatheringState: {\n description: $localize`:@@asset-details-page.gathering-state.description:This process can take up to an hour.`,\n title: $localize`:@@asset-details-page.gathering-state.title:Gathering data`,\n },\n offlineState: {\n description: $localize`:@@asset-details-page.offline-state.description:Please review your asset details to solve this issue.`,\n title: $localize`:@@asset-details-page.offline-state.title:Offline`,\n },\n },\n assetsDetailsPage: {\n button: {\n backToAllAssets: $localize`:@@assets-details-page.button.back-to-all-assets:Back to all assets`,\n },\n label: {\n starting: $localize`:@@assets-details-page.label.starting:Starting`,\n },\n },\n assetsPage: {\n column: {\n name: $localize`:@@assets-page.column.name:Name`,\n power: $localize`:@@assets-page.column.power:Power`,\n status: $localize`:@@assets-page.column.status:Status`,\n },\n emptyState: {\n title: $localize`:@@assets-page.empty-state.title:No asset available yet.`,\n },\n },\n authorizeApplicationErrorPage: {\n paragraph: {\n closeTab: $localize`:@@authorize-application-error-page.paragraph.close-tab:You can now close this tab.`,\n restart: (name: string | number) => {\n return format(\n $localize`:@@authorize-application-error-page.paragraph.restart:The user code expired due to inactivity.\\\\nPlease start again the process from {{name}}.`,\n { name },\n );\n },\n },\n title: {\n timeout: $localize`:@@authorize-application-error-page.title.timeout:Authorize application timeout`,\n },\n },\n authorizeApplicationPage: {\n button: {\n allow: $localize`:@@authorize-application-page.button.allow:Allow`,\n },\n paragraph: {\n intro: (clientName: string | number) => {\n return format(\n $localize`:@@authorize-application-page.paragraph.intro:{{clientName}} is requesting access to BEMS data for the following installations:`,\n { clientName },\n );\n },\n share: $localize`:@@authorize-application-page.paragraph.share:You will share all readable data to this application.`,\n userCode: $localize`:@@authorize-application-page.paragraph.user-code:Please enter the user code and click on allow to finalize the authorization.`,\n },\n placeholder: {\n userCode: $localize`:@@authorize-application-page.placeholder.user-code:User Code`,\n },\n title: {\n authorizeApplication: $localize`:@@authorize-application-page.title.authorize-application:Authorize application`,\n },\n validationError: {\n userCode: {\n invalid: $localize`:@@authorize-application-page.validation-error.user-code.invalid:Invalid User Code. Please insert 10 alphanumeric chars`,\n },\n },\n },\n authorizeApplicationSuccessPage: {\n paragraph: {\n closeTab: (clientName: string | number) => {\n return format(\n $localize`:@@authorize-application-success-page.paragraph.close-tab:You can now close this tab and return to {{clientName}}.`,\n { clientName },\n );\n },\n },\n title: {\n success: $localize`:@@authorize-application-success-page.title.success:Application authorized successfully`,\n },\n },\n changePasswordPage: {\n hint: {\n passwordsMustMatch: $localize`:@@change-password-page.hint.passwords-must-match:Both passwords must match`,\n },\n notification: {\n saveError: $localize`:@@change-password-page.notification.save-error:An error has occurred while saving your password.`,\n saveSuccess: $localize`:@@change-password-page.notification.save-success:Your password has been saved successfully.`,\n },\n placeholder: {\n confirmPassword: $localize`:@@change-password-page.placeholder.confirm-password:Confirm password`,\n newPassword: $localize`:@@change-password-page.placeholder.new-password:New password`,\n oldPassword: $localize`:@@change-password-page.placeholder.old-password:Old password`,\n },\n },\n chartsPage: {\n emptyState: {\n title: $localize`:@@charts-page.empty-state.title:Data currently unavailable`,\n },\n legend: {\n batteryCharging: $localize`:@@charts-page.legend.battery-charging:Battery Charging`,\n batteryDischarging: $localize`:@@charts-page.legend.battery-discharging:Battery Discharging`,\n batteryStateOfCharge: $localize`:@@charts-page.legend.battery-state-of-charge:Battery state of charge`,\n connectionCapacity: $localize`:@@charts-page.legend.connection-capacity:Connection capacity`,\n currentTime: $localize`:@@charts-page.legend.current-time:Current Time`,\n day: $localize`:@@charts-page.legend.day:Day`,\n evChargers: $localize`:@@charts-page.legend.ev-chargers:EV Chargers`,\n evChargersCharging: $localize`:@@charts-page.legend.ev-chargers-charging:EV Chargers Charging`,\n evChargersDischarging: $localize`:@@charts-page.legend.ev-chargers-discharging:EV Chargers Discharging`,\n forecastData: $localize`:@@charts-page.legend.forecast-data:Forecast data`,\n grid: $localize`:@@charts-page.legend.grid:Grid`,\n gridConsumption: $localize`:@@charts-page.legend.grid-consumption:Grid Consumption`,\n gridInjection: $localize`:@@charts-page.legend.grid-injection:Grid Injection`,\n gridInjectionLimit: $localize`:@@charts-page.legend.grid-injection-limit:Grid injection limit`,\n night: $localize`:@@charts-page.legend.night:Night`,\n otherLoads: $localize`:@@charts-page.legend.other-loads:Other Loads`,\n peakShaving: $localize`:@@charts-page.legend.peak-shaving:Peak Shaving`,\n realTimeData: $localize`:@@charts-page.legend.real-time-data:Real data`,\n selfGeneration: $localize`:@@charts-page.legend.self-generation:Self generation`,\n selfSufficiency: $localize`:@@charts-page.legend.self-sufficiency:Self sufficiency`,\n solarPanels: $localize`:@@charts-page.legend.solar_panels:Solar Panels`,\n storageSystems: $localize`:@@charts-page.legend.storage_systems:Storage Systems`,\n },\n title: {\n buildingSummary: $localize`:@@charts-page.title.building-summary:Building Summary`,\n performanceMetrics: $localize`:@@charts-page.title.performance-metrics:Performance metrics`,\n },\n },\n createAccountErrorPage: {\n button: {\n back: $localize`:@@create-account-error-page.button.back:Go Back`,\n },\n paragraph: {\n description: (support: string | number) => {\n return format(\n $localize`:@@create-account-error-page.paragraph.description:An issue occurred during the account creation, please try to go back and submit the form again. If the issue is happening again, please contact the {{support}}.`,\n { support },\n );\n },\n support: $localize`:@@create-account-error-page.paragraph.support:support`,\n title: (firstName: string | number) => {\n return format(\n $localize`:@@create-account-error-page.paragraph.title:Sorry {{firstName}}, an error occurred`,\n { firstName },\n );\n },\n },\n },\n createAccountPage: {\n button: {\n sendNewCode: $localize`:@@create-account-page.button.send-new-code:Send New Code`,\n signUp: $localize`:@@create-account-page.button.sign-up:Sign up`,\n },\n hint: {\n newCodeSent: $localize`:@@create-account-page.hint.new-code-sent:Verification code sent successfully.`,\n passwordMustMatch: $localize`:@@create-account-page.hint.password-must-match:Both passwords must match`,\n },\n paragraph: {\n createAnAccount: $localize`:@@create-account-page.paragraph.create-an-account:Create an account`,\n },\n placeholder: {\n confirmPassword: $localize`:@@create-account-page.placeholder.confirm-password:Confirm password`,\n email: $localize`:@@create-account-page.placeholder.email:Email address`,\n firstName: $localize`:@@create-account-page.placeholder.first-name:First Name`,\n lastName: $localize`:@@create-account-page.placeholder.last-name:Last Name`,\n password: $localize`:@@create-account-page.placeholder.password:New password`,\n verificationCode: $localize`:@@create-account-page.placeholder.verification-code:Verification Code`,\n },\n validationError: {\n newCodeNotSent: $localize`:@@create-account-page.validation-error.new-code-not-sent:Verification code couldn't be sent.`,\n },\n },\n createAccountSuccessPage: {\n button: {\n finish: $localize`:@@create-account-success-page.button.finish:Finish`,\n },\n paragraph: {\n description: (email: string | number, button: string | number) => {\n return format(\n $localize`:@@create-account-success-page.paragraph.description:Your account has been successfully created with the email {{email}}. Press {{button}} below to continue.`,\n { email, button },\n );\n },\n title: (firstName: string | number) => {\n return format(\n $localize`:@@create-account-success-page.paragraph.title:Welcome, {{firstName}}!`,\n { firstName },\n );\n },\n },\n },\n dashboardPage: {\n energyDiagram: {\n energyPoint: {\n electricGrid: $localize`:@@dashboard-page.energy-diagram.energy-point.electric-grid:Electric Grid`,\n essentialLoads: $localize`:@@dashboard-page.energy-diagram.energy-point.essential-loads:Essential\\\\nloads`,\n evChargers: $localize`:@@dashboard-page.energy-diagram.energy-point.ev-chargers:EV Chargers`,\n learnMore: $localize`:@@dashboard-page.energy-diagram.energy-point.learn-more:Learn more`,\n noneConnected: $localize`:@@dashboard-page.energy-diagram.energy-point.none-connected:None connected`,\n offline: $localize`:@@dashboard-page.energy-diagram.energy-point.offline:Offline`,\n otherLoads: $localize`:@@dashboard-page.energy-diagram.energy-point.other-loads:Other Loads`,\n percentageValue: (value: string | number, unit: string | number) => {\n return format(\n $localize`:@@dashboard-page.energy-diagram.energy-point.percentage-value:{{value}} {{unit}}`,\n { value, unit },\n );\n },\n solarPanels: $localize`:@@dashboard-page.energy-diagram.energy-point.solar-panels:Solar Panels`,\n storageSystems: $localize`:@@dashboard-page.energy-diagram.energy-point.storage-systems:Storage Systems`,\n subTitle: {\n electricGrid: $localize`:@@dashboard-page.energy-diagram.energy-point.sub-title.electric-grid:EDF Electricity`,\n },\n timesValue: (times: string | number) => {\n return format(\n $localize`:@@dashboard-page.energy-diagram.energy-point.times-value:x{{times}}`,\n { times },\n );\n },\n },\n title: {\n fetching: $localize`:@@dashboard-page.energy-diagram.title.fetching:FETCHING\\\\nDATA...`,\n offline: $localize`:@@dashboard-page.energy-diagram.title.offline:SYSTEM OFFLINE`,\n online: $localize`:@@dashboard-page.energy-diagram.title.online:TOTAL \\\\nPOWER USAGE`,\n },\n totalConsumption: {\n off: $localize`:@@dashboard-page.energy-diagram.total-consumption.off:OFF`,\n on: $localize`:@@dashboard-page.energy-diagram.total-consumption.on:ON`,\n title: $localize`:@@dashboard-page.energy-diagram.total-consumption.title:TOTAL CONSUMPTION`,\n },\n },\n title: {\n lastDays: $localize`:@@dashboard-page.title.last-days:Last 30 days`,\n today: $localize`:@@dashboard-page.title.today:Today`,\n },\n trendCard: {\n title: {\n energyCostsNode: $localize`:@@dashboard-page.trend-card.title.energy-costs-node:Energy costs`,\n evChargerNode: $localize`:@@dashboard-page.trend-card.title.ev-charger-node:EV Charger Consumption`,\n gridNode: $localize`:@@dashboard-page.trend-card.title.grid-node:Grid Energy Consumption`,\n pvNode: $localize`:@@dashboard-page.trend-card.title.pv-node:Renewables Production`,\n selfSufficiencyNode: $localize`:@@dashboard-page.trend-card.title.self-sufficiency-node:Self-Sufficiency`,\n },\n tooltip: {\n energyCostsNode: $localize`:@@dashboard-page.trend-card.tooltip.energy-costs-node:These are estimated values calculated by the system. Please refer to your energy bill for precise costs.`,\n evChargerNode: $localize`:@@dashboard-page.trend-card.tooltip.ev-charger-node:The total power that has been consumed by all electric vehicle chargers combined.`,\n gridNode: $localize`:@@dashboard-page.trend-card.tooltip.gridNode:The power your building has obtained from the grid.`,\n pvNode: $localize`:@@dashboard-page.trend-card.tooltip.pv-node:The combined power your building has produced from renewable sources, like photovoltaic panels and wind turbines.`,\n selfSufficiencyNode: $localize`:@@dashboard-page.trend-card.tooltip.self-sufficiency-node:How much of the renewable electricity production is consumed locally.`,\n },\n },\n },\n deleteAccountPage: {\n button: {\n deleteAccount: $localize`:@@delete-account-page.button.delete-account:Delete account`,\n },\n keyword: {\n delete: $localize`:@@delete-account-page.keyword.delete:DELETE`,\n },\n link: {\n download: $localize`:@@delete-account-page.link.download:Download the account information`,\n },\n notification: {\n deleteError: $localize`:@@delete-account-page.notification.delete-error:An error occurred while deleting your account.`,\n deleteSuccess: $localize`:@@delete-account-page.notification.delete-success:Your account has been successfully deleted.`,\n },\n paragraph: {\n attention: $localize`:@@delete-account-page.paragraph.attention:ATTENTION: `,\n confirm: $localize`:@@delete-account-page.paragraph.confirm:Are you sure you want to delete this account? This process cannot be undone.`,\n deleteAccount: (\n attention: string | number,\n download: string | number,\n ) => {\n return format(\n $localize`:@@delete-account-page.paragraph.delete-account:{{attention}} deleting your account will remove all of your data and device information from the system. Make sure you {{download}} before you delete.`,\n { attention, download },\n );\n },\n },\n placeholder: {\n confirm: (keyword: string | number) => {\n return format(\n $localize`:@@delete-account-page.placeholder.confirm:Type {{keyword}} to confirm`,\n { keyword },\n );\n },\n },\n title: {\n deleteAccount: $localize`:@@delete-account-page.title.delete-account:Delete account`,\n },\n },\n deviceSettingsGeneralPage: {\n notification: {\n lobbyUrlCopied: $localize`:@@device-settings-general-page.notification.lobby-url-copied:URL copied to clipboard`,\n settingsLoadError: $localize`:@@device-settings-general-page.notification.settings-load-error:An error has occurred while loading your settings.`,\n settingsSaveError: $localize`:@@device-settings-general-page.notification.settings-save-error:An error has occured while saving your settings.`,\n settingsSaveSuccess: $localize`:@@device-settings-general-page.notification.settings-save-success:Your settings have been saved successfully.`,\n },\n placeholder: {\n country: $localize`:@@device-settings-general-page.placeholder.country:Country`,\n currency: $localize`:@@device-settings-general-page.placeholder.currency:Currency`,\n lobbyView: $localize`:@@device-settings-general-page.placeholder.lobby-view:Lobby view`,\n postalCode: $localize`:@@device-settings-general-page.placeholder.postal-code:Postal code / locality`,\n serial: $localize`:@@device-settings-general-page.placeholder.serial:Unit serial number`,\n technicianAccess: $localize`:@@device-settings-general-page.placeholder.technician-access:Local technician access`,\n timeZone: $localize`:@@device-settings-general-page.placeholder.time-zone:Timezone`,\n unitCustomName: $localize`:@@device-settings-general-page.placeholder.unit-custom-name:Unit custom name`,\n },\n tooltip: {\n lobbyUrlCopied: $localize`:@@device-settings-general-page.tooltip.lobby-url-copied:Lobby view URL has been copied to clipboard.`,\n lobbyUrlInfo: $localize`:@@device-settings-general-page.tooltip.lobby-url-info:Use this URL to view the BEMS dashboard on a dedicated monitor or television screen.`,\n },\n },\n eulaPage: {\n button: {\n acceptAndProceed: $localize`:@@eula-page.button.accept-and-proceed:Accept and proceed`,\n },\n title: { eula: $localize`:@@eula-page.title.eula:EULA` },\n },\n evChargersPage: {\n gatheringState: {\n description: $localize`:@@ev-chargers-page.gathering-state.description:This process can take up to an hour.`,\n subtitle: $localize`:@@ev-chargers-page.gathering-state.subtitle:The system is now gathering your EV charger details.`,\n title: $localize`:@@ev-chargers-page.gathering-state.title:Gathering data`,\n },\n label: {\n errorCode: $localize`:@@ev-chargers-page.label.error-code:Error code`,\n externalConstraint: $localize`:@@ev-chargers-page.label.external-constraint:BEMS constraint`,\n instantPower: $localize`:@@ev-chargers-page.label.instant-power:Instant power`,\n maximumPower: $localize`:@@ev-chargers-page.label.maximum-power:Maximum power`,\n plugName: (\n index: string | number,\n maxPowerValue: string | number,\n maxPowerUnit: string | number,\n ) => {\n return format(\n $localize`:@@ev-chargers-page.label.plug-name:Type {{index}} - {{maxPowerValue}} {{maxPowerUnit}}`,\n { index, maxPowerValue, maxPowerUnit },\n );\n },\n sessionDuration: $localize`:@@ev-chargers-page.label.session-duration:Session duration`,\n },\n offlineState: {\n description: $localize`:@@ev-chargers-page.offline-state.description:Please review your asset details to solve this issue.`,\n subtitle: $localize`:@@ev-chargers-page.offline-state.subtitle:The system is unable to gather your EV charger details.`,\n title: $localize`:@@ev-chargers-page.offline-state.title:Offline`,\n },\n paragraph: {\n connectors: $localize`:@@ev-chargers-page.paragraph.connectors:EVSEs / Connectors`,\n },\n },\n forbiddenPage: {\n button: { goBack: $localize`:@@forbidden-page.button.go-back:Go Back` },\n paragraph: {\n description: $localize`:@@forbidden-page.paragraph.description:You need additional permissions to access this page.`,\n supportMessage: $localize`:@@forbidden-page.paragraph.support-message:Please contact your system administrator.`,\n },\n title: {\n forbidden: $localize`:@@forbidden-page.title.forbidden:Permission required.`,\n },\n },\n general: {\n assetCategory: {\n binaryLoad: $localize`:@@general.asset-category.binary-load:Binary Load`,\n evCharger: $localize`:@@general.asset-category.ev-charger:EV Charger`,\n powerMeter: $localize`:@@general.asset-category.power-meter:Power Meter`,\n solarPanel: $localize`:@@general.asset-category.solar-panel:Solar Panel`,\n storageUnit: $localize`:@@general.asset-category.storage-unit:Storage Unit`,\n },\n assetEmptyState: {\n powerMeterOfflineDescription: $localize`:@@general.asset-empty-state.power-meter-offline-description:Please review your asset details to solve the issue.`,\n powerMeterOfflineSubtitle: $localize`:@@general.asset-empty-state.power-meter-offline-subtitle:The system is unable to gather your power meter details.`,\n powerMeterGatheringSubtitle: $localize`:@@general.assetEmptyState.power-meter-gathering-subtitle:The system is now gathering your Power meter Unit details.`,\n },\n assetStatus: {\n available: $localize`:@@general.asset-status.available:Available`,\n charging: $localize`:@@general.asset-status.charging:Charging`,\n consuming: $localize`:@@general.asset-status.consuming:Consuming`,\n disabled: $localize`:@@general.asset-status.disabled:Disabled`,\n discharging: $localize`:@@general.asset-status.discharging:Discharging`,\n enabled: $localize`:@@general.asset-status.enabled:Enabled`,\n error: $localize`:@@general.asset-status.error:Error`,\n faulted: $localize`:@@general.asset-status.faulted:Faulted`,\n finishing: $localize`:@@general.asset-status.finishing:Finishing`,\n idle: $localize`:@@general.asset-status.idle:Idle`,\n initialising: $localize`:@@general.asset-status.initialising:Initialising`,\n injecting: $localize`:@@general.asset-status.injecting:Injecting`,\n offline: $localize`:@@general.asset-status.offline:Offline`,\n online: $localize`:@@general.asset-status.online:Online`,\n preparing: $localize`:@@general.asset-status.preparing:Preparing`,\n reserved: $localize`:@@general.asset-status.reserved:Reserved`,\n suspendedevse: $localize`:@@general.asset-status.suspendedevse:Suspended EVSE`,\n unavailable: $localize`:@@general.asset-status.unavailable:Unavailable`,\n unknown: $localize`:@@general.asset-status.unknown:Unknown`,\n },\n button: {\n cancel: $localize`:@@general.button.cancel:Cancel`,\n delete: $localize`:@@general.button.delete:Delete`,\n edit: $localize`:@@general.button.edit:Edit`,\n ok: $localize`:@@general.button.ok:Ok`,\n remove: $localize`:@@general.button.remove:Remove`,\n save: $localize`:@@general.button.save:Save`,\n view: $localize`:@@general.button.view:View`,\n },\n dateFormat: {\n europe: $localize`:@@general.date-format.europe:Europe`,\n us: $localize`:@@general.date-format.us:MM/DD/YY (USA)`,\n },\n dateRange: {\n day: $localize`:@@general.date-range.day:Day`,\n month: $localize`:@@general.date-range.month:Month`,\n week: $localize`:@@general.date-range.week:Week`,\n year: $localize`:@@general.date-range.year:Year`,\n },\n dayOfWeek: {\n friday: $localize`:@@general.day-of-week.friday:Friday`,\n monday: $localize`:@@general.day-of-week.monday:Monday`,\n saturday: $localize`:@@general.day-of-week.saturday:Saturday`,\n sunday: $localize`:@@general.day-of-week.sunday:Sunday`,\n thursday: $localize`:@@general.day-of-week.thursday:Thursday`,\n tuesday: $localize`:@@general.day-of-week.tuesday:Tuesday`,\n wednesday: $localize`:@@general.day-of-week.wednesday:Wednesday`,\n },\n device: {\n unit: (deviceSerial: string | number) => {\n return format($localize`:@@general.device.unit:Unit {{deviceSerial}}`, {\n deviceSerial,\n });\n },\n version: (version: string | number) => {\n return format($localize`:@@general.device.version:v{{version}}`, {\n version,\n });\n },\n },\n labels: {\n notAvailable: $localize`:@@general.labels.not-available:Not available`,\n },\n language: {\n de: $localize`:@@general.language.de:Deutsch`,\n en: $localize`:@@general.language.en:English`,\n fr: $localize`:@@general.language.fr:Français`,\n it: $localize`:@@general.language.it:Italiano`,\n nl: $localize`:@@general.language.nl:Nederlands`,\n no: $localize`:@@general.language.no:Norsk`,\n },\n months: {\n april: $localize`:@@general.months.april:April`,\n august: $localize`:@@general.months.august:August`,\n december: $localize`:@@general.months.december:December`,\n february: $localize`:@@general.months.february:February`,\n january: $localize`:@@general.months.january:January`,\n july: $localize`:@@general.months.july:July`,\n june: $localize`:@@general.months.june:June`,\n march: $localize`:@@general.months.march:March`,\n may: $localize`:@@general.months.may:May`,\n november: $localize`:@@general.months.november:November`,\n october: $localize`:@@general.months.october:October`,\n september: $localize`:@@general.months.september:September`,\n },\n scheduler: {\n actions: {\n delete: $localize`:@@general.scheduler.actions.delete:Delete Event`,\n linkToScheduler: $localize`:@@general.scheduler.actions.link-to-scheduler:Edit in Scheduler`,\n },\n eventActionFieldType: {\n limit: $localize`:@@general.scheduler.event-action-field-type.limit:Max Power Rate`,\n limitAmount: (amount: string | number) => {\n return format(\n $localize`:@@general.scheduler.event-action-field-type.limit-amount:Max Power Rate {{amount}} kW`,\n { amount },\n );\n },\n soc: $localize`:@@general.scheduler.event-action-field-type.soc:State of Charge`,\n socAmount: (amount: string | number) => {\n return format(\n $localize`:@@general.scheduler.event-action-field-type.soc-amount:State of Charge {{amount}} %`,\n { amount },\n );\n },\n },\n eventActionType: {\n evPowerLimit: $localize`:@@general.scheduler.event-action-type.ev-power-limit:Power Limit`,\n evPowerLimitAsset: (assetName: string | number) => {\n return format(\n $localize`:@@general.scheduler.event-action-type.ev-power-limit-asset:{{assetName}} - Power limit`,\n { assetName },\n );\n },\n targetSoc: $localize`:@@general.scheduler.event-action-type.target-soc:Target State of Charge`,\n targetSocAsset: (assetName: string | number) => {\n return format(\n $localize`:@@general.scheduler.event-action-type.target-soc-asset:{{assetName}} - Target State of Charge`,\n { assetName },\n );\n },\n },\n placeholder: {\n title: $localize`:@@general.scheduler.placeholder.title:Scheduling`,\n tooltip: (startTime: string | number, endTime: string | number) => {\n return format(\n $localize`:@@general.scheduler.placeholder.tooltip:From {{startTime}} until {{endTime}}`,\n { startTime, endTime },\n );\n },\n },\n },\n table: {\n filter: {\n empty: $localize`:@@general.table.filter.empty:No result`,\n emptyDescription: $localize`:@@general.table.filter.empty-description:Please try to change your search to get more results.`,\n },\n filtersDialog: {\n button: {\n apply: $localize`:@@general.table.filters-dialog.button.apply:Apply`,\n filters: (count: string | number) => {\n return format(\n $localize`:@@general.table.filters-dialog.button.filters:{count, plural, one { filter applied} other { filters applied}}`,\n { count },\n );\n },\n noFilters: $localize`:@@general.table.filters-dialog.button.no-filters:Filters`,\n reset: $localize`:@@general.table.filters-dialog.button.reset:Reset`,\n },\n placeholder: {\n dateRange: $localize`:@@general.table.filters-dialog.placeholder.date-range:Enter a date range`,\n },\n timePeriods: {\n custom: $localize`:@@general.table.filters-dialog.time-periods.custom:Custom`,\n lastMonth: $localize`:@@general.table.filters-dialog.time-periods.last-month:Last Month`,\n lastQuarter: $localize`:@@general.table.filters-dialog.time-periods.last-quarter:Last Quarter`,\n thisMonth: $localize`:@@general.table.filters-dialog.time-periods.this-month:This Month`,\n thisQuarter: $localize`:@@general.table.filters-dialog.time-periods.this-quarter:This Quarter`,\n },\n title: {\n filterColumn: $localize`:@@general.table.filters-dialog.title.filter-column:Filter by`,\n filters: $localize`:@@general.table.filters-dialog.title.filters:Filters`,\n timePeriod: $localize`:@@general.table.filters-dialog.title.time-period:Time Period`,\n },\n },\n placeholder: {\n search: (attribute: string | number) => {\n return format(\n $localize`:@@general.table.placeholder.search:Search by {{attribute}}`,\n { attribute },\n );\n },\n },\n },\n timePeriods: {\n monthly: $localize`:@@general.time-periods.monthly:Monthly`,\n yearly: $localize`:@@general.time-periods.yearly:Yearly`,\n },\n unit: {\n energy: {\n gWatt: $localize`:@@general.unit.energy.gWatt:GW`,\n gWh: $localize`:@@general.unit.energy.gWh:GWh`,\n kWatt: $localize`:@@general.unit.energy.kWatt:kW`,\n kWh: $localize`:@@general.unit.energy.kWh:kWh`,\n mWatt: $localize`:@@general.unit.energy.mWatt:MW`,\n mWh: $localize`:@@general.unit.energy.mWh:MWh`,\n perKWh: $localize`:@@general.unit.energy.per-kWh:/kWh`,\n watt: $localize`:@@general.unit.energy.watt:W`,\n wh: $localize`:@@general.unit.energy.wh:Wh`,\n },\n power: { kW: $localize`:@@general.unit.power.kW:kW` },\n shortDay: $localize`:@@general.unit.short-day:d`,\n shortHour: $localize`:@@general.unit.short-hour:h`,\n shortMilli: $localize`:@@general.unit.short-milli:ms`,\n shortMinute: $localize`:@@general.unit.short-minute:m`,\n shortMonth: $localize`:@@general.unit.short-month:m`,\n shortSecond: $localize`:@@general.unit.short-second:s`,\n shortWeek: $localize`:@@general.unit.short-week:w`,\n shortYear: $localize`:@@general.unit.short-year:y`,\n temperature: {\n celsius: $localize`:@@general.unit.temperature.celsius:Celsius`,\n fahrenheit: $localize`:@@general.unit.temperature.fahrenheit:Fahrenheit`,\n },\n },\n userRole: {\n administrator: $localize`:@@general.user-role.administrator:Administrator`,\n reader: $localize`:@@general.user-role.reader:Reader`,\n },\n validationError: {\n invalidEmail: $localize`:@@general.validation-error.invalid-email:The given email address is invalid`,\n invalidPassword: $localize`:@@general.validation-error.invalid-password:The given password does not contain all required types of characters.`,\n passwordsMustMatch: $localize`:@@general.validation-error.passwords-must-match:Both passwords must match`,\n required: $localize`:@@general.validation-error.required:Mandatory field`,\n tooLong: $localize`:@@general.validation-error.too-long:The value is too long`,\n tooSmall: $localize`:@@general.validation-error.too-small:The value is too small`,\n },\n weather: {\n clear: $localize`:@@general.weather.clear:Clear`,\n cloudy: $localize`:@@general.weather.cloudy:Cloudy`,\n drizzle: $localize`:@@general.weather.drizzle:Drizzle`,\n flurries: $localize`:@@general.weather.flurries:Flurries`,\n fog: $localize`:@@general.weather.fog:Fog`,\n freezingDrizzle: $localize`:@@general.weather.freezing-drizzle:Freezing Drizzle`,\n freezingRain: $localize`:@@general.weather.freezing-rain:Freezing Rain`,\n heavyFreezingRain: $localize`:@@general.weather.heavy-freezing-rain:Heavy Freezing Rain`,\n heavyIcePellets: $localize`:@@general.weather.heavy-ice-pellets:Heavy Ice Pellets`,\n heavyRain: $localize`:@@general.weather.heavy-rain:Heavy Rain`,\n heavySnow: $localize`:@@general.weather.heavy-snow:Heavy Snow`,\n icePellets: $localize`:@@general.weather.ice-pellets:Ice Pellets`,\n lightFog: $localize`:@@general.weather.light-fog:Light Fog`,\n lightFreezingRain: $localize`:@@general.weather.light-freezing-rain:Light Freezing Rain`,\n lightIcePellets: $localize`:@@general.weather.light-ice-pellets:Light Ice Pellets`,\n lightRain: $localize`:@@general.weather.light-rain:Light Rain`,\n lightSnow: $localize`:@@general.weather.light-snow:Light Snow`,\n lightWind: $localize`:@@general.weather.light-wind:Light Wind`,\n mostlyClear: $localize`:@@general.weather.mostly-clear:Mostly Clear`,\n mostlyCloudy: $localize`:@@general.weather.mostly-cloudy:Mostly Cloudy`,\n partlyCloudy: $localize`:@@general.weather.partly-cloudy:Partly Cloudy`,\n rain: $localize`:@@general.weather.rain:Rain`,\n snow: $localize`:@@general.weather.snow:Snow`,\n strongWind: $localize`:@@general.weather.strong-wind:Strong Wind`,\n thunderstorm: $localize`:@@general.weather.thunderstorm:Thunderstorm`,\n wind: $localize`:@@general.weather.wind:Wind`,\n },\n },\n gridSettingsPage: {\n labels: {\n end: $localize`:@@grid-settings-page.labels.end:End`,\n read: $localize`:@@grid-settings-page.labels.read:Read`,\n setpoint: $localize`:@@grid-settings-page.labels.setpoint:Setpoint`,\n start: $localize`:@@grid-settings-page.labels.start:Start`,\n tariff: $localize`:@@grid-settings-page.labels.tariff:Tariff`,\n },\n numberOfRates: {\n options: {\n oneRate: $localize`:@@grid-settings-page.number-of-rates.options.one-rate:1 Rate`,\n twoRates: $localize`:@@grid-settings-page.number-of-rates.options.two-rates:2 Rates`,\n },\n },\n placeholders: {\n electricityRate: $localize`:@@grid-settings-page.placeholders.electricity-rate:Electricity rate`,\n numberOfRates: $localize`:@@grid-settings-page.placeholders.number-of-rates:Number of separate rates`,\n offPeakHours: $localize`:@@grid-settings-page.placeholders.off-peak-hours:Off-peak hours`,\n peakHours: $localize`:@@grid-settings-page.placeholders.peak-hours:Peak hours`,\n powerThreshold: $localize`:@@grid-settings-page.placeholders.power-threshold:Power threshold`,\n thresholdGranularity: $localize`:@@grid-settings-page.placeholders.threshold-granularity:Threshold granularity`,\n },\n titles: {\n advancedPeakShaving: $localize`:@@grid-settings-page.titles.advanced-peak-shaving:Advanced Peak Shaving`,\n },\n },\n internalServerErrorPage: {\n button: {\n goBack: $localize`:@@internal-server-error-page.button.go-back:Go Back`,\n },\n paragraph: {\n description: $localize`:@@internal-server-error-page.paragraph.description:Our server has encountered an internal error.`,\n supportEmail: $localize`:@@internal-server-error-page.paragraph.support-email: email our team `,\n supportMessage: (email: string | number) => {\n return format(\n $localize`:@@internal-server-error-page.paragraph.support-message:If you need assistance, please {{email}} and we will respond as soon as possible.`,\n { email },\n );\n },\n },\n title: {\n internalServerError: $localize`:@@internal-server-error-page.title.internal-server-error:Oops! Something went wrong.`,\n },\n },\n invitationAcceptancePage: {\n button: {\n accept: $localize`:@@invitation-acceptance-page.button.accept:Accept`,\n },\n label: {\n accessLevel: $localize`:@@invitation-acceptance-page.label.access-level:Access Level`,\n invitationDate: $localize`:@@invitation-acceptance-page.label.invitation-date:Invitation Date`,\n unitCode: $localize`:@@invitation-acceptance-page.label.unit-code:Unit Code`,\n },\n paragraph: {\n join: (fullName: string | number, name: string | number) => {\n return format(\n $localize`:@@invitation-acceptance-page.paragraph.join:{{fullName}} invited you to join {{name}}`,\n { fullName, name },\n );\n },\n },\n title: {\n join: (name: string | number) => {\n return format(\n $localize`:@@invitation-acceptance-page.title.join:Join {{name}}`,\n { name },\n );\n },\n },\n },\n invitationExpiredPage: {\n paragraph: {\n description: $localize`:@@invitation-expired-page.paragraph.description:That's just one of the ways we keep your account safe.`,\n supportMessage: $localize`:@@invitation-expired-page.paragraph.support-message:Please contact a system administrator and request a new invite.`,\n },\n title: {\n invitationExpired: $localize`:@@invitation-expired-page.title.invitation-expired:This invitation link has expired.`,\n },\n },\n invitationPage: {\n button: {\n back: $localize`:@@invitation-page.button.back:Back to all invitations`,\n removeAccess: $localize`:@@invitation-page.button.remove-access:Remove user access`,\n resendInvitation: $localize`:@@invitation-page.button.resend-invitation:Resend Invite`,\n },\n placeholder: {\n accessLevel: $localize`:@@invitation-page.placeholder.access-level:Access Level`,\n email: $localize`:@@invitation-page.placeholder.email:Email`,\n fullName: $localize`:@@invitation-page.placeholder.full-name:Full Name`,\n invitationDate: $localize`:@@invitation-page.placeholder.invitation-date:Invitation Date`,\n },\n title: {\n invitationDetails: $localize`:@@invitation-page.title.invitation-details:Invitation Details`,\n invitationSent: $localize`:@@invitation-page.title.invitation-sent:Invitation Sent`,\n },\n },\n loginPage: {\n button: { login: $localize`:@@login-page.button.login:Login` },\n link: {\n eula: $localize`:@@login-page.link.eula:End-User License Agreement`,\n signUp: $localize`:@@login-page.link.sign-up:Sign up`,\n },\n notification: {\n loginError: $localize`:@@login-page.notification.login-error:Incorrect Email or Password`,\n },\n paragraph: {\n forgotYourPassword: $localize`:@@login-page.paragraph.forgot-your-password:Forgot your password?`,\n noAccount: (signup: string | number) => {\n return format(\n $localize`:@@login-page.paragraph.no-account:Don't have an account? {{signup}}`,\n { signup },\n );\n },\n terms: (eula: string | number) => {\n return format(\n $localize`:@@login-page.paragraph.terms:By logging in you agree to our {{eula}}`,\n { eula },\n );\n },\n },\n placeholder: {\n email: $localize`:@@login-page.placeholder.email:Email address`,\n password: $localize`:@@login-page.placeholder.password:Password`,\n rememberMe: $localize`:@@login-page.placeholder.remember-me:Remember Me`,\n },\n validationError: {\n email: $localize`:@@login-page.validation-error.email:The given email address is invalid`,\n login: $localize`:@@login-page.validation-error.login:Incorrect Email or Password`,\n },\n },\n loginPortal: {\n title: {\n brightlayer: $localize`:@@login-portal.title.brightlayer:Brightlayer`,\n buildings: $localize`:@@login-portal.title.buildings:Buildings`,\n ems: $localize`:@@login-portal.title.ems:Energy Management Software`,\n },\n },\n noDevicePage: {\n paragraph: {\n description: $localize`:@@no-device-page.paragraph.description:Once you receive an invitation, you will\\\\nbe able to monitor your installation here.`,\n },\n title: {\n noDevice: $localize`:@@no-device-page.title.no-device:You are not connected to any unit yet.`,\n },\n },\n notFoundPage: {\n button: { goBack: $localize`:@@not-found-page.button.go-back:Go Back` },\n link: {\n backToLogin: $localize`:@@not-found-page.link.back-to-login:Back to Login`,\n },\n paragraph: {\n description: $localize`:@@not-found-page.paragraph.description:We can't find the page you are looking for.`,\n supportEmail: $localize`:@@not-found-page.paragraph.support-email: email our team `,\n supportMessage: (email: string | number) => {\n return format(\n $localize`:@@not-found-page.paragraph.support-message:If you need assistance, please {{email}} and we will respond as soon as possible.`,\n { email },\n );\n },\n },\n title: {\n notFound: $localize`:@@not-found-page.title.not-found:Oops! Page not found.`,\n },\n },\n notificationsDialog: {\n button: {\n markAllAsRead: $localize`:@@notifications-dialog.button.mark-all-as-read:Mark all as read`,\n },\n emptyState: {\n title: $localize`:@@notifications-dialog.empty-state.title:No notification yet.`,\n },\n label: {\n ago: $localize`:@@notifications-dialog.label.ago:ago`,\n timeAgo: (duration: string | number) => {\n return format(\n $localize`:@@notifications-dialog.label.time-ago:{{duration}} ago`,\n { duration },\n );\n },\n },\n notification: {\n markAllAsReadError: $localize`:@@notifications-dialog.notification.mark-all-as-read-error:An error has occurred while marking all the notifications as read.`,\n },\n sort: {\n byDate: $localize`:@@notifications-dialog.sort.by-date:Sort by date`,\n bySeverity: $localize`:@@notifications-dialog.sort.by-severity:Sort by severity`,\n },\n title: {\n notifications: $localize`:@@notifications-dialog.title.notifications:Notifications`,\n unreadNotifications: (count: string | number) => {\n return format(\n $localize`:@@notifications-dialog.title.unread-notifications:({{count}} unread)`,\n { count },\n );\n },\n },\n },\n passwordValidation: {\n atLeast1Digit: $localize`:@@password-validation.at-least-1-digit:At least 1 digit`,\n atLeast1LowercaseLetter: $localize`:@@password-validation.at-least-1-lowercase-letter:At least 1 lowercase letter`,\n atLeast1SpecialChar: $localize`:@@password-validation.at-least-1-special-char:At least 1 special character (!\\#$%&'()*+,-./:;<=>?@[]^_`{|}~)`,\n atLeast1UppercaseLetter: $localize`:@@password-validation.at-least-1-uppercase-letter:At least 1 uppercase letter`,\n eightToSixteenCharsLength: $localize`:@@password-validation.eight-to-sixteen-chars-length:Between 8 and 16 characters in length`,\n },\n personalInformationPage: {\n notification: {\n saveError: $localize`:@@personal-information-page.notification.save-error:An error has occurred while saving your personal information.`,\n saveSuccess: $localize`:@@personal-information-page.notification.save-success:Your personal information has been saved successfully.`,\n },\n placeholder: {\n email: $localize`:@@personal-information-page.placeholder.email:Email address`,\n firstName: $localize`:@@personal-information-page.placeholder.first-name:First Name`,\n lastName: $localize`:@@personal-information-page.placeholder.last-name:Last Name`,\n },\n },\n preferencesPage: {\n notification: {\n saveError: $localize`:@@preferences-page.notification.save-error:An error has occurred while saving the preferences.`,\n saveSuccess: $localize`:@@preferences-page.notification.save-success:The preferences have been saved successfully.`,\n },\n placeholder: {\n dateFormat: $localize`:@@preferences-page.placeholder.date-format:Calendar`,\n language: $localize`:@@preferences-page.placeholder.language:Language`,\n temperatureUnit: $localize`:@@preferences-page.placeholder.temperature-unit:Temperature`,\n },\n },\n resetPasswordErrorPage: {\n button: {\n back: $localize`:@@reset-password-error-page.button.back:Go Back`,\n },\n paragraph: {\n error: $localize`:@@reset-password-error-page.paragraph.error:An issue occurred during your password reset, please try to go back and submit the form again. If the issue is happening again, please contact the support.`,\n },\n title: {\n passwordResetFailed: $localize`:@@reset-password-error-page.title.password-reset-failed:Password reset failed`,\n },\n },\n resetPasswordPage: {\n button: {\n next: $localize`:@@reset-password-page.button.next:Next`,\n sendNewCode: $localize`:@@reset-password-page.button.send-new-code:Send New Code`,\n },\n hint: {\n newCodeSent: $localize`:@@reset-password-page.hint.new-code-sent:Verification code sent successfully.`,\n passwordMustMatch: $localize`:@@reset-password-page.hint.password-must-match:Both passwords must match`,\n },\n placeholder: {\n confirmPassword: $localize`:@@reset-password-page.placeholder.confirm-password:Confirm password`,\n email: $localize`:@@reset-password-page.placeholder.email:Email address`,\n password: $localize`:@@reset-password-page.placeholder.password:New password`,\n verificationCode: $localize`:@@reset-password-page.placeholder.verification-code:Verification Code`,\n },\n title: {\n resetPassword: $localize`:@@reset-password-page.title.reset-password:Reset password`,\n },\n validationError: {\n newCodeNotSent: $localize`:@@reset-password-page.validation-error.new-code-not-sent:Verification code couldn't be sent.`,\n },\n },\n resetPasswordSuccessPage: {\n button: {\n backToLogin: $localize`:@@reset-password-success-page.button.back-to-login:Back to Login`,\n },\n paragraph: {\n success: $localize`:@@reset-password-success-page.paragraph.success:You can now use your new password to Login.`,\n },\n title: {\n passwordResetSuccessfully: $localize`:@@reset-password-success-page.title.password-reset-successfully:Password reset successfully`,\n },\n },\n schedulerDialog: {\n placeholder: {\n action: $localize`:@@scheduler-dialog.placeholder.action:Action`,\n asset: $localize`:@@scheduler-dialog.placeholder.asset:Asset`,\n assetType: $localize`:@@scheduler-dialog.placeholder.asset-type:Asset type`,\n from: $localize`:@@scheduler-dialog.placeholder.from:From`,\n maxPowerRate: $localize`:@@scheduler-dialog.placeholder.max-power-rate:Max Power Rate`,\n stateOfCharge: $localize`:@@scheduler-dialog.placeholder.state-of-charge:State of Charge`,\n until: $localize`:@@scheduler-dialog.placeholder.until:Until`,\n },\n },\n schedulerPage: {\n addButton: $localize`:@@scheduler-page.add-button:Add Event`,\n addDescription: $localize`:@@scheduler-page.add-description:Events added to the Routine Scheduler will repeat every day.`,\n editTitle: $localize`:@@scheduler-page.edit-title:Edit Event`,\n emptyState: {\n description: $localize`:@@scheduler-page.empty-state.description:Unfortunately, you do not have any EV charger in your installation that support scheduling.`,\n descriptionNoEvent: $localize`:@@scheduler-page.empty-state.description-no-event:You can add an event to control the behavior of your asset within the 24 hours of the day.`,\n title: $localize`:@@scheduler-page.empty-state.title:No schedulable assets`,\n titleNoEvent: $localize`:@@scheduler-page.empty-state.title-no-event:No event`,\n },\n notification: {\n deleteEventError: $localize`:@@scheduler-page.notification.delete-event-error:An error has occurred while deleting event`,\n deleteEventSuccess: $localize`:@@scheduler-page.notification.delete-event-success:The event has been deleted successfully`,\n saveEventError: $localize`:@@scheduler-page.notification.save-event-error:An error has occurred while saving the event.`,\n saveEventOverlapError: $localize`:@@scheduler-page.notification.save-event-overlap-error:Invalid scheduled event: the event overlaps in the scheduler for the selected asset.`,\n saveEventSuccess: $localize`:@@scheduler-page.notification.save-event-success:The event has been saved successfully.`,\n },\n timeLineTitle: $localize`:@@scheduler-page.time-line-title:Assets`,\n },\n serviceUnavailablePage: {\n paragraph: {\n description: $localize`:@@service-unavailable-page.paragraph.description:EMS is temporarily offline.`,\n serviceDown: $localize`:@@service-unavailable-page.paragraph.service-down:Cloud device2cloud communication service is down.`,\n },\n title: {\n serviceUnavailable: $localize`:@@service-unavailable-page.title.service-unavailable:Oops! Something went wrong.`,\n },\n },\n sessionExpiredPage: {\n button: { login: $localize`:@@session-expired-page.button.login:Login` },\n paragraph: {\n description: $localize`:@@session-expired-page.paragraph.description:That's just one of the ways we keep your account safe.`,\n login: $localize`:@@session-expired-page.paragraph.login:Please login again to access your dashboard.`,\n },\n title: {\n sessionExpired: $localize`:@@session-expired-page.title.session-expired:Your session has expired.`,\n },\n },\n settingsPage: {\n menu: {\n general: $localize`:@@settings-page.menu.general:General`,\n grid: $localize`:@@settings-page.menu.grid:Grid`,\n license: $localize`:@@settings-page.menu.license:License`,\n support: $localize`:@@settings-page.menu.support:Support`,\n systemGoals: $localize`:@@settings-page.menu.system-goals:System Goals`,\n },\n },\n solarPanelPage: {\n gatheringState: {\n description: $localize`:@@solar-panel-page.gathering-state.description:This process can take up to an hour.`,\n subtitle: $localize`:@@solar-panel-page.gathering-state.subtitle:The system is now gathering your Solar Panel details.`,\n title: $localize`:@@solar-panel-page.gathering-state.title:Gathering data`,\n },\n label: {\n current: $localize`:@@solar-panel-page.label.current:Current`,\n curtailmentLimit: $localize`:@@solar-panel-page.label.curtailment-limit:Curtailment Limit`,\n installedPvCapacity: $localize`:@@solar-panel-page.label.installed-pv-capacity:Installed PV Capacity`,\n inverterCapacity: $localize`:@@solar-panel-page.label.inverter-capacity:Inverter Capacity`,\n inverterTemperature: $localize`:@@solar-panel-page.label.inverter-temperature:Inverter Temperature`,\n phase1: $localize`:@@solar-panel-page.label.phase-1:Phase 1`,\n phase2: $localize`:@@solar-panel-page.label.phase-2:Phase 2`,\n phase3: $localize`:@@solar-panel-page.label.phase-3:Phase 3`,\n power: $localize`:@@solar-panel-page.label.power:Power`,\n totalAcActivePower: $localize`:@@solar-panel-page.label.total-ac-active-power:Total AC Active Power`,\n totalDcPower: $localize`:@@solar-panel-page.label.total-dc-power:Total DC Power`,\n voltage: $localize`:@@solar-panel-page.label.voltage:Voltage`,\n },\n offlineState: {\n description: $localize`:@@solar-panel-page.offline-state.description:Please review your asset details to solve the issue.`,\n subtitle: $localize`:@@solar-panel-page.offline-state.subtitle:The system is unable to gather your Solar Panel details.`,\n title: $localize`:@@solar-panel-page.offline-state.title:Offline`,\n },\n title: {\n activePower: $localize`:@@solar-panel-page.title.active-power:Active Power`,\n apparentPower: $localize`:@@solar-panel-page.title.apparent-power:Apparent Power`,\n current: $localize`:@@solar-panel-page.title.current:Current`,\n inverterAcOutput: $localize`:@@solar-panel-page.title.inverter-ac-output:Inverter AC output`,\n maximumPowerPointTracking: $localize`:@@solar-panel-page.title.maximum-power-point-tracking:Maximum Power Point Tracking`,\n mppTracker: (number: string | number) => {\n return format(\n $localize`:@@solar-panel-page.title.mpp-tracker:MPP Tracker {{number}}`,\n { number },\n );\n },\n pvArrayDcInput: $localize`:@@solar-panel-page.title.pv-array-dc-input:PV Array DC input`,\n reactivePower: $localize`:@@solar-panel-page.title.reactive-power:Reactive Power`,\n voltage: $localize`:@@solar-panel-page.title.voltage:Voltage`,\n },\n },\n storageUnitPage: {\n gatheringState: {\n description: $localize`:@@storage-unit-page.gathering-state.description:This process can take up to an hour.`,\n subtitle: $localize`:@@storage-unit-page.gathering-state.subtitle:The system is now gathering your Storage Unit details.`,\n title: $localize`:@@storage-unit-page.gathering-state.title:Gathering data`,\n },\n label: {\n activePower: $localize`:@@storage-unit-page.label.active-power:Active Power`,\n apparentPower: $localize`:@@storage-unit-page.label.apparent-power:Apparent Power`,\n capacityAvailableToCharge: $localize`:@@storage-unit-page.label.capacity-available-to-charge:Capacity Available to Charge`,\n current: $localize`:@@storage-unit-page.label.current:Current`,\n energyAvailableToDischarge: $localize`:@@storage-unit-page.label.energy-available-to-discharge:Energy Available to Discharge`,\n firmwareVersion: $localize`:@@storage-unit-page.label.firmware-version:Firmware Version`,\n frequency: $localize`:@@storage-unit-page.label.frequency:Frequency`,\n maxChargePower: $localize`:@@storage-unit-page.label.max-charge-power:Max Charge Power`,\n maxDischargePower: $localize`:@@storage-unit-page.label.max-discharge-power:Max Discharge Power`,\n outOfTotalStrings: (totalStrings: string | number) => {\n return format(\n $localize`:@@storage-unit-page.label.out-of-total-strings:out of {{totalStrings}}`,\n { totalStrings },\n );\n },\n phase1: $localize`:@@storage-unit-page.label.phase-1:Phase 1`,\n phase2: $localize`:@@storage-unit-page.label.phase-2:Phase 2`,\n phase3: $localize`:@@storage-unit-page.label.phase-3:Phase 3`,\n powerFactor: $localize`:@@storage-unit-page.label.power-factor:Power Factor`,\n reactivePower: $localize`:@@storage-unit-page.label.reactive-power:Reactive Power`,\n stateOfCharge: $localize`:@@storage-unit-page.label.state-of-charge:State of Charge`,\n stringsOnline: $localize`:@@storage-unit-page.label.strings-online:Strings Online`,\n total: $localize`:@@storage-unit-page.label.total:Total`,\n voltage: $localize`:@@storage-unit-page.label.voltage:Voltage`,\n },\n offlineState: {\n description: $localize`:@@storage-unit-page.offline-state.description:Please review your asset details to solve this issue.`,\n subtitle: $localize`:@@storage-unit-page.offline-state.subtitle:The system is unable to gather your Storage Unit details.`,\n title: $localize`:@@storage-unit-page.offline-state.title:Offline`,\n },\n title: {\n systemSummary: $localize`:@@storage-unit-page.title.system-summary:System Summary`,\n x1InputGridSide: $localize`:@@storage-unit-page.title.x1-input-grid-side:X1 Input (Grid side)`,\n x3OutputBackupSide: $localize`:@@storage-unit-page.title.x3-output-backup-side:X3 Output (Back-up side)`,\n },\n tooltip: {\n activePower: $localize`:@@storage-unit-page.tooltip.active-power:Also know as True Power, Real Power, Useful Power or Watt-full Power. It represents the Power which is really utilized and consumed for useful works in AC or DC circuit. Active power is expressed in W.`,\n apparentPower: $localize`:@@storage-unit-page.tooltip.apparent-power:The combination of active and reactive power, or the product of voltage and current if and only if the phase angle differences between current and voltage are ignored. Apparent power is expressed in VA.`,\n capacityAvailableToCharge: $localize`:@@storage-unit-page.tooltip.capacity-available-to-charge:Amount of energy that battery can charge`,\n energyAvailableToDischarge: $localize`:@@storage-unit-page.tooltip.energy-available-to-discharge:Amount of energy that battery can discharge`,\n maxChargePower: $localize`:@@storage-unit-page.tooltip.max-charge-power:Maximum allowable charging power`,\n maxDischargePower: $localize`:@@storage-unit-page.tooltip.max-discharge-power:Maximum allowable discharging power`,\n powerFactor: $localize`:@@storage-unit-page.tooltip.power-factor:Power factor (PF) is the ratio of active power to apparent power.`,\n reactivePower: $localize`:@@storage-unit-page.tooltip.reactive-power:Also known as Useless Power or Watt-less Power. It represents the power which moves and back (bounces back and forth) between source and load in AC circuits. Reactive power is expressed in Var.`,\n stringsOnline: $localize`:@@storage-unit-page.tooltip.strings-online:Number of battery strings online`,\n },\n topMetric: {\n activePowerX1: $localize`:@@storage-unit-page.top-metric.active-power-x1:Active Power X1`,\n activePowerX3: $localize`:@@storage-unit-page.top-metric.active-power-x3:Active Power X3`,\n frequency: $localize`:@@storage-unit-page.top-metric.frequency:Frequency`,\n maxCellTemperature: $localize`:@@storage-unit-page.top-metric.max-cell-temperature:Max. Cell Temperature`,\n powerFactor: $localize`:@@storage-unit-page.top-metric.power-factor:Power Factor`,\n stateOfCharge: $localize`:@@storage-unit-page.top-metric.state-of-charge:State of Charge`,\n totalActivePower: $localize`:@@storage-unit-page.top-metric.total-active-power:Total Active Power`,\n totalApparentPower: $localize`:@@storage-unit-page.top-metric.total-apparent-power:Total Apparent Power`,\n totalCurrent: $localize`:@@storage-unit-page.top-metric.total-current:Total Current`,\n totalReactivePower: $localize`:@@storage-unit-page.top-metric.total-reactive-power:Total Reactive Power`,\n },\n },\n supportPage: {\n action: {\n contactUs: $localize`:@@support-page.action.contact-us:Contact us`,\n },\n downloadItem: {\n downloadUnitLogs: {\n details: $localize`:@@support-page.download-item.download-unit-logs.details:Containing all changes done to this unit by the system and users`,\n title: $localize`:@@support-page.download-item.download-unit-logs.title:Download unit logs`,\n },\n systemInformation: {\n details: $localize`:@@support-page.download-item.system-information.details:Please attach the downloaded file to your support email request`,\n title: $localize`:@@support-page.download-item.system-information.title:System information`,\n },\n },\n paragraph: {\n support: (email: string | number) => {\n return format(\n $localize`:@@support-page.paragraph.support:For all support queries relating to Eaton BEMS - Building Energy Management System, please email {{email}}`,\n { email },\n );\n },\n },\n },\n systemGoalsPage: {\n subtitle: {\n limitEvCharging: $localize`:@@system-goals-page.subtitle.limit-ev-charging:Limit EV charging to avoid peak power consumption.`,\n maximizePower: $localize`:@@system-goals-page.subtitle.maximize-power:Maximize the power send to EVs regardless of the energy cost.`,\n },\n title: {\n maximizeEvCharging: $localize`:@@system-goals-page.title.maximize-ev-charging:Maximize EV Charging`,\n reduceCosts: $localize`:@@system-goals-page.title.reduce-costs:Reduce Costs`,\n },\n },\n topbar: {\n account: {\n eula: $localize`:@@topbar.account.eula:EULA`,\n settings: $localize`:@@topbar.account.settings:Account settings`,\n signOut: $localize`:@@topbar.account.sign-out:Sign out`,\n },\n },\n userInvitationDialog: {\n placeholder: {\n emailAddress: $localize`:@@user-invitation-dialog.placeholder.email-address:Email address`,\n role: $localize`:@@user-invitation-dialog.placeholder.role:Role`,\n },\n },\n userPage: {\n alert: {\n productUpdates: {\n description: $localize`:@@user-page.alert.product-updates.description:New releases`,\n name: $localize`:@@user-page.alert.product-updates.name:Product Updates`,\n },\n statusUpdates: {\n description: $localize`:@@user-page.alert.status-updates.description:Device is disconnected`,\n name: $localize`:@@user-page.alert.status-updates.name:Status Updates`,\n },\n summaryReports: {\n description: $localize`:@@user-page.alert.summary-reports.description:Monthly`,\n name: $localize`:@@user-page.alert.summary-reports.name:Summary Reports`,\n },\n },\n button: {\n back: $localize`:@@user-page.button.back:Back to all users`,\n removeAccess: $localize`:@@user-page.button.remove-access:Remove Access`,\n },\n notification: {\n saveEmailAlertsError: $localize`:@@user-page.notification.save-email-alerts-error:An error has occurred while saving your email alerts.`,\n saveEmailAlertsSuccess: $localize`:@@user-page.notification.save-email-alerts-success:Your email alerts have been saved successfully.`,\n saveUserDetailsError: $localize`:@@user-page.notification.save-user-details-error:An error has occurred while saving the user details.`,\n saveUserDetailsSuccess: $localize`:@@user-page.notification.save-user-details-success:The user details have been saved successfully.`,\n },\n placeholder: {\n active: $localize`:@@user-page.placeholder.active:Account Status`,\n displayName: $localize`:@@user-page.placeholder.display-name:Full Name`,\n email: $localize`:@@user-page.placeholder.email:Email`,\n invitationDate: $localize`:@@user-page.placeholder.invitation-date:Invitation Date`,\n role: $localize`:@@user-page.placeholder.role:Access Level`,\n },\n title: {\n emailAlerts: $localize`:@@user-page.title.email-alerts:My Email Alerts`,\n userDetails: $localize`:@@user-page.title.user-details:User Details`,\n },\n },\n usersPage: {\n button: {\n addUser: $localize`:@@users-page.button.add-user:Add User`,\n removeAccess: $localize`:@@users-page.button.remove-access:Remove user access`,\n resend: $localize`:@@users-page.button.resend:Resend Invite`,\n sendInvitation: $localize`:@@users-page.button.send-invitation:Send Invitation`,\n },\n column: {\n displayName: $localize`:@@users-page.column.display-name:Name`,\n email: $localize`:@@users-page.column.email:Name`,\n role: $localize`:@@users-page.column.role:Role`,\n status: $localize`:@@users-page.column.status:Status`,\n },\n flag: { you: $localize`:@@users-page.flag.you:you` },\n invitationsEmptyState: {\n button: $localize`:@@users-page.invitations-empty-state.button:Go to users list`,\n description: $localize`:@@users-page.invitations-empty-state.description:You can invite a user by going to the users list and click the add user button.`,\n title: $localize`:@@users-page.invitations-empty-state.title:No pending user yet.`,\n },\n notification: {\n deleteInvitationError: $localize`:@@users-page.notification.delete-invitation-error:An error has occurred while removing the access of this user.`,\n deleteInvitationSuccess: $localize`:@@users-page.notification.delete-invitation-success:The access to this user has been removed successfully.`,\n deletePermissionError: $localize`:@@users-page.notification.delete-permission-error:An error occurred while removing access for that user.`,\n deletePermissionSuccess: $localize`:@@users-page.notification.delete-permission-success:User successfully deleted.`,\n resendInvitationError: $localize`:@@users-page.notification.resend-invitation-error:An error occurred while resending the invitation.`,\n resendInvitationSuccess: $localize`:@@users-page.notification.resend-invitation-success:The invitation has been resent successfully.`,\n sendInvitationError: $localize`:@@users-page.notification.send-invitation-error:An error occurred while sending the invitation to the given email address.`,\n sendInvitationInvalidEmailError: $localize`:@@users-page.notification.send-invitation-invalid-email-error:An error occurred while sending the invitation because the email address was invalid.`,\n sendInvitationSuccess: $localize`:@@users-page.notification.send-invitation-success:The invitation has been sent successfully.`,\n sendInvitationWarning: $localize`:@@users-page.notification.send-invitation-warning:An invitation to the given email address already exists.`,\n },\n paragraph: {\n accountsUsed: (count: string | number, total: string | number) => {\n return format(\n $localize`:@@users-page.paragraph.accounts-used:{{count}} of {{total}} accounts used`,\n { count, total },\n );\n },\n },\n removeUserAccessDialog: {\n description: $localize`:@@users-page.remove-user-access-dialog.description:Are you sure you want to remove access for this user?`,\n title: $localize`:@@users-page.remove-user-access-dialog.title:Remove user access`,\n },\n resendInvitationDialog: {\n description: $localize`:@@users-page.resend-invitation-dialog.description:Do you wish to resend the invite?`,\n title: $localize`:@@users-page.resend-invitation-dialog.title:Resend Invite`,\n },\n status: {\n active: $localize`:@@users-page.status.active:Active`,\n inactive: $localize`:@@users-page.status.inactive:Inactive`,\n pending: $localize`:@@users-page.status.pending:Pending approval`,\n },\n tab: {\n invitations: $localize`:@@users-page.tab.invitations:Pending Users`,\n users: $localize`:@@users-page.tab.users:Users`,\n },\n transferOwnershipDialog: {\n button: {\n transferOwnership: $localize`:@@users-page.transfer-ownership-dialog.button.transfer-ownership:Transfer Ownership`,\n },\n paragraph: {\n description: $localize`:@@users-page.transfer-ownership-dialog.paragraph.description:You are the sole administrator on this account. You must provide another user account with admin access level before we can remove your access`,\n },\n placeholder: {\n newAdminEmail: $localize`:@@users-page.transfer-ownership-dialog.placeholder.new-admin-email:New Admin Email`,\n },\n },\n },\n verifyEmailPage: {\n button: {\n sendVerificationCode: $localize`:@@verify-email-page.button.send-verification-code:Send Verification Code`,\n },\n link: {\n backToLogin: $localize`:@@verify-email-page.link.back-to-login:Back to Login`,\n login: $localize`:@@verify-email-page.link.login:Login`,\n },\n paragraph: {\n hasAccount: (signup: string | number) => {\n return format(\n $localize`:@@verify-email-page.paragraph.has-account:Already have an account? {{signup}}`,\n { signup },\n );\n },\n },\n placeholder: {\n email: $localize`:@@verify-email-page.placeholder.email:Email address`,\n },\n title: {\n createAnAccount: $localize`:@@verify-email-page.title.create-an-account:Create an account`,\n resetPassword: $localize`:@@verify-email-page.title.reset-password:Reset password`,\n },\n validationError: {\n email: {\n conflict: $localize`:@@verify-email-page.validation-error.email.conflict:Given email already exists`,\n },\n },\n },\n};\n\nfunction format(str: string, params: Record): string {\n // we are in the case of a plural message\n if (str.startsWith('{') && str.endsWith('}') && str.includes('plural')) {\n return formatMessage(str, params);\n }\n\n const newStr = str.replace(/{{/gm, '{').replace(/}}/gm, '}');\n\n return formatMessage(newStr, params);\n}\n","import { bootstrapApplication } from '@angular/platform-browser';\n\nimport { AppComponent } from './app/app.component';\nimport { appConfig } from './app/app.config';\n\nbootstrapApplication(AppComponent, appConfig).catch((err) => {\n return console.error(err);\n});\n","import { LanguageCode } from '@model';\nimport { z } from 'zod';\n\nexport const IdJsonSchema = z.string().or(z.number());\n\nexport const MultiLanguageJsonSchema = z.record(\n z.nativeEnum(LanguageCode),\n z.string(),\n);\n","import { isNotNil } from '@core/is-not-nil';\nimport { Nil } from '@model';\nimport { isNil } from 'lodash-es';\n\nexport function deserializeDate(value: string): Date {\n return new Date(value);\n}\n\nexport function deserializeOptionalDate(value: string | Nil): Date | undefined {\n if (isNil(value) || value.length === 0) {\n return undefined;\n }\n const date = new Date(value);\n if (date.getTime() === 0) {\n return undefined;\n }\n return date;\n}\n\nexport function serializeOptionalDate(date: Date | Nil): string | undefined {\n if (isNil(date)) {\n return undefined;\n }\n return date.toISOString();\n}\n\nexport function serializeDate(date: Date): string {\n return date.toISOString();\n}\n\nexport function serializeNumber(value: number | Nil): string | null {\n if (isNotNil(value)) {\n return value.toString();\n }\n return null;\n}\n\nexport function deserializeNumber(value: string | Nil): number | undefined {\n if (isNotNil(value) && value.length > 0) {\n return parseFloat(value);\n }\n return undefined;\n}\n","export * from './api.types';\nexport * from './api.utils';\nexport * from './ip-info-api.service';\nexport * from './ip-stack-api.service';\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { IpInfo } from '@model/ip-info';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IpInfoApiService {\n public constructor(private httpClient: HttpClient) {}\n\n public getIpInfo(): Observable {\n return this.httpClient.get(\n 'https://ipinfo.io?token=a1f9dcb70b8e83',\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { IpStack } from '@model/ip-stack';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IpStackApiService {\n public constructor(private httpClient: HttpClient) {}\n\n public getIpStack(ip: string): Observable {\n return this.httpClient.get(\n `http://api.ipstack.com/${ip}?access_key=8ce2f6634aea2afb1f4f784def01103c`,\n );\n }\n}\n","import { Nil } from '@model';\nimport { isWeekend } from 'date-fns';\nimport { isNil } from 'lodash-es';\nimport * as moment from 'moment-timezone';\n\nexport function getToday(): Date {\n const now = new Date();\n now.setMinutes(0);\n now.setHours(0);\n now.setSeconds(0);\n now.setMilliseconds(0);\n return now;\n}\n\nexport function getTomorrow(): Date {\n const now = getToday();\n now.setDate(now.getDate() + 1);\n now.setMinutes(0);\n now.setHours(0);\n now.setSeconds(0);\n now.setMilliseconds(0);\n return now;\n}\n\nexport function addDays(date: Date, days: number): Date {\n return moment(date).add(days, 'days').toDate();\n}\n\nexport function addMinutes(date: Date, minutes: number): Date {\n return moment(date).add(minutes, 'minute').toDate();\n}\n\nexport function subtractDays(date: Date, days: number): Date {\n return moment(date).subtract(days, 'days').toDate();\n}\n\nexport function subtractSeconds(date: Date, seconds: number): Date {\n return moment(date).subtract(seconds, 'seconds').toDate();\n}\n\nexport function formatDate(date: Date, format?: string): string {\n return moment(date).format(format || 'L LTS');\n}\n\n/**\n * Convert a date to locale string\n * If the hour is midnight we don't display it\n * If the hour is midnight the \"excludedMessage\" will be used to signify the date is not included.\n * @param date the date to convert\n * @param excludedMessage excluded message wrapper\n * @returns the date a locale string\n */\nexport function getLocaleString(\n date: Date,\n excludedMessage?: (date: string) => string,\n): string {\n if (\n date.getHours() === 0 &&\n date.getMinutes() === 0 &&\n date.getSeconds() === 0\n ) {\n const value = date.toLocaleDateString();\n return isNil(excludedMessage) ? value : excludedMessage(value);\n }\n return date.toLocaleString();\n}\n\nexport function getWeekDays(): string[] {\n return new Array(7).fill(undefined).map((_, index) => {\n return moment().weekday(index).format('dddd');\n });\n}\n\nexport function getWeekendDays(): number[] {\n return new Array(7)\n .fill(undefined)\n .map((_, index) => {\n return moment().weekday(index);\n })\n .filter((date) => {\n return isWeekend(date.toDate());\n })\n .map((date) => {\n return date.day();\n });\n}\n\nexport function getLastDayOfTheMonth(): Date {\n const now = new Date();\n const day = new Date(now.getFullYear(), now.getMonth() + 1, 0);\n return day;\n}\n\nexport function getLastDayOfTheLastMonth(): Date {\n const now = new Date();\n const day = new Date(now.getFullYear(), now.getMonth(), 0);\n return day;\n}\n\nexport function getFirstDayOfTheMonth(): Date {\n const now = new Date();\n const day = new Date(now.getFullYear(), now.getMonth(), 1);\n return day;\n}\n\nexport function getFirstDayOfTheLastMonth(): Date {\n const now = new Date();\n const day = new Date(now.getFullYear(), now.getMonth() - 1, 1);\n return day;\n}\n\nexport function daysInMonth(month: number, year: number): number {\n return new Date(year, month, 0).getDate();\n}\n\nexport function isCurrentMonth(date: Date): boolean {\n const now = new Date();\n return (\n date.getMonth() === now.getMonth() &&\n date.getFullYear() === now.getFullYear()\n );\n}\n\nexport function getCurrentQuarter(): number {\n return Math.floor(new Date().getMonth() / 3);\n}\n\nexport function getCurrentQuarterStartDate(): Date {\n const today = new Date();\n const quarter = getCurrentQuarter();\n return new Date(today.getFullYear(), quarter * 3, 1);\n}\n\nexport function getLastQuarterStartDate(): Date {\n const today = new Date();\n const quarter = getCurrentQuarter() - 1;\n if (quarter < 0) {\n return new Date(today.getFullYear() - 1, 9, 1);\n }\n return new Date(today.getFullYear(), quarter * 3, 1);\n}\n\nexport function getCurrentQuarterEndDate(): Date {\n const startDate = getCurrentQuarterStartDate();\n return new Date(startDate.getFullYear(), startDate.getMonth() + 3, 0);\n}\n\nexport function getLastQuarterEndDate(): Date {\n const startDate = getLastQuarterStartDate();\n return new Date(startDate.getFullYear(), startDate.getMonth() + 3, 0);\n}\n\n/**\n * Convert a time string in 24h format into a date\n * The date will be today with the time passed as parameter\n * @param time time string (ex: 08:12:56)\n */\nexport function getDateFromTime(time: string): Date {\n const today = getToday();\n\n const parts: number[] = time.split(':').map((part) => {\n return parseInt(part, 10);\n });\n\n if (parts.length !== 3) {\n throw new Error(`Invalid time string: ${time}`);\n }\n\n today.setHours(parts[0]);\n today.setMinutes(parts[1]);\n today.setSeconds(parts[2]);\n\n return today;\n}\n\n/**\n * Convers date into number 15:20 => 1520, 9:35 => 935\n * @param date date or null\n * @returns number\n */\nexport function getMilitaryTime(date: Date | Nil): number {\n if (isNil(date)) {\n return 0;\n }\n const momentDate = moment(date);\n return momentDate.hours() * 100 + momentDate.minutes();\n}\n/**\n * Convers number into date 520 => '2023-08-01T05:20:00.000Z'\n * @param value number\n * @returns current date with time\n */\nexport function getDateFromMilitaryTime(value: number | Nil): Date | Nil {\n if (isNil(value)) {\n return null;\n }\n const leadingZero = '0000' + value;\n const newValue = leadingZero.substring(leadingZero.length - 4);\n return moment(newValue, 'HHmm').toDate();\n}\n\n/**\n * Parse string into date time ignoring timezone\n * @param stringDate iso string date time\n * @returns local time in local format\n */\nexport function getTimeInLocalFormat(stringDate: string) {\n return moment(stringDate, 'YYYY-MM-DDTHH:mm:ss')\n .toDate()\n .toLocaleTimeString();\n}\n\n/**\n * Combine input date and time\n * @param date selected time to combine\n * @param time selected time to combine\n * @returns combine date\n */\nexport function combineDateTime(\n date: Date | Nil,\n time: Date | Nil,\n): Date | undefined {\n if (isNil(date) || isNil(time)) {\n return undefined;\n }\n return new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n time.getHours(),\n time.getMinutes(),\n time.getSeconds(),\n );\n}\n","export * from './date-utils';\n","import { Nil } from '@model';\nimport { isNil } from 'lodash-es';\n\nexport function isValidEnumValue(e: T, value: any): value is T {\n return Object.values(e as any).includes(value);\n}\n\nexport function castEnum(e: any, value: any): T | Nil {\n if (isNil(value)) {\n return undefined;\n }\n\n if (isValidEnumValue(e, value)) {\n return value as T;\n }\n\n const error = `Invalid enumeration detected: ${JSON.stringify(\n e,\n )} => ${value}`;\n console.error(error);\n throw new Error(error);\n}\n","export * from './enum-utils';\n","export function isNotNil(v: T | null | undefined): v is NonNullable {\n return v !== null && v !== undefined;\n}\n","import { Nil } from '@model';\nimport { isNil } from 'lodash-es';\n\nexport function roundToTwoDecimals(value: number | Nil): string {\n if (isNil(value)) {\n return '';\n }\n\n const rounded = Math.round((value + Number.EPSILON) * 100) / 100;\n return rounded.toFixed(2);\n}\n\n/**\n * Parse string, Nil or number into number\n * @param value any type value\n * @returns number\n */\nexport function parseNumber(value: number | string | Nil): number {\n if (isNil(value)) {\n return 0;\n }\n\n if (typeof value === 'string') {\n return parseFloat(value);\n }\n\n return value;\n}\n","export * from './power';\nexport * from './decimal';\n","export function wattToKwh(watts: number, timeInHours = 1): number {\n return (watts * timeInHours) / 1000;\n}\n\nexport function kwhToWatt(kwh: number, timeInHours = 1): number {\n return kwh * timeInHours * 1000;\n}\n\nexport function wattToKiloWatt(value: number): number {\n return value / 1000;\n}\n\nexport function wattToMegaWatt(value: number): number {\n return value / 1000_000;\n}\n\nexport function wattToGigaWatt(value: number): number {\n return value / 1000_000_000;\n}\n","export function actionNameFactory(namespace: string): (name: string) => string {\n return (name: string) => {\n return `[${namespace}] ${name}`;\n };\n}\n","import { Action } from '@ngrx/store';\n\nexport const EMPTY_ACTION: Action = { type: 'empty' };\n","export * from './action-name-factory';\nexport * from './empty-action';\nexport * from './no-dispatch';\nexport * from './payload';\n","export const NO_DISPATCH = {\n dispatch: false,\n};\n","import { omit } from 'lodash-es';\n\nexport function payload(action: any): any {\n return omit(action, ['type']);\n}\n","import { Nil } from '@model';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { isNotNil } from '../is-not-nil';\n\nfunction valueIsNotNil(value: T | Nil): value is T {\n return isNotNil(value);\n}\n\nexport function filterNil() {\n return (source: Observable) => {\n return source.pipe(filter(valueIsNotNil));\n };\n}\n","export interface TrackingEvent {\n name: string;\n properties?: Record;\n}\n","export * from './event';\nexport * from './tracking.service';\nexport * from './tracking.service.mock';\nexport * from './tracking.module';\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { TrackingService } from './tracking.service';\n\n@NgModule({\n imports: [],\n providers: [TrackingService],\n})\nexport class TrackingModule {\n public static forRoot(\n googleTagManagerId?: string,\n ): ModuleWithProviders {\n return {\n ngModule: TrackingModule,\n providers: [\n { provide: 'googleTagManagerId', useValue: googleTagManagerId },\n ],\n };\n }\n}\n","import { TrackingEvent } from './event';\n\nexport class TrackingServiceMock {\n public initialize(_: string): void {}\n\n public track(_: TrackingEvent): void {}\n\n public trackView(\n _view: string,\n _properties: Record = {},\n ): void {}\n\n public trackAction(\n _view: string,\n _action: string,\n _properties: Record = {},\n ): void {}\n}\n","import { Injectable } from '@angular/core';\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\nimport { camelCase } from 'lodash-es';\n\nimport { TrackingEvent } from './event';\n\n@Injectable()\nexport class TrackingService {\n public constructor(private gtmService: GoogleTagManagerService) {}\n\n private initialized = false;\n\n public initialize(): void {\n this.initialized = true;\n }\n\n /**\n * Send a new event\n * @param event the event to send\n */\n public track(event: TrackingEvent): void {\n if (this.initialized) {\n this.gtmService.pushTag({\n [camelCase(event.name)]: true,\n ...event.properties,\n });\n }\n }\n\n /*\n * Generate and send an \"view\" event.\n *\n * @param name the name of element that has been viewed (ex: a page)\n */\n public trackView(\n view: string,\n properties: Record = {},\n ): void {\n this.track({\n name: `${view}`,\n properties: { ...properties, view },\n });\n }\n\n public trackAction(\n view: string,\n action: string,\n properties: Record = {},\n ): void {\n this.track({\n name: `${view} - ${action}`,\n properties: { ...properties, view, action },\n });\n }\n}\n","export * from './lib/brand';\nexport * from './lib/image';\nexport * from './lib/logo';\n","export type Brand =\n | 'neutral'\n | 'greenmotion'\n | 'evpass'\n | 'eaton'\n | 'residenza'\n | 'emoti'\n | 'valt'\n | 'nisko'\n | 'vmotion'\n | 'smotion';\n","export type Image =\n | 'welcome-and-setup-image'\n | 'rangext-44-66'\n | 'charging-station-fallback-image'\n | 'site-dashboard-image'\n | 'user-dashboard-image'\n | 'rangext-11-22'\n | 'user-invitation-error-image'\n | 'rangext-40-160'\n | 'car-charging-image'\n | 'home-two'\n | 'user-invitation-image'\n | 'private-one'\n | 'network-two';\n\nexport const IMAGE_MAPPING: Record = {\n 'welcome-and-setup-image':\n 'welcome-and-setup-image-5f738dfeb2bdf6689865fe092c52b48d.svg',\n 'rangext-44-66': 'rangext-44-66-cba599964a80e6bf742cf0deb99f9402.svg',\n 'charging-station-fallback-image':\n 'charging-station-fallback-image-56f3daf014863e1fe639a6437a0aaa95.svg',\n 'site-dashboard-image':\n 'site-dashboard-image-7aeb194875b124febe09c65dcabd9960.svg',\n 'user-dashboard-image':\n 'user-dashboard-image-6d45ba63fa2624d280f69a15481faf92.svg',\n 'rangext-11-22': 'rangext-11-22-3177fcd640dd921cb5d7a329ffb52dad.svg',\n 'user-invitation-error-image':\n 'user-invitation-error-image-8f9a004f39a322e8abe7f56836facc7d.svg',\n 'rangext-40-160': 'rangext-40-160-7e2fcfaca635b0f8166cec8db62bbd68.svg',\n 'car-charging-image':\n 'car-charging-image-5213667207377a484a68ccb2a78c4dcf.svg',\n 'home-two': 'home-two-ec1d2a7af670c2d3d27814de106c1739.svg',\n 'user-invitation-image':\n 'user-invitation-image-1a906e29992000f8d273a27e6629a3d9.svg',\n 'private-one': 'private-one-ec1c35cc84808ee6872e38fa3327a52f.svg',\n 'network-two': 'network-two-3d97b2d675d3b989ad88b4bd0322390e.svg',\n};\n","import { Brand } from './brand';\n\nexport enum LogoType {\n Primay = 'primary',\n Contrast = 'contrast',\n}\n\nexport const LOGO_FOLDER = 'logos';\n\nexport const LOGO_MAPPING: Record> = {\n neutral: {\n primary: 'primary-e7f6176b3493540e18121eb93271f4b6.svg',\n contrast: 'contrast-e7f6176b3493540e18121eb93271f4b6.svg',\n },\n valt: {\n primary: 'primary-e45ee3d26bde5ea39037d98740566e01.svg',\n contrast: 'contrast-822a3f4d79c99ff1c4260bd05caa6947.svg',\n },\n eaton: {\n primary: 'primary-aa6232be4d2ca2f6beb2d0129e73c209.svg',\n contrast: 'contrast-78bb4d8d82b6047201a2d8457eaa6ae0.svg',\n },\n residenza: {\n contrast: 'contrast-54df5d6bdec18a440d516561b0e25c7f.svg',\n primary: 'primary-269eb18dc57ce25737a9817aee89517e.svg',\n },\n vmotion: {\n contrast: 'contrast-e1f74c7b07eda1d1401ce6af60c65886.svg',\n primary: 'primary-35c585668903d4dd5fbfb5bc2bafc742.svg',\n },\n evpass: {\n contrast: 'contrast-92a7f933c4263712438af4fe9123007b.svg',\n primary: 'primary-155fe768a3a32b186adaaa43d15e3505.svg',\n },\n nisko: {\n primary: 'primary-af3ce8200ca5de67b5b1bc8304019c07.svg',\n contrast: 'contrast-5302d89aad696e8711950cc3836d646a.svg',\n },\n smotion: {\n contrast: 'contrast-39bde29f6dfc1b142f8ee6f49804b670.svg',\n primary: 'primary-39bde29f6dfc1b142f8ee6f49804b670.svg',\n },\n emoti: {\n primary: 'primary-8244c457a60901908775448af3c26424.svg',\n contrast: 'contrast-4b6a46ab1960e05ef3a243f1f1016d5e.svg',\n },\n greenmotion: {\n contrast: 'contrast-9b8123b787b5f997a409b8715d8b9ecd.svg',\n primary: 'primary-c8e5747701b41ec5465652523f1f97f2.svg',\n },\n};\n\nexport const FAVICON_MAPPING: Record = {\n neutral: 'favicon-d43ab7ac3f12fe21376ef1b9363257c4.png',\n vmotion: 'favicon-a37d29c12b469570bff7b151b73aaa7a.png',\n evpass: 'favicon-5ebcfe5efe43ab40fa98d5f7b7875a77.png',\n nisko: 'favicon-b2acbe968ebf6f8b2f1c7695450bc3f9.png',\n emoti: 'favicon-28bba661a30132db3289d14261e2f1a4.png',\n smotion: 'favicon-722dc7d5046b4ec88a3300803429d7ff.png',\n valt: 'favicon-603bd20aab6c92d52a76790a0becad35.png',\n eaton: 'favicon-051966b0054af6199cda04710d812301.png',\n greenmotion: 'favicon-467cd279236cdc1b8607229c33a6a995.png',\n residenza: 'favicon-fb9e34aac2778b22cc432edf08cb7f89.png',\n};\n","export * from './loading.component';\nexport * from './loading.types';\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { isNotNil } from '@core/is-not-nil';\nimport { Nil } from '@model';\nimport { ProgressSpinnerComponent } from '@ui/progress-spinner';\nimport { first, isNil, last } from 'lodash-es';\n\nimport { Loading, RouteLoading } from './loading.types';\n\n@Component({\n selector: 'etn-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, ProgressSpinnerComponent],\n})\nexport class LoadingComponent implements AfterViewInit, OnDestroy {\n public constructor(private elementRef: ElementRef) {}\n\n @ViewChild('overlay') private set overlay(\n overlay: ElementRef | Nil,\n ) {\n this._overlay = overlay;\n this.toggleDisplay();\n }\n\n @Input() public set loading(loading: Loading | Nil) {\n this._loading = loading;\n this.toggleDisplay();\n }\n\n @Input() public set routeLoading(loading: RouteLoading | Nil) {\n this._routeLoading = loading;\n this.toggleDisplay();\n }\n\n private _loading: Loading | Nil = undefined;\n private _routeLoading: RouteLoading | Nil = undefined;\n private _overlay: ElementRef | Nil;\n private observer: MutationObserver | Nil;\n\n public ngAfterViewInit(): void {\n // we observe change in the dom to detect\n // to make sure the loading is properly placed\n this.observer = new MutationObserver(() => {\n const element = this.getParent(this.elementRef.nativeElement);\n // if the topest parent is not HTML it means the element is detached\n if (element.tagName.toLowerCase() !== 'html') {\n this.toggleDisplay();\n }\n });\n\n this.observer.observe(this.elementRef.nativeElement, {\n attributes: true,\n childList: true,\n characterData: true,\n });\n }\n\n public ngOnDestroy(): void {\n this.observer?.disconnect();\n }\n\n private toggleDisplay(): void {\n if (isNil(this._loading) && isNotNil(this._routeLoading)) {\n const outlets = document.getElementsByClassName('router-outlet');\n const outlet = this.getOutlet(outlets);\n if (isNotNil(outlet)) {\n if (!outlet.contains(this.elementRef.nativeElement)) {\n outlet.appendChild(this.elementRef.nativeElement);\n }\n\n if (isNotNil(this._overlay)) {\n this._overlay.nativeElement.style.opacity = '1';\n }\n\n this.elementRef.nativeElement.style.display = 'block';\n }\n } else if (isNotNil(this._loading)) {\n if (!document.body.contains(this.elementRef.nativeElement)) {\n document.body.appendChild(this.elementRef.nativeElement);\n }\n\n if (isNotNil(this._overlay)) {\n this._overlay.nativeElement.style.opacity =\n this._loading === Loading.App ? '1' : '0.5';\n }\n this.elementRef.nativeElement.style.display = 'block';\n } else {\n this.elementRef.nativeElement.style.display = 'none';\n }\n }\n\n private getParent(element: HTMLElement): HTMLElement {\n if (element.parentElement) {\n return this.getParent(element.parentElement);\n }\n return element;\n }\n\n private getOutlet(outlets: HTMLCollectionOf): HTMLElement {\n if (this._routeLoading === RouteLoading.Tab) {\n return last(outlets) as HTMLElement;\n } else {\n return first(outlets) as HTMLElement;\n }\n }\n}\n","
\n
\n \n
\n","export enum Loading {\n App = 'app',\n Other = 'other',\n}\n\nexport enum RouteLoading {\n Tab = 'tab',\n Page = 'page',\n}\n","import { WithId } from './with-id';\n\nexport const COLLECTION_ADDRESSES_RELATION = 'collection:addresses';\n\nexport enum AddressType {\n Billing = 'Billing',\n Shipping = 'Shipping',\n Default = 'Default',\n}\n\nexport interface Address extends WithId {\n city?: string;\n country?: string;\n street?: string;\n streetNumber?: string;\n zipCode?: string;\n formattedAddress?: string;\n latitude?: number;\n longitude?: number;\n type: AddressType;\n}\n","export enum ConnectorType {\n Chademo = 'ChaDemo',\n ChaoJi = 'ChaoJi',\n DomesticA = 'DomesticA',\n DomesticB = 'DomesticB',\n DomesticC = 'DomesticC',\n DomesticD = 'DomesticD',\n DomesticE = 'DomesticE',\n DomesticF = 'DomesticF',\n DomesticG = 'DomesticG',\n DomesticH = 'DomesticH',\n DomesticI = 'DomesticI',\n DomesticJ = 'DomesticJ',\n DomesticK = 'DomesticK',\n DomesticL = 'DomesticL',\n DomesticM = 'DomesticM',\n DomesticN = 'DomesticN',\n DomesticO = 'DomesticO',\n GbtAc = 'GbtAc',\n GbtDc = 'GbtDc',\n IEC603092single16 = 'Iec603092Single16',\n IEC603092three16 = 'Iec603092Three16',\n IEC603092three32 = 'Iec603092Three32',\n IEC603092three64 = 'Iec603092Three64',\n IEC62196T1 = 'Iec62196T1',\n IEC62196T1COMBO = 'Iec62196T1Combo',\n IEC62196T2 = 'Iec62196T2',\n IEC62196T2COMBO = 'Iec62196T2Combo',\n IEC62196T3A = 'Iec62196T3A',\n IEC62196T3C = 'Iec62196T3C',\n Nema520 = 'Nema520',\n Nema630 = 'Nema630',\n Nema650 = 'Nema650',\n Nema1030 = 'Nema1030',\n Nema1050 = 'Nema1050',\n Nema1430 = 'Nema1430',\n Nema1450 = 'Nema1450',\n PantographBottomUp = 'PantographBottomUp',\n PantographTopDown = 'PantographTopDown',\n TeslaR = 'TeslaR',\n TeslaS = 'TeslaS',\n Unknown = 'Unknown',\n}\n","export interface Coordinates {\n latitude: number;\n longitude: number;\n}\n","export enum DateFormat {\n DMY = 'dd/mm/yyyy',\n YMD = 'yyyy/mm/dd',\n MDY = 'mm/dd/yyyy',\n}\n\nexport const DateFormatExample: Record = {\n [DateFormat.DMY]: '22/01/2020',\n [DateFormat.YMD]: '2020/01/22',\n [DateFormat.MDY]: '01/22/2020',\n};\n","export enum DayOfWeek {\n Monday = 'MONDAY',\n Tuesday = 'TUESDAY',\n Wednesday = 'WEDNESDAY',\n Thursday = 'THURSDAY',\n Friday = 'FRIDAY',\n Saturday = 'SATURDAY',\n Sunday = 'SUNDAY',\n}\n","export enum EvseStatus {\n Available = 'Available',\n Preparing = 'Preparing',\n Charging = 'Charging',\n SuspendedEvse = 'SuspendedEVSE',\n SuspendedEv = 'SuspendedEV',\n Finishing = 'Finishing',\n Reserved = 'Reserved',\n Unavailable = 'Unavailable',\n Faulted = 'Faulted',\n Unknown = 'Unknown',\n}\n","export enum FileExtension {\n Png = '.png',\n Jpg = '.jpg',\n Jpeg = '.jpeg',\n Csv = '.csv',\n Bin = '.bin',\n Fup = '.fup',\n}\n\nexport const PNG = [FileExtension.Png];\nexport const JPG = [FileExtension.Jpeg, FileExtension.Jpg];\nexport const CSV = [FileExtension.Csv];\nexport const BIN = [FileExtension.Bin];\nexport const FUP = [FileExtension.Fup];\n","export enum FileUnit {\n BYTE = 'Byte',\n BYTES = 'Bytes',\n KB = 'KB',\n MB = 'MB',\n GB = 'GB',\n TB = 'TB',\n}\n\nexport interface FileSize {\n size: string;\n unit: string;\n}\n","import { AbstractControl, FormControl } from '@angular/forms';\n\nexport type FormModel = {\n [P in keyof T]: FormControl;\n};\n\nexport type AbstractFormModel = {\n [P in keyof T]: AbstractControl;\n};\n","export * from './address';\nexport * from './connector-type';\nexport * from './coordinates';\nexport * from './date-format';\nexport * from './day-of-week';\nexport * from './evse-status';\nexport * from './file-extension';\nexport * from './file-size';\nexport * from './form-model';\nexport * from './ip-info';\nexport * from './language-code';\nexport * from './multi-language';\nexport * from './nil';\nexport * from './number-format';\nexport * from './ocpp-security-profile';\nexport * from './plug-type';\nexport * from './temperature';\nexport * from './with-display-name';\nexport * from './with-embedded';\nexport * from './with-id';\nexport * from './with-links';\n","export interface IpInfo {\n ip: string;\n hostname: string;\n city: string;\n region: string;\n country: string;\n loc: string;\n org: string;\n postal: string;\n timezone: string;\n}\n","import { MultiLanguage } from './multi-language';\n\nexport enum LanguageCode {\n French = 'fr',\n English = 'en',\n German = 'de',\n Italian = 'it',\n}\n\nexport function makeLanguageRecord(en: string): MultiLanguage {\n return { [LanguageCode.English]: en };\n}\n","import { LanguageCode } from './language-code';\n\nexport type MultiLanguage = Partial>;\n","export type Nil = undefined | null;\n","export enum NumberFormat {\n DOT = 'dot',\n COMMA = 'comma',\n}\n\nexport const NumberFormatExample: Record = {\n [NumberFormat.DOT]: '1.50',\n [NumberFormat.COMMA]: '1,50',\n};\n","export enum OcppSecurityProfile {\n None = 0,\n Unsecured = 1,\n Secured = 2,\n Signed = 3,\n}\n","import { IconName } from '../../../ui/src/lib/icon';\n\nexport enum PlugType {\n AvconConnector = 'AvconConnector',\n CcsCombo1PlugCableAttached = 'CcsCombo1PlugCableAttached',\n CcsCombo2PlugCableAttached = 'CcsCombo2PlugCableAttached',\n ChAdeMo = 'ChAdeMo',\n Iec60309SinglePhase = 'Iec60309SinglePhase',\n Iec60309ThreePhase = 'Iec60309ThreePhase',\n LargePaddleInductive = 'LargePaddleInductive',\n Nema520 = 'Nema520',\n SmallPaddleInductive = 'SmallPaddleInductive',\n TeslaConnector = 'TeslaConnector',\n Type1ConnectorCableAttached = 'Type1ConnectorCableAttached',\n Type2ConnectorCableAttached = 'Type2ConnectorCableAttached',\n Type2Outlet = 'Type2Outlet',\n Type3Outlet = 'Type3Outlet',\n TypeEFrenchStandard = 'TypeEFrenchStandard',\n TypeFSchuko = 'TypeFSchuko',\n TypeGBritishStandard = 'TypeGBritishStandard',\n TypeJSwissStandard = 'TypeJSwissStandard',\n Unspecified = 'Unspecified',\n}\n\nexport const PLUG_TYPE_ICON: Record = {\n AvconConnector: 'power',\n CcsCombo1PlugCableAttached: 'blui-ev_plug_ccs_combo',\n CcsCombo2PlugCableAttached: 'blui-ev_plug_ccs_combo',\n ChAdeMo: 'blui-ev_plug_chademo',\n Iec60309SinglePhase: 'power',\n Iec60309ThreePhase: 'power',\n LargePaddleInductive: 'power',\n Nema520: 'power',\n SmallPaddleInductive: 'power',\n TeslaConnector: 'power',\n Type1ConnectorCableAttached: 'blui-ev_plug_type_one',\n Type2ConnectorCableAttached: 'blui-ev_plug_type_two',\n Type2Outlet: 'blui-ev_plug_type_two',\n Type3Outlet: 'power',\n TypeEFrenchStandard: 'power',\n TypeFSchuko: 'power',\n TypeGBritishStandard: 'power',\n TypeJSwissStandard: 'power',\n Unspecified: 'power',\n};\n","export enum TemperatureUnit {\n Celsius = 'C',\n Fahrenheit = 'F',\n}\n","import { MultiLanguage } from './multi-language';\n\nexport interface WithName {\n name: string;\n}\n\nexport interface WithMultiLangName {\n name: MultiLanguage;\n}\n","import { get } from 'lodash-es';\n\nimport { Nil } from './nil';\n\nexport type Embedded = Record;\n\nexport interface WithEmbedded {\n _embedded?: Embedded;\n}\n\nexport function hasEmbedded(\n embedded: WithEmbedded,\n name: string,\n): boolean {\n return getEmbedded(embedded, name) !== undefined;\n}\n\nexport function getEmbedded(\n embedded: WithEmbedded,\n name: string,\n): T[] | Nil {\n return get(embedded, ['_embedded', name], undefined);\n}\n\nexport function makeEmbedded(): Embedded {\n return {};\n}\n","import { has, isObject } from 'lodash-es';\n\nexport type Id = string | number;\n\nexport const NEW = 'new';\nexport const NONE = 'none';\n\nexport interface WithId {\n id: Id | typeof NEW;\n}\n\nexport function isWithId(obj: any): obj is WithId {\n return isObject(obj) && has(obj, 'id');\n}\n\nexport function isNew({ id }: WithId): boolean {\n return id === NEW;\n}\n\nexport function isNone({ id }: WithId): boolean {\n return id === NONE;\n}\n","import { get, has, intersection, isNil, keys } from 'lodash-es';\n\nimport { Nil } from './nil';\n\nexport const SELF_RELATION = 'self';\nexport const SELF_EDIT_RELATION = 'self:edit';\nexport const SELF_DELETE_RELATION = 'self:delete';\nexport const COLLECTION_RELATION = 'collection';\nexport const COLLECTION_PAGE_RELATION = 'collection:page';\nexport const COLLECTION_SORT_RELATION = 'collection:sort';\nexport const COLLECTION_FILTER_RELATION = 'collection:filter';\n\nexport interface WithLinks {\n _links?: Links | undefined;\n}\n\nexport type Links = Record;\n\nexport interface Link {\n href: string;\n method: LinkMethod;\n templated?: boolean;\n}\n\nexport enum LinkMethod {\n POST = 'POST',\n PUT = 'PUT',\n GET = 'GET',\n DELETE = 'DELETE',\n}\n\nexport type LinkParameters = Record;\n\nexport function hasRelation(withLinks: WithLinks, relation: string): boolean {\n return getRelation(withLinks, relation) !== undefined;\n}\n\nexport function hasSelfRelation(withLinks: WithLinks): boolean {\n return hasRelation(withLinks, SELF_RELATION);\n}\n\nexport function hasEditRelation(withLinks: WithLinks): boolean {\n return hasRelation(withLinks, SELF_EDIT_RELATION);\n}\n\nexport function hasDeleteRelation(withLinks: WithLinks): boolean {\n return hasRelation(withLinks, SELF_DELETE_RELATION);\n}\n\nexport function getRelation(\n withLinks: WithLinks,\n relation: string,\n): Link | Nil {\n const links = withLinks._links;\n if (isNil(links)) {\n return undefined;\n }\n return getLink(links, relation);\n}\n\nexport function getSelfLink(withLinks: WithLinks): Link | Nil {\n return getRelation(withLinks, SELF_RELATION);\n}\n\nexport function getMandatorySelfLink(withLinks: WithLinks | Links): Link {\n if (isWithLinks(withLinks)) {\n return getMandatoryRelation(withLinks, SELF_RELATION);\n } else {\n return getMandatoryLink(withLinks, SELF_RELATION);\n }\n}\n\nexport function getEditLink(withLinks: WithLinks): Link | Nil {\n return getRelation(withLinks, SELF_EDIT_RELATION);\n}\n\nexport function getMandatoryEditLink(withLinks: WithLinks): Link {\n return getMandatoryRelation(withLinks, SELF_EDIT_RELATION);\n}\n\nexport function getMandatoryDeleteLink(withLinks: WithLinks): Link {\n return getMandatoryRelation(withLinks, SELF_DELETE_RELATION);\n}\n\nexport function getMandatoryRelation(\n withLinks: WithLinks,\n relation: string,\n): Link {\n const links = withLinks._links;\n if (isNil(links)) {\n throw new MissingLinkError(relation, withLinks);\n }\n const link = getLink(links, relation);\n\n if (isNil(link)) {\n throw new MissingLinkError(relation, withLinks);\n }\n\n return link;\n}\n\nexport function isLink(value: any): value is Link {\n const valueProperties: string[] = keys(value);\n const linkProperties: (keyof Link)[] = ['href', 'method'];\n return (\n intersection(valueProperties, linkProperties).length ===\n linkProperties.length\n );\n}\n\nexport function isWithLinks(value: any): value is WithLinks {\n return has(value, '_links');\n}\n\nexport function getLinks(value: WithLinks): Links {\n return get(value, ['_links'], {});\n}\n\nexport function getLink(links: Links | Nil, link: string): Link | Nil {\n if (isNil(links)) {\n return undefined;\n }\n return get(links, [link], undefined);\n}\n\nexport function getMandatoryLink(links: Links | Nil, relation: string): Link {\n if (isNil(links)) {\n throw new MissingLinkError(relation);\n }\n const link = get(links, [relation], undefined);\n\n if (isNil(link)) {\n throw new MissingLinkError(relation);\n }\n\n return link;\n}\n\nexport function getCollectionLink(links: Links | Nil): Link | Nil {\n return getLink(links, COLLECTION_RELATION);\n}\n\nexport function getCollectionPageLink(withLinks: WithLinks): Link | Nil {\n return getRelation(withLinks, COLLECTION_PAGE_RELATION);\n}\n\nexport function getCollectionSortLink(withLinks: WithLinks): Link | Nil {\n return getRelation(withLinks, COLLECTION_SORT_RELATION);\n}\n\nexport function getCollectionFilterLink(withLinks: WithLinks): Link | Nil {\n return getRelation(withLinks, COLLECTION_FILTER_RELATION);\n}\n\nexport function isReadOnly(withLinks: WithLinks | Nil): boolean {\n if (isNil(withLinks)) {\n return false;\n }\n\n return !hasRelation(withLinks, SELF_EDIT_RELATION);\n}\n\nexport function makeLinkParameters(\n link: Link,\n params: LinkParameters,\n): LinkParameters | undefined {\n if (!link.templated) {\n return undefined;\n }\n const regex = /\\{(.*?)\\}/gm;\n\n let m;\n const parameters: LinkParameters = {};\n\n while ((m = regex.exec(link.href)) !== null) {\n if (m.index === regex.lastIndex) {\n regex.lastIndex++;\n }\n m.forEach((match, groupIndex) => {\n if (groupIndex === 1) {\n parameters[match] = '';\n }\n });\n }\n\n keys(params).forEach((key) => {\n if (!isNil(parameters[key])) {\n parameters[key] = params[key];\n }\n });\n\n return parameters;\n}\n\nexport function makeLink(\n href: string,\n method: LinkMethod = LinkMethod.GET,\n templated?: boolean,\n): Link {\n return {\n href,\n method,\n templated,\n };\n}\n\nexport function makeLinks(): Links {\n return {};\n}\n\nexport class MissingLinkError implements Error {\n public constructor(relation: string, parent?: WithLinks) {\n this.name = 'Missing HATEOAS link';\n this.message = relation;\n this.parent = parent;\n }\n\n public name: string;\n public message: string;\n public parent: WithLinks | Nil;\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';\nimport { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner';\nimport { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip';\nimport { Nil } from '@model';\nimport { isNil } from 'lodash-es';\n\nimport { IconComponent, IconSize } from '../icon';\nimport { Action, ActionColor } from './action.types';\n\n@Component({\n selector: 'etn-action',\n templateUrl: './action.component.html',\n styleUrls: ['./action.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n IconComponent,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n ],\n})\nexport class ActionComponent {\n @Input() public action: Action | Nil;\n @Input() public context: any | Nil;\n @Output() public actionClick = new EventEmitter();\n\n @HostBinding('class.hover')\n public hover = false;\n\n public defaultIconSize: IconSize = IconSize.Small;\n\n public get id(): string {\n return `action-${this.action?.id}`;\n }\n\n @HostBinding('class.full-width')\n public get fullWidth(): boolean {\n return this.action?.fullWidth || false;\n }\n\n @HostBinding('class.disabled')\n public get disabled(): boolean {\n return this.action?.disabled || false;\n }\n\n @HostBinding('class.uppercase')\n public get uppercase(): boolean {\n return this.action?.uppercase || false;\n }\n\n @HostBinding('class.rounded')\n public get rounded(): boolean {\n return this.action?.rounded || false;\n }\n\n @HostBinding('class.loading')\n public get loading(): boolean {\n return this.action?.loading || false;\n }\n\n @HostBinding('class')\n public get class(): string {\n return `action-${this.action?.id}`;\n }\n\n public get color(): ActionColor | Nil {\n return this.hover && this.action?.hoverColor\n ? this.action?.hoverColor\n : this.action?.color;\n }\n\n public onActionClick(event: MouseEvent, action: Action): void {\n if (isNil(action.preventDefault) || action.preventDefault === true) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n this.actionClick.emit(action);\n if (action.callback) {\n action.callback(this.context);\n }\n }\n\n public onMouseEnter(): void {\n this.hover = true;\n }\n\n public onMouseLeave(): void {\n this.hover = false;\n }\n\n public get buttonStyle(): Record {\n return {\n height: this.action?.height ? `${this.action.height}px` : 'auto',\n };\n }\n}\n","@if (action) {\n \n @if (action.icon) {\n \n }\n @if (action.name || action.caption) {\n
\n @if (action.name && action.caption) {\n
\n {{ action.caption }}\n
\n }\n \n {{ action.name }}\n
\n \n }\n @if (action.altIcon) {\n \n }\n @if (action.loading) {\n \n }\n \n}\n@if (action?.counter) {\n {{ action?.counter }}\n}\n","import { LegacyTooltipPosition as TooltipPosition } from '@angular/material/legacy-tooltip';\nimport { Nil, WithId } from '@model';\n\nimport { SelectableItem } from '@ui/selectable-item';\nimport { IconSize } from '../icon';\nimport { IconName } from '../icon/icon.types';\n\nexport enum ActionColor {\n Accent = 'accent',\n AccentTransparent = 'accent-transparent',\n Light = 'light',\n LightTransparent = 'light-transparent',\n Primary = 'primary',\n PrimaryTransparent = 'primary-transparent',\n Transparent = 'transparent',\n Warn = 'warn',\n WarnTransparent = 'warn-transparent',\n}\n\nexport enum ActionAlign {\n Left = 'left',\n Right = 'Right',\n Center = 'Center',\n}\n\nexport type ActionTooltipPosition = TooltipPosition;\n\nexport interface Action extends WithId {\n align?: ActionAlign;\n altIcon?: IconName;\n altIconSize?: IconSize;\n basic?: boolean;\n border?: boolean;\n callback?: (context?: Ctx | Nil) => void;\n caption?: string;\n color?: ActionColor;\n counter?: number;\n disabled?: boolean;\n fullWidth?: boolean;\n height?: number;\n hoverColor?: ActionColor;\n icon?: IconName;\n iconSize?: IconSize;\n loading?: boolean;\n name?: string;\n preventDefault?: boolean;\n raised?: boolean;\n rounded?: boolean;\n tooltip?: string;\n tooltipPosition?: ActionTooltipPosition;\n uppercase?: boolean;\n}\n\nexport interface ActionMenuItem extends SelectableItem {\n callback?: () => void;\n}\n\nexport function makeMainAction(action: Action): Action {\n return { ...action, raised: true, color: ActionColor.Accent };\n}\n","import { uniqueId } from 'lodash-es';\n\nimport { Action, ActionColor } from './action.types';\n\nexport function makeAccentAction(action: Partial): Action {\n return {\n id: action.id || uniqueId(),\n ...action,\n raised: true,\n color: ActionColor.Accent,\n };\n}\n\nexport function makeWarnAction(action: Partial): Action {\n return {\n id: action.id || uniqueId(),\n ...action,\n raised: true,\n color: ActionColor.Warn,\n };\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'etn-action-container',\n templateUrl: './action-container.component.html',\n styleUrls: ['./action-container.component.scss'],\n standalone: true,\n})\nexport class ActionContainerComponent {}\n","\n","export * from './action.component';\nexport * from './action.types';\nexport * from './action.utils';\nexport * from './container/action-container.component';\nexport * from './menu/action-menu.component';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n MatLegacyMenuModule as MatMenuModule,\n MatLegacyMenuTrigger as MatMenuTrigger,\n} from '@angular/material/legacy-menu';\nimport { Nil } from '@model/nil';\n\nimport { isNotNil } from '@core/is-not-nil';\nimport { IconComponent } from '@ui/icon';\nimport { ActionComponent } from '../action.component';\nimport { Action, ActionMenuItem } from '../action.types';\n\n@Component({\n selector: 'etn-action-menu',\n standalone: true,\n imports: [CommonModule, ActionComponent, MatMenuModule, IconComponent],\n templateUrl: './action-menu.component.html',\n styleUrls: ['./action-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ActionMenuComponent {\n @Input() public action: Action | Nil;\n @Input() public menu: ActionMenuItem[] = [];\n\n @Output() public menuItemClick = new EventEmitter();\n\n @ViewChild(MatMenuTrigger, { static: true }) public trigger:\n | MatMenuTrigger\n | Nil;\n\n public onClick(item: ActionMenuItem) {\n if (isNotNil(item.callback)) {\n item.callback();\n }\n this.menuItemClick.emit(item);\n }\n}\n","\n\n\n @for (item of menu; track item.id) {\n \n @if (item.icon) {\n \n }\n {{ item.name }}\n \n }\n\n","import { Direction, Directionality } from '@angular/cdk/bidi';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';\n\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatLegacyCardModule as MatCardModule } from '@angular/material/legacy-card';\nimport { isNotNil } from '@core/is-not-nil';\nimport { Image } from '@design-system';\nimport { Nil } from '@model';\nimport { IconComponent } from '@ui/icon';\nimport { ImageModule } from '@ui/image';\nimport { isEmpty } from 'lodash-es';\n\nimport { Action, ActionComponent } from '../action';\nimport {\n ProgressSpinnerComponent,\n ProgressSpinnerSize,\n} from '../progress-spinner';\n\n@Component({\n selector: 'etn-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n ActionComponent,\n CommonModule,\n IconComponent,\n ImageModule,\n MatButtonModule,\n MatCardModule,\n MatDividerModule,\n ProgressSpinnerComponent,\n ],\n})\nexport class CardComponent {\n public constructor(private dir: Directionality) {}\n\n @Input() public altActions: Action[] = [];\n @Input() public context: any = {};\n @Input() public showActionsDivider: boolean | Nil;\n @Input() public showTitleDivider = true;\n @Input() public headerActions: Action[] = [];\n @Input() public image: Image | Nil;\n @Input() public imageHeight: number | Nil;\n @Input() public imageSrc: string | Nil;\n @Input() public loading = false;\n @Input() public mainActions: Action[] = [];\n @Input() public subTitle: string | Nil;\n @Input() public title: string | Nil;\n\n @HostBinding('class.centered-header')\n @Input()\n public centeredHeader: boolean | Nil;\n\n @HostBinding('class.hide-shadow')\n @Input()\n public hideShadow: boolean | Nil;\n\n @Output() public actionClick = new EventEmitter();\n\n @HostBinding('class')\n public direction: Direction = this.dir.value;\n\n @HostBinding('class.no-actions')\n public get hasNoActions(): boolean {\n return isEmpty(this.mainActions) && isEmpty(this.altActions);\n }\n\n public spinnerSize = ProgressSpinnerSize.Small;\n\n public onActionClick(action: Action, loading: boolean): void {\n if (loading) {\n return;\n }\n this.actionClick.emit(action);\n if (action.callback) {\n action.callback(this.context);\n }\n }\n\n public get height(): number | Nil {\n return isNotNil(this.image) ? this.imageHeight || 128 : undefined;\n }\n}\n","\n @if (title) {\n \n @if (title) {\n {{ title }}\n }\n
\n @for (action of headerActions; track action.id) {\n \n }\n
\n \n
\n }\n\n @if (image || imageSrc) {\n
\n \n
\n }\n\n \n @if (title && showTitleDivider) {\n \n }\n \n @if (showActionsDivider) {\n \n }\n \n\n @if (altActions.length > 0 || mainActions.length > 0) {\n \n
\n @if (altActions.length > 0) {\n
\n @for (action of altActions; track action.id) {\n \n }\n
\n }\n\n
\n @for (action of mainActions; track action.id) {\n \n }\n
\n
\n
\n }\n\n @if (loading) {\n \n }\n
\n","export { CardComponent } from './card.component';\n","import { Nil } from '@model';\nimport { ChartDataset, ChartData as ChartJsData, ChartType } from 'chart.js';\n\nexport enum ChartColor {\n Green = 'green',\n LightBlue = 'light-blue',\n Orange = 'orange',\n Red = 'red',\n Yellow = 'yellow',\n Blue = 'blue',\n Purple = 'purple',\n Wine = 'Wine',\n}\n\nexport interface ChartData {\n label: string | number;\n value: number;\n color: ChartColor;\n predictive?: boolean;\n isNil?: boolean;\n}\n\nexport interface ChartDataSet {\n label: string;\n data: ChartData[];\n}\n\nexport enum ChartSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n Responsive = 'responsive',\n}\n\nexport interface ChartLineAnnotation {\n label: string;\n value: number;\n}\n\nexport interface ChartBoxAnnotation {\n label?: string;\n minX?: number;\n maxX?: number;\n minY?: number;\n maxY?: number;\n color: ChartColor;\n}\n\nexport interface BarChartConfig {\n data: ChartJsData<'bar'>;\n horizontalLineAnnotation: ChartLineAnnotation | Nil;\n interactiveLegend: boolean | Nil;\n legendContainerId: string;\n size: ChartSize;\n stacked: boolean | Nil;\n unit: string | Nil;\n verticalLineAnnotation: ChartLineAnnotation | Nil;\n xAxisUnit: XaxisUnit | Nil;\n}\n\nexport interface LineChartConfig {\n data: ChartJsData<'line'>;\n horizontalLineAnnotations: ChartLineAnnotation[] | Nil;\n interactiveLegend: boolean | Nil;\n legendContainerId: string;\n size: ChartSize;\n yAxisUnit: string | Nil;\n verticalLineAnnotations: ChartLineAnnotation[] | Nil;\n boxAnnotations: ChartBoxAnnotation[] | Nil;\n xAxisUnit: XaxisUnit | Nil;\n}\n\nexport enum XaxisUnit {\n Hour = 'hour',\n Day = 'day',\n Month = 'month',\n}\n\nexport type NullableChartDataset =\n ChartDataset & {\n nullableData: (boolean | Nil)[];\n };\n","export * from './chart.types';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n forwardRef,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatLegacyCheckboxModule as MatCheckboxModule } from '@angular/material/legacy-checkbox';\nimport { Nil } from '@model';\nimport {\n AbstractFormFieldComponent,\n CONTROL_CONTAINER_VIEW_PROVIDER,\n} from '@ui/form';\n\n@Component({\n selector: 'etn-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: AbstractFormFieldComponent,\n useExisting: forwardRef(() => {\n return CheckboxComponent;\n }),\n },\n ],\n viewProviders: [CONTROL_CONTAINER_VIEW_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n MatCheckboxModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n ],\n})\nexport class CheckboxComponent extends AbstractFormFieldComponent {\n @Input() public indeterminate: boolean | Nil;\n}\n","\n \n\n","export * from './checkbox.component';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { isNotNil } from '@core/is-not-nil';\nimport { Id, Nil } from '@model';\nimport { CardComponent } from '@ui/card';\nimport { CheckboxComponent } from '@ui/checkbox';\nimport { isNil } from 'lodash-es';\nimport { CookieService } from 'ngx-cookie-service';\n\nimport { Action, ActionAlign, ActionColor, ActionComponent } from '../action';\nimport { CookieConsentModule } from './cookie-consent.module';\nimport { CookieConsentService } from './cookie-consent.service';\nimport {\n CookieConsent,\n CookieConsentMessages,\n CookieConsentPosition,\n} from './cookie-consent.types';\n\n@Component({\n selector: 'etn-cookie-consent',\n templateUrl: './cookie-consent.component.html',\n styleUrls: ['./cookie-consent.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n ActionComponent,\n CardComponent,\n CheckboxComponent,\n CommonModule,\n CookieConsentModule,\n FormsModule,\n ],\n providers: [CookieService],\n})\nexport class CookieConsentComponent implements OnChanges {\n public constructor(private service: CookieConsentService) {}\n\n @Input() public consents: CookieConsent[] | Nil;\n @Input() public messages: CookieConsentMessages | Nil;\n @Input() public userId: Id | Nil;\n\n @HostBinding('class')\n @Input()\n public position: CookieConsentPosition | Nil =\n CookieConsentPosition.BottomLeft;\n\n @Output() public accept = new EventEmitter();\n\n public currentConsents: CookieConsent[] = [];\n public showSettings = false;\n public acceptCookieAction: Action | Nil;\n public settingsAction: Action | Nil;\n\n public ngOnChanges({ messages }: SimpleChanges): void {\n if (isNotNil(this.consents) && isNotNil(this.userId)) {\n this.currentConsents = this.getConsents(this.consents, this.userId);\n }\n if (isNotNil(messages)) {\n this.acceptCookieAction = this.getAcceptCookieAction(this.messages);\n this.settingsAction = this.getSettingsAction(this.messages);\n }\n }\n\n public onCensentToggle({ id }: CookieConsent, accepted: boolean | Nil): void {\n this.currentConsents = this.currentConsents.map((consent) => {\n if (consent.id === id) {\n return { ...consent, accepted: accepted || false };\n }\n return consent;\n });\n }\n\n private getAcceptCookieAction(messages: CookieConsentMessages | Nil): Action {\n return {\n id: 'accept-cookie',\n name: messages?.accept,\n raised: true,\n color: ActionColor.Primary,\n fullWidth: true,\n align: ActionAlign.Center,\n callback: () => {\n this.service.saveConsent(this.currentConsents, this.userId);\n this.accept.emit(this.currentConsents);\n },\n };\n }\n\n private getSettingsAction(messages: Nil | CookieConsentMessages): Action {\n return {\n id: 'settings',\n name: messages?.settings,\n basic: true,\n border: true,\n fullWidth: true,\n align: ActionAlign.Center,\n callback: () => {\n this.showSettings = !this.showSettings;\n },\n };\n }\n\n private getConsents(consents: CookieConsent[], userId: Id) {\n return (consents || []).map((consent) => {\n const value = this.service.getCookieValue(consent, userId);\n return {\n ...consent,\n accepted: isNil(value) ? consent.accepted : value,\n };\n });\n }\n}\n","\n
\n
{{ messages?.title }}
\n
\n
{{ messages?.explanation }}
\n {{\n messages?.link\n }}\n
\n @if (showSettings) {\n
\n
{{ messages?.consent }}
\n
\n \n {{ messages?.required }}\n \n @for (consent of currentConsents; track consent.id) {\n \n {{ consent.name }}\n \n }\n
\n
\n }\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n","import { NgModule } from '@angular/core';\n\nimport { CookieConsentService } from './cookie-consent.service';\n\n@NgModule({\n providers: [CookieConsentService],\n})\nexport class CookieConsentModule {}\n","import { Injectable } from '@angular/core';\nimport { Id, Nil } from '@model';\nimport { every, isNil } from 'lodash-es';\nimport { CookieService } from 'ngx-cookie-service';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\n\nimport { CookieConsent } from './cookie-consent.types';\n\n@Injectable()\nexport class CookieConsentService {\n public constructor(private cookieService: CookieService) {}\n\n public saveSubject$ = new BehaviorSubject(undefined);\n\n public saveConsent(consents: CookieConsent[], userId: Id | Nil): void {\n consents.forEach((consent) => {\n this.cookieService.set(\n this.getCookieName(consent, userId),\n `${consent.accepted}`,\n 365,\n '/',\n );\n });\n this.saveSubject$.next(undefined);\n }\n\n public hasConsent(consents: CookieConsent[], userId: Id | Nil): boolean {\n return every(consents, (consent) => {\n return (\n this.cookieService.get(this.getCookieName(consent, userId)).length > 0\n );\n });\n }\n\n public hasConsentObservable(\n consents: CookieConsent[],\n userId: Id | Nil,\n ): Observable {\n return this.saveSubject$.pipe(\n map(() => {\n return this.hasConsent(consents, userId);\n }),\n );\n }\n\n public getCookieValue(\n consent: CookieConsent,\n userId: Id | Nil,\n ): boolean | undefined {\n const value = this.cookieService.get(this.getCookieName(consent, userId));\n if (value.length === 0) {\n return undefined;\n }\n return value === 'true';\n }\n\n public getCookieValueObservable(\n consent: CookieConsent,\n userId: Id | Nil,\n ): Observable {\n return this.saveSubject$.pipe(\n map(() => {\n return this.getCookieValue(consent, userId);\n }),\n );\n }\n\n private getCookieName(consent: CookieConsent, userId: Id | Nil): string {\n if (isNil(userId)) {\n return `etn-cookie-consent-${consent.id}`;\n }\n\n return `etn-cookie-consent-${userId}-${consent.id}`;\n }\n}\n","import { WithId, WithName } from '@model';\n\nexport interface CookieConsent extends WithId, WithName {\n accepted: boolean;\n}\n\nexport interface CookieConsentMessages {\n title: string;\n explanation: string;\n link: string;\n linkUrl: string;\n consent: string;\n accept: string;\n settings: string;\n required: string;\n}\n\nexport enum CookieConsentPosition {\n BottomLeft = 'bottom-left',\n BottomRight = 'bottom-right',\n TopLeft = 'top-left',\n TopRight = 'top-right',\n}\n","export * from './cookie-consent.component';\nexport * from './cookie-consent.service';\nexport * from './cookie-consent.types';\n","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { CdkPortalOutletAttachedRef, PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n HostBinding,\n Inject,\n Optional,\n} from '@angular/core';\nimport { MatLegacyCardModule as MatCardModule } from '@angular/material/legacy-card';\nimport { isNotNil } from '@core/is-not-nil';\nimport { Nil } from '@model';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { FabIconComponent } from '@ui/fab-icon';\nimport { IconSize } from '@ui/icon';\nimport { ListItemSeparatorComponent } from '@ui/list-item';\nimport { isNil } from 'lodash-es';\nimport { BehaviorSubject, Observable, combineLatest, of } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap } from 'rxjs/operators';\n\nimport { Action, ActionAlign, ActionColor, ActionComponent } from '../action';\nimport {\n AbstractDialogComponent,\n DialogConfig,\n DialogPosition,\n DialogTitleColor,\n} from './dialog.types';\nimport { ANIMATION_IN, ANIMATION_OUT } from './dialog.utils';\n\n@UntilDestroy()\n@Component({\n selector: 'etn-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n ActionComponent,\n CommonModule,\n FabIconComponent,\n MatCardModule,\n PortalModule,\n ListItemSeparatorComponent,\n ],\n})\nexport class DialogComponent {\n public constructor(\n @Optional() @Inject(DIALOG_DATA) public config: DialogConfig,\n private ref: DialogRef,\n ) {\n if (config.position === DialogPosition.RightSide) {\n ref.backdropClick.subscribe(() => {\n this.closeDialog(ref, config);\n if (isNotNil(config.onClose)) {\n config.onClose(this.componentRefSubject$?.value?.result);\n }\n });\n }\n }\n\n private componentRefSubject$ = new BehaviorSubject<\n AbstractDialogComponent | Nil\n >(undefined);\n\n private valid$ = this.componentRefSubject$.pipe(\n switchMap((ref) => {\n if (isNil(ref)) {\n return of(true);\n }\n return ref.valid$;\n }),\n distinctUntilChanged(),\n );\n\n private loading$ = this.componentRefSubject$.pipe(\n switchMap((ref) => {\n if (isNil(ref)) {\n return of(false);\n }\n return ref.loading$;\n }),\n distinctUntilChanged(),\n );\n\n // ALIGN\n @HostBinding('class')\n public align = this.config.align;\n\n // TITLE COLOR\n @HostBinding('class')\n public titleColor =\n this.config.confirmAction?.color ||\n this.config.titleColor ||\n DialogTitleColor.Primary;\n\n @HostBinding('class.no-cancel')\n public noCancel = isNil(this.config.cancelAction);\n\n // CONTENT\n public content: string | Nil = this.config.content?.replace(/\\\\n/g, '
');\n\n // ACTIONS\n public cancelAction$ = this.loading$.pipe(\n map((loading) => {\n return this.getCancelAction(this.config, loading);\n }),\n );\n\n public confirmAction$: Observable = combineLatest([\n this.valid$,\n this.loading$,\n ]).pipe(\n map(([valid, loading]) => {\n return this.getConfirmAction(this.config, valid, loading);\n }),\n );\n\n public closeAction$ = this.loading$.pipe(\n map((loading) => {\n return this.getCloseAction(this.config, loading);\n }),\n );\n\n public onAttached(ref: CdkPortalOutletAttachedRef): void {\n if (ref) {\n this.componentRefSubject$.next(\n (ref as ComponentRef).instance,\n );\n }\n }\n\n private getCancelAction(\n config: DialogConfig,\n loading: boolean,\n ): Action | Nil {\n if (config.cancelAction) {\n return {\n ...config.cancelAction,\n align: ActionAlign.Center,\n border: true,\n callback: () => {\n if (config.cancelAction && config.cancelAction.callback) {\n config.cancelAction.callback();\n }\n this.closeDialog(this.ref, config);\n },\n disabled: loading,\n };\n }\n\n return undefined;\n }\n\n private getConfirmAction(\n config: DialogConfig,\n valid: boolean,\n loading: boolean,\n ): Action | Nil {\n if (isNil(config.confirmAction)) {\n return undefined;\n }\n\n return {\n raised: true,\n color: ActionColor.Primary,\n align: ActionAlign.Center,\n ...config.confirmAction,\n callback: () => {\n if (isNotNil(config.confirmAction) && config.confirmAction.callback) {\n config.confirmAction.callback(\n this.componentRefSubject$.value?.result,\n (value: boolean) => {\n this.componentRefSubject$.value?.loading$.next(value);\n },\n () => {\n this.closeDialog(this.ref, config);\n },\n );\n }\n if (config.closeOnConfirm !== false) {\n this.closeDialog(this.ref, config);\n }\n },\n disabled: !valid && !loading,\n loading,\n };\n }\n\n public getCloseAction(config: DialogConfig, loading: boolean): Action | Nil {\n return {\n id: 'close',\n icon: 'close',\n iconSize: IconSize.Default,\n color: this.config.confirmAction?.color || ActionColor.Primary,\n callback: () => {\n if (isNil(config.confirmAction)) {\n this.closeDialog(this.ref, config);\n if (isNotNil(config.onClose)) {\n config.onClose(this.componentRefSubject$.value?.result);\n }\n } else {\n this.closeDialog(this.ref, config);\n if (isNotNil(config.onClose)) {\n config.onClose(undefined);\n }\n }\n },\n disabled: loading,\n };\n }\n\n private closeDialog(ref: DialogRef, config: DialogConfig): void {\n const position = config.position || DialogPosition.Center;\n\n ref.overlayRef.removePanelClass(ANIMATION_IN[position]);\n ref.overlayRef.addPanelClass(ANIMATION_OUT[position]);\n\n ref.overlayRef.overlayElement.addEventListener('animationend', () => {\n ref.close();\n });\n }\n}\n","\n @if (config.title) {\n
\n
{{ config.title }}
\n \n
\n }\n\n @if (config.showTitleContentDivider) {\n \n }\n\n
\n @if (config.fabIcon) {\n
\n \n
\n }\n @if (config.hint) {\n
{{ config.hint }}
\n }\n @if (config.component) {\n \n }\n @if (config.content) {\n
\n }\n
\n @if (config.confirmAction || config.cancelAction) {\n
\n
\n @if (cancelAction$ | async) {\n \n }\n
\n\n
\n \n
\n
\n }\n
\n","import { DialogModule as CdkDialogModule } from '@angular/cdk/dialog';\nimport { NgModule } from '@angular/core';\n\nimport { DialogService } from './dialog.service';\n\n@NgModule({\n imports: [CdkDialogModule],\n providers: [DialogService],\n})\nexport class DialogModule {}\n","import { Dialog } from '@angular/cdk/dialog';\nimport { Overlay, PositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable } from '@angular/core';\nimport { isNotNil } from '@core/is-not-nil';\nimport { isArray, isNil } from 'lodash-es';\n\nimport { DialogComponent } from './dialog.component';\nimport { DialogConfig, DialogPosition } from './dialog.types';\nimport { ANIMATION_IN } from './dialog.utils';\n\nexport const DEFAULT_DIALOG_MAX_WIDTH = 440;\n\n@Injectable()\nexport class DialogService {\n public constructor(\n private overlay: Overlay,\n private dialog: Dialog,\n ) {}\n\n public openDialog(config: DialogConfig) {\n this.dialog.open, DialogComponent>(\n DialogComponent,\n {\n autoFocus: false,\n data: config,\n disableClose: true,\n hasBackdrop: true,\n maxWidth: config.maxWidth || DEFAULT_DIALOG_MAX_WIDTH,\n minWidth: config.minWidth,\n panelClass: this.getPanelClass(config),\n viewContainerRef: config.viewContainerRef,\n positionStrategy: this.getPositionStrategy(config),\n },\n );\n }\n\n public getPanelClass(\n config: DialogConfig,\n ): string | string[] | undefined {\n const position = config.position || DialogPosition.Center;\n\n const classes = ['etn-dialog', position, 'animate__animated'];\n\n classes.push(ANIMATION_IN[position]);\n\n if (isNotNil(config.panelClass)) {\n if (isArray(config.panelClass)) {\n config.panelClass.forEach((c) => {\n classes.push(c);\n });\n } else {\n classes.push(config.panelClass);\n }\n }\n\n if (isNil(config.confirmAction) && isNil(config.cancelAction)) {\n classes.push('no-action');\n }\n\n if (isNil(config.title)) {\n classes.push('no-title');\n }\n\n return classes;\n }\n\n private getPositionStrategy(\n config: DialogConfig,\n ): PositionStrategy | undefined {\n if (config.position === DialogPosition.RightSide) {\n return this.overlay.position().global().top('0px').right('0px');\n }\n return undefined;\n }\n}\n","import { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, ViewContainerRef } from '@angular/core';\nimport { Nil } from '@model';\nimport { FabIconColor } from '@ui/fab-icon';\nimport { IconName } from '@ui/icon';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Action, ActionColor } from '../action';\n\nexport enum DialogAlign {\n Center = 'center',\n}\n\nexport enum DialogPosition {\n Center = 'center',\n RightSide = 'right-side',\n}\n\nexport enum DialogTitleColor {\n Primary = 'primary',\n Accent = 'accent',\n Warn = 'warn',\n}\n\nexport type CloseDialogFn = () => void;\nexport type LoadingFn = (loading: boolean) => void;\n\nexport interface ConfirmAction\n extends Omit, 'callback'> {\n callback?: (\n context: Ctx | Nil,\n loading: LoadingFn,\n closeDialog: CloseDialogFn,\n ) => void;\n}\n\nexport interface DialogConfig {\n align?: DialogAlign;\n cancelAction?: Action;\n closeOnConfirm?: boolean;\n titleColor?: ActionColor;\n component?: ComponentPortal;\n confirmAction?: ConfirmAction;\n content?: string;\n data?: Data;\n fabIcon?: IconName;\n fabIconColor?: FabIconColor;\n hasBackdrop?: boolean;\n hint?: string;\n maxWidth?: number | string;\n minWidth?: number | string;\n onClose?: (data: Data) => void;\n panelClass?: string[];\n position?: DialogPosition;\n showTitleContentDivider?: boolean;\n title?: string;\n viewContainerRef?: ViewContainerRef;\n}\n\n@Component({ template: '' })\nexport abstract class AbstractDialogComponent {\n public result: T | Nil;\n public valid$ = new BehaviorSubject(true);\n public loading$ = new BehaviorSubject(false);\n}\n","import { DialogPosition } from './dialog.types';\n\nexport const ANIMATION_IN: Record = {\n [DialogPosition.Center]: 'animate__zoomIn',\n [DialogPosition.RightSide]: 'animate__slideInRight',\n};\n\nexport const ANIMATION_OUT: Record = {\n [DialogPosition.Center]: 'animate__zoomOut',\n [DialogPosition.RightSide]: 'animate__slideOutRight',\n};\n","export * from './dialog.component';\nexport * from './dialog.module';\nexport * from './dialog.service';\nexport * from './dialog.types';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnChanges,\n} from '@angular/core';\nimport { Nil } from '@model';\nimport { IconComponent, IconName, IconSize } from '@ui/icon';\nimport { isNil } from 'lodash-es';\n\nimport { FabIconColor } from './fab-icon.types';\n\n@Component({\n selector: 'etn-fab-icon',\n templateUrl: './fab-icon.component.html',\n styleUrls: ['./fab-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, IconComponent],\n})\nexport class FabIconComponent implements OnChanges {\n @Input() public name: IconName | Nil;\n\n @HostBinding('class')\n @Input()\n public color: FabIconColor | Nil;\n\n @Input() public size: IconSize = IconSize.Xlarge;\n\n /**\n * Size of the rim around icon\n */\n @Input() public rimSize: IconSize | Nil;\n\n /**\n * Calculated rim around the icon\n */\n public rimMargin = 0;\n\n public ngOnChanges(): void {\n if (isNil(this.rimSize)) {\n this.rimMargin = this.size / 2;\n } else {\n this.rimMargin = this.rimSize;\n }\n }\n}\n","\n","import { IconName, IconSize } from '@ui/icon';\n\nexport enum FabIconColor {\n Accent = 'accent',\n Primary = 'primary',\n PrimaryContrast = 'primary-contrast',\n Grey = 'gray',\n Disabled = 'disabled',\n Warn = 'warn',\n Green = 'green',\n Red = 'red',\n Blue = 'blue',\n LightBlue = 'light-blue',\n Orange = 'orange',\n}\n\nexport interface FabIcon {\n name: IconName;\n size: IconSize;\n color?: FabIconColor;\n rimSize: IconSize;\n}\n","export * from './fab-icon.component';\nexport * from './fab-icon.types';\n","import {\n Component,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n Optional,\n Output,\n Provider,\n SimpleChanges,\n SkipSelf,\n} from '@angular/core';\nimport {\n ControlContainer,\n FormControl,\n FormControlStatus,\n FormGroupDirective,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { MatLegacyFormFieldAppearance as MatFormFieldAppearance } from '@angular/material/legacy-form-field';\nimport { isNotNil } from '@core/is-not-nil';\nimport { Nil } from '@model';\nimport { isEmpty } from 'lodash-es';\nimport {\n BehaviorSubject,\n Observable,\n distinctUntilChanged,\n startWith,\n switchMap,\n} from 'rxjs';\n\nexport const CONTROL_CONTAINER_VIEW_PROVIDER: Provider = {\n provide: ControlContainer,\n useFactory: (container: ControlContainer) => {\n return container;\n },\n deps: [[new SkipSelf(), new Optional(), ControlContainer]],\n};\n\nexport const FORM_FIELD_APPEARANCE = new InjectionToken(\n 'Appearance',\n);\n\nexport const HIDE_REQUIRED_MARKER = new InjectionToken(\n 'hideRequiredMarker',\n);\n\n@Component({ template: '' })\nexport abstract class AbstractFormFieldComponent implements OnChanges {\n public constructor(\n public container: ControlContainer,\n @Optional()\n @Inject(FORM_FIELD_APPEARANCE)\n public defaultAppearance: MatFormFieldAppearance,\n @Optional()\n @Inject(HIDE_REQUIRED_MARKER)\n public hideRequiredMarker: boolean,\n ) {\n this.setupFormControl();\n }\n\n public formControl: FormControl = new FormControl();\n\n @Input() public controlName: string | number | null = null;\n @Input() public placeholder: string | Nil = '';\n @Input() public hint: string | Nil;\n @Input() public validationErrorMessage: string | Nil;\n @Input() public set disabled(disabled: boolean | Nil) {\n if (disabled) {\n this.formControl.disable();\n } else {\n this.formControl.enable();\n }\n }\n\n public get disabled(): boolean {\n return this.formControl.disabled;\n }\n\n @Input() public set required(required: boolean | Nil) {\n if (required) {\n this.formControl.addValidators([Validators.required]);\n } else {\n this.formControl.removeValidators([Validators.required]);\n }\n this.formControl.updateValueAndValidity();\n }\n\n public get required(): boolean {\n return this.formControl.hasValidator(Validators.required);\n }\n\n @Input() public appearance: MatFormFieldAppearance =\n this.defaultAppearance || 'fill';\n\n @Input() public set value(value: T | Nil) {\n this.formControl.setValue(value);\n this.onFormControlInit();\n }\n\n public get value(): T | Nil {\n return this.formControl.value;\n }\n\n private valueChangeSubject$ = new BehaviorSubject>(\n this.formControl.valueChanges,\n );\n\n @Output() public valueChange = this.valueChangeSubject$.pipe(\n switchMap((valueChange) => {\n return valueChange;\n }),\n distinctUntilChanged(),\n );\n\n private statusChangeSubject$ = new BehaviorSubject<\n Observable\n >(this.formControl.statusChanges);\n\n @Output() public statusChange = this.statusChangeSubject$.pipe(\n switchMap((statusChange) => {\n return statusChange;\n }),\n startWith(undefined),\n distinctUntilChanged(),\n );\n\n public ngOnChanges({ controlName }: SimpleChanges): void {\n if (\n isNotNil(this.container) &&\n isNotNil(controlName) &&\n isNotNil(this.controlName)\n ) {\n this.formControl = (this.container as FormGroupDirective).form.controls[\n this.controlName\n ] as FormControl;\n this.setupFormControl();\n this.onFormControlInit();\n }\n }\n\n public get empty(): boolean {\n return isEmpty(this.formControl.value);\n }\n\n protected onFormControlInit() {}\n\n protected onValidatorsAdd(_validators: ValidatorFn | ValidatorFn[]) {}\n protected onValidatorsRemove(_validators: ValidatorFn | ValidatorFn[]) {}\n protected onDisable(_opts?: { onlySelf?: boolean; emitEvent?: boolean }) {}\n protected onEnable(_opts?: { onlySelf?: boolean; emitEvent?: boolean }) {}\n\n // add extra callbacks to the form control that are called when\n // validators and enable/disable state are changing\n private setupFormControl() {\n this.statusChangeSubject$.next(this.formControl.statusChanges);\n this.valueChangeSubject$.next(this.formControl.valueChanges);\n\n const addValidators = this.formControl.addValidators.bind(this.formControl);\n const removeValidators = this.formControl.removeValidators.bind(\n this.formControl,\n );\n const disable = this.formControl.disable.bind(this.formControl);\n const enable = this.formControl.enable.bind(this.formControl);\n\n this.formControl.addValidators = (\n validators: ValidatorFn | ValidatorFn[],\n ) => {\n addValidators(validators);\n this.onValidatorsAdd(validators);\n };\n\n this.formControl.removeValidators = (\n validators: ValidatorFn | ValidatorFn[],\n ) => {\n removeValidators(validators);\n this.onValidatorsRemove(validators);\n };\n\n this.formControl.disable = (opts?: {\n onlySelf?: boolean;\n emitEvent?: boolean;\n }) => {\n disable(opts);\n this.onDisable();\n };\n\n this.formControl.enable = (opts?: {\n onlySelf?: boolean;\n emitEvent?: boolean;\n }) => {\n enable(opts);\n this.onEnable();\n };\n }\n}\n","import { Component, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { AbstractFormModel, FormModel, Nil } from '@model';\nimport { isEqual, isNil } from 'lodash';\nimport { Observable } from 'rxjs';\nimport { delay, distinctUntilChanged, map } from 'rxjs/operators';\n\n@Component({ template: '' })\nexport abstract class AbstractFormComponent<\n M,\n F,\n FM extends AbstractFormModel = FormModel,\n> {\n public constructor(private formBuilder: FormBuilder) {}\n\n private _model: Partial | Nil;\n\n @Input() public set model(model: Partial | Nil) {\n this._model = model;\n if (model) {\n this.formGroup.setValue(this.serializeModel(model) as any);\n this.onModelChange(model, this.formGroup as any);\n }\n }\n @Input() public set readonly(readonly: boolean | Nil) {\n if (readonly) {\n this.formGroup.disable();\n } else {\n this.formGroup.enable();\n }\n }\n\n public formGroup = this.formBuilder.group(this.getControls(this.formBuilder));\n\n @Output() public valueChange: Observable> =\n this.formGroup.valueChanges.pipe(\n map((formModel) => {\n return this.deserializeModel(formModel as F);\n }),\n );\n\n @Output()\n public valid: Observable = this.formGroup.statusChanges.pipe(\n map(() => {\n return this.formGroup.valid;\n }),\n distinctUntilChanged(),\n delay(0),\n );\n\n @Output()\n public dirty: Observable = this.formGroup.valueChanges.pipe(\n map(() => {\n if (this.formGroup.pristine) {\n return false;\n }\n return this.isChanged(this._model, this.formGroup.value as F);\n }),\n distinctUntilChanged(),\n delay(0),\n );\n\n public validateForm(): void {\n this.formGroup.setValue(this.formGroup.value as any);\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n public get model(): Partial | Nil {\n return this._model;\n }\n\n public abstract getControls(fb: FormBuilder): FM;\n public abstract serializeModel(model: Partial): F;\n public abstract deserializeModel(formModel: F): Partial;\n\n protected onModelChange(\n _model: Partial | Nil,\n _formGroup: FormGroup,\n ): void {}\n\n // Pass the model and the form model through serialize/deserialize to ensure that they are the same\n private isChanged(model: Partial | Nil, formModel: F): boolean {\n if (isNil(model)) {\n return false;\n }\n const processedModel = this.deserializeModel(this.serializeModel(model));\n const processedFormModel = this.deserializeModel(formModel);\n return !isEqual(processedModel, processedFormModel);\n }\n}\n","export * from './form-field.component';\nexport * from './form.component';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Nil } from '@model';\n\nimport { TooltipModule, TooltipPosition } from '@ui/tooltip';\nimport { IconColor, IconName, IconSize } from './icon.types';\n\n@Component({\n selector: 'etn-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, MatIconModule, TooltipModule],\n})\nexport class IconComponent {\n @Input() public set name(name: IconName | Nil) {\n this.iconName = name;\n this.isBluiIcon = name?.startsWith('blui-') || false;\n this.isGmIcon = name?.startsWith('etn-') || false;\n }\n @Input() public counter: number | Nil;\n @Input() public set size(size: IconSize | Nil) {\n this.styles = this.getStyles(size || IconSize.Default);\n }\n\n @HostBinding('class')\n @Input()\n public color: IconColor | Nil;\n\n @Input() public tooltip: string | Nil;\n @Input() public tooltipPosition: TooltipPosition = 'bottom';\n\n public iconName: string | Nil;\n\n public isBluiIcon = false;\n public isGmIcon = false;\n\n public styles: Record = this.getStyles(\n IconSize.Default,\n );\n\n private getStyles(size: IconSize): Record {\n return {\n 'font-size': `${size}rem`,\n 'width.rem': size,\n 'height.rem': size,\n };\n }\n}\n","@if (!isBluiIcon && !isGmIcon) {\n \n {{ iconName }}\n \n}\n@if (isBluiIcon) {\n \n}\n@if (isGmIcon) {\n \n}\n@if (counter) {\n {{ counter }}\n}\n","export type IconName =\n | 'access_time'\n | 'account_circle'\n | 'account_tree'\n | 'add'\n | 'add_circle'\n | 'add_circle_outline'\n | 'adf_scanner'\n | 'archive'\n | 'arrow_back'\n | 'arrow_downward'\n | 'arrow_drop_down'\n | 'arrow_drop_up'\n | 'arrow_forward'\n | 'arrow_upward'\n | 'attach_money'\n | 'av_timer'\n | 'bar_chart'\n | 'battery_0_bar'\n | 'battery_1_bar'\n | 'battery_2_bar'\n | 'battery_3_bar'\n | 'battery_4_bar'\n | 'battery_5_bar'\n | 'battery_6_bar'\n | 'battery_full'\n | 'blui-apple_pay'\n | 'blui-battery'\n | 'blui-building'\n | 'blui-car'\n | 'blui-cloud_off_filled'\n | 'blui-device_info'\n | 'blui-eaton'\n | 'blui-ev_plug_ccs_combo'\n | 'blui-ev_plug_chademo'\n | 'blui-ev_plug_domestic_a'\n | 'blui-ev_plug_domestic_b'\n | 'blui-ev_plug_domestic_c'\n | 'blui-ev_plug_domestic_d'\n | 'blui-ev_plug_domestic_e'\n | 'blui-ev_plug_domestic_f'\n | 'blui-ev_plug_domestic_g'\n | 'blui-ev_plug_domestic_h'\n | 'blui-ev_plug_domestic_i'\n | 'blui-ev_plug_domestic_j'\n | 'blui-ev_plug_domestic_k'\n | 'blui-ev_plug_domestic_l'\n | 'blui-ev_plug_iec_60309_2_single_16'\n | 'blui-ev_plug_iec_60309_2_three_16'\n | 'blui-ev_plug_iec_60309_2_three_32'\n | 'blui-ev_plug_iec_60309_2_three_64'\n | 'blui-ev_plug_iec_61851_gbt'\n | 'blui-ev_plug_iec_62196_t1'\n | 'blui-ev_plug_iec_62196_t1_combo'\n | 'blui-ev_plug_iec_62196_t2'\n | 'blui-ev_plug_iec_62196_t2_combo'\n | 'blui-ev_plug_iec_62196_t3a'\n | 'blui-ev_plug_iec_62196_t3c'\n | 'blui-ev_plug_tesla_r'\n | 'blui-ev_plug_tesla_s'\n | 'blui-ev_plug_type_one'\n | 'blui-ev_plug_type_two'\n | 'blui-maintenance'\n | 'blui-network_switch'\n | 'blui-outline_offline_bolt'\n | 'blui-pantograph_bottom_up'\n | 'blui-pantograph_top_down'\n | 'blui-payment_amex'\n | 'blui-payment_isracard'\n | 'blui-payment_maestro'\n | 'blui-payment_mastercard'\n | 'blui-payment_postfinance'\n | 'blui-payment_twint'\n | 'blui-paypal'\n | 'blui-servers'\n | 'blui-stopping'\n | 'blui-visa'\n | 'blui-waveform'\n | 'bolt'\n | 'build'\n | 'cable'\n | 'calendar_today'\n | 'call'\n | 'cancel'\n | 'card_giftcard'\n | 'card_membership'\n | 'check'\n | 'check_box'\n | 'check_box_outline_blank'\n | 'check_circle'\n | 'chevron_left'\n | 'chevron_right'\n | 'clear'\n | 'close'\n | 'cloud'\n | 'cloud_off'\n | 'comment'\n | 'compare_arrows'\n | 'contact_mail'\n | 'content_copy'\n | 'create'\n | 'credit_card'\n | 'date_range'\n | 'delete'\n | 'description'\n | 'disabled_by_default'\n | 'done'\n | 'error'\n | 'electrical_services'\n | 'euro'\n | 'ev_station'\n | 'event_available'\n | 'event_busy'\n | 'event_repeat'\n | 'exit_to_app'\n | 'expand_less'\n | 'expand_more'\n | 'fiber_manual_record'\n | 'fiber_new'\n | 'file_copy'\n | 'file_download'\n | 'filter_list'\n | 'flag'\n | 'fullscreen'\n | 'get_app'\n | 'etn-intercharge'\n | 'group'\n | 'help'\n | 'home'\n | 'hourglass_bottom'\n | 'hourglass_empty'\n | 'hourglass_top'\n | 'image'\n | 'indeterminate_check_box'\n | 'info'\n | 'insert_drive_file'\n | 'ios_share'\n | 'keyboard_arrow_left'\n | 'language'\n | 'launch'\n | 'layers'\n | 'light_mode'\n | 'link'\n | 'list'\n | 'load_factor'\n | 'local_parking'\n | 'location_city'\n | 'location_off'\n | 'location_on'\n | 'lock'\n | 'lock_open'\n | 'loyalty'\n | 'mail'\n | 'map'\n | 'menu'\n | 'meter_face'\n | 'mood'\n | 'more_time'\n | 'more_vert'\n | 'my_location'\n | 'near_me'\n | 'notifications'\n | 'notifications_active'\n | 'notifications_off'\n | 'offline_bolt'\n | 'paid'\n | 'palette'\n | 'password'\n | 'pause'\n | 'pause_circle'\n | 'pause_circle_filled'\n | 'payment'\n | 'people'\n | 'person'\n | 'pin_drop'\n | 'place'\n | 'play_circle_outline'\n | 'power'\n | 'power_settings_new'\n | 'psychology'\n | 'public'\n | 'query_builder'\n | 'query_stats'\n | 'question_mark'\n | 'radio_button_checked'\n | 'radio_button_unchecked'\n | 'receipt'\n | 'redo'\n | 'remove_circle_outline'\n | 'replay'\n | 'restart_alt'\n | 'save'\n | 'save_as'\n | 'schedule'\n | 'science'\n | 'search'\n | 'security'\n | 'send'\n | 'sentiment_satisfied_alt'\n | 'settings'\n | 'settings_backup_restore'\n | 'shield'\n | 'short_text'\n | 'smartphone'\n | 'sms'\n | 'sort'\n | 'star'\n | 'star_rate'\n | 'stop'\n | 'subdirectory_arrow_right'\n | 'summarize'\n | 'supervised_user_circle'\n | 'swap_horiz'\n | 'swap_horizontal_circle'\n | 'tag'\n | 'text_format'\n | 'text_snippet'\n | 'texture'\n | 'timelapse'\n | 'timer'\n | 'toggle_off'\n | 'toggle_on'\n | 'trending_down'\n | 'trending_flat'\n | 'trending_up'\n | 'unfold_less'\n | 'unfold_more'\n | 'update'\n | 'upload_file'\n | 'view_column'\n | 'view_week'\n | 'visibility'\n | 'visibility_off'\n | 'vpn_key'\n | 'warning'\n | 'warning_amber'\n | 'watch_later'\n | 'widgets'\n | 'wysiwyg'\n | 'table_rows'\n | 'start'\n | 'numbers';\n\nexport enum IconSize {\n Xsmall = 0.5,\n Small = 1,\n Msmall = 1.25,\n Default = 1.5,\n Medium = 2,\n Large = 2.5,\n Xlarge = 3,\n XXlarge = 3.5,\n EmptyStateSmall = 4,\n EmptyState = 6,\n}\n\nexport interface Icon {\n name: IconName;\n size?: IconSize;\n color?: IconColor;\n tooltip?: string;\n}\n\nexport enum IconColor {\n Accent = 'accent',\n Primary = 'primary',\n PrimaryContrast = 'primary-contrast',\n Grey = 'grey',\n Disabled = 'disabled',\n Warn = 'warn',\n Green = 'green',\n Red = 'red',\n Blue = 'blue',\n LightBlue = 'light-blue',\n Orange = 'orange',\n}\n","export { IconComponent } from './icon.component';\nexport * from './icon.types';\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { isNotNil } from '@core/is-not-nil';\nimport { IMAGE_MAPPING, Image } from '@design-system';\nimport { Nil } from '@model';\nimport { SvgIconRegistryService } from 'angular-svg-icon';\nimport { isNil } from 'lodash-es';\nimport { Observable, ReplaySubject, of } from 'rxjs';\nimport { mergeMap, tap } from 'rxjs/operators';\n\nimport { ImageInfo } from './image.types';\n\n@Component({\n selector: 'etn-image',\n templateUrl: './image.component.html',\n styleUrls: ['./image.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ImageComponent implements OnInit {\n public constructor(\n private iconReg: SvgIconRegistryService,\n private changeDetectionRef: ChangeDetectorRef,\n ) {}\n\n @Input() public src: string | SafeUrl | Nil;\n @Input() public set name(name: Image | Nil) {\n this.svgName = undefined;\n if (name) {\n this.loadSvgSubject$.next(name);\n }\n }\n\n @HostBinding('style.height.px')\n @Input()\n public height: number | Nil;\n\n @Output() public imageLoad = new EventEmitter();\n @Output() public svgLoad = new EventEmitter();\n\n private loadSvgSubject$ = new ReplaySubject(1);\n\n public loading = true;\n public svgName: string | Nil;\n\n public ngOnInit(): void {\n this.loadSvgSubject$\n .pipe(\n mergeMap((name) => {\n return this.loadSvg(name);\n }),\n )\n .subscribe();\n }\n\n public get svgStyle(): any {\n return {\n display: 'block',\n height: this.height,\n };\n }\n\n public get imgHeight(): string {\n return `${this.height}px`;\n }\n\n public onImageLoad(event: any): void {\n const width = event.currentTarget.width;\n const height = event.currentTarget.height;\n this.loading = false;\n this.imageLoad.emit({ width, height });\n }\n\n public get showLoadingSpinner(): boolean {\n return this.loading && isNotNil(this.height);\n }\n\n public get spinnerPosition(): string {\n if (isNil(this.diameter)) {\n return '0';\n }\n return `calc(50% - ${this.diameter / 2}px)`;\n }\n\n @HostBinding('style.min-width.px')\n public get diameter(): number | undefined {\n return this.height ? this.height / 4 : undefined;\n }\n\n private loadSvg(name: Image): Observable {\n const obs = this.iconReg.loadSvg(`images/${IMAGE_MAPPING[name]}`, name);\n if (isNil(obs)) {\n return of(undefined);\n }\n return obs.pipe(\n tap((svgElement) => {\n this.loading = false;\n this.svgName = name;\n this.svgLoad.emit(svgElement);\n this.changeDetectionRef.markForCheck();\n }),\n );\n }\n}\n","@if (svgName) {\n \n}\n@if (src) {\n \n}\n@if (showLoadingSpinner) {\n \n}\n","import { CommonModule } from '@angular/common';\nimport {\n provideHttpClient,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { AngularSvgIconModule } from 'angular-svg-icon';\n\nimport { ProgressSpinnerComponent } from '../progress-spinner';\nimport { ImageComponent } from './image.component';\n\n@NgModule({\n declarations: [ImageComponent],\n exports: [ImageComponent],\n imports: [\n CommonModule,\n AngularSvgIconModule.forRoot(),\n ProgressSpinnerComponent,\n ],\n providers: [provideHttpClient(withInterceptorsFromDi())],\n})\nexport class ImageModule {}\n","export { ImageModule } from './image.module';\nexport { ImageComponent } from './image.component';\nexport { ImageInfo } from './image.types';\n","export * from './language-utils';\nexport * from './language.module';\nexport * from './language.service';\nexport * from './language.types';\n","import { Direction, Directionality } from '@angular/cdk/bidi';\n\nexport const RTL_LANGUAGES = [\n 'ar',\n 'arc',\n 'dv',\n 'fa',\n 'ha',\n 'he',\n 'khw',\n 'ks',\n 'ku',\n 'ps',\n 'ur',\n 'yi',\n];\n\nexport function getDirection(lang: string): Direction {\n return RTL_LANGUAGES.includes(lang) ? 'rtl' : 'ltr';\n}\n\nexport function isRtl(dir: Directionality): boolean {\n return dir.value === 'rtl';\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, Inject, LOCALE_ID } from '@angular/core';\n\nimport { getDirection } from './language-utils';\n\n@Directive({\n selector: '[etnLanguage]',\n})\nexport class LanguageDirective {\n public constructor(\n @Inject(DOCUMENT) document: Document,\n @Inject(LOCALE_ID) public language: string,\n ) {\n document.dir = getDirection(language);\n document.documentElement.lang = language;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { LanguageDirective } from './language.directive';\nimport {\n LanguageService,\n MULTILANGUAGE_FALLBACK_MESSAGE,\n} from './language.service';\nimport { MultiLanguageFallback } from './language.types';\n\n@NgModule({\n declarations: [LanguageDirective],\n exports: [LanguageDirective],\n providers: [LanguageService],\n imports: [CommonModule],\n})\nexport class LanguageModule {\n public static forRoot(\n fallback: MultiLanguageFallback,\n ): ModuleWithProviders {\n return {\n ngModule: LanguageModule,\n providers: [\n {\n provide: MULTILANGUAGE_FALLBACK_MESSAGE,\n useValue: fallback,\n },\n ],\n };\n }\n}\n","import { Inject, Injectable, InjectionToken, LOCALE_ID } from '@angular/core';\nimport { castEnum } from '@core/enum';\nimport { isNotNil } from '@core/is-not-nil';\nimport { LanguageCode, MultiLanguage, Nil } from '@model';\nimport { first, get, isNil, keys } from 'lodash-es';\n\nimport { MultiLanguageFallback } from './language.types';\n\nexport const MULTILANGUAGE_FALLBACK_MESSAGE =\n new InjectionToken('');\n\n@Injectable()\nexport class LanguageService {\n public constructor(\n @Inject(LOCALE_ID) private locale: string,\n @Inject(MULTILANGUAGE_FALLBACK_MESSAGE)\n public fallback: MultiLanguageFallback,\n ) {}\n\n public getLanguage(): LanguageCode {\n return (\n castEnum(LanguageCode, this.locale.substring(0, 2)) ||\n LanguageCode.English\n );\n }\n\n public getValue(value: MultiLanguage | Nil): string {\n if (isNil(value)) {\n return '-';\n }\n\n const name = value[this.getLanguage()];\n\n if (isNil(name)) {\n if (isNotNil(this.fallback)) {\n return this.fallback(this.getLanguage());\n }\n\n const key = first(keys(value));\n if (isNil(key)) {\n return '';\n }\n return get(value, key, '');\n }\n return name;\n }\n}\n","import { LanguageCode } from '@model';\n\nexport type MultiLanguageFallback = (language: LanguageCode) => string;\n","export * from './list-item-tag/list-item-tag.component';\nexport * from './list-item.component';\nexport * from './list-item.types';\nexport * from './separator/list-item-separator.component';\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { ListItemTagModule } from '@brightlayer-ui/angular-components';\nimport { Nil } from '@model';\nimport { isNil } from 'lodash-es';\n\nimport { TagColor } from '../list-item.types';\n\n@Component({\n selector: 'etn-list-item-tag',\n templateUrl: './list-item-tag.component.html',\n styleUrls: ['./list-item-tag.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ListItemTagModule],\n})\nexport class ListItemTagComponent {\n @HostBinding('class')\n @Input()\n public color: TagColor | Nil;\n\n @Input() public set label(label: string | number | Nil) {\n this.text = isNil(label) ? ' ' : `${label}`;\n }\n\n public text = ' ';\n}\n"," \n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { InfoListItemModule } from '@brightlayer-ui/angular-components';\nimport { Nil } from '@model';\nimport { Action, ActionComponent } from '@ui/action';\nimport { Icon, IconComponent, IconSize } from '@ui/icon';\n\nimport { ListItemDivider, ListItemStatusColor } from './list-item.types';\n\n@Component({\n selector: 'etn-list-item',\n templateUrl: './list-item.component.html',\n styleUrls: ['./list-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ActionComponent, CommonModule, IconComponent, InfoListItemModule],\n})\nexport class ListItemComponent {\n @Input() public icon: Icon | Nil;\n @Input() public action: Action | Nil;\n @Input() public chevronIcon: Icon | Nil = {\n name: 'chevron_right',\n size: IconSize.Default,\n };\n @Input() public dense = false;\n @Input() public customIcon: boolean | Nil;\n @Input() public divider: ListItemDivider | Nil;\n @Input() public statusColor: ListItemStatusColor | Nil;\n\n @HostBinding('class.active')\n @Input()\n public active: boolean | Nil;\n\n @HostBinding('class.flexible-height')\n @Input()\n public flexibleHeight: boolean | Nil = false;\n\n @HostBinding('class.bottom-divider')\n @Input()\n public bottomDivider = true;\n\n @HostBinding('class.top-divider')\n @Input()\n public topDivider = false;\n\n @Input() public wrapSubtitle = false;\n\n public defaultIconSize: IconSize = IconSize.Default;\n\n public defaultDivider = ListItemDivider.Full;\n\n public get hasChevron(): boolean {\n return this.chevronIcon?.name === 'chevron_right';\n }\n}\n","@if (topDivider) {\n \n}\n\n @if (icon && !action) {\n \n }\n @if (action) {\n \n }\n @if (!action && !icon && customIcon) {\n \n \n \n }\n
\n \n
\n
\n \n
\n
\n \n @if (chevronIcon) {\n \n }\n
\n\n","export enum ListItemDivider {\n Full = 'full',\n Partial = 'partial',\n}\n\nexport enum TagColor {\n Blue = 'blue',\n Gray = 'gray',\n Green = 'green',\n LightBlue = 'light-blue',\n LightGray = 'light-gray',\n LightGreen = 'light-green',\n Orange = 'orange',\n Purple = 'purple',\n Red = 'red',\n White = 'white',\n Yellow = 'yellow',\n}\n\nexport enum ListItemStatusColor {\n Primary = '#007bc1',\n Accent = '#0088f2',\n Warn = '#ca3c3d',\n Red = '#ca3c3d',\n Green = '#39b620',\n Gold = '#f0aa1f',\n Purple = '#983fef',\n Gray = '#727e84',\n Sky = '#e0eff8',\n Blue = '#007bc1',\n Yellow = '#f0cb2f',\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'etn-list-item-separator',\n templateUrl: './list-item-separator.component.html',\n styleUrls: ['./list-item-separator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class ListItemSeparatorComponent {}\n","export { LottieAnimationComponent } from './lottie-animation.component';\nexport { provideLottieAnimation } from './lottie-animation.provider';\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Nil } from '@model';\nimport { AnimationOptions, LottieComponent } from 'ngx-lottie';\n\n@Component({\n standalone: true,\n selector: 'etn-lottie-animation',\n templateUrl: './lottie-animation.component.html',\n imports: [LottieComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LottieAnimationComponent {\n @Input() public set animationPath(path: string | Nil) {\n this.options = {\n path: `${path}`,\n };\n }\n @Input() public set animationWidth(width: number | Nil) {\n this.width = `${width}px`;\n }\n @Input() public set animationHeight(height: number | Nil) {\n this.height = `${height}px`;\n }\n\n public options: AnimationOptions = {\n path: '',\n };\n public width = '';\n public height = '';\n}\n","\n","import {\n EnvironmentProviders,\n Provider,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { provideLottieOptions } from 'ngx-lottie';\n\nexport function playerFactory() {\n return import('lottie-web');\n}\nexport function provideLottieAnimation(): EnvironmentProviders {\n const providers: Provider[] = [\n provideLottieOptions({ player: playerFactory }),\n ];\n return makeEnvironmentProviders(providers);\n}\n","export * from './notification.component';\nexport * from './notification.service';\nexport * from './notification.types';\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\nimport { Nil } from '@model';\nimport { Toast } from 'ngx-toastr';\n\nimport { Action, ActionComponent } from '../action';\nimport { IconComponent, IconName, IconSize } from '../icon';\n\n@Component({\n selector: 'etn-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.scss'],\n standalone: true,\n imports: [CommonModule, IconComponent, ActionComponent],\n})\nexport class NotificationComponent extends Toast implements OnInit {\n public iconName: IconName | Nil;\n public iconSize: IconSize = IconSize.Medium;\n\n public action: Action | Nil;\n\n public ngOnInit(): void {\n if (this.toastClasses.startsWith('toast-success')) {\n this.iconName = 'check_circle';\n } else if (this.toastClasses.startsWith('toast-error')) {\n this.iconName = 'cancel';\n } else if (this.toastClasses.startsWith('toast-info')) {\n this.iconName = 'info';\n } else if (this.toastClasses.startsWith('toast-warning')) {\n this.iconName = 'error';\n }\n }\n}\n","\n @if (iconName) {\n
\n \n
\n }\n
\n @if (title) {\n
\n {{ title }}\n
\n }\n @if (message && options.enableHtml) {\n
\n }\n @if (message && !options.enableHtml) {\n \n {{ message }}\n \n }\n \n @if (action) {\n
\n \n
\n }\n\n@if (options.progressBar) {\n
\n
\n
\n}\n","import { Injectable } from '@angular/core';\nimport { isNotNil } from '@core/is-not-nil';\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\n\nimport { NotificationConfig, NotificationPosition } from './notification.types';\n\nexport const DEFAULT_OPTIONS: Partial = {\n progressBar: true,\n positionClass: NotificationPosition.BottomCenter,\n timeOut: 2_500,\n};\n\n@Injectable()\nexport class NotificationService {\n public constructor(private toastr: ToastrService) {}\n\n public notifyError(\n message: string,\n title?: string,\n options?: Partial,\n ): void {\n const toast = this.toastr.error(message, title, this.getOptions(options));\n toast.portal.instance.action = options?.action;\n }\n\n public notifySuccess(\n message: string,\n title?: string,\n options?: Partial,\n ): void {\n const toast = this.toastr.success(message, title, this.getOptions(options));\n toast.portal.instance.action = options?.action;\n }\n\n public notifyWarning(\n message: string,\n title?: string,\n options?: Partial,\n ): void {\n const toast = this.toastr.warning(message, title, this.getOptions(options));\n toast.portal.instance.action = options?.action;\n }\n\n public notifyInfo(\n message: string,\n title?: string,\n options?: Partial,\n ): void {\n const toast = this.toastr.info(message, title, this.getOptions(options));\n toast.portal.instance.action = options?.action;\n }\n\n private getOptions(\n options?: Partial,\n ): Partial {\n return {\n ...DEFAULT_OPTIONS,\n disableTimeOut: isNotNil(options?.action),\n positionClass: options?.position || DEFAULT_OPTIONS.positionClass,\n timeOut: options?.timeOut || DEFAULT_OPTIONS.timeOut,\n };\n }\n}\n","import { Action } from '../action';\n\nexport enum NotificationPosition {\n TopLeft = 'toast-top-left',\n TopCenter = 'toast-top-center',\n TopRight = 'toast-top-right',\n BottomLeft = 'toast-bottom-left',\n BottomCenter = 'toast-bottom-center',\n BottomRight = 'toast-bottom-right',\n}\n\nexport interface NotificationConfig {\n position: NotificationPosition;\n action: Action;\n timeOut: number;\n}\n","export * from './progress-spinner.component';\nexport * from './progress-spinner.types';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner';\n\nimport {\n ProgressSpinnerPosition,\n ProgressSpinnerSize,\n} from './progress-spinner.types';\n\n@Component({\n selector: 'etn-progress-spinner',\n templateUrl: './progress-spinner.component.html',\n styleUrls: ['./progress-spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [MatProgressSpinnerModule, CommonModule],\n})\nexport class ProgressSpinnerComponent {\n @HostBinding('class')\n @Input()\n public size = ProgressSpinnerSize.Medium;\n\n @HostBinding('style.justify-content')\n @Input()\n public align = ProgressSpinnerPosition.Center;\n}\n","\n","export enum ProgressSpinnerSize {\n Medium = 'medium',\n Small = 'small',\n}\n\nexport enum ProgressSpinnerPosition {\n Left = 'left',\n Right = 'right',\n Center = 'center',\n}\n","export * from './save-trap.component';\nexport * from './save-trap.guard';\nexport * from './save-trap.provider';\nexport * from './save-trap.service';\n","import {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n} from '@angular/core';\n\nimport { SaveTrapService } from './save-trap.service';\n\n@Component({\n selector: 'etn-save-trap',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class SaveTrapComponent {\n public constructor(private service: SaveTrapService) {}\n\n @HostListener('window:beforeunload')\n public canDeactivate(): boolean {\n return this.service.isPristine();\n }\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn } from '@angular/router';\n\nimport { SAVE_TRAP_MESSAGE } from './save-trap.provider';\nimport { SaveTrapService } from './save-trap.service';\n\nexport const saveTrapGuard: CanActivateFn = () => {\n const message = inject(SAVE_TRAP_MESSAGE);\n const service = inject(SaveTrapService);\n\n if (service.isPristine()) {\n return true;\n }\n\n const canDeactivate = confirm(message);\n\n if (canDeactivate) {\n service.markAsPristine();\n }\n\n return canDeactivate;\n};\n","import {\n EnvironmentProviders,\n InjectionToken,\n Provider,\n makeEnvironmentProviders,\n} from '@angular/core';\n\nimport { SaveTrapService } from './save-trap.service';\n\nexport const SAVE_TRAP_MESSAGE = new InjectionToken('');\n\nexport function provideSaveTrap(message: string): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: SAVE_TRAP_MESSAGE,\n useValue: message,\n },\n SaveTrapService,\n ];\n return makeEnvironmentProviders(providers);\n}\n","import { Injectable } from '@angular/core';\nimport { Nil } from '@model';\nimport { every, isNil } from 'lodash-es';\n\n@Injectable()\nexport class SaveTrapService {\n public constructor() {\n console.log('save trap servce instance created');\n }\n\n private pristine = true;\n\n public markAsDirty(): void {\n this.pristine = false;\n }\n\n public markAsPristine(): void {\n this.pristine = true;\n }\n\n public isPristine(): boolean {\n return this.pristine;\n }\n\n public setPristine(...forms: (any | Nil)[]): void {\n this.pristine = every(forms, (form) => {\n return isNil(form) || form.formGroup.pristine;\n });\n }\n}\n","export { TimeLineComponent } from './time-line.component';\nexport * from './time-line.provider';\nexport * from './time-line.types';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n inject,\n} from '@angular/core';\nimport { isNotNil } from '@core/is-not-nil';\nimport { FullCalendarModule } from '@fullcalendar/angular';\nimport {\n CalendarOptions,\n EventClickArg,\n EventHoveringArg,\n EventInput,\n} from '@fullcalendar/core';\nimport { VerboseFormattingArg } from '@fullcalendar/core/internal';\nimport { ResourceInput } from '@fullcalendar/resource';\nimport resourceTimelinePlugin from '@fullcalendar/resource-timeline';\nimport rrulePlugin from '@fullcalendar/rrule';\nimport { Nil } from '@model';\nimport { TooltipPosition } from '@ui/tooltip/tooltip.types';\nimport * as moment from 'moment-timezone';\n\nimport { SCHEDULER_LICENSE_KEY } from './time-line.provider';\nimport { Resource, ResourceEvent } from './time-line.types';\n\n@Component({\n selector: 'etn-time-line',\n templateUrl: './time-line.component.html',\n styleUrls: ['./time-line.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, FullCalendarModule],\n})\nexport class TimeLineComponent implements OnChanges {\n public constructor() {\n this.licenseKey = inject(SCHEDULER_LICENSE_KEY);\n }\n\n @Input() public headerTitle: string | Nil;\n @Input() public resources: Resource[] | Nil;\n @Input() public events: ResourceEvent[] | Nil;\n @Input() public nowIndicatorDate: Date | Nil;\n @Input() public tooltipPosition: TooltipPosition = 'bottom';\n @Input() public timeFormat = 'HH:mm';\n\n @Output() public eventClick = new EventEmitter();\n\n private nowTimezone = moment()\n .tz(moment.tz.guess())\n .utcOffset(0, true)\n .toDate();\n\n private licenseKey: string;\n\n public calendarOptions: CalendarOptions = this.getCalendarOptions(null, null);\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (isNotNil(changes.nowIndicatorDate?.currentValue)) {\n this.nowTimezone = changes.nowIndicatorDate?.currentValue;\n }\n\n if (isNotNil(changes.resources) || isNotNil(changes.events)) {\n this.calendarOptions = this.getCalendarOptions(\n this.resources,\n this.events,\n );\n }\n }\n\n public getCalendarOptions(\n rows: Resource[] | Nil,\n items: ResourceEvent[] | Nil,\n ): CalendarOptions {\n return {\n initialView: 'resourceTimeline',\n plugins: [resourceTimelinePlugin, rrulePlugin],\n nowIndicator: true,\n now: this.nowTimezone,\n headerToolbar: false,\n footerToolbar: false,\n editable: true,\n selectable: false,\n eventMinHeight: 50,\n schedulerLicenseKey: this.licenseKey,\n slotEventOverlap: true,\n resourceAreaWidth: 210,\n height: 'auto',\n timeZone: 'UTC',\n slotLabelFormat: (arg: VerboseFormattingArg) => {\n return moment(arg.date.marker).utc().format(this.timeFormat);\n },\n scrollTime: {\n hours: 9,\n },\n slotLabelInterval: {\n hours: 2,\n },\n resources: (rows ?? []).map((r) => {\n return this.getResource(r);\n }),\n events: (items ?? []).map((e) => {\n return this.getEvent(e);\n }),\n eventMouseEnter: (info: EventHoveringArg) => {\n info.el.setAttribute('title', info.event.extendedProps.tooltip);\n },\n eventClick: ($event: EventClickArg) => {\n const e = (items ?? []).find((x) => {\n return x.id === $event.event.id;\n });\n if (isNotNil(e)) {\n this.eventClick.emit(e);\n }\n },\n };\n }\n\n private getResource(value: Resource): ResourceInput {\n return {\n id: value.id,\n title: value.name,\n nowIndicator: true,\n eventClassNames: value.color,\n };\n }\n\n public getEvent(e: ResourceEvent): EventInput {\n let item: EventInput = {\n id: e.id,\n resourceId: e.resourceId,\n title: e.name,\n extendedProps: {\n description: e.description,\n tooltip: e.tooltip,\n },\n classNames: e.color,\n };\n\n if (e.rrule && e.duration) {\n item.rrule = e.rrule;\n item.duration = e.duration;\n } else if (e.start && e.end) {\n item.start = e.start;\n item.end = e.end;\n }\n\n return item;\n }\n}\n","\n {{ headerTitle }}\n \n \n
\n {{ arg.fieldValue }}\n
\n \n
\n \n \n \n \n
\n
\n {{ arg.event.extendedProps.description }}\n
\n
\n {{ arg.event.title }}\n
\n
\n
\n
\n","import {\n EnvironmentProviders,\n InjectionToken,\n Provider,\n makeEnvironmentProviders,\n} from '@angular/core';\n\nexport const SCHEDULER_LICENSE_KEY = new InjectionToken('');\n\nexport function provideTimeLineKey(licenseKey: string): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: SCHEDULER_LICENSE_KEY,\n useValue: licenseKey,\n },\n ];\n return makeEnvironmentProviders(providers);\n}\n","import { Nil } from '@model';\n\nexport interface Resource {\n id: string;\n name: string;\n color: TimeLineColor;\n}\n\nexport interface ResourceEvent {\n id: string;\n name: string;\n start?: Date | Nil;\n end?: Date | Nil;\n resourceId: string;\n color: TimeLineColor;\n description: string;\n tooltip: string;\n rrule?: string | Nil;\n duration?: number | Nil;\n}\n\nexport enum TimeLineColor {\n Accent = 'accent',\n Primary = 'primary',\n PrimaryContrast = 'primary-contrast',\n Grey = 'grey',\n Disabled = 'disabled',\n Warn = 'warn',\n Green = 'green',\n Red = 'red',\n Blue = 'blue',\n LightBlue = 'light-blue',\n Orange = 'orange',\n}\n","import {\n Overlay,\n OverlayPositionBuilder,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnInit,\n} from '@angular/core';\nimport { Nil } from '@model';\nimport { isNil } from 'lodash-es';\n\nimport { TooltipComponent } from './tooltip.component';\n\n@Directive({ selector: '[etnFocusTooltip]' })\nexport class FocusTooltipDirective implements OnInit {\n public constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef,\n ) {}\n\n @Input('etnFocusTooltip') public text = '';\n\n private overlayRef: OverlayRef | Nil;\n\n @HostListener('focus')\n public show() {\n if (isNil(this.overlayRef) || isNil(this.text)) {\n return;\n }\n\n const tooltipRef = this.overlayRef.attach(\n new ComponentPortal(TooltipComponent),\n );\n\n tooltipRef.instance.text = this.text;\n }\n\n @HostListener('blur')\n public hide() {\n this.overlayRef?.detach();\n }\n\n public ngOnInit(): void {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions([\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 24,\n },\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n });\n }\n}\n","export * from './tooltip.module';\nexport * from './tooltip.types';\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\nimport { Nil } from '@model';\n\nimport { TooltipPosition } from './tooltip.types';\n\n@Component({\n selector: 'etn-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('tooltip', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate(300, style({ opacity: 1 })),\n ]),\n transition(':leave', [animate(300, style({ opacity: 0 }))]),\n ]),\n ],\n})\nexport class TooltipComponent {\n @Input() public text: string | Nil;\n @Input() public set position(data: TooltipPosition) {\n this.tooltipPosition = data;\n }\n\n @HostBinding('class') public tooltipClasses =\n 'animate__animated animate__zoomIn';\n\n public tooltipPosition: TooltipPosition = 'right';\n}\n","
\n
\n
\n {{ text }}\n
\n
\n","import {\n Overlay,\n ScrollDispatcher,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport {\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Optional,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { AriaDescriber, FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n MAT_LEGACY_TOOLTIP_DEFAULT_OPTIONS,\n MAT_LEGACY_TOOLTIP_SCROLL_STRATEGY,\n MatLegacyTooltip,\n MatLegacyTooltipDefaultOptions,\n} from '@angular/material/legacy-tooltip';\nimport { isNotNil } from '@core/is-not-nil';\nimport { Nil } from '@model';\nimport { TooltipPosition } from './tooltip.types';\nimport { MAT_TOOLTIP_POSITIONS, TOOLTIP_POSITIONS } from './tooltip.utils';\n\n@Directive({\n selector: '[etnTooltip]',\n exportAs: 'etnTooltip',\n})\nexport class TooltipDirective extends MatLegacyTooltip {\n public constructor(\n overlay: Overlay,\n elementRef: ElementRef,\n scrollDispatcher: ScrollDispatcher,\n viewContainerRef: ViewContainerRef,\n ngZone: NgZone,\n platform: Platform,\n ariaDescriber: AriaDescriber,\n focusMonitor: FocusMonitor,\n @Inject(MAT_LEGACY_TOOLTIP_SCROLL_STRATEGY)\n scrollStrategy: ScrollStrategy,\n dir: Directionality,\n @Optional()\n @Inject(MAT_LEGACY_TOOLTIP_DEFAULT_OPTIONS)\n defaultOptions: MatLegacyTooltipDefaultOptions,\n @Inject(DOCUMENT) document: any,\n ) {\n super(\n overlay,\n elementRef,\n scrollDispatcher,\n viewContainerRef,\n ngZone,\n platform,\n ariaDescriber,\n focusMonitor,\n scrollStrategy,\n dir,\n defaultOptions,\n document,\n );\n }\n\n @Input('etnTooltip')\n public get text(): string | Nil {\n return this.message;\n }\n\n public set text(value: string | Nil) {\n this.message = value ?? '';\n }\n\n @Input('etnTooltipPosition')\n public get location(): TooltipPosition {\n return TOOLTIP_POSITIONS[this.position];\n }\n\n public set location(value: TooltipPosition | Nil) {\n if (isNotNil(value)) {\n this.position = MAT_TOOLTIP_POSITIONS[value];\n this.tooltipClass = value;\n }\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MatLegacyTooltipModule } from '@angular/material/legacy-tooltip';\nimport { FocusTooltipDirective } from './focus-tooltip.directive';\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [TooltipComponent, TooltipDirective, FocusTooltipDirective],\n exports: [TooltipDirective, FocusTooltipDirective],\n imports: [CommonModule, OverlayModule, MatLegacyTooltipModule],\n})\nexport class TooltipModule {}\n","export type TooltipPosition = 'right' | 'left' | 'top' | 'bottom';\n\nexport type OriginXPosition = 'end' | 'start' | 'center';\n\nexport type OriginYPosition = 'top' | 'bottom' | 'center';\n\nexport interface OriginOverlayPosition {\n originX: OriginXPosition;\n originY: OriginYPosition;\n overlayX: OriginXPosition;\n overlayY: OriginYPosition;\n}\n\nexport type TooltipOriginPosition = Record<\n TooltipPosition,\n OriginOverlayPosition\n>;\n","import { TooltipPosition as MatTooltipPosition } from '@angular/material/tooltip';\nimport { TooltipOriginPosition, TooltipPosition } from './tooltip.types';\n\nexport const tooltipPositionsData: TooltipOriginPosition = {\n right: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n left: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n};\n\nexport const MAT_TOOLTIP_POSITIONS: Record<\n TooltipPosition,\n MatTooltipPosition\n> = {\n ['left']: 'left',\n ['right']: 'right',\n ['top']: 'above',\n ['bottom']: 'below',\n};\n\nexport const TOOLTIP_POSITIONS: Record = {\n ['left']: 'left',\n ['right']: 'right',\n ['above']: 'top',\n ['below']: 'bottom',\n ['before']: 'top',\n ['after']: 'bottom',\n};\n","var map = {\n\t\"./af\": 85637,\n\t\"./af.js\": 85637,\n\t\"./ar\": 6777,\n\t\"./ar-dz\": 74508,\n\t\"./ar-dz.js\": 74508,\n\t\"./ar-kw\": 67504,\n\t\"./ar-kw.js\": 67504,\n\t\"./ar-ly\": 95373,\n\t\"./ar-ly.js\": 95373,\n\t\"./ar-ma\": 92412,\n\t\"./ar-ma.js\": 92412,\n\t\"./ar-ps\": 78823,\n\t\"./ar-ps.js\": 78823,\n\t\"./ar-sa\": 36670,\n\t\"./ar-sa.js\": 36670,\n\t\"./ar-tn\": 36448,\n\t\"./ar-tn.js\": 36448,\n\t\"./ar.js\": 6777,\n\t\"./az\": 23009,\n\t\"./az.js\": 23009,\n\t\"./be\": 28299,\n\t\"./be.js\": 28299,\n\t\"./bg\": 4685,\n\t\"./bg.js\": 4685,\n\t\"./bm\": 11171,\n\t\"./bm.js\": 11171,\n\t\"./bn\": 23590,\n\t\"./bn-bd\": 5841,\n\t\"./bn-bd.js\": 5841,\n\t\"./bn.js\": 23590,\n\t\"./bo\": 54309,\n\t\"./bo.js\": 54309,\n\t\"./br\": 54130,\n\t\"./br.js\": 54130,\n\t\"./bs\": 8033,\n\t\"./bs.js\": 8033,\n\t\"./ca\": 55294,\n\t\"./ca.js\": 55294,\n\t\"./cs\": 53028,\n\t\"./cs.js\": 53028,\n\t\"./cv\": 5807,\n\t\"./cv.js\": 5807,\n\t\"./cy\": 70342,\n\t\"./cy.js\": 70342,\n\t\"./da\": 38269,\n\t\"./da.js\": 38269,\n\t\"./de\": 11489,\n\t\"./de-at\": 42123,\n\t\"./de-at.js\": 42123,\n\t\"./de-ch\": 17757,\n\t\"./de-ch.js\": 17757,\n\t\"./de.js\": 11489,\n\t\"./dv\": 28152,\n\t\"./dv.js\": 28152,\n\t\"./el\": 7687,\n\t\"./el.js\": 7687,\n\t\"./en-au\": 46668,\n\t\"./en-au.js\": 46668,\n\t\"./en-ca\": 76798,\n\t\"./en-ca.js\": 76798,\n\t\"./en-gb\": 53615,\n\t\"./en-gb.js\": 53615,\n\t\"./en-ie\": 91364,\n\t\"./en-ie.js\": 91364,\n\t\"./en-il\": 79907,\n\t\"./en-il.js\": 79907,\n\t\"./en-in\": 70533,\n\t\"./en-in.js\": 70533,\n\t\"./en-nz\": 33190,\n\t\"./en-nz.js\": 33190,\n\t\"./en-sg\": 51096,\n\t\"./en-sg.js\": 51096,\n\t\"./eo\": 3962,\n\t\"./eo.js\": 3962,\n\t\"./es\": 37726,\n\t\"./es-do\": 65010,\n\t\"./es-do.js\": 65010,\n\t\"./es-mx\": 63654,\n\t\"./es-mx.js\": 63654,\n\t\"./es-us\": 81424,\n\t\"./es-us.js\": 81424,\n\t\"./es.js\": 37726,\n\t\"./et\": 25343,\n\t\"./et.js\": 25343,\n\t\"./eu\": 90728,\n\t\"./eu.js\": 90728,\n\t\"./fa\": 60787,\n\t\"./fa.js\": 60787,\n\t\"./fi\": 71771,\n\t\"./fi.js\": 71771,\n\t\"./fil\": 45335,\n\t\"./fil.js\": 45335,\n\t\"./fo\": 69761,\n\t\"./fo.js\": 69761,\n\t\"./fr\": 1670,\n\t\"./fr-ca\": 28991,\n\t\"./fr-ca.js\": 28991,\n\t\"./fr-ch\": 97280,\n\t\"./fr-ch.js\": 97280,\n\t\"./fr.js\": 1670,\n\t\"./fy\": 24203,\n\t\"./fy.js\": 24203,\n\t\"./ga\": 69858,\n\t\"./ga.js\": 69858,\n\t\"./gd\": 38605,\n\t\"./gd.js\": 38605,\n\t\"./gl\": 27365,\n\t\"./gl.js\": 27365,\n\t\"./gom-deva\": 33896,\n\t\"./gom-deva.js\": 33896,\n\t\"./gom-latn\": 95587,\n\t\"./gom-latn.js\": 95587,\n\t\"./gu\": 97950,\n\t\"./gu.js\": 97950,\n\t\"./he\": 92029,\n\t\"./he.js\": 92029,\n\t\"./hi\": 51897,\n\t\"./hi.js\": 51897,\n\t\"./hr\": 29816,\n\t\"./hr.js\": 29816,\n\t\"./hu\": 22253,\n\t\"./hu.js\": 22253,\n\t\"./hy-am\": 28196,\n\t\"./hy-am.js\": 28196,\n\t\"./id\": 51307,\n\t\"./id.js\": 51307,\n\t\"./is\": 95474,\n\t\"./is.js\": 95474,\n\t\"./it\": 23099,\n\t\"./it-ch\": 45807,\n\t\"./it-ch.js\": 45807,\n\t\"./it.js\": 23099,\n\t\"./ja\": 19127,\n\t\"./ja.js\": 19127,\n\t\"./jv\": 30182,\n\t\"./jv.js\": 30182,\n\t\"./ka\": 10758,\n\t\"./ka.js\": 10758,\n\t\"./kk\": 93444,\n\t\"./kk.js\": 93444,\n\t\"./km\": 72034,\n\t\"./km.js\": 72034,\n\t\"./kn\": 46223,\n\t\"./kn.js\": 46223,\n\t\"./ko\": 83064,\n\t\"./ko.js\": 83064,\n\t\"./ku\": 8714,\n\t\"./ku-kmr\": 10961,\n\t\"./ku-kmr.js\": 10961,\n\t\"./ku.js\": 8714,\n\t\"./ky\": 12062,\n\t\"./ky.js\": 12062,\n\t\"./lb\": 84796,\n\t\"./lb.js\": 84796,\n\t\"./lo\": 19279,\n\t\"./lo.js\": 19279,\n\t\"./lt\": 106,\n\t\"./lt.js\": 106,\n\t\"./lv\": 11840,\n\t\"./lv.js\": 11840,\n\t\"./me\": 42240,\n\t\"./me.js\": 42240,\n\t\"./mi\": 13588,\n\t\"./mi.js\": 13588,\n\t\"./mk\": 15518,\n\t\"./mk.js\": 15518,\n\t\"./ml\": 37823,\n\t\"./ml.js\": 37823,\n\t\"./mn\": 98657,\n\t\"./mn.js\": 98657,\n\t\"./mr\": 61285,\n\t\"./mr.js\": 61285,\n\t\"./ms\": 43014,\n\t\"./ms-my\": 86253,\n\t\"./ms-my.js\": 86253,\n\t\"./ms.js\": 43014,\n\t\"./mt\": 20167,\n\t\"./mt.js\": 20167,\n\t\"./my\": 47940,\n\t\"./my.js\": 47940,\n\t\"./nb\": 50014,\n\t\"./nb.js\": 50014,\n\t\"./ne\": 49023,\n\t\"./ne.js\": 49023,\n\t\"./nl\": 34208,\n\t\"./nl-be\": 71412,\n\t\"./nl-be.js\": 71412,\n\t\"./nl.js\": 34208,\n\t\"./nn\": 81354,\n\t\"./nn.js\": 81354,\n\t\"./oc-lnc\": 40870,\n\t\"./oc-lnc.js\": 40870,\n\t\"./pa-in\": 80389,\n\t\"./pa-in.js\": 80389,\n\t\"./pl\": 7342,\n\t\"./pl.js\": 7342,\n\t\"./pt\": 34774,\n\t\"./pt-br\": 73003,\n\t\"./pt-br.js\": 73003,\n\t\"./pt.js\": 34774,\n\t\"./ro\": 85333,\n\t\"./ro.js\": 85333,\n\t\"./ru\": 73451,\n\t\"./ru.js\": 73451,\n\t\"./sd\": 43921,\n\t\"./sd.js\": 43921,\n\t\"./se\": 59682,\n\t\"./se.js\": 59682,\n\t\"./si\": 80582,\n\t\"./si.js\": 80582,\n\t\"./sk\": 4348,\n\t\"./sk.js\": 4348,\n\t\"./sl\": 95337,\n\t\"./sl.js\": 95337,\n\t\"./sq\": 39358,\n\t\"./sq.js\": 39358,\n\t\"./sr\": 50683,\n\t\"./sr-cyrl\": 69382,\n\t\"./sr-cyrl.js\": 69382,\n\t\"./sr.js\": 50683,\n\t\"./ss\": 51156,\n\t\"./ss.js\": 51156,\n\t\"./sv\": 29855,\n\t\"./sv.js\": 29855,\n\t\"./sw\": 18536,\n\t\"./sw.js\": 18536,\n\t\"./ta\": 15373,\n\t\"./ta.js\": 15373,\n\t\"./te\": 37809,\n\t\"./te.js\": 37809,\n\t\"./tet\": 61297,\n\t\"./tet.js\": 61297,\n\t\"./tg\": 92527,\n\t\"./tg.js\": 92527,\n\t\"./th\": 85862,\n\t\"./th.js\": 85862,\n\t\"./tk\": 79331,\n\t\"./tk.js\": 79331,\n\t\"./tl-ph\": 44387,\n\t\"./tl-ph.js\": 44387,\n\t\"./tlh\": 3592,\n\t\"./tlh.js\": 3592,\n\t\"./tr\": 79732,\n\t\"./tr.js\": 79732,\n\t\"./tzl\": 99570,\n\t\"./tzl.js\": 99570,\n\t\"./tzm\": 83553,\n\t\"./tzm-latn\": 7699,\n\t\"./tzm-latn.js\": 7699,\n\t\"./tzm.js\": 83553,\n\t\"./ug-cn\": 25674,\n\t\"./ug-cn.js\": 25674,\n\t\"./uk\": 69974,\n\t\"./uk.js\": 69974,\n\t\"./ur\": 45773,\n\t\"./ur.js\": 45773,\n\t\"./uz\": 357,\n\t\"./uz-latn\": 77135,\n\t\"./uz-latn.js\": 77135,\n\t\"./uz.js\": 357,\n\t\"./vi\": 20043,\n\t\"./vi.js\": 20043,\n\t\"./x-pseudo\": 40767,\n\t\"./x-pseudo.js\": 40767,\n\t\"./yo\": 80150,\n\t\"./yo.js\": 80150,\n\t\"./zh-cn\": 21828,\n\t\"./zh-cn.js\": 21828,\n\t\"./zh-hk\": 86644,\n\t\"./zh-hk.js\": 86644,\n\t\"./zh-mo\": 79305,\n\t\"./zh-mo.js\": 79305,\n\t\"./zh-tw\": 31860,\n\t\"./zh-tw.js\": 31860\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 = 35358;"],"names":["inject","environment","mergeMap","take","AuthService","apiInterceptor","request","next","authService","url","startsWith","urls","api","auth$","pipe","auth","headers","set","csrfToken","clone","CommonModule","toSignal","RouterModule","isNotNil","filterNil","TrackingService","CookieConsentComponent","CookieConsentPosition","CookieConsentService","SaveTrapComponent","filter","map","tap","MESSAGES","checkUrlMatch","AUTH_URL_SEGMENT","LOGIN_URL_SEGMENT","CurrentUserService","i0","ɵɵelementStart","ɵɵlistener","AppComponent_Conditional_2_Template_etn_cookie_consent_accept_0_listener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","onAcceptCookies","currentUser","ɵɵelementEnd","ɵɵproperty","cookieConsentMessages","tmp_2_0","id","cookieConsents","cookieConsentPosition","AppComponent","constructor","currentUserService","trackingService","cookieConsentService","currentUser$","BottomRight","app","cookieConsent","name","analytics","accepted","cookiesNotAccepted$","hasConsentObservable","analyticsCookiesAccepted$","getCookieValueObservable","ngOnInit","Boolean","initialize","subscribe","ngAfterViewInit","fetchCurrentUser","triggerRefershTokenMechanism","consents","saveConsent","_","ɵɵdirectiveInject","i1","i2","i3","i4","_2","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","AppComponent_Template","rf","ctx","ɵɵelement","ɵɵtemplate","AppComponent_Conditional_2_Template","ɵɵadvance","ɵɵconditional","ɵɵpipeBind1","i5","AsyncPipe","i6","RouterOutlet","styles","changeDetection","LocationStrategy","provideHttpClient","withInterceptors","ErrorHandler","importProvidersFrom","provideAnimations","provideRouter","withRouterConfig","TrackingModule","EffectsModule","StoreRouterConnectingModule","StoreModule","StoreDevtoolsModule","AuthEffects","CurrentDeviceEffects","CurrentUserEffects","NotificationsEffects","StoreRouterEffects","DialogModule","FORM_FIELD_APPEARANCE","HIDE_REQUIRED_MARKER","LanguageModule","LanguageService","provideLottieAnimation","NotificationComponent","NotificationService","provideSaveTrap","provideTimeLineKey","ToastrModule","appRoutes","GlobalErrorHandler","PathPreserveQueryLocationStrategy","metaReducers","reducers","LayoutEffects","multiLanguageFallback","appConfig","providers","provide","useValue","useClass","paramsInheritanceStrategy","onSameUrlNavigation","saveTrap","confirm","forRoot","toastComponent","instrument","maxAge","googleTagManagerId","schedulerLicenseKey","NOT_FOUND_URL_SEGMENT","AuthGuard","path","loadChildren","_ref","_asyncToGenerator","loginAppRoutes","apply","arguments","_ref2","loginAppAuthRoutes","_ref3","bemsAppRoutes","canActivate","runGuardsAndResolvers","redirectTo","HttpClient","BemsApiService","LogoutResponseJsonSchema","RefreshTokenResponseJsonSchema","AuthApiService","httpClient","signOut","postWithoutPayload","endpoint","responseSchema","responseDeserializer","response","refreshToken","ɵɵinject","factory","ɵfac","providedIn","z","object","string","RefreshTokenResponseDetailsJsonSchema","exp","iat","details","HttpStatusCode","catchError","of","ZodError","PaginatedResultsJsonSchemaFactory","ErrorCode","post","payload","payloadSerializer","serializer","deserializer","parse","getApiErrorResponse","patch","put","postWithoutResponse","list","schema","get","results","items","options","deleteWithoutResponse","delete","getText","responseType","console","error","Error","status","Unauthorized","Forbidden","InternalServerError","ServiceUnavailable","NotFound","apiErrorResponse","apiErrors","errors","forEach","apiError","messages","message","code","CurrentUserIsSoleAdmin","has","size","number","total","previous","array","or","null","PaginatedSelectableResultsJsonSchemaFactory","prev","selectedPos","AssetJsonSchemaFactory","assetName","timestamp","isOnline","boolean","noData","assetCategory","assetDetails","isApiErrorResponse","BillingPeriod","PeakShavingStatus","Month","AdvancedPeakShavingHistoryJsonSchema","DeviceSettingsJsonSchema","serializeDeviceSettings","DeviceUserRoleJsonSchema","DeviceJsonSchema","GridSettingsJsonSchema","GridSettingsWithCurrencyJsonSchema","deserializeGridSettings","serializeGridSettings","WeatherJsonSchema","DevicesApiService","getDevices","getDevice","getDeviceSettings","getDeviceWeather","saveDeviceSettings","deviceSettings","deviceName","countryId","currencyId","postalCodeId","systemGoal","getGridSettings","model","saveGridSettings","settings","getAdvancedPeakShavingHistory","getAdvancedPeakShavingConfiguration","peakShavingEnabled","peakShavingStatus","Active","billingPeriod","Yearly","monthlyConfiguration","year","month","January","limit","read","unit","closed","February","March","yearlyConfiguration","getUserRole","role","MonthlyHistoryJsonSchema","YearlyHistoryJsonSchema","monthlyHistory","yearlyHistory","IdJsonSchema","isNil","CurrencyJsonSchema","CountryInfoJsonSchema","TimezoneJsonSchema","timezone","dstOffset","rawOffset","PostalCodeInfoJsonSchema","PaginatedSelectableResultsJsonSchema","PaginatedPostalCodeInfoJsonSchema","LobbyViewUrlJsonSchema","isActive","optional","deviceId","countryInfo","postalCodeInfo","gridSupplierCurrency","lobbyView","country","getSelectableResultName","getSelectableResultId","postalCode","getPostalCode","currency","length","undefined","selectedPostalCode","extendedName","Role","nativeEnum","asset","family","hardware","macAddress","modelLongName","modelShortName","profileId","serial","software","vendor","getDateFromMilitaryTime","getMilitaryTime","ConsumptionRateType","RateTypes","GridConsumptionRateJsonSchema","type","start","end","tariff","consumptionRates","peak","find","x","Peak","offPeak","OffPeak","rateType","TwoRates","OneRate","startPeak","endPeak","tariffPeak","startOffPeak","endOffPeak","tariffOffPeak","push","TrendType","ValueTrendDataJsonSchema","value","trend","ValueTrendJsonSchema","day","ValueTrendsJsonSchema","gridNode","pvNode","selfSufficiencyNode","evChargerNode","energyCostsNode","TemperatureUnit","WeatherCode","temperature","weatherCode","LOCALE_ID","ValueTrendType","ValueTrendApiService","language","getValueTrendData","valueTrendsDeserializer","valueTrends","newGridNode","formatValue","GridNode","newPVNode","PvNode","SelfSufficiencyNode","newEvChargerNode","EvChargerNode","newEnergyCostsNode","EnergyCostsNode","node","dayValueNumber","Intl","NumberFormat","format","parseFloat","monthValueNumber","CountryJsonSchema","geonameId","isoAlpha2","isoAlpha3","isoAlphaNumeric","PaginatedCountryJsonSchema","symbol","PaginatedCurrencyJsonSchema","gmtOffset","CoordinatesJsonSchema","lat","lng","PostalCodeJsonSchema","coordinates","PaginatedPostalCodeJsonSchema","NotificationCountJsonSchema","critical","info","warning","NotificationSeverityLevel","NotificationJsonSchema","severityLevel","createdAt","isRead","NotificationsApiService","getNotificationCount","getNotifications","offset","pageSize","sortBy","sortOrder","Date","markAllNotificationsAsRead","notificationIDs","AuditLogFileNameJsonSchema","downloadPath","UserFileNameJsonSchema","uri","UserJsonSchema","UserProfileJsonSchema","user","DateFormat","LanguageCode","email","firstName","lastName","phoneNumber","acceptedEula","temperatureUnit","dateFormat","deserializeUser","UsersApiService","getUserProfile","getUserFileName","getAuditLogsFileName","getFile","filename","saveUserProfile","changePassword","oldPassword","newPassword","currentPassword","deleteAccount","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_MONTH","FIVE_MINUTES","ACCOUNT_URL_SEGMENT","ASSETS_URL_SEGMENT","DEVICES_URL_SEGMENT","CHANGE_PASSWORD_URL_SEGMENT","CHARTS_URL_SEGMENT","DASHBOARD_URL_SEGMENT","FORBIDDEN_URL_SEGMENT","EV_CHARGER_ID_URL_SEGMENT","EV_CHARGER_URL_SEGMENT","GENERAL_URL_SEGMENT","GRID_URL_SEGMENT","INVITATION_EXPIRED_URL_SEGMENT","INTERNAL_SERVER_ERROR_URL_SEGMENT","LICENSE_URL_SEGMENT","NO_DEVICE_URL_SEGMENT","PERSONAL_INFORMATION_URL_SEGMENT","DOWNLOADS_URL_SEGMENT","PREFERENCES_URL_SEGMENT","SCHEDULER_URL_SEGMENT","SERVICE_UNAVAILABLE_URL_SEGMENT","SESSION_EXPIRED_URL_SEGMENT","SETTINGS_URL_SEGMENT","SUPPORT_URL_SEGMENT","SYSTEM_GOALS_URL_SEGMENT","USERS_URL_SEGMENT","SOLAR_PANEL_URL_SEGMENT","STORAGE_UNIT_URL_SEGMENT","STORAGE_UNIT_ID_PARAM","POWER_METER_URL_SEGMENT","PERMISSIONS_URL_SEGMENT","INVITATIONS_URL_SEGMENT","DELETE_URL_SEGMENT","ACCEPT_URL_SEGMENT","LOBBY_VIEW_URL_SEGMENT","SOLAR_PANEL_ID_PARAM","ACCOUNT_CHANGE_PASSWORD_NAV_ITEM_ID","ACCOUNT_NAV_ITEM_ID","ACCOUNT_PERSONAL_INFORMATION_NAV_ITEM_ID","DOWNLOAD_ACCOUNT_INFORMATION_NAV_ITEM_ID","ACCOUNT_PREFERENCES_NAV_ITEM_ID","DELETE_ACCOUNT_NAV_ITEM_ID","ASSETS_NAV_ITEM_ID","CHARTS_NAV_ITEM_ID","DASHBOARD_NAV_ITEM_ID","SCHEDULER_NAV_ITEM_ID","SETTINGS_GENERAL_NAV_ITEM_ID","SETTINGS_GRID_NAV_ITEM_ID","SETTINGS_LICENSE_NAV_ITEM_ID","SETTINGS_NAV_ITEM_ID","SETTINGS_SUPPORT_NAV_ITEM_ID","SETTINGS_SYSTEM_GOALS_NAV_ITEM_ID","USERS_NAV_ITEM_ID","POWER_METER_ID_PARAM","CSRF_ACCESS_TOKEN","isEmpty","CookieService","NavigationService","cookie","navigationService","csrfAccessToken","navigateToLogin","CurrentDeviceService","combineLatest","currentDeviceGuard","currentDeviceService","device$","devices$","device","devices","navigateToDashboard","navigateToNoDevicePage","currentUserGuard","Router","Loading","isWithId","LayoutService","EULA_ACCEPT_PAGE_URL_SEGMENTS","EULA_PAGE_URL_SEGMENTS","ASSET_CATEGORY_ID_URL_SEGMENT","isRootRoute","router","layoutService","cookiesService","locale","redirectUrlName","navigateToRoot","navigate","redirect","includeRedirectUrl","redirectUrl","getCurrentUrl","window","location","href","updateCurrentLanguage","local","newUrl","replace","getRedirectUrl","navigateToAccount","navigateToEULAAccept","navigateToEULA","deviceOrId","fetchCurrentDevice","navigateToDevice","currentDeviceId","newDeviceId","navigateByUrl","toString","setLoading","App","navigateToAssets","navigateToAsset","categoryId","assetTypeSegment","navigateToAssetsCategory","queryParams","category","navigateToUsers","navigateToUser","permission","navigateToUsersInvitations","navigateToUserInvitation","invitation","navigateToScheduler","navigateToExpiredInvitation","navigateToSessionExpired","navigateToForbidden","navigateToNotFound","navigateToInternalServerError","includes","navigateToServiceUnavailable","pathname","search","nextUrl","queryParamsHandling","BemsAnimation","ANIMATION_TO_PATH","Expired","NoDevice","AssetCategoryType","AssetCategoryTypeId","AssetStatus","EnergyPointType","TagColor","ASSET_CATEGORY_TYPE_TRANSLATIONS","EvCharger","general","evCharger","PowerMeter","powerMeter","StorageUnit","storageUnit","SolarPanel","solarPanel","BinaryLoad","binaryLoad","ASSET_STATUS_TRANSLATIONS","Available","assetStatus","available","Charging","charging","Consuming","consuming","Disabled","disabled","Discharging","discharging","Enabled","enabled","Fault","faulted","Faulted","Finishing","finishing","Idle","idle","Initialising","initialising","Injecting","injecting","Offline","offline","Online","online","Preparing","preparing","Reserved","reserved","SuspendedEVSE","suspendedevse","Unavailable","unavailable","Unknown","unknown","ASSET_STATUS_TAG_COLORS","LightGreen","Blue","Orange","Red","Gray","LightBlue","STORAGE_UNIT_CHARGING_STATUS","ENERGY_POINT_TYPE_TO_ASSET_CATEGORY_TYPE_ID","Loads","StorageNode","BuildingPower","BuildingPowerConsumption","BuildingPowerProduction","EMPTY_DATA_SET_GENERATORS","convertDataToTimezone","getWattValueTransformer","mergeChartData","getBarChartData","chartDataField","date","color","negative","xAxisUnit","yAxisUnit","measured","forecast","daysInMonth","wattToGigaWatt","wattToKiloWatt","wattToMegaWatt","ChartDataFieldStep","ChartDataFieldUnit","ChartColor","XaxisUnit","addDays","moment","Hour","getEmptyDayData","Day","getEmptyBarMonthData","getEmptyBarYearData","startOfDay","setHours","now","addOffset","getTime","getTimezoneOffset","Array","fill","label","item","index","NaN","getDate","days","getMonth","getFullYear","firstDayOfTheMonth","getCurrentTimeVerticalLineAnnotation","step","FiveMinutes","setMinutes","Math","floor","getMinutes","isSameDate","otherDate","data","otherData","transformValue","predictive","cursorIndex","newData","y","getSolarRadiationAnnotations","dataSet","solarRadiation","minX","maxX","periodStart","periodEnd","Yellow","utcOffset","timezoneOffset","tz","DATA_CONVERTER","convertDateToTimezone","GigaWatt","GigaWattHour","MegaWatt","MegaWattHour","KiloWatt","KiloWattHour","Watt","defaultValue","WattHour","Percentage","CHART_DATA_FIELD_UNIT_TRANSLATIONS","energy","gWatt","gWh","mWatt","mWh","kWatt","kWh","watt","wh","getChartUnit","loads","sources","allUnits","fields","filed","dataUnit","concat","patternMap","Map","CHART_UNIT_ORDER","frequencyMap","reduce","acc","str","getDefaultUnitMap","maxFrequency","max","Object","values","mostFrequentElements","keys","key","sort","a","b","Infinity","first","getEula","eulas","eula","LANGUAGES_TRANSLATIONS","English","en","French","fr","German","de","Dutch","nl","Norwegian","no","findIndex","getLineChartData","fillForecastData","getMergedLineChartData","load","source","currentValue","field","i","isNaN","addNavigationToLink","containerId","link","document","getElementById","getElementsByTagName","addEventListener","event","preventDefault","isUserInvitationAcceptPage","parts","split","userUrlSegmentIndex","acceptUrlSegmentIndex","ROLES","Administrator","userRole","administrator","Reader","reader","ROLES_TRANSLATIONS","getData","route","property","isActivatedRoute","snapshot","getOptionalData","getChildPath","child","children","RegExp","test","getDeviceIdFromRoute","deviceRegEx","match","groups","getUrlWithoutLocalization","reg","exec","authUrls","join","getTimeInLocalFormat","kwhToWatt","parseNumber","EventActionFieldType","SchedulerEventActionType","TimeLineColor","secondsToMilliseconds","SCHEDULER_EVENT_ACTION_TYPE_TRANSLATIONS","EvPowerLimit","scheduler","eventActionType","evPowerLimit","TargetSoC","SCHEDULER_EVENT_ACTION_TYPE_WITH_ASSET_TRANSLATIONS","evPowerLimitAsset","targetSocAsset","SCHEDULER_EVENT_ACTION_FIELD_TYPE_TRANSLATIONS","Limit","eventActionFieldType","limitAmount","SoC","socAmount","SCHEDULER_EVENT_ACTION_FIELD_VALUE_CONVERTER","amount","ASSET_CATEGORY_TYPE_COLOR","Green","SCHEDULER_ACTION_TYPE_TO_FIELD_TYPE","getResourceEvent","categories","assetId","events","r","e","mapResourceEvent","eventDetails","assets","selectionFields","action","description","resourceId","tooltip","placeholder","startDate","endDate","duration","rrule","getSchedulerAssets","controllableAsset","v","mapAssetToResource","getSchedulerFieldFromActionType","DATE_FORMATS_TRANSLATIONS","Europe","europe","US","us","TEMPERATURES_TRANSLATIONS","Celsius","celsius","Fahrenheit","fahrenheit","yellow","WEATHER_CODE_TRANSLATIONS","Clear","weather","clear","Cloudy","cloudy","Drizzle","drizzle","Flurries","flurries","Fog","fog","FreezingDrizzle","freezingDrizzle","FreezingRain","freezingRain","HeavyFreezingRain","heavyFreezingRain","HeavyIcePellets","heavyIcePellets","HeavyRain","heavyRain","HeavySnow","heavySnow","IcePellets","icePellets","LightFog","lightFog","LightFreezingRain","lightFreezingRain","LightIcePellets","lightIcePellets","LightRain","lightRain","LightSnow","lightSnow","LightWind","lightWind","MostlyClear","mostlyClear","MostlyCloudy","mostlyCloudy","PartlyCloudy","partlyCloudy","Rain","rain","Snow","snow","StrongWind","strongWind","Thunderstorm","thunderstorm","Wind","wind","WEATHER_CODE_ICONS","WEATHER_CODE_COLOR","EVChargerStatus","ChartType","getSourceChart","charts","Source","getLoadChart","Load","getPerformanceMetricsChart","PerformanceMetrics","ChartDataLimitType","DataType","MeasureType","getPower","energyPoint","getProperty","getPowerValue","getPropertyValue","getPowerUnit","getPropertyUnit","getInstalledValue","getCriticalValue","getSocValue","getSocUnit","properties","endsWith","Number","EnergyPointConnection","EnergyPointUnit","ThresholdGranularity","isAdministrator","isReader","makeSchedulerEvent","partial","assetTypeId","from","until","actionId","maxPowerRate","stateOfCharge","makeChangePassword","confirmPassword","getUserDisplayName","HttpErrorResponse","Injector","NgZone","Subject","debounceTime","distinctUntilChanged","SaveTrapService","injector","errorSubject$","zone","run","handleApiError","handleError","production","httpErrorResponse","getHttpErrorResponse","isApiError","handleUnauthorizedError","handleForbiddenError","handleNotFoundError","markFormAsPristine","rejection","service","apiErrorMessage","DeviceNotFound","availableDevices","d","AssetNotFound","deviceRequired$","PermissionNotFound","AccessTokenExpired","EULANotAccepted","trapService","markAsPristine","LoginPortalApiService","LoginResponseJsonSchema","signIn","login","payloadDeserializer","responseSerializer","signUp","signup","recoverPassword","resetPassword","LoginResponseDetailsJsonSchema","LoginJsonSchema","password","PaginatedResultsJsonSchema","APPLICATIONS_URL_PARAMETER","APPLICATIONS_URL_SEGMENT","CREATE_URL_SEGMENT","ERROR_URL_SEGMENT","EULA_URL_SEGMENT","FLOW_URL_PARAMETER","FORGOT_PASSWORD_URL_SEGMENT","RESET_URL_SEGMENT","SUCCESS_URL_SEGMENT","VERIFY_EMAIL_URL_SEGMENT","EULA_PAGE_ROUTE_URL","EULA_ACCEPT_PAGE_URL","VERIFY_EMAIL_PAGE_ROUTE_URL","RESET_PASSWORD_PAGE_URL_SEGMENTS","RESET_PASSWORD_VERIFY_EMAIL_PAGE_ROUTER_LINK","RESET_PASSWORD_PAGE_ROUTE_URL","RESET_PASSWORD_SUCCESS_PAGE_ROUTE_URL","RESET_PASSWORD_SUCCESS_PAGE_URL_SEGMENTS","RESET_PASSWORD_ERROR_PAGE_ROUTE_URL","RESET_PASSWORD_ERROR_PAGE_URL_SEGMENTS","CREATE_ACCOUNT_VERIFY_EMAIL_PAGE_URL_SEGMENTS","CREATE_ACCOUNT_PAGE_URL_SEGMENTS","CREATE_ACCOUNT_SUCCESS_PAGE_URL_SEGMENTS","CREATE_ACCOUNT_ERROR_PAGE_URL_SEGMENTS","CREATE_ACCOUNT_PAGE_ROUTE_URL","CREATE_ACCOUNT_SUCCESS_PAGE_ROUTE_URL","CREATE_ACCOUNT_ERROR_PAGE_ROUTE_URL","AUTHORIZE_APPLICATION_PAGE_URL_SEGMENTS","AUTHORIZE_APPLICATION_PAGE_ROUTE_URL","AUTHORIZE_APPLICATION_ERROR_PAGE_ROUTE_URL","AUTHORIZE_APPLICATION_SUCCESS_PAGE_ROUTE_URL","APP_BASE_HREF","PathLocationStrategy","PlatformLocation","UrlSerializer","platformLocation","urlSerializer","_baseHref","prepareExternalUrl","internal","existingURLSearchParams","URLSearchParams","existingQueryParams","fromEntries","entries","urlTree","nextQueryParams","actionNameFactory","createAction","props","createActionName","setAuth","loginSuccess","loginError","refreshTokenSuccess","refreshTokenError","logout","logoutSuccess","logoutError","ACCESS_TOKEN_COOKIE","LoginPortalAuthApiService","isLoginPortalApiErrorResponse","Actions","createEffect","ofType","isError","delay","switchMap","withLatestFrom","actions$","authApiService","cookieService","loginPortalAuthApiService","login$","loginEffect","loginSuccess$","loginSuccessEffect","dispatch","refreshToken$","refreshTokenEffect","logout$","logoutEffect","logoutSuccess$","logoutSuccessEffect","authState","getAuthState","tokenExpirationTime$","mustRefreshToken","parseInt","remainingTime","log","createReducer","on","AUTH_STATE_NAME","INITIAL_STATE","authReducer","_state","createSelector","state","getAuth","getTokenExpirationDate","Store","store","select","loginError$","fetchCurrentDeviceError","noDeviceError","fetchCurrentDeviceSuccess","fetchCurrentDeviceWeather","fetchCurrentDeviceWeatherError","fetchCurrentDeviceWeatherSuccess","fetchCurrentDeviceSettings","fetchCurrentDeviceSettingsError","fetchCurrentDeviceSettingsSuccess","isString","fetchCurrentUserRole","deviceApiService","fetchCurrentDevice$","fetchCurrentDeviceEffect","fetchCurrentDeviceWeatherEffect","fetchCurrentDeviceSuccess$","fetchCurrentDeviceSuccessEffect","fetchCurrentDeviceSettings$","fetchCurrentDeviceSettingsEffect","fetchCurrentDeviceSettingsSuccess$","fetchCurrentDeviceSettingsSuccessEffect","noDeviceError$","noDeviceErrorEffect","actions","loading","currentDevice","getCurrentDeviceId","CURRENT_DEVICE_STATE_NAME","currentDeviceReducer","getCurrentDeviceState","getCurrentDevice","getCurrentDeviceWeather","getCurrentDeviceName","getCurrentDeviceSettings","getCurrentDeviceSettingsCountry","weather$","deviceName$","deviceId$","deviceIdRequired$","deviceSettings$","deviceSettingsRequired$","country$","updateCurrentDeviceSettings","acceptEula","fetchCurrentUserError","fetchCurrentUserSuccess","fetchCurrentUserRoleError","fetchCurrentUserRoleSuccess","ActivatedRoute","EMPTY_ACTION","fetchNotificationCount","devicesApiService","usersApiService","fetchCurrentUser$","fetchCurrentUserEffect","acceptEula$","acceptEulaEffect","fetchCurrentUserErrorEffect","fetchCurrentUserSuccessEffect","fetchCurrentUserRole$","fetchCurrentUserRoleEffect","version","CURRENT_USER_STATE_NAME","currentUserReducer","getCurrentUserState","getCurrentUser","getCurrentUserRole","currentUserRole$","isAdministrator$","isReadOnly$","updateCurrentUser","setCurrentLocation","setActiveMenuItem","setRouteLoading","showTopBar","LAYOUT_REDUCER_STATE_NAME","routeLoading","layoutReducer","activeMenuItemId","getLayoutState","layout","getCurrentLocation","getCurrentLocationName","getCurrentLocationMenu","menu","getCurrentLocationActiveMenuItemId","getCurrentLocationId","getLoading","getRouteLoading","getShowTopBar","BehaviorSubject","scrollTopSubject$","scrollTop$","asObservable","showTopBar$","loading$","routeLoading$","location$","locationName$","locationMenu$","locationHasMenu$","activeMenuItemId$","locationId$","trackLocation","show","setLocation","setScrollTop","scrollTop","trackView","getViewName","routerState","root","urlSegment","getNextUrlSegment","parent","urlParts","part","fetchNotificationCountSuccess","fetchNotificationCountError","fetchNotificationCount$","fetchNotificationCountEffect","fetchNotificationCountError$","fetchNotificationCountSuccess$","NOTIFICATIONS_STATE_NAME","notificationsReducer","getNotificationsState","notifications","NotificationsService","notificationCount$","RouteLoading","routerCancelAction","routerNavigatedAction","routerNavigationAction","routerNavigation$","routerNavigationEffect","routerCancel$","routerCancelEffect","routerNavigated$","routerNavigatedEffect","currentUrl","targetUrl","currentUrlParts","targetUrlParts","currentArea","targetArea","Tab","Page","localStorageSync","localStorageSyncReducer","reducer","rehydrate","supportEmail","maxPermissionsPerDevice","versionSeason","versionTimestamp","formatMessage","accountPage","accountInformation","$localize","auditLogs","support","downloadAccountInformation","personalInformation","preferences","title","myAccount","appMenu","dashboard","users","accept","consent","explanation","linkUrl","required","assetDetailsPage","gatheringState","offlineState","assetsDetailsPage","button","backToAllAssets","starting","assetsPage","column","power","emptyState","authorizeApplicationErrorPage","paragraph","closeTab","restart","timeout","authorizeApplicationPage","allow","intro","clientName","share","userCode","authorizeApplication","validationError","invalid","authorizeApplicationSuccessPage","success","changePasswordPage","hint","passwordsMustMatch","notification","saveError","saveSuccess","chartsPage","legend","batteryCharging","batteryDischarging","batteryStateOfCharge","connectionCapacity","currentTime","evChargers","evChargersCharging","evChargersDischarging","forecastData","grid","gridConsumption","gridInjection","gridInjectionLimit","night","otherLoads","peakShaving","realTimeData","selfGeneration","selfSufficiency","solarPanels","storageSystems","buildingSummary","performanceMetrics","createAccountErrorPage","back","createAccountPage","sendNewCode","newCodeSent","passwordMustMatch","createAnAccount","verificationCode","newCodeNotSent","createAccountSuccessPage","finish","dashboardPage","energyDiagram","electricGrid","essentialLoads","learnMore","noneConnected","percentageValue","subTitle","timesValue","times","fetching","totalConsumption","off","lastDays","today","trendCard","deleteAccountPage","keyword","download","deleteError","deleteSuccess","attention","deviceSettingsGeneralPage","lobbyUrlCopied","settingsLoadError","settingsSaveError","settingsSaveSuccess","technicianAccess","timeZone","unitCustomName","lobbyUrlInfo","eulaPage","acceptAndProceed","evChargersPage","subtitle","errorCode","externalConstraint","instantPower","maximumPower","plugName","maxPowerValue","maxPowerUnit","sessionDuration","connectors","forbiddenPage","goBack","supportMessage","forbidden","assetEmptyState","powerMeterOfflineDescription","powerMeterOfflineSubtitle","powerMeterGatheringSubtitle","cancel","edit","ok","remove","save","view","dateRange","week","dayOfWeek","friday","monday","saturday","sunday","thursday","tuesday","wednesday","deviceSerial","labels","notAvailable","it","months","april","august","december","february","january","july","june","march","may","november","october","september","linkToScheduler","soc","targetSoc","startTime","endTime","table","empty","emptyDescription","filtersDialog","filters","count","noFilters","reset","timePeriods","custom","lastMonth","lastQuarter","thisMonth","thisQuarter","filterColumn","timePeriod","attribute","monthly","yearly","perKWh","kW","shortDay","shortHour","shortMilli","shortMinute","shortMonth","shortSecond","shortWeek","shortYear","invalidEmail","invalidPassword","tooLong","tooSmall","gridSettingsPage","setpoint","numberOfRates","oneRate","twoRates","placeholders","electricityRate","offPeakHours","peakHours","powerThreshold","thresholdGranularity","titles","advancedPeakShaving","internalServerErrorPage","internalServerError","invitationAcceptancePage","accessLevel","invitationDate","unitCode","fullName","invitationExpiredPage","invitationExpired","invitationPage","removeAccess","resendInvitation","invitationDetails","invitationSent","loginPage","forgotYourPassword","noAccount","terms","rememberMe","loginPortal","brightlayer","buildings","ems","noDevicePage","noDevice","notFoundPage","backToLogin","notFound","notificationsDialog","markAllAsRead","ago","timeAgo","markAllAsReadError","byDate","bySeverity","unreadNotifications","passwordValidation","atLeast1Digit","atLeast1LowercaseLetter","atLeast1SpecialChar","atLeast1UppercaseLetter","eightToSixteenCharsLength","personalInformationPage","preferencesPage","resetPasswordErrorPage","passwordResetFailed","resetPasswordPage","resetPasswordSuccessPage","passwordResetSuccessfully","schedulerDialog","assetType","schedulerPage","addButton","addDescription","editTitle","descriptionNoEvent","titleNoEvent","deleteEventError","deleteEventSuccess","saveEventError","saveEventOverlapError","saveEventSuccess","timeLineTitle","serviceUnavailablePage","serviceDown","serviceUnavailable","sessionExpiredPage","sessionExpired","settingsPage","license","systemGoals","solarPanelPage","current","curtailmentLimit","installedPvCapacity","inverterCapacity","inverterTemperature","phase1","phase2","phase3","totalAcActivePower","totalDcPower","voltage","activePower","apparentPower","inverterAcOutput","maximumPowerPointTracking","mppTracker","pvArrayDcInput","reactivePower","storageUnitPage","capacityAvailableToCharge","energyAvailableToDischarge","firmwareVersion","frequency","maxChargePower","maxDischargePower","outOfTotalStrings","totalStrings","powerFactor","stringsOnline","systemSummary","x1InputGridSide","x3OutputBackupSide","topMetric","activePowerX1","activePowerX3","maxCellTemperature","totalActivePower","totalApparentPower","totalCurrent","totalReactivePower","supportPage","contactUs","downloadItem","downloadUnitLogs","systemInformation","systemGoalsPage","limitEvCharging","maximizePower","maximizeEvCharging","reduceCosts","topbar","account","userInvitationDialog","emailAddress","userPage","alert","productUpdates","statusUpdates","summaryReports","saveEmailAlertsError","saveEmailAlertsSuccess","saveUserDetailsError","saveUserDetailsSuccess","active","displayName","emailAlerts","userDetails","usersPage","addUser","resend","sendInvitation","flag","you","invitationsEmptyState","deleteInvitationError","deleteInvitationSuccess","deletePermissionError","deletePermissionSuccess","resendInvitationError","resendInvitationSuccess","sendInvitationError","sendInvitationInvalidEmailError","sendInvitationSuccess","sendInvitationWarning","accountsUsed","removeUserAccessDialog","resendInvitationDialog","inactive","pending","tab","invitations","transferOwnershipDialog","transferOwnership","newAdminEmail","verifyEmailPage","sendVerificationCode","hasAccount","conflict","params","newStr","bootstrapApplication","catch","err","MultiLanguageJsonSchema","record","deserializeDate","deserializeOptionalDate","serializeOptionalDate","toISOString","serializeDate","serializeNumber","deserializeNumber","IpInfoApiService","getIpInfo","IpStackApiService","getIpStack","ip","isWeekend","getToday","setSeconds","setMilliseconds","getTomorrow","setDate","add","toDate","addMinutes","minutes","subtractDays","subtract","subtractSeconds","seconds","formatDate","getLocaleString","excludedMessage","getHours","getSeconds","toLocaleDateString","toLocaleString","getWeekDays","weekday","getWeekendDays","getLastDayOfTheMonth","getLastDayOfTheLastMonth","getFirstDayOfTheMonth","getFirstDayOfTheLastMonth","isCurrentMonth","getCurrentQuarter","getCurrentQuarterStartDate","quarter","getLastQuarterStartDate","getCurrentQuarterEndDate","getLastQuarterEndDate","getDateFromTime","time","momentDate","hours","leadingZero","newValue","substring","stringDate","toLocaleTimeString","combineDateTime","isValidEnumValue","castEnum","JSON","stringify","roundToTwoDecimals","rounded","round","EPSILON","toFixed","wattToKwh","watts","timeInHours","kwh","namespace","NO_DISPATCH","omit","valueIsNotNil","ModuleWithProviders","ngModule","_3","TrackingServiceMock","track","_view","_properties","trackAction","_action","GoogleTagManagerService","camelCase","gtmService","initialized","pushTag","IMAGE_MAPPING","LogoType","LOGO_FOLDER","LOGO_MAPPING","neutral","primary","contrast","valt","eaton","residenza","vmotion","evpass","nisko","smotion","emoti","greenmotion","FAVICON_MAPPING","ElementRef","ProgressSpinnerComponent","last","LoadingComponent","elementRef","_loading","_routeLoading","overlay","_overlay","toggleDisplay","observer","MutationObserver","element","getParent","nativeElement","tagName","toLowerCase","observe","attributes","childList","characterData","ngOnDestroy","disconnect","outlets","getElementsByClassName","outlet","getOutlet","contains","appendChild","style","opacity","display","body","parentElement","viewQuery","LoadingComponent_Query","COLLECTION_ADDRESSES_RELATION","AddressType","ConnectorType","DateFormatExample","DMY","YMD","MDY","DayOfWeek","EvseStatus","FileExtension","PNG","Png","JPG","Jpeg","Jpg","CSV","Csv","BIN","Bin","FUP","Fup","FileUnit","makeLanguageRecord","NumberFormatExample","DOT","COMMA","OcppSecurityProfile","PlugType","PLUG_TYPE_ICON","AvconConnector","CcsCombo1PlugCableAttached","CcsCombo2PlugCableAttached","ChAdeMo","Iec60309SinglePhase","Iec60309ThreePhase","LargePaddleInductive","Nema520","SmallPaddleInductive","TeslaConnector","Type1ConnectorCableAttached","Type2ConnectorCableAttached","Type2Outlet","Type3Outlet","TypeEFrenchStandard","TypeFSchuko","TypeGBritishStandard","TypeJSwissStandard","Unspecified","hasEmbedded","embedded","getEmbedded","makeEmbedded","isObject","NEW","NONE","obj","isNew","isNone","intersection","SELF_RELATION","SELF_EDIT_RELATION","SELF_DELETE_RELATION","COLLECTION_RELATION","COLLECTION_PAGE_RELATION","COLLECTION_SORT_RELATION","COLLECTION_FILTER_RELATION","LinkMethod","hasRelation","withLinks","relation","getRelation","hasSelfRelation","hasEditRelation","hasDeleteRelation","links","_links","getLink","getSelfLink","getMandatorySelfLink","isWithLinks","getMandatoryRelation","getMandatoryLink","getEditLink","getMandatoryEditLink","getMandatoryDeleteLink","MissingLinkError","isLink","valueProperties","linkProperties","getLinks","getCollectionLink","getCollectionPageLink","getCollectionSortLink","getCollectionFilterLink","isReadOnly","makeLinkParameters","templated","regex","m","parameters","lastIndex","groupIndex","makeLink","method","GET","makeLinks","EventEmitter","MatLegacyButtonModule","MatButtonModule","MatLegacyProgressSpinnerModule","MatProgressSpinnerModule","MatLegacyTooltipModule","MatTooltipModule","IconComponent","IconSize","icon","iconSize","defaultIconSize","ɵɵtext","ɵɵtextInterpolate1","caption","ActionComponent_Conditional_0_Conditional_2_Conditional_1_Template","ɵɵpureFunction2","_c1","ɵɵpureFunction1","_c2","align","altIcon","altIconSize","ActionComponent_Conditional_0_Template_button_click_0_listener","onActionClick","ActionComponent_Conditional_0_Template_button_mouseenter_0_listener","onMouseEnter","ActionComponent_Conditional_0_Template_button_mouseleave_0_listener","onMouseLeave","ActionComponent_Conditional_0_Conditional_1_Template","ActionComponent_Conditional_0_Conditional_2_Template","ActionComponent_Conditional_0_Conditional_3_Template","ActionComponent_Conditional_0_Conditional_4_Template","ɵɵpureFunction5","_c0","basic","raised","border","buttonStyle","ɵɵtextInterpolate","counter","ActionComponent","actionClick","hover","Small","fullWidth","uppercase","class","hoverColor","stopPropagation","emit","callback","context","height","hostVars","hostBindings","ActionComponent_HostBindings","ɵɵclassMap","ɵɵclassProp","ActionComponent_Conditional_0_Template","ActionComponent_Conditional_1_Template","NgClass","NgStyle","MatLegacyButton","MatLegacyProgressSpinner","MatLegacyTooltip","ActionColor","ActionAlign","makeMainAction","Accent","uniqueId","makeAccentAction","makeWarnAction","Warn","ActionContainerComponent","ngContentSelectors","ActionContainerComponent_Template","ɵɵprojection","MatLegacyMenuModule","MatMenuModule","MatLegacyMenuTrigger","MatMenuTrigger","item_r3","ActionMenuComponent_For_4_Template_button_click_0_listener","_r2","$implicit","ctx_r3","onClick","ActionMenuComponent_For_4_Conditional_1_Template","ActionMenuComponent","menuItemClick","ActionMenuComponent_Query","ActionMenuComponent_Template_etn_action_actionClick_0_listener","trigger","openMenu","ɵɵrepeaterCreate","ActionMenuComponent_For_4_Template","_forTrack0","matmenu_r5","ɵɵrepeater","MatLegacyMenu","MatLegacyMenuItem","Directionality","MatDividerModule","MatLegacyCardModule","MatCardModule","ImageModule","ProgressSpinnerSize","ctx_r0","action_r2","CardComponent_Conditional_1_Conditional_1_Template","CardComponent_Conditional_1_For_4_Template","headerActions","image","imageSrc","action_r3","CardComponent_Conditional_7_Conditional_2_For_2_Template","altActions","action_r4","CardComponent_Conditional_7_Conditional_2_Template","CardComponent_Conditional_7_For_5_Template","mainActions","CardComponent","dir","showTitleDivider","direction","spinnerSize","hasNoActions","imageHeight","CardComponent_HostBindings","centeredHeader","hideShadow","CardComponent_Conditional_1_Template","CardComponent_Conditional_2_Template","CardComponent_Conditional_4_Template","CardComponent_Conditional_6_Template","CardComponent_Conditional_7_Template","CardComponent_Conditional_8_Template","showActionsDivider","ImageComponent","MatLegacyCard","MatLegacyCardHeader","MatLegacyCardContent","MatLegacyCardTitle","MatLegacyCardActions","MatLegacyCardImage","MatDivider","ChartSize","forwardRef","ReactiveFormsModule","MatFormFieldModule","MatLegacyCheckboxModule","MatCheckboxModule","AbstractFormFieldComponent","CONTROL_CONTAINER_VIEW_PROVIDER","CheckboxComponent","t","inputs","indeterminate","ɵɵProvidersFeature","useExisting","ɵɵInheritDefinitionFeature","CheckboxComponent_Template","formControl","MatLegacyCheckbox","NgControlStatus","FormControlDirective","SimpleChanges","FormsModule","CookieConsentModule","CookieConsentComponent_Conditional_9_For_7_Template_etn_checkbox_valueChange_0_listener","consent_r2","ctx_r2","onCensentToggle","CookieConsentComponent_Conditional_9_For_7_Template","currentConsents","position","BottomLeft","showSettings","ngOnChanges","userId","getConsents","acceptCookieAction","getAcceptCookieAction","settingsAction","getSettingsAction","Primary","Center","getCookieValue","CookieConsentComponent_HostBindings","ɵɵNgOnChangesFeature","CookieConsentComponent_Template","CookieConsentComponent_Conditional_9_Template","ɵɵsanitizeUrl","every","saveSubject$","getCookieName","hasConsent","DIALOG_DATA","DialogRef","PortalModule","ComponentRef","UntilDestroy","FabIconComponent","ListItemSeparatorComponent","DialogPosition","DialogTitleColor","ANIMATION_IN","ANIMATION_OUT","config","closeAction$","fabIcon","fabIconColor","DialogComponent_Conditional_6_ng_template_0_Template","DialogComponent_Conditional_6_Template_ng_template_attached_0_listener","onAttached","component","content","ɵɵsanitizeHtml","cancelAction$","DialogComponent_Conditional_8_Conditional_2_Template","confirmAction$","DialogComponent","ref","componentRefSubject$","valid$","titleColor","confirmAction","noCancel","cancelAction","getCancelAction","valid","getConfirmAction","getCloseAction","RightSide","backdropClick","closeDialog","onClose","result","instance","closeOnConfirm","Default","overlayRef","removePanelClass","addPanelClass","overlayElement","close","DialogComponent_HostBindings","DialogComponent_Conditional_1_Template","DialogComponent_Conditional_2_Template","DialogComponent_Conditional_4_Template","DialogComponent_Conditional_5_Template","DialogComponent_Conditional_6_Template","DialogComponent_Conditional_7_Template","DialogComponent_Conditional_8_Template","showTitleContentDivider","minWidth","CdkPortalOutlet","__decorate","CdkDialogModule","DialogService","imports","Dialog","Overlay","isArray","DEFAULT_DIALOG_MAX_WIDTH","dialog","openDialog","open","autoFocus","disableClose","hasBackdrop","maxWidth","panelClass","getPanelClass","viewContainerRef","positionStrategy","getPositionStrategy","classes","c","global","top","right","ViewContainerRef","DialogAlign","AbstractDialogComponent","AbstractDialogComponent_Template","encapsulation","Xlarge","rimMargin","rimSize","FabIconComponent_HostBindings","ɵɵstyleProp","FabIconColor","InjectionToken","Optional","Provider","SkipSelf","ControlContainer","FormControl","Validators","startWith","useFactory","container","deps","defaultAppearance","hideRequiredMarker","controlName","appearance","valueChangeSubject$","valueChanges","valueChange","statusChangeSubject$","statusChanges","statusChange","setupFormControl","disable","enable","addValidators","removeValidators","updateValueAndValidity","hasValidator","setValue","onFormControlInit","form","controls","onValidatorsAdd","_validators","onValidatorsRemove","onDisable","_opts","onEnable","bind","validators","opts","validationErrorMessage","outputs","AbstractFormFieldComponent_Template","FormBuilder","isEqual","Observable","AbstractFormComponent","formBuilder","formGroup","group","getControls","formModel","deserializeModel","dirty","pristine","isChanged","_model","serializeModel","onModelChange","readonly","validateForm","_formGroup","processedModel","processedFormModel","AbstractFormComponent_Template","MatIconModule","TooltipModule","tooltipPosition","iconName","isBluiIcon","isGmIcon","getStyles","IconComponent_HostBindings","IconComponent_Conditional_0_Template","IconComponent_Conditional_1_Template","IconComponent_Conditional_2_Template","IconComponent_Conditional_3_Template","MatIcon","TooltipDirective","IconColor","ChangeDetectorRef","SvgIconRegistryService","ReplaySubject","svgName","svgStyle","ImageComponent_Conditional_1_Template_img_load_0_listener","onImageLoad","imgHeight","src","iconReg","changeDetectionRef","imageLoad","svgLoad","loadSvgSubject$","loadSvg","width","currentTarget","showLoadingSpinner","spinnerPosition","diameter","obs","svgElement","markForCheck","ImageComponent_HostBindings","ImageComponent_Conditional_0_Template","ImageComponent_Conditional_1_Template","ImageComponent_Conditional_2_Template","withInterceptorsFromDi","AngularSvgIconModule","declarations","exports","RTL_LANGUAGES","getDirection","lang","isRtl","DOCUMENT","LanguageDirective","documentElement","MULTILANGUAGE_FALLBACK_MESSAGE","fallback","getLanguage","getValue","ListItemTagModule","ListItemTagComponent","text","ListItemTagComponent_HostBindings","InfoListItemModule","ListItemDivider","chevronIcon","ListItemComponent","dense","flexibleHeight","bottomDivider","topDivider","wrapSubtitle","defaultDivider","Full","hasChevron","ListItemComponent_HostBindings","ListItemComponent_Conditional_0_Template","ListItemComponent_Conditional_2_Template","ListItemComponent_Conditional_3_Template","ListItemComponent_Conditional_4_Template","ListItemComponent_Conditional_11_Template","divider","tmp_6_0","statusColor","customIcon","InfoListItemComponent","ListItemStatusColor","ListItemSeparatorComponent_Template","LottieAnimationComponent","LottieComponent","animationPath","animationWidth","animationHeight","LottieAnimationComponent_Template","makeEnvironmentProviders","provideLottieOptions","playerFactory","player","Toast","titleClass","messageClass","Medium","toastClasses","NotificationComponent_Template","NotificationComponent_Conditional_1_Template","NotificationComponent_Conditional_3_Template","NotificationComponent_Conditional_4_Template","NotificationComponent_Conditional_5_Template","NotificationComponent_Conditional_6_Template","NotificationComponent_Conditional_7_Template","enableHtml","progressBar","ToastrService","NotificationPosition","DEFAULT_OPTIONS","positionClass","BottomCenter","timeOut","toastr","notifyError","toast","getOptions","portal","notifySuccess","notifyWarning","notifyInfo","disableTimeOut","ProgressSpinnerPosition","ProgressSpinnerComponent_HostBindings","canDeactivate","isPristine","SaveTrapComponent_HostBindings","SaveTrapComponent_beforeunload_HostBindingHandler","ɵɵresolveWindow","SAVE_TRAP_MESSAGE","saveTrapGuard","markAsDirty","setPristine","forms","TimeLineComponent","FullCalendarModule","resourceTimelinePlugin","rrulePlugin","SCHEDULER_LICENSE_KEY","headerTitle","arg_r2","resource","eventClassNames","fieldValue","arg_r3","arg_r4","classNames","extendedProps","timeFormat","eventClick","nowTimezone","guess","calendarOptions","getCalendarOptions","licenseKey","changes","nowIndicatorDate","resources","rows","initialView","plugins","nowIndicator","headerToolbar","footerToolbar","editable","selectable","eventMinHeight","slotEventOverlap","resourceAreaWidth","slotLabelFormat","arg","marker","utc","scrollTime","slotLabelInterval","getResource","getEvent","eventMouseEnter","el","setAttribute","TimeLineComponent_Template","TimeLineComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","TimeLineComponent_ng_template_3_Template","TimeLineComponent_ng_template_5_Template","TimeLineComponent_ng_template_7_Template","FullCalendarComponent","OverlayPositionBuilder","ComponentPortal","TooltipComponent","FocusTooltipDirective","overlayPositionBuilder","tooltipRef","attach","hide","detach","flexibleConnectedTo","withPositions","originX","originY","overlayX","overlayY","offsetX","create","FocusTooltipDirective_HostBindings","FocusTooltipDirective_focus_HostBindingHandler","FocusTooltipDirective_blur_HostBindingHandler","animate","transition","tooltipClasses","TooltipComponent_HostBindings","ScrollDispatcher","AriaDescriber","FocusMonitor","Platform","MAT_LEGACY_TOOLTIP_DEFAULT_OPTIONS","MAT_LEGACY_TOOLTIP_SCROLL_STRATEGY","MAT_TOOLTIP_POSITIONS","TOOLTIP_POSITIONS","scrollDispatcher","ngZone","platform","ariaDescriber","focusMonitor","scrollStrategy","defaultOptions","tooltipClass","exportAs","OverlayModule","tooltipPositionsData","left","bottom"],"sourceRoot":"webpack:///"}