@wolkabout/commons 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wolkabout-commons.mjs","sources":["../../../projects/commons/src/lib/common.config.ts","../../../projects/commons/src/lib/model/authentication.model.ts","../../../projects/commons/src/lib/enum/data-type.ts","../../../projects/commons/src/lib/enum/permission.enum.ts","../../../projects/commons/src/lib/service/authentication-client.ts","../../../projects/commons/src/lib/service/authentication.service.ts","../../../projects/commons/src/lib/service/permissions.service.ts","../../../projects/commons/src/lib/guard/requires-permission.guard.ts","../../../projects/commons/src/lib/service/feature-registry.service.ts","../../../projects/commons/src/lib/service/maps-loader.service.ts","../../../projects/commons/src/lib/service/notification.service.ts","../../../projects/commons/src/lib/util/locale-util.ts","../../../projects/commons/src/lib/service/tenant-properties.service.ts","../../../projects/commons/src/lib/util/chart-theme-light.ts","../../../projects/commons/src/lib/util/chart-theme-dark.ts","../../../projects/commons/src/lib/service/theme.service.ts","../../../projects/commons/src/lib/directive/loading-indicator.directive.ts","../../../projects/commons/src/lib/directive/localize-numeric-input.directive.ts","../../../projects/commons/src/lib/directive/message-tooltip.directive.ts","../../../projects/commons/src/lib/directive/ng-template-content.directive.ts","../../../projects/commons/src/lib/directive/overflow-class.directive.ts","../../../projects/commons/src/lib/directive/requires-all-global-asset-permission.directive.ts","../../../projects/commons/src/lib/directive/requires-all-permissions.directive.ts","../../../projects/commons/src/lib/directive/requires-global-asset-permission.directive.ts","../../../projects/commons/src/lib/directive/requires-permission.directive.ts","../../../projects/commons/src/lib/directive/scroll-into-view.directive.ts","../../../projects/commons/src/lib/pipe/duration.pipe.ts","../../../projects/commons/src/lib/pipe/localized-number.pipe.ts","../../../projects/commons/src/lib/pipe/simple-date-time.pipe.ts","../../../projects/commons/src/lib/pipe/simple-date.pipe.ts","../../../projects/commons/src/lib/pipe/simple-time.pipe.ts","../../../projects/commons/src/lib/pipe/sort.pipe.ts","../../../projects/commons/src/lib/util/date-util.ts","../../../projects/commons/src/lib/util/file-util.ts","../../../projects/commons/src/lib/util/form-validation.util.ts","../../../projects/commons/src/lib/util/missing-translation-helper.ts","../../../projects/commons/src/lib/util/numeric-util.ts","../../../projects/commons/src/lib/util/object-utils.ts","../../../projects/commons/src/lib/util/string-util.ts","../../../projects/commons/src/lib/util/time-zone-util.ts","../../../projects/commons/src/lib/util/url-utils.ts","../../../projects/commons/src/lib/component/autocomplete/autocomplete.component.ts","../../../projects/commons/src/lib/component/autocomplete/autocomplete.component.html","../../../projects/commons/src/lib/component/autocomplete-chips/autocomplete-chips.component.ts","../../../projects/commons/src/lib/component/autocomplete-chips/autocomplete-chips.component.html","../../../projects/commons/src/lib/component/basic-time-series-graph/basic-time-series-graph.component.ts","../../../projects/commons/src/lib/component/basic-time-series-graph/basic-time-series-graph.component.html","../../../projects/commons/src/lib/component/card-labeled-value/card-labeled-value.component.ts","../../../projects/commons/src/lib/component/card-labeled-value/card-labeled-value.component.html","../../../projects/commons/src/lib/component/confirmation-dialog/confirmation-dialog.component.ts","../../../projects/commons/src/lib/component/confirmation-dialog/confirmation-dialog.component.html","../../../projects/commons/src/lib/component/date-range-input/date-range-input.component.ts","../../../projects/commons/src/lib/component/date-range-input/date-range-input.component.html","../../../projects/commons/src/lib/component/date-time-form-field/date-time-form-field.component.ts","../../../projects/commons/src/lib/component/date-time-form-field/date-time-form-field.component.html","../../../projects/commons/src/lib/component/drag-drop-file-upload/drag-drop-file-upload.component.ts","../../../projects/commons/src/lib/component/drag-drop-file-upload/drag-drop-file-upload.component.html","../../../projects/commons/src/lib/component/google-map/google-map.component.ts","../../../projects/commons/src/lib/component/google-map/google-map.component.html","../../../projects/commons/src/lib/component/image-display/image-preview/image-preview.component.ts","../../../projects/commons/src/lib/component/image-display/image-preview/image-preview.component.html","../../../projects/commons/src/lib/component/image-display/image-display.component.ts","../../../projects/commons/src/lib/component/image-display/image-display.component.html","../../../projects/commons/src/lib/component/labeled-value/labeled-value.component.ts","../../../projects/commons/src/lib/component/labeled-value/labeled-value.component.html","../../../projects/commons/src/lib/component/loaded-icon/loaded-icon.component.ts","../../../projects/commons/src/lib/component/loaded-icon/loaded-icon.component.html","../../../projects/commons/src/lib/component/local-sort-table/local-sort-table.component.ts","../../../projects/commons/src/lib/component/local-sort-table/local-sort-table.component.html","../../../projects/commons/src/lib/component/master-details-view/master-details-view.component.ts","../../../projects/commons/src/lib/component/master-details-view/master-details-view.component.html","../../../projects/commons/src/lib/component/nested-list-view/nested-list-view.component.ts","../../../projects/commons/src/lib/component/nested-list-view/nested-list-view.component.html","../../../projects/commons/src/lib/component/nested-list-view/nested-list.data-control.ts","../../../projects/commons/src/lib/component/nested-list-view/nested-list.data-source.ts","../../../projects/commons/src/lib/component/pdf-viewer/pdf-viewer.component.ts","../../../projects/commons/src/lib/component/pdf-viewer/pdf-viewer.component.html","../../../projects/commons/src/lib/component/standard-list-view/standard-list-view.component.ts","../../../projects/commons/src/lib/component/standard-list-view/standard-list-view.component.html","../../../projects/commons/src/lib/component/standard-list-view/standard-list.data-control.ts","../../../projects/commons/src/lib/component/standard-list-view/standard-list.data-source.ts","../../../projects/commons/src/lib/component/tabulated-chip-view/tabulated-chip-view.component.ts","../../../projects/commons/src/lib/component/tabulated-chip-view/tabulated-chip-view.component.html","../../../projects/commons/src/lib/component/tabulated-view/tabulated-view.component.ts","../../../projects/commons/src/lib/component/tabulated-view/tabulated-view.component.html","../../../projects/commons/src/lib/component/tree/tree-node/tree-node.component.ts","../../../projects/commons/src/lib/component/tree/tree-node/tree-node.component.html","../../../projects/commons/src/lib/component/tree/tree.component.ts","../../../projects/commons/src/lib/component/tree/tree.component.html","../../../projects/commons/src/lib/component/value-display/value-display.component.ts","../../../projects/commons/src/lib/component/value-display/value-display.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-boolean/value-input-boolean.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-boolean/value-input-boolean.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-color/value-input-color.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-color/value-input-color.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-date/value-input-date.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-date/value-input-date.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-enum/value-input-enum.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-enum/value-input-enum.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-hexadecimal/value-input-hexadecimal.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-hexadecimal/value-input-hexadecimal.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-link/value-input-link.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-link/value-input-link.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-location/value-input-location.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-location/value-input-location.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-numeric/value-input-numeric.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-numeric/value-input-numeric.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-string/value-input-string.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-string/value-input-string.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-vector/value-input-vector.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-vector/value-input-vector.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-duration/value-input-duration.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-duration/value-input-duration.component.html","../../../projects/commons/src/lib/component/value-input/value-input.component.ts","../../../projects/commons/src/lib/component/value-input/value-input.component.html","../../../projects/commons/src/public-api.ts","../../../projects/commons/src/wolkabout-commons.ts"],"sourcesContent":["import { TranslateModule } from '@ngx-translate/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\nexport const angularComponents = [\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatToolbarModule,\r\n MatMenuModule,\r\n MatFormFieldModule,\r\n MatTooltipModule,\r\n MatSidenavModule,\r\n MatTabsModule,\r\n MatTableModule,\r\n MatIconModule,\r\n MatCardModule,\r\n MatSelectModule,\r\n MatDialogModule,\r\n MatSortModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatDividerModule,\r\n MatInputModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatTreeModule,\r\n MatExpansionModule,\r\n MatDatepickerModule,\r\n MatAutocompleteModule,\r\n MatChipsModule,\r\n MatGridListModule,\r\n MatPaginatorModule,\r\n MatSliderModule\r\n];\r\n\r\nexport const shared = [\r\n ...angularComponents,\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n RouterLink,\r\n RouterOutlet,\r\n RouterLinkActive,\r\n DragDropModule\r\n];\r\n","export interface User {\r\n id: number;\r\n firstName: string | null;\r\n lastName: string | null;\r\n email: string;\r\n}\r\n\r\nexport interface Authority {\r\n contextId: number;\r\n contextName: string;\r\n mainContext: boolean;\r\n active: boolean;\r\n accessToken: string;\r\n roleNames: string[];\r\n permissions: string[];\r\n}\r\n\r\nexport interface Authentication {\r\n user: User;\r\n authorities: Authority[];\r\n refreshToken: string;\r\n}\r\n\r\nexport function isContextAccessible(authority: Authority, isMainContext: boolean): boolean {\r\n return authority.mainContext === isMainContext;\r\n}\r\n","export enum DataType {\r\n STRING = 'STRING',\r\n NUMERIC = 'NUMERIC',\r\n BOOLEAN = 'BOOLEAN',\r\n LOCATION = 'LOCATION',\r\n HEXADECIMAL = 'HEXADECIMAL',\r\n ENUM = 'ENUM',\r\n VECTOR = 'VECTOR',\r\n DATE = 'DATE',\r\n DURATION = 'DURATION',\r\n // REFERENCE = 'REFERENCE',\r\n COLOR = 'COLOR',\r\n LINK = 'LINK'\r\n}\r\n","export enum Permission {\r\n // ACCESS\r\n ACCESS_MODULE_PLATFORM_MANAGEMENT_FEATURE_APPLICATION = \"ACCESS.MODULE_PLATFORM_MANAGEMENT.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_PLATFORM_MANAGEMENT_FEATURE_PLATFORM_CONFIGURATION = \"ACCESS.MODULE_PLATFORM_MANAGEMENT.FEATURE_PLATFORM_CONFIGURATION\",\r\n ACCESS_MODULE_PLATFORM_MANAGEMENT_FEATURE_TENANT_MANAGEMENT = \"ACCESS.MODULE_PLATFORM_MANAGEMENT.FEATURE_TENANT_MANAGEMENT\",\r\n\r\n ACCESS_MODULE_USER_MANAGEMENT_FEATURE_APPLICATION = \"ACCESS.MODULE_USER_MANAGEMENT.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_USER_MANAGEMENT_FEATURE_USER_MANAGEMENT = \"ACCESS.MODULE_USER_MANAGEMENT.FEATURE_USER_MANAGEMENT\",\r\n ACCESS_MODULE_USER_MANAGEMENT_FEATURE_USER_GROUPS_MANAGEMENT = \"ACCESS.MODULE_USER_MANAGEMENT.FEATURE_USER_GROUPS_MANAGEMENT\",\r\n ACCESS_MODULE_USER_MANAGEMENT_FEATURE_GLOBAL_ROLES_MANAGEMENT = \"ACCESS.MODULE_USER_MANAGEMENT.FEATURE_GLOBAL_ROLES_MANAGEMENT\",\r\n ACCESS_MODULE_USER_MANAGEMENT_FEATURE_INVENTORY_ROLES_MANAGEMENT = \"ACCESS.MODULE_USER_MANAGEMENT.FEATURE_INVENTORY_ROLES_MANAGEMENT\",\r\n\r\n ACCESS_MODULE_TENANT_MANAGEMENT_FEATURE_APPLICATION = \"ACCESS.MODULE_TENANT_MANAGEMENT.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_TENANT_MANAGEMENT_FEATURE_READING_TYPES_MANAGEMENT = \"ACCESS.MODULE_TENANT_MANAGEMENT.FEATURE_READING_TYPES_MANAGEMENT\",\r\n ACCESS_MODULE_TENANT_MANAGEMENT_FEATURE_INTEGRATIONS = \"ACCESS.MODULE_TENANT_MANAGEMENT.FEATURE_INTEGRATIONS\",\r\n ACCESS_MODULE_TENANT_MANAGEMENT_FEATURE_ACCESS_KEYS = \"ACCESS.MODULE_TENANT_MANAGEMENT.FEATURE_ACCESS_KEYS\",\r\n ACCESS_MODULE_TENANT_MANAGEMENT_FEATURE_AUDIT_LOG = \"ACCESS.MODULE_TENANT_MANAGEMENT.FEATURE_AUDIT_LOG\",\r\n\r\n ACCESS_MODULE_DEVICES_AND_EDGE_FEATURE_APPLICATION = \"ACCESS.MODULE_DEVICES_AND_EDGE.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_DEVICES_AND_EDGE_FEATURE_DEVICES = \"ACCESS.MODULE_DEVICES_AND_EDGE.FEATURE_DEVICES\",\r\n ACCESS_MODULE_DEVICES_AND_EDGE_FEATURE_TYPES = \"ACCESS.MODULE_DEVICES_AND_EDGE.FEATURE_TYPES\",\r\n ACCESS_MODULE_DEVICES_AND_EDGE_FEATURE_GROUPS = \"ACCESS.MODULE_DEVICES_AND_EDGE.FEATURE_GROUPS\",\r\n\r\n ACCESS_MODULE_DATA_MANAGEMENT_FEATURE_APPLICATION = \"ACCESS.MODULE_DATA_MANAGEMENT.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_DATA_MANAGEMENT_FEATURE_DATA_MANAGEMENT = \"ACCESS.MODULE_DATA_MANAGEMENT.FEATURE_DATA_MANAGEMENT\",\r\n ACCESS_MODULE_DATA_MANAGEMENT_FEATURE_TYPES = \"ACCESS.MODULE_DATA_MANAGEMENT.FEATURE_TYPES\",\r\n\r\n ACCESS_MODULE_RULE_ENGINE_FEATURE_APPLICATION = \"ACCESS.MODULE_RULE_ENGINE.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_DASHBOARDS_FEATURE_APPLICATION = \"ACCESS.MODULE_DASHBOARDS.FEATURE_APPLICATION\",\r\n\r\n ACCESS_MODULE_MESSAGES_FEATURE_APPLICATION = \"ACCESS.MODULE_MESSAGES.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_MESSAGES_FEATURE_MESSAGE_TEMPLATES = \"ACCESS.MODULE_MESSAGES.FEATURE_MESSAGE_TEMPLATES\",\r\n ACCESS_MODULE_MESSAGES_FEATURE_MESSAGES = \"ACCESS.MODULE_MESSAGES.FEATURE_MESSAGES\",\r\n\r\n // PLATFORM_MANAGEMENT\r\n PLATFORM_MANAGEMENT_SETTINGS_VIEW = \"PLATFORM_MANAGEMENT.SETTINGS.VIEW\",\r\n PLATFORM_MANAGEMENT_SETTINGS_MANAGE = \"PLATFORM_MANAGEMENT.SETTINGS.MANAGE\",\r\n PLATFORM_MANAGEMENT_TENANTS_VIEW = \"PLATFORM_MANAGEMENT.TENANTS.VIEW\",\r\n PLATFORM_MANAGEMENT_TENANTS_MANAGE = \"PLATFORM_MANAGEMENT.TENANTS.MANAGE\",\r\n\r\n // USER_MANAGEMENT\r\n USER_MANAGEMENT_USERS_VIEW = \"USER_MANAGEMENT.USERS.VIEW\",\r\n USER_MANAGEMENT_USERS_MANAGE = \"USER_MANAGEMENT.USERS.MANAGE\",\r\n USER_MANAGEMENT_USER_GROUPS_VIEW = \"USER_MANAGEMENT.USER_GROUPS.VIEW\",\r\n USER_MANAGEMENT_USER_GROUPS_MANAGE = \"USER_MANAGEMENT.USER_GROUPS.MANAGE\",\r\n USER_MANAGEMENT_GLOBAL_ROLES_MANAGE = \"USER_MANAGEMENT.GLOBAL_ROLES.MANAGE\",\r\n USER_MANAGEMENT_INVENTORY_ROLES_MANAGE = \"USER_MANAGEMENT.INVENTORY_ROLES.MANAGE\",\r\n\r\n // TENANT_CONFIGURATION\r\n TENANT_CONFIGURATION_READING_TYPE_MANAGEMENT_MANAGE = \"TENANT_CONFIGURATION.READING_TYPE_MANAGEMENT.MANAGE\",\r\n TENANT_CONFIGURATION_INTEGRATIONS_VIEW = \"TENANT_CONFIGURATION.INTEGRATIONS.VIEW\",\r\n TENANT_CONFIGURATION_INTEGRATIONS_MANAGE = \"TENANT_CONFIGURATION.INTEGRATIONS.MANAGE\",\r\n TENANT_CONFIGURATION_ACCESS_KEYS_VIEW = \"TENANT_CONFIGURATION.ACCESS_KEYS.VIEW\",\r\n TENANT_CONFIGURATION_ACCESS_KEYS_MANAGE = \"TENANT_CONFIGURATION.ACCESS_KEYS.MANAGE\",\r\n TENANT_CONFIGURATION_SETTINGS_MANAGE = \"TENANT_CONFIGURATION.SETTINGS.MANAGE\",\r\n\r\n // DEVICE_MANAGEMENT\r\n DEVICE_MANAGEMENT_DEVICE_GROUPS_VIEW = \"DEVICE_MANAGEMENT.DEVICE_GROUPS.VIEW\",\r\n DEVICE_MANAGEMENT_DEVICE_GROUPS_MANAGE = \"DEVICE_MANAGEMENT.DEVICE_GROUPS.MANAGE\",\r\n DEVICE_MANAGEMENT_DEVICE_GROUPS_ACCESS_VIEW = \"DEVICE_MANAGEMENT.DEVICE_GROUPS.ACCESS_VIEW\",\r\n DEVICE_MANAGEMENT_DEVICE_GROUPS_ACCESS_MANAGE = \"DEVICE_MANAGEMENT.DEVICE_GROUPS.ACCESS_MANAGE\",\r\n\r\n // DATA_MANAGEMENT\r\n DATA_MANAGEMENT_DATA_VIEW = \"DATA_MANAGEMENT.DATA.VIEW\",\r\n DATA_MANAGEMENT_DATA_MANAGE = \"DATA_MANAGEMENT.DATA.MANAGE\",\r\n DATA_MANAGEMENT_DATA_ACCESS_VIEW = \"DATA_MANAGEMENT.DATA.ACCESS_VIEW\",\r\n DATA_MANAGEMENT_DATA_ACCESS_MANAGE = \"DATA_MANAGEMENT.DATA.ACCESS_MANAGE\",\r\n DATA_MANAGEMENT_DATA_DASHBOARDS_VIEW = \"DATA_MANAGEMENT.DATA.DASHBOARDS_VIEW\",\r\n DATA_MANAGEMENT_DATA_DASHBOARDS_MANAGE = \"DATA_MANAGEMENT.DATA.DASHBOARDS_MANAGE\",\r\n\r\n DATA_MANAGEMENT_SEMANTIC_TYPES_VIEW = \"DATA_MANAGEMENT.SEMANTIC_TYPES.VIEW\",\r\n DATA_MANAGEMENT_SEMANTIC_TYPES_MANAGE = \"DATA_MANAGEMENT.SEMANTIC_TYPES.MANAGE\",\r\n DATA_MANAGEMENT_SEMANTIC_TYPES_ACCESS_VIEW = \"DATA_MANAGEMENT.SEMANTIC_TYPES.ACCESS_VIEW\",\r\n DATA_MANAGEMENT_SEMANTIC_TYPES_ACCESS_MANAGE = \"DATA_MANAGEMENT.SEMANTIC_TYPES.ACCESS_MANAGE\",\r\n\r\n // RULE_ENGINE\r\n RULE_ENGINE_RULE_VIEW = \"RULE_ENGINE.RULE.VIEW\",\r\n RULE_ENGINE_RULE_MANAGE = \"RULE_ENGINE.RULE.MANAGE\",\r\n\r\n // MESSAGES\r\n MESSAGES_TEMPLATES_VIEW = \"MESSAGES.TEMPLATES.VIEW\",\r\n MESSAGES_TEMPLATES_MANAGE = \"MESSAGES.TEMPLATES.MANAGE\"\r\n}\r\n\r\n","import { Observable } from 'rxjs';\r\nimport { Authentication } from '../model/authentication.model';\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport const AUTHENTICATION_CLIENT = new InjectionToken<AuthenticationClient>('AUTHENTICATION_CLIENT');\r\n\r\nexport interface AuthenticationClient {\r\n refreshToken(token: string): Observable<Authentication>\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, catchError, EMPTY, filter, map, Observable, of, switchMap, tap } from \"rxjs\";\r\nimport { jwtDecode, JwtPayload } from \"jwt-decode\";\r\nimport { Authentication, Authority, User } from \"../model/authentication.model\";\r\nimport { AUTHENTICATION_CLIENT, AuthenticationClient } from './authentication-client';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthenticationService {\r\n\r\n private readonly authenticationClient: AuthenticationClient = inject(AUTHENTICATION_CLIENT);\r\n\r\n private readonly LSK_REFRESH_TOKEN = \"WA_REFRESH_TOKEN\";\r\n private readonly LSK_ACTIVE_TENANT = \"WA_ACTIVE_TENANT\";\r\n\r\n private _activeUser$ = new BehaviorSubject<User | null>(null);\r\n private _authorities$ = new BehaviorSubject<Authority[]>([]);\r\n private _selectedAuthority$ = new BehaviorSubject<Authority | null>(null);\r\n\r\n private refreshToken: string | null = null;\r\n private _authenticationTokens: Record<number, string> = {};\r\n\r\n constructor() {\r\n this.refreshToken = localStorage.getItem(this.LSK_REFRESH_TOKEN) ?? null;\r\n\r\n if (this.isValid(this.refreshToken)) {\r\n this.authenticationClient.refreshToken(this.refreshToken ?? '').pipe(\r\n catchError(() => {\r\n this.logout();\r\n return of(null);\r\n })\r\n ).subscribe((response) => {\r\n if (!response || !response.user) {\r\n this.logout();\r\n return;\r\n }\r\n\r\n this.initiateAuthenticatedState(response);\r\n })\r\n } else {\r\n this.logout();\r\n }\r\n }\r\n\r\n public setAuthentication(authentication: Authentication) {\r\n this.refreshToken = authentication.refreshToken;\r\n localStorage.setItem(this.LSK_REFRESH_TOKEN, this.refreshToken);\r\n\r\n this.initiateAuthenticatedState(authentication)\r\n }\r\n\r\n public updateUserName(firstName: string, lastName: string) {\r\n const currentUser = this._activeUser$.value;\r\n if (!currentUser) {\r\n return;\r\n }\r\n\r\n this._activeUser$.next({...currentUser, firstName: firstName, lastName: lastName})\r\n }\r\n\r\n private initiateAuthenticatedState(authentication: Authentication) {\r\n this._activeUser$.next(authentication.user);\r\n this._authorities$.next(authentication.authorities);\r\n\r\n const preselectedTenant = localStorage.getItem(this.LSK_ACTIVE_TENANT) ?? null;\r\n if (!preselectedTenant) {\r\n this._selectedAuthority$.next(this._authorities$.value[0]);\r\n } else {\r\n const selectedAuthority = this._authorities$.value.find((authority) => authority.contextId === Number(preselectedTenant));\r\n this._selectedAuthority$.next(selectedAuthority ?? this._authorities$.value[0]);\r\n }\r\n\r\n this._authenticationTokens = {};\r\n authentication.authorities.forEach((authority) => this._authenticationTokens[authority.contextId] = authority.accessToken)\r\n }\r\n\r\n public selectAuthority(authority: Authority) {\r\n localStorage.setItem(this.LSK_ACTIVE_TENANT, '' + authority.contextId);\r\n this._selectedAuthority$.next(authority);\r\n }\r\n\r\n public logout() {\r\n this.refreshToken = null;\r\n localStorage.removeItem(this.LSK_REFRESH_TOKEN);\r\n localStorage.removeItem(this.LSK_ACTIVE_TENANT);\r\n\r\n this._selectedAuthority$.next(null);\r\n this._authorities$.next([]);\r\n }\r\n\r\n public get accessToken(): Observable<string> {\r\n return this._selectedAuthority$.pipe(\r\n switchMap((authority) => {\r\n if (!authority) {\r\n return EMPTY;\r\n }\r\n\r\n const token = this._authenticationTokens[authority.contextId];\r\n if (this.isValid(token)) {\r\n return of(token);\r\n }\r\n\r\n if (!this.isValid(this.refreshToken)) {\r\n this.logout();\r\n return EMPTY;\r\n }\r\n\r\n return this.authenticationClient.refreshToken(this.refreshToken ?? '').pipe(\r\n catchError(() => {\r\n this.logout()\r\n return EMPTY;\r\n }),\r\n tap((response) => {\r\n this._authenticationTokens = {};\r\n response?.authorities.forEach((access) => this._authenticationTokens[access.contextId] = access.accessToken)\r\n }),\r\n switchMap(() => {\r\n return of(this._authenticationTokens[authority.contextId]);\r\n })\r\n )\r\n }),\r\n filter((token) => !!token)\r\n )\r\n }\r\n\r\n public get activeUser$(): Observable<User> {\r\n return this._activeUser$.pipe(\r\n filter((user) => !!user),\r\n map((user) => user as User)\r\n );\r\n }\r\n\r\n public get activeUser(): User | null {\r\n return this._activeUser$.value;\r\n }\r\n\r\n public get authorities$(): Observable<Authority[]> {\r\n return this._authorities$.asObservable();\r\n }\r\n\r\n public get activeAuthority(): Authority | null {\r\n return this._selectedAuthority$.value;\r\n }\r\n\r\n public get activeAuthority$(): Observable<Authority> {\r\n return this._selectedAuthority$.pipe(\r\n filter((authority) => !!authority),\r\n map((authority) => authority as Authority)\r\n );\r\n }\r\n\r\n public get unfilteredActiveAuthority$(): Observable<Authority | null> {\r\n return this._selectedAuthority$.pipe(\r\n map((authority) => authority)\r\n );\r\n }\r\n\r\n public isAuthenticated(): Observable<boolean> {\r\n return of(this.isValid(this.refreshToken))\r\n }\r\n\r\n private isValid(token: string | null | undefined): boolean {\r\n if (!token) {\r\n return false;\r\n }\r\n\r\n const payload = jwtDecode<JwtPayload>(token);\r\n return (payload.exp ?? 0) * 1000 >= new Date().valueOf();\r\n }\r\n\r\n public getClaim(token: string, claim: string): any {\r\n const payload: any = jwtDecode<JwtPayload>(token);\r\n return payload[claim];\r\n }\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, combineLatestWith, filter, map, Observable } from \"rxjs\";\r\nimport { AuthenticationService } from \"./authentication.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PermissionsService {\r\n\r\n readonly auth = inject(AuthenticationService);\r\n\r\n private _assetPermissions$ = new BehaviorSubject<string[] | null>(null);\r\n\r\n private _globalPermissions$ = this.auth.activeAuthority$.pipe(\r\n map((authority) => authority ? authority.permissions : [])\r\n )\r\n\r\n private _permissions$ = this._assetPermissions$.pipe(\r\n combineLatestWith(this._globalPermissions$),\r\n filter(([asset]) => asset !== null),\r\n map(([asset, global]) => Array.from(new Set([...global, ...(asset as string[])]))),\r\n )\r\n\r\n public setAssetPermissions(permissions: string[] | null) {\r\n this._assetPermissions$.next(permissions)\r\n }\r\n\r\n public hasAnyPermission(permissions: string[]): Observable<boolean> {\r\n return this._globalPermissions$.pipe(\r\n map((allPermissions) => !permissions.length || permissions.some((permission) => this.hasPermission(allPermissions, permission)))\r\n )\r\n }\r\n\r\n public hasAllPermissions(permissions: string[]): Observable<boolean> {\r\n return this._globalPermissions$.pipe(\r\n map((allPermissions) => !permissions.length || permissions.every((permission) => this.hasPermission(allPermissions, permission)))\r\n )\r\n }\r\n\r\n public hasAnyGlobalOrAssetPermission(permissions: string[]): Observable<boolean> {\r\n return this._permissions$.pipe(\r\n map((allPermissions) => !permissions.length || permissions.some((permission) => this.hasPermission(allPermissions, permission)))\r\n )\r\n }\r\n\r\n public hasAllGlobalOrAssetPermissions(permissions: string[]): Observable<boolean> {\r\n return this._permissions$.pipe(\r\n map((allPermissions) => !permissions.length || permissions.every((permission) => this.hasPermission(allPermissions, permission)))\r\n )\r\n }\r\n\r\n public hasAnyPermissionSync(allPermissions: string[], permissions: string[]): boolean {\r\n return !permissions.length || permissions.some((permission) => this.hasPermission(allPermissions, permission))\r\n }\r\n\r\n hasPermission(allPermissions: string[], permission?: string): boolean {\r\n if (!permission) {\r\n return true;\r\n }\r\n\r\n const moduleFeaturePermission = permission.split('.');\r\n const everythingInModule = moduleFeaturePermission[0] + '.*';\r\n const everythingInFeature = moduleFeaturePermission[0] + '.' + moduleFeaturePermission[1] + '.*';\r\n return allPermissions.some((grantedPermission) => grantedPermission === '*' || grantedPermission === everythingInModule || grantedPermission === everythingInFeature || grantedPermission === permission);\r\n }\r\n}\r\n","import { Permission } from \"../enum/permission.enum\";\r\nimport { CanActivateFn, Router, Routes } from \"@angular/router\";\r\nimport { inject } from \"@angular/core\";\r\nimport { map } from \"rxjs\";\r\nimport { PermissionsService } from \"../service/permissions.service\";\r\n\r\nexport const createGlobalPermissionsGuard = (availableRoutesGetter: () => Routes, fallbackRoute: string[], parentRoutes?: string[]) => {\r\n let checkedRoutes: string[] = [];\r\n\r\n const permissionsGuard = (permissions: Permission | Permission[]): CanActivateFn =>\r\n (route, state) => {\r\n const router = inject(Router);\r\n const permissionService = inject(PermissionsService);\r\n\r\n const permissionsToCheck = Array.isArray(permissions) ? permissions : [permissions];\r\n return permissionService.hasAnyPermission(permissionsToCheck).pipe(\r\n map((hasPermissions) => {\r\n\r\n if (hasPermissions) {\r\n checkedRoutes = [];\r\n return true;\r\n }\r\n\r\n const currentRoute = route.routeConfig?.path;\r\n\r\n if (!currentRoute) {\r\n checkedRoutes = [];\r\n return router.createUrlTree(fallbackRoute);\r\n }\r\n\r\n checkedRoutes.push(currentRoute);\r\n\r\n const availableRoutes = availableRoutesGetter()?.filter(route => route.path !== '**');\r\n\r\n const nextRoute = availableRoutes?.find((route) => route.path !== currentRoute && !checkedRoutes.includes(route.path as string));\r\n\r\n if (nextRoute) {\r\n return router.createUrlTree(parentRoutes ? [...parentRoutes, nextRoute.path] : [nextRoute.path])\r\n }\r\n\r\n checkedRoutes = [];\r\n return router.createUrlTree(fallbackRoute);\r\n })\r\n )\r\n };\r\n\r\n return permissionsGuard;\r\n};\r\n","import { inject, Injectable, Injector, runInInjectionContext } from '@angular/core';\r\nimport { BehaviorSubject, catchError, forkJoin, from, map, Observable, of } from 'rxjs';\r\nimport { SvgIcon } from '../component/+common/model/icon';\r\nimport { loadRemoteModule } from '@angular-architects/native-federation';\r\n\r\nexport interface Feature {\r\n name: string;\r\n icon: SvgIcon;\r\n order: number;\r\n route: string;\r\n translationPrefix: string;\r\n permission?: string | string[];\r\n primaryColor?: string;\r\n secondaryColor?: string;\r\n tertiaryColor?: string;\r\n init?: () => void;\r\n}\r\n\r\nexport interface ExternalFeature {\r\n remote: string;\r\n exposedModule: string;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FeatureRegistry {\r\n\r\n private readonly injector = inject(Injector);\r\n private readonly _features = new BehaviorSubject<Feature[]>([]);\r\n\r\n registerFeature(feature: Feature): void {\r\n runInInjectionContext(this.injector, () => feature.init?.());\r\n this._features.next([...this._features.value, feature]);\r\n }\r\n\r\n loadExternalFeatures(features: ExternalFeature[]): void {\r\n forkJoin(\r\n features.map(externalFeature =>\r\n from(loadRemoteModule(externalFeature.remote, externalFeature.exposedModule)).pipe(\r\n map(module => module.feature as Feature),\r\n catchError(() => of(null))\r\n )\r\n )\r\n ).pipe(\r\n map(list => list.filter((x): x is Feature => x !== null))\r\n ).subscribe((externalFeatures: Feature[]) => {\r\n externalFeatures.forEach(feature => this.registerFeature(feature));\r\n })\r\n }\r\n\r\n get features(): Observable<Feature[]> {\r\n return this._features.pipe(\r\n map(features => [...features].sort((a, b) => a.order - b.order))\r\n )\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, distinctUntilChanged } from \"rxjs\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class MapsLoaderService {\r\n\r\n private readonly scriptSrc = 'https://maps.googleapis.com/maps/api/js?key=GOOGLE_MAPS_API_KEY&libraries=marker&callback=initMap';\r\n private readonly elementId = 'google-maps-script';\r\n\r\n readonly apiKey$ = new BehaviorSubject<string | null>(null);\r\n readonly mapsLoaded$ = new BehaviorSubject<boolean>(false);\r\n readonly mapError$ = new BehaviorSubject<string>('');\r\n\r\n constructor() {\r\n this.apiKey$.pipe(\r\n takeUntilDestroyed(),\r\n distinctUntilChanged((previous, current) => JSON.stringify(previous) === JSON.stringify(current))\r\n ).subscribe((apiKey) => {\r\n try {\r\n this.mapsLoaded$.next(false);\r\n this.mapError$.next('');\r\n\r\n const existingScript = document.getElementById(this.elementId);\r\n if (existingScript) {\r\n existingScript.remove();\r\n }\r\n\r\n if (!apiKey) {\r\n this.mapsLoaded$.next(false);\r\n this.mapError$.next('GOOGLE_MAPS_API_KEY_NOT_FOUND');\r\n return;\r\n }\r\n\r\n const scriptElement = document?.createElement('script');\r\n scriptElement.id = this.elementId;\r\n scriptElement.src = this.scriptSrc.replace('GOOGLE_MAPS_API_KEY', apiKey);\r\n scriptElement.async = true;\r\n scriptElement.defer = true;\r\n\r\n scriptElement.onerror = (event) => {\r\n this.mapsLoaded$.next(false);\r\n this.mapError$.next('GOOGLE_MAPS_API_KEY_LOADING_ERROR')\r\n }\r\n\r\n (window as any)['initMap'] = () => {\r\n this.mapsLoaded$.next(true);\r\n }\r\n\r\n document.head.appendChild(scriptElement);\r\n } catch (e) {\r\n this.mapsLoaded$.next(false)\r\n this.mapError$.next('GOOGLE_MAPS_API_KEY_LOADING_ERROR')\r\n }\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class NotificationService {\r\n\r\n constructor(private snackBar: MatSnackBar, private translationService: TranslateService) {\r\n }\r\n\r\n showInfo(message: string, duration = 2000) {\r\n this.showNotification('snackbar-info', this.translationService.instant(message), duration);\r\n }\r\n\r\n showSuccess(message: string, duration = 2000) {\r\n this.showNotification('snackbar-success', this.translationService.instant(message), duration);\r\n }\r\n\r\n showWarning(message: string, duration = 2000) {\r\n this.showNotification('snackbar-warning', this.translationService.instant(message), duration);\r\n }\r\n\r\n showError(message: string, messageParameters?: any, duration = 2000) {\r\n this.showNotification('snackbar-error', this.translationService.instant(message, messageParameters), duration);\r\n return of(null);\r\n }\r\n\r\n showGenericError(error?: any, duration = 3000) {\r\n const errorDetails = !error ? '' : ': ' + error.message;\r\n this.showNotification('snackbar-error', this.translationService.instant('COMMON.GENERIC_ERROR') + errorDetails, duration);\r\n return of(null);\r\n }\r\n\r\n private showNotification(panelClass: string, message: string, duration: number) {\r\n this.snackBar.open(message, '', {duration, panelClass});\r\n }\r\n}\r\n","export class Locale {\r\n name: string;\r\n language: string\r\n country: string\r\n code: string;\r\n countryLocaleCode; // TODO Find out the real name...\r\n\r\n constructor(language: string, country: string, name: string) {\r\n this.name = name;\r\n this.language = language;\r\n this.country = country;\r\n this.code = !this.country ? this.language : this.language + '-' + this.country\r\n this.countryLocaleCode = !this.country ? this.language : this.language + '_' + this.country\r\n }\r\n}\r\n\r\nexport const DEFAULT_LOCALE = new Locale(\"en\", \"GB\", \"English (United Kingdom)\");\r\n\r\nexport const LOCALES: Locale[] = [\r\n new Locale(\"af\", \"\", \"Afrikaans\"),\r\n new Locale(\"af\", \"NA\", \"Afrikaans (Namibia)\"),\r\n new Locale(\"af\", \"ZA\", \"Afrikaans (South Africa)\"),\r\n new Locale(\"agq\", \"\", \"Aghem\"),\r\n new Locale(\"agq\", \"CM\", \"Aghem (Cameroon)\"),\r\n new Locale(\"ak\", \"\", \"Akan\"),\r\n new Locale(\"ak\", \"GH\", \"Akan (Ghana)\"),\r\n new Locale(\"sq\", \"\", \"Albanian\"),\r\n new Locale(\"sq\", \"AL\", \"Albanian (Albania)\"),\r\n new Locale(\"sq\", \"XK\", \"Albanian (Kosovo)\"),\r\n new Locale(\"sq\", \"MK\", \"Albanian (North Macedonia)\"),\r\n new Locale(\"am\", \"\", \"Amharic\"),\r\n new Locale(\"am\", \"ET\", \"Amharic (Ethiopia)\"),\r\n new Locale(\"ar\", \"\", \"Arabic\"),\r\n new Locale(\"ar\", \"DZ\", \"Arabic (Algeria)\"),\r\n new Locale(\"ar\", \"BH\", \"Arabic (Bahrain)\"),\r\n new Locale(\"ar\", \"TD\", \"Arabic (Chad)\"),\r\n new Locale(\"ar\", \"KM\", \"Arabic (Comoros)\"),\r\n new Locale(\"ar\", \"DJ\", \"Arabic (Djibouti)\"),\r\n new Locale(\"ar\", \"EG\", \"Arabic (Egypt)\"),\r\n new Locale(\"ar\", \"ER\", \"Arabic (Eritrea)\"),\r\n new Locale(\"ar\", \"IQ\", \"Arabic (Iraq)\"),\r\n new Locale(\"ar\", \"IL\", \"Arabic (Israel)\"),\r\n new Locale(\"ar\", \"JO\", \"Arabic (Jordan)\"),\r\n new Locale(\"ar\", \"KW\", \"Arabic (Kuwait)\"),\r\n new Locale(\"ar\", \"LB\", \"Arabic (Lebanon)\"),\r\n new Locale(\"ar\", \"LY\", \"Arabic (Libya)\"),\r\n new Locale(\"ar\", \"MR\", \"Arabic (Mauritania)\"),\r\n new Locale(\"ar\", \"MA\", \"Arabic (Morocco)\"),\r\n new Locale(\"ar\", \"OM\", \"Arabic (Oman)\"),\r\n new Locale(\"ar\", \"PS\", \"Arabic (Palestinian Territories)\"),\r\n new Locale(\"ar\", \"QA\", \"Arabic (Qatar)\"),\r\n new Locale(\"ar\", \"SA\", \"Arabic (Saudi Arabia)\"),\r\n new Locale(\"ar\", \"SO\", \"Arabic (Somalia)\"),\r\n new Locale(\"ar\", \"SS\", \"Arabic (South Sudan)\"),\r\n new Locale(\"ar\", \"SD\", \"Arabic (Sudan)\"),\r\n new Locale(\"ar\", \"SY\", \"Arabic (Syria)\"),\r\n new Locale(\"ar\", \"TN\", \"Arabic (Tunisia)\"),\r\n new Locale(\"ar\", \"AE\", \"Arabic (United Arab Emirates)\"),\r\n new Locale(\"ar\", \"EH\", \"Arabic (Western Sahara)\"),\r\n new Locale(\"ar\", \"YE\", \"Arabic (Yemen)\"),\r\n new Locale(\"ar\", \"001\", \"Arabic (world)\"),\r\n new Locale(\"hy\", \"\", \"Armenian\"),\r\n new Locale(\"hy\", \"AM\", \"Armenian (Armenia)\"),\r\n new Locale(\"as\", \"\", \"Assamese\"),\r\n new Locale(\"as\", \"IN\", \"Assamese (India)\"),\r\n new Locale(\"ast\", \"\", \"Asturian\"),\r\n new Locale(\"ast\", \"ES\", \"Asturian (Spain)\"),\r\n new Locale(\"asa\", \"\", \"Asu\"),\r\n new Locale(\"asa\", \"TZ\", \"Asu (Tanzania)\"),\r\n new Locale(\"az\", \"\", \"Azerbaijani\"),\r\n new Locale(\"az\", \"AZ\", \"Azerbaijani (Azerbaijan)\"),\r\n new Locale(\"ksf\", \"\", \"Bafia\"),\r\n new Locale(\"ksf\", \"CM\", \"Bafia (Cameroon)\"),\r\n new Locale(\"bm\", \"\", \"Bambara\"),\r\n new Locale(\"bm\", \"ML\", \"Bambara (Mali)\"),\r\n new Locale(\"bn\", \"\", \"Bangla\"),\r\n new Locale(\"bn\", \"BD\", \"Bangla (Bangladesh)\"),\r\n new Locale(\"bn\", \"IN\", \"Bangla (India)\"),\r\n new Locale(\"bas\", \"\", \"Basaa\"),\r\n new Locale(\"bas\", \"CM\", \"Basaa (Cameroon)\"),\r\n new Locale(\"eu\", \"\", \"Basque\"),\r\n new Locale(\"eu\", \"ES\", \"Basque (Spain)\"),\r\n new Locale(\"be\", \"\", \"Belarusian\"),\r\n new Locale(\"be\", \"BY\", \"Belarusian (Belarus)\"),\r\n new Locale(\"bem\", \"\", \"Bemba\"),\r\n new Locale(\"bem\", \"ZM\", \"Bemba (Zambia)\"),\r\n new Locale(\"bez\", \"\", \"Bena\"),\r\n new Locale(\"bez\", \"TZ\", \"Bena (Tanzania)\"),\r\n new Locale(\"bho\", \"\", \"Bhojpuri\"),\r\n new Locale(\"bho\", \"IN\", \"Bhojpuri (India)\"),\r\n new Locale(\"brx\", \"\", \"Bodo\"),\r\n new Locale(\"brx\", \"IN\", \"Bodo (India)\"),\r\n new Locale(\"bs\", \"\", \"Bosnian\"),\r\n new Locale(\"bs\", \"BA\", \"Bosnian (Bosnia & Herzegovina)\"),\r\n new Locale(\"br\", \"\", \"Breton\"),\r\n new Locale(\"br\", \"FR\", \"Breton (France)\"),\r\n new Locale(\"bg\", \"\", \"Bulgarian\"),\r\n new Locale(\"bg\", \"BG\", \"Bulgarian (Bulgaria)\"),\r\n new Locale(\"my\", \"\", \"Burmese\"),\r\n new Locale(\"my\", \"MM\", \"Burmese (Myanmar (Burma))\"),\r\n new Locale(\"yue\", \"\", \"Cantonese\"),\r\n new Locale(\"yue\", \"CN\", \"Cantonese (China)\"),\r\n new Locale(\"yue\", \"HK\", \"Cantonese (Hong Kong SAR China)\"),\r\n new Locale(\"ca\", \"\", \"Catalan\"),\r\n new Locale(\"ca\", \"AD\", \"Catalan (Andorra)\"),\r\n new Locale(\"ca\", \"FR\", \"Catalan (France)\"),\r\n new Locale(\"ca\", \"IT\", \"Catalan (Italy)\"),\r\n new Locale(\"ca\", \"ES\", \"Catalan (Spain)\"),\r\n new Locale(\"ceb\", \"\", \"Cebuano\"),\r\n new Locale(\"ceb\", \"PH\", \"Cebuano (Philippines)\"),\r\n new Locale(\"tzm\", \"\", \"Central Atlas Tamazight\"),\r\n new Locale(\"tzm\", \"MA\", \"Central Atlas Tamazight (Morocco)\"),\r\n new Locale(\"ckb\", \"\", \"Central Kurdish\"),\r\n new Locale(\"ckb\", \"IR\", \"Central Kurdish (Iran)\"),\r\n new Locale(\"ckb\", \"IQ\", \"Central Kurdish (Iraq)\"),\r\n new Locale(\"ccp\", \"\", \"Chakma\"),\r\n new Locale(\"ccp\", \"BD\", \"Chakma (Bangladesh)\"),\r\n new Locale(\"ccp\", \"IN\", \"Chakma (India)\"),\r\n new Locale(\"ce\", \"\", \"Chechen\"),\r\n new Locale(\"ce\", \"RU\", \"Chechen (Russia)\"),\r\n new Locale(\"chr\", \"\", \"Cherokee\"),\r\n new Locale(\"chr\", \"US\", \"Cherokee (United States)\"),\r\n new Locale(\"cgg\", \"\", \"Chiga\"),\r\n new Locale(\"cgg\", \"UG\", \"Chiga (Uganda)\"),\r\n new Locale(\"zh\", \"\", \"Chinese\"),\r\n new Locale(\"zh\", \"CN\", \"Chinese (China)\"),\r\n new Locale(\"zh\", \"HK\", \"Chinese (Hong Kong SAR China)\"),\r\n new Locale(\"zh\", \"MO\", \"Chinese (Macao SAR China)\"),\r\n new Locale(\"zh\", \"SG\", \"Chinese (Singapore)\"),\r\n new Locale(\"zh\", \"TW\", \"Chinese (Taiwan)\"),\r\n new Locale(\"cv\", \"\", \"Chuvash\"),\r\n new Locale(\"cv\", \"RU\", \"Chuvash (Russia)\"),\r\n new Locale(\"ksh\", \"\", \"Colognian\"),\r\n new Locale(\"ksh\", \"DE\", \"Colognian (Germany)\"),\r\n new Locale(\"kw\", \"\", \"Cornish\"),\r\n new Locale(\"kw\", \"GB\", \"Cornish (United Kingdom)\"),\r\n new Locale(\"hr\", \"\", \"Croatian\"),\r\n new Locale(\"hr\", \"BA\", \"Croatian (Bosnia & Herzegovina)\"),\r\n new Locale(\"hr\", \"HR\", \"Croatian (Croatia)\"),\r\n new Locale(\"cs\", \"\", \"Czech\"),\r\n new Locale(\"cs\", \"CZ\", \"Czech (Czechia)\"),\r\n new Locale(\"da\", \"\", \"Danish\"),\r\n new Locale(\"da\", \"DK\", \"Danish (Denmark)\"),\r\n new Locale(\"da\", \"GL\", \"Danish (Greenland)\"),\r\n new Locale(\"doi\", \"\", \"Dogri\"),\r\n new Locale(\"doi\", \"IN\", \"Dogri (India)\"),\r\n new Locale(\"dua\", \"\", \"Duala\"),\r\n new Locale(\"dua\", \"CM\", \"Duala (Cameroon)\"),\r\n new Locale(\"nl\", \"\", \"Dutch\"),\r\n new Locale(\"nl\", \"AW\", \"Dutch (Aruba)\"),\r\n new Locale(\"nl\", \"BE\", \"Dutch (Belgium)\"),\r\n new Locale(\"nl\", \"BQ\", \"Dutch (Caribbean Netherlands)\"),\r\n new Locale(\"nl\", \"CW\", \"Dutch (Curaçao)\"),\r\n new Locale(\"nl\", \"NL\", \"Dutch (Netherlands)\"),\r\n new Locale(\"nl\", \"SX\", \"Dutch (Sint Maarten)\"),\r\n new Locale(\"nl\", \"SR\", \"Dutch (Suriname)\"),\r\n new Locale(\"dz\", \"\", \"Dzongkha\"),\r\n new Locale(\"dz\", \"BT\", \"Dzongkha (Bhutan)\"),\r\n new Locale(\"ebu\", \"\", \"Embu\"),\r\n new Locale(\"ebu\", \"KE\", \"Embu (Kenya)\"),\r\n new Locale(\"en\", \"\", \"English\"),\r\n new Locale(\"en\", \"AS\", \"English (American Samoa)\"),\r\n new Locale(\"en\", \"AI\", \"English (Anguilla)\"),\r\n new Locale(\"en\", \"AG\", \"English (Antigua & Barbuda)\"),\r\n new Locale(\"en\", \"AU\", \"English (Australia)\"),\r\n new Locale(\"en\", \"AT\", \"English (Austria)\"),\r\n new Locale(\"en\", \"BS\", \"English (Bahamas)\"),\r\n new Locale(\"en\", \"BB\", \"English (Barbados)\"),\r\n new Locale(\"en\", \"BE\", \"English (Belgium)\"),\r\n new Locale(\"en\", \"BZ\", \"English (Belize)\"),\r\n new Locale(\"en\", \"BM\", \"English (Bermuda)\"),\r\n new Locale(\"en\", \"BW\", \"English (Botswana)\"),\r\n new Locale(\"en\", \"IO\", \"English (British Indian Ocean Territory)\"),\r\n new Locale(\"en\", \"VG\", \"English (British Virgin Islands)\"),\r\n new Locale(\"en\", \"BI\", \"English (Burundi)\"),\r\n new Locale(\"en\", \"CM\", \"English (Cameroon)\"),\r\n new Locale(\"en\", \"CA\", \"English (Canada)\"),\r\n new Locale(\"en\", \"KY\", \"English (Cayman Islands)\"),\r\n new Locale(\"en\", \"CX\", \"English (Christmas Island)\"),\r\n new Locale(\"en\", \"CC\", \"English (Cocos (Keeling) Islands)\"),\r\n new Locale(\"en\", \"CK\", \"English (Cook Islands)\"),\r\n new Locale(\"en\", \"CY\", \"English (Cyprus)\"),\r\n new Locale(\"en\", \"DK\", \"English (Denmark)\"),\r\n new Locale(\"en\", \"DG\", \"English (Diego Garcia)\"),\r\n new Locale(\"en\", \"DM\", \"English (Dominica)\"),\r\n new Locale(\"en\", \"ER\", \"English (Eritrea)\"),\r\n new Locale(\"en\", \"SZ\", \"English (Eswatini)\"),\r\n new Locale(\"en\", \"150\", \"English (Europe)\"),\r\n new Locale(\"en\", \"FK\", \"English (Falkland Islands)\"),\r\n new Locale(\"en\", \"FJ\", \"English (Fiji)\"),\r\n new Locale(\"en\", \"FI\", \"English (Finland)\"),\r\n new Locale(\"en\", \"GM\", \"English (Gambia)\"),\r\n new Locale(\"en\", \"DE\", \"English (Germany)\"),\r\n new Locale(\"en\", \"GH\", \"English (Ghana)\"),\r\n new Locale(\"en\", \"GI\", \"English (Gibraltar)\"),\r\n new Locale(\"en\", \"GD\", \"English (Grenada)\"),\r\n new Locale(\"en\", \"GU\", \"English (Guam)\"),\r\n new Locale(\"en\", \"GG\", \"English (Guernsey)\"),\r\n new Locale(\"en\", \"GY\", \"English (Guyana)\"),\r\n new Locale(\"en\", \"HK\", \"English (Hong Kong SAR China)\"),\r\n new Locale(\"en\", \"IN\", \"English (India)\"),\r\n new Locale(\"en\", \"IE\", \"English (Ireland)\"),\r\n new Locale(\"en\", \"IM\", \"English (Isle of Man)\"),\r\n new Locale(\"en\", \"IL\", \"English (Israel)\"),\r\n new Locale(\"en\", \"JM\", \"English (Jamaica)\"),\r\n new Locale(\"en\", \"JE\", \"English (Jersey)\"),\r\n new Locale(\"en\", \"KE\", \"English (Kenya)\"),\r\n new Locale(\"en\", \"KI\", \"English (Kiribati)\"),\r\n new Locale(\"en\", \"LS\", \"English (Lesotho)\"),\r\n new Locale(\"en\", \"LR\", \"English (Liberia)\"),\r\n new Locale(\"en\", \"MO\", \"English (Macao SAR China)\"),\r\n new Locale(\"en\", \"MG\", \"English (Madagascar)\"),\r\n new Locale(\"en\", \"MW\", \"English (Malawi)\"),\r\n new Locale(\"en\", \"MY\", \"English (Malaysia)\"),\r\n new Locale(\"en\", \"MV\", \"English (Maldives)\"),\r\n new Locale(\"en\", \"MT\", \"English (Malta)\"),\r\n new Locale(\"en\", \"MH\", \"English (Marshall Islands)\"),\r\n new Locale(\"en\", \"MU\", \"English (Mauritius)\"),\r\n new Locale(\"en\", \"FM\", \"English (Micronesia)\"),\r\n new Locale(\"en\", \"MS\", \"English (Montserrat)\"),\r\n new Locale(\"en\", \"NA\", \"English (Namibia)\"),\r\n new Locale(\"en\", \"NR\", \"English (Nauru)\"),\r\n new Locale(\"en\", \"NL\", \"English (Netherlands)\"),\r\n new Locale(\"en\", \"NZ\", \"English (New Zealand)\"),\r\n new Locale(\"en\", \"NG\", \"English (Nigeria)\"),\r\n new Locale(\"en\", \"NU\", \"English (Niue)\"),\r\n new Locale(\"en\", \"NF\", \"English (Norfolk Island)\"),\r\n new Locale(\"en\", \"MP\", \"English (Northern Mariana Islands)\"),\r\n new Locale(\"en\", \"PK\", \"English (Pakistan)\"),\r\n new Locale(\"en\", \"PW\", \"English (Palau)\"),\r\n new Locale(\"en\", \"PG\", \"English (Papua New Guinea)\"),\r\n new Locale(\"en\", \"PH\", \"English (Philippines)\"),\r\n new Locale(\"en\", \"PN\", \"English (Pitcairn Islands)\"),\r\n new Locale(\"en\", \"PR\", \"English (Puerto Rico)\"),\r\n new Locale(\"en\", \"RW\", \"English (Rwanda)\"),\r\n new Locale(\"en\", \"WS\", \"English (Samoa)\"),\r\n new Locale(\"en\", \"SC\", \"English (Seychelles)\"),\r\n new Locale(\"en\", \"SL\", \"English (Sierra Leone)\"),\r\n new Locale(\"en\", \"SG\", \"English (Singapore)\"),\r\n new Locale(\"en\", \"SX\", \"English (Sint Maarten)\"),\r\n new Locale(\"en\", \"SI\", \"English (Slovenia)\"),\r\n new Locale(\"en\", \"SB\", \"English (Solomon Islands)\"),\r\n new Locale(\"en\", \"ZA\", \"English (South Africa)\"),\r\n new Locale(\"en\", \"SS\", \"English (South Sudan)\"),\r\n new Locale(\"en\", \"SH\", \"English (St. Helena)\"),\r\n new Locale(\"en\", \"KN\", \"English (St. Kitts & Nevis)\"),\r\n new Locale(\"en\", \"LC\", \"English (St. Lucia)\"),\r\n new Locale(\"en\", \"VC\", \"English (St. Vincent & Grenadines)\"),\r\n new Locale(\"en\", \"SD\", \"English (Sudan)\"),\r\n new Locale(\"en\", \"SE\", \"English (Sweden)\"),\r\n new Locale(\"en\", \"CH\", \"English (Switzerland)\"),\r\n new Locale(\"en\", \"TZ\", \"English (Tanzania)\"),\r\n new Locale(\"en\", \"TK\", \"English (Tokelau)\"),\r\n new Locale(\"en\", \"TO\", \"English (Tonga)\"),\r\n new Locale(\"en\", \"TT\", \"English (Trinidad & Tobago)\"),\r\n new Locale(\"en\", \"TC\", \"English (Turks & Caicos Islands)\"),\r\n new Locale(\"en\", \"TV\", \"English (Tuvalu)\"),\r\n new Locale(\"en\", \"UM\", \"English (U.S. Outlying Islands)\"),\r\n new Locale(\"en\", \"VI\", \"English (U.S. Virgin Islands)\"),\r\n new Locale(\"en\", \"UG\", \"English (Uganda)\"),\r\n new Locale(\"en\", \"AE\", \"English (United Arab Emirates)\"),\r\n new Locale(\"en\", \"GB\", \"English (United Kingdom)\"),\r\n new Locale(\"en\", \"US\", \"English (United States)\"),\r\n new Locale(\"en\", \"VU\", \"English (Vanuatu)\"),\r\n new Locale(\"en\", \"ZM\", \"English (Zambia)\"),\r\n new Locale(\"en\", \"ZW\", \"English (Zimbabwe)\"),\r\n new Locale(\"en\", \"001\", \"English (world)\"),\r\n new Locale(\"eo\", \"\", \"Esperanto\"),\r\n new Locale(\"eo\", \"001\", \"Esperanto (world)\"),\r\n new Locale(\"et\", \"\", \"Estonian\"),\r\n new Locale(\"et\", \"EE\", \"Estonian (Estonia)\"),\r\n new Locale(\"ee\", \"\", \"Ewe\"),\r\n new Locale(\"ee\", \"GH\", \"Ewe (Ghana)\"),\r\n new Locale(\"ee\", \"TG\", \"Ewe (Togo)\"),\r\n new Locale(\"ewo\", \"\", \"Ewondo\"),\r\n new Locale(\"ewo\", \"CM\", \"Ewondo (Cameroon)\"),\r\n new Locale(\"fo\", \"\", \"Faroese\"),\r\n new Locale(\"fo\", \"DK\", \"Faroese (Denmark)\"),\r\n new Locale(\"fo\", \"FO\", \"Faroese (Faroe Islands)\"),\r\n new Locale(\"fil\", \"\", \"Filipino\"),\r\n new Locale(\"fil\", \"PH\", \"Filipino (Philippines)\"),\r\n new Locale(\"fi\", \"\", \"Finnish\"),\r\n new Locale(\"fi\", \"FI\", \"Finnish (Finland)\"),\r\n new Locale(\"fr\", \"\", \"French\"),\r\n new Locale(\"fr\", \"DZ\", \"French (Algeria)\"),\r\n new Locale(\"fr\", \"BE\", \"French (Belgium)\"),\r\n new Locale(\"fr\", \"BJ\", \"French (Benin)\"),\r\n new Locale(\"fr\", \"BF\", \"French (Burkina Faso)\"),\r\n new Locale(\"fr\", \"BI\", \"French (Burundi)\"),\r\n new Locale(\"fr\", \"CM\", \"French (Cameroon)\"),\r\n new Locale(\"fr\", \"CA\", \"French (Canada)\"),\r\n new Locale(\"fr\", \"CF\", \"French (Central African Republic)\"),\r\n new Locale(\"fr\", \"TD\", \"French (Chad)\"),\r\n new Locale(\"fr\", \"KM\", \"French (Comoros)\"),\r\n new Locale(\"fr\", \"CG\", \"French (Congo - Brazzaville)\"),\r\n new Locale(\"fr\", \"CD\", \"French (Congo - Kinshasa)\"),\r\n new Locale(\"fr\", \"CI\", \"French (Côte d’Ivoire)\"),\r\n new Locale(\"fr\", \"DJ\", \"French (Djibouti)\"),\r\n new Locale(\"fr\", \"GQ\", \"French (Equatorial Guinea)\"),\r\n new Locale(\"fr\", \"FR\", \"French (France)\"),\r\n new Locale(\"fr\", \"GF\", \"French (French Guiana)\"),\r\n new Locale(\"fr\", \"PF\", \"French (French Polynesia)\"),\r\n new Locale(\"fr\", \"GA\", \"French (Gabon)\"),\r\n new Locale(\"fr\", \"GP\", \"French (Guadeloupe)\"),\r\n new Locale(\"fr\", \"GN\", \"French (Guinea)\"),\r\n new Locale(\"fr\", \"HT\", \"French (Haiti)\"),\r\n new Locale(\"fr\", \"LU\", \"French (Luxembourg)\"),\r\n new Locale(\"fr\", \"MG\", \"French (Madagascar)\"),\r\n new Locale(\"fr\", \"ML\", \"French (Mali)\"),\r\n new Locale(\"fr\", \"MQ\", \"French (Martinique)\"),\r\n new Locale(\"fr\", \"MR\", \"French (Mauritania)\"),\r\n new Locale(\"fr\", \"MU\", \"French (Mauritius)\"),\r\n new Locale(\"fr\", \"YT\", \"French (Mayotte)\"),\r\n new Locale(\"fr\", \"MC\", \"French (Monaco)\"),\r\n new Locale(\"fr\", \"MA\", \"French (Morocco)\"),\r\n new Locale(\"fr\", \"NC\", \"French (New Caledonia)\"),\r\n new Locale(\"fr\", \"NE\", \"French (Niger)\"),\r\n new Locale(\"fr\", \"RW\", \"French (Rwanda)\"),\r\n new Locale(\"fr\", \"RE\", \"French (Réunion)\"),\r\n new Locale(\"fr\", \"SN\", \"French (Senegal)\"),\r\n new Locale(\"fr\", \"SC\", \"French (Seychelles)\"),\r\n new Locale(\"fr\", \"BL\", \"French (St. Barthélemy)\"),\r\n new Locale(\"fr\", \"MF\", \"French (St. Martin)\"),\r\n new Locale(\"fr\", \"PM\", \"French (St. Pierre & Miquelon)\"),\r\n new Locale(\"fr\", \"CH\", \"French (Switzerland)\"),\r\n new Locale(\"fr\", \"SY\", \"French (Syria)\"),\r\n new Locale(\"fr\", \"TG\", \"French (Togo)\"),\r\n new Locale(\"fr\", \"TN\", \"French (Tunisia)\"),\r\n new Locale(\"fr\", \"VU\", \"French (Vanuatu)\"),\r\n new Locale(\"fr\", \"WF\", \"French (Wallis & Futuna)\"),\r\n new Locale(\"fur\", \"\", \"Friulian\"),\r\n new Locale(\"fur\", \"IT\", \"Friulian (Italy)\"),\r\n new Locale(\"ff\", \"\", \"Fula\"),\r\n new Locale(\"ff\", \"BF\", \"Fula (Adlam, Burkina Faso)\"),\r\n new Locale(\"ff\", \"CM\", \"Fula (Adlam, Cameroon)\"),\r\n new Locale(\"ff\", \"GM\", \"Fula (Adlam, Gambia)\"),\r\n new Locale(\"ff\", \"GH\", \"Fula (Adlam, Ghana)\"),\r\n new Locale(\"ff\", \"GW\", \"Fula (Adlam, Guinea-Bissau)\"),\r\n new Locale(\"ff\", \"LR\", \"Fula (Adlam, Liberia)\"),\r\n new Locale(\"ff\", \"MR\", \"Fula (Adlam, Mauritania)\"),\r\n new Locale(\"ff\", \"NE\", \"Fula (Adlam, Niger)\"),\r\n new Locale(\"ff\", \"NG\", \"Fula (Adlam, Nigeria)\"),\r\n new Locale(\"ff\", \"SL\", \"Fula (Adlam, Sierra Leone)\"),\r\n new Locale(\"ff\", \"GN\", \"Fula (Guinea)\"),\r\n new Locale(\"ff\", \"SN\", \"Fula (Senegal)\"),\r\n new Locale(\"gl\", \"\", \"Galician\"),\r\n new Locale(\"gl\", \"ES\", \"Galician (Spain)\"),\r\n new Locale(\"lg\", \"\", \"Ganda\"),\r\n new Locale(\"lg\", \"UG\", \"Ganda (Uganda)\"),\r\n new Locale(\"ka\", \"\", \"Georgian\"),\r\n new Locale(\"ka\", \"GE\", \"Georgian (Georgia)\"),\r\n new Locale(\"de\", \"\", \"German\"),\r\n new Locale(\"de\", \"AT\", \"German (Austria)\"),\r\n new Locale(\"de\", \"BE\", \"German (Belgium)\"),\r\n new Locale(\"de\", \"DE\", \"German (Germany)\"),\r\n new Locale(\"de\", \"IT\", \"German (Italy)\"),\r\n new Locale(\"de\", \"LI\", \"German (Liechtenstein)\"),\r\n new Locale(\"de\", \"LU\", \"German (Luxembourg)\"),\r\n new Locale(\"de\", \"CH\", \"German (Switzerland)\"),\r\n new Locale(\"el\", \"\", \"Greek\"),\r\n new Locale(\"el\", \"CY\", \"Greek (Cyprus)\"),\r\n new Locale(\"el\", \"GR\", \"Greek (Greece)\"),\r\n new Locale(\"gu\", \"\", \"Gujarati\"),\r\n new Locale(\"gu\", \"IN\", \"Gujarati (India)\"),\r\n new Locale(\"guz\", \"\", \"Gusii\"),\r\n new Locale(\"guz\", \"KE\", \"Gusii (Kenya)\"),\r\n new Locale(\"bgc\", \"\", \"Haryanvi\"),\r\n new Locale(\"bgc\", \"IN\", \"Haryanvi (India)\"),\r\n new Locale(\"ha\", \"\", \"Hausa\"),\r\n new Locale(\"ha\", \"GH\", \"Hausa (Ghana)\"),\r\n new Locale(\"ha\", \"NE\", \"Hausa (Niger)\"),\r\n new Locale(\"ha\", \"NG\", \"Hausa (Nigeria)\"),\r\n new Locale(\"haw\", \"\", \"Hawaiian\"),\r\n new Locale(\"haw\", \"US\", \"Hawaiian (United States)\"),\r\n new Locale(\"he\", \"\", \"Hebrew\"),\r\n new Locale(\"he\", \"IL\", \"Hebrew (Israel)\"),\r\n new Locale(\"hi\", \"\", \"Hindi\"),\r\n new Locale(\"hi\", \"IN\", \"Hindi (India)\"),\r\n new Locale(\"hu\", \"\", \"Hungarian\"),\r\n new Locale(\"hu\", \"HU\", \"Hungarian (Hungary)\"),\r\n new Locale(\"is\", \"\", \"Icelandic\"),\r\n new Locale(\"is\", \"IS\", \"Icelandic (Iceland)\"),\r\n new Locale(\"ig\", \"\", \"Igbo\"),\r\n new Locale(\"ig\", \"NG\", \"Igbo (Nigeria)\"),\r\n new Locale(\"smn\", \"\", \"Inari Sami\"),\r\n new Locale(\"smn\", \"FI\", \"Inari Sami (Finland)\"),\r\n new Locale(\"id\", \"\", \"Indonesian\"),\r\n new Locale(\"id\", \"ID\", \"Indonesian (Indonesia)\"),\r\n new Locale(\"ia\", \"\", \"Interlingua\"),\r\n new Locale(\"ia\", \"001\", \"Interlingua (world)\"),\r\n new Locale(\"ga\", \"\", \"Irish\"),\r\n new Locale(\"ga\", \"IE\", \"Irish (Ireland)\"),\r\n new Locale(\"ga\", \"GB\", \"Irish (United Kingdom)\"),\r\n new Locale(\"it\", \"\", \"Italian\"),\r\n new Locale(\"it\", \"IT\", \"Italian (Italy)\"),\r\n new Locale(\"it\", \"SM\", \"Italian (San Marino)\"),\r\n new Locale(\"it\", \"CH\", \"Italian (Switzerland)\"),\r\n new Locale(\"it\", \"VA\", \"Italian (Vatican City)\"),\r\n new Locale(\"ja\", \"\", \"Japanese\"),\r\n new Locale(\"ja\", \"JP\", \"Japanese (Japan)\"),\r\n new Locale(\"jv\", \"\", \"Javanese\"),\r\n new Locale(\"jv\", \"ID\", \"Javanese (Indonesia)\"),\r\n new Locale(\"dyo\", \"\", \"Jola-Fonyi\"),\r\n new Locale(\"dyo\", \"SN\", \"Jola-Fonyi (Senegal)\"),\r\n new Locale(\"kea\", \"\", \"Kabuverdianu\"),\r\n new Locale(\"kea\", \"CV\", \"Kabuverdianu (Cape Verde)\"),\r\n new Locale(\"kab\", \"\", \"Kabyle\"),\r\n new Locale(\"kab\", \"DZ\", \"Kabyle (Algeria)\"),\r\n new Locale(\"kgp\", \"\", \"Kaingang\"),\r\n new Locale(\"kgp\", \"BR\", \"Kaingang (Brazil)\"),\r\n new Locale(\"kkj\", \"\", \"Kako\"),\r\n new Locale(\"kkj\", \"CM\", \"Kako (Cameroon)\"),\r\n new Locale(\"kl\", \"\", \"Kalaallisut\"),\r\n new Locale(\"kl\", \"GL\", \"Kalaallisut (Greenland)\"),\r\n new Locale(\"kln\", \"\", \"Kalenjin\"),\r\n new Locale(\"kln\", \"KE\", \"Kalenjin (Kenya)\"),\r\n new Locale(\"kam\", \"\", \"Kamba\"),\r\n new Locale(\"kam\", \"KE\", \"Kamba (Kenya)\"),\r\n new Locale(\"kn\", \"\", \"Kannada\"),\r\n new Locale(\"kn\", \"IN\", \"Kannada (India)\"),\r\n new Locale(\"ks\", \"\", \"Kashmiri\"),\r\n new Locale(\"ks\", \"IN\", \"Kashmiri (India)\"),\r\n new Locale(\"kk\", \"\", \"Kazakh\"),\r\n new Locale(\"kk\", \"KZ\", \"Kazakh (Kazakhstan)\"),\r\n new Locale(\"km\", \"\", \"Khmer\"),\r\n new Locale(\"km\", \"KH\", \"Khmer (Cambodia)\"),\r\n new Locale(\"ki\", \"\", \"Kikuyu\"),\r\n new Locale(\"ki\", \"KE\", \"Kikuyu (Kenya)\"),\r\n new Locale(\"rw\", \"\", \"Kinyarwanda\"),\r\n new Locale(\"rw\", \"RW\", \"Kinyarwanda (Rwanda)\"),\r\n new Locale(\"kok\", \"\", \"Konkani\"),\r\n new Locale(\"kok\", \"IN\", \"Konkani (India)\"),\r\n new Locale(\"ko\", \"\", \"Korean\"),\r\n new Locale(\"ko\", \"KP\", \"Korean (North Korea)\"),\r\n new Locale(\"ko\", \"KR\", \"Korean (South Korea)\"),\r\n new Locale(\"khq\", \"\", \"Koyra Chiini\"),\r\n new Locale(\"khq\", \"ML\", \"Koyra Chiini (Mali)\"),\r\n new Locale(\"ses\", \"\", \"Koyraboro Senni\"),\r\n new Locale(\"ses\", \"ML\", \"Koyraboro Senni (Mali)\"),\r\n new Locale(\"ku\", \"\", \"Kurdish\"),\r\n new Locale(\"ku\", \"TR\", \"Kurdish (Türkiye)\"),\r\n new Locale(\"nmg\", \"\", \"Kwasio\"),\r\n new Locale(\"nmg\", \"CM\", \"Kwasio (Cameroon)\"),\r\n new Locale(\"ky\", \"\", \"Kyrgyz\"),\r\n new Locale(\"ky\", \"KG\", \"Kyrgyz (Kyrgyzstan)\"),\r\n new Locale(\"lkt\", \"\", \"Lakota\"),\r\n new Locale(\"lkt\", \"US\", \"Lakota (United States)\"),\r\n new Locale(\"lag\", \"\", \"Langi\"),\r\n new Locale(\"lag\", \"TZ\", \"Langi (Tanzania)\"),\r\n new Locale(\"lo\", \"\", \"Lao\"),\r\n new Locale(\"lo\", \"LA\", \"Lao (Laos)\"),\r\n new Locale(\"lv\", \"\", \"Latvian\"),\r\n new Locale(\"lv\", \"LV\", \"Latvian (Latvia)\"),\r\n new Locale(\"ln\", \"\", \"Lingala\"),\r\n new Locale(\"ln\", \"AO\", \"Lingala (Angola)\"),\r\n new Locale(\"ln\", \"CF\", \"Lingala (Central African Republic)\"),\r\n new Locale(\"ln\", \"CG\", \"Lingala (Congo - Brazzaville)\"),\r\n new Locale(\"ln\", \"CD\", \"Lingala (Congo - Kinshasa)\"),\r\n new Locale(\"lt\", \"\", \"Lithuanian\"),\r\n new Locale(\"lt\", \"LT\", \"Lithuanian (Lithuania)\"),\r\n new Locale(\"nds\", \"\", \"Low German\"),\r\n new Locale(\"nds\", \"DE\", \"Low German (Germany)\"),\r\n new Locale(\"nds\", \"NL\", \"Low German (Netherlands)\"),\r\n new Locale(\"dsb\", \"\", \"Lower Sorbian\"),\r\n new Locale(\"dsb\", \"DE\", \"Lower Sorbian (Germany)\"),\r\n new Locale(\"lu\", \"\", \"Luba-Katanga\"),\r\n new Locale(\"lu\", \"CD\", \"Luba-Katanga (Congo - Kinshasa)\"),\r\n new Locale(\"luo\", \"\", \"Luo\"),\r\n new Locale(\"luo\", \"KE\", \"Luo (Kenya)\"),\r\n new Locale(\"lb\", \"\", \"Luxembourgish\"),\r\n new Locale(\"lb\", \"LU\", \"Luxembourgish (Luxembourg)\"),\r\n new Locale(\"luy\", \"\", \"Luyia\"),\r\n new Locale(\"luy\", \"KE\", \"Luyia (Kenya)\"),\r\n new Locale(\"mk\", \"\", \"Macedonian\"),\r\n new Locale(\"mk\", \"MK\", \"Macedonian (North Macedonia)\"),\r\n new Locale(\"jmc\", \"\", \"Machame\"),\r\n new Locale(\"jmc\", \"TZ\", \"Machame (Tanzania)\"),\r\n new Locale(\"mai\", \"\", \"Maithili\"),\r\n new Locale(\"mai\", \"IN\", \"Maithili (India)\"),\r\n new Locale(\"mgh\", \"\", \"Makhuwa-Meetto\"),\r\n new Locale(\"mgh\", \"MZ\", \"Makhuwa-Meetto (Mozambique)\"),\r\n new Locale(\"kde\", \"\", \"Makonde\"),\r\n new Locale(\"kde\", \"TZ\", \"Makonde (Tanzania)\"),\r\n new Locale(\"mg\", \"\", \"Malagasy\"),\r\n new Locale(\"mg\", \"MG\", \"Malagasy (Madagascar)\"),\r\n new Locale(\"ms\", \"\", \"Malay\"),\r\n new Locale(\"ms\", \"BN\", \"Malay (Brunei)\"),\r\n new Locale(\"ms\", \"ID\", \"Malay (Indonesia)\"),\r\n new Locale(\"ms\", \"MY\", \"Malay (Malaysia)\"),\r\n new Locale(\"ms\", \"SG\", \"Malay (Singapore)\"),\r\n new Locale(\"ml\", \"\", \"Malayalam\"),\r\n new Locale(\"ml\", \"IN\", \"Malayalam (India)\"),\r\n new Locale(\"mt\", \"\", \"Maltese\"),\r\n new Locale(\"mt\", \"MT\", \"Maltese (Malta)\"),\r\n new Locale(\"mni\", \"\", \"Manipuri\"),\r\n new Locale(\"mni\", \"IN\", \"Manipuri (India)\"),\r\n new Locale(\"gv\", \"\", \"Manx\"),\r\n new Locale(\"gv\", \"IM\", \"Manx (Isle of Man)\"),\r\n new Locale(\"mr\", \"\", \"Marathi\"),\r\n new Locale(\"mr\", \"IN\", \"Marathi (India)\"),\r\n new Locale(\"mas\", \"\", \"Masai\"),\r\n new Locale(\"mas\", \"KE\", \"Masai (Kenya)\"),\r\n new Locale(\"mas\", \"TZ\", \"Masai (Tanzania)\"),\r\n new Locale(\"mzn\", \"\", \"Mazanderani\"),\r\n new Locale(\"mzn\", \"IR\", \"Mazanderani (Iran)\"),\r\n new Locale(\"mer\", \"\", \"Meru\"),\r\n new Locale(\"mer\", \"KE\", \"Meru (Kenya)\"),\r\n new Locale(\"mgo\", \"\", \"Metaʼ\"),\r\n new Locale(\"mgo\", \"CM\", \"Metaʼ (Cameroon)\"),\r\n new Locale(\"mdf\", \"\", \"Moksha\"),\r\n new Locale(\"mdf\", \"RU\", \"Moksha (Russia)\"),\r\n new Locale(\"mn\", \"\", \"Mongolian\"),\r\n new Locale(\"mn\", \"MN\", \"Mongolian (Mongolia)\"),\r\n new Locale(\"mfe\", \"\", \"Morisyen\"),\r\n new Locale(\"mfe\", \"MU\", \"Morisyen (Mauritius)\"),\r\n new Locale(\"mua\", \"\", \"Mundang\"),\r\n new Locale(\"mua\", \"CM\", \"Mundang (Cameroon)\"),\r\n new Locale(\"mi\", \"\", \"Māori\"),\r\n new Locale(\"mi\", \"NZ\", \"Māori (New Zealand)\"),\r\n new Locale(\"naq\", \"\", \"Nama\"),\r\n new Locale(\"naq\", \"NA\", \"Nama (Namibia)\"),\r\n new Locale(\"ne\", \"\", \"Nepali\"),\r\n new Locale(\"ne\", \"IN\", \"Nepali (India)\"),\r\n new Locale(\"ne\", \"NP\", \"Nepali (Nepal)\"),\r\n new Locale(\"nnh\", \"\", \"Ngiemboon\"),\r\n new Locale(\"nnh\", \"CM\", \"Ngiemboon (Cameroon)\"),\r\n new Locale(\"jgo\", \"\", \"Ngomba\"),\r\n new Locale(\"jgo\", \"CM\", \"Ngomba (Cameroon)\"),\r\n new Locale(\"yrl\", \"\", \"Nheengatu\"),\r\n new Locale(\"yrl\", \"BR\", \"Nheengatu (Brazil)\"),\r\n new Locale(\"yrl\", \"CO\", \"Nheengatu (Colombia)\"),\r\n new Locale(\"yrl\", \"VE\", \"Nheengatu (Venezuela)\"),\r\n new Locale(\"pcm\", \"\", \"Nigerian Pidgin\"),\r\n new Locale(\"pcm\", \"NG\", \"Nigerian Pidgin (Nigeria)\"),\r\n new Locale(\"nd\", \"\", \"North Ndebele\"),\r\n new Locale(\"nd\", \"ZW\", \"North Ndebele (Zimbabwe)\"),\r\n new Locale(\"frr\", \"\", \"Northern Frisian\"),\r\n new Locale(\"frr\", \"DE\", \"Northern Frisian (Germany)\"),\r\n new Locale(\"lrc\", \"\", \"Northern Luri\"),\r\n new Locale(\"lrc\", \"IR\", \"Northern Luri (Iran)\"),\r\n new Locale(\"lrc\", \"IQ\", \"Northern Luri (Iraq)\"),\r\n new Locale(\"se\", \"\", \"Northern Sami\"),\r\n new Locale(\"se\", \"FI\", \"Northern Sami (Finland)\"),\r\n new Locale(\"se\", \"NO\", \"Northern Sami (Norway)\"),\r\n new Locale(\"se\", \"SE\", \"Northern Sami (Sweden)\"),\r\n new Locale(\"no\", \"\", \"Norwegian\"),\r\n new Locale(\"no\", \"NO\", \"Norwegian (Norway)\"),\r\n new Locale(\"nb\", \"\", \"Norwegian Bokmål\"),\r\n new Locale(\"nb\", \"NO\", \"Norwegian Bokmål (Norway)\"),\r\n new Locale(\"nb\", \"SJ\", \"Norwegian Bokmål (Svalbard & Jan Mayen)\"),\r\n new Locale(\"nn\", \"\", \"Norwegian Nynorsk\"),\r\n new Locale(\"nn\", \"NO\", \"Norwegian Nynorsk (Norway)\"),\r\n new Locale(\"nus\", \"\", \"Nuer\"),\r\n new Locale(\"nus\", \"SS\", \"Nuer (South Sudan)\"),\r\n new Locale(\"nyn\", \"\", \"Nyankole\"),\r\n new Locale(\"nyn\", \"UG\", \"Nyankole (Uganda)\"),\r\n new Locale(\"ann\", \"\", \"Obolo\"),\r\n new Locale(\"ann\", \"NG\", \"Obolo (Nigeria)\"),\r\n new Locale(\"oc\", \"\", \"Occitan\"),\r\n new Locale(\"oc\", \"FR\", \"Occitan (France)\"),\r\n new Locale(\"oc\", \"ES\", \"Occitan (Spain)\"),\r\n new Locale(\"or\", \"\", \"Odia\"),\r\n new Locale(\"or\", \"IN\", \"Odia (India)\"),\r\n new Locale(\"om\", \"\", \"Oromo\"),\r\n new Locale(\"om\", \"ET\", \"Oromo (Ethiopia)\"),\r\n new Locale(\"om\", \"KE\", \"Oromo (Kenya)\"),\r\n new Locale(\"os\", \"\", \"Ossetic\"),\r\n new Locale(\"os\", \"GE\", \"Ossetic (Georgia)\"),\r\n new Locale(\"os\", \"RU\", \"Ossetic (Russia)\"),\r\n new Locale(\"ps\", \"\", \"Pashto\"),\r\n new Locale(\"ps\", \"AF\", \"Pashto (Afghanistan)\"),\r\n new Locale(\"ps\", \"PK\", \"Pashto (Pakistan)\"),\r\n new Locale(\"fa\", \"\", \"Persian\"),\r\n new Locale(\"fa\", \"AF\", \"Persian (Afghanistan)\"),\r\n new Locale(\"fa\", \"IR\", \"Persian (Iran)\"),\r\n new Locale(\"pis\", \"\", \"Pijin\"),\r\n new Locale(\"pis\", \"SB\", \"Pijin (Solomon Islands)\"),\r\n new Locale(\"pl\", \"\", \"Polish\"),\r\n new Locale(\"pl\", \"PL\", \"Polish (Poland)\"),\r\n new Locale(\"pt\", \"\", \"Portuguese\"),\r\n new Locale(\"pt\", \"AO\", \"Portuguese (Angola)\"),\r\n new Locale(\"pt\", \"BR\", \"Portuguese (Brazil)\"),\r\n new Locale(\"pt\", \"CV\", \"Portuguese (Cape Verde)\"),\r\n new Locale(\"pt\", \"GQ\", \"Portuguese (Equatorial Guinea)\"),\r\n new Locale(\"pt\", \"GW\", \"Portuguese (Guinea-Bissau)\"),\r\n new Locale(\"pt\", \"LU\", \"Portuguese (Luxembourg)\"),\r\n new Locale(\"pt\", \"MO\", \"Portuguese (Macao SAR China)\"),\r\n new Locale(\"pt\", \"MZ\", \"Portuguese (Mozambique)\"),\r\n new Locale(\"pt\", \"PT\", \"Portuguese (Portugal)\"),\r\n new Locale(\"pt\", \"CH\", \"Portuguese (Switzerland)\"),\r\n new Locale(\"pt\", \"ST\", \"Portuguese (São Tomé & Príncipe)\"),\r\n new Locale(\"pt\", \"TL\", \"Portuguese (Timor-Leste)\"),\r\n new Locale(\"pa\", \"\", \"Punjabi\"),\r\n new Locale(\"pa\", \"IN\", \"Punjabi (India)\"),\r\n new Locale(\"pa\", \"PK\", \"Punjabi (Pakistan)\"),\r\n new Locale(\"qu\", \"\", \"Quechua\"),\r\n new Locale(\"qu\", \"BO\", \"Quechua (Bolivia)\"),\r\n new Locale(\"qu\", \"EC\", \"Quechua (Ecuador)\"),\r\n new Locale(\"qu\", \"PE\", \"Quechua (Peru)\"),\r\n new Locale(\"raj\", \"\", \"Rajasthani\"),\r\n new Locale(\"raj\", \"IN\", \"Rajasthani (India)\"),\r\n new Locale(\"ro\", \"\", \"Romanian\"),\r\n new Locale(\"ro\", \"MD\", \"Romanian (Moldova)\"),\r\n new Locale(\"ro\", \"RO\", \"Romanian (Romania)\"),\r\n new Locale(\"rm\", \"\", \"Romansh\"),\r\n new Locale(\"rm\", \"CH\", \"Romansh (Switzerland)\"),\r\n new Locale(\"rof\", \"\", \"Rombo\"),\r\n new Locale(\"rof\", \"TZ\", \"Rombo (Tanzania)\"),\r\n new Locale(\"rn\", \"\", \"Rundi\"),\r\n new Locale(\"rn\", \"BI\", \"Rundi (Burundi)\"),\r\n new Locale(\"ru\", \"\", \"Russian\"),\r\n new Locale(\"ru\", \"BY\", \"Russian (Belarus)\"),\r\n new Locale(\"ru\", \"KZ\", \"Russian (Kazakhstan)\"),\r\n new Locale(\"ru\", \"KG\", \"Russian (Kyrgyzstan)\"),\r\n new Locale(\"ru\", \"MD\", \"Russian (Moldova)\"),\r\n new Locale(\"ru\", \"RU\", \"Russian (Russia)\"),\r\n new Locale(\"ru\", \"UA\", \"Russian (Ukraine)\"),\r\n new Locale(\"rwk\", \"\", \"Rwa\"),\r\n new Locale(\"rwk\", \"TZ\", \"Rwa (Tanzania)\"),\r\n new Locale(\"saq\", \"\", \"Samburu\"),\r\n new Locale(\"saq\", \"KE\", \"Samburu (Kenya)\"),\r\n new Locale(\"sg\", \"\", \"Sango\"),\r\n new Locale(\"sg\", \"CF\", \"Sango (Central African Republic)\"),\r\n new Locale(\"sbp\", \"\", \"Sangu\"),\r\n new Locale(\"sbp\", \"TZ\", \"Sangu (Tanzania)\"),\r\n new Locale(\"sa\", \"\", \"Sanskrit\"),\r\n new Locale(\"sa\", \"IN\", \"Sanskrit (India)\"),\r\n new Locale(\"sat\", \"\", \"Santali\"),\r\n new Locale(\"sat\", \"IN\", \"Santali (India)\"),\r\n new Locale(\"sc\", \"\", \"Sardinian\"),\r\n new Locale(\"sc\", \"IT\", \"Sardinian (Italy)\"),\r\n new Locale(\"gd\", \"\", \"Scottish Gaelic\"),\r\n new Locale(\"gd\", \"GB\", \"Scottish Gaelic (United Kingdom)\"),\r\n new Locale(\"seh\", \"\", \"Sena\"),\r\n new Locale(\"seh\", \"MZ\", \"Sena (Mozambique)\"),\r\n new Locale(\"sr\", \"\", \"Serbian\"),\r\n new Locale(\"sr\", \"BA\", \"Serbian (Bosnia & Herzegovina)\"),\r\n new Locale(\"sr\", \"XK\", \"Serbian (Latin, Kosovo)\"),\r\n new Locale(\"sr\", \"ME\", \"Serbian (Montenegro)\"),\r\n new Locale(\"sr\", \"CS\", \"Serbian (Serbia and Montenegro)\"),\r\n new Locale(\"sr\", \"RS\", \"Serbian (Serbia)\"),\r\n new Locale(\"ksb\", \"\", \"Shambala\"),\r\n new Locale(\"ksb\", \"TZ\", \"Shambala (Tanzania)\"),\r\n new Locale(\"sn\", \"\", \"Shona\"),\r\n new Locale(\"sn\", \"ZW\", \"Shona (Zimbabwe)\"),\r\n new Locale(\"ii\", \"\", \"Sichuan Yi\"),\r\n new Locale(\"ii\", \"CN\", \"Sichuan Yi (China)\"),\r\n new Locale(\"sd\", \"\", \"Sindhi\"),\r\n new Locale(\"sd\", \"IN\", \"Sindhi (India)\"),\r\n new Locale(\"sd\", \"PK\", \"Sindhi (Pakistan)\"),\r\n new Locale(\"si\", \"\", \"Sinhala\"),\r\n new Locale(\"si\", \"LK\", \"Sinhala (Sri Lanka)\"),\r\n new Locale(\"sms\", \"\", \"Skolt Sami\"),\r\n new Locale(\"sms\", \"FI\", \"Skolt Sami (Finland)\"),\r\n new Locale(\"sk\", \"\", \"Slovak\"),\r\n new Locale(\"sk\", \"SK\", \"Slovak (Slovakia)\"),\r\n new Locale(\"sl\", \"\", \"Slovenian\"),\r\n new Locale(\"sl\", \"SI\", \"Slovenian (Slovenia)\"),\r\n new Locale(\"xog\", \"\", \"Soga\"),\r\n new Locale(\"xog\", \"UG\", \"Soga (Uganda)\"),\r\n new Locale(\"so\", \"\", \"Somali\"),\r\n new Locale(\"so\", \"DJ\", \"Somali (Djibouti)\"),\r\n new Locale(\"so\", \"ET\", \"Somali (Ethiopia)\"),\r\n new Locale(\"so\", \"KE\", \"Somali (Kenya)\"),\r\n new Locale(\"so\", \"SO\", \"Somali (Somalia)\"),\r\n new Locale(\"es\", \"\", \"Spanish\"),\r\n new Locale(\"es\", \"AR\", \"Spanish (Argentina)\"),\r\n new Locale(\"es\", \"BZ\", \"Spanish (Belize)\"),\r\n new Locale(\"es\", \"BO\", \"Spanish (Bolivia)\"),\r\n new Locale(\"es\", \"BR\", \"Spanish (Brazil)\"),\r\n new Locale(\"es\", \"IC\", \"Spanish (Canary Islands)\"),\r\n new Locale(\"es\", \"EA\", \"Spanish (Ceuta & Melilla)\"),\r\n new Locale(\"es\", \"CL\", \"Spanish (Chile)\"),\r\n new Locale(\"es\", \"CO\", \"Spanish (Colombia)\"),\r\n new Locale(\"es\", \"CR\", \"Spanish (Costa Rica)\"),\r\n new Locale(\"es\", \"CU\", \"Spanish (Cuba)\"),\r\n new Locale(\"es\", \"DO\", \"Spanish (Dominican Republic)\"),\r\n new Locale(\"es\", \"EC\", \"Spanish (Ecuador)\"),\r\n new Locale(\"es\", \"SV\", \"Spanish (El Salvador)\"),\r\n new Locale(\"es\", \"GQ\", \"Spanish (Equatorial Guinea)\"),\r\n new Locale(\"es\", \"GT\", \"Spanish (Guatemala)\"),\r\n new Locale(\"es\", \"HN\", \"Spanish (Honduras)\"),\r\n new Locale(\"es\", \"419\", \"Spanish (Latin America)\"),\r\n new Locale(\"es\", \"MX\", \"Spanish (Mexico)\"),\r\n new Locale(\"es\", \"NI\", \"Spanish (Nicaragua)\"),\r\n new Locale(\"es\", \"PA\", \"Spanish (Panama)\"),\r\n new Locale(\"es\", \"PY\", \"Spanish (Paraguay)\"),\r\n new Locale(\"es\", \"PE\", \"Spanish (Peru)\"),\r\n new Locale(\"es\", \"PH\", \"Spanish (Philippines)\"),\r\n new Locale(\"es\", \"PR\", \"Spanish (Puerto Rico)\"),\r\n new Locale(\"es\", \"ES\", \"Spanish (Spain)\"),\r\n new Locale(\"es\", \"US\", \"Spanish (United States)\"),\r\n new Locale(\"es\", \"UY\", \"Spanish (Uruguay)\"),\r\n new Locale(\"es\", \"VE\", \"Spanish (Venezuela)\"),\r\n new Locale(\"zgh\", \"\", \"Standard Moroccan Tamazight\"),\r\n new Locale(\"zgh\", \"MA\", \"Standard Moroccan Tamazight (Morocco)\"),\r\n new Locale(\"su\", \"\", \"Sundanese\"),\r\n new Locale(\"su\", \"ID\", \"Sundanese (Indonesia)\"),\r\n new Locale(\"sw\", \"\", \"Swahili\"),\r\n new Locale(\"sw\", \"CD\", \"Swahili (Congo - Kinshasa)\"),\r\n new Locale(\"sw\", \"KE\", \"Swahili (Kenya)\"),\r\n new Locale(\"sw\", \"TZ\", \"Swahili (Tanzania)\"),\r\n new Locale(\"sw\", \"UG\", \"Swahili (Uganda)\"),\r\n new Locale(\"sv\", \"\", \"Swedish\"),\r\n new Locale(\"sv\", \"FI\", \"Swedish (Finland)\"),\r\n new Locale(\"sv\", \"SE\", \"Swedish (Sweden)\"),\r\n new Locale(\"sv\", \"AX\", \"Swedish (Åland Islands)\"),\r\n new Locale(\"gsw\", \"\", \"Swiss German\"),\r\n new Locale(\"gsw\", \"FR\", \"Swiss German (France)\"),\r\n new Locale(\"gsw\", \"LI\", \"Swiss German (Liechtenstein)\"),\r\n new Locale(\"gsw\", \"CH\", \"Swiss German (Switzerland)\"),\r\n new Locale(\"shi\", \"\", \"Tachelhit\"),\r\n new Locale(\"shi\", \"MA\", \"Tachelhit (Morocco)\"),\r\n new Locale(\"dav\", \"\", \"Taita\"),\r\n new Locale(\"dav\", \"KE\", \"Taita (Kenya)\"),\r\n new Locale(\"tg\", \"\", \"Tajik\"),\r\n new Locale(\"tg\", \"TJ\", \"Tajik (Tajikistan)\"),\r\n new Locale(\"ta\", \"\", \"Tamil\"),\r\n new Locale(\"ta\", \"IN\", \"Tamil (India)\"),\r\n new Locale(\"ta\", \"MY\", \"Tamil (Malaysia)\"),\r\n new Locale(\"ta\", \"SG\", \"Tamil (Singapore)\"),\r\n new Locale(\"ta\", \"LK\", \"Tamil (Sri Lanka)\"),\r\n new Locale(\"twq\", \"\", \"Tasawaq\"),\r\n new Locale(\"twq\", \"NE\", \"Tasawaq (Niger)\"),\r\n new Locale(\"tt\", \"\", \"Tatar\"),\r\n new Locale(\"tt\", \"RU\", \"Tatar (Russia)\"),\r\n new Locale(\"te\", \"\", \"Telugu\"),\r\n new Locale(\"te\", \"IN\", \"Telugu (India)\"),\r\n new Locale(\"teo\", \"\", \"Teso\"),\r\n new Locale(\"teo\", \"KE\", \"Teso (Kenya)\"),\r\n new Locale(\"teo\", \"UG\", \"Teso (Uganda)\"),\r\n new Locale(\"th\", \"\", \"Thai\"),\r\n new Locale(\"th\", \"TH\", \"Thai (Thailand)\"),\r\n new Locale(\"bo\", \"\", \"Tibetan\"),\r\n new Locale(\"bo\", \"CN\", \"Tibetan (China)\"),\r\n new Locale(\"bo\", \"IN\", \"Tibetan (India)\"),\r\n new Locale(\"ti\", \"\", \"Tigrinya\"),\r\n new Locale(\"ti\", \"ER\", \"Tigrinya (Eritrea)\"),\r\n new Locale(\"ti\", \"ET\", \"Tigrinya (Ethiopia)\"),\r\n new Locale(\"tok\", \"\", \"Toki Pona\"),\r\n new Locale(\"tok\", \"001\", \"Toki Pona (world)\"),\r\n new Locale(\"to\", \"\", \"Tongan\"),\r\n new Locale(\"to\", \"TO\", \"Tongan (Tonga)\"),\r\n new Locale(\"tr\", \"\", \"Turkish\"),\r\n new Locale(\"tr\", \"CY\", \"Turkish (Cyprus)\"),\r\n new Locale(\"tr\", \"TR\", \"Turkish (Türkiye)\"),\r\n new Locale(\"tk\", \"\", \"Turkmen\"),\r\n new Locale(\"tk\", \"TM\", \"Turkmen (Turkmenistan)\"),\r\n new Locale(\"uk\", \"\", \"Ukrainian\"),\r\n new Locale(\"uk\", \"UA\", \"Ukrainian (Ukraine)\"),\r\n new Locale(\"hsb\", \"\", \"Upper Sorbian\"),\r\n new Locale(\"hsb\", \"DE\", \"Upper Sorbian (Germany)\"),\r\n new Locale(\"ur\", \"\", \"Urdu\"),\r\n new Locale(\"ur\", \"IN\", \"Urdu (India)\"),\r\n new Locale(\"ur\", \"PK\", \"Urdu (Pakistan)\"),\r\n new Locale(\"ug\", \"\", \"Uyghur\"),\r\n new Locale(\"ug\", \"CN\", \"Uyghur (China)\"),\r\n new Locale(\"uz\", \"\", \"Uzbek\"),\r\n new Locale(\"uz\", \"AF\", \"Uzbek (Afghanistan)\"),\r\n new Locale(\"uz\", \"UZ\", \"Uzbek (Uzbekistan)\"),\r\n new Locale(\"vai\", \"\", \"Vai\"),\r\n new Locale(\"vai\", \"LR\", \"Vai (Liberia)\"),\r\n new Locale(\"vi\", \"\", \"Vietnamese\"),\r\n new Locale(\"vi\", \"VN\", \"Vietnamese (Vietnam)\"),\r\n new Locale(\"vun\", \"\", \"Vunjo\"),\r\n new Locale(\"vun\", \"TZ\", \"Vunjo (Tanzania)\"),\r\n new Locale(\"wae\", \"\", \"Walser\"),\r\n new Locale(\"wae\", \"CH\", \"Walser (Switzerland)\"),\r\n new Locale(\"cy\", \"\", \"Welsh\"),\r\n new Locale(\"cy\", \"GB\", \"Welsh (United Kingdom)\"),\r\n new Locale(\"fy\", \"\", \"Western Frisian\"),\r\n new Locale(\"fy\", \"NL\", \"Western Frisian (Netherlands)\"),\r\n new Locale(\"wo\", \"\", \"Wolof\"),\r\n new Locale(\"wo\", \"SN\", \"Wolof (Senegal)\"),\r\n new Locale(\"xh\", \"\", \"Xhosa\"),\r\n new Locale(\"xh\", \"ZA\", \"Xhosa (South Africa)\"),\r\n new Locale(\"sah\", \"\", \"Yakut\"),\r\n new Locale(\"sah\", \"RU\", \"Yakut (Russia)\"),\r\n new Locale(\"yav\", \"\", \"Yangben\"),\r\n new Locale(\"yav\", \"CM\", \"Yangben (Cameroon)\"),\r\n new Locale(\"yi\", \"\", \"Yiddish\"),\r\n new Locale(\"yi\", \"001\", \"Yiddish (world)\"),\r\n new Locale(\"yo\", \"\", \"Yoruba\"),\r\n new Locale(\"yo\", \"BJ\", \"Yoruba (Benin)\"),\r\n new Locale(\"yo\", \"NG\", \"Yoruba (Nigeria)\"),\r\n new Locale(\"dje\", \"\", \"Zarma\"),\r\n new Locale(\"dje\", \"NE\", \"Zarma (Niger)\"),\r\n new Locale(\"zu\", \"\", \"Zulu\"),\r\n new Locale(\"zu\", \"ZA\", \"Zulu (South Africa)\")\r\n]\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Locale, LOCALES } from \"../util/locale-util\";\r\nimport { DateAdapter } from \"@angular/material/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TenantPropertiesService {\r\n\r\n readonly dateAdapter = inject(DateAdapter<any>);\r\n\r\n locale: Locale = LOCALES.find((locale) => locale.code === 'en-GB') as Locale;\r\n timezone: string | null = null;\r\n\r\n setLocale(locale: Locale) {\r\n this.locale = locale;\r\n this.dateAdapter.setLocale(locale.code);\r\n }\r\n\r\n setTimeZone(timeZone: string) {\r\n this.timezone = timeZone;\r\n }\r\n}\r\n","import { ThemeOption } from \"ngx-echarts\";\r\n\r\nexport const COLORS = [\r\n \"#c1232b\",\r\n \"#27727b\",\r\n \"#fcce10\",\r\n \"#e87c25\",\r\n \"#b5c334\",\r\n \"#fe8463\",\r\n \"#9bca63\",\r\n \"#fad860\",\r\n \"#f3a43b\",\r\n \"#60c0dd\",\r\n \"#d7504b\",\r\n \"#c6e579\",\r\n \"#f4e001\",\r\n \"#f0805a\",\r\n \"#26c0c0\"\r\n];\r\n\r\nexport const chartThemeLight = {\r\n \"color\": COLORS,\r\n \"backgroundColor\": \"rgba(0,0,0,0)\",\r\n \"textStyle\": {},\r\n \"title\": {\r\n \"textStyle\": {\r\n \"color\": \"#27727b\"\r\n },\r\n \"subtextStyle\": {\r\n \"color\": \"#aaaaaa\"\r\n }\r\n },\r\n \"line\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"width\": \"3\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false\r\n },\r\n \"radar\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"width\": \"3\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false\r\n },\r\n \"bar\": {\r\n \"itemStyle\": {\r\n \"barBorderWidth\": 0,\r\n \"barBorderColor\": \"#ccc\"\r\n }\r\n },\r\n \"pie\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"scatter\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"boxplot\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"parallel\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"sankey\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"funnel\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"gauge\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"candlestick\": {\r\n \"itemStyle\": {\r\n \"color\": \"#c1232b\",\r\n \"color0\": \"#b5c334\",\r\n \"borderColor\": \"#c1232b\",\r\n \"borderColor0\": \"#b5c334\",\r\n \"borderWidth\": 1\r\n }\r\n },\r\n \"graph\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n },\r\n \"lineStyle\": {\r\n \"width\": 1,\r\n \"color\": \"#aaaaaa\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false,\r\n \"color\": [\r\n \"#c1232b\",\r\n \"#27727b\",\r\n \"#fcce10\",\r\n \"#e87c25\",\r\n \"#b5c334\",\r\n \"#fe8463\",\r\n \"#9bca63\",\r\n \"#fad860\",\r\n \"#f3a43b\",\r\n \"#60c0dd\",\r\n \"#d7504b\",\r\n \"#c6e579\",\r\n \"#f4e001\",\r\n \"#f0805a\",\r\n \"#26c0c0\"\r\n ],\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n }\r\n },\r\n \"map\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#dddddd\",\r\n \"borderColor\": \"#eeeeee\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#fe994e\",\r\n \"borderColor\": \"#444\",\r\n \"borderWidth\": 1\r\n },\r\n \"label\": {\r\n \"color\": \"rgb(100,0,0)\"\r\n }\r\n }\r\n },\r\n \"geo\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#dddddd\",\r\n \"borderColor\": \"#eeeeee\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#fe994e\",\r\n \"borderColor\": \"#444\",\r\n \"borderWidth\": 1\r\n },\r\n \"label\": {\r\n \"color\": \"rgb(100,0,0)\"\r\n }\r\n }\r\n },\r\n \"categoryAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#333\"\r\n },\r\n \"splitLine\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#ccc\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"valueAxis\": {\r\n \"axisLine\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": \"#333\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": \"#333\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#333\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#ccc\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"logAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#333\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#333\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#ccc\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"timeAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#333\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#333\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#ccc\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"toolbox\": {\r\n \"iconStyle\": {\r\n \"borderColor\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"iconStyle\": {\r\n \"borderColor\": \"#e87c25\"\r\n }\r\n }\r\n },\r\n \"legend\": {\r\n \"textStyle\": {\r\n \"color\": \"#333333\"\r\n }\r\n },\r\n \"tooltip\": {\r\n \"axisPointer\": {\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\",\r\n \"width\": 1\r\n },\r\n \"crossStyle\": {\r\n \"color\": \"#27727b\",\r\n \"width\": 1\r\n }\r\n }\r\n },\r\n \"timeline\": {\r\n \"lineStyle\": {\r\n \"color\": \"#293c55\",\r\n \"width\": 1\r\n },\r\n \"itemStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderWidth\": 1\r\n },\r\n \"controlStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderColor\": \"#27727b\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"checkpointStyle\": {\r\n \"color\": \"#c1232b\",\r\n \"borderColor\": \"#c23531\"\r\n },\r\n \"label\": {\r\n \"color\": \"#293c55\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"color\": \"#72d4e0\"\r\n },\r\n \"controlStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderColor\": \"#27727b\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#293c55\"\r\n }\r\n }\r\n },\r\n \"visualMap\": {\r\n \"color\": [\r\n \"#c1232b\",\r\n \"#fcce10\"\r\n ]\r\n },\r\n \"dataZoom\": {\r\n \"backgroundColor\": \"rgba(0,0,0,0)\",\r\n \"dataBackgroundColor\": \"rgba(181,195,52,0.3)\",\r\n \"fillerColor\": \"rgba(181,195,52,0.2)\",\r\n \"handleColor\": \"#27727b\",\r\n \"handleSize\": \"100%\",\r\n \"textStyle\": {\r\n \"color\": \"#999999\"\r\n }\r\n },\r\n \"markPoint\": {\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n },\r\n \"emphasis\": {\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n }\r\n }\r\n }\r\n} as ThemeOption;\r\n","import { ThemeOption } from \"ngx-echarts\";\r\n\r\nexport const chartThemeDark = {\r\n \"color\": [\r\n \"#c1232b\",\r\n \"#27727b\",\r\n \"#fcce10\",\r\n \"#e87c25\",\r\n \"#b5c334\",\r\n \"#fe8463\",\r\n \"#9bca63\",\r\n \"#fad860\",\r\n \"#f3a43b\",\r\n \"#60c0dd\",\r\n \"#d7504b\",\r\n \"#c6e579\",\r\n \"#f4e001\",\r\n \"#f0805a\",\r\n \"#26c0c0\"\r\n ],\r\n \"backgroundColor\": \"rgba(0,0,0,0)\",\r\n \"textStyle\": {},\r\n \"title\": {\r\n \"textStyle\": {\r\n \"color\": \"#27727b\"\r\n },\r\n \"subtextStyle\": {\r\n \"color\": \"#aaaaaa\"\r\n }\r\n },\r\n \"line\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"width\": \"3\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false\r\n },\r\n \"radar\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"width\": \"3\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false\r\n },\r\n \"bar\": {\r\n \"itemStyle\": {\r\n \"barBorderWidth\": 0,\r\n \"barBorderColor\": \"#ccc\"\r\n }\r\n },\r\n \"pie\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"scatter\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"boxplot\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"parallel\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"sankey\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"funnel\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"gauge\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"candlestick\": {\r\n \"itemStyle\": {\r\n \"color\": \"#c1232b\",\r\n \"color0\": \"#b5c334\",\r\n \"borderColor\": \"#c1232b\",\r\n \"borderColor0\": \"#b5c334\",\r\n \"borderWidth\": 1\r\n }\r\n },\r\n \"graph\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n },\r\n \"lineStyle\": {\r\n \"width\": 1,\r\n \"color\": \"#aaaaaa\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false,\r\n \"color\": [\r\n \"#c1232b\",\r\n \"#27727b\",\r\n \"#fcce10\",\r\n \"#e87c25\",\r\n \"#b5c334\",\r\n \"#fe8463\",\r\n \"#9bca63\",\r\n \"#fad860\",\r\n \"#f3a43b\",\r\n \"#60c0dd\",\r\n \"#d7504b\",\r\n \"#c6e579\",\r\n \"#f4e001\",\r\n \"#f0805a\",\r\n \"#26c0c0\"\r\n ],\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n }\r\n },\r\n \"map\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#dddddd\",\r\n \"borderColor\": \"#eeeeee\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#fe994e\",\r\n \"borderColor\": \"#444\",\r\n \"borderWidth\": 1\r\n },\r\n \"label\": {\r\n \"color\": \"rgb(100,0,0)\"\r\n }\r\n }\r\n },\r\n \"geo\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#dddddd\",\r\n \"borderColor\": \"#eeeeee\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#fe994e\",\r\n \"borderColor\": \"#444\",\r\n \"borderWidth\": 1\r\n },\r\n \"label\": {\r\n \"color\": \"rgb(100,0,0)\"\r\n }\r\n }\r\n },\r\n \"categoryAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#ccc\"\r\n },\r\n \"splitLine\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#ccc\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"valueAxis\": {\r\n \"axisLine\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": \"#ccc\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": \"#ccc\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#ccc\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#333\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"logAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#ccc\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#ccc\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#333\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"timeAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#ccc\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#ccc\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#333\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"toolbox\": {\r\n \"iconStyle\": {\r\n \"borderColor\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"iconStyle\": {\r\n \"borderColor\": \"#e87c25\"\r\n }\r\n }\r\n },\r\n \"legend\": {\r\n \"textStyle\": {\r\n \"color\": \"#ccc\"\r\n }\r\n },\r\n \"tooltip\": {\r\n \"axisPointer\": {\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\",\r\n \"width\": 1\r\n },\r\n \"crossStyle\": {\r\n \"color\": \"#27727b\",\r\n \"width\": 1\r\n }\r\n }\r\n },\r\n \"timeline\": {\r\n \"lineStyle\": {\r\n \"color\": \"#293c55\",\r\n \"width\": 1\r\n },\r\n \"itemStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderWidth\": 1\r\n },\r\n \"controlStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderColor\": \"#27727b\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"checkpointStyle\": {\r\n \"color\": \"#c1232b\",\r\n \"borderColor\": \"#c23531\"\r\n },\r\n \"label\": {\r\n \"color\": \"#293c55\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"color\": \"#72d4e0\"\r\n },\r\n \"controlStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderColor\": \"#27727b\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#293c55\"\r\n }\r\n }\r\n },\r\n \"visualMap\": {\r\n \"color\": [\r\n \"#c1232b\",\r\n \"#fcce10\"\r\n ]\r\n },\r\n \"dataZoom\": {\r\n \"backgroundColor\": \"rgba(0,0,0,0)\",\r\n \"dataBackgroundColor\": \"rgba(181,195,52,0.3)\",\r\n \"fillerColor\": \"rgba(181,195,52,0.2)\",\r\n \"handleColor\": \"#27727b\",\r\n \"handleSize\": \"100%\",\r\n \"textStyle\": {\r\n \"color\": \"#999999\"\r\n }\r\n },\r\n \"markPoint\": {\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n },\r\n \"emphasis\": {\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n }\r\n }\r\n }\r\n} as ThemeOption;\r\n","import { DOCUMENT, Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, map } from \"rxjs\";\r\nimport { chartThemeLight } from \"../util/chart-theme-light\";\r\nimport { chartThemeDark } from \"../util/chart-theme-dark\";\r\nimport { argbFromHex, Hct, hexFromArgb, TonalPalette } from \"@material/material-color-utilities\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\nexport interface Color {\r\n name: string;\r\n value: string;\r\n}\r\n\r\nexport interface Theme {\r\n primary: string;\r\n secondary: string;\r\n tertiary: string;\r\n error: string;\r\n neutral: string;\r\n neutralVariant: string;\r\n warning: string;\r\n success: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ThemeService {\r\n\r\n private readonly THEME_KEY = 'WOLK_THEME';\r\n\r\n private readonly DEFAULT_COLORS: Theme = {\r\n primary: \"#00AFFF\",\r\n secondary: \"#C8E1FF\",\r\n tertiary: \"#004B32\",\r\n error: \"#FF0032\",\r\n neutral: \"#191919\",\r\n neutralVariant: \"#323232\",\r\n warning: \"#ff8e00\",\r\n success: \"#4caf50\",\r\n }\r\n\r\n private readonly themeType$ = new BehaviorSubject<'SYSTEM' | 'LIGHT' | 'DARK'>(localStorage.getItem(this.THEME_KEY) as any ?? 'SYSTEM');\r\n\r\n readonly isDarkTheme$ = this.themeType$.pipe(\r\n map((themeType) => themeType === 'DARK' || (themeType === \"SYSTEM\" && window.matchMedia('(prefers-color-scheme: dark)').matches))\r\n );\r\n\r\n readonly chartTheme$ = this.isDarkTheme$.pipe(\r\n map((isDark) => isDark ? chartThemeDark : chartThemeLight)\r\n );\r\n\r\n private readonly themeColors$ = new BehaviorSubject<Theme>(this.DEFAULT_COLORS);\r\n\r\n constructor(@Inject(DOCUMENT) private readonly document: Document) {\r\n this.themeColors$.pipe(takeUntilDestroyed()).subscribe((colors) => this.updateThemeVariables(colors));\r\n this.themeType$.pipe(takeUntilDestroyed()).subscribe((type) => {\r\n const browserTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'DARK' : 'LIGHT';\r\n const newTheme = type === 'SYSTEM' ? browserTheme : type;\r\n\r\n if (newTheme === 'LIGHT') {\r\n document.body.classList.remove('alt-theme');\r\n } else {\r\n document.body.classList.add('alt-theme');\r\n }\r\n })\r\n }\r\n\r\n get defaultColors() {\r\n return this.DEFAULT_COLORS;\r\n }\r\n\r\n setThemeType(theme: 'SYSTEM' | 'LIGHT' | 'DARK') {\r\n localStorage.setItem(this.THEME_KEY, theme);\r\n this.themeType$.next(theme);\r\n }\r\n\r\n setThemeColors(primaryColor?: string, secondaryColor?: string, tertiaryColor?: string) {\r\n const currentTheme = this.themeColors;\r\n const primary = primaryColor ?? currentTheme.primary;\r\n const secondary = secondaryColor ?? currentTheme.secondary;\r\n const tertiary = tertiaryColor ?? currentTheme.tertiary;\r\n\r\n this.themeColors$.next({\r\n ...currentTheme,\r\n primary,\r\n secondary,\r\n tertiary\r\n })\r\n }\r\n\r\n get themeType() {\r\n return this.themeType$.value;\r\n }\r\n\r\n get themeColors(): Theme {\r\n return this.themeColors$.value;\r\n }\r\n\r\n computeColorFromHex(hex: string, tone: number) {\r\n const palette = TonalPalette.fromHct(Hct.fromInt(argbFromHex(hex)));\r\n return hexFromArgb(Hct.from(palette.hue, palette.chroma, tone).toInt());\r\n }\r\n\r\n private updateThemeVariables(theme: Theme) {\r\n this.updateColorVariables('primary', theme.primary);\r\n this.updateColorVariables('secondary', theme.secondary);\r\n this.updateColorVariables('tertiary', theme.tertiary);\r\n this.updateColorVariables('error', theme.error);\r\n this.updateColorVariables('neutral', theme.neutral, true);\r\n this.updateColorVariables('neutral-variant', theme.neutralVariant,);\r\n this.updateColorVariables('warning', theme.warning);\r\n this.updateColorVariables('success', theme.success);\r\n }\r\n\r\n private updateColorVariables(name: string, color: string, hasAdditionalValues = false) {\r\n const palette = this.computeColorPalette(color, hasAdditionalValues);\r\n for (const variant of palette) {\r\n this.document.documentElement.style.setProperty(`--${name}-color${variant.name}`, variant.value);\r\n }\r\n }\r\n\r\n private computeColorPalette(hex: string, hasAdditionalValues: boolean): Color[] {\r\n const palette = TonalPalette.fromHct(Hct.fromInt(argbFromHex(hex)));\r\n const colorPalette = [\r\n this.getColorObject(palette, 0, '-0'),\r\n this.getColorObject(palette, 10, '-10'),\r\n this.getColorObject(palette, 20, '-20'),\r\n this.getColorObject(palette, 25, '-25'),\r\n this.getColorObject(palette, 30, '-30'),\r\n this.getColorObject(palette, 35, '-35'),\r\n this.getColorObject(palette, 40, '-40'),\r\n this.getColorObject(palette, 50, '-50'),\r\n this.getColorObject(palette, 60, '-60'),\r\n this.getColorObject(palette, 70, '-70'),\r\n this.getColorObject(palette, 80, '-80'),\r\n this.getColorObject(palette, 90, '-90'),\r\n this.getColorObject(palette, 95, '-95'),\r\n this.getColorObject(palette, 98, '-98'),\r\n this.getColorObject(palette, 99, '-99'),\r\n this.getColorObject(palette, 100, '-100'),\r\n ];\r\n\r\n const additionalValues = [\r\n this.getColorObject(palette, 4, '-4'),\r\n this.getColorObject(palette, 6, '-6'),\r\n this.getColorObject(palette, 12, '-12'),\r\n this.getColorObject(palette, 17, '-17'),\r\n this.getColorObject(palette, 22, '-22'),\r\n this.getColorObject(palette, 24, '-24'),\r\n this.getColorObject(palette, 87, '-87'),\r\n this.getColorObject(palette, 92, '-92'),\r\n this.getColorObject(palette, 94, '-94'),\r\n this.getColorObject(palette, 96, '-96'),\r\n ]\r\n\r\n return hasAdditionalValues ? [...colorPalette, ...additionalValues] : colorPalette;\r\n }\r\n\r\n private getColorObject(palette: TonalPalette, tone: number, name: string): Color {\r\n const hex = hexFromArgb(Hct.from(palette.hue, palette.chroma, tone).toInt());\r\n return {\r\n name,\r\n value: hex,\r\n };\r\n }\r\n}\r\n","import { Directive, ElementRef, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appLoadingIndicator]',\r\n standalone: true\r\n})\r\nexport class LoadingIndicatorDirective {\r\n\r\n @Input('appLoadingIndicator') set appLoadingShimmer(isLoading: boolean | unknown) {\r\n if (isLoading) {\r\n this.element.nativeElement.classList.add('shimmer');\r\n } else {\r\n this.element.nativeElement.classList.remove('shimmer');\r\n }\r\n }\r\n\r\n constructor(\r\n private element: ElementRef<HTMLElement>\r\n ) {\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, forwardRef, HostListener, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\r\nimport { Subscription } from 'rxjs';\r\nimport { TenantPropertiesService } from '../service/tenant-properties.service';\r\n\r\n@Directive({\r\n selector: 'input[wolkaboutLocalizedNumericInput]',\r\n providers: [\r\n { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: LocalizedNumericInputDirective },\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => LocalizedNumericInputDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class LocalizedNumericInputDirective implements ControlValueAccessor {\r\n locale = 'en_US';\r\n decimalMarker = '.';\r\n thousandSeparator = ',';\r\n\r\n onChange!: (value: any) => void;\r\n onTouched!: (ev: any) => void;\r\n\r\n constructor(private element: ElementRef<HTMLInputElement>, private tenantPropertiesService: TenantPropertiesService) {\r\n this.locale = this.tenantPropertiesService.locale.code\r\n\r\n const formatted = (1000.99).toLocaleString(this.locale);\r\n\r\n // Remove digits → remaining chars are separators\r\n const [thousandSeparator, decimalMarker] = formatted.replace(/\\d/g, '');\r\n\r\n this.decimalMarker = decimalMarker;\r\n this.thousandSeparator = thousandSeparator;\r\n }\r\n\r\n @HostListener('input', ['$event.target.value'!])\r\n input(value: any) {\r\n const val = this.parseValue(value);\r\n this.printValue(val);\r\n this.onChange(val);\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus() {\r\n const value = this.parseValue(this.element.nativeElement.value);\r\n this.printValue(value);\r\n this.onChange(value);\r\n }\r\n\r\n writeValue(value: string) {\r\n let stringValue = value ?? '';\r\n stringValue = String(value);\r\n\r\n this.printValue(this.parseValue(stringValue.replace('.', this.decimalMarker)));\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void) {\r\n this.onTouched = fn;\r\n }\r\n\r\n //format string into\r\n //[sign]([integer]{ 0, 2}[thousand separator])?([integer]{ 3 } [thousand separator])* [integer]{ 0, 3 }.[decimal]\r\n private printValue(value: string): void {\r\n if (!value) {\r\n this.element.nativeElement.value = '';\r\n }\r\n\r\n //check if decimal marker needs to be preserved\r\n const endsInDecMark = value.charAt(value.length - 1) === '.';\r\n\r\n const [integer, decimal] = value.split('.');\r\n const formattedInteger = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandSeparator);\r\n const formattedDecimal = decimal || endsInDecMark ? this.decimalMarker + (decimal ?? '') : '';\r\n this.element.nativeElement.value = formattedInteger + formattedDecimal;\r\n }\r\n\r\n //parse input string into [sign][integer].[decimal]\r\n private parseValue(value: string): string {\r\n //if only blank spaces\r\n if (!(value || '').trim().length) return '';\r\n\r\n //remove blank spaces\r\n const val = value.trim();\r\n\r\n //check if decimal marker needs to be preserved\r\n const endsInDecMark = val.charAt(val.length - 1) === this.decimalMarker;\r\n\r\n //form whole number part and decimal part\r\n const [rawInt, ...dec] = val.split(this.decimalMarker);\r\n let parsedInt = rawInt.split(this.thousandSeparator).join('');\r\n let parsedDec = dec?.join('') ?? '';\r\n\r\n //handle sign as first character\r\n let [sign, ...rest] = parsedInt;\r\n if (!['+', '-'].includes(sign)) {\r\n parsedInt = [sign, ...(rest ?? [])].join('');\r\n sign = '';\r\n rest = []; //linter being stupid about let\r\n } else {\r\n parsedInt = rest?.join('') ?? '';\r\n }\r\n\r\n //remove anything that isn't a number from parts that should be numbers\r\n parsedInt = parsedInt.replace(/[^\\d]/g, '');\r\n parsedDec = parsedDec.replace(/[^\\d]/g, '');\r\n\r\n //remove leading zeros\r\n if (parsedInt.length > 1) parsedInt = parsedInt.replace(/^0+/g, '');\r\n\r\n //prefixes 0 if integer part is empty but decimal isn't\r\n if (!parsedInt.length && (parsedDec || endsInDecMark)) {\r\n parsedInt = '0';\r\n }\r\n\r\n //final format\r\n return sign + parsedInt + (parsedDec || endsInDecMark ? '.' : '') + parsedDec;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnDestroy, Renderer2, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\nimport { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\n\r\n@Directive({\r\n selector: '[appMessageTooltip]',\r\n standalone: true,\r\n})\r\nexport class MessageTooltipDirective implements OnDestroy {\r\n\r\n @Input('appMessageTooltip') tooltipTemplate!: TemplateRef<any>;\r\n\r\n private overlayRef: OverlayRef | null = null;\r\n private showTimeout: number | undefined = undefined;\r\n\r\n constructor(private overlay: Overlay, private elementRef: ElementRef, private viewContainerRef: ViewContainerRef, private renderer: Renderer2) {\r\n }\r\n\r\n @HostListener('mouseenter')\r\n show() {\r\n if (!this.tooltipTemplate || this.overlayRef) {\r\n return;\r\n }\r\n\r\n this.showTimeout = setTimeout(() => {\r\n const positionStrategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.elementRef)\r\n .withFlexibleDimensions(false)\r\n .withPush(true)\r\n .withGrowAfterOpen(true)\r\n .withViewportMargin(8)\r\n .withPositions([\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center'\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'bottom'\r\n }\r\n ])\r\n .withScrollableContainers([]);\r\n\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy,\r\n hasBackdrop: false,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n });\r\n\r\n const portal = new TemplatePortal(this.tooltipTemplate, this.viewContainerRef);\r\n this.overlayRef.attach(portal);\r\n\r\n const el = this.overlayRef.overlayElement;\r\n this.renderer.addClass(el, 'message-tooltip-custom-animation');\r\n\r\n requestAnimationFrame(() => {\r\n this.renderer.addClass(el, 'visible');\r\n });\r\n }, 600);\r\n }\r\n\r\n @HostListener('mouseleave')\r\n hide() {\r\n clearTimeout(this.showTimeout);\r\n this.showTimeout = undefined;\r\n this.overlayRef?.detach();\r\n this.overlayRef = null;\r\n }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.showTimeout);\r\n this.overlayRef?.dispose();\r\n }\r\n}\r\n","import { Directive, inject, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[appNgTemplateContent]'\r\n})\r\nexport class NgTemplateContentDirective {\r\n\r\n template = inject(TemplateRef);\r\n}\r\n","import { AfterViewChecked, AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[overflowClass]',\r\n standalone: true\r\n})\r\nexport class OverflowClassDirective implements AfterViewInit, AfterViewChecked {\r\n\r\n @Input() overflowClass: string | null = null;\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.checkScroll();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.checkScroll();\r\n }\r\n\r\n private checkScroll() {\r\n const overflowClasses = this.overflowClass?.split(' ');\r\n (overflowClasses?.length ? overflowClasses : [this.overflowClass]).forEach((cssClass) => {\r\n if (this.el.nativeElement.scrollHeight > this.el.nativeElement.clientHeight) {\r\n this.el.nativeElement.classList.add(cssClass);\r\n } else {\r\n this.el.nativeElement.classList.remove(cssClass);\r\n }\r\n })\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { PermissionsService } from \"../service/permissions.service\";\r\nimport { distinctUntilChanged } from \"rxjs\";\r\n\r\n@Directive({\r\n selector: '[appRequiresAllGlobalOrAssetPermissions]'\r\n})\r\nexport class RequiresAllGlobalOrAssetPermissionsDirective {\r\n @Input() set appRequiresAllGlobalOrAssetPermissions(permissions: string | string[]) {\r\n if (!permissions) {\r\n return;\r\n }\r\n\r\n this.permissions.hasAllGlobalOrAssetPermissions(Array.isArray(permissions) ? permissions : [permissions]).pipe(\r\n distinctUntilChanged(),\r\n ).subscribe((hasPermissions) => {\r\n\r\n if (hasPermissions) {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n })\r\n }\r\n\r\n constructor(private templateRef: TemplateRef<unknown>, private viewContainer: ViewContainerRef, private permissions: PermissionsService) {\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\nimport { distinctUntilChanged } from \"rxjs\";\r\nimport { PermissionsService } from \"../service/permissions.service\";\r\n\r\n@Directive({\r\n selector: '[appRequiresAllPermissions]'\r\n})\r\nexport class RequiresAllPermissionDirective {\r\n @Input() set appRequiresAllPermissions(permissions: string | string[]) {\r\n if (!permissions) {\r\n return;\r\n }\r\n\r\n this.permissions.hasAllPermissions(Array.isArray(permissions) ? permissions : [permissions]).pipe(\r\n distinctUntilChanged(),\r\n ).subscribe((hasPermissions) => {\r\n\r\n if (hasPermissions) {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n })\r\n }\r\n\r\n constructor(private templateRef: TemplateRef<unknown>, private viewContainer: ViewContainerRef, private permissions: PermissionsService) {\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { PermissionsService } from \"../service/permissions.service\";\r\nimport { distinctUntilChanged } from \"rxjs\";\r\n\r\n@Directive({\r\n selector: '[appRequiresGlobalOrAssetPermission]'\r\n})\r\nexport class RequiresGlobalOrAsserPermissionDirective {\r\n @Input() set appRequiresGlobalOrAssetPermission(permissions: string | string[]) {\r\n if (!permissions) {\r\n return;\r\n }\r\n\r\n this.permissions.hasAnyGlobalOrAssetPermission(Array.isArray(permissions) ? permissions : [permissions]).pipe(\r\n distinctUntilChanged(),\r\n ).subscribe((hasPermissions) => {\r\n if (hasPermissions) {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n })\r\n }\r\n\r\n constructor(private templateRef: TemplateRef<unknown>, private viewContainer: ViewContainerRef, private permissions: PermissionsService) {\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { PermissionsService } from \"../service/permissions.service\";\r\nimport { distinctUntilChanged } from \"rxjs\";\r\n\r\n@Directive({\r\n selector: '[appRequiresPermission]'\r\n})\r\nexport class RequiresPermissionDirective {\r\n @Input() set appRequiresPermission(permissions: string | string[]) {\r\n if (!permissions) {\r\n return;\r\n }\r\n\r\n this.permissions.hasAnyPermission(Array.isArray(permissions) ? permissions : [permissions]).pipe(\r\n distinctUntilChanged(),\r\n ).subscribe((hasPermissions) => {\r\n if (hasPermissions) {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n })\r\n }\r\n\r\n constructor(private templateRef: TemplateRef<unknown>, private viewContainer: ViewContainerRef, private permissions: PermissionsService) {\r\n }\r\n}\r\n","import { Directive, ElementRef, Inject, Input, OnChanges, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from \"@angular/common\";\r\nimport { coerceBooleanProperty } from \"@angular/cdk/coercion\";\r\n\r\n@Directive({\r\n selector: '[appScrollIntoView]',\r\n standalone: true\r\n})\r\nexport class ScrollIntoViewDirective implements OnChanges {\r\n\r\n @Input() appScrollIntoView: boolean | undefined;\r\n\r\n constructor(@Inject(PLATFORM_ID) private platformId: any, private elementRef: ElementRef) {\r\n }\r\n\r\n ngOnChanges() {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return;\r\n }\r\n\r\n if (!coerceBooleanProperty(this.appScrollIntoView)) {\r\n return;\r\n }\r\n\r\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\r\n const topShown = rect.top >= 0;\r\n const bottomShown = rect.bottom <= window.innerHeight;\r\n if (!topShown || !bottomShown) {\r\n (this.elementRef.nativeElement as HTMLInputElement).scrollIntoView({behavior: 'smooth', block: 'center'});\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nexport const formatDuration = (totalSeconds: number | undefined): string => {\r\n if (!totalSeconds) return '-';\r\n\r\n const days = Math.floor(totalSeconds / (24 * 60 * 60));\r\n const hours = Math.floor((totalSeconds % (24 * 60 * 60)) / (60 * 60));\r\n const minutes = Math.floor((totalSeconds % (60 * 60)) / 60);\r\n const seconds = totalSeconds % 60;\r\n\r\n // If days are present → show full breakdown\r\n if (days > 0) {\r\n return `${days}d ${hours}h ${minutes}m ${seconds}s`;\r\n }\r\n\r\n const parts: string[] = [];\r\n if (hours > 0) {\r\n parts.push(`${hours}h`);\r\n }\r\n\r\n if (minutes > 0) {\r\n parts.push(`${minutes}m`);\r\n }\r\n\r\n if (seconds > 0) {\r\n parts.push(`${seconds}s`);\r\n }\r\n\r\n return parts.length > 0 ? parts.join(\" \") : \"0s\";\r\n}\r\n\r\n@Pipe({\r\n name: 'duration',\r\n standalone: true\r\n})\r\nexport class DurationPipe implements PipeTransform {\r\n\r\n /**\r\n * Transforms the given value to \"X days, Y hours, Z minutes\" format\r\n */\r\n transform(totalSeconds?: number): string {\r\n return formatDuration(totalSeconds);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TenantPropertiesService } from '../service/tenant-properties.service';\r\n\r\n@Pipe({\r\n name: 'localizedNumber',\r\n standalone: true,\r\n pure: true\r\n})\r\nexport class LocalizedNumberPipe implements PipeTransform {\r\n\r\n constructor(private tenantPropertiesService: TenantPropertiesService) { }\r\n\r\n transform(value: number | string | null | undefined, decimals: number = 2, locale?: string): string {\r\n if (value == null) {\r\n return ''\r\n }\r\n\r\n if (typeof value === 'string') {\r\n value = Number(value);\r\n }\r\n\r\n const defaultedLocale = locale ?? this.tenantPropertiesService.locale.code\r\n\r\n return new Intl.NumberFormat(defaultedLocale, {\r\n minimumFractionDigits: decimals,\r\n maximumFractionDigits: decimals\r\n }).format(value);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TenantPropertiesService } from \"../service/tenant-properties.service\";\r\nimport { DateTime } from \"luxon\";\r\n\r\n@Pipe({\r\n name: 'simpleDateTime',\r\n standalone: true\r\n})\r\nexport class SimpleDateTimePipe implements PipeTransform {\r\n\r\n constructor(private tenantPropertiesService: TenantPropertiesService) {\r\n }\r\n\r\n transform(timestamp?: number | null, timeZone?: string | null, showTimeZone: boolean = true, locale?: string | null ): string {\r\n if (!timestamp) {\r\n return '-';\r\n }\r\n\r\n const defaultedLocale = locale ?? this.tenantPropertiesService.locale.code;\r\n const defaultedTimezone = timeZone ?? this.tenantPropertiesService.timezone;\r\n\r\n const dateTime = DateTime.fromMillis(timestamp).setZone(defaultedTimezone ?? undefined).setLocale(defaultedLocale);\r\n\r\n const date = dateTime.toLocaleString(DateTime.DATE_SHORT);\r\n const time = dateTime.toLocaleString(DateTime.TIME_SIMPLE);\r\n const zone = dateTime.offsetNameShort;\r\n\r\n const formattedDateTime = date + ' ' + time;\r\n\r\n return showTimeZone ? `${formattedDateTime} ${zone}` : formattedDateTime;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DateTime } from \"luxon\";\r\nimport { TenantPropertiesService } from \"../service/tenant-properties.service\";\r\n\r\n@Pipe({\r\n name: 'simpleDate',\r\n standalone: true\r\n})\r\nexport class SimpleDatePipe implements PipeTransform {\r\n\r\n constructor(private tenantPropertiesService: TenantPropertiesService) {\r\n }\r\n\r\n transform(timestamp?: number | null, timeZone?: string | null, showTimeZone: boolean = true, locale?: string | null): string {\r\n if (!timestamp) {\r\n return '-';\r\n }\r\n\r\n const defaultedLocale = locale ?? this.tenantPropertiesService.locale.code;\r\n const defaultedTimezone = timeZone ?? this.tenantPropertiesService.timezone;\r\n\r\n const dateTime = DateTime.fromMillis(timestamp).setZone(defaultedTimezone ?? undefined).setLocale(defaultedLocale);\r\n\r\n const date = dateTime.toLocaleString(DateTime.DATE_SHORT);\r\n const zone = dateTime.offsetNameShort;\r\n\r\n return showTimeZone ? `${date} ${zone}` : date;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TenantPropertiesService } from \"../service/tenant-properties.service\";\r\nimport { DateTime } from \"luxon\";\r\n\r\n@Pipe({\r\n name: 'simpleTime',\r\n standalone: true\r\n})\r\nexport class SimpleTimePipe implements PipeTransform {\r\n\r\n constructor(private tenantPropertiesService: TenantPropertiesService) {\r\n }\r\n\r\n transform(timestamp?: number | null, timeZone?: string | null, showTimeZone: boolean = true, locale?: string | null): string {\r\n if (!timestamp) {\r\n return '-';\r\n }\r\n\r\n const defaultedLocale = locale ?? this.tenantPropertiesService.locale.code;\r\n const defaultedTimezone = timeZone ?? this.tenantPropertiesService.timezone;\r\n\r\n const dateTime = DateTime.fromMillis(timestamp).setZone(defaultedTimezone ?? undefined).setLocale(defaultedLocale);\r\n\r\n const time = dateTime.toLocaleString(DateTime.TIME_SIMPLE);\r\n const zone = dateTime.offsetNameShort;\r\n\r\n return showTimeZone ? `${time} ${zone}` : time;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nexport type SortDirection = 'asc' | 'desc';\r\n\r\n@Pipe({\r\n name: 'sort',\r\n standalone: true\r\n})\r\nexport class SortPipe implements PipeTransform {\r\n transform(array: any, field?: string, direction?: SortDirection): any[] {\r\n if (!Array.isArray(array)) {\r\n throw Error('Only arrays can be sorted.');\r\n }\r\n\r\n if (!field) {\r\n return array;\r\n }\r\n\r\n const multiplier = direction === 'desc' ? -1 : 1;\r\n\r\n array.sort((a: any, b: any) => {\r\n if (a[field] < b[field]) {\r\n return -multiplier;\r\n } else if (a[field] > b[field]) {\r\n return multiplier;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n\r\n return array;\r\n }\r\n}\r\n","import { DateTime } from 'luxon';\r\n\r\nexport const MILLISECONDS_IN_DAY = 86400000;\r\nexport const USERS_TIME_ZONE = DateTime.now().zone.name;\r\nexport const DEFAULT_TIME_ZONE = USERS_TIME_ZONE;\r\n\r\nexport const startOfTheDay = (dayOffSet?: number, timeZone?: string | null): number => {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('day')\r\n .plus({ days: dayOffSet })\r\n .toMillis();\r\n};\r\n\r\nexport const daysAway = (dayOffSet?: number, timeZone?: string | null): number => {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('minute')\r\n .plus({ days: dayOffSet })\r\n .toMillis();\r\n};\r\n\r\nexport const hoursAway = (hourOffset?: number, timeZone?: string | null): number => {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('minute')\r\n .plus({ hours: hourOffset })\r\n .toMillis();\r\n};\r\n\r\nexport const toStartOfTheDay = (millis: number, timeZone?: string | null): number => {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('day')\r\n .toMillis();\r\n};\r\n\r\nexport function startOfWeek(weekOffset?: number, timeZone?: string | null): number {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('week')\r\n .plus({ weeks: weekOffset })\r\n .toMillis();\r\n}\r\n\r\nexport function toStartOfWeek(millis: number, timeZone?: string | null): number {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('week')\r\n .toMillis();\r\n}\r\n\r\nexport function startOfMonth(monthOffset?: number, timeZone?: string | null): number {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('month')\r\n .plus({ months: monthOffset })\r\n .toMillis();\r\n}\r\n\r\nexport function toStartOfMonth(millis: number, timeZone?: string | null): number {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('month')\r\n .toMillis();\r\n}\r\n\r\nexport function toEndOfMonth(millis: number, timeZone?: string | null): number {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .endOf('month')\r\n .toMillis();\r\n}\r\n\r\nexport function startOfYear(yearOffset?: number, timeZone?: string | null): number {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('year')\r\n .plus({ years: yearOffset })\r\n .toMillis();\r\n}\r\n\r\nexport function toStartOfYear(millis: number, timeZone?: string | null): number {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('year')\r\n .toMillis();\r\n}\r\n\r\nexport function toEndOfYear(millis: number, timeZone?: string | null): number {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .endOf('year')\r\n .toMillis();\r\n}\r\n\r\nexport const toJsDate = (millis: number, timeZone?: string | null): Date => {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .toJSDate();\r\n};\r\n\r\nexport const toTime = (millis: number, timeZone?: string | null): { hour: number; minute: number; offset: string } => {\r\n const time = DateTime.fromMillis(millis).setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE);\r\n return { hour: time.hour, minute: time.minute, offset: time.offsetNameShort ?? '' };\r\n};\r\n\r\nexport const toOffset = (timeZone?: string | null): string => {\r\n const time = DateTime.fromJSDate(new Date()).setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE);\r\n return time.offsetNameShort ?? '';\r\n};\r\n\r\nexport const toDate = (millis: number, timeZone?: string | null): { day: number; month: number; year: number; offset: string } => {\r\n const time = DateTime.fromMillis(millis).setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE);\r\n return { day: time.day, month: time.month, year: time.year, offset: time.offsetNameShort ?? '' };\r\n};\r\n\r\nexport function parseTimeInput(date: Date, timeInput: string, timezone?: string): number {\r\n if (!date || !timeInput || !timeInput.includes(':')) {\r\n return date?.getTime() ?? 0;\r\n }\r\n\r\n const localMidnight = toStartOfTheDay(date.getTime(), timezone);\r\n\r\n const hoursAndMinutes = timeInput.split(':').map((value) => Number.parseInt(value));\r\n\r\n const hours = hoursAndMinutes[0] * 1000 * 60 * 60;\r\n const minutes = hoursAndMinutes[1] * 1000 * 60;\r\n\r\n return localMidnight + hours + minutes;\r\n}\r\n\r\nexport function format(millis: number, locale: string, format?: string): string {\r\n if (format) {\r\n return DateTime.fromMillis(millis).toFormat(format, { locale: locale });\r\n } else {\r\n return DateTime.fromMillis(millis).toLocaleString({}, { locale: locale });\r\n }\r\n}\r\n\r\nexport enum RelativeTimePeriod {\r\n TODAY = 'TODAY',\r\n YESTERDAY = 'YESTERDAY',\r\n TOMORROW = 'TOMORROW',\r\n LAST_1_HOURS = 'LAST_1_HOURS',\r\n LAST_24_HOURS = 'LAST_24_HOURS',\r\n LAST_7_DAYS = 'LAST_7_DAYS',\r\n NEXT_7_DAYS = 'NEXT_7_DAYS',\r\n THIS_WEEK = 'THIS_WEEK',\r\n LAST_30_DAYS = 'LAST_30_DAYS',\r\n NEXT_30_DAYS = 'NEXT_30_DAYS',\r\n THIS_MONTH = 'THIS_MONTH',\r\n LAST_6_MONTHS = 'LAST_6_MONTHS',\r\n LAST_12_MONTHS = 'LAST_12_MONTHS',\r\n NEXT_12_MONTHS = 'NEXT_12_MONTHS',\r\n THIS_YEAR = 'THIS_YEAR',\r\n}\r\n\r\nexport const RELATIVE_TIME_PERIODS = Object.keys(RelativeTimePeriod) as RelativeTimePeriod[];\r\n\r\nexport const startOfPeriod: (timezone?: string | null) => { [key in RelativeTimePeriod]: number } = (timezone) => ({\r\n [RelativeTimePeriod.TODAY]: startOfTheDay(undefined, timezone),\r\n [RelativeTimePeriod.YESTERDAY]: startOfTheDay(-1, timezone),\r\n [RelativeTimePeriod.TOMORROW]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.LAST_1_HOURS]: hoursAway(-1, timezone),\r\n [RelativeTimePeriod.LAST_24_HOURS]: daysAway(-1, timezone),\r\n [RelativeTimePeriod.LAST_7_DAYS]: startOfTheDay(-7, timezone),\r\n [RelativeTimePeriod.NEXT_7_DAYS]: startOfTheDay(undefined, timezone),\r\n [RelativeTimePeriod.THIS_WEEK]: startOfWeek(undefined, timezone),\r\n [RelativeTimePeriod.LAST_30_DAYS]: startOfTheDay(-30, timezone),\r\n [RelativeTimePeriod.NEXT_30_DAYS]: startOfTheDay(undefined, timezone),\r\n [RelativeTimePeriod.THIS_MONTH]: startOfMonth(undefined, timezone),\r\n [RelativeTimePeriod.LAST_6_MONTHS]: startOfMonth(-6, timezone),\r\n [RelativeTimePeriod.LAST_12_MONTHS]: startOfTheDay(-365, timezone),\r\n [RelativeTimePeriod.NEXT_12_MONTHS]: startOfTheDay(undefined, timezone),\r\n [RelativeTimePeriod.THIS_YEAR]: startOfYear(undefined, timezone),\r\n});\r\n\r\nexport const endOfPeriod: (timezone?: string | null) => { [key in RelativeTimePeriod]: number } = (timezone) => ({\r\n [RelativeTimePeriod.TODAY]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.YESTERDAY]: startOfTheDay(undefined, timezone),\r\n [RelativeTimePeriod.TOMORROW]: startOfTheDay(+2, timezone),\r\n [RelativeTimePeriod.LAST_1_HOURS]: hoursAway(+0, timezone),\r\n [RelativeTimePeriod.LAST_24_HOURS]: daysAway(+0, timezone),\r\n [RelativeTimePeriod.LAST_7_DAYS]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.NEXT_7_DAYS]: startOfTheDay(+7, timezone),\r\n [RelativeTimePeriod.THIS_WEEK]: startOfWeek(+1, timezone),\r\n [RelativeTimePeriod.LAST_30_DAYS]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.NEXT_30_DAYS]: startOfTheDay(+30, timezone),\r\n [RelativeTimePeriod.THIS_MONTH]: startOfMonth(+1, timezone),\r\n [RelativeTimePeriod.LAST_6_MONTHS]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.LAST_12_MONTHS]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.NEXT_12_MONTHS]: startOfTheDay(+365, timezone),\r\n [RelativeTimePeriod.THIS_YEAR]: startOfYear(+1, timezone),\r\n});\r\n","export function saveFile(blob: Blob, fileName: string) {\r\n const url = URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n a.style.display = 'none';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n URL.revokeObjectURL(url);\r\n}\r\n","import { AbstractControl, ValidationErrors } from \"@angular/forms\";\r\n\r\nexport function validateAssetName(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return value.includes('/') ? {assetNameError: {valid: false}} : null;\r\n}\r\n\r\nexport function fileSizeValidator(control: AbstractControl, maxSizeInBytes: number): ValidationErrors | null {\r\n const file = control.value;\r\n if (!file || !file[0]) {\r\n return null;\r\n } else {\r\n return file[0].size > maxSizeInBytes ? {fileSize: maxSizeInBytes} : null;\r\n }\r\n}\r\n\r\nexport function validateTypeAssetName(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n const pattern = /^[^%?;#\\/\\\\]*$/;\r\n\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return pattern.test(value) ? null : {assetTypeNameError: {valid: false}};\r\n}\r\n","import { MissingTranslationHandler, MissingTranslationHandlerParams } from \"@ngx-translate/core\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class MissingTranslationHelper implements MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams) {\r\n return params.interpolateParams ? (params.interpolateParams as any).default || params.key : params.key;\r\n }\r\n}\r\n","export function determineMinMaxValues(values: number[], paddingPercentage?: number): { min: number; max: number } {\r\n if (values.length === 0) {\r\n return { min: 0, max: 0 };\r\n }\r\n\r\n const minValue = values.reduce((a, b) => (a <= b ? a : b));\r\n const maxValue = values.reduce((a, b) => (a >= b ? a : b));\r\n\r\n if (!paddingPercentage) {\r\n return { min: minValue, max: maxValue }\r\n }\r\n\r\n const padding = maxValue === minValue ? minValue / paddingPercentage : (maxValue - minValue) / paddingPercentage;\r\n const magnitude = determineMagnitude(padding);\r\n\r\n if (magnitude < 0) {\r\n return { min: scale(minValue - padding, -magnitude), max: scale(maxValue + padding, -magnitude) };\r\n } else {\r\n return { min: Math.floor(minValue - padding), max: Math.floor(maxValue + padding) };\r\n }\r\n}\r\n\r\n/**\r\n * Determines the magnitude of the number.\r\n *\r\n * ...\r\n * 100 - 999 -> 2\r\n * 10 - 99 -> 1\r\n * 0 - 9 -> 0\r\n * 0.1 - 0.9999999999... -> -1\r\n * 0.01 - 0.0999999... -> -2\r\n * ...\r\n */\r\nexport const determineMagnitude = (value: number): number => {\r\n if (value === 0) return 0;\r\n return value < 1 ? -Math.ceil(-(Math.log10(value))) : Math.floor(Math.log10(value));\r\n}\r\n\r\nexport const scale = (value: number, precision: number): number => {\r\n return Number(value.toFixed(precision));\r\n}\r\n","export const equalsByValue = <T>(value1: T, value2: T): boolean => {\r\n if (!value1) return !value2;\r\n if (!value2) return !value1;\r\n\r\n const object1Entries = Object.entries(value1).sort((a, b) => a[0].localeCompare(b[0]));\r\n const object2Entries = Object.entries(value2).sort((a, b) => a[0].localeCompare(b[0]));\r\n\r\n if (object1Entries.length != object2Entries.length) {\r\n return false;\r\n }\r\n\r\n return JSON.stringify(object1Entries) === JSON.stringify(object2Entries);\r\n}\r\n\r\nexport const groupBy = <T>(array: T[], groupingFunction: (value: T) => string): Record<string, T[]> => {\r\n if (!array) {\r\n return {};\r\n }\r\n\r\n const result: Record<string, T[]> = {};\r\n\r\n array.forEach(value => {\r\n const key = groupingFunction(value);\r\n if (!result[key]) {\r\n result[key] = [];\r\n }\r\n\r\n result[key].push(value);\r\n })\r\n\r\n return result;\r\n};\r\n\r\nexport const uniqueFrom = <R, T>(array: T[], valueFunction: (value: T) => R): R[] => {\r\n const uniqueValues: R[] = [];\r\n\r\n array.forEach(arrayElement => {\r\n const value = valueFunction(arrayElement);\r\n if (!uniqueValues.includes(value)) {\r\n uniqueValues.push(value);\r\n }\r\n })\r\n\r\n return uniqueValues;\r\n}\r\n\r\nexport const uniqueBy = <R, T>(array: T[], valueFunction: (value: T) => R): T[] => {\r\n const uniqueValues: R[] = [];\r\n const uniqueElements: T[] = [];\r\n\r\n array.forEach(arrayElement => {\r\n const value = valueFunction(arrayElement);\r\n if (!uniqueValues.includes(value)) {\r\n uniqueValues.push(value);\r\n uniqueElements.push(arrayElement);\r\n }\r\n })\r\n\r\n return uniqueElements;\r\n}\r\n\r\nexport const flatten = <T>(data: T[], getChildren: (node: T) => T[]): T[] => data.flatMap((node) => [node, ...flatten<T>(getChildren(node), getChildren)]);\r\n\r\nexport const flatMap = <T> (array: T[][]): T[] => {\r\n const flatArray: T[] = [];\r\n array.forEach(value => flatArray.push(...value))\r\n return flatArray;\r\n}\r\n\r\nexport const arrayToObject = <T, R> (array: T[] | null | undefined, propertyFunction: (entry: T) => string, mappingFunction: (entry: T) => R): Record<string, R> => {\r\n const result: Record<string, R> = {};\r\n if (!array) {\r\n return result;\r\n }\r\n\r\n array.forEach((entry) => {\r\n result[propertyFunction(entry)] = mappingFunction(entry);\r\n })\r\n\r\n return result;\r\n}\r\n","export const generateRandomString = (length: number): string => {\r\n const array = new Uint8Array(Math.ceil(length / 2));\r\n window.crypto.getRandomValues(array);\r\n return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('').slice(0, length);\r\n}\r\n","export const DEFAULT_TIMEZONES = \"Europe/Prague\";\r\n\r\nexport const TIMEZONES: string[] = [\r\n \"Africa/Abidjan\",\r\n \"Africa/Accra\",\r\n \"Africa/Addis_Ababa\",\r\n \"Africa/Algiers\",\r\n \"Africa/Asmara\",\r\n \"Africa/Asmera\",\r\n \"Africa/Bamako\",\r\n \"Africa/Bangui\",\r\n \"Africa/Banjul\",\r\n \"Africa/Bissau\",\r\n \"Africa/Blantyre\",\r\n \"Africa/Brazzaville\",\r\n \"Africa/Bujumbura\",\r\n \"Africa/Cairo\",\r\n \"Africa/Casablanca\",\r\n \"Africa/Ceuta\",\r\n \"Africa/Conakry\",\r\n \"Africa/Dakar\",\r\n \"Africa/Dar_es_Salaam\",\r\n \"Africa/Djibouti\",\r\n \"Africa/Douala\",\r\n \"Africa/El_Aaiun\",\r\n \"Africa/Freetown\",\r\n \"Africa/Gaborone\",\r\n \"Africa/Harare\",\r\n \"Africa/Johannesburg\",\r\n \"Africa/Juba\",\r\n \"Africa/Kampala\",\r\n \"Africa/Khartoum\",\r\n \"Africa/Kigali\",\r\n \"Africa/Kinshasa\",\r\n \"Africa/Lagos\",\r\n \"Africa/Libreville\",\r\n \"Africa/Lome\",\r\n \"Africa/Luanda\",\r\n \"Africa/Lubumbashi\",\r\n \"Africa/Lusaka\",\r\n \"Africa/Malabo\",\r\n \"Africa/Maputo\",\r\n \"Africa/Maseru\",\r\n \"Africa/Mbabane\",\r\n \"Africa/Mogadishu\",\r\n \"Africa/Monrovia\",\r\n \"Africa/Nairobi\",\r\n \"Africa/Ndjamena\",\r\n \"Africa/Niamey\",\r\n \"Africa/Nouakchott\",\r\n \"Africa/Ouagadougou\",\r\n \"Africa/Porto-Novo\",\r\n \"Africa/Sao_Tome\",\r\n \"Africa/Timbuktu\",\r\n \"Africa/Tripoli\",\r\n \"Africa/Tunis\",\r\n \"Africa/Windhoek\",\r\n \"America/Adak\",\r\n \"America/Anchorage\",\r\n \"America/Anguilla\",\r\n \"America/Antigua\",\r\n \"America/Araguaina\",\r\n \"America/Argentina/Buenos_Aires\",\r\n \"America/Argentina/Catamarca\",\r\n \"America/Argentina/ComodRivadavia\",\r\n \"America/Argentina/Cordoba\",\r\n \"America/Argentina/Jujuy\",\r\n \"America/Argentina/La_Rioja\",\r\n \"America/Argentina/Mendoza\",\r\n \"America/Argentina/Rio_Gallegos\",\r\n \"America/Argentina/Salta\",\r\n \"America/Argentina/San_Juan\",\r\n \"America/Argentina/San_Luis\",\r\n \"America/Argentina/Tucuman\",\r\n \"America/Argentina/Ushuaia\",\r\n \"America/Aruba\",\r\n \"America/Asuncion\",\r\n \"America/Atikokan\",\r\n \"America/Atka\",\r\n \"America/Bahia\",\r\n \"America/Bahia_Banderas\",\r\n \"America/Barbados\",\r\n \"America/Belem\",\r\n \"America/Belize\",\r\n \"America/Blanc-Sablon\",\r\n \"America/Boa_Vista\",\r\n \"America/Bogota\",\r\n \"America/Boise\",\r\n \"America/Buenos_Aires\",\r\n \"America/Cambridge_Bay\",\r\n \"America/Campo_Grande\",\r\n \"America/Cancun\",\r\n \"America/Caracas\",\r\n \"America/Catamarca\",\r\n \"America/Cayenne\",\r\n \"America/Cayman\",\r\n \"America/Chicago\",\r\n \"America/Chihuahua\",\r\n \"America/Ciudad_Juarez\",\r\n \"America/Coral_Harbour\",\r\n \"America/Cordoba\",\r\n \"America/Costa_Rica\",\r\n \"America/Creston\",\r\n \"America/Cuiaba\",\r\n \"America/Curacao\",\r\n \"America/Danmarkshavn\",\r\n \"America/Dawson\",\r\n \"America/Dawson_Creek\",\r\n \"America/Denver\",\r\n \"America/Detroit\",\r\n \"America/Dominica\",\r\n \"America/Edmonton\",\r\n \"America/Eirunepe\",\r\n \"America/El_Salvador\",\r\n \"America/Ensenada\",\r\n \"America/Fort_Nelson\",\r\n \"America/Fort_Wayne\",\r\n \"America/Fortaleza\",\r\n \"America/Glace_Bay\",\r\n \"America/Godthab\",\r\n \"America/Goose_Bay\",\r\n \"America/Grand_Turk\",\r\n \"America/Grenada\",\r\n \"America/Guadeloupe\",\r\n \"America/Guatemala\",\r\n \"America/Guayaquil\",\r\n \"America/Guyana\",\r\n \"America/Halifax\",\r\n \"America/Havana\",\r\n \"America/Hermosillo\",\r\n \"America/Indiana/Indianapolis\",\r\n \"America/Indiana/Knox\",\r\n \"America/Indiana/Marengo\",\r\n \"America/Indiana/Petersburg\",\r\n \"America/Indiana/Tell_City\",\r\n \"America/Indiana/Vevay\",\r\n \"America/Indiana/Vincennes\",\r\n \"America/Indiana/Winamac\",\r\n \"America/Indianapolis\",\r\n \"America/Inuvik\",\r\n \"America/Iqaluit\",\r\n \"America/Jamaica\",\r\n \"America/Jujuy\",\r\n \"America/Juneau\",\r\n \"America/Kentucky/Louisville\",\r\n \"America/Kentucky/Monticello\",\r\n \"America/Knox_IN\",\r\n \"America/Kralendijk\",\r\n \"America/La_Paz\",\r\n \"America/Lima\",\r\n \"America/Los_Angeles\",\r\n \"America/Louisville\",\r\n \"America/Lower_Princes\",\r\n \"America/Maceio\",\r\n \"America/Managua\",\r\n \"America/Manaus\",\r\n \"America/Marigot\",\r\n \"America/Martinique\",\r\n \"America/Matamoros\",\r\n \"America/Mazatlan\",\r\n \"America/Mendoza\",\r\n \"America/Menominee\",\r\n \"America/Merida\",\r\n \"America/Metlakatla\",\r\n \"America/Mexico_City\",\r\n \"America/Miquelon\",\r\n \"America/Moncton\",\r\n \"America/Monterrey\",\r\n \"America/Montevideo\",\r\n \"America/Montreal\",\r\n \"America/Montserrat\",\r\n \"America/Nassau\",\r\n \"America/New_York\",\r\n \"America/Nipigon\",\r\n \"America/Nome\",\r\n \"America/Noronha\",\r\n \"America/North_Dakota/Beulah\",\r\n \"America/North_Dakota/Center\",\r\n \"America/North_Dakota/New_Salem\",\r\n \"America/Nuuk\",\r\n \"America/Ojinaga\",\r\n \"America/Panama\",\r\n \"America/Pangnirtung\",\r\n \"America/Paramaribo\",\r\n \"America/Phoenix\",\r\n \"America/Port-au-Prince\",\r\n \"America/Port_of_Spain\",\r\n \"America/Porto_Acre\",\r\n \"America/Porto_Velho\",\r\n \"America/Puerto_Rico\",\r\n \"America/Punta_Arenas\",\r\n \"America/Rainy_River\",\r\n \"America/Rankin_Inlet\",\r\n \"America/Recife\",\r\n \"America/Regina\",\r\n \"America/Resolute\",\r\n \"America/Rio_Branco\",\r\n \"America/Rosario\",\r\n \"America/Santa_Isabel\",\r\n \"America/Santarem\",\r\n \"America/Santiago\",\r\n \"America/Santo_Domingo\",\r\n \"America/Sao_Paulo\",\r\n \"America/Scoresbysund\",\r\n \"America/Shiprock\",\r\n \"America/Sitka\",\r\n \"America/St_Barthelemy\",\r\n \"America/St_Johns\",\r\n \"America/St_Kitts\",\r\n \"America/St_Lucia\",\r\n \"America/St_Thomas\",\r\n \"America/St_Vincent\",\r\n \"America/Swift_Current\",\r\n \"America/Tegucigalpa\",\r\n \"America/Thule\",\r\n \"America/Thunder_Bay\",\r\n \"America/Tijuana\",\r\n \"America/Toronto\",\r\n \"America/Tortola\",\r\n \"America/Vancouver\",\r\n \"America/Virgin\",\r\n \"America/Whitehorse\",\r\n \"America/Winnipeg\",\r\n \"America/Yakutat\",\r\n \"America/Yellowknife\",\r\n \"Antarctica/Casey\",\r\n \"Antarctica/Davis\",\r\n \"Antarctica/DumontDUrville\",\r\n \"Antarctica/Macquarie\",\r\n \"Antarctica/Mawson\",\r\n \"Antarctica/McMurdo\",\r\n \"Antarctica/Palmer\",\r\n \"Antarctica/Rothera\",\r\n \"Antarctica/South_Pole\",\r\n \"Antarctica/Syowa\",\r\n \"Antarctica/Troll\",\r\n \"Antarctica/Vostok\",\r\n \"Arctic/Longyearbyen\",\r\n \"Asia/Aden\",\r\n \"Asia/Almaty\",\r\n \"Asia/Amman\",\r\n \"Asia/Anadyr\",\r\n \"Asia/Aqtau\",\r\n \"Asia/Aqtobe\",\r\n \"Asia/Ashgabat\",\r\n \"Asia/Ashkhabad\",\r\n \"Asia/Atyrau\",\r\n \"Asia/Baghdad\",\r\n \"Asia/Bahrain\",\r\n \"Asia/Baku\",\r\n \"Asia/Bangkok\",\r\n \"Asia/Barnaul\",\r\n \"Asia/Beirut\",\r\n \"Asia/Bishkek\",\r\n \"Asia/Brunei\",\r\n \"Asia/Calcutta\",\r\n \"Asia/Chita\",\r\n \"Asia/Choibalsan\",\r\n \"Asia/Chongqing\",\r\n \"Asia/Chungking\",\r\n \"Asia/Colombo\",\r\n \"Asia/Dacca\",\r\n \"Asia/Damascus\",\r\n \"Asia/Dhaka\",\r\n \"Asia/Dili\",\r\n \"Asia/Dubai\",\r\n \"Asia/Dushanbe\",\r\n \"Asia/Famagusta\",\r\n \"Asia/Gaza\",\r\n \"Asia/Harbin\",\r\n \"Asia/Hebron\",\r\n \"Asia/Ho_Chi_Minh\",\r\n \"Asia/Hong_Kong\",\r\n \"Asia/Hovd\",\r\n \"Asia/Irkutsk\",\r\n \"Asia/Istanbul\",\r\n \"Asia/Jakarta\",\r\n \"Asia/Jayapura\",\r\n \"Asia/Jerusalem\",\r\n \"Asia/Kabul\",\r\n \"Asia/Kamchatka\",\r\n \"Asia/Karachi\",\r\n \"Asia/Kashgar\",\r\n \"Asia/Kathmandu\",\r\n \"Asia/Katmandu\",\r\n \"Asia/Khandyga\",\r\n \"Asia/Kolkata\",\r\n \"Asia/Krasnoyarsk\",\r\n \"Asia/Kuala_Lumpur\",\r\n \"Asia/Kuching\",\r\n \"Asia/Kuwait\",\r\n \"Asia/Macao\",\r\n \"Asia/Macau\",\r\n \"Asia/Magadan\",\r\n \"Asia/Makassar\",\r\n \"Asia/Manila\",\r\n \"Asia/Muscat\",\r\n \"Asia/Nicosia\",\r\n \"Asia/Novokuznetsk\",\r\n \"Asia/Novosibirsk\",\r\n \"Asia/Omsk\",\r\n \"Asia/Oral\",\r\n \"Asia/Phnom_Penh\",\r\n \"Asia/Pontianak\",\r\n \"Asia/Pyongyang\",\r\n \"Asia/Qatar\",\r\n \"Asia/Qostanay\",\r\n \"Asia/Qyzylorda\",\r\n \"Asia/Rangoon\",\r\n \"Asia/Riyadh\",\r\n \"Asia/Saigon\",\r\n \"Asia/Sakhalin\",\r\n \"Asia/Samarkand\",\r\n \"Asia/Seoul\",\r\n \"Asia/Shanghai\",\r\n \"Asia/Singapore\",\r\n \"Asia/Srednekolymsk\",\r\n \"Asia/Taipei\",\r\n \"Asia/Tashkent\",\r\n \"Asia/Tbilisi\",\r\n \"Asia/Tehran\",\r\n \"Asia/Tel_Aviv\",\r\n \"Asia/Thimbu\",\r\n \"Asia/Thimphu\",\r\n \"Asia/Tokyo\",\r\n \"Asia/Tomsk\",\r\n \"Asia/Ujung_Pandang\",\r\n \"Asia/Ulaanbaatar\",\r\n \"Asia/Ulan_Bator\",\r\n \"Asia/Urumqi\",\r\n \"Asia/Ust-Nera\",\r\n \"Asia/Vientiane\",\r\n \"Asia/Vladivostok\",\r\n \"Asia/Yakutsk\",\r\n \"Asia/Yangon\",\r\n \"Asia/Yekaterinburg\",\r\n \"Asia/Yerevan\",\r\n \"Atlantic/Azores\",\r\n \"Atlantic/Bermuda\",\r\n \"Atlantic/Canary\",\r\n \"Atlantic/Cape_Verde\",\r\n \"Atlantic/Faeroe\",\r\n \"Atlantic/Faroe\",\r\n \"Atlantic/Jan_Mayen\",\r\n \"Atlantic/Madeira\",\r\n \"Atlantic/Reykjavik\",\r\n \"Atlantic/South_Georgia\",\r\n \"Atlantic/St_Helena\",\r\n \"Atlantic/Stanley\",\r\n \"Australia/ACT\",\r\n \"Australia/Adelaide\",\r\n \"Australia/Brisbane\",\r\n \"Australia/Broken_Hill\",\r\n \"Australia/Canberra\",\r\n \"Australia/Currie\",\r\n \"Australia/Darwin\",\r\n \"Australia/Eucla\",\r\n \"Australia/Hobart\",\r\n \"Australia/LHI\",\r\n \"Australia/Lindeman\",\r\n \"Australia/Lord_Howe\",\r\n \"Australia/Melbourne\",\r\n \"Australia/NSW\",\r\n \"Australia/North\",\r\n \"Australia/Perth\",\r\n \"Australia/Queensland\",\r\n \"Australia/South\",\r\n \"Australia/Sydney\",\r\n \"Australia/Tasmania\",\r\n \"Australia/Victoria\",\r\n \"Australia/West\",\r\n \"Australia/Yancowinna\",\r\n \"Brazil/Acre\",\r\n \"Brazil/DeNoronha\",\r\n \"Brazil/East\",\r\n \"Brazil/West\",\r\n \"CET\",\r\n \"CST6CDT\",\r\n \"Canada/Atlantic\",\r\n \"Canada/Central\",\r\n \"Canada/Eastern\",\r\n \"Canada/Mountain\",\r\n \"Canada/Newfoundland\",\r\n \"Canada/Pacific\",\r\n \"Canada/Saskatchewan\",\r\n \"Canada/Yukon\",\r\n \"Chile/Continental\",\r\n \"Chile/EasterIsland\",\r\n \"Cuba\",\r\n \"EET\",\r\n \"EST5EDT\",\r\n \"Egypt\",\r\n \"Eire\",\r\n \"Etc/GMT\",\r\n \"Etc/GMT+0\",\r\n \"Etc/GMT+1\",\r\n \"Etc/GMT+10\",\r\n \"Etc/GMT+11\",\r\n \"Etc/GMT+12\",\r\n \"Etc/GMT+2\",\r\n \"Etc/GMT+3\",\r\n \"Etc/GMT+4\",\r\n \"Etc/GMT+5\",\r\n \"Etc/GMT+6\",\r\n \"Etc/GMT+7\",\r\n \"Etc/GMT+8\",\r\n \"Etc/GMT+9\",\r\n \"Etc/GMT-0\",\r\n \"Etc/GMT-1\",\r\n \"Etc/GMT-10\",\r\n \"Etc/GMT-11\",\r\n \"Etc/GMT-12\",\r\n \"Etc/GMT-13\",\r\n \"Etc/GMT-14\",\r\n \"Etc/GMT-2\",\r\n \"Etc/GMT-3\",\r\n \"Etc/GMT-4\",\r\n \"Etc/GMT-5\",\r\n \"Etc/GMT-6\",\r\n \"Etc/GMT-7\",\r\n \"Etc/GMT-8\",\r\n \"Etc/GMT-9\",\r\n \"Etc/GMT0\",\r\n \"Etc/Greenwich\",\r\n \"Etc/UCT\",\r\n \"Etc/UTC\",\r\n \"Etc/Universal\",\r\n \"Etc/Zulu\",\r\n \"Europe/Amsterdam\",\r\n \"Europe/Andorra\",\r\n \"Europe/Astrakhan\",\r\n \"Europe/Athens\",\r\n \"Europe/Belfast\",\r\n \"Europe/Belgrade\",\r\n \"Europe/Berlin\",\r\n \"Europe/Bratislava\",\r\n \"Europe/Brussels\",\r\n \"Europe/Bucharest\",\r\n \"Europe/Budapest\",\r\n \"Europe/Busingen\",\r\n \"Europe/Chisinau\",\r\n \"Europe/Copenhagen\",\r\n \"Europe/Dublin\",\r\n \"Europe/Gibraltar\",\r\n \"Europe/Guernsey\",\r\n \"Europe/Helsinki\",\r\n \"Europe/Isle_of_Man\",\r\n \"Europe/Istanbul\",\r\n \"Europe/Jersey\",\r\n \"Europe/Kaliningrad\",\r\n \"Europe/Kiev\",\r\n \"Europe/Kirov\",\r\n \"Europe/Kyiv\",\r\n \"Europe/Lisbon\",\r\n \"Europe/Ljubljana\",\r\n \"Europe/London\",\r\n \"Europe/Luxembourg\",\r\n \"Europe/Madrid\",\r\n \"Europe/Malta\",\r\n \"Europe/Mariehamn\",\r\n \"Europe/Minsk\",\r\n \"Europe/Monaco\",\r\n \"Europe/Moscow\",\r\n \"Europe/Nicosia\",\r\n \"Europe/Oslo\",\r\n \"Europe/Paris\",\r\n \"Europe/Podgorica\",\r\n \"Europe/Prague\",\r\n \"Europe/Riga\",\r\n \"Europe/Rome\",\r\n \"Europe/Samara\",\r\n \"Europe/San_Marino\",\r\n \"Europe/Sarajevo\",\r\n \"Europe/Saratov\",\r\n \"Europe/Simferopol\",\r\n \"Europe/Skopje\",\r\n \"Europe/Sofia\",\r\n \"Europe/Stockholm\",\r\n \"Europe/Tallinn\",\r\n \"Europe/Tirane\",\r\n \"Europe/Tiraspol\",\r\n \"Europe/Ulyanovsk\",\r\n \"Europe/Uzhgorod\",\r\n \"Europe/Vaduz\",\r\n \"Europe/Vatican\",\r\n \"Europe/Vienna\",\r\n \"Europe/Vilnius\",\r\n \"Europe/Volgograd\",\r\n \"Europe/Warsaw\",\r\n \"Europe/Zagreb\",\r\n \"Europe/Zaporozhye\",\r\n \"Europe/Zurich\",\r\n \"GB\",\r\n \"GB-Eire\",\r\n \"GMT\",\r\n \"GMT0\",\r\n \"Greenwich\",\r\n \"Hongkong\",\r\n \"Iceland\",\r\n \"Indian/Antananarivo\",\r\n \"Indian/Chagos\",\r\n \"Indian/Christmas\",\r\n \"Indian/Cocos\",\r\n \"Indian/Comoro\",\r\n \"Indian/Kerguelen\",\r\n \"Indian/Mahe\",\r\n \"Indian/Maldives\",\r\n \"Indian/Mauritius\",\r\n \"Indian/Mayotte\",\r\n \"Indian/Reunion\",\r\n \"Iran\",\r\n \"Israel\",\r\n \"Jamaica\",\r\n \"Japan\",\r\n \"Kwajalein\",\r\n \"Libya\",\r\n \"MET\",\r\n \"MST7MDT\",\r\n \"Mexico/BajaNorte\",\r\n \"Mexico/BajaSur\",\r\n \"Mexico/General\",\r\n \"NZ\",\r\n \"NZ-CHAT\",\r\n \"Navajo\",\r\n \"PRC\",\r\n \"PST8PDT\",\r\n \"Pacific/Apia\",\r\n \"Pacific/Auckland\",\r\n \"Pacific/Bougainville\",\r\n \"Pacific/Chatham\",\r\n \"Pacific/Chuuk\",\r\n \"Pacific/Easter\",\r\n \"Pacific/Efate\",\r\n \"Pacific/Enderbury\",\r\n \"Pacific/Fakaofo\",\r\n \"Pacific/Fiji\",\r\n \"Pacific/Funafuti\",\r\n \"Pacific/Galapagos\",\r\n \"Pacific/Gambier\",\r\n \"Pacific/Guadalcanal\",\r\n \"Pacific/Guam\",\r\n \"Pacific/Honolulu\",\r\n \"Pacific/Johnston\",\r\n \"Pacific/Kanton\",\r\n \"Pacific/Kiritimati\",\r\n \"Pacific/Kosrae\",\r\n \"Pacific/Kwajalein\",\r\n \"Pacific/Majuro\",\r\n \"Pacific/Marquesas\",\r\n \"Pacific/Midway\",\r\n \"Pacific/Nauru\",\r\n \"Pacific/Niue\",\r\n \"Pacific/Norfolk\",\r\n \"Pacific/Noumea\",\r\n \"Pacific/Pago_Pago\",\r\n \"Pacific/Palau\",\r\n \"Pacific/Pitcairn\",\r\n \"Pacific/Pohnpei\",\r\n \"Pacific/Ponape\",\r\n \"Pacific/Port_Moresby\",\r\n \"Pacific/Rarotonga\",\r\n \"Pacific/Saipan\",\r\n \"Pacific/Samoa\",\r\n \"Pacific/Tahiti\",\r\n \"Pacific/Tarawa\",\r\n \"Pacific/Tongatapu\",\r\n \"Pacific/Truk\",\r\n \"Pacific/Wake\",\r\n \"Pacific/Wallis\",\r\n \"Pacific/Yap\",\r\n \"Poland\",\r\n \"Portugal\",\r\n \"ROK\",\r\n \"Singapore\",\r\n \"SystemV/AST4\",\r\n \"SystemV/AST4ADT\",\r\n \"SystemV/CST6\",\r\n \"SystemV/CST6CDT\",\r\n \"SystemV/EST5\",\r\n \"SystemV/EST5EDT\",\r\n \"SystemV/HST10\",\r\n \"SystemV/MST7\",\r\n \"SystemV/MST7MDT\",\r\n \"SystemV/PST8\",\r\n \"SystemV/PST8PDT\",\r\n \"SystemV/YST9\",\r\n \"SystemV/YST9YDT\",\r\n \"Turkey\",\r\n \"UCT\",\r\n \"US/Alaska\",\r\n \"US/Aleutian\",\r\n \"US/Arizona\",\r\n \"US/Central\",\r\n \"US/East-Indiana\",\r\n \"US/Eastern\",\r\n \"US/Hawaii\",\r\n \"US/Indiana-Starke\",\r\n \"US/Michigan\",\r\n \"US/Mountain\",\r\n \"US/Pacific\",\r\n \"US/Samoa\",\r\n \"UTC\",\r\n \"Universal\",\r\n \"W-SU\",\r\n \"WET\",\r\n \"Zulu\"\r\n]\r\n","/**\r\n * Looks for the value of the specified queryParameter.\r\n * Useful for many initialSelection implementations.\r\n */\r\nexport const lookUpQueryParam = (queryParamName: string): string | null => {\r\n const hash = window.location.hash; // includes everything after the '#'\r\n const queryIndex = hash.indexOf('?');\r\n if (queryIndex === -1) {\r\n return null;\r\n }\r\n\r\n const queryString = hash.substring(queryIndex + 1);\r\n const params = new URLSearchParams(queryString);\r\n return params.get(queryParamName);\r\n}\r\n\r\nexport const lookUpPathPart = (index: number): string | null => {\r\n return window.location.hash.split('/')[index];\r\n}\r\n","import { Component, ContentChild, Input, OnDestroy, OnInit, Optional, Self, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NgControl, Validators } from '@angular/forms';\r\nimport { filter, map, merge, Observable, of, shareReplay, Subject, switchMap, takeUntil, tap } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n imports: [shared]\r\n})\r\nexport class AutocompleteComponent<ItemType> implements ControlValueAccessor, OnInit, OnDestroy {\r\n\r\n @Input() name = '';\r\n @Input() dataFunction: (query: string) => Observable<ItemType[] | null> = () => of(null);\r\n @Input() displayFunction: (item: ItemType) => string = (item) => (item as any)?.name;\r\n @Input() outlineBackground = false;\r\n @ContentChild(TemplateRef) dropdownTemplate?: TemplateRef<unknown>;\r\n @ViewChild(MatAutocompleteTrigger) autocompleteTrigger?: MatAutocompleteTrigger;\r\n\r\n protected readonly Object = Object;\r\n\r\n disabled = false;\r\n\r\n formControl = new FormControl<ItemType | string>('', {nonNullable: true});\r\n\r\n data$ = this.formControl.valueChanges.pipe(\r\n startWith(''), // Autoload\r\n filter((value) => typeof value === 'string'),\r\n switchMap((value) => this.dataFunction(value as string)),\r\n shareReplay(1)\r\n );\r\n\r\n loading$ = merge(\r\n this.formControl.valueChanges.pipe(\r\n filter((value) => typeof value === 'string'),\r\n map(() => true)\r\n ),\r\n this.data$.pipe(map(() => false))\r\n );\r\n\r\n componentIsDestroyed$ = new Subject<void>();\r\n\r\n constructor(@Optional() @Self() public controlDir: NgControl) {\r\n controlDir.valueAccessor = this;\r\n }\r\n\r\n onTouched!: (ev: Event) => void;\r\n\r\n ngOnInit(): void {\r\n this.setControlValidators();\r\n document.addEventListener('wheel', this.scrollEvent, {capture: true, passive: false});\r\n document.addEventListener('touchmove', this.scrollEvent, {capture: true, passive: false});\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n tap((value) => {\r\n if (typeof value !== 'string') {\r\n this.formControl.disable({emitEvent: false});\r\n }\r\n }),\r\n map((value) => (!value || typeof value === 'string' ? '' : value)),\r\n takeUntil(this.componentIsDestroyed$)\r\n ).subscribe(fn);\r\n }\r\n\r\n registerOnTouched(fn: (ev: Event) => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value: ItemType): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n this.formControl.enable({emitEvent: false});\r\n } else {\r\n this.formControl.setValue(value);\r\n this.formControl.disable({emitEvent: false});\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n if (this.formControl.value || this.disabled) {\r\n this.formControl.disable({emitEvent: false});\r\n } else {\r\n this.formControl.enable({emitEvent: false});\r\n }\r\n }\r\n\r\n clear() {\r\n this.formControl.reset();\r\n this.formControl.enable({emitEvent: false});\r\n this.formControl.updateValueAndValidity();\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.closePanel();\r\n }, 0);\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n private setControlValidators() {\r\n if (this.controlDir?.control) {\r\n const isRequired = this.controlDir.control.hasValidator(Validators.required);\r\n\r\n const validators = [];\r\n\r\n if (isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n\r\n if (this.controlDir.control.validator) {\r\n validators.push(this.controlDir.control.validator);\r\n }\r\n\r\n this.formControl.setValidators(validators);\r\n }\r\n }\r\n\r\n private scrollEvent = (event: any): void => {\r\n if (this.autocompleteTrigger?.panelOpen\r\n && !event.srcElement?.className.includes('autocomplete-panel')\r\n && !event.srcElement?.className?.includes('autocomplete-option')) {\r\n event.preventDefault()\r\n }\r\n };\r\n\r\n ngOnDestroy() {\r\n this.componentIsDestroyed$.next();\r\n this.componentIsDestroyed$.complete();\r\n document.removeEventListener('wheel', this.scrollEvent, true);\r\n document.removeEventListener('touchmove', this.scrollEvent, true);\r\n }\r\n}\r\n","<ng-container>\r\n <div class=\"w-full\">\r\n <mat-form-field [ngClass]=\"{ 'outline-background': outlineBackground }\" class=\"w-full\">\r\n <mat-label>\r\n <span>{{ name | translate }}</span>\r\n </mat-label>\r\n <input matInput #autoCompleteInput [formControl]=\"formControl\" [placeholder]=\"name | translate\" autocomplete=\"off\" [matAutocomplete]=\"auto\" (blur)=\"onTouched($event)\" [attr.data-test]=\"name + 'SearchInput'\"/>\r\n <button matSuffix mat-icon-button *ngIf=\"formControl?.value\" (click)=\"clear()\" [disabled]=\"disabled\" type='button'>\r\n <mat-icon class=\"text-mat-sys-primary\">clear</mat-icon>\r\n </button>\r\n @for (error of getErrors(); track error) {\r\n <mat-error>{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [class]=\"'autocomplete-panel'\" [displayWith]=\"displayFunction\">\r\n @if (loading$ | async) {\r\n <mat-option>\r\n <div>{{ 'Loading...' }}</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </mat-option>\r\n } @else {\r\n <mat-option *ngFor=\"let item of data$ | async; let i = index\" [value]=\"item\" class=\"autocomplete-option\" [attr.data-test]=\"name + 'SearchItem' + (i + 1)\">\r\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate ? dropdownTemplate : defaultTemplate\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\r\n <ng-template #defaultTemplate>{{ displayFunction(item) }}</ng-template>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n</ng-container>\r\n","import { Component, ContentChild, ElementRef, Input, OnDestroy, OnInit, Optional, Self, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NgControl } from \"@angular/forms\";\r\nimport { BehaviorSubject, filter, map, merge, Observable, of, shareReplay, Subject, switchMap, takeUntil } from \"rxjs\";\r\nimport { startWith } from \"rxjs/operators\";\r\nimport { MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-autocomplete-chips',\r\n imports: [shared],\r\n templateUrl: './autocomplete-chips.component.html',\r\n styleUrl: './autocomplete-chips.component.scss'\r\n})\r\nexport class AutocompleteChipsComponent<ItemType> implements OnInit, ControlValueAccessor, OnDestroy {\r\n\r\n @Input() name = '';\r\n @Input() dataFunction: (query: string) => Observable<ItemType[] | null> = () => of(null);\r\n @Input() displayFunction: (item: ItemType | any) => string = (item) => (item as any)?.name;\r\n @Input() outlineBackground = false;\r\n @ContentChild(TemplateRef) dropdownTemplate?: TemplateRef<unknown>;\r\n @ViewChild(MatAutocompleteTrigger) autocompleteTrigger?: MatAutocompleteTrigger;\r\n @ViewChild('autoCompleteInput') inputRef!: ElementRef<HTMLInputElement>;\r\n\r\n protected readonly Object = Object;\r\n\r\n disabled = false;\r\n formControl = new FormControl<string>('');\r\n items$ = new BehaviorSubject<ItemType[]>([])\r\n\r\n data$ = this.formControl.valueChanges.pipe(\r\n startWith(''),\r\n filter((value) => typeof value === 'string'),\r\n switchMap((value) => this.dataFunction(value as string)),\r\n shareReplay(1)\r\n );\r\n\r\n loading$ = merge(\r\n this.formControl.valueChanges.pipe(\r\n filter((value) => typeof value === 'string'),\r\n map(() => true)\r\n ),\r\n this.data$.pipe(map(() => false))\r\n );\r\n\r\n componentIsDestroyed$ = new Subject<void>();\r\n\r\n onTouched!: (ev: Event) => void;\r\n\r\n constructor(@Optional() @Self() public controlDir: NgControl) {\r\n controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setControlValidators()\r\n document.addEventListener('wheel', this.scrollEvent, {capture: true, passive: false});\r\n document.addEventListener('touchmove', this.scrollEvent, {capture: true, passive: false});\r\n }\r\n\r\n removeItem(index: number, items: ItemType[]): void {\r\n if (!this.disabled) {\r\n const newItems = items.filter((v, i) => index !== i);\r\n this.items$.next(newItems);\r\n this.formControl.setValue('')\r\n this.inputRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n addItem(event: MatAutocompleteSelectedEvent) {\r\n this.items$.next([...this.items$.value, event.option.value]);\r\n this.formControl.setValue('');\r\n this.inputRef.nativeElement.value = '';\r\n }\r\n\r\n registerOnChange(fn: (value: ItemType[]) => void): void {\r\n this.items$.pipe(\r\n takeUntil(this.componentIsDestroyed$),\r\n ).subscribe(fn);\r\n }\r\n\r\n registerOnTouched(fn: (ev: Event) => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value: ItemType[] | null): void {\r\n if (!!value) {\r\n this.items$.next(value);\r\n } else {\r\n this.formControl.setValue('');\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n if (isDisabled) {\r\n this.formControl.disable({emitEvent: false});\r\n } else {\r\n this.formControl.enable({emitEvent: false});\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n shouldShowOption(item: ItemType, items: ItemType[]) {\r\n return !items.find((i) => (i as any).name === (item as any).name)\r\n }\r\n\r\n private scrollEvent = (event: any): void => {\r\n if (this.autocompleteTrigger?.panelOpen\r\n && !event.srcElement?.className.includes('autocomplete-panel')\r\n && !event.srcElement?.className?.includes('autocomplete-option')) {\r\n event.preventDefault()\r\n }\r\n };\r\n\r\n private setControlValidators() {\r\n if (this.controlDir.control) {\r\n this.formControl.setValidators(this.controlDir.control.validator);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.componentIsDestroyed$.next();\r\n this.componentIsDestroyed$.complete();\r\n document.removeEventListener('wheel', this.scrollEvent, true);\r\n document.removeEventListener('touchmove', this.scrollEvent, true);\r\n }\r\n}\r\n","<div class=\"w-full\" [ngClass]=\"{'required' : !!getErrors().length && !formControl.untouched && !(items$ | async)?.length}\">\r\n <mat-form-field [ngClass]=\"{ 'outline-background': outlineBackground }\" class=\"w-full\">\r\n <mat-label>\r\n <span>{{ name | translate }}</span>\r\n </mat-label>\r\n <mat-chip-grid #chipGrid>\r\n <mat-chip-row *ngFor=\"let item of items$ | async as items; let i = index\"\r\n [removable]=\"!disabled\"\r\n (removed)=\"removeItem(i, items)\">\r\n {{ displayFunction(item) }}\r\n <mat-icon matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\r\n </mat-chip-row>\r\n <input matInput\r\n #autoCompleteInput\r\n [placeholder]=\"name | translate\"\r\n autocomplete=\"off\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipGrid\"\r\n (blur)=\"onTouched($event)\"/>\r\n </mat-chip-grid>\r\n </mat-form-field>\r\n\r\n @for (error of getErrors(); track error) {\r\n @if (!formControl.untouched && !(items$ | async)?.length) {\r\n <mat-error class=\"ml-4 mt-[-2px] text-xs\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n }\r\n</div>\r\n<mat-autocomplete #auto=\"matAutocomplete\" [class]=\"'autocomplete-panel'\" (optionSelected)=\"addItem($event)\">\r\n @if (loading$ | async) {\r\n <mat-option>\r\n <div>{{ 'Loading...' }}</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </mat-option>\r\n } @else {\r\n <ng-container *ngFor=\"let item of data$ | async; let i = index\">\r\n @if (shouldShowOption(item, (items$ | async) ?? [])) {\r\n <mat-option\r\n [value]=\"item\"\r\n class=\"autocomplete-option\"\r\n [attr.data-test]=\"name + 'SearchItem' + (i + 1)\">\r\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate ? dropdownTemplate : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{ item }\"></ng-container>\r\n <ng-template #defaultTemplate>{{ displayFunction(item) }}</ng-template>\r\n </mat-option>\r\n }\r\n </ng-container>\r\n }\r\n</mat-autocomplete>\r\n","import { Component, computed, inject, input, signal, untracked } from '@angular/core';\r\nimport { NgxEchartsDirective } from \"ngx-echarts\";\r\nimport { TimeSeries } from \"./time-series\";\r\nimport { EChartsOption } from 'echarts'\r\nimport { SimpleDateTimePipe } from \"../../pipe/simple-date-time.pipe\";\r\nimport { SimpleDatePipe } from \"../../pipe/simple-date.pipe\";\r\nimport { determineMinMaxValues } from \"../../util/numeric-util\";\r\nimport { ThemeService } from \"../../service/theme.service\";\r\nimport { toSignal } from \"@angular/core/rxjs-interop\";\r\n\r\n@Component({\r\n selector: 'app-basic-time-series-graph',\r\n imports: [NgxEchartsDirective],\r\n providers: [SimpleDatePipe, SimpleDateTimePipe],\r\n templateUrl: './basic-time-series-graph.component.html',\r\n styleUrl: './basic-time-series-graph.component.scss'\r\n})\r\nexport class BasicTimeSeriesGraphComponent {\r\n\r\n private themeService = inject(ThemeService);\r\n protected readonly chartTheme = toSignal(this.themeService.chartTheme$);\r\n timeSeries = input.required<TimeSeries>();\r\n desiredTimeFrame = input<{ from: number; to: number }>();\r\n primaryColor = input<string>();\r\n graphOptions = computed(() => {\r\n const timeSeries = this.timeSeries();\r\n const dataZoom = untracked(this.dataZoom);\r\n\r\n const timeMinMax = determineMinMaxValues(timeSeries.data.map((data) => data.timestamp))\r\n const valueMinMax = determineMinMaxValues(timeSeries.data.map((data) => data.value), 10)\r\n const valueLabelWidth = valueMinMax.max.toString().length * 8;\r\n\r\n return {\r\n grid: {left: Math.max(64, valueLabelWidth), right: 8, top: 32, bottom: 32},\r\n xAxis: [{\r\n type: \"time\",\r\n min: this.desiredTimeFrame()?.from ?? timeMinMax.min,\r\n max: this.desiredTimeFrame()?.to ?? timeMinMax.max\r\n }],\r\n yAxis: [{\r\n type: \"value\",\r\n name: timeSeries.unitSymbol,\r\n min: valueMinMax.min,\r\n max: valueMinMax.max\r\n }],\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: (params: any) => {\r\n const [timestamp, data] = params[0].data;\r\n return `\r\n <div class=\"flex flex-col gap-y-2\">\r\n <div>${this.timeFormatter.transform(timestamp)}</div>\r\n <div class=\"flex flex-row gap-x-2 items-center\">\r\n <div class=\"h-2 w-2 bg-mat-sys-primary rounded-3xl\"> </div>\r\n <div>${timeSeries.name}:</div>\r\n <div><span class=\"font-bold\">${data}</span><span>${timeSeries.unitSymbol ?? ''}</span></div>\r\n </div>\r\n </div>`\r\n },\r\n axisPointer: {\r\n animation: false\r\n }\r\n },\r\n series: {\r\n name: timeSeries.name,\r\n type: 'line',\r\n sampling: timeSeries.data.length > 24 * 60 * 2 ? 'lttb' : 'none',\r\n symbolSize: 1,\r\n data: timeSeries.data.map(({timestamp, value}) => [timestamp, value]),\r\n color: this.primaryColor() || this.themeService.themeColors.primary\r\n },\r\n dataZoom: [{\r\n type: 'inside',\r\n zoomOnMouseWheel: true,\r\n filterMode: 'none',\r\n start: dataZoom?.start ? dataZoom.start : null,\r\n end: dataZoom?.end ? dataZoom.end : null,\r\n }\r\n ]\r\n } as EChartsOption;\r\n })\r\n dataZoom = signal<{ start: number, end: number } | null>(null)\r\n\r\n constructor(private timeFormatter: SimpleDateTimePipe) {\r\n }\r\n\r\n chartZoom(event: any) {\r\n this.dataZoom.set({\r\n start: event.batch?.[0]?.start,\r\n end: event.batch?.[0]?.end\r\n });\r\n }\r\n}\r\n","<div echarts [options]=\"graphOptions()\" (chartDataZoom)=\"chartZoom($event)\" [theme]=\"chartTheme()!\" class=\"w-full h-full\"></div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { PermissionsService } from \"../../service/permissions.service\";\r\nimport { toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { BehaviorSubject, combineLatestWith, switchMap } from \"rxjs\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-card-labeled-value',\r\n imports: [shared],\r\n templateUrl: './card-labeled-value.component.html',\r\n styleUrl: './card-labeled-value.component.scss'\r\n})\r\nexport class CardLabeledValueComponent {\r\n @Input() set permissions(permissions: string[] | undefined) {\r\n this.permissions$.next(permissions ?? [])\r\n }\r\n\r\n @Input() set useAssetPermissions(useAssetPermissions: boolean | undefined) {\r\n this.useAssetPermissions$.next(useAssetPermissions);\r\n }\r\n\r\n @Input({required: true}) label: string = '';\r\n @Input() editFunction: (() => void) | undefined;\r\n @Input() icon: string = 'edit';\r\n @Input() tooltip: string = '';\r\n\r\n private permissions$ = new BehaviorSubject<string[]>([]);\r\n private useAssetPermissions$ = new BehaviorSubject<boolean | undefined>(undefined);\r\n private hasPermission$ = this.permissions$.pipe(\r\n combineLatestWith(this.useAssetPermissions$),\r\n switchMap(([permissions, useAssetPermissions]) => useAssetPermissions\r\n ? this.permission.hasAnyGlobalOrAssetPermission(permissions)\r\n : this.permission.hasAnyPermission(permissions))\r\n )\r\n hasPermission = toSignal(this.hasPermission$)\r\n\r\n constructor(public permission: PermissionsService) {\r\n }\r\n}\r\n","<mat-card\r\n [ngClass]=\"{'cursor-pointer hover:bg-hover-color': editFunction && hasPermission() }\"\r\n [matTooltipDisabled]=\"!hasPermission()\" (click)=\"editFunction && hasPermission() ? editFunction() : null\"\r\n [matTooltip]=\"tooltip | translate\"\r\n matTooltipPosition=\"above\"\r\n class=\"h-full min-h-22\"\r\n>\r\n <div class=\"flex items-center justify-between p-4 gap-x-4 h-full\">\r\n <div class=\"flex flex-col w-full h-fit max-h-full overflow-hidden\">\r\n <div class=\"font-semibold\">{{ label | translate }}</div>\r\n <div class=\"text-mat-sys-primary flex h-fit max-h-full\">\r\n <ng-content/>\r\n </div>\r\n </div>\r\n @if (editFunction && hasPermission()) {\r\n <button mat-icon-button [ngClass]=\"icon === 'delete' ? 'text-mat-sys-on-error-container' : 'text-mat-sys-primary'\" (click)=\"editFunction(); $event.stopPropagation()\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n</mat-card>\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport interface ConfirmationData {\r\n message: string;\r\n parameters: any;\r\n deleteDialog?: boolean;\r\n actionButtonLabel?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirmation-dialog',\r\n imports: [shared],\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrl: './confirmation-dialog.component.scss'\r\n})\r\nexport class ConfirmationDialogComponent {\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: ConfirmationData, private dialog: MatDialogRef<ConfirmationDialogComponent>) {}\r\n\r\n confirm() {\r\n this.dialog.close(true);\r\n }\r\n}\r\n","<div class=\"flex flex-col flex-auto gap-y-8 p-4 content\">\r\n <div class=\"text-lg\">{{ 'COMMON.CONFIRMATION_DIALOG_TITLE' | translate }}</div>\r\n <div class=\"flex flex-col flex-auto gap-y-4\">\r\n <div class=\"flex flex-col flex-auto gap-y-4 max-h-96 overflow-hidden\">\r\n <div class=\"whitespace-pre-line\">{{ data.message | translate:data.parameters }}</div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row flex-auto gap-x-2 justify-end\">\r\n <button mat-button mat-dialog-close>{{ 'COMMON.CANCEL' | translate }}</button>\r\n <button [ngClass]=\"{'bg-mat-sys-error-container text-mat-sys-on-error-container': data.deleteDialog}\" mat-flat-button\r\n (click)=\"confirm()\">{{ data.actionButtonLabel ? (data.actionButtonLabel! | translate) : (data.deleteDialog ? ('COMMON.DELETE' | translate) : ('COMMON.CONFIRMATION_DIALOG_CONFIRM' | translate)) }}\r\n </button>\r\n </div>\r\n</div>\r\n","import { afterNextRender, Component, DestroyRef, effect, forwardRef, input, viewChild } from '@angular/core';\r\nimport { AbstractControlOptions, ControlValueAccessor, FormControl, FormGroup, FormGroupDirective, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgForm, ValidationErrors, Validator, } from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { MatDateRangePicker } from '@angular/material/datepicker';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { endOfPeriod, RelativeTimePeriod, startOfPeriod, toJsDate } from \"../../util/date-util\";\r\nimport { DateTime } from \"luxon\";\r\nimport { SimpleDatePipe } from \"../../pipe/simple-date.pipe\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { TenantPropertiesService } from \"../../service/tenant-properties.service\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport function parseDateRangeInputPeriod(value: DateRangeValues | null, timezone: string | null) {\r\n if (!value?.periodOption) return null;\r\n\r\n if (value.periodOption === CUSTOM_PERIOD) {\r\n if (!value.from || !value.to) return null;\r\n\r\n return {\r\n periodOption: value.periodOption,\r\n from: toJsDate(value.from, timezone).getTime(),\r\n to: toJsDate(value.to, timezone).getTime(),\r\n };\r\n } else {\r\n return {\r\n periodOption: value.periodOption,\r\n from: startOfPeriod(timezone)[value.periodOption],\r\n to: endOfPeriod(timezone)[value.periodOption],\r\n };\r\n }\r\n}\r\n\r\nexport const CUSTOM_PERIOD = 'CUSTOM_PERIOD';\r\n\r\nexport type RelativeTimePeriodWithCustom = typeof CUSTOM_PERIOD | RelativeTimePeriod;\r\n\r\nexport interface DateRangeValues {\r\n periodOption: RelativeTimePeriodWithCustom;\r\n from?: number;\r\n to?: number;\r\n}\r\n\r\nexport class PeriodErrorStateMatcher implements ErrorStateMatcher {\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n return form?.hasError('incompletePeriod') ?? false;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-date-range-input',\r\n templateUrl: './date-range-input.component.html',\r\n styleUrls: ['./date-range-input.component.scss'],\r\n imports: [shared, SimpleDatePipe],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateRangeInputComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DateRangeInputComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class DateRangeInputComponent implements ControlValueAccessor, Validator {\r\n availableDateOptions = input<RelativeTimePeriod[]>([RelativeTimePeriod.TODAY, RelativeTimePeriod.YESTERDAY, RelativeTimePeriod.LAST_7_DAYS, RelativeTimePeriod.LAST_30_DAYS]);\r\n translationPrefix = input<string>();\r\n allowCustomTimespan = input(true);\r\n isInForm = input(true);\r\n datePicker = viewChild<MatDateRangePicker<Date>>('picker');\r\n validators = input<(() => ValidationErrors)[]>([])\r\n\r\n private validateForm = (form: FormGroup) => {\r\n const {periodOption, from, to} = form.value;\r\n if (periodOption === CUSTOM_PERIOD) {\r\n return from && to ? null : {incompletePeriod: true};\r\n } else {\r\n return periodOption ? null : {required: true};\r\n }\r\n };\r\n onTouched!: (ev: any) => void;\r\n private onChange: (value: any) => void = () => {};\r\n onValidatorChange!: () => void;\r\n\r\n dateRangeForm = new FormGroup({\r\n periodOption: new FormControl(),\r\n from: new FormControl(),\r\n to: new FormControl(),\r\n }, {validators: [this.validateForm]} as AbstractControlOptions);\r\n CUSTOM_PERIOD = CUSTOM_PERIOD;\r\n periodErrorStateMatcher = new PeriodErrorStateMatcher();\r\n\r\n constructor(private destroyRef: DestroyRef, private tenantPropertiesService: TenantPropertiesService) {\r\n afterNextRender(() => {\r\n const datePicker = this.datePicker();\r\n\r\n datePicker?.closedStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\r\n this.onTouched(null);\r\n });\r\n })\r\n\r\n effect(() => {\r\n const validators = this.validators();\r\n\r\n this.dateRangeForm.controls.periodOption.setValidators(validators);\r\n });\r\n }\r\n\r\n writeValue(value: DateRangeValues | null | undefined): void {\r\n if (!value) {\r\n this.dateRangeForm.reset();\r\n } else {\r\n if (value.periodOption !== CUSTOM_PERIOD) {\r\n this.dateRangeForm.patchValue(\r\n {\r\n periodOption: value.periodOption,\r\n from: null,\r\n to: null,\r\n }\r\n );\r\n } else {\r\n this.dateRangeForm.patchValue(\r\n {\r\n periodOption: value.periodOption,\r\n from: value.from !== undefined ? DateTime.fromMillis(value.from) : undefined,\r\n to: value.to !== undefined ? DateTime.fromMillis(value.to) : undefined,\r\n }\r\n );\r\n }\r\n }\r\n this.dateRangeForm.markAsPristine();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n Object.values(this.dateRangeForm.controls).forEach((control) => {\r\n isDisabled ? control.disable() : control.enable();\r\n });\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.dateRangeForm.valid\r\n ? null\r\n : Object.values(this.dateRangeForm.controls).reduce((allErrors, control) => ({...allErrors, ...(control.errors ?? {})}), {} as ValidationErrors);\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n onTimeRangeChanged(selection: MatSelectChange) {\r\n const datePicker = this.datePicker();\r\n if (selection.value.startsWith(CUSTOM_PERIOD) && (!this.dateRangeForm.controls.from.value || !this.dateRangeForm.controls.to.value)) {\r\n datePicker?.open();\r\n }\r\n\r\n this.emitValueChange();\r\n }\r\n\r\n emitValueChange() {\r\n const value = this.onChangeForm()\r\n this.onChange(value)\r\n }\r\n\r\n private onChangeForm() {\r\n const value = this.dateRangeForm.getRawValue();\r\n\r\n if (!value?.periodOption) return null;\r\n\r\n const timezone = this.tenantPropertiesService.timezone;\r\n\r\n if (value.periodOption === CUSTOM_PERIOD) {\r\n if (!value.from || !value.to) return null;\r\n\r\n return {\r\n periodOption: value.periodOption,\r\n from: toJsDate(value.from.toMillis(), timezone).getTime(),\r\n to: toJsDate(value.to.toMillis(), timezone).getTime(),\r\n };\r\n } else {\r\n return {\r\n periodOption: value.periodOption,\r\n from: startOfPeriod(timezone)[value.periodOption as RelativeTimePeriod],\r\n to: endOfPeriod(timezone)[value.periodOption as RelativeTimePeriod],\r\n };\r\n }\r\n }\r\n}\r\n","<div class=\"w-full flex flex-col\" [formGroup]=\"dateRangeForm\">\r\n @if (isInForm()) {\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{ (translationPrefix() ? translationPrefix() + '_LABEL' : 'COMMON.DATE_RANGE_LABEL') | translate }}</mat-label>\r\n <mat-select (blur)=\"onTouched($event)\" formControlName=\"periodOption\" (selectionChange)=\"onTimeRangeChanged($event)\" [errorStateMatcher]=\"periodErrorStateMatcher\" panelClass=\"date-range-panel\">\r\n @for (periodOption of availableDateOptions(); track $index) {\r\n <mat-option [value]=\"periodOption\">{{ 'COMMON.RELATIVE_TIME_PERIOD_' + periodOption | translate }}</mat-option>\r\n }\r\n @if (allowCustomTimespan()) {\r\n <mat-option [value]=\"CUSTOM_PERIOD\">\r\n <div class=\"flex flex-row gap-x-4\">\r\n @if (dateRangeForm.get('from')?.value) {\r\n <div class=\"flex flex-row\">\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('from')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n <span class=\"whitespace-nowrap h-fit\"> - </span>\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('to')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n </div>\r\n } @else {\r\n <div>{{ 'COMMON.RELATIVE_TIME_PERIOD_CUSTOM' | translate }}</div>\r\n }\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n <mat-date-range-input [rangePicker]=\"picker\" style=\"visibility: hidden; width: 0; height: 0;\">\r\n <input (blur)=\"onTouched($event)\" matStartDate formControlName=\"from\">\r\n <input (blur)=\"onTouched($event)\" matEndDate formControlName=\"to\"/>\r\n </mat-date-range-input>\r\n <mat-date-range-picker #picker (closed)=\"emitValueChange()\"></mat-date-range-picker>\r\n @if (dateRangeForm.get('periodOption')?.value === CUSTOM_PERIOD) {\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n }\r\n @if (dateRangeForm.touched && dateRangeForm.hasError('required')) {\r\n <mat-error>\r\n {{ 'COMMON.ERROR_VALIDATION_REQUIRED' | translate }}\r\n </mat-error>\r\n }\r\n @if (dateRangeForm.touched && dateRangeForm.hasError('incompletePeriod')) {\r\n {{ 'COMMON.ERROR_VALIDATION_REQUIRED' | translate }}\r\n }\r\n </mat-form-field>\r\n } @else {\r\n <div class=\"flex\">\r\n <mat-select class=\"date-range-flat-picker-select\" (blur)=\"onTouched($event)\" formControlName=\"periodOption\" (selectionChange)=\"onTimeRangeChanged($event)\" [errorStateMatcher]=\"periodErrorStateMatcher\" panelClass=\"date-range-panel\">\r\n @for (periodOption of availableDateOptions(); track $index) {\r\n <mat-option [value]=\"periodOption\">{{ 'COMMON.RELATIVE_TIME_PERIOD_' + periodOption | translate }}</mat-option>\r\n }\r\n @if (allowCustomTimespan()) {\r\n <mat-option [value]=\"CUSTOM_PERIOD\">\r\n <div class=\"flex flex-row gap-x-4\">\r\n @if (dateRangeForm.get('from')?.value) {\r\n <div class=\"flex flex-row\">\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('from')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n <span class=\"whitespace-nowrap h-fit\"> - </span>\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('to')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n </div>\r\n } @else {\r\n <div>{{ 'COMMON.RELATIVE_TIME_PERIOD_CUSTOM' | translate }}</div>\r\n }\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n <mat-date-range-input [rangePicker]=\"picker\" style=\"visibility: hidden; width: 0; height: 0;\">\r\n <input (blur)=\"onTouched($event)\" matStartDate formControlName=\"from\">\r\n <input (blur)=\"onTouched($event)\" matEndDate formControlName=\"to\"/>\r\n </mat-date-range-input>\r\n <mat-date-range-picker #picker (closed)=\"emitValueChange()\"></mat-date-range-picker>\r\n @if (dateRangeForm.get('periodOption')?.value === CUSTOM_PERIOD) {\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" class=\"date-range-flat-picker-toggle\"></mat-datepicker-toggle>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component, effect, forwardRef, input, Input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { BehaviorSubject, combineLatest, filter, map, merge, Subject, takeUntil } from 'rxjs';\r\nimport { DateTime } from \"luxon\";\r\nimport { NgxMatTimepickerComponent, NgxMatTimepickerDirective } from \"ngx-mat-timepicker\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { startWith } from \"rxjs/operators\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-date-time-form-field',\r\n imports: [shared, NgxMatTimepickerDirective, NgxMatTimepickerComponent],\r\n templateUrl: './date-time-form-field.component.html',\r\n styleUrl: './date-time-form-field.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateTimeFormFieldComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DateTimeFormFieldComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class DateTimeFormFieldComponent implements OnDestroy, ControlValueAccessor, Validator {\r\n @Input() dateLabel?: string;\r\n @Input() timeLabel?: string;\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n formGroup = new FormGroup({\r\n date: new FormControl<DateTime | null>(null),\r\n time: new FormControl<string | null>(null)\r\n })\r\n\r\n onTouched!: (ev: any) => void;\r\n onValidatorChange!: () => void;\r\n private destroy$ = new Subject<void>();\r\n\r\n private readonly timeRegex = /^([01]\\d|2[0-3]):[0-5]\\d$/;\r\n onTimeInputChange = new BehaviorSubject<string | null>(null);\r\n timeChange = merge(this.formGroup.controls.time.valueChanges.pipe(startWith(null)), this.onTimeInputChange).pipe(\r\n filter((value) => !!value)\r\n );\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formGroup.controls.date.clearValidators();\r\n this.formGroup.controls.time.clearValidators();\r\n this.formGroup.controls.date.setValidators(validators);\r\n this.formGroup.controls.time.setValidators(validators);\r\n this.formGroup.controls.date.updateValueAndValidity();\r\n this.formGroup.controls.time.updateValueAndValidity();\r\n this.formGroup.updateValueAndValidity();\r\n })\r\n }\r\n\r\n writeValue(obj: Date | number | string): void {\r\n if (obj) {\r\n const jsDateValue = obj instanceof Date ? obj : new Date(obj);\r\n const dateTimeValue = DateTime.fromJSDate(jsDateValue);\r\n const minutesAndHours = String(jsDateValue.getHours() + ':' + jsDateValue.getMinutes());\r\n this.formGroup.get('date')?.setValue(dateTimeValue, {emitEvent: false})\r\n this.formGroup.get('time')?.setValue(minutesAndHours, {emitEvent: false})\r\n } else {\r\n this.formGroup.get('date')?.setValue(null, {emitEvent: false})\r\n this.formGroup.get('time')?.setValue('00:00', {emitEvent: false})\r\n }\r\n\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n combineLatest([this.formGroup.valueChanges, this.timeChange]).pipe(\r\n takeUntil(this.destroy$),\r\n map(([{date}, time]) => {\r\n if (date && time && this.timeRegex.test(time)) {\r\n const jsDate = date.toJSDate();\r\n const [hours, minutes] = time.split(':');\r\n jsDate.setHours(Number(hours), Number(minutes));\r\n return jsDate;\r\n } else {\r\n return null;\r\n }\r\n })\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n isDisabled ? this.formGroup.disable({emitEvent: false}) : this.formGroup.enable({emitEvent: false});\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formGroup.valid ? null : {dateTimeControl: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next()\r\n this.destroy$.complete();\r\n }\r\n\r\n getDateErrors(): string[] {\r\n return Object.keys(this.formGroup.controls.date.errors ?? [])\r\n .filter((key) => (this.formGroup.controls.date.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getTimeErrors(): string[] {\r\n return Object.keys(this.formGroup.controls.time.errors ?? [])\r\n .filter((key) => (this.formGroup.controls.time.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getDateErrorTooltip() {\r\n return this.getDateErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n getTimeErrorTooltip() {\r\n return this.getTimeErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n onInputChange(event: Event) {\r\n const inputEl = event.target as HTMLInputElement;\r\n const value = inputEl.value;\r\n if (value !== this.formGroup.get('time')?.value) {\r\n this.onTimeInputChange.next(value);\r\n }\r\n }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n <div class=\"flex flex-col gap-y-4\">\r\n <mat-form-field [matTooltip]=\"getDateErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ (dateLabel ?? 'COMMON.DATE') | translate }}</mat-label>\r\n <input [matDatepicker]=\"picker\" formControlName=\"date\" matInput>\r\n <mat-datepicker-toggle [for]=\"picker\" matIconSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n @for (error of getDateErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\" class=\"text-[12px]\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field [matTooltip]=\"getTimeErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ (timeLabel ?? 'COMMON.TIME') | translate }}</mat-label>\r\n <input [format]=\"24\" [ngxMatTimepicker]=\"pickerA\" formControlName=\"time\" matInput (input)=\"onInputChange($event)\"/>\r\n <mat-icon (click)=\"pickerA.open()\" matSuffix> watch_later</mat-icon>\r\n <ngx-mat-timepicker #pickerA></ngx-mat-timepicker>\r\n @for (error of getTimeErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\" class=\"text-[12px]\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n</ng-container>\r\n","import { AfterViewInit, Component, ElementRef, Input, OnDestroy, Optional, Self, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NgControl, ValidationErrors, Validator } from '@angular/forms';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { NotificationService } from \"../../service/notification.service\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'application-drag-drop-file-upload',\r\n templateUrl: './drag-drop-file-upload.component.html',\r\n styleUrls: ['./drag-drop-file-upload.component.scss'],\r\n imports: [shared]\r\n})\r\nexport class DragDropFileUploadComponent implements ControlValueAccessor, Validator, AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('dragDropZone') dragDropZone!: ElementRef<HTMLDivElement>;\r\n @ViewChild('fileInput') fileInput!: ElementRef<HTMLInputElement>;\r\n @Input() accept = '.*';\r\n @Input() multiple?: boolean;\r\n @Input() prompt = 'COMMON.DRAG_DROP_PROMPT';\r\n highlight = false;\r\n disabled = false;\r\n files$ = new BehaviorSubject<File[] | null>(null);\r\n TRUNCATE_NAME_LIMIT = 24;\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(@Optional() @Self() public controlDir: NgControl, private notificationService: NotificationService) {\r\n controlDir.valueAccessor = this;\r\n }\r\n\r\n onTouched!: (ev?: any) => void;\r\n onValidatorChange!: () => void;\r\n onChange = (value: any) => {};\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.controlDir.control?.valid ? null : { dragDropFileUploadControl: { valid: false } };\r\n }\r\n\r\n writeValue(val: any): void {\r\n if (val) {\r\n this.files$.next(val);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\r\n this.dragDropZone.nativeElement.addEventListener(\r\n eventName,\r\n (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n },\r\n false,\r\n );\r\n });\r\n\r\n ['dragenter', 'dragover'].forEach((eventName) => {\r\n this.dragDropZone.nativeElement.addEventListener(\r\n eventName,\r\n () => {\r\n if (!this.disabled) {\r\n this.highlight = true;\r\n }\r\n },\r\n false,\r\n );\r\n });\r\n\r\n ['dragleave', 'drop'].forEach((eventName) => {\r\n this.dragDropZone.nativeElement.addEventListener(\r\n eventName,\r\n () => {\r\n if (!this.disabled) {\r\n this.highlight = false;\r\n }\r\n },\r\n false,\r\n );\r\n });\r\n\r\n this.dragDropZone.nativeElement.addEventListener(\r\n 'click',\r\n (ev) => {\r\n if (!this.disabled) {\r\n this.onTouched();\r\n this.fileInput.nativeElement.click();\r\n }\r\n },\r\n false,\r\n );\r\n\r\n this.dragDropZone.nativeElement.addEventListener(\r\n 'drop',\r\n (ev) => {\r\n const dt = ev.dataTransfer;\r\n const files = dt?.files;\r\n\r\n if (files?.length && !this.disabled) {\r\n this.onTouched();\r\n const newFiles = Array.from(files);\r\n const acceptedFileTypesToRegex = this.accept.replace(/,\\s*/g, '|');\r\n\r\n if (newFiles.filter((file: File) => !file.name.match(acceptedFileTypesToRegex)).length > 0) {\r\n this.notificationService.showError('COMMON.DRAG_DROP_FORMAT_ERROR');\r\n } else {\r\n const value = this.multiple ? [...(this.files$.value ?? []), ...newFiles] : [...newFiles];\r\n this.files$.next(value);\r\n this.onChange(value);\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n }\r\n },\r\n false,\r\n );\r\n }\r\n\r\n getFileName(name: string) {\r\n return name.length > this.TRUNCATE_NAME_LIMIT ? name.slice(0, 19) + '...' : name;\r\n }\r\n\r\n getErrorForTranslation(errors?: ValidationErrors | null): { key: string, params?: any } {\r\n if (!errors) return {key: ''};\r\n\r\n const [error] = Object.keys(errors);\r\n\r\n if (errors?.['required']) return {key: 'COMMON.ERROR_VALIDATION_REQUIRED'};\r\n\r\n if (errors?.['fileSize']) return {key: 'COMMON.DRAG_DROP_FILE_SIZE_ERROR', params: {size: errors['fileSize'] / (1024 * 1024)}};\r\n\r\n const formattedError = error.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`).toUpperCase();\r\n return {key: `COMMON.DRAG_DROP_${formattedError}_ERROR`};\r\n }\r\n\r\n onFileAdded({ target }: { target: any }) {\r\n if (!this.disabled) {\r\n const value = this.multiple ? [...(this.files$?.value ?? []), ...(target?.files ?? [])] : [...(target?.files ?? [])];\r\n this.files$.next(value);\r\n this.onChange(value);\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n }\r\n\r\n deleteFile(event: MouseEvent, index: number) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n (this.files$.value ?? []).splice(index, 1);\r\n const value = this.files$.value?.length ? this.files$.value : null;\r\n this.files$.next(value);\r\n this.onChange(value);\r\n this.onTouched();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<div #dragDropZone class=\"drag-drop-zone flex flex-col items-center justify-center\" [ngClass]=\"{ highlight: highlight, disabled: disabled }\">\r\n @if (files$ | async; as files) {\r\n @if (files.length > 0) {\r\n <div class=\"flex flex-col flex-wrap items-center justify-center\">\r\n @for (file of files; track $index) {\r\n <div class=\"name-wrapper flex flex-row items-center justify-center gap-2\">\r\n <mat-icon>description</mat-icon>\r\n <span [matTooltipDisabled]=\"file.name.length < TRUNCATE_NAME_LIMIT\" [matTooltip]=\"file.name\">{{ getFileName(file.name) }}</span>\r\n <mat-icon class=\"delete-button text-warning-color\" (click)=\"deleteFile($event, $index)\">delete</mat-icon>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <span>{{ prompt | translate }}</span>\r\n }\r\n } @else {\r\n <span>{{ prompt | translate }}</span>\r\n }\r\n @if (controlDir.control?.errors && controlDir.control?.touched) {\r\n <mat-error>{{ getErrorForTranslation(controlDir.control?.errors).key | translate: getErrorForTranslation(controlDir.control?.errors).params }}</mat-error>\r\n }\r\n</div>\r\n<input #fileInput type=\"file\" [attr.multiple]=\"multiple\" [attr.accept]=\"accept\" (change)=\"onFileAdded($event)\"/>\r\n","import { afterRenderEffect, Component, computed, input, output, signal, viewChild } from '@angular/core';\r\nimport { GoogleMap } from \"@angular/google-maps\";\r\nimport { MarkerClusterer, Renderer } from \"@googlemaps/markerclusterer\";\r\nimport { SimpleDateTimePipe } from \"../../pipe/simple-date-time.pipe\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport interface MapItem {\r\n name: string;\r\n lat: number;\r\n lng: number;\r\n trueLat?: number;\r\n trueLng?: number;\r\n path: string;\r\n time: number;\r\n color: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-google-map',\r\n imports: [GoogleMap, shared],\r\n templateUrl: './google-map.component.html',\r\n styleUrl: './google-map.component.scss',\r\n providers: [SimpleDateTimePipe]\r\n})\r\nexport class GoogleMapComponent {\r\n\r\n map = viewChild.required(GoogleMap);\r\n\r\n googleMapId = input.required<string>();\r\n darkTheme = input.required<boolean>();\r\n items = input.required<MapItem[]>();\r\n pinColor = input.required<string>();\r\n\r\n markerClicked = output<MapItem>();\r\n\r\n zoom = signal<number>(4);\r\n\r\n mapOptions = computed<google.maps.MapOptions>(() => {\r\n return {\r\n mapId: this.googleMapId(),\r\n colorScheme: this.darkTheme() ? google.maps.ColorScheme.DARK : google.maps.ColorScheme.LIGHT,\r\n center: {\r\n lat: 0,\r\n lng: 0\r\n },\r\n minZoom: 2,\r\n maxZoom: 22,\r\n restriction: {\r\n latLngBounds: {\r\n north: 85,\r\n south: -85,\r\n west: -180,\r\n east: 180,\r\n },\r\n },\r\n disableDefaultUI: true\r\n };\r\n })\r\n\r\n clusterer = computed(() => {\r\n const renderer: Renderer = {\r\n render: ({count, position}) => {\r\n const content = document.createElement('div');\r\n content.classList.add('text-mat-sys-on-surface')\r\n content.classList.add('bg-mat-sys-surface')\r\n content.style.border = `2px solid ${this.pinColor()}`\r\n content.style.borderRadius = '50%';\r\n content.style.textAlign = 'center';\r\n content.style.fontSize = '12px';\r\n content.style.lineHeight = '38px';\r\n content.style.width = '40px';\r\n content.style.height = '40px';\r\n content.textContent = `${String(count)}`;\r\n return new google.maps.marker.AdvancedMarkerElement({position, content})\r\n }\r\n }\r\n\r\n return new MarkerClusterer({markers: [], map: this.map().googleMap, renderer: renderer, algorithmOptions: {maxZoom: 21}});\r\n });\r\n\r\n markers = computed(() => {\r\n const itemsWithJitter = this.addJitter(this.items())\r\n return itemsWithJitter.map((mapItem) => this.createMarker(mapItem));\r\n })\r\n\r\n mapBounds: google.maps.LatLngBounds = new google.maps.LatLngBounds();\r\n\r\n constructor(private translateService: TranslateService, private simpleDateTimePipe: SimpleDateTimePipe) {\r\n afterRenderEffect(() => {\r\n const markers = this.markers();\r\n\r\n // Prepare map bounds\r\n this.mapBounds = new google.maps.LatLngBounds();\r\n markers.forEach(marker => {\r\n const position = marker.position;\r\n if (position) {\r\n this.mapBounds.extend(position);\r\n }\r\n })\r\n\r\n this.map().fitBounds(this.mapBounds, {top: 100, right: 20, left: 20, bottom: 20});\r\n\r\n // Update default zoom\r\n this.zoom.set(markers.length === 1 ? 18 : (this.map().getZoom() ?? 4));\r\n\r\n const markerClusterer = this.clusterer();\r\n markerClusterer.clearMarkers();\r\n markerClusterer.addMarkers(markers);\r\n });\r\n }\r\n\r\n changeZoom(number: number) {\r\n this.zoom.update(value => Math.max(Math.min(value + number, 22), 2)); // Zoom level must be between 1 and 21\r\n }\r\n\r\n fitBounds() {\r\n this.map().fitBounds(this.mapBounds, {top: 100, right: 10, left: 10, bottom: 10});\r\n }\r\n\r\n private openDetails(mapItem: MapItem) {\r\n this.markerClicked.emit(mapItem);\r\n }\r\n\r\n private createMarker(mapItem: MapItem) {\r\n const lastReadingTime = mapItem.time;\r\n const isOffset = mapItem.trueLat !== undefined && mapItem.trueLng !== undefined;\r\n const lastReading = isOffset ? mapItem.trueLat + ',' + mapItem.trueLng : mapItem.lat + ',' + mapItem.lng;\r\n const offsetNotification = isOffset ? `<span>${this.translateService.instant('DASHBOARDS.MAP_WIDGET_OFFSET_NOTIFICATION')}</span>` : '';\r\n\r\n const infoWindowContent = `\r\n <div class=\"text-black flex flex-col gap-y-2 mt-4 w-fit! h-fit! select-none\">\r\n <span class=\"font-bold\">${mapItem.path}</span>\r\n <span>${lastReadingTime ? this.simpleDateTimePipe.transform(lastReadingTime) : ''}</span>\r\n <span class=\"font-bold mt-4\">${lastReading}</span>\r\n ${offsetNotification}\r\n </div>\r\n `\r\n\r\n const infoWindow = new google.maps.InfoWindow({\r\n content: infoWindowContent,\r\n disableAutoPan: true,\r\n pixelOffset: new google.maps.Size(0, -4)\r\n });\r\n\r\n const pin = document.createElement('div');\r\n pin.innerHTML = `\r\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 24 24\" fill=\"${mapItem.color}\">\r\n <path d=\"M10.453 14.016zM12 2.016q2.906 0 4.945 2.039t2.039 4.945q0 1.453-.727 3.328t-1.758 3.516-2.039 3.07-1.711 2.273l-.75.797q-.281-.328-.75-.867t-1.688-2.156-2.133-3.141-1.664-3.445-.75-3.375q0-2.906 2.039-4.945t4.945-2.039z\"></path>\r\n </svg>\r\n `;\r\n\r\n const marker = new google.maps.marker.AdvancedMarkerElement({\r\n position: {lat: +mapItem.lat, lng: +mapItem.lng},\r\n content: pin,\r\n map: this.map().googleMap\r\n });\r\n\r\n marker.element.addEventListener('mouseenter', () => {\r\n infoWindow.open({\r\n anchor: marker,\r\n map: this.map().googleMap,\r\n shouldFocus: false\r\n });\r\n });\r\n\r\n marker.element.addEventListener('click', () => {\r\n this.openDetails(mapItem);\r\n });\r\n\r\n marker.element.addEventListener('mouseleave', () => {\r\n infoWindow.close();\r\n });\r\n\r\n return marker;\r\n }\r\n\r\n addJitter(mapItems: MapItem[]) {\r\n const processedItems: MapItem[] = [];\r\n\r\n for (const item of mapItems) {\r\n const itemAlreadyProcessed = processedItems.find((i) => item.path === i.path);\r\n\r\n if (!!itemAlreadyProcessed) {\r\n continue;\r\n }\r\n\r\n const itemsWithSameLocation = mapItems.filter((i) => item.lat === i.lat && item.lng === i.lng && item.path !== i.path);\r\n\r\n if (itemsWithSameLocation.length) {\r\n processedItems.push(item);\r\n processedItems.push(...this.spreadMarkersInCircle(item, itemsWithSameLocation))\r\n } else {\r\n processedItems.push(item)\r\n }\r\n }\r\n\r\n return processedItems;\r\n }\r\n\r\n private spreadMarkersInCircle(item: MapItem, itemsToSpread: MapItem[]) {\r\n const result: MapItem[] = [];\r\n const earthRadius = 6378137;\r\n const baseLatRad = item.lat * Math.PI / 180;\r\n const radiusMeters = itemsToSpread.length > 12 ? 40 : 20;\r\n\r\n itemsToSpread.forEach((itemToSpread, index) => {\r\n const angle = (2 * Math.PI * index) / itemsToSpread.length;\r\n const dx = radiusMeters * Math.cos(angle);\r\n const dy = radiusMeters * Math.sin(angle);\r\n\r\n const dLat = (dy / earthRadius) * (180 / Math.PI);\r\n const dLng = (dx / (earthRadius * Math.cos(baseLatRad))) * (180 / Math.PI);\r\n\r\n result.push({\r\n ...itemToSpread,\r\n lat: item.lat + dLat,\r\n lng: item.lng + dLng,\r\n trueLat: itemToSpread.lat,\r\n trueLng: itemToSpread.lng\r\n })\r\n })\r\n\r\n return result;\r\n }\r\n}\r\n","<div class=\"flex w-full h-full\">\r\n <google-map height=\"100%\" width=\"100%\" [options]=\"mapOptions()\" [zoom]=\"zoom()\" class=\"w-full h-full\"/>\r\n <div class=\"absolute bottom-7 right-3 flex flex-col gap-y-1\">\r\n <mat-card class=\"border-none!\">\r\n <button mat-mini-fab (click)=\"fitBounds()\" class=\"bg-transparent! text-mat-sys-on-surface\" type=\"button\">\r\n <mat-icon>filter_center_focus</mat-icon>\r\n </button>\r\n </mat-card>\r\n <mat-card class=\"border-none!\">\r\n <button mat-mini-fab (click)=\"changeZoom(+1)\" [disabled]=\"zoom() === 21\" class=\"bg-transparent! text-mat-sys-on-surface\" type=\"button\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </mat-card>\r\n <mat-card class=\"border-none!\">\r\n <button mat-mini-fab (click)=\"changeZoom(-1)\" [disabled]=\"zoom() === 2\" class=\"bg-transparent! text-mat-sys-on-surface\" type=\"button\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n </mat-card>\r\n </div>\r\n</div>\r\n","import { afterNextRender, Component, ElementRef, Inject, signal, ViewChild, WritableSignal } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { SafeHtml, SafeUrl } from \"@angular/platform-browser\";\r\nimport { shared } from '../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-image-preview',\r\n imports: [shared],\r\n templateUrl: './image-preview.component.html',\r\n styleUrl: './image-preview.component.scss'\r\n})\r\nexport class ImagePreviewComponent {\r\n @ViewChild('imageElement') image!: ElementRef<HTMLImageElement>;\r\n @ViewChild('svgElement') svgElement!: ElementRef<HTMLDivElement>;\r\n dimensionStyles: WritableSignal<{ [key: string]: any }> = signal({});\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: { image: SafeUrl | SafeHtml }) {\r\n afterNextRender(() => {\r\n if (window.visualViewport) {\r\n if (this.image) {\r\n if (this.image.nativeElement.naturalWidth < window.visualViewport.width && this.image.nativeElement.naturalHeight < window.visualViewport.height) {\r\n this.dimensionStyles.set({width: 'auto', height: 'auto'});\r\n return;\r\n }\r\n\r\n const aspect = this.image.nativeElement.naturalWidth / this.image.nativeElement.naturalHeight\r\n\r\n const dimensions = window.visualViewport.width > window.visualViewport.height\r\n ? {width: (window.visualViewport.height - 40) * aspect + 'px', height: window.visualViewport.height - 40 + 'px'}\r\n : {width: (window.visualViewport.width - 40) + 'px', height: (window.visualViewport.width - 40) * aspect + 'px'}\r\n\r\n this.dimensionStyles.set(dimensions);\r\n } else {\r\n const svgImage = this.svgElement.nativeElement.children[0];\r\n\r\n if (svgImage.clientWidth > svgImage.clientHeight) {\r\n this.dimensionStyles.set({width: '80vw', height: 'auto'});\r\n } else {\r\n this.dimensionStyles.set({width: 'auto', height: '80vh'});\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n isHtml(image: SafeUrl | SafeHtml | null): boolean {\r\n return image !== null && image.constructor.name === 'SafeHtmlImpl';\r\n }\r\n}\r\n","<div class=\"relative overflow-hidden\" [ngStyle]=\"dimensionStyles() ? dimensionStyles() : {'opacity': '0'}\">\r\n <mat-icon class=\"absolute top-4 right-4 hover:cursor-pointer text-mat-sys-surface\" matDialogClose>close</mat-icon>\r\n @if (!isHtml(data.image)) {\r\n <img #imageElement [attr.src]=\"data.image\" alt=\"ImagePreview\"/>\r\n } @else {\r\n <div #svgElement class=\"p-4\" [innerHTML]=\"data.image\"></div>\r\n }\r\n</div>\r\n","import { Component, computed, inject, input, Signal } from '@angular/core';\r\nimport { AsyncPipe } from \"@angular/common\";\r\nimport { of } from \"rxjs\";\r\nimport { DomSanitizer, SafeHtml, SafeUrl } from \"@angular/platform-browser\";\r\nimport { ImagePreviewComponent } from \"./image-preview/image-preview.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: 'app-image-display',\r\n imports: [AsyncPipe],\r\n templateUrl: './image-display.component.html',\r\n styleUrl: './image-display.component.scss'\r\n})\r\nexport class ImageDisplayComponent {\r\n\r\n readonly sanitizer = inject(DomSanitizer);\r\n readonly dialog = inject(MatDialog);\r\n\r\n value = input.required<string | null | undefined>();\r\n\r\n imageUrl: Signal<SafeUrl> = computed(() => {\r\n const value = this.value();\r\n\r\n if (!value) {\r\n return of(null)\r\n }\r\n\r\n return this.sanitizer.bypassSecurityTrustUrl(value);\r\n })\r\n\r\n isHtml(image: SafeUrl | SafeHtml | null): boolean {\r\n // Constructor name is different when built for production, have to check property\r\n return image !== null && ((image as any)['changingThisBreaksApplicationSecurity']?.startsWith('<?xml') || (image as any)['changingThisBreaksApplicationSecurity']?.startsWith('<svg'));\r\n }\r\n\r\n openImage(image: SafeUrl) {\r\n this.dialog.open(ImagePreviewComponent, {\r\n data: {\r\n image: image,\r\n },\r\n });\r\n }\r\n}\r\n","@if (imageUrl(); as image) {\r\n @if (isHtml(image)) {\r\n <div (click)=\"openImage(image)\" [innerHTML]=\"image\" class=\"max-h-full h-full w-full object-contain block mt-1 hover:cursor-pointer\"></div>\r\n } @else {\r\n <img (click)=\"openImage(image)\" [attr.src]=\"image\" class=\"max-h-full h-full w-full object-contain block mt-1 hover:cursor-pointer\" alt=\"\"/>\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: 'app-labeled-value',\r\n imports: [TranslateModule],\r\n templateUrl: './labeled-value.component.html',\r\n styleUrl: './labeled-value.component.scss'\r\n})\r\nexport class LabeledValueComponent {\r\n\r\n name = input.required<string>();\r\n\r\n}\r\n","<div class=\"flex flex-row gap-x-2 items-center\">\r\n <div class=\"font-bold\">{{ name() | translate }}:</div>\r\n <div class=\"flex flex-row items-center gap-x-2\">\r\n <ng-content/>\r\n </div>\r\n</div>\r\n","import { Component, computed, input } from '@angular/core';\r\nimport { catchError, EMPTY, from, map, Observable, of, switchMap } from \"rxjs\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\nimport { SvgIcon } from \"../+common/model/icon\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-loaded-icon',\r\n imports: [shared],\r\n templateUrl: './loaded-icon.component.html',\r\n styleUrl: './loaded-icon.component.scss'\r\n})\r\nexport class LoadedIconComponent {\r\n\r\n iconRequest = input.required<Observable<Blob | null>>();\r\n defaultIcon = input.required<SvgIcon | string>();\r\n size = input.required<number>();\r\n\r\n icon = computed(() => {\r\n return this.iconRequest().pipe(\r\n switchMap(response => {\r\n if (!response) {\r\n return EMPTY;\r\n }\r\n\r\n const file = new File([response], 'icon.svg');\r\n return from(file.text()).pipe(\r\n map(text => {\r\n const svg = new DOMParser().parseFromString(text, \"image/svg+xml\");\r\n const svgTag = svg.documentElement;\r\n svgTag.setAttribute(\"width\", this.size().toString());\r\n svgTag.setAttribute(\"height\", this.size().toString());\r\n const dimensionedSvg = new XMLSerializer().serializeToString(svg);\r\n return this.sanitizer.bypassSecurityTrustHtml(dimensionedSvg);\r\n })\r\n );\r\n }),\r\n catchError(() => {\r\n return of(null);\r\n }));\r\n })\r\n\r\n isSvgIcon(): SvgIcon | null {\r\n const defaultIcon = this.defaultIcon()\r\n return typeof defaultIcon !== 'string' && Object.hasOwn(defaultIcon, 'id') ? defaultIcon as SvgIcon : null;\r\n }\r\n\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n}\r\n","<div [style.height.px]=\"size()\" [style.width.px]=\"size()\">\r\n @if (icon() | async; as icon) {\r\n <div [innerHTML]=\"icon\"></div>\r\n } @else {\r\n @if (isSvgIcon(); as icon) {\r\n <mat-icon [svgIcon]=\"icon.id\"></mat-icon>\r\n } @else {\r\n <mat-icon>{{ defaultIcon() }}</mat-icon>\r\n }\r\n }\r\n</div>\r\n","import { Component, effect, input, output, signal, untracked } from '@angular/core';\r\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\r\nimport { shared } from '../../common.config';\r\n\r\ninterface TableColumn {\r\n name: string;\r\n shouldSort: boolean;\r\n shouldTranslateValue?: boolean\r\n}\r\n\r\ntype SortDirection = 'asc' | 'desc';\r\n\r\n@Component({\r\n selector: 'app-local-sort-table',\r\n imports: [\r\n CdkFixedSizeVirtualScroll,\r\n CdkVirtualForOf,\r\n CdkVirtualScrollViewport,\r\n shared\r\n ],\r\n templateUrl: './local-sort-table.component.html',\r\n styleUrl: './local-sort-table.component.scss',\r\n})\r\nexport class LocalSortTableComponent {\r\n columns = input.required<TableColumn[]>();\r\n data = input.required<Record<string, any>[]>();\r\n translationPrefix = input<string>('COMMON.')\r\n loading = input<boolean>(false);\r\n itemSelected = output<Record<string, any>>();\r\n\r\n sortDirection: SortDirection = 'asc';\r\n sortField!: string;\r\n displayData = signal<Record<string, any>[] | null>(null);\r\n sorting = signal(false);\r\n\r\n constructor() {\r\n effect(() => {\r\n const data = this.data();\r\n const columns = this.columns();\r\n\r\n if (data && columns) {\r\n if (data.length) {\r\n (columns ?? []).forEach((column) => {\r\n const valid = Object.hasOwn(data[0], column.name);\r\n\r\n if (!valid) {\r\n console.error('Object doesnt have \\'' + column.name + '\\' property');\r\n }\r\n });\r\n }\r\n\r\n if (!this.sortField) {\r\n this.sortField = columns[0].name;\r\n }\r\n this.sort(columns[0].name, false);\r\n }\r\n })\r\n }\r\n\r\n sort(field: string, shouldUpdateDirectionAndField = true) {\r\n const data = this.data();\r\n\r\n if (!this.sortField) {\r\n return;\r\n }\r\n\r\n if (shouldUpdateDirectionAndField) {\r\n this.sortField = field;\r\n this.sortDirection === 'asc' ? this.sortDirection = 'desc': this.sortDirection = 'asc';\r\n }\r\n\r\n if (data) {\r\n this.sorting.set(true)\r\n const sortedData = data.sort((a, b) => this.sortDirection === 'asc' ? a[field] > b[field] ? 1 : -1 : a[field] > b[field] ? -1 : 1);\r\n this.displayData.set(structuredClone(sortedData));\r\n this.sorting.set(false);\r\n }\r\n }\r\n}\r\n","<table>\r\n <thead>\r\n <tr>\r\n @for (column of columns(); track column.name) {\r\n <th class=\"font-medium! truncate\" [ngClass]=\"{'sort-field': column.shouldSort, 'cursor-pointer': column.shouldSort}\" (click)=\"column.shouldSort ? sort(column.name) : undefined\">\r\n <div class=\"flex flex-row items-center gap-x-2\">\r\n {{ (translationPrefix().toUpperCase() +column.name.toUpperCase()) | translate }}\r\n @if (column.shouldSort) {\r\n <mat-icon>{{ sortDirection === 'asc' ? 'arrow_upward' : 'arrow_downward' }}</mat-icon>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @if (loading()) {\r\n <div class=\"w-full h-full flex flex-col justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n } @else {\r\n @if (!sorting()) {\r\n <cdk-virtual-scroll-viewport [itemSize]=\"56\" class=\"viewport\">\r\n <tr *cdkVirtualFor=\"let element of (displayData() ?? [])\" (click)=\"itemSelected.emit(element)\">\r\n @for (column of columns(); track column.name) {\r\n <td class=\"cursor-pointer truncate\">\r\n <span [matTooltip]=\"column.shouldTranslateValue ? ((translationPrefix() + element[column.name]) | translate) : element[column.name]\">\r\n {{ column.shouldTranslateValue ? ((translationPrefix() + element[column.name]) | translate) : element[column.name] }}\r\n </span>\r\n }\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n }\r\n }\r\n </tbody>\r\n</table>\r\n","import { Component, Input } from '@angular/core';\r\nimport { shared } from '../../common.config';\r\n\r\n/**\r\n * Determines the width ratio between master and detail parts.\r\n * The idea is to use appropriate ratios to maintain the equal width between all master parts\r\n * in the case where a master-detail component is embedded as a detail of another.\r\n *\r\n * 'full' width will use 25% of the available width for the master part.\r\n * 'medium' will use 33% of the available width, which corresponds to 25% of total width when embedded once.\r\n * 'narrow' will use 50% of the available width, which corresponds to 25% of total width when embedded twice.\r\n */\r\nexport type MasterDetailDisplayRatio = 'full' | 'wide' | 'medium' | 'narrow' | 'reverse';\r\n\r\n@Component({\r\n selector: 'app-master-details-view',\r\n templateUrl: './master-details-view.component.html',\r\n styleUrls: ['./master-details-view.component.scss'],\r\n imports: [shared]\r\n})\r\nexport class MasterDetailsViewComponent {\r\n @Input() displayRatio: MasterDetailDisplayRatio = 'wide';\r\n\r\n calculateWidth(): string {\r\n switch (this.displayRatio) {\r\n case 'full':\r\n return 'basis-1/5 max-w-1/5';\r\n case 'wide':\r\n return 'basis-1/4 max-w-1/4';\r\n case 'medium':\r\n return 'basis-1/3 max-w-1/3';\r\n case 'narrow':\r\n return 'basis-1/2 max-w-1/2';\r\n case 'reverse':\r\n return 'basis-3/4 max-w-3/4';\r\n default:\r\n throw Error('Too deep!');\r\n }\r\n }\r\n}\r\n","<div class=\"container flex h-full w-full min-w-full min-h-full overflow-hidden\">\r\n <div [ngClass]=\"calculateWidth()\" class=\"master flex shrink-0 grow-0\">\r\n <ng-content select=\"[app-master]\"></ng-content>\r\n </div>\r\n <mat-divider [vertical]=\"true\"></mat-divider>\r\n <div class=\"details flex shrink grow overflow-hidden\">\r\n <ng-content select=\"[app-details]\"></ng-content>\r\n </div>\r\n</div>\r\n","import { afterNextRender, Component, computed, DestroyRef, effect, input, output, signal } from '@angular/core';\r\nimport { NestedListDataSource, NestedListItem } from \"./nested-list.data-source\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { startWith } from \"rxjs/operators\";\r\nimport { catchError, map, Observable, take } from \"rxjs\";\r\nimport { ScrollIntoViewDirective } from \"../../directive/scroll-into-view.directive\";\r\nimport { LoadedIcon, SvgIcon } from \"../+common/model/icon\";\r\nimport { LoadedIconComponent } from \"../loaded-icon/loaded-icon.component\";\r\nimport { OverflowClassDirective } from \"../../directive/overflow-class.directive\";\r\nimport { NestedListDataControl } from \"./nested-list.data-control\";\r\nimport { DndDraggableDirective } from \"ngx-drag-drop\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport interface SearchAction {\r\n name: string;\r\n icon: SvgIcon;\r\n defaultAction?: boolean;\r\n action: (params?: any) => void;\r\n disableCondition?: (params?: any) => boolean;\r\n disabledTooltip?: string;\r\n condition: (params?: any) => Observable<boolean>;\r\n}\r\n\r\n@Component({\r\n selector: 'app-nested-list-view',\r\n imports: [shared, ScrollIntoViewDirective, LoadedIconComponent, OverflowClassDirective, DndDraggableDirective],\r\n templateUrl: './nested-list-view.component.html',\r\n styleUrl: './nested-list-view.component.scss'\r\n})\r\nexport class NestedListViewComponent<ItemType> {\r\n\r\n dataSource = input.required<NestedListDataSource<ItemType>>();\r\n dataControl = input.required<NestedListDataControl<ItemType>>();\r\n\r\n position = input<'inner' | 'outer'>('outer');\r\n disableThresholdId = input<string | undefined | null>(null);\r\n hideDetails = input<boolean>(false);\r\n isColoredInput = input<boolean>(false);\r\n searchActions = input<SearchAction[]>([]);\r\n defaultSearchAction = computed(() => {\r\n const actions = this.searchActions();\r\n\r\n return actions.find((action) => !!action.defaultAction)\r\n });\r\n otherSearchActions = computed(() => {\r\n const actions = this.searchActions();\r\n\r\n return actions.filter((action) => !action.defaultAction)\r\n });\r\n\r\n width = computed(() => {\r\n if (this.hideDetails()) {\r\n return 'w-full'\r\n }\r\n\r\n return this.position() === 'outer' ? 'basis-1/4' : 'basis-1/2';\r\n })\r\n\r\n loadingBreadcrumbs = signal<boolean>(true);\r\n loadingChildren = signal<boolean>(true);\r\n\r\n selectedItem = signal<NestedListItem<ItemType> | null>(null);\r\n\r\n hideSearch = input<boolean>(false);\r\n nameSearchControl = new FormControl<string>('');\r\n\r\n searchTerm = toSignal(this.nameSearchControl.valueChanges.pipe(startWith(this.nameSearchControl.getRawValue())));\r\n breadcrumbs = signal<NestedListItem<ItemType>[]>([]);\r\n\r\n roots = signal<NestedListItem<ItemType>[]>([]);\r\n hasMultipleRoots = signal<boolean>(false);\r\n rootButtonText = input<string>('COMMON.BACK_TO_ROOTS_BUTTON_TEXT')\r\n\r\n enableDrag = input<boolean>(false);\r\n isDragging = signal<boolean>(false);\r\n dragging = output<boolean>()\r\n\r\n children = signal<NestedListItem<ItemType>[]>([]);\r\n\r\n filteredChildren = computed(() => {\r\n const searchTerm = this.searchTerm();\r\n if (!searchTerm) {\r\n return this.children();\r\n }\r\n\r\n return this.children().filter(item => item.name.toLowerCase().includes(searchTerm.toLowerCase()));\r\n })\r\n\r\n itemSelected = output<ItemType | null>();\r\n\r\n constructor(private destroyRef: DestroyRef, private dialog: MatDialog) {\r\n afterNextRender(() => {\r\n const dataSource = this.dataSource();\r\n const dataControl = this.dataControl();\r\n\r\n this.initiateState(dataSource.initialSelection());\r\n\r\n dataControl.changeSelection$.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((id) => {\r\n const breadcrumbs = this.breadcrumbs();\r\n const breadcrumb = breadcrumbs.find(value => value.id === id);\r\n if (breadcrumb) {\r\n this.selectBreadcrumb(breadcrumb);\r\n return;\r\n }\r\n\r\n const children = this.children();\r\n const child = children.find(value => value.id === id);\r\n if (child) {\r\n this.selectChild(child);\r\n return;\r\n }\r\n\r\n this.initiateState(id);\r\n })\r\n\r\n dataControl.childAdded.pipe(\r\n map((item) => dataSource.prepareItem(item)),\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((newChild) => {\r\n this.children.update(children => [...children, newChild].sort(dataSource.sortingFunction));\r\n this.selectChild(newChild);\r\n })\r\n\r\n dataControl.itemRemoved$.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((id) => {\r\n const breadcrumbs = this.breadcrumbs();\r\n const index = breadcrumbs.findIndex(breadcrumb => breadcrumb.id === id);\r\n this.breadcrumbs.update(breadcrumbs => breadcrumbs.slice(0, index));\r\n const lastItem = this.breadcrumbs()[this.breadcrumbs().length - 1];\r\n this.selectedItem.set(lastItem);\r\n this.itemSelected.emit(lastItem.data);\r\n })\r\n\r\n dataControl.itemUpdated$.pipe(\r\n map((item) => dataSource.prepareItem(item)),\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((updatedItem) => {\r\n this.breadcrumbs.update(breadcrumbs => breadcrumbs.map(breadcrumb => breadcrumb.id === updatedItem.id ? updatedItem : breadcrumb));\r\n this.children.update(children => children.map(child => child.id === updatedItem.id ? updatedItem : child));\r\n })\r\n })\r\n\r\n effect(() => {\r\n const dataSource = this.dataSource();\r\n\r\n const selectedItem = this.selectedItem();\r\n if (!selectedItem) {\r\n return;\r\n }\r\n\r\n this.loadingChildren.set(true);\r\n dataSource.loadChildren(selectedItem).pipe(\r\n catchError(() => {\r\n this.loadingChildren.set(false);\r\n return [];\r\n }),\r\n map((data) => data.map((value) => dataSource.prepareItem(value)).sort(dataSource.sortingFunction)),\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe(children => {\r\n this.loadingChildren.set(false);\r\n this.children.set(children);\r\n })\r\n });\r\n\r\n effect(() => {\r\n const isDragging = this.isDragging();\r\n\r\n this.dragging.emit(isDragging);\r\n })\r\n }\r\n\r\n private initiateState(startingItem: string | null) {\r\n const dataSource = this.dataSource();\r\n this.breadcrumbs.set([]);\r\n this.children.set([]);\r\n\r\n this.loadingBreadcrumbs.set(true);\r\n this.loadingChildren.set(true);\r\n\r\n dataSource.loadRoots().pipe(\r\n map((data) => data.map((value) => dataSource.prepareItem(value, true))),\r\n take(1)\r\n ).subscribe(roots => {\r\n this.roots.set(roots);\r\n this.hasMultipleRoots.set(roots.length > 1);\r\n\r\n if (startingItem) {\r\n dataSource.loadBreadcrumbs(startingItem).pipe(\r\n map((data) => data.map((value) => dataSource.prepareItem(value))),\r\n take(1)\r\n ).subscribe(breadcrumbs => {\r\n this.loadingBreadcrumbs.set(false);\r\n this.breadcrumbs.set(breadcrumbs);\r\n\r\n if (breadcrumbs && breadcrumbs.length > 0) {\r\n const selectedItem = breadcrumbs[breadcrumbs.length - 1];\r\n this.selectedItem.set(selectedItem);\r\n this.itemSelected.emit(selectedItem.data);\r\n }\r\n })\r\n } else {\r\n this.loadingBreadcrumbs.set(false);\r\n this.breadcrumbs.set(roots);\r\n\r\n if (this.roots().length && !this.hasMultipleRoots()) {\r\n const selectedItem = this.roots()[0];\r\n this.selectedItem.set(selectedItem);\r\n this.itemSelected.emit(selectedItem.data);\r\n } else {\r\n this.itemSelected.emit(null);\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n selectBreadcrumb(item: NestedListItem<ItemType>) {\r\n if (this.selectedItem()?.id === item?.id) {\r\n return;\r\n }\r\n\r\n if (item.isRoot) {\r\n const index = this.breadcrumbs().findIndex((breadcrumb) => breadcrumb.id === item.id);\r\n this.breadcrumbs.update(breadcrumbs => breadcrumbs.slice(index, breadcrumbs.indexOf(item) + 1));\r\n } else {\r\n this.breadcrumbs.update(breadcrumbs => breadcrumbs.slice(0, breadcrumbs.indexOf(item) + 1));\r\n }\r\n\r\n this.nameSearchControl.setValue(null);\r\n this.selectedItem.set(item);\r\n this.itemSelected.emit(item.data);\r\n }\r\n\r\n selectChild(item: NestedListItem<ItemType>) {\r\n if (this.selectedItem()?.id === item?.id) {\r\n return;\r\n }\r\n\r\n this.breadcrumbs.update(breadcrumbs => [...breadcrumbs, item]);\r\n\r\n this.nameSearchControl.setValue(null);\r\n this.selectedItem.set(item);\r\n this.itemSelected.emit(item.data);\r\n }\r\n\r\n dragStart(event: DragEvent, item: ItemType) {\r\n this.isDragging.set(true)\r\n\r\n event.dataTransfer?.setData('application/json', JSON.stringify([item]));\r\n }\r\n\r\n resetNavigation() {\r\n this.selectedItem.set(null);\r\n this.itemSelected.emit(null);\r\n this.initiateState(null);\r\n }\r\n\r\n shouldDisableBreadcrumbClick(item: NestedListItem<ItemType>) {\r\n const disableThresholdId = this.disableThresholdId()\r\n return disableThresholdId && !item.idPath.includes(disableThresholdId);\r\n }\r\n\r\n isAsyncIcon(item: NestedListItem<ItemType>): LoadedIcon | null {\r\n return !!item.icon && typeof item.icon !== 'string' && !Object.hasOwn(item.icon, 'id') ? item.icon as LoadedIcon : null;\r\n }\r\n\r\n isSvgIcon(item: NestedListItem<ItemType>): SvgIcon | null {\r\n return !!item.icon && typeof item.icon !== 'string' && Object.hasOwn(item.icon, 'id') ? item.icon as SvgIcon : null;\r\n }\r\n\r\n formControlAction(params?: any) {\r\n const actions = this.searchActions();\r\n const boundAction = actions.find((action) => !!action.defaultAction);\r\n const empty = () => undefined;\r\n\r\n if (!boundAction) {\r\n return empty();\r\n }\r\n\r\n if (boundAction.disableCondition) {\r\n return boundAction.disableCondition(params) ? empty() : boundAction.action(params);\r\n }\r\n\r\n return boundAction.action(params);\r\n }\r\n}\r\n","<div class=\"container flex h-full w-full min-w-full min-h-full relative overflow-hidden\">\r\n <div [ngClass]=\"width()\" class=\"master flex shrink-0 grow-0 min-w-0\">\r\n\r\n <!-- LISTING -->\r\n <div class=\"w-full h-full flex flex-col gap-y-2 relative\" [ngClass]=\"hideSearch() ? 'pt-2' : 'pt-1'\">\r\n\r\n <!-- HEADER -->\r\n <div class=\"flex w-full flex-row gap-x-2\">\r\n\r\n <!-- SEARCH -->\r\n @if (!hideSearch()) {\r\n <div class=\"flex shrink grow flex-row pt-1 gap-x-2 overflow-hidden\">\r\n <mat-form-field class=\"flex grow shrink small-input\" (keydown.enter)=\"defaultSearchAction()?.action({parent: this.selectedItem()?.data, control: this.nameSearchControl})\" [ngClass]=\"{'colored-input': isColoredInput()}\">\r\n <mat-label>{{ 'COMMON.SEARCH_IMMEDIATE_CHILDREN' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"nameSearchControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n @if (defaultSearchAction(); as defaultAction) {\r\n <div [matTooltip]=\"defaultAction.disabledTooltip ? (defaultAction.disabledTooltip | translate) : ''\" [matTooltipDisabled]=\"defaultAction.disableCondition ? !defaultAction.disableCondition({control: nameSearchControl}) : true\">\r\n <button mat-mini-fab [disabled]=\"defaultAction.disableCondition ? defaultAction.disableCondition({control: nameSearchControl}) : false\" (click)=\"defaultAction.action({parent: this.selectedItem()?.data, control: this.nameSearchControl})\" [matTooltip]=\"defaultAction.name | translate\">\r\n <mat-icon [svgIcon]=\"defaultAction.icon.id\"/>\r\n </button>\r\n </div>\r\n }\r\n @for (action of otherSearchActions(); track $index) {\r\n @if (action.condition() | async) {\r\n <div [matTooltip]=\"action.disabledTooltip ? (action.disabledTooltip | translate) : ''\" [matTooltipDisabled]=\"action.disableCondition ? !action.disableCondition() : true\">\r\n <button mat-mini-fab [disabled]=\"action.disableCondition ? action.disableCondition() : false\" (click)=\"action.action()\" [matTooltip]=\"action.name | translate\">\r\n <mat-icon [svgIcon]=\"action.icon.id\"/>\r\n </button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- LIST -->\r\n <div class=\"flex flex-col w-full h-full relative overflow-hidden\">\r\n\r\n <!-- BREADCRUMBS -->\r\n <div class=\"max-h-[50%] overflow-auto shrink-0\" [overflowClass]=\"'pr-4'\">\r\n @if (!loadingBreadcrumbs()) {\r\n @if (breadcrumbs(); as items) {\r\n <div class=\"flex flex-col w-full overflow-x-hidden\">\r\n @for (item of items; let i = $index; track i) {\r\n @if (selectedItem() && hasMultipleRoots() && i === 0) {\r\n <mat-card (click)=\"resetNavigation()\" class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\">\r\n <div class=\"px-3 flex flex-row items-center gap-x-2 item-card\">\r\n <div class=\"shrink-0 h-6\">\r\n <mat-icon>arrow_upward</mat-icon>\r\n </div>\r\n <span class=\"text-mat-sys-on-surface\">{{ rootButtonText() | translate: {default: rootButtonText()} }}</span>\r\n </div>\r\n </mat-card>\r\n }\r\n <mat-card class=\"mb-2 cursor-pointer\" (click)=\"selectBreadcrumb(item)\"\r\n [dndDraggable]=\"item.data\" [dndDisableDragIf]=\"!enableDrag() || !!shouldDisableBreadcrumbClick(item)\" (dndStart)=\"dragStart($event, item.data)\" (dndEnd)=\"isDragging.set(false)\"\r\n [ngClass]=\"[selectedItem()?.id === item.id ? 'selected-item' : 'regular-item hover:bg-hover-color', shouldDisableBreadcrumbClick(item) ? 'bg-disabled-color opacity-50 hover:cursor-auto pointer-events-none disabled' : '']\"\r\n [appScrollIntoView]=\"selectedItem()?.id === item.id\" [matTooltip]=\"item.name\" matTooltipPosition=\"right\">\r\n <div class=\"px-3 flex flex-row items-center justify-between gap-x-2 item-card\">\r\n <div class=\"flex flex-row grow items-center gap-x-2 overflow-hidden\">\r\n @if (item.icon) {\r\n <div class=\"shrink-0 h-6\">\r\n @if (isAsyncIcon(item); as loadedIcon) {\r\n <app-loaded-icon [iconRequest]=\"loadedIcon.data\" [defaultIcon]=\"loadedIcon.defaultIcon\" [size]=\"24\"/>\r\n }\r\n @if (isSvgIcon(item); as svgIcon) {\r\n <mat-icon [svgIcon]=\"svgIcon.id\"></mat-icon>\r\n }\r\n @if (typeof item.icon === 'string') {\r\n <mat-icon>{{ item.icon }}</mat-icon>\r\n }\r\n </div>\r\n }\r\n <span [ngClass]=\"[selectedItem()?.id === item.id ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface']\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n @if (enableDrag() && !shouldDisableBreadcrumbClick(item)) {\r\n <mat-icon>drag_indicator</mat-icon>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <mat-divider class=\"w-full pb-2\"/>\r\n\r\n <!-- CHILDREN -->\r\n @if (selectedItem()) {\r\n <div class=\"flex-1 overflow-auto min-h-0\" [overflowClass]=\"'pr-4'\">\r\n @if (!loadingChildren()) {\r\n @if (filteredChildren(); as items) {\r\n @if (items.length) {\r\n <div class=\"flex flex-col w-full overflow-y-auto overflow-x-hidden\">\r\n @for (item of items; track $index) {\r\n <mat-card class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\" (click)=\"selectChild(item)\" [matTooltip]=\"item.name\" matTooltipPosition=\"right\"\r\n [dndDraggable]=\"item.data\" [dndDisableDragIf]=\"!enableDrag()\" (dndStart)=\"dragStart($event, item.data)\" (dndEnd)=\"isDragging.set(false)\">\r\n <div class=\"px-3 flex flex-row items-center justify-between gap-x-2 item-card\">\r\n <div class=\"flex flex-row grow items-center gap-x-2 overflow-hidden\">\r\n @if (item.icon) {\r\n <div class=\"shrink-0 h-6\">\r\n @if (isAsyncIcon(item); as loadedIcon) {\r\n <app-loaded-icon [iconRequest]=\"loadedIcon.data\" [defaultIcon]=\"loadedIcon.defaultIcon\" [size]=\"24\"/>\r\n }\r\n @if (isSvgIcon(item); as svgIcon) {\r\n <mat-icon [svgIcon]=\"svgIcon.id\"></mat-icon>\r\n }\r\n @if (typeof item.icon === 'string') {\r\n <mat-icon>{{ item.icon }}</mat-icon>\r\n }\r\n </div>\r\n }\r\n <span [ngClass]=\"selectedItem()?.id === item.id ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface'\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n @if (enableDrag()) {\r\n <mat-icon>drag_indicator</mat-icon>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <ng-content select=\"[app-no-items-message]\"/>\r\n </div>\r\n }\r\n }\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- ACTIONS (bottom right of the listing) -->\r\n <div class=\"absolute bottom-0 right-0 z-10\">\r\n <ng-content select=\"[app-actions]\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n @if (!hideDetails()) {\r\n <mat-divider [vertical]=\"true\" class=\"relative top-2\"/>\r\n\r\n <!-- DETAILS -->\r\n <div class=\"details flex shrink grow overflow-hidden pt-2\">\r\n <ng-content select=\"[app-details]\"/>\r\n </div>\r\n }\r\n</div>\r\n","import { BehaviorSubject, filter, Observable, Subject } from \"rxjs\";\r\n\r\nexport class NestedListDataControl<ItemType> {\r\n\r\n private _changeSelection$ = new BehaviorSubject<string | null>(null);\r\n private _itemUpdated$ = new Subject<ItemType>();\r\n private _childAdded = new Subject<ItemType>();\r\n private _itemRemoved$ = new Subject<string>();\r\n\r\n readonly selectItem = (id: string): void => this._changeSelection$.next(id);\r\n readonly updateItem = (item: ItemType): void => this._itemUpdated$.next(item);\r\n readonly addItem = (item: ItemType): void => this._childAdded.next(item);\r\n readonly removeItem = (id: string): void => this._itemRemoved$.next(id);\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Nested List Component\r\n */\r\n get changeSelection$(): Observable<string> {\r\n return this._changeSelection$.pipe(\r\n filter((value) => value !== null && value !== undefined)\r\n );\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside of the Nested List Component\r\n */\r\n get itemUpdated$(): Observable<ItemType> {\r\n return this._itemUpdated$.asObservable();\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Nested List Component\r\n */\r\n get childAdded(): Observable<ItemType> {\r\n return this._childAdded.asObservable();\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Nested List Component\r\n */\r\n get itemRemoved$(): Observable<string> {\r\n return this._itemRemoved$.asObservable();\r\n }\r\n}\r\n","import { LoadedIcon, SvgIcon } from \"../+common/model/icon\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport interface NestedListItem<ItemType> {\r\n id: string;\r\n name: string;\r\n idPath: string;\r\n type?: string;\r\n icon: string | LoadedIcon | SvgIcon;\r\n isRoot: boolean;\r\n data: ItemType;\r\n}\r\n\r\nexport abstract class NestedListDataSource<ItemType> {\r\n\r\n /**\r\n * Loads roots (needed for multiple roots).\r\n */\r\n abstract loadRoots(): Observable<ItemType[]>;\r\n\r\n /**\r\n * Loads the breadcrumb data (top half).\r\n */\r\n abstract loadBreadcrumbs(id: string): Observable<ItemType[]>;\r\n\r\n /**\r\n * Loads children for the currently selected item.\r\n */\r\n abstract loadChildren(item: NestedListItem<ItemType>): Observable<ItemType[]>;\r\n\r\n /**\r\n * Sets the id of the item that should be loaded first.\r\n */\r\n abstract initialSelection(): string | null;\r\n\r\n /**\r\n * Generalized the item and prepares it for display.\r\n */\r\n abstract prepareItem(item: ItemType, isRoot?: boolean): NestedListItem<ItemType>;\r\n\r\n sortingFunction(item1: NestedListItem<ItemType>, item2: NestedListItem<ItemType>): number {\r\n return item1.name.localeCompare(item2.name);\r\n }\r\n}\r\n","import { Component, computed, input } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-pdf-viewer',\r\n imports: [],\r\n templateUrl: './pdf-viewer.component.html',\r\n styleUrl: './pdf-viewer.component.scss',\r\n})\r\nexport class PdfViewerComponent {\r\n value = input.required<string>();\r\n\r\n safeSrc = computed<SafeResourceUrl | null>(() => {\r\n const url = this.value();\r\n if (!url) return null;\r\n\r\n const urlWithParams = `${url}#zoom=page-width&view=FitH`;\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(urlWithParams);\r\n });\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n}\r\n","@if (safeSrc()) {\r\n <iframe [src]=\"safeSrc()\" frameborder=\"0\" class=\"w-full h-full\"></iframe>\r\n}","import { afterNextRender, afterRenderEffect, Component, computed, contentChild, DestroyRef, input, output, signal } from '@angular/core';\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { StandardListDataSource, StandardListItem } from \"./standard-list.data-source\";\r\nimport { catchError, map, of, take } from \"rxjs\";\r\nimport { startWith } from \"rxjs/operators\";\r\nimport { OverflowClassDirective } from \"../../directive/overflow-class.directive\";\r\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { ScrollIntoViewDirective } from \"../../directive/scroll-into-view.directive\";\r\nimport { LoadedIconComponent } from \"../loaded-icon/loaded-icon.component\";\r\nimport { LoadedIcon, SvgIcon } from \"../+common/model/icon\";\r\nimport { StandardListDataControl } from \"./standard-list.data-control\";\r\nimport { NgTemplateContentDirective } from \"../../directive/ng-template-content.directive\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-standard-list-view',\r\n imports: [shared, OverflowClassDirective, ScrollIntoViewDirective, LoadedIconComponent],\r\n templateUrl: './standard-list-view.component.html',\r\n styleUrl: './standard-list-view.component.scss'\r\n})\r\nexport class StandardListViewComponent<ItemType> {\r\n\r\n dataSource = input.required<StandardListDataSource<ItemType>>();\r\n dataControl = input.required<StandardListDataControl<ItemType>>();\r\n\r\n position = input<'inner' | 'outer'>('outer');\r\n isColoredInput = input<boolean>(false);\r\n\r\n loadingData = signal<boolean>(true);\r\n loadingPage = signal<boolean>(false);\r\n\r\n selectedItem = signal<StandardListItem<ItemType> | null>(null);\r\n\r\n hideSearch = input<boolean>(false);\r\n hideDetails = input<boolean>(false);\r\n hidePadding = input<boolean>(false); // TODO Remove, but the component should have innate outer padding :(\r\n\r\n width = computed(() => {\r\n if (this.hideDetails()) {\r\n return 'w-full'\r\n }\r\n\r\n return this.position() === 'outer' ? 'basis-1/4' : 'basis-1/3';\r\n })\r\n\r\n nameSearchControl = new FormControl<string>('');\r\n searchTerm = toSignal(this.nameSearchControl.valueChanges.pipe(startWith(this.nameSearchControl.getRawValue())));\r\n\r\n items = signal<StandardListItem<ItemType>[]>([]);\r\n\r\n filteredItems = computed(() => {\r\n const searchTerm = this.searchTerm();\r\n if (!searchTerm) {\r\n return this.items();\r\n }\r\n\r\n return this.items().filter(item => item.name.toLowerCase().includes(searchTerm.toLowerCase()));\r\n })\r\n\r\n itemSelected = output<ItemType | null>();\r\n\r\n content = contentChild(NgTemplateContentDirective);\r\n\r\n constructor(destroyRef: DestroyRef) {\r\n afterNextRender(() => {\r\n const dataSource = this.dataSource();\r\n const dataControl = this.dataControl();\r\n\r\n dataSource.loadData().pipe(\r\n map((data) => data.map((value) => dataSource.prepareItem(value))),\r\n catchError((error) => {\r\n this.loadingData.set(false);\r\n return of([]);\r\n }),\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe((items) => {\r\n this.loadingData.set(false);\r\n this.selectedItem.set(null);\r\n this.items.set(items.sort(dataSource.sortingFunction));\r\n\r\n if (items.length === 0) {\r\n this.selectEmpty();\r\n return;\r\n }\r\n\r\n const initialSelection = dataSource.initialSelection();\r\n if (initialSelection) {\r\n this.selectItem(items.find(item => item.id === initialSelection) ?? items[0]);\r\n } else {\r\n this.selectItem(items[0]);\r\n }\r\n })\r\n\r\n dataControl.changeSelection$.pipe(\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe((id) => {\r\n const items = this.filteredItems();\r\n const newSelection = items.find(item => item.id === id) ?? items[0];\r\n this.selectItem(newSelection);\r\n })\r\n\r\n dataControl.itemAdded$.pipe(\r\n map((item) => dataSource.prepareItem(item)),\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe((item) => {\r\n this.items.set([...this.items(), item].sort(dataSource.sortingFunction));\r\n this.selectItem(item);\r\n })\r\n\r\n dataControl.itemRemoved$.pipe(\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe((id) => {\r\n if (this.items().length === 0) {\r\n this.selectEmpty();\r\n return;\r\n }\r\n\r\n const deletedItemPosition = this.items().map((item) => item.id).indexOf(id);\r\n this.items.set(this.items().filter(item => item.id !== id));\r\n if (deletedItemPosition > 0) {\r\n this.selectItem(this.items()[deletedItemPosition - 1]);\r\n } else if (deletedItemPosition === 0 && this.items().length > 0) {\r\n this.selectItem(this.items()[0]);\r\n } else {\r\n this.selectEmpty();\r\n }\r\n })\r\n\r\n dataControl.itemUpdated$.pipe(\r\n map((item) => dataSource.prepareItem(item)),\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe((updatedItem) => {\r\n this.items.update(items => items.map(item => item.id === updatedItem.id ? updatedItem : item).sort(dataSource.sortingFunction));\r\n })\r\n });\r\n\r\n afterRenderEffect(() => {\r\n const items = this.filteredItems();\r\n const selected = this.selectedItem();\r\n\r\n if (items.length === 0) {\r\n if (!selected) {\r\n return;\r\n }\r\n this.selectEmpty();\r\n return;\r\n }\r\n\r\n if (!selected) {\r\n this.selectItem(items[0]);\r\n }\r\n\r\n const selectedItemStillVisible = items.find((item) => item.id === selected?.id);\r\n if (!selectedItemStillVisible) {\r\n this.selectItem(items[0]);\r\n }\r\n })\r\n }\r\n\r\n selectItem(item: StandardListItem<ItemType>) {\r\n if (this.selectedItem()?.id === item?.id) {\r\n return;\r\n }\r\n\r\n this.selectedItem.set(item);\r\n this.itemSelected.emit(item.data);\r\n }\r\n\r\n selectEmpty() {\r\n this.selectedItem.set(null);\r\n this.itemSelected.emit(null);\r\n }\r\n\r\n isAsyncIcon(item: StandardListItem<ItemType>): LoadedIcon | null {\r\n return !!item.icon && typeof item.icon !== 'string' && !Object.hasOwn(item.icon, 'id') ? item.icon as LoadedIcon : null;\r\n }\r\n\r\n isSvgIcon(item: StandardListItem<ItemType>): SvgIcon | null {\r\n return !!item.icon && typeof item.icon !== 'string' && Object.hasOwn(item.icon, 'id') ? item.icon as SvgIcon : null;\r\n }\r\n\r\n loadMore() {\r\n this.loadingPage.set(true);\r\n\r\n this.dataSource().nextPage().pipe(\r\n map((data) => data.map((value) => this.dataSource().prepareItem(value))),\r\n catchError(() => {\r\n this.loadingPage.set(false);\r\n return [];\r\n }),\r\n take(1)\r\n ).subscribe((items) => {\r\n this.items.set([...this.items(), ...items].sort(this.dataSource().sortingFunction));\r\n this.loadingPage.set(false);\r\n });\r\n }\r\n}\r\n","<div class=\"container flex h-full w-full min-w-full min-h-full relative overflow-hidden {{hidePadding() ? 'pt-0' : 'pt-2'}}\">\r\n <div [ngClass]=\"width()\" class=\"master flex shrink-0 grow-0 min-w-0\">\r\n\r\n <!-- LISTING -->\r\n <div class=\"w-full h-full flex flex-col gap-y-2 relative\">\r\n\r\n <!-- SEARCH -->\r\n @if (!hideSearch()) {\r\n <mat-form-field class=\"w-full small-input\" [ngClass]=\"{'colored-input': isColoredInput()}\">\r\n <mat-label>{{ 'COMMON.SEARCH' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"nameSearchControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n }\r\n\r\n <!-- LIST -->\r\n <div class=\"flex flex-col w-full h-full relative overflow-hidden\">\r\n @if (!loadingData()) {\r\n @if (filteredItems(); as items) {\r\n @if (items.length) {\r\n <div class=\"flex flex-col w-full grow shrink overflow-y-auto overflow-x-hidden\" [overflowClass]=\"'pr-4'\">\r\n @for (item of items; track $index) {\r\n <ng-container [ngTemplateOutlet]=\"content()?.template || defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: item, selectedItem: selectedItem(), selectItem: selectItem.bind(this), isSvgIcon: isSvgIcon.bind(this), isAsyncIcon: isAsyncIcon.bind(this)}\">\r\n </ng-container>\r\n\r\n <!--DEFAULT TEMPLATE-->\r\n <ng-template #defaultTemplate>\r\n <mat-card class=\"mb-2 cursor-pointer\" (click)=\"selectItem(item)\"\r\n [ngClass]=\"selectedItem()?.id === item.id ? 'selected-item' : 'regular-item hover:bg-hover-color'\"\r\n [appScrollIntoView]=\"selectedItem()?.id === item.id\" [matTooltip]=\"item.name\" matTooltipPosition=\"right\">\r\n <div class=\"px-3 flex flex-row items-center gap-x-2 item-card\">\r\n @if (item.icon) {\r\n <div class=\"shrink-0 h-6\">\r\n @if (isAsyncIcon(item); as loadedIcon) {\r\n <app-loaded-icon [iconRequest]=\"loadedIcon.data\" [defaultIcon]=\"loadedIcon.defaultIcon\" [size]=\"24\"/>\r\n }\r\n @if (isSvgIcon(item); as svgIcon) {\r\n <mat-icon [svgIcon]=\"svgIcon.id\"></mat-icon>\r\n }\r\n @if (typeof item.icon === 'string') {\r\n <mat-icon>{{ item.icon }}</mat-icon>\r\n }\r\n </div>\r\n }\r\n <span [ngClass]=\"selectedItem()?.id === item.id ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface'\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n </mat-card>\r\n </ng-template>\r\n }\r\n @if (this.dataSource().isPaged && !this.dataSource().isLastPage) {\r\n <mat-card class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\" (click)=\"loadMore()\">\r\n <div class=\"px-3 flex flex-row justify-center items-center gap-x-2 item-card\">\r\n @if (loadingPage()) {\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n } @else {\r\n <span class=\"text-mat-sys-on-surface\">{{ 'COMMON.LOAD_MORE' | translate }}</span>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <ng-content select=\"[app-no-items-message]\"></ng-content>\r\n </div>\r\n }\r\n }\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n }\r\n\r\n <!-- ACTIONS (bottom right of the listing) -->\r\n <div class=\"absolute bottom-0 right-0 z-10\">\r\n <ng-content select=\"[app-actions]\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n @if (!hideDetails()) {\r\n <mat-divider [vertical]=\"true\"/>\r\n\r\n <!-- DETAILS -->\r\n <div class=\"details flex shrink grow overflow-hidden\">\r\n <ng-content select=\"[app-details]\"/>\r\n </div>\r\n }\r\n</div>\r\n","import { BehaviorSubject, filter, Observable, Subject } from \"rxjs\";\r\n\r\nexport class StandardListDataControl<ItemType> {\r\n\r\n private _changeSelection$ = new BehaviorSubject<string | null>(null);\r\n private _itemUpdated$ = new Subject<ItemType>();\r\n private _itemAdded$ = new Subject<ItemType>();\r\n private _itemRemoved$ = new Subject<string>();\r\n\r\n readonly selectItem = (id: string): void => this._changeSelection$.next(id);\r\n readonly updateItem = (item: ItemType): void => this._itemUpdated$.next(item);\r\n readonly addItem = (item: ItemType): void => this._itemAdded$.next(item);\r\n readonly removeItem = (id: string): void => this._itemRemoved$.next(id);\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Standard List Component\r\n */\r\n get changeSelection$(): Observable<string> {\r\n return this._changeSelection$.pipe(\r\n filter((value) => value !== null)\r\n );\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside of the Standard List Component\r\n */\r\n get itemUpdated$(): Observable<ItemType> {\r\n return this._itemUpdated$.asObservable();\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Standard List Component\r\n */\r\n get itemAdded$(): Observable<ItemType> {\r\n return this._itemAdded$.asObservable();\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Standard List Component\r\n */\r\n get itemRemoved$(): Observable<string> {\r\n return this._itemRemoved$.asObservable();\r\n }\r\n}\r\n","import { Observable, of } from \"rxjs\";\r\nimport { LoadedIcon, SvgIcon } from \"../+common/model/icon\";\r\n\r\nexport interface StandardListItem<ItemType> {\r\n id: string;\r\n name: string;\r\n icon: string | LoadedIcon | SvgIcon;\r\n data: ItemType;\r\n}\r\n\r\nexport abstract class StandardListDataSource<ItemType> {\r\n page = 0;\r\n isPaged = false;\r\n isLastPage = false;\r\n\r\n /**\r\n * Loads the initial data from the backend.\r\n */\r\n abstract loadData(): Observable<ItemType[]>;\r\n\r\n /**\r\n * Sets the id of the item that should be selected as soon as the data loads.\r\n */\r\n abstract initialSelection(): string[] | string | null;\r\n\r\n /**\r\n * Generalized the item and prepares it for display.\r\n */\r\n abstract prepareItem(item: ItemType): StandardListItem<ItemType>;\r\n\r\n sortingFunction(item1: StandardListItem<ItemType>, item2: StandardListItem<ItemType>): number {\r\n return item1.name.localeCompare(item2.name);\r\n }\r\n\r\n /**\r\n * If isPaged is set to true, implement this method, gets next page from the backend.\r\n */\r\n nextPage(): Observable<ItemType[]> {\r\n return of([]);\r\n };\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { Tab } from \"../+common/model/tab\";\r\nimport { ActivatedRoute, QueryParamsHandling, Router } from \"@angular/router\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport const LAST_ACTIVE_TAB_KEY = 'WOLK_LAST_ACTIVE_TAB';\r\n\r\n@Component({\r\n selector: 'app-tabulated-chip-view',\r\n imports: [shared],\r\n templateUrl: './tabulated-chip-view.component.html',\r\n styleUrl: './tabulated-chip-view.component.scss'\r\n})\r\nexport class TabulatedChipViewComponent {\r\n tabs = input.required<Tab[]>();\r\n queryParamHandling = input<QueryParamsHandling>('replace');\r\n saveLastActiveTab = input<boolean>(false);\r\n navBarLayoutClasses = input<string>('');\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n isActive(route: string) {\r\n return window.location.hash.includes(route)\r\n }\r\n\r\n navigate(route: string) {\r\n if (!this.isActive(route)) {\r\n if (this.saveLastActiveTab()) {\r\n localStorage.setItem(LAST_ACTIVE_TAB_KEY, route);\r\n }\r\n this.router.navigate([route], {relativeTo: this.route, queryParamsHandling: this.queryParamHandling()})\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-auto flex-col overflow-hidden tabulated-view-container\">\r\n <nav mat-tab-nav-bar [mat-stretch-tabs]=\"false\" [tabPanel]=\"tabPanel\" class=\"navigation\" [ngClass]=\"navBarLayoutClasses()\">\r\n @for (tab of tabs(); track $index) {\r\n @if (!tab.condition || (tab.condition | async)) {\r\n <div\r\n mat-tab-link\r\n [active]=\"isActive(tab.route)\"\r\n (click)=\"navigate(tab.route)\"\r\n [matTooltip]=\"tab.tooltip ? (tab.tooltip | translate) : null\"\r\n [ngClass]=\"{ 'bg-mat-sys-primary': isActive(tab.route), 'active': isActive(tab.route) }\"\r\n class=\"rounded mr-2 navigation-tab\"\r\n [attr.data-test]=\"tab.name + '_tab'\"\r\n >\r\n @if (tab.icon) {\r\n <mat-icon>{{ tab.icon }}</mat-icon>\r\n }\r\n <span [ngClass]=\"isActive(tab.route) ?'text-mat-sys-surface-container' : 'text-mat-sys-primary'\">{{ tab.name | translate }}</span>\r\n </div>\r\n }\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex flex-auto flex-col overflow-hidden\">\r\n <router-outlet/>\r\n </mat-tab-nav-panel>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Tab } from \"../+common/model/tab\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-tabulated-view',\r\n imports: [shared],\r\n templateUrl: './tabulated-view.component.html',\r\n styleUrl: './tabulated-view.component.scss'\r\n})\r\nexport class TabulatedViewComponent {\r\n @Input({required: true}) tabs: Tab[] = [];\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n isActive(route: string) {\r\n return window.location.hash.includes(route)\r\n }\r\n\r\n navigate(route: string) {\r\n if (!this.isActive(route)) {\r\n this.router.navigate([route], {relativeTo: this.route})\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-auto flex-col overflow-hidden\">\r\n <nav mat-tab-nav-bar [mat-stretch-tabs]=\"false\" [tabPanel]=\"tabPanel\" class=\"navigation\">\r\n <div\r\n *ngFor=\"let tab of tabs\"\r\n mat-tab-link\r\n [active]=\"isActive(tab.route)\"\r\n (click)=\"navigate(tab.route)\"\r\n [matTooltip]=\"tab.tooltip ? (tab.tooltip | translate) : null\"\r\n [attr.data-test]=\"tab.name + '_tab'\"\r\n >\r\n <mat-icon *ngIf=\"tab.icon\">\r\n {{ tab.icon }}\r\n </mat-icon>\r\n {{ tab.name | translate }}\r\n </div>\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex flex-auto flex-col overflow-hidden\">\r\n <router-outlet></router-outlet>\r\n </mat-tab-nav-panel>\r\n</div>\r\n","import { Component, input, output } from '@angular/core';\r\nimport { TreeNode } from \"../tree.model\";\r\nimport { shared } from '../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-tree-node',\r\n imports: [shared],\r\n templateUrl: './tree-node.component.html',\r\n styleUrl: './tree-node.component.scss'\r\n})\r\nexport class TreeNodeComponent {\r\n\r\n node = input.required<TreeNode<any>>();\r\n\r\n nodeSelected = output<TreeNode<any>>();\r\n\r\n toggle(node: TreeNode<any>) {\r\n node.open = !node.open;\r\n }\r\n\r\n selectNode(node: TreeNode<any>) {\r\n this.nodeSelected.emit(node);\r\n }\r\n}\r\n","<div class=\"w-full flex flex-col\">\r\n <!-- ROW -->\r\n <div class=\"w-full h-10 flex flex-row items-center\">\r\n\r\n <!-- ARROWS -->\r\n @if (node().canHaveChildren) {\r\n @if (node().open) {\r\n <button mat-icon-button class=\"scale-80\" (click)=\"toggle(node())\">\r\n <mat-icon>keyboard_arrow_down</mat-icon>\r\n </button>\r\n } @else {\r\n <button mat-icon-button class=\"scale-80\" [disabled]=\"!node().hasChildren\" (click)=\"toggle(node())\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n }\r\n } @else {\r\n <div class=\"w-12 h-12\"> </div>\r\n }\r\n\r\n <!-- ICON AND TEXT -->\r\n <div class=\"flex flex-row items-center cursor-pointer\" (click)=\"selectNode(node())\">\r\n <mat-icon [ngClass]=\"node().selected ? 'text-mat-sys-tertiary' : 'text-mat-sys-primary'\">{{ node().icon }}</mat-icon>\r\n <div class=\"pl-2\" [ngClass]=\"{ 'text-mat-sys-tertiary' : node().selected }\">{{ node().name }}</div>\r\n </div>\r\n </div>\r\n\r\n <!-- Children -->\r\n @if (node().open) {\r\n <div class=\"w-full flex flex-col pl-9\">\r\n @if (node().children | async; as children) {\r\n @for (child of children; track $index) {\r\n <app-tree-node [node]=\"child\" (nodeSelected)=\"selectNode($event)\"/>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component, effect, input, output } from '@angular/core';\r\nimport { TreeNode } from \"./tree.model\";\r\nimport { TreeNodeComponent } from \"./tree-node/tree-node.component\";\r\nimport { first } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'app-tree',\r\n imports: [TreeNodeComponent],\r\n templateUrl: './tree.component.html',\r\n styleUrl: './tree.component.scss'\r\n})\r\nexport class TreeComponent {\r\n\r\n roots = input.required<TreeNode<any>[]>();\r\n guidPath = input.required<string[]>();\r\n\r\n nodeSelected = output<TreeNode<any>>();\r\n\r\n selectedNode: TreeNode<any> | null = null;\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.selectedNode?.guid === this.guidPath()[this.guidPath().length - 1]) {\r\n return; // Everything is as it should be.\r\n }\r\n\r\n if (this.roots()?.length && this.guidPath()?.length) {\r\n this.discoverNode(this.roots(), this.guidPath());\r\n }\r\n });\r\n }\r\n\r\n private discoverNode(nodes: TreeNode<any>[], path: string[], level: number = 0) {\r\n if (level >= path.length) {\r\n return;\r\n }\r\n\r\n const discoveredNode = nodes.find(node => node.guid === path[level]);\r\n if (!discoveredNode) {\r\n return;\r\n }\r\n\r\n if (discoveredNode.hasChildren) {\r\n discoveredNode.open = true; // Expand the node\r\n }\r\n\r\n if (level === path.length - 1) {\r\n this.markSelected(discoveredNode) // Select the final node\r\n } else if (discoveredNode.hasChildren) {\r\n discoveredNode.children.pipe(first()).subscribe(children => {\r\n this.discoverNode(children, path, level + 1);\r\n });\r\n }\r\n }\r\n\r\n selectNode(node: TreeNode<any>) {\r\n this.markSelected(node);\r\n this.nodeSelected.emit(node);\r\n }\r\n\r\n private markSelected(node: TreeNode<any>) {\r\n if (this.selectedNode) {\r\n this.selectedNode.selected = false;\r\n }\r\n\r\n this.selectedNode = node;\r\n this.selectedNode.selected = true;\r\n }\r\n}\r\n","<div class=\"h-full w-full flex flex-col\">\r\n @for (node of roots(); track $index) {\r\n <app-tree-node [node]=\"node\" (nodeSelected)=\"selectNode($event)\"/>\r\n }\r\n</div>\r\n","import { Component, input } from '@angular/core';\r\nimport { DataType } from \"../../enum/data-type\";\r\nimport { DurationPipe } from \"../../pipe/duration.pipe\";\r\nimport { SimpleDateTimePipe } from \"../../pipe/simple-date-time.pipe\";\r\nimport { LocalizedNumberPipe } from '../../pipe/localized-number.pipe';\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-display',\r\n imports: [shared, DurationPipe, SimpleDateTimePipe, LocalizedNumberPipe],\r\n templateUrl: './value-display.component.html',\r\n styleUrl: './value-display.component.scss'\r\n})\r\nexport class ValueDisplayComponent {\r\n\r\n protected readonly DataType = DataType;\r\n\r\n value = input.required<string | null | undefined>();\r\n type = input.required<DataType>();\r\n unit = input<string>();\r\n\r\n constructor() {\r\n }\r\n\r\n getNumber(epochTime: string): number {\r\n return Number(epochTime);\r\n }\r\n\r\n getVectorValue(vector: string) {\r\n return vector.replaceAll(',', ', ');\r\n }\r\n}\r\n","@if (value(); as value) {\r\n @switch (type()) {\r\n @case (DataType.BOOLEAN) {\r\n <mat-icon>{{ value === 'true' ? 'check' : 'close' }}</mat-icon>\r\n }\r\n @case (DataType.COLOR) {\r\n <div class=\"rounded-full h-6 w-6 mt-1 color-circle\" [style.background-color]=\"value\"></div>\r\n }\r\n @case (DataType.DATE) {\r\n <div class=\"truncate\" matTooltip=\"{{ getNumber(value) | simpleDateTime }}\">{{ getNumber(value) | simpleDateTime }}</div>\r\n }\r\n @case (DataType.DURATION) {\r\n {{ getNumber(value) | duration }}\r\n }\r\n @case (DataType.LINK) {\r\n <div class=\"truncate\" matTooltip=\"{{ value }}\">\r\n <a href=\"{{value}}\" target=\"_blank\" class=\"underline\">{{ value }}</a>\r\n </div>\r\n }\r\n @case (DataType.VECTOR) {\r\n <div class=\"truncate\" matTooltip=\"{{ getVectorValue(value) }}\">{{ getVectorValue(value) }}</div>\r\n }\r\n @case (DataType.NUMERIC){\r\n <div class=\"truncate\" matTooltip=\"{{ getNumber(value) }} {{ unit() }}\">{{getNumber(value) | localizedNumber}} {{ unit() }}</div>\r\n }\r\n @default {\r\n <div class=\"truncate\" matTooltip=\"{{ value }} {{ unit() }}\">{{ value }} {{ unit() }}</div>\r\n }\r\n }\r\n} @else {\r\n -\r\n}\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { MatSlideToggle } from \"@angular/material/slide-toggle\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-boolean',\r\n imports: [shared, MatSlideToggle],\r\n templateUrl: './value-input-boolean.component.html',\r\n styleUrl: './value-input-boolean.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputBooleanComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputBooleanComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputBooleanComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n name = input<string>('');\r\n formControl = new FormControl<boolean>(false);\r\n destroy$ = new Subject<void>();\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n onTouched: () => void = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n writeValue(value: string): void {\r\n this.formControl.patchValue(value === 'true', { emitEvent: false });\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {boolean: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-slide-toggle [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <div class=\"flex flex-col ml-2\">\r\n <span class=\"text-xs font-light\"> {{ name() }} </span>\r\n <span>{{ formControl.value ? ('DATA_BROWSER.ATTRIBUTE_VALUE_ENABLED' | translate) : ('DATA_BROWSER.ATTRIBUTE_VALUE_DISABLED' | translate) }}</span>\r\n </div>\r\n</mat-slide-toggle>\r\n@for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\" class=\"ml-4 mt-[-8px] text-[12px]\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n}\r\n","import { Component, effect, ElementRef, forwardRef, input, OnDestroy, viewChild } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-color',\r\n imports: [shared],\r\n templateUrl: './value-input-color.component.html',\r\n styleUrl: './value-input-color.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputColorComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputColorComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputColorComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n name = input<string>('');\r\n colorPicker = viewChild.required<ElementRef<HTMLInputElement>>('colorPicker');\r\n showPicker = false;\r\n formControl = new FormControl<string>('');\r\n destroy$ = new Subject<void>();\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.hexadecimalColorValidator]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.showPicker = !this.showPicker;\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {color: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n openColorPicker() {\r\n if (!this.formControl.value) {\r\n this.formControl.setValue(\"#000000\", { emitEvent: false });\r\n }\r\n this.colorPicker().nativeElement.click();\r\n }\r\n\r\n onColorPickerChange(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n this.formControl.setValue(input.value.toUpperCase());\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n private hexadecimalColorValidator = (control: AbstractControl): ValidationErrors | null => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return /^#(?:[0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(control.value) ? null : {hexadecimalColor: true};\r\n };\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-form-field class=\"w-full relative\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" (click)=\"openColorPicker()\">\r\n <input type=\"color\" #colorPicker [value]=\"formControl.value\" (input)=\"onColorPickerChange($event)\" class=\"absolute opacity-0 right-55 top-full mt-1 z-10\" [class.hidden]=\"!showPicker\">\r\n <div class=\"w-5 h-5 rounded-full mr-4 cursor-pointer\" [style.background-color]=\"formControl.getRawValue()\" matSuffix (click)=\"openColorPicker()\"> </div>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { map, Subject, takeUntil } from \"rxjs\";\r\nimport { DateTimeFormFieldComponent } from \"../../../date-time-form-field/date-time-form-field.component\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-date',\r\n imports: [shared, DateTimeFormFieldComponent],\r\n templateUrl: './value-input-date.component.html',\r\n styleUrl: './value-input-date.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputDateComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputDateComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputDateComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<Date | null>(null);\r\n destroy$ = new Subject<void>()\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor() {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // Control Value Accessor\r\n writeValue(value: Date): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(new Date(Number(value)), { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$),\r\n map((value) => {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return value ? new Date(value).getTime().toString() : null;\r\n })\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {date: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<app-date-time-form-field [formControl]=\"formControl\" [validators]=\"validators()\" [showErrorInTooltip]=\"showErrorInTooltip()\" class=\"w-full\"></app-date-time-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-enum',\r\n imports: [shared],\r\n templateUrl: './value-input-enum.component.html',\r\n styleUrl: './value-input-enum.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputEnumComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputEnumComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputEnumComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<string>('');\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n destroy$ = new Subject<void>();\r\n\r\n options = input<string[] | undefined>([]);\r\n name = input<string>('');\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {enum: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<div class=\"w-full flex flex-col gap-y-2\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <mat-select [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\">\r\n @for (value of options(); track value) {\r\n <mat-option [value]=\"value\">{{ value }}</mat-option>\r\n }\r\n </mat-select>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n</div>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-hexadecimal',\r\n imports: [shared],\r\n templateUrl: './value-input-hexadecimal.component.html',\r\n styleUrl: './value-input-hexadecimal.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputHexadecimalComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputHexadecimalComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputHexadecimalComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<string>('');\r\n destroy$ = new Subject<void>();\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.hexadecimalValidator]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {hexadecimal: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n private hexadecimalValidator = (control: AbstractControl): ValidationErrors | null => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return /^[0-9a-fA-F]+$/.test(control.value) ? null : {hexadecimal: true};\r\n };\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_VALUE' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" autocomplete=\"off\"/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-link',\r\n imports: [shared],\r\n templateUrl: './value-input-link.component.html',\r\n styleUrl: './value-input-link.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputLinkComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputLinkComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputLinkComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<string>('');\r\n destroy$ = new Subject<void>();\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.linkValidator]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {link: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n private linkValidator = (control: AbstractControl): ValidationErrors | null => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return /^(https?:\\/\\/)?(www\\.)?([\\w-]+(\\.[\\w-]+)+)(:[0-9]+)?(\\/[\\w-./#]*)?(\\?[\\w-./?%&=]*)?(#[\\w-]*)?$/.test(control.value) ? null : {link: true};\r\n };\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_VALUE' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" autocomplete=\"off\"/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn, Validators } from \"@angular/forms\";\r\nimport { map, Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-location',\r\n imports: [shared],\r\n templateUrl: './value-input-location.component.html',\r\n styleUrl: './value-input-location.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputLocationComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputLocationComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputLocationComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n destroy$ = new Subject<void>();\r\n formGroup = new FormGroup({\r\n latitude: new FormControl<string | null>(null),\r\n longitude: new FormControl<string | null>(null)\r\n })\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formGroup.get('latitude')?.setValidators([...validators, Validators.min(-90), Validators.max(90)]);\r\n this.formGroup.get('longitude')?.setValidators([...validators, Validators.min(-180), Validators.max(180)]);\r\n this.formGroup.get('latitude')?.updateValueAndValidity({ emitEvent: false });\r\n this.formGroup.get('longitude')?.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formGroup.reset();\r\n } else {\r\n const [latitude, longitude] = value.replace(' ', '').split(',')\r\n this.formGroup.setValue({latitude, longitude}, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formGroup.valueChanges.pipe(\r\n takeUntil(this.destroy$),\r\n map((value) => {\r\n return value.latitude && value.longitude ? `${value?.latitude}, ${value.longitude}` : null;\r\n })\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formGroup.valid ? null : {location: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formGroup.get('latitude')?.disable();\r\n this.formGroup.get('longitude')?.disable();\r\n } else {\r\n this.formGroup.get('latitude')?.enable();\r\n this.formGroup.get('longitude')?.enable();\r\n }\r\n }\r\n\r\n handleLocationPaste(event: ClipboardEvent, formControlName: 'latitude' | 'longitude') {\r\n event.preventDefault();\r\n const clipboardData = event.clipboardData?.getData('text')?.trim() || '';\r\n\r\n const latLonPattern = /^-?\\d{1,3}\\.?\\d*,\\s*-?\\d{1,3}\\.?\\d*$/;\r\n if (latLonPattern.test(clipboardData)) {\r\n const [lat, lon] = clipboardData.split(',').map(item => item.trim());\r\n this.formGroup.get('latitude')?.setValue(lat);\r\n this.formGroup.get('longitude')?.setValue(lon);\r\n } else {\r\n this.formGroup.get(formControlName)?.setValue(clipboardData);\r\n }\r\n }\r\n\r\n getErrors(controlName: string): string[] {\r\n return Object.keys(this.formGroup.get(controlName)?.errors ?? {})\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip(controlName: string) {\r\n return this.getErrors(controlName).map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<form [formGroup]=\"formGroup\">\r\n <div class=\"flex flex-col gap-y-1\">\r\n <div class=\"flex gap-4 w-full justify-between items-start\">\r\n <mat-form-field class=\"flex-1\" [matTooltip]=\"getErrorTooltip('latitude')\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_LATITUDE' | translate }}</mat-label>\r\n <input matInput (paste)=\"handleLocationPaste($event, 'latitude')\" (blur)=\"this.formGroup.get('latitude')?.updateValueAndValidity()\" formControlName=\"latitude\" type=\"number\" autocomplete=\"off\">\r\n\r\n @for (error of getErrors('latitude'); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate: {max: 90, min: -90} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-1\" [matTooltip]=\"getErrorTooltip('longitude')\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_LONGITUDE' | translate }}</mat-label>\r\n <input matInput (paste)=\"handleLocationPaste($event, 'longitude')\" (blur)=\"this.formGroup.get('longitude')?.updateValueAndValidity()\" formControlName=\"longitude\" type=\"number\" autocomplete=\"off\">\r\n\r\n @for (error of getErrors('longitude'); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate: {max: 180, min: -180} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</form>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { LocalizedNumericInputDirective } from '../../../../directive/localize-numeric-input.directive';\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-numeric',\r\n imports: [shared, LocalizedNumericInputDirective],\r\n templateUrl: './value-input-numeric.component.html',\r\n styleUrl: './value-input-numeric.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputNumericComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputNumericComponent),\r\n multi: true,\r\n }]\r\n})\r\nexport class ValueInputNumericComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<number | null>(null);\r\n destroy$ = new Subject<void>();\r\n name = input<string>('');\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.numberValidator()]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {number: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: number): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n private numberValidator(): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return /^[-+]?(\\d+\\.?\\d*|\\.\\d+)([eE][-+]?\\d+)?$/.test(control.value) ? null : {number: true};\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" autocomplete=\"off\" wolkaboutLocalizedNumericInput/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-string',\r\n imports: [shared],\r\n templateUrl: './value-input-string.component.html',\r\n styleUrl: './value-input-string.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputStringComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputStringComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputStringComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n name = input<string>('')\r\n formControl = new FormControl<string>('');\r\n destroy$ = new Subject<void>();\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {string: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput [type]=\"'text'\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" autocomplete=\"off\"/>\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate : {max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-vector',\r\n imports: [shared],\r\n templateUrl: './value-input-vector.component.html',\r\n styleUrl: './value-input-vector.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputVectorComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputVectorComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputVectorComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<string>('');\r\n destroy$ = new Subject<void>();\r\n options = input<string[] | undefined>([]);\r\n name = input<string>('');\r\n showErrorInTooltip = input<boolean>(false);\r\n validators = input<ValidatorFn[]>();\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.validateOptions]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n });\r\n\r\n effect(() => {\r\n const options = this.options();\r\n this.formControl.updateValueAndValidity();\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {enum: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n validateOptions = (control: AbstractControl): ValidationErrors | null => {\r\n const value: string = control.value;\r\n const options = this.options()\r\n\r\n if (value === null || value === undefined || value === '' || !options?.length) {\r\n return null;\r\n }\r\n\r\n const valueArray = value.split(',');\r\n const isValueNumeric = valueArray.every((item: string) => {\r\n if (!item) {\r\n return false;\r\n }\r\n\r\n return !isNaN(+item);\r\n })\r\n\r\n return options.length !== valueArray.length || !isValueNumeric ? {invalidVectorOption: {valid: false}} : null\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<div class=\"w-full flex flex-col gap-y-2\">\r\n <mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }} ({{ options()?.join(',') }})</mat-label>\r\n <input matInput [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" class=\"w-full\">\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n</div>\r\n","import { Component, DestroyRef, effect, forwardRef, input } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { map } from \"rxjs\";\r\nimport { formatDuration } from \"../../../../pipe/duration.pipe\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-duration',\r\n imports: [shared],\r\n templateUrl: './value-input-duration.component.html',\r\n styleUrl: './value-input-duration.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputDurationComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputDurationComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputDurationComponent implements ControlValueAccessor, Validator {\r\n\r\n name = input<string>('')\r\n formControl = new FormControl<string>('');\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n durationValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const value: string | null = control.value;\r\n\r\n if (value == null || value.trim() === '') {\r\n return null;\r\n }\r\n\r\n return /^(?:\\d+[dhms]\\s*)+$/.test(value) ? null : {duration: true};\r\n };\r\n\r\n onTouched: any = () => {\r\n };\r\n\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private destroyRef: DestroyRef, private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.durationValidator]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(formatDuration(Number(value)), { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n map((value) => this.parseDurationToSeconds(value)),\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {duration: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n parseDurationToSeconds(duration: string | null): number | null {\r\n if (!duration) {\r\n return null;\r\n }\r\n\r\n return (duration.match(/\\d+[dhms]/g) || [])\r\n .map((token) => token.trim())\r\n .map((token) => {\r\n const value = Number(token.slice(0, -1));\r\n const unit = token[token.length - 1];\r\n\r\n switch (unit) {\r\n case \"d\":\r\n return value * 86400;\r\n case \"h\":\r\n return value * 3600;\r\n case \"m\":\r\n return value * 60;\r\n case \"s\":\r\n return value;\r\n default:\r\n throw new Error(`Unexpected duration unit: ${unit}`);\r\n }\r\n })\r\n .reduce((a, b) => a + b, 0);\r\n }\r\n}\r\n","<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput [type]=\"'text'\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" autocomplete=\"off\"/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, signal } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn, Validators } from \"@angular/forms\";\r\nimport { DataType } from \"../../enum/data-type\";\r\nimport { ValueInputBooleanComponent } from \"./implementation/value-input-boolean/value-input-boolean.component\";\r\nimport { ValueInputColorComponent } from \"./implementation/value-input-color/value-input-color.component\";\r\nimport { ValueInputDateComponent } from \"./implementation/value-input-date/value-input-date.component\";\r\nimport { ValueInputEnumComponent } from \"./implementation/value-input-enum/value-input-enum.component\";\r\nimport { ValueInputHexadecimalComponent } from \"./implementation/value-input-hexadecimal/value-input-hexadecimal.component\";\r\nimport { ValueInputLinkComponent } from \"./implementation/value-input-link/value-input-link.component\";\r\nimport { ValueInputLocationComponent } from \"./implementation/value-input-location/value-input-location.component\";\r\nimport { ValueInputNumericComponent } from \"./implementation/value-input-numeric/value-input-numeric.component\";\r\nimport { ValueInputStringComponent } from \"./implementation/value-input-string/value-input-string.component\";\r\nimport { ValueInputVectorComponent } from \"./implementation/value-input-vector/value-input-vector.component\";\r\nimport { ValueInputDurationComponent } from \"./implementation/value-input-duration/value-input-duration.component\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport interface ValueInputValidationConditions {\r\n regex?: string | RegExp | null;\r\n required?: boolean | null;\r\n minSize?: number | null;\r\n maxSize?: number | null;\r\n}\r\n\r\n@Component({\r\n selector: 'app-value-input',\r\n imports: [shared, ValueInputBooleanComponent, ValueInputColorComponent, ValueInputDateComponent, ValueInputEnumComponent, ValueInputHexadecimalComponent, ValueInputLinkComponent, ValueInputLocationComponent, ValueInputNumericComponent, ValueInputStringComponent, ValueInputVectorComponent, ValueInputDurationComponent],\r\n templateUrl: './value-input.component.html',\r\n styleUrl: './value-input.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputComponent),\r\n multi: true,\r\n }]\r\n})\r\nexport class ValueInputComponent implements ControlValueAccessor, Validator {\r\n\r\n name = input.required<string>();\r\n dataType = input.required<DataType>();\r\n options = input<string[]>();\r\n validationConditions = input<ValueInputValidationConditions | null>();\r\n showErrorInTooltip = input<boolean>(false);\r\n validators = signal<ValidatorFn[]>([]);\r\n\r\n formControl = new FormControl<string | null>(null);\r\n onValidatorChange!: () => void;\r\n\r\n constructor() {\r\n effect(() => {\r\n const validationConditions = this.validationConditions();\r\n const dataType = this.dataType();\r\n\r\n this.setValidators(validationConditions, dataType)\r\n });\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {valueInputForm: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n onTouched!: (event: Event) => void;\r\n\r\n writeValue(value: string | null | undefined): void {\r\n if (value) {\r\n this.formControl.setValue(value, {emitEvent: false});\r\n } else {\r\n this.formControl.reset('', {emitEvent: false})\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.formControl.valueChanges.subscribe(fn);\r\n }\r\n\r\n registerOnTouched(fn: (event: Event) => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n private setValidators(validationConditions: ValueInputValidationConditions | null | undefined, dataType: DataType) {\r\n if (!validationConditions) {\r\n return;\r\n }\r\n\r\n const validators = [];\r\n\r\n if (validationConditions.required) {\r\n validators.push(Validators.required)\r\n }\r\n\r\n if (validationConditions.regex && dataType === DataType.STRING) {\r\n validators.push(Validators.pattern(validationConditions.regex))\r\n }\r\n\r\n if (validationConditions.maxSize !== null && validationConditions.maxSize !== undefined) {\r\n validators.push(Validators.maxLength(+validationConditions.maxSize))\r\n }\r\n\r\n if (validationConditions.minSize !== null && validationConditions.minSize !== undefined) {\r\n validators.push(Validators.minLength(+validationConditions.minSize))\r\n }\r\n\r\n this.validators.set(validators)\r\n }\r\n\r\n protected readonly DataType = DataType;\r\n}\r\n","@switch (dataType()) {\r\n @case (DataType.STRING) {\r\n <app-value-input-string [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.NUMERIC) {\r\n <app-value-input-numeric [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.BOOLEAN) {\r\n <app-value-input-boolean [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.HEXADECIMAL) {\r\n <app-value-input-hexadecimal [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.COLOR) {\r\n <app-value-input-color [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.LINK) {\r\n <app-value-input-link [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.DATE) {\r\n <app-value-input-date [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.DURATION) {\r\n <app-value-input-duration [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.LOCATION) {\r\n <app-value-input-location [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.VECTOR) {\r\n <app-value-input-vector [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\" [options]=\"options()\"/>\r\n }\r\n @case (DataType.ENUM) {\r\n <app-value-input-enum [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\" [options]=\"options()\"/>\r\n }\r\n}\r\n","// Config\r\nexport * from './lib/common.config';\r\n\r\n// Models\r\nexport * from './lib/component/+common/model/icon';\r\nexport * from './lib/component/+common/model/tab';\r\nexport * from './lib/model/authentication.model';\r\nexport * from './lib/model/import-error.model';\r\n\r\n// Enums\r\nexport * from './lib/enum/data-type';\r\nexport * from './lib/enum/permission.enum';\r\n\r\n// Guards\r\nexport * from './lib/guard/requires-permission.guard';\r\n\r\n// Services\r\nexport * from './lib/service/authentication-client';\r\nexport * from './lib/service/authentication.service';\r\nexport * from './lib/service/feature-registry.service';\r\nexport * from './lib/service/maps-loader.service';\r\nexport * from './lib/service/notification.service';\r\nexport * from './lib/service/permissions.service';\r\nexport * from './lib/service/tenant-properties.service';\r\nexport * from './lib/service/theme.service';\r\n\r\n// Directives\r\nexport * from './lib/directive/loading-indicator.directive';\r\nexport * from './lib/directive/localize-numeric-input.directive';\r\nexport * from './lib/directive/message-tooltip.directive';\r\nexport * from './lib/directive/ng-template-content.directive';\r\nexport * from './lib/directive/overflow-class.directive';\r\nexport * from './lib/directive/requires-all-global-asset-permission.directive';\r\nexport * from './lib/directive/requires-all-permissions.directive';\r\nexport * from './lib/directive/requires-global-asset-permission.directive';\r\nexport * from './lib/directive/requires-permission.directive';\r\nexport * from './lib/directive/scroll-into-view.directive';\r\n\r\n// Pipes\r\nexport * from './lib/pipe/duration.pipe';\r\nexport * from './lib/pipe/localized-number.pipe';\r\nexport * from './lib/pipe/simple-date-time.pipe';\r\nexport * from './lib/pipe/simple-date.pipe';\r\nexport * from './lib/pipe/simple-time.pipe';\r\nexport * from './lib/pipe/sort.pipe';\r\n\r\n// Utilities\r\nexport * from './lib/util/chart-theme-dark';\r\nexport * from './lib/util/chart-theme-light';\r\nexport * from './lib/util/date-util';\r\nexport * from './lib/util/file-util';\r\nexport * from './lib/util/form-validation.util';\r\nexport * from './lib/util/locale-util';\r\nexport * from './lib/util/missing-translation-helper';\r\nexport * from './lib/util/numeric-util';\r\nexport * from './lib/util/object-utils';\r\nexport * from './lib/util/string-util';\r\nexport * from './lib/util/time-zone-util';\r\nexport * from './lib/util/url-utils';\r\n\r\n// Components\r\nexport * from './lib/component/autocomplete/autocomplete.component';\r\nexport * from './lib/component/autocomplete-chips/autocomplete-chips.component';\r\nexport * from './lib/component/basic-time-series-graph/basic-time-series-graph.component';\r\nexport * from './lib/component/basic-time-series-graph/time-series';\r\nexport * from './lib/component/card-labeled-value/card-labeled-value.component';\r\nexport * from './lib/component/confirmation-dialog/confirmation-dialog.component';\r\nexport * from './lib/component/date-range-input/date-range-input.component';\r\nexport * from './lib/component/date-time-form-field/date-time-form-field.component';\r\nexport * from './lib/component/drag-drop-file-upload/drag-drop-file-upload.component';\r\nexport * from './lib/component/google-map/google-map.component';\r\nexport * from './lib/component/image-display/image-display.component';\r\nexport * from './lib/component/image-display/image-preview/image-preview.component';\r\nexport * from './lib/component/labeled-value/labeled-value.component';\r\nexport * from './lib/component/loaded-icon/loaded-icon.component';\r\nexport * from './lib/component/local-sort-table/local-sort-table.component';\r\nexport * from './lib/component/master-details-view/master-details-view.component';\r\nexport * from './lib/component/nested-list-view/nested-list-view.component';\r\nexport * from './lib/component/nested-list-view/nested-list.data-control';\r\nexport * from './lib/component/nested-list-view/nested-list.data-source';\r\nexport * from './lib/component/pdf-viewer/pdf-viewer.component';\r\nexport * from './lib/component/standard-list-view/standard-list-view.component';\r\nexport * from './lib/component/standard-list-view/standard-list.data-control';\r\nexport * from './lib/component/standard-list-view/standard-list.data-source';\r\nexport * from './lib/component/tabulated-chip-view/tabulated-chip-view.component';\r\nexport * from './lib/component/tabulated-view/tabulated-view.component';\r\nexport * from './lib/component/tree/tree.component';\r\nexport * from './lib/component/tree/tree.model';\r\nexport * from './lib/component/tree/tree-node/tree-node.component';\r\nexport * from './lib/component/value-display/value-display.component';\r\nexport * from './lib/component/value-input/value-input.component';\r\nexport * from './lib/component/value-input/implementation/value-input-boolean/value-input-boolean.component';\r\nexport * from './lib/component/value-input/implementation/value-input-color/value-input-color.component';\r\nexport * from './lib/component/value-input/implementation/value-input-date/value-input-date.component';\r\nexport * from './lib/component/value-input/implementation/value-input-duration/value-input-duration.component';\r\nexport * from './lib/component/value-input/implementation/value-input-enum/value-input-enum.component';\r\nexport * from './lib/component/value-input/implementation/value-input-hexadecimal/value-input-hexadecimal.component';\r\nexport * from './lib/component/value-input/implementation/value-input-link/value-input-link.component';\r\nexport * from './lib/component/value-input/implementation/value-input-location/value-input-location.component';\r\nexport * from './lib/component/value-input/implementation/value-input-numeric/value-input-numeric.component';\r\nexport * from './lib/component/value-input/implementation/value-input-string/value-input-string.component';\r\nexport * from './lib/component/value-input/implementation/value-input-vector/value-input-vector.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.TenantPropertiesService","i1","i1.PermissionsService","i30","i1.SimpleDateTimePipe","i31","i32","i33","i14","i15","i16","i17","i18","i19","i20","i21","i22","i23","i24","i25","i26","i27","i28","i29","i2.NotificationService","i3","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i2.SimpleDateTimePipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wolkabout-commons.mjs","sources":["../../../projects/commons/src/lib/common.config.ts","../../../projects/commons/src/lib/model/authentication.model.ts","../../../projects/commons/src/lib/enum/data-type.ts","../../../projects/commons/src/lib/enum/permission.enum.ts","../../../projects/commons/src/lib/service/authentication-client.ts","../../../projects/commons/src/lib/service/authentication.service.ts","../../../projects/commons/src/lib/service/permissions.service.ts","../../../projects/commons/src/lib/guard/requires-permission.guard.ts","../../../projects/commons/src/lib/service/feature-registry.service.ts","../../../projects/commons/src/lib/service/maps-loader.service.ts","../../../projects/commons/src/lib/service/notification.service.ts","../../../projects/commons/src/lib/util/locale-util.ts","../../../projects/commons/src/lib/service/tenant-properties.service.ts","../../../projects/commons/src/lib/util/chart-theme-light.ts","../../../projects/commons/src/lib/util/chart-theme-dark.ts","../../../projects/commons/src/lib/service/theme.service.ts","../../../projects/commons/src/lib/directive/loading-indicator.directive.ts","../../../projects/commons/src/lib/directive/localize-numeric-input.directive.ts","../../../projects/commons/src/lib/directive/message-tooltip.directive.ts","../../../projects/commons/src/lib/directive/ng-template-content.directive.ts","../../../projects/commons/src/lib/directive/overflow-class.directive.ts","../../../projects/commons/src/lib/directive/requires-all-global-asset-permission.directive.ts","../../../projects/commons/src/lib/directive/requires-all-permissions.directive.ts","../../../projects/commons/src/lib/directive/requires-global-asset-permission.directive.ts","../../../projects/commons/src/lib/directive/requires-permission.directive.ts","../../../projects/commons/src/lib/directive/scroll-into-view.directive.ts","../../../projects/commons/src/lib/pipe/duration.pipe.ts","../../../projects/commons/src/lib/pipe/localized-number.pipe.ts","../../../projects/commons/src/lib/pipe/simple-date-time.pipe.ts","../../../projects/commons/src/lib/pipe/simple-date.pipe.ts","../../../projects/commons/src/lib/pipe/simple-time.pipe.ts","../../../projects/commons/src/lib/pipe/sort.pipe.ts","../../../projects/commons/src/lib/util/date-util.ts","../../../projects/commons/src/lib/util/file-util.ts","../../../projects/commons/src/lib/util/form-validation.util.ts","../../../projects/commons/src/lib/util/missing-translation-helper.ts","../../../projects/commons/src/lib/util/numeric-util.ts","../../../projects/commons/src/lib/util/object-utils.ts","../../../projects/commons/src/lib/util/string-util.ts","../../../projects/commons/src/lib/util/time-zone-util.ts","../../../projects/commons/src/lib/util/url-utils.ts","../../../projects/commons/src/lib/component/autocomplete/autocomplete.component.ts","../../../projects/commons/src/lib/component/autocomplete/autocomplete.component.html","../../../projects/commons/src/lib/component/autocomplete-chips/autocomplete-chips.component.ts","../../../projects/commons/src/lib/component/autocomplete-chips/autocomplete-chips.component.html","../../../projects/commons/src/lib/component/basic-time-series-graph/basic-time-series-graph.component.ts","../../../projects/commons/src/lib/component/basic-time-series-graph/basic-time-series-graph.component.html","../../../projects/commons/src/lib/component/card-labeled-value/card-labeled-value.component.ts","../../../projects/commons/src/lib/component/card-labeled-value/card-labeled-value.component.html","../../../projects/commons/src/lib/component/confirmation-dialog/confirmation-dialog.component.ts","../../../projects/commons/src/lib/component/confirmation-dialog/confirmation-dialog.component.html","../../../projects/commons/src/lib/component/date-range-input/date-range-input.component.ts","../../../projects/commons/src/lib/component/date-range-input/date-range-input.component.html","../../../projects/commons/src/lib/component/date-time-form-field/date-time-form-field.component.ts","../../../projects/commons/src/lib/component/date-time-form-field/date-time-form-field.component.html","../../../projects/commons/src/lib/component/drag-drop-file-upload/drag-drop-file-upload.component.ts","../../../projects/commons/src/lib/component/drag-drop-file-upload/drag-drop-file-upload.component.html","../../../projects/commons/src/lib/component/google-map/google-map.component.ts","../../../projects/commons/src/lib/component/google-map/google-map.component.html","../../../projects/commons/src/lib/component/image-display/image-preview/image-preview.component.ts","../../../projects/commons/src/lib/component/image-display/image-preview/image-preview.component.html","../../../projects/commons/src/lib/component/image-display/image-display.component.ts","../../../projects/commons/src/lib/component/image-display/image-display.component.html","../../../projects/commons/src/lib/component/labeled-value/labeled-value.component.ts","../../../projects/commons/src/lib/component/labeled-value/labeled-value.component.html","../../../projects/commons/src/lib/component/loaded-icon/loaded-icon.component.ts","../../../projects/commons/src/lib/component/loaded-icon/loaded-icon.component.html","../../../projects/commons/src/lib/component/local-sort-table/local-sort-table.component.ts","../../../projects/commons/src/lib/component/local-sort-table/local-sort-table.component.html","../../../projects/commons/src/lib/component/master-details-view/master-details-view.component.ts","../../../projects/commons/src/lib/component/master-details-view/master-details-view.component.html","../../../projects/commons/src/lib/component/nested-list-view/nested-list-view.component.ts","../../../projects/commons/src/lib/component/nested-list-view/nested-list-view.component.html","../../../projects/commons/src/lib/component/nested-list-view/nested-list.data-control.ts","../../../projects/commons/src/lib/component/nested-list-view/nested-list.data-source.ts","../../../projects/commons/src/lib/component/pdf-viewer/pdf-viewer.component.ts","../../../projects/commons/src/lib/component/pdf-viewer/pdf-viewer.component.html","../../../projects/commons/src/lib/component/standard-list-view/standard-list-view.component.ts","../../../projects/commons/src/lib/component/standard-list-view/standard-list-view.component.html","../../../projects/commons/src/lib/component/standard-list-view/standard-list.data-control.ts","../../../projects/commons/src/lib/component/standard-list-view/standard-list.data-source.ts","../../../projects/commons/src/lib/component/tabulated-chip-view/tabulated-chip-view.component.ts","../../../projects/commons/src/lib/component/tabulated-chip-view/tabulated-chip-view.component.html","../../../projects/commons/src/lib/component/tabulated-view/tabulated-view.component.ts","../../../projects/commons/src/lib/component/tabulated-view/tabulated-view.component.html","../../../projects/commons/src/lib/component/tree/tree-node/tree-node.component.ts","../../../projects/commons/src/lib/component/tree/tree-node/tree-node.component.html","../../../projects/commons/src/lib/component/tree/tree.component.ts","../../../projects/commons/src/lib/component/tree/tree.component.html","../../../projects/commons/src/lib/component/value-display/value-display.component.ts","../../../projects/commons/src/lib/component/value-display/value-display.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-boolean/value-input-boolean.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-boolean/value-input-boolean.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-color/value-input-color.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-color/value-input-color.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-date/value-input-date.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-date/value-input-date.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-enum/value-input-enum.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-enum/value-input-enum.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-hexadecimal/value-input-hexadecimal.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-hexadecimal/value-input-hexadecimal.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-link/value-input-link.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-link/value-input-link.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-location/value-input-location.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-location/value-input-location.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-numeric/value-input-numeric.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-numeric/value-input-numeric.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-string/value-input-string.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-string/value-input-string.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-vector/value-input-vector.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-vector/value-input-vector.component.html","../../../projects/commons/src/lib/component/value-input/implementation/value-input-duration/value-input-duration.component.ts","../../../projects/commons/src/lib/component/value-input/implementation/value-input-duration/value-input-duration.component.html","../../../projects/commons/src/lib/component/value-input/value-input.component.ts","../../../projects/commons/src/lib/component/value-input/value-input.component.html","../../../projects/commons/src/public-api.ts","../../../projects/commons/src/wolkabout-commons.ts"],"sourcesContent":["import { TranslateModule } from '@ngx-translate/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\nexport const angularComponents = [\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatToolbarModule,\r\n MatMenuModule,\r\n MatFormFieldModule,\r\n MatTooltipModule,\r\n MatSidenavModule,\r\n MatTabsModule,\r\n MatTableModule,\r\n MatIconModule,\r\n MatCardModule,\r\n MatSelectModule,\r\n MatDialogModule,\r\n MatSortModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatDividerModule,\r\n MatInputModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatTreeModule,\r\n MatExpansionModule,\r\n MatDatepickerModule,\r\n MatAutocompleteModule,\r\n MatChipsModule,\r\n MatGridListModule,\r\n MatPaginatorModule,\r\n MatSliderModule\r\n];\r\n\r\nexport const shared = [\r\n ...angularComponents,\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n RouterLink,\r\n RouterOutlet,\r\n RouterLinkActive,\r\n DragDropModule\r\n];\r\n","export interface User {\r\n id: number;\r\n firstName: string | null;\r\n lastName: string | null;\r\n email: string;\r\n}\r\n\r\nexport interface Authority {\r\n contextId: number;\r\n contextName: string;\r\n mainContext: boolean;\r\n active: boolean;\r\n accessToken: string;\r\n roleNames: string[];\r\n permissions: string[];\r\n}\r\n\r\nexport interface Authentication {\r\n user: User;\r\n authorities: Authority[];\r\n refreshToken: string;\r\n}\r\n\r\nexport function isContextAccessible(authority: Authority, isMainContext: boolean): boolean {\r\n return authority.mainContext === isMainContext;\r\n}\r\n","export enum DataType {\r\n STRING = 'STRING',\r\n NUMERIC = 'NUMERIC',\r\n BOOLEAN = 'BOOLEAN',\r\n LOCATION = 'LOCATION',\r\n HEXADECIMAL = 'HEXADECIMAL',\r\n ENUM = 'ENUM',\r\n VECTOR = 'VECTOR',\r\n DATE = 'DATE',\r\n DURATION = 'DURATION',\r\n // REFERENCE = 'REFERENCE',\r\n COLOR = 'COLOR',\r\n LINK = 'LINK'\r\n}\r\n","export enum Permission {\r\n // ACCESS\r\n ACCESS_MODULE_PLATFORM_MANAGEMENT_FEATURE_APPLICATION = \"ACCESS.MODULE_PLATFORM_MANAGEMENT.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_PLATFORM_MANAGEMENT_FEATURE_PLATFORM_CONFIGURATION = \"ACCESS.MODULE_PLATFORM_MANAGEMENT.FEATURE_PLATFORM_CONFIGURATION\",\r\n ACCESS_MODULE_PLATFORM_MANAGEMENT_FEATURE_TENANT_MANAGEMENT = \"ACCESS.MODULE_PLATFORM_MANAGEMENT.FEATURE_TENANT_MANAGEMENT\",\r\n\r\n ACCESS_MODULE_USER_MANAGEMENT_FEATURE_APPLICATION = \"ACCESS.MODULE_USER_MANAGEMENT.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_USER_MANAGEMENT_FEATURE_USER_MANAGEMENT = \"ACCESS.MODULE_USER_MANAGEMENT.FEATURE_USER_MANAGEMENT\",\r\n ACCESS_MODULE_USER_MANAGEMENT_FEATURE_USER_GROUPS_MANAGEMENT = \"ACCESS.MODULE_USER_MANAGEMENT.FEATURE_USER_GROUPS_MANAGEMENT\",\r\n ACCESS_MODULE_USER_MANAGEMENT_FEATURE_GLOBAL_ROLES_MANAGEMENT = \"ACCESS.MODULE_USER_MANAGEMENT.FEATURE_GLOBAL_ROLES_MANAGEMENT\",\r\n ACCESS_MODULE_USER_MANAGEMENT_FEATURE_INVENTORY_ROLES_MANAGEMENT = \"ACCESS.MODULE_USER_MANAGEMENT.FEATURE_INVENTORY_ROLES_MANAGEMENT\",\r\n\r\n ACCESS_MODULE_TENANT_MANAGEMENT_FEATURE_APPLICATION = \"ACCESS.MODULE_TENANT_MANAGEMENT.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_TENANT_MANAGEMENT_FEATURE_READING_TYPES_MANAGEMENT = \"ACCESS.MODULE_TENANT_MANAGEMENT.FEATURE_READING_TYPES_MANAGEMENT\",\r\n ACCESS_MODULE_TENANT_MANAGEMENT_FEATURE_INTEGRATIONS = \"ACCESS.MODULE_TENANT_MANAGEMENT.FEATURE_INTEGRATIONS\",\r\n ACCESS_MODULE_TENANT_MANAGEMENT_FEATURE_ACCESS_KEYS = \"ACCESS.MODULE_TENANT_MANAGEMENT.FEATURE_ACCESS_KEYS\",\r\n ACCESS_MODULE_TENANT_MANAGEMENT_FEATURE_AUDIT_LOG = \"ACCESS.MODULE_TENANT_MANAGEMENT.FEATURE_AUDIT_LOG\",\r\n\r\n ACCESS_MODULE_DEVICES_AND_EDGE_FEATURE_APPLICATION = \"ACCESS.MODULE_DEVICES_AND_EDGE.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_DEVICES_AND_EDGE_FEATURE_DEVICES = \"ACCESS.MODULE_DEVICES_AND_EDGE.FEATURE_DEVICES\",\r\n ACCESS_MODULE_DEVICES_AND_EDGE_FEATURE_TYPES = \"ACCESS.MODULE_DEVICES_AND_EDGE.FEATURE_TYPES\",\r\n ACCESS_MODULE_DEVICES_AND_EDGE_FEATURE_GROUPS = \"ACCESS.MODULE_DEVICES_AND_EDGE.FEATURE_GROUPS\",\r\n\r\n ACCESS_MODULE_DATA_MANAGEMENT_FEATURE_APPLICATION = \"ACCESS.MODULE_DATA_MANAGEMENT.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_DATA_MANAGEMENT_FEATURE_DATA_MANAGEMENT = \"ACCESS.MODULE_DATA_MANAGEMENT.FEATURE_DATA_MANAGEMENT\",\r\n ACCESS_MODULE_DATA_MANAGEMENT_FEATURE_TYPES = \"ACCESS.MODULE_DATA_MANAGEMENT.FEATURE_TYPES\",\r\n\r\n ACCESS_MODULE_RULE_ENGINE_FEATURE_APPLICATION = \"ACCESS.MODULE_RULE_ENGINE.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_DASHBOARDS_FEATURE_APPLICATION = \"ACCESS.MODULE_DASHBOARDS.FEATURE_APPLICATION\",\r\n\r\n ACCESS_MODULE_MESSAGES_FEATURE_APPLICATION = \"ACCESS.MODULE_MESSAGES.FEATURE_APPLICATION\",\r\n ACCESS_MODULE_MESSAGES_FEATURE_MESSAGE_TEMPLATES = \"ACCESS.MODULE_MESSAGES.FEATURE_MESSAGE_TEMPLATES\",\r\n ACCESS_MODULE_MESSAGES_FEATURE_MESSAGES = \"ACCESS.MODULE_MESSAGES.FEATURE_MESSAGES\",\r\n\r\n // PLATFORM_MANAGEMENT\r\n PLATFORM_MANAGEMENT_SETTINGS_VIEW = \"PLATFORM_MANAGEMENT.SETTINGS.VIEW\",\r\n PLATFORM_MANAGEMENT_SETTINGS_MANAGE = \"PLATFORM_MANAGEMENT.SETTINGS.MANAGE\",\r\n PLATFORM_MANAGEMENT_TENANTS_VIEW = \"PLATFORM_MANAGEMENT.TENANTS.VIEW\",\r\n PLATFORM_MANAGEMENT_TENANTS_MANAGE = \"PLATFORM_MANAGEMENT.TENANTS.MANAGE\",\r\n\r\n // USER_MANAGEMENT\r\n USER_MANAGEMENT_USERS_VIEW = \"USER_MANAGEMENT.USERS.VIEW\",\r\n USER_MANAGEMENT_USERS_MANAGE = \"USER_MANAGEMENT.USERS.MANAGE\",\r\n USER_MANAGEMENT_USER_GROUPS_VIEW = \"USER_MANAGEMENT.USER_GROUPS.VIEW\",\r\n USER_MANAGEMENT_USER_GROUPS_MANAGE = \"USER_MANAGEMENT.USER_GROUPS.MANAGE\",\r\n USER_MANAGEMENT_GLOBAL_ROLES_MANAGE = \"USER_MANAGEMENT.GLOBAL_ROLES.MANAGE\",\r\n USER_MANAGEMENT_INVENTORY_ROLES_MANAGE = \"USER_MANAGEMENT.INVENTORY_ROLES.MANAGE\",\r\n\r\n // TENANT_CONFIGURATION\r\n TENANT_CONFIGURATION_READING_TYPE_MANAGEMENT_MANAGE = \"TENANT_CONFIGURATION.READING_TYPE_MANAGEMENT.MANAGE\",\r\n TENANT_CONFIGURATION_INTEGRATIONS_VIEW = \"TENANT_CONFIGURATION.INTEGRATIONS.VIEW\",\r\n TENANT_CONFIGURATION_INTEGRATIONS_MANAGE = \"TENANT_CONFIGURATION.INTEGRATIONS.MANAGE\",\r\n TENANT_CONFIGURATION_ACCESS_KEYS_VIEW = \"TENANT_CONFIGURATION.ACCESS_KEYS.VIEW\",\r\n TENANT_CONFIGURATION_ACCESS_KEYS_MANAGE = \"TENANT_CONFIGURATION.ACCESS_KEYS.MANAGE\",\r\n TENANT_CONFIGURATION_SETTINGS_MANAGE = \"TENANT_CONFIGURATION.SETTINGS.MANAGE\",\r\n\r\n // DEVICE_MANAGEMENT\r\n DEVICE_MANAGEMENT_DEVICE_GROUPS_VIEW = \"DEVICE_MANAGEMENT.DEVICE_GROUPS.VIEW\",\r\n DEVICE_MANAGEMENT_DEVICE_GROUPS_MANAGE = \"DEVICE_MANAGEMENT.DEVICE_GROUPS.MANAGE\",\r\n DEVICE_MANAGEMENT_DEVICE_GROUPS_ACCESS_VIEW = \"DEVICE_MANAGEMENT.DEVICE_GROUPS.ACCESS_VIEW\",\r\n DEVICE_MANAGEMENT_DEVICE_GROUPS_ACCESS_MANAGE = \"DEVICE_MANAGEMENT.DEVICE_GROUPS.ACCESS_MANAGE\",\r\n\r\n // DATA_MANAGEMENT\r\n DATA_MANAGEMENT_DATA_VIEW = \"DATA_MANAGEMENT.DATA.VIEW\",\r\n DATA_MANAGEMENT_DATA_MANAGE = \"DATA_MANAGEMENT.DATA.MANAGE\",\r\n DATA_MANAGEMENT_DATA_ACCESS_VIEW = \"DATA_MANAGEMENT.DATA.ACCESS_VIEW\",\r\n DATA_MANAGEMENT_DATA_ACCESS_MANAGE = \"DATA_MANAGEMENT.DATA.ACCESS_MANAGE\",\r\n DATA_MANAGEMENT_DATA_DASHBOARDS_VIEW = \"DATA_MANAGEMENT.DATA.DASHBOARDS_VIEW\",\r\n DATA_MANAGEMENT_DATA_DASHBOARDS_MANAGE = \"DATA_MANAGEMENT.DATA.DASHBOARDS_MANAGE\",\r\n\r\n DATA_MANAGEMENT_SEMANTIC_TYPES_VIEW = \"DATA_MANAGEMENT.SEMANTIC_TYPES.VIEW\",\r\n DATA_MANAGEMENT_SEMANTIC_TYPES_MANAGE = \"DATA_MANAGEMENT.SEMANTIC_TYPES.MANAGE\",\r\n DATA_MANAGEMENT_SEMANTIC_TYPES_ACCESS_VIEW = \"DATA_MANAGEMENT.SEMANTIC_TYPES.ACCESS_VIEW\",\r\n DATA_MANAGEMENT_SEMANTIC_TYPES_ACCESS_MANAGE = \"DATA_MANAGEMENT.SEMANTIC_TYPES.ACCESS_MANAGE\",\r\n\r\n // RULE_ENGINE\r\n RULE_ENGINE_RULE_VIEW = \"RULE_ENGINE.RULE.VIEW\",\r\n RULE_ENGINE_RULE_MANAGE = \"RULE_ENGINE.RULE.MANAGE\",\r\n\r\n // MESSAGES\r\n MESSAGES_TEMPLATES_VIEW = \"MESSAGES.TEMPLATES.VIEW\",\r\n MESSAGES_TEMPLATES_MANAGE = \"MESSAGES.TEMPLATES.MANAGE\"\r\n}\r\n\r\n","import { Observable } from 'rxjs';\r\nimport { Authentication } from '../model/authentication.model';\r\nimport { InjectionToken } from '@angular/core';\r\n\r\nexport const AUTHENTICATION_CLIENT = new InjectionToken<AuthenticationClient>('AUTHENTICATION_CLIENT');\r\n\r\nexport interface AuthenticationClient {\r\n refreshToken(token: string): Observable<Authentication>\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, catchError, EMPTY, filter, map, Observable, of, switchMap, tap } from \"rxjs\";\r\nimport { jwtDecode, JwtPayload } from \"jwt-decode\";\r\nimport { Authentication, Authority, User } from \"../model/authentication.model\";\r\nimport { AUTHENTICATION_CLIENT, AuthenticationClient } from './authentication-client';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthenticationService {\r\n\r\n private readonly authenticationClient: AuthenticationClient = inject(AUTHENTICATION_CLIENT);\r\n\r\n private readonly LSK_REFRESH_TOKEN = \"WA_REFRESH_TOKEN\";\r\n private readonly LSK_ACTIVE_TENANT = \"WA_ACTIVE_TENANT\";\r\n\r\n private _activeUser$ = new BehaviorSubject<User | null>(null);\r\n private _authorities$ = new BehaviorSubject<Authority[]>([]);\r\n private _selectedAuthority$ = new BehaviorSubject<Authority | null>(null);\r\n\r\n private refreshToken: string | null = null;\r\n private _authenticationTokens: Record<number, string> = {};\r\n\r\n constructor() {\r\n this.refreshToken = localStorage.getItem(this.LSK_REFRESH_TOKEN) ?? null;\r\n\r\n if (this.isValid(this.refreshToken)) {\r\n this.authenticationClient.refreshToken(this.refreshToken ?? '').pipe(\r\n catchError(() => {\r\n this.logout();\r\n return of(null);\r\n })\r\n ).subscribe((response) => {\r\n if (!response || !response.user) {\r\n this.logout();\r\n return;\r\n }\r\n\r\n this.initiateAuthenticatedState(response);\r\n })\r\n } else {\r\n this.logout();\r\n }\r\n }\r\n\r\n public setAuthentication(authentication: Authentication) {\r\n this.refreshToken = authentication.refreshToken;\r\n localStorage.setItem(this.LSK_REFRESH_TOKEN, this.refreshToken);\r\n\r\n this.initiateAuthenticatedState(authentication)\r\n }\r\n\r\n public updateUserName(firstName: string, lastName: string) {\r\n const currentUser = this._activeUser$.value;\r\n if (!currentUser) {\r\n return;\r\n }\r\n\r\n this._activeUser$.next({...currentUser, firstName: firstName, lastName: lastName})\r\n }\r\n\r\n private initiateAuthenticatedState(authentication: Authentication) {\r\n this._activeUser$.next(authentication.user);\r\n this._authorities$.next(authentication.authorities);\r\n\r\n const preselectedTenant = localStorage.getItem(this.LSK_ACTIVE_TENANT) ?? null;\r\n if (!preselectedTenant) {\r\n this._selectedAuthority$.next(this._authorities$.value[0]);\r\n } else {\r\n const selectedAuthority = this._authorities$.value.find((authority) => authority.contextId === Number(preselectedTenant));\r\n this._selectedAuthority$.next(selectedAuthority ?? this._authorities$.value[0]);\r\n }\r\n\r\n this._authenticationTokens = {};\r\n authentication.authorities.forEach((authority) => this._authenticationTokens[authority.contextId] = authority.accessToken)\r\n }\r\n\r\n public selectAuthority(authority: Authority) {\r\n localStorage.setItem(this.LSK_ACTIVE_TENANT, '' + authority.contextId);\r\n this._selectedAuthority$.next(authority);\r\n }\r\n\r\n public logout() {\r\n this.refreshToken = null;\r\n localStorage.removeItem(this.LSK_REFRESH_TOKEN);\r\n localStorage.removeItem(this.LSK_ACTIVE_TENANT);\r\n\r\n this._selectedAuthority$.next(null);\r\n this._authorities$.next([]);\r\n }\r\n\r\n public get accessToken(): Observable<string> {\r\n return this._selectedAuthority$.pipe(\r\n switchMap((authority) => {\r\n if (!authority) {\r\n return EMPTY;\r\n }\r\n\r\n const token = this._authenticationTokens[authority.contextId];\r\n if (this.isValid(token)) {\r\n return of(token);\r\n }\r\n\r\n if (!this.isValid(this.refreshToken)) {\r\n this.logout();\r\n return EMPTY;\r\n }\r\n\r\n return this.authenticationClient.refreshToken(this.refreshToken ?? '').pipe(\r\n catchError(() => {\r\n this.logout()\r\n return EMPTY;\r\n }),\r\n tap((response) => {\r\n this._authenticationTokens = {};\r\n response?.authorities.forEach((access) => this._authenticationTokens[access.contextId] = access.accessToken)\r\n }),\r\n switchMap(() => {\r\n return of(this._authenticationTokens[authority.contextId]);\r\n })\r\n )\r\n }),\r\n filter((token) => !!token)\r\n )\r\n }\r\n\r\n public get activeUser$(): Observable<User> {\r\n return this._activeUser$.pipe(\r\n filter((user) => !!user),\r\n map((user) => user as User)\r\n );\r\n }\r\n\r\n public get activeUser(): User | null {\r\n return this._activeUser$.value;\r\n }\r\n\r\n public get authorities$(): Observable<Authority[]> {\r\n return this._authorities$.asObservable();\r\n }\r\n\r\n public get activeAuthority(): Authority | null {\r\n return this._selectedAuthority$.value;\r\n }\r\n\r\n public get activeAuthority$(): Observable<Authority> {\r\n return this._selectedAuthority$.pipe(\r\n filter((authority) => !!authority),\r\n map((authority) => authority as Authority)\r\n );\r\n }\r\n\r\n public get unfilteredActiveAuthority$(): Observable<Authority | null> {\r\n return this._selectedAuthority$.pipe(\r\n map((authority) => authority)\r\n );\r\n }\r\n\r\n public isAuthenticated(): Observable<boolean> {\r\n return of(this.isValid(this.refreshToken))\r\n }\r\n\r\n private isValid(token: string | null | undefined): boolean {\r\n if (!token) {\r\n return false;\r\n }\r\n\r\n const payload = jwtDecode<JwtPayload>(token);\r\n return (payload.exp ?? 0) * 1000 >= new Date().valueOf();\r\n }\r\n\r\n public getClaim(token: string, claim: string): any {\r\n const payload: any = jwtDecode<JwtPayload>(token);\r\n return payload[claim];\r\n }\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, combineLatestWith, filter, map, Observable } from \"rxjs\";\r\nimport { AuthenticationService } from \"./authentication.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PermissionsService {\r\n\r\n readonly auth = inject(AuthenticationService);\r\n\r\n private _assetPermissions$ = new BehaviorSubject<string[] | null>(null);\r\n\r\n private _globalPermissions$ = this.auth.activeAuthority$.pipe(\r\n map((authority) => authority ? authority.permissions : [])\r\n )\r\n\r\n private _permissions$ = this._assetPermissions$.pipe(\r\n combineLatestWith(this._globalPermissions$),\r\n filter(([asset]) => asset !== null),\r\n map(([asset, global]) => Array.from(new Set([...global, ...(asset as string[])]))),\r\n )\r\n\r\n public setAssetPermissions(permissions: string[] | null) {\r\n this._assetPermissions$.next(permissions)\r\n }\r\n\r\n public hasAnyPermission(permissions: string[]): Observable<boolean> {\r\n return this._globalPermissions$.pipe(\r\n map((allPermissions) => !permissions.length || permissions.some((permission) => this.hasPermission(allPermissions, permission)))\r\n )\r\n }\r\n\r\n public hasAllPermissions(permissions: string[]): Observable<boolean> {\r\n return this._globalPermissions$.pipe(\r\n map((allPermissions) => !permissions.length || permissions.every((permission) => this.hasPermission(allPermissions, permission)))\r\n )\r\n }\r\n\r\n public hasAnyGlobalOrAssetPermission(permissions: string[]): Observable<boolean> {\r\n return this._permissions$.pipe(\r\n map((allPermissions) => !permissions.length || permissions.some((permission) => this.hasPermission(allPermissions, permission)))\r\n )\r\n }\r\n\r\n public hasAllGlobalOrAssetPermissions(permissions: string[]): Observable<boolean> {\r\n return this._permissions$.pipe(\r\n map((allPermissions) => !permissions.length || permissions.every((permission) => this.hasPermission(allPermissions, permission)))\r\n )\r\n }\r\n\r\n public hasAnyPermissionSync(allPermissions: string[], permissions: string[]): boolean {\r\n return !permissions.length || permissions.some((permission) => this.hasPermission(allPermissions, permission))\r\n }\r\n\r\n hasPermission(allPermissions: string[], permission?: string): boolean {\r\n if (!permission) {\r\n return true;\r\n }\r\n\r\n const moduleFeaturePermission = permission.split('.');\r\n const everythingInModule = moduleFeaturePermission[0] + '.*';\r\n const everythingInFeature = moduleFeaturePermission[0] + '.' + moduleFeaturePermission[1] + '.*';\r\n return allPermissions.some((grantedPermission) => grantedPermission === '*' || grantedPermission === everythingInModule || grantedPermission === everythingInFeature || grantedPermission === permission);\r\n }\r\n}\r\n","import { Permission } from \"../enum/permission.enum\";\r\nimport { CanActivateFn, Router, Routes } from \"@angular/router\";\r\nimport { inject } from \"@angular/core\";\r\nimport { map } from \"rxjs\";\r\nimport { PermissionsService } from \"../service/permissions.service\";\r\n\r\nexport const createGlobalPermissionsGuard = (availableRoutesGetter: () => Routes, fallbackRoute: string[], parentRoutes?: string[]) => {\r\n let checkedRoutes: string[] = [];\r\n\r\n const permissionsGuard = (permissions: Permission | Permission[]): CanActivateFn =>\r\n (route, state) => {\r\n const router = inject(Router);\r\n const permissionService = inject(PermissionsService);\r\n\r\n const permissionsToCheck = Array.isArray(permissions) ? permissions : [permissions];\r\n return permissionService.hasAnyPermission(permissionsToCheck).pipe(\r\n map((hasPermissions) => {\r\n\r\n if (hasPermissions) {\r\n checkedRoutes = [];\r\n return true;\r\n }\r\n\r\n const currentRoute = route.routeConfig?.path;\r\n\r\n if (!currentRoute) {\r\n checkedRoutes = [];\r\n return router.createUrlTree(fallbackRoute);\r\n }\r\n\r\n checkedRoutes.push(currentRoute);\r\n\r\n const availableRoutes = availableRoutesGetter()?.filter(route => route.path !== '**');\r\n\r\n const nextRoute = availableRoutes?.find((route) => route.path !== currentRoute && !checkedRoutes.includes(route.path as string));\r\n\r\n if (nextRoute) {\r\n return router.createUrlTree(parentRoutes ? [...parentRoutes, nextRoute.path] : [nextRoute.path])\r\n }\r\n\r\n checkedRoutes = [];\r\n return router.createUrlTree(fallbackRoute);\r\n })\r\n )\r\n };\r\n\r\n return permissionsGuard;\r\n};\r\n","import { inject, Injectable, Injector, runInInjectionContext } from '@angular/core';\r\nimport { BehaviorSubject, catchError, forkJoin, from, map, Observable, of } from 'rxjs';\r\nimport { SvgIcon } from '../component/+common/model/icon';\r\nimport { loadRemoteModule } from '@angular-architects/native-federation';\r\n\r\nexport interface Feature {\r\n name: string;\r\n icon: SvgIcon;\r\n order: number;\r\n entryRoute: string;\r\n translationPrefix: string;\r\n permission?: string | string[];\r\n primaryColor?: string;\r\n secondaryColor?: string;\r\n tertiaryColor?: string;\r\n init?: () => void;\r\n}\r\n\r\nexport interface ExternalFeature {\r\n remote: string;\r\n exposedModule: string;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FeatureRegistry {\r\n\r\n private readonly injector = inject(Injector);\r\n private readonly _features = new BehaviorSubject<Feature[]>([]);\r\n\r\n registerFeature(feature: Feature): void {\r\n runInInjectionContext(this.injector, () => feature.init?.());\r\n this._features.next([...this._features.value, feature]);\r\n }\r\n\r\n loadExternalFeatures(features: ExternalFeature[]): void {\r\n forkJoin(\r\n features.map(externalFeature =>\r\n from(loadRemoteModule(externalFeature.remote, externalFeature.exposedModule)).pipe(\r\n map(module => module.default as Feature),\r\n catchError(() => of(null))\r\n )\r\n )\r\n ).pipe(\r\n map(list => list.filter((x): x is Feature => x !== null))\r\n ).subscribe((externalFeatures: Feature[]) => {\r\n externalFeatures.forEach(feature => this.registerFeature(feature));\r\n })\r\n }\r\n\r\n get features(): Observable<Feature[]> {\r\n return this._features.pipe(\r\n map(features => [...features].sort((a, b) => a.order - b.order))\r\n )\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, distinctUntilChanged } from \"rxjs\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class MapsLoaderService {\r\n\r\n private readonly scriptSrc = 'https://maps.googleapis.com/maps/api/js?key=GOOGLE_MAPS_API_KEY&libraries=marker&callback=initMap';\r\n private readonly elementId = 'google-maps-script';\r\n\r\n readonly apiKey$ = new BehaviorSubject<string | null>(null);\r\n readonly mapsLoaded$ = new BehaviorSubject<boolean>(false);\r\n readonly mapError$ = new BehaviorSubject<string>('');\r\n\r\n constructor() {\r\n this.apiKey$.pipe(\r\n takeUntilDestroyed(),\r\n distinctUntilChanged((previous, current) => JSON.stringify(previous) === JSON.stringify(current))\r\n ).subscribe((apiKey) => {\r\n try {\r\n this.mapsLoaded$.next(false);\r\n this.mapError$.next('');\r\n\r\n const existingScript = document.getElementById(this.elementId);\r\n if (existingScript) {\r\n existingScript.remove();\r\n }\r\n\r\n if (!apiKey) {\r\n this.mapsLoaded$.next(false);\r\n this.mapError$.next('GOOGLE_MAPS_API_KEY_NOT_FOUND');\r\n return;\r\n }\r\n\r\n const scriptElement = document?.createElement('script');\r\n scriptElement.id = this.elementId;\r\n scriptElement.src = this.scriptSrc.replace('GOOGLE_MAPS_API_KEY', apiKey);\r\n scriptElement.async = true;\r\n scriptElement.defer = true;\r\n\r\n scriptElement.onerror = (event) => {\r\n this.mapsLoaded$.next(false);\r\n this.mapError$.next('GOOGLE_MAPS_API_KEY_LOADING_ERROR')\r\n }\r\n\r\n (window as any)['initMap'] = () => {\r\n this.mapsLoaded$.next(true);\r\n }\r\n\r\n document.head.appendChild(scriptElement);\r\n } catch (e) {\r\n this.mapsLoaded$.next(false)\r\n this.mapError$.next('GOOGLE_MAPS_API_KEY_LOADING_ERROR')\r\n }\r\n })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class NotificationService {\r\n\r\n constructor(private snackBar: MatSnackBar, private translationService: TranslateService) {\r\n }\r\n\r\n showInfo(message: string, duration = 2000) {\r\n this.showNotification('snackbar-info', this.translationService.instant(message), duration);\r\n }\r\n\r\n showSuccess(message: string, duration = 2000) {\r\n this.showNotification('snackbar-success', this.translationService.instant(message), duration);\r\n }\r\n\r\n showWarning(message: string, duration = 2000) {\r\n this.showNotification('snackbar-warning', this.translationService.instant(message), duration);\r\n }\r\n\r\n showError(message: string, messageParameters?: any, duration = 2000) {\r\n this.showNotification('snackbar-error', this.translationService.instant(message, messageParameters), duration);\r\n return of(null);\r\n }\r\n\r\n showGenericError(error?: any, duration = 3000) {\r\n const errorDetails = !error ? '' : ': ' + error.message;\r\n this.showNotification('snackbar-error', this.translationService.instant('COMMON.GENERIC_ERROR') + errorDetails, duration);\r\n return of(null);\r\n }\r\n\r\n private showNotification(panelClass: string, message: string, duration: number) {\r\n this.snackBar.open(message, '', {duration, panelClass});\r\n }\r\n}\r\n","export class Locale {\r\n name: string;\r\n language: string\r\n country: string\r\n code: string;\r\n countryLocaleCode; // TODO Find out the real name...\r\n\r\n constructor(language: string, country: string, name: string) {\r\n this.name = name;\r\n this.language = language;\r\n this.country = country;\r\n this.code = !this.country ? this.language : this.language + '-' + this.country\r\n this.countryLocaleCode = !this.country ? this.language : this.language + '_' + this.country\r\n }\r\n}\r\n\r\nexport const DEFAULT_LOCALE = new Locale(\"en\", \"GB\", \"English (United Kingdom)\");\r\n\r\nexport const LOCALES: Locale[] = [\r\n new Locale(\"af\", \"\", \"Afrikaans\"),\r\n new Locale(\"af\", \"NA\", \"Afrikaans (Namibia)\"),\r\n new Locale(\"af\", \"ZA\", \"Afrikaans (South Africa)\"),\r\n new Locale(\"agq\", \"\", \"Aghem\"),\r\n new Locale(\"agq\", \"CM\", \"Aghem (Cameroon)\"),\r\n new Locale(\"ak\", \"\", \"Akan\"),\r\n new Locale(\"ak\", \"GH\", \"Akan (Ghana)\"),\r\n new Locale(\"sq\", \"\", \"Albanian\"),\r\n new Locale(\"sq\", \"AL\", \"Albanian (Albania)\"),\r\n new Locale(\"sq\", \"XK\", \"Albanian (Kosovo)\"),\r\n new Locale(\"sq\", \"MK\", \"Albanian (North Macedonia)\"),\r\n new Locale(\"am\", \"\", \"Amharic\"),\r\n new Locale(\"am\", \"ET\", \"Amharic (Ethiopia)\"),\r\n new Locale(\"ar\", \"\", \"Arabic\"),\r\n new Locale(\"ar\", \"DZ\", \"Arabic (Algeria)\"),\r\n new Locale(\"ar\", \"BH\", \"Arabic (Bahrain)\"),\r\n new Locale(\"ar\", \"TD\", \"Arabic (Chad)\"),\r\n new Locale(\"ar\", \"KM\", \"Arabic (Comoros)\"),\r\n new Locale(\"ar\", \"DJ\", \"Arabic (Djibouti)\"),\r\n new Locale(\"ar\", \"EG\", \"Arabic (Egypt)\"),\r\n new Locale(\"ar\", \"ER\", \"Arabic (Eritrea)\"),\r\n new Locale(\"ar\", \"IQ\", \"Arabic (Iraq)\"),\r\n new Locale(\"ar\", \"IL\", \"Arabic (Israel)\"),\r\n new Locale(\"ar\", \"JO\", \"Arabic (Jordan)\"),\r\n new Locale(\"ar\", \"KW\", \"Arabic (Kuwait)\"),\r\n new Locale(\"ar\", \"LB\", \"Arabic (Lebanon)\"),\r\n new Locale(\"ar\", \"LY\", \"Arabic (Libya)\"),\r\n new Locale(\"ar\", \"MR\", \"Arabic (Mauritania)\"),\r\n new Locale(\"ar\", \"MA\", \"Arabic (Morocco)\"),\r\n new Locale(\"ar\", \"OM\", \"Arabic (Oman)\"),\r\n new Locale(\"ar\", \"PS\", \"Arabic (Palestinian Territories)\"),\r\n new Locale(\"ar\", \"QA\", \"Arabic (Qatar)\"),\r\n new Locale(\"ar\", \"SA\", \"Arabic (Saudi Arabia)\"),\r\n new Locale(\"ar\", \"SO\", \"Arabic (Somalia)\"),\r\n new Locale(\"ar\", \"SS\", \"Arabic (South Sudan)\"),\r\n new Locale(\"ar\", \"SD\", \"Arabic (Sudan)\"),\r\n new Locale(\"ar\", \"SY\", \"Arabic (Syria)\"),\r\n new Locale(\"ar\", \"TN\", \"Arabic (Tunisia)\"),\r\n new Locale(\"ar\", \"AE\", \"Arabic (United Arab Emirates)\"),\r\n new Locale(\"ar\", \"EH\", \"Arabic (Western Sahara)\"),\r\n new Locale(\"ar\", \"YE\", \"Arabic (Yemen)\"),\r\n new Locale(\"ar\", \"001\", \"Arabic (world)\"),\r\n new Locale(\"hy\", \"\", \"Armenian\"),\r\n new Locale(\"hy\", \"AM\", \"Armenian (Armenia)\"),\r\n new Locale(\"as\", \"\", \"Assamese\"),\r\n new Locale(\"as\", \"IN\", \"Assamese (India)\"),\r\n new Locale(\"ast\", \"\", \"Asturian\"),\r\n new Locale(\"ast\", \"ES\", \"Asturian (Spain)\"),\r\n new Locale(\"asa\", \"\", \"Asu\"),\r\n new Locale(\"asa\", \"TZ\", \"Asu (Tanzania)\"),\r\n new Locale(\"az\", \"\", \"Azerbaijani\"),\r\n new Locale(\"az\", \"AZ\", \"Azerbaijani (Azerbaijan)\"),\r\n new Locale(\"ksf\", \"\", \"Bafia\"),\r\n new Locale(\"ksf\", \"CM\", \"Bafia (Cameroon)\"),\r\n new Locale(\"bm\", \"\", \"Bambara\"),\r\n new Locale(\"bm\", \"ML\", \"Bambara (Mali)\"),\r\n new Locale(\"bn\", \"\", \"Bangla\"),\r\n new Locale(\"bn\", \"BD\", \"Bangla (Bangladesh)\"),\r\n new Locale(\"bn\", \"IN\", \"Bangla (India)\"),\r\n new Locale(\"bas\", \"\", \"Basaa\"),\r\n new Locale(\"bas\", \"CM\", \"Basaa (Cameroon)\"),\r\n new Locale(\"eu\", \"\", \"Basque\"),\r\n new Locale(\"eu\", \"ES\", \"Basque (Spain)\"),\r\n new Locale(\"be\", \"\", \"Belarusian\"),\r\n new Locale(\"be\", \"BY\", \"Belarusian (Belarus)\"),\r\n new Locale(\"bem\", \"\", \"Bemba\"),\r\n new Locale(\"bem\", \"ZM\", \"Bemba (Zambia)\"),\r\n new Locale(\"bez\", \"\", \"Bena\"),\r\n new Locale(\"bez\", \"TZ\", \"Bena (Tanzania)\"),\r\n new Locale(\"bho\", \"\", \"Bhojpuri\"),\r\n new Locale(\"bho\", \"IN\", \"Bhojpuri (India)\"),\r\n new Locale(\"brx\", \"\", \"Bodo\"),\r\n new Locale(\"brx\", \"IN\", \"Bodo (India)\"),\r\n new Locale(\"bs\", \"\", \"Bosnian\"),\r\n new Locale(\"bs\", \"BA\", \"Bosnian (Bosnia & Herzegovina)\"),\r\n new Locale(\"br\", \"\", \"Breton\"),\r\n new Locale(\"br\", \"FR\", \"Breton (France)\"),\r\n new Locale(\"bg\", \"\", \"Bulgarian\"),\r\n new Locale(\"bg\", \"BG\", \"Bulgarian (Bulgaria)\"),\r\n new Locale(\"my\", \"\", \"Burmese\"),\r\n new Locale(\"my\", \"MM\", \"Burmese (Myanmar (Burma))\"),\r\n new Locale(\"yue\", \"\", \"Cantonese\"),\r\n new Locale(\"yue\", \"CN\", \"Cantonese (China)\"),\r\n new Locale(\"yue\", \"HK\", \"Cantonese (Hong Kong SAR China)\"),\r\n new Locale(\"ca\", \"\", \"Catalan\"),\r\n new Locale(\"ca\", \"AD\", \"Catalan (Andorra)\"),\r\n new Locale(\"ca\", \"FR\", \"Catalan (France)\"),\r\n new Locale(\"ca\", \"IT\", \"Catalan (Italy)\"),\r\n new Locale(\"ca\", \"ES\", \"Catalan (Spain)\"),\r\n new Locale(\"ceb\", \"\", \"Cebuano\"),\r\n new Locale(\"ceb\", \"PH\", \"Cebuano (Philippines)\"),\r\n new Locale(\"tzm\", \"\", \"Central Atlas Tamazight\"),\r\n new Locale(\"tzm\", \"MA\", \"Central Atlas Tamazight (Morocco)\"),\r\n new Locale(\"ckb\", \"\", \"Central Kurdish\"),\r\n new Locale(\"ckb\", \"IR\", \"Central Kurdish (Iran)\"),\r\n new Locale(\"ckb\", \"IQ\", \"Central Kurdish (Iraq)\"),\r\n new Locale(\"ccp\", \"\", \"Chakma\"),\r\n new Locale(\"ccp\", \"BD\", \"Chakma (Bangladesh)\"),\r\n new Locale(\"ccp\", \"IN\", \"Chakma (India)\"),\r\n new Locale(\"ce\", \"\", \"Chechen\"),\r\n new Locale(\"ce\", \"RU\", \"Chechen (Russia)\"),\r\n new Locale(\"chr\", \"\", \"Cherokee\"),\r\n new Locale(\"chr\", \"US\", \"Cherokee (United States)\"),\r\n new Locale(\"cgg\", \"\", \"Chiga\"),\r\n new Locale(\"cgg\", \"UG\", \"Chiga (Uganda)\"),\r\n new Locale(\"zh\", \"\", \"Chinese\"),\r\n new Locale(\"zh\", \"CN\", \"Chinese (China)\"),\r\n new Locale(\"zh\", \"HK\", \"Chinese (Hong Kong SAR China)\"),\r\n new Locale(\"zh\", \"MO\", \"Chinese (Macao SAR China)\"),\r\n new Locale(\"zh\", \"SG\", \"Chinese (Singapore)\"),\r\n new Locale(\"zh\", \"TW\", \"Chinese (Taiwan)\"),\r\n new Locale(\"cv\", \"\", \"Chuvash\"),\r\n new Locale(\"cv\", \"RU\", \"Chuvash (Russia)\"),\r\n new Locale(\"ksh\", \"\", \"Colognian\"),\r\n new Locale(\"ksh\", \"DE\", \"Colognian (Germany)\"),\r\n new Locale(\"kw\", \"\", \"Cornish\"),\r\n new Locale(\"kw\", \"GB\", \"Cornish (United Kingdom)\"),\r\n new Locale(\"hr\", \"\", \"Croatian\"),\r\n new Locale(\"hr\", \"BA\", \"Croatian (Bosnia & Herzegovina)\"),\r\n new Locale(\"hr\", \"HR\", \"Croatian (Croatia)\"),\r\n new Locale(\"cs\", \"\", \"Czech\"),\r\n new Locale(\"cs\", \"CZ\", \"Czech (Czechia)\"),\r\n new Locale(\"da\", \"\", \"Danish\"),\r\n new Locale(\"da\", \"DK\", \"Danish (Denmark)\"),\r\n new Locale(\"da\", \"GL\", \"Danish (Greenland)\"),\r\n new Locale(\"doi\", \"\", \"Dogri\"),\r\n new Locale(\"doi\", \"IN\", \"Dogri (India)\"),\r\n new Locale(\"dua\", \"\", \"Duala\"),\r\n new Locale(\"dua\", \"CM\", \"Duala (Cameroon)\"),\r\n new Locale(\"nl\", \"\", \"Dutch\"),\r\n new Locale(\"nl\", \"AW\", \"Dutch (Aruba)\"),\r\n new Locale(\"nl\", \"BE\", \"Dutch (Belgium)\"),\r\n new Locale(\"nl\", \"BQ\", \"Dutch (Caribbean Netherlands)\"),\r\n new Locale(\"nl\", \"CW\", \"Dutch (Curaçao)\"),\r\n new Locale(\"nl\", \"NL\", \"Dutch (Netherlands)\"),\r\n new Locale(\"nl\", \"SX\", \"Dutch (Sint Maarten)\"),\r\n new Locale(\"nl\", \"SR\", \"Dutch (Suriname)\"),\r\n new Locale(\"dz\", \"\", \"Dzongkha\"),\r\n new Locale(\"dz\", \"BT\", \"Dzongkha (Bhutan)\"),\r\n new Locale(\"ebu\", \"\", \"Embu\"),\r\n new Locale(\"ebu\", \"KE\", \"Embu (Kenya)\"),\r\n new Locale(\"en\", \"\", \"English\"),\r\n new Locale(\"en\", \"AS\", \"English (American Samoa)\"),\r\n new Locale(\"en\", \"AI\", \"English (Anguilla)\"),\r\n new Locale(\"en\", \"AG\", \"English (Antigua & Barbuda)\"),\r\n new Locale(\"en\", \"AU\", \"English (Australia)\"),\r\n new Locale(\"en\", \"AT\", \"English (Austria)\"),\r\n new Locale(\"en\", \"BS\", \"English (Bahamas)\"),\r\n new Locale(\"en\", \"BB\", \"English (Barbados)\"),\r\n new Locale(\"en\", \"BE\", \"English (Belgium)\"),\r\n new Locale(\"en\", \"BZ\", \"English (Belize)\"),\r\n new Locale(\"en\", \"BM\", \"English (Bermuda)\"),\r\n new Locale(\"en\", \"BW\", \"English (Botswana)\"),\r\n new Locale(\"en\", \"IO\", \"English (British Indian Ocean Territory)\"),\r\n new Locale(\"en\", \"VG\", \"English (British Virgin Islands)\"),\r\n new Locale(\"en\", \"BI\", \"English (Burundi)\"),\r\n new Locale(\"en\", \"CM\", \"English (Cameroon)\"),\r\n new Locale(\"en\", \"CA\", \"English (Canada)\"),\r\n new Locale(\"en\", \"KY\", \"English (Cayman Islands)\"),\r\n new Locale(\"en\", \"CX\", \"English (Christmas Island)\"),\r\n new Locale(\"en\", \"CC\", \"English (Cocos (Keeling) Islands)\"),\r\n new Locale(\"en\", \"CK\", \"English (Cook Islands)\"),\r\n new Locale(\"en\", \"CY\", \"English (Cyprus)\"),\r\n new Locale(\"en\", \"DK\", \"English (Denmark)\"),\r\n new Locale(\"en\", \"DG\", \"English (Diego Garcia)\"),\r\n new Locale(\"en\", \"DM\", \"English (Dominica)\"),\r\n new Locale(\"en\", \"ER\", \"English (Eritrea)\"),\r\n new Locale(\"en\", \"SZ\", \"English (Eswatini)\"),\r\n new Locale(\"en\", \"150\", \"English (Europe)\"),\r\n new Locale(\"en\", \"FK\", \"English (Falkland Islands)\"),\r\n new Locale(\"en\", \"FJ\", \"English (Fiji)\"),\r\n new Locale(\"en\", \"FI\", \"English (Finland)\"),\r\n new Locale(\"en\", \"GM\", \"English (Gambia)\"),\r\n new Locale(\"en\", \"DE\", \"English (Germany)\"),\r\n new Locale(\"en\", \"GH\", \"English (Ghana)\"),\r\n new Locale(\"en\", \"GI\", \"English (Gibraltar)\"),\r\n new Locale(\"en\", \"GD\", \"English (Grenada)\"),\r\n new Locale(\"en\", \"GU\", \"English (Guam)\"),\r\n new Locale(\"en\", \"GG\", \"English (Guernsey)\"),\r\n new Locale(\"en\", \"GY\", \"English (Guyana)\"),\r\n new Locale(\"en\", \"HK\", \"English (Hong Kong SAR China)\"),\r\n new Locale(\"en\", \"IN\", \"English (India)\"),\r\n new Locale(\"en\", \"IE\", \"English (Ireland)\"),\r\n new Locale(\"en\", \"IM\", \"English (Isle of Man)\"),\r\n new Locale(\"en\", \"IL\", \"English (Israel)\"),\r\n new Locale(\"en\", \"JM\", \"English (Jamaica)\"),\r\n new Locale(\"en\", \"JE\", \"English (Jersey)\"),\r\n new Locale(\"en\", \"KE\", \"English (Kenya)\"),\r\n new Locale(\"en\", \"KI\", \"English (Kiribati)\"),\r\n new Locale(\"en\", \"LS\", \"English (Lesotho)\"),\r\n new Locale(\"en\", \"LR\", \"English (Liberia)\"),\r\n new Locale(\"en\", \"MO\", \"English (Macao SAR China)\"),\r\n new Locale(\"en\", \"MG\", \"English (Madagascar)\"),\r\n new Locale(\"en\", \"MW\", \"English (Malawi)\"),\r\n new Locale(\"en\", \"MY\", \"English (Malaysia)\"),\r\n new Locale(\"en\", \"MV\", \"English (Maldives)\"),\r\n new Locale(\"en\", \"MT\", \"English (Malta)\"),\r\n new Locale(\"en\", \"MH\", \"English (Marshall Islands)\"),\r\n new Locale(\"en\", \"MU\", \"English (Mauritius)\"),\r\n new Locale(\"en\", \"FM\", \"English (Micronesia)\"),\r\n new Locale(\"en\", \"MS\", \"English (Montserrat)\"),\r\n new Locale(\"en\", \"NA\", \"English (Namibia)\"),\r\n new Locale(\"en\", \"NR\", \"English (Nauru)\"),\r\n new Locale(\"en\", \"NL\", \"English (Netherlands)\"),\r\n new Locale(\"en\", \"NZ\", \"English (New Zealand)\"),\r\n new Locale(\"en\", \"NG\", \"English (Nigeria)\"),\r\n new Locale(\"en\", \"NU\", \"English (Niue)\"),\r\n new Locale(\"en\", \"NF\", \"English (Norfolk Island)\"),\r\n new Locale(\"en\", \"MP\", \"English (Northern Mariana Islands)\"),\r\n new Locale(\"en\", \"PK\", \"English (Pakistan)\"),\r\n new Locale(\"en\", \"PW\", \"English (Palau)\"),\r\n new Locale(\"en\", \"PG\", \"English (Papua New Guinea)\"),\r\n new Locale(\"en\", \"PH\", \"English (Philippines)\"),\r\n new Locale(\"en\", \"PN\", \"English (Pitcairn Islands)\"),\r\n new Locale(\"en\", \"PR\", \"English (Puerto Rico)\"),\r\n new Locale(\"en\", \"RW\", \"English (Rwanda)\"),\r\n new Locale(\"en\", \"WS\", \"English (Samoa)\"),\r\n new Locale(\"en\", \"SC\", \"English (Seychelles)\"),\r\n new Locale(\"en\", \"SL\", \"English (Sierra Leone)\"),\r\n new Locale(\"en\", \"SG\", \"English (Singapore)\"),\r\n new Locale(\"en\", \"SX\", \"English (Sint Maarten)\"),\r\n new Locale(\"en\", \"SI\", \"English (Slovenia)\"),\r\n new Locale(\"en\", \"SB\", \"English (Solomon Islands)\"),\r\n new Locale(\"en\", \"ZA\", \"English (South Africa)\"),\r\n new Locale(\"en\", \"SS\", \"English (South Sudan)\"),\r\n new Locale(\"en\", \"SH\", \"English (St. Helena)\"),\r\n new Locale(\"en\", \"KN\", \"English (St. Kitts & Nevis)\"),\r\n new Locale(\"en\", \"LC\", \"English (St. Lucia)\"),\r\n new Locale(\"en\", \"VC\", \"English (St. Vincent & Grenadines)\"),\r\n new Locale(\"en\", \"SD\", \"English (Sudan)\"),\r\n new Locale(\"en\", \"SE\", \"English (Sweden)\"),\r\n new Locale(\"en\", \"CH\", \"English (Switzerland)\"),\r\n new Locale(\"en\", \"TZ\", \"English (Tanzania)\"),\r\n new Locale(\"en\", \"TK\", \"English (Tokelau)\"),\r\n new Locale(\"en\", \"TO\", \"English (Tonga)\"),\r\n new Locale(\"en\", \"TT\", \"English (Trinidad & Tobago)\"),\r\n new Locale(\"en\", \"TC\", \"English (Turks & Caicos Islands)\"),\r\n new Locale(\"en\", \"TV\", \"English (Tuvalu)\"),\r\n new Locale(\"en\", \"UM\", \"English (U.S. Outlying Islands)\"),\r\n new Locale(\"en\", \"VI\", \"English (U.S. Virgin Islands)\"),\r\n new Locale(\"en\", \"UG\", \"English (Uganda)\"),\r\n new Locale(\"en\", \"AE\", \"English (United Arab Emirates)\"),\r\n new Locale(\"en\", \"GB\", \"English (United Kingdom)\"),\r\n new Locale(\"en\", \"US\", \"English (United States)\"),\r\n new Locale(\"en\", \"VU\", \"English (Vanuatu)\"),\r\n new Locale(\"en\", \"ZM\", \"English (Zambia)\"),\r\n new Locale(\"en\", \"ZW\", \"English (Zimbabwe)\"),\r\n new Locale(\"en\", \"001\", \"English (world)\"),\r\n new Locale(\"eo\", \"\", \"Esperanto\"),\r\n new Locale(\"eo\", \"001\", \"Esperanto (world)\"),\r\n new Locale(\"et\", \"\", \"Estonian\"),\r\n new Locale(\"et\", \"EE\", \"Estonian (Estonia)\"),\r\n new Locale(\"ee\", \"\", \"Ewe\"),\r\n new Locale(\"ee\", \"GH\", \"Ewe (Ghana)\"),\r\n new Locale(\"ee\", \"TG\", \"Ewe (Togo)\"),\r\n new Locale(\"ewo\", \"\", \"Ewondo\"),\r\n new Locale(\"ewo\", \"CM\", \"Ewondo (Cameroon)\"),\r\n new Locale(\"fo\", \"\", \"Faroese\"),\r\n new Locale(\"fo\", \"DK\", \"Faroese (Denmark)\"),\r\n new Locale(\"fo\", \"FO\", \"Faroese (Faroe Islands)\"),\r\n new Locale(\"fil\", \"\", \"Filipino\"),\r\n new Locale(\"fil\", \"PH\", \"Filipino (Philippines)\"),\r\n new Locale(\"fi\", \"\", \"Finnish\"),\r\n new Locale(\"fi\", \"FI\", \"Finnish (Finland)\"),\r\n new Locale(\"fr\", \"\", \"French\"),\r\n new Locale(\"fr\", \"DZ\", \"French (Algeria)\"),\r\n new Locale(\"fr\", \"BE\", \"French (Belgium)\"),\r\n new Locale(\"fr\", \"BJ\", \"French (Benin)\"),\r\n new Locale(\"fr\", \"BF\", \"French (Burkina Faso)\"),\r\n new Locale(\"fr\", \"BI\", \"French (Burundi)\"),\r\n new Locale(\"fr\", \"CM\", \"French (Cameroon)\"),\r\n new Locale(\"fr\", \"CA\", \"French (Canada)\"),\r\n new Locale(\"fr\", \"CF\", \"French (Central African Republic)\"),\r\n new Locale(\"fr\", \"TD\", \"French (Chad)\"),\r\n new Locale(\"fr\", \"KM\", \"French (Comoros)\"),\r\n new Locale(\"fr\", \"CG\", \"French (Congo - Brazzaville)\"),\r\n new Locale(\"fr\", \"CD\", \"French (Congo - Kinshasa)\"),\r\n new Locale(\"fr\", \"CI\", \"French (Côte d’Ivoire)\"),\r\n new Locale(\"fr\", \"DJ\", \"French (Djibouti)\"),\r\n new Locale(\"fr\", \"GQ\", \"French (Equatorial Guinea)\"),\r\n new Locale(\"fr\", \"FR\", \"French (France)\"),\r\n new Locale(\"fr\", \"GF\", \"French (French Guiana)\"),\r\n new Locale(\"fr\", \"PF\", \"French (French Polynesia)\"),\r\n new Locale(\"fr\", \"GA\", \"French (Gabon)\"),\r\n new Locale(\"fr\", \"GP\", \"French (Guadeloupe)\"),\r\n new Locale(\"fr\", \"GN\", \"French (Guinea)\"),\r\n new Locale(\"fr\", \"HT\", \"French (Haiti)\"),\r\n new Locale(\"fr\", \"LU\", \"French (Luxembourg)\"),\r\n new Locale(\"fr\", \"MG\", \"French (Madagascar)\"),\r\n new Locale(\"fr\", \"ML\", \"French (Mali)\"),\r\n new Locale(\"fr\", \"MQ\", \"French (Martinique)\"),\r\n new Locale(\"fr\", \"MR\", \"French (Mauritania)\"),\r\n new Locale(\"fr\", \"MU\", \"French (Mauritius)\"),\r\n new Locale(\"fr\", \"YT\", \"French (Mayotte)\"),\r\n new Locale(\"fr\", \"MC\", \"French (Monaco)\"),\r\n new Locale(\"fr\", \"MA\", \"French (Morocco)\"),\r\n new Locale(\"fr\", \"NC\", \"French (New Caledonia)\"),\r\n new Locale(\"fr\", \"NE\", \"French (Niger)\"),\r\n new Locale(\"fr\", \"RW\", \"French (Rwanda)\"),\r\n new Locale(\"fr\", \"RE\", \"French (Réunion)\"),\r\n new Locale(\"fr\", \"SN\", \"French (Senegal)\"),\r\n new Locale(\"fr\", \"SC\", \"French (Seychelles)\"),\r\n new Locale(\"fr\", \"BL\", \"French (St. Barthélemy)\"),\r\n new Locale(\"fr\", \"MF\", \"French (St. Martin)\"),\r\n new Locale(\"fr\", \"PM\", \"French (St. Pierre & Miquelon)\"),\r\n new Locale(\"fr\", \"CH\", \"French (Switzerland)\"),\r\n new Locale(\"fr\", \"SY\", \"French (Syria)\"),\r\n new Locale(\"fr\", \"TG\", \"French (Togo)\"),\r\n new Locale(\"fr\", \"TN\", \"French (Tunisia)\"),\r\n new Locale(\"fr\", \"VU\", \"French (Vanuatu)\"),\r\n new Locale(\"fr\", \"WF\", \"French (Wallis & Futuna)\"),\r\n new Locale(\"fur\", \"\", \"Friulian\"),\r\n new Locale(\"fur\", \"IT\", \"Friulian (Italy)\"),\r\n new Locale(\"ff\", \"\", \"Fula\"),\r\n new Locale(\"ff\", \"BF\", \"Fula (Adlam, Burkina Faso)\"),\r\n new Locale(\"ff\", \"CM\", \"Fula (Adlam, Cameroon)\"),\r\n new Locale(\"ff\", \"GM\", \"Fula (Adlam, Gambia)\"),\r\n new Locale(\"ff\", \"GH\", \"Fula (Adlam, Ghana)\"),\r\n new Locale(\"ff\", \"GW\", \"Fula (Adlam, Guinea-Bissau)\"),\r\n new Locale(\"ff\", \"LR\", \"Fula (Adlam, Liberia)\"),\r\n new Locale(\"ff\", \"MR\", \"Fula (Adlam, Mauritania)\"),\r\n new Locale(\"ff\", \"NE\", \"Fula (Adlam, Niger)\"),\r\n new Locale(\"ff\", \"NG\", \"Fula (Adlam, Nigeria)\"),\r\n new Locale(\"ff\", \"SL\", \"Fula (Adlam, Sierra Leone)\"),\r\n new Locale(\"ff\", \"GN\", \"Fula (Guinea)\"),\r\n new Locale(\"ff\", \"SN\", \"Fula (Senegal)\"),\r\n new Locale(\"gl\", \"\", \"Galician\"),\r\n new Locale(\"gl\", \"ES\", \"Galician (Spain)\"),\r\n new Locale(\"lg\", \"\", \"Ganda\"),\r\n new Locale(\"lg\", \"UG\", \"Ganda (Uganda)\"),\r\n new Locale(\"ka\", \"\", \"Georgian\"),\r\n new Locale(\"ka\", \"GE\", \"Georgian (Georgia)\"),\r\n new Locale(\"de\", \"\", \"German\"),\r\n new Locale(\"de\", \"AT\", \"German (Austria)\"),\r\n new Locale(\"de\", \"BE\", \"German (Belgium)\"),\r\n new Locale(\"de\", \"DE\", \"German (Germany)\"),\r\n new Locale(\"de\", \"IT\", \"German (Italy)\"),\r\n new Locale(\"de\", \"LI\", \"German (Liechtenstein)\"),\r\n new Locale(\"de\", \"LU\", \"German (Luxembourg)\"),\r\n new Locale(\"de\", \"CH\", \"German (Switzerland)\"),\r\n new Locale(\"el\", \"\", \"Greek\"),\r\n new Locale(\"el\", \"CY\", \"Greek (Cyprus)\"),\r\n new Locale(\"el\", \"GR\", \"Greek (Greece)\"),\r\n new Locale(\"gu\", \"\", \"Gujarati\"),\r\n new Locale(\"gu\", \"IN\", \"Gujarati (India)\"),\r\n new Locale(\"guz\", \"\", \"Gusii\"),\r\n new Locale(\"guz\", \"KE\", \"Gusii (Kenya)\"),\r\n new Locale(\"bgc\", \"\", \"Haryanvi\"),\r\n new Locale(\"bgc\", \"IN\", \"Haryanvi (India)\"),\r\n new Locale(\"ha\", \"\", \"Hausa\"),\r\n new Locale(\"ha\", \"GH\", \"Hausa (Ghana)\"),\r\n new Locale(\"ha\", \"NE\", \"Hausa (Niger)\"),\r\n new Locale(\"ha\", \"NG\", \"Hausa (Nigeria)\"),\r\n new Locale(\"haw\", \"\", \"Hawaiian\"),\r\n new Locale(\"haw\", \"US\", \"Hawaiian (United States)\"),\r\n new Locale(\"he\", \"\", \"Hebrew\"),\r\n new Locale(\"he\", \"IL\", \"Hebrew (Israel)\"),\r\n new Locale(\"hi\", \"\", \"Hindi\"),\r\n new Locale(\"hi\", \"IN\", \"Hindi (India)\"),\r\n new Locale(\"hu\", \"\", \"Hungarian\"),\r\n new Locale(\"hu\", \"HU\", \"Hungarian (Hungary)\"),\r\n new Locale(\"is\", \"\", \"Icelandic\"),\r\n new Locale(\"is\", \"IS\", \"Icelandic (Iceland)\"),\r\n new Locale(\"ig\", \"\", \"Igbo\"),\r\n new Locale(\"ig\", \"NG\", \"Igbo (Nigeria)\"),\r\n new Locale(\"smn\", \"\", \"Inari Sami\"),\r\n new Locale(\"smn\", \"FI\", \"Inari Sami (Finland)\"),\r\n new Locale(\"id\", \"\", \"Indonesian\"),\r\n new Locale(\"id\", \"ID\", \"Indonesian (Indonesia)\"),\r\n new Locale(\"ia\", \"\", \"Interlingua\"),\r\n new Locale(\"ia\", \"001\", \"Interlingua (world)\"),\r\n new Locale(\"ga\", \"\", \"Irish\"),\r\n new Locale(\"ga\", \"IE\", \"Irish (Ireland)\"),\r\n new Locale(\"ga\", \"GB\", \"Irish (United Kingdom)\"),\r\n new Locale(\"it\", \"\", \"Italian\"),\r\n new Locale(\"it\", \"IT\", \"Italian (Italy)\"),\r\n new Locale(\"it\", \"SM\", \"Italian (San Marino)\"),\r\n new Locale(\"it\", \"CH\", \"Italian (Switzerland)\"),\r\n new Locale(\"it\", \"VA\", \"Italian (Vatican City)\"),\r\n new Locale(\"ja\", \"\", \"Japanese\"),\r\n new Locale(\"ja\", \"JP\", \"Japanese (Japan)\"),\r\n new Locale(\"jv\", \"\", \"Javanese\"),\r\n new Locale(\"jv\", \"ID\", \"Javanese (Indonesia)\"),\r\n new Locale(\"dyo\", \"\", \"Jola-Fonyi\"),\r\n new Locale(\"dyo\", \"SN\", \"Jola-Fonyi (Senegal)\"),\r\n new Locale(\"kea\", \"\", \"Kabuverdianu\"),\r\n new Locale(\"kea\", \"CV\", \"Kabuverdianu (Cape Verde)\"),\r\n new Locale(\"kab\", \"\", \"Kabyle\"),\r\n new Locale(\"kab\", \"DZ\", \"Kabyle (Algeria)\"),\r\n new Locale(\"kgp\", \"\", \"Kaingang\"),\r\n new Locale(\"kgp\", \"BR\", \"Kaingang (Brazil)\"),\r\n new Locale(\"kkj\", \"\", \"Kako\"),\r\n new Locale(\"kkj\", \"CM\", \"Kako (Cameroon)\"),\r\n new Locale(\"kl\", \"\", \"Kalaallisut\"),\r\n new Locale(\"kl\", \"GL\", \"Kalaallisut (Greenland)\"),\r\n new Locale(\"kln\", \"\", \"Kalenjin\"),\r\n new Locale(\"kln\", \"KE\", \"Kalenjin (Kenya)\"),\r\n new Locale(\"kam\", \"\", \"Kamba\"),\r\n new Locale(\"kam\", \"KE\", \"Kamba (Kenya)\"),\r\n new Locale(\"kn\", \"\", \"Kannada\"),\r\n new Locale(\"kn\", \"IN\", \"Kannada (India)\"),\r\n new Locale(\"ks\", \"\", \"Kashmiri\"),\r\n new Locale(\"ks\", \"IN\", \"Kashmiri (India)\"),\r\n new Locale(\"kk\", \"\", \"Kazakh\"),\r\n new Locale(\"kk\", \"KZ\", \"Kazakh (Kazakhstan)\"),\r\n new Locale(\"km\", \"\", \"Khmer\"),\r\n new Locale(\"km\", \"KH\", \"Khmer (Cambodia)\"),\r\n new Locale(\"ki\", \"\", \"Kikuyu\"),\r\n new Locale(\"ki\", \"KE\", \"Kikuyu (Kenya)\"),\r\n new Locale(\"rw\", \"\", \"Kinyarwanda\"),\r\n new Locale(\"rw\", \"RW\", \"Kinyarwanda (Rwanda)\"),\r\n new Locale(\"kok\", \"\", \"Konkani\"),\r\n new Locale(\"kok\", \"IN\", \"Konkani (India)\"),\r\n new Locale(\"ko\", \"\", \"Korean\"),\r\n new Locale(\"ko\", \"KP\", \"Korean (North Korea)\"),\r\n new Locale(\"ko\", \"KR\", \"Korean (South Korea)\"),\r\n new Locale(\"khq\", \"\", \"Koyra Chiini\"),\r\n new Locale(\"khq\", \"ML\", \"Koyra Chiini (Mali)\"),\r\n new Locale(\"ses\", \"\", \"Koyraboro Senni\"),\r\n new Locale(\"ses\", \"ML\", \"Koyraboro Senni (Mali)\"),\r\n new Locale(\"ku\", \"\", \"Kurdish\"),\r\n new Locale(\"ku\", \"TR\", \"Kurdish (Türkiye)\"),\r\n new Locale(\"nmg\", \"\", \"Kwasio\"),\r\n new Locale(\"nmg\", \"CM\", \"Kwasio (Cameroon)\"),\r\n new Locale(\"ky\", \"\", \"Kyrgyz\"),\r\n new Locale(\"ky\", \"KG\", \"Kyrgyz (Kyrgyzstan)\"),\r\n new Locale(\"lkt\", \"\", \"Lakota\"),\r\n new Locale(\"lkt\", \"US\", \"Lakota (United States)\"),\r\n new Locale(\"lag\", \"\", \"Langi\"),\r\n new Locale(\"lag\", \"TZ\", \"Langi (Tanzania)\"),\r\n new Locale(\"lo\", \"\", \"Lao\"),\r\n new Locale(\"lo\", \"LA\", \"Lao (Laos)\"),\r\n new Locale(\"lv\", \"\", \"Latvian\"),\r\n new Locale(\"lv\", \"LV\", \"Latvian (Latvia)\"),\r\n new Locale(\"ln\", \"\", \"Lingala\"),\r\n new Locale(\"ln\", \"AO\", \"Lingala (Angola)\"),\r\n new Locale(\"ln\", \"CF\", \"Lingala (Central African Republic)\"),\r\n new Locale(\"ln\", \"CG\", \"Lingala (Congo - Brazzaville)\"),\r\n new Locale(\"ln\", \"CD\", \"Lingala (Congo - Kinshasa)\"),\r\n new Locale(\"lt\", \"\", \"Lithuanian\"),\r\n new Locale(\"lt\", \"LT\", \"Lithuanian (Lithuania)\"),\r\n new Locale(\"nds\", \"\", \"Low German\"),\r\n new Locale(\"nds\", \"DE\", \"Low German (Germany)\"),\r\n new Locale(\"nds\", \"NL\", \"Low German (Netherlands)\"),\r\n new Locale(\"dsb\", \"\", \"Lower Sorbian\"),\r\n new Locale(\"dsb\", \"DE\", \"Lower Sorbian (Germany)\"),\r\n new Locale(\"lu\", \"\", \"Luba-Katanga\"),\r\n new Locale(\"lu\", \"CD\", \"Luba-Katanga (Congo - Kinshasa)\"),\r\n new Locale(\"luo\", \"\", \"Luo\"),\r\n new Locale(\"luo\", \"KE\", \"Luo (Kenya)\"),\r\n new Locale(\"lb\", \"\", \"Luxembourgish\"),\r\n new Locale(\"lb\", \"LU\", \"Luxembourgish (Luxembourg)\"),\r\n new Locale(\"luy\", \"\", \"Luyia\"),\r\n new Locale(\"luy\", \"KE\", \"Luyia (Kenya)\"),\r\n new Locale(\"mk\", \"\", \"Macedonian\"),\r\n new Locale(\"mk\", \"MK\", \"Macedonian (North Macedonia)\"),\r\n new Locale(\"jmc\", \"\", \"Machame\"),\r\n new Locale(\"jmc\", \"TZ\", \"Machame (Tanzania)\"),\r\n new Locale(\"mai\", \"\", \"Maithili\"),\r\n new Locale(\"mai\", \"IN\", \"Maithili (India)\"),\r\n new Locale(\"mgh\", \"\", \"Makhuwa-Meetto\"),\r\n new Locale(\"mgh\", \"MZ\", \"Makhuwa-Meetto (Mozambique)\"),\r\n new Locale(\"kde\", \"\", \"Makonde\"),\r\n new Locale(\"kde\", \"TZ\", \"Makonde (Tanzania)\"),\r\n new Locale(\"mg\", \"\", \"Malagasy\"),\r\n new Locale(\"mg\", \"MG\", \"Malagasy (Madagascar)\"),\r\n new Locale(\"ms\", \"\", \"Malay\"),\r\n new Locale(\"ms\", \"BN\", \"Malay (Brunei)\"),\r\n new Locale(\"ms\", \"ID\", \"Malay (Indonesia)\"),\r\n new Locale(\"ms\", \"MY\", \"Malay (Malaysia)\"),\r\n new Locale(\"ms\", \"SG\", \"Malay (Singapore)\"),\r\n new Locale(\"ml\", \"\", \"Malayalam\"),\r\n new Locale(\"ml\", \"IN\", \"Malayalam (India)\"),\r\n new Locale(\"mt\", \"\", \"Maltese\"),\r\n new Locale(\"mt\", \"MT\", \"Maltese (Malta)\"),\r\n new Locale(\"mni\", \"\", \"Manipuri\"),\r\n new Locale(\"mni\", \"IN\", \"Manipuri (India)\"),\r\n new Locale(\"gv\", \"\", \"Manx\"),\r\n new Locale(\"gv\", \"IM\", \"Manx (Isle of Man)\"),\r\n new Locale(\"mr\", \"\", \"Marathi\"),\r\n new Locale(\"mr\", \"IN\", \"Marathi (India)\"),\r\n new Locale(\"mas\", \"\", \"Masai\"),\r\n new Locale(\"mas\", \"KE\", \"Masai (Kenya)\"),\r\n new Locale(\"mas\", \"TZ\", \"Masai (Tanzania)\"),\r\n new Locale(\"mzn\", \"\", \"Mazanderani\"),\r\n new Locale(\"mzn\", \"IR\", \"Mazanderani (Iran)\"),\r\n new Locale(\"mer\", \"\", \"Meru\"),\r\n new Locale(\"mer\", \"KE\", \"Meru (Kenya)\"),\r\n new Locale(\"mgo\", \"\", \"Metaʼ\"),\r\n new Locale(\"mgo\", \"CM\", \"Metaʼ (Cameroon)\"),\r\n new Locale(\"mdf\", \"\", \"Moksha\"),\r\n new Locale(\"mdf\", \"RU\", \"Moksha (Russia)\"),\r\n new Locale(\"mn\", \"\", \"Mongolian\"),\r\n new Locale(\"mn\", \"MN\", \"Mongolian (Mongolia)\"),\r\n new Locale(\"mfe\", \"\", \"Morisyen\"),\r\n new Locale(\"mfe\", \"MU\", \"Morisyen (Mauritius)\"),\r\n new Locale(\"mua\", \"\", \"Mundang\"),\r\n new Locale(\"mua\", \"CM\", \"Mundang (Cameroon)\"),\r\n new Locale(\"mi\", \"\", \"Māori\"),\r\n new Locale(\"mi\", \"NZ\", \"Māori (New Zealand)\"),\r\n new Locale(\"naq\", \"\", \"Nama\"),\r\n new Locale(\"naq\", \"NA\", \"Nama (Namibia)\"),\r\n new Locale(\"ne\", \"\", \"Nepali\"),\r\n new Locale(\"ne\", \"IN\", \"Nepali (India)\"),\r\n new Locale(\"ne\", \"NP\", \"Nepali (Nepal)\"),\r\n new Locale(\"nnh\", \"\", \"Ngiemboon\"),\r\n new Locale(\"nnh\", \"CM\", \"Ngiemboon (Cameroon)\"),\r\n new Locale(\"jgo\", \"\", \"Ngomba\"),\r\n new Locale(\"jgo\", \"CM\", \"Ngomba (Cameroon)\"),\r\n new Locale(\"yrl\", \"\", \"Nheengatu\"),\r\n new Locale(\"yrl\", \"BR\", \"Nheengatu (Brazil)\"),\r\n new Locale(\"yrl\", \"CO\", \"Nheengatu (Colombia)\"),\r\n new Locale(\"yrl\", \"VE\", \"Nheengatu (Venezuela)\"),\r\n new Locale(\"pcm\", \"\", \"Nigerian Pidgin\"),\r\n new Locale(\"pcm\", \"NG\", \"Nigerian Pidgin (Nigeria)\"),\r\n new Locale(\"nd\", \"\", \"North Ndebele\"),\r\n new Locale(\"nd\", \"ZW\", \"North Ndebele (Zimbabwe)\"),\r\n new Locale(\"frr\", \"\", \"Northern Frisian\"),\r\n new Locale(\"frr\", \"DE\", \"Northern Frisian (Germany)\"),\r\n new Locale(\"lrc\", \"\", \"Northern Luri\"),\r\n new Locale(\"lrc\", \"IR\", \"Northern Luri (Iran)\"),\r\n new Locale(\"lrc\", \"IQ\", \"Northern Luri (Iraq)\"),\r\n new Locale(\"se\", \"\", \"Northern Sami\"),\r\n new Locale(\"se\", \"FI\", \"Northern Sami (Finland)\"),\r\n new Locale(\"se\", \"NO\", \"Northern Sami (Norway)\"),\r\n new Locale(\"se\", \"SE\", \"Northern Sami (Sweden)\"),\r\n new Locale(\"no\", \"\", \"Norwegian\"),\r\n new Locale(\"no\", \"NO\", \"Norwegian (Norway)\"),\r\n new Locale(\"nb\", \"\", \"Norwegian Bokmål\"),\r\n new Locale(\"nb\", \"NO\", \"Norwegian Bokmål (Norway)\"),\r\n new Locale(\"nb\", \"SJ\", \"Norwegian Bokmål (Svalbard & Jan Mayen)\"),\r\n new Locale(\"nn\", \"\", \"Norwegian Nynorsk\"),\r\n new Locale(\"nn\", \"NO\", \"Norwegian Nynorsk (Norway)\"),\r\n new Locale(\"nus\", \"\", \"Nuer\"),\r\n new Locale(\"nus\", \"SS\", \"Nuer (South Sudan)\"),\r\n new Locale(\"nyn\", \"\", \"Nyankole\"),\r\n new Locale(\"nyn\", \"UG\", \"Nyankole (Uganda)\"),\r\n new Locale(\"ann\", \"\", \"Obolo\"),\r\n new Locale(\"ann\", \"NG\", \"Obolo (Nigeria)\"),\r\n new Locale(\"oc\", \"\", \"Occitan\"),\r\n new Locale(\"oc\", \"FR\", \"Occitan (France)\"),\r\n new Locale(\"oc\", \"ES\", \"Occitan (Spain)\"),\r\n new Locale(\"or\", \"\", \"Odia\"),\r\n new Locale(\"or\", \"IN\", \"Odia (India)\"),\r\n new Locale(\"om\", \"\", \"Oromo\"),\r\n new Locale(\"om\", \"ET\", \"Oromo (Ethiopia)\"),\r\n new Locale(\"om\", \"KE\", \"Oromo (Kenya)\"),\r\n new Locale(\"os\", \"\", \"Ossetic\"),\r\n new Locale(\"os\", \"GE\", \"Ossetic (Georgia)\"),\r\n new Locale(\"os\", \"RU\", \"Ossetic (Russia)\"),\r\n new Locale(\"ps\", \"\", \"Pashto\"),\r\n new Locale(\"ps\", \"AF\", \"Pashto (Afghanistan)\"),\r\n new Locale(\"ps\", \"PK\", \"Pashto (Pakistan)\"),\r\n new Locale(\"fa\", \"\", \"Persian\"),\r\n new Locale(\"fa\", \"AF\", \"Persian (Afghanistan)\"),\r\n new Locale(\"fa\", \"IR\", \"Persian (Iran)\"),\r\n new Locale(\"pis\", \"\", \"Pijin\"),\r\n new Locale(\"pis\", \"SB\", \"Pijin (Solomon Islands)\"),\r\n new Locale(\"pl\", \"\", \"Polish\"),\r\n new Locale(\"pl\", \"PL\", \"Polish (Poland)\"),\r\n new Locale(\"pt\", \"\", \"Portuguese\"),\r\n new Locale(\"pt\", \"AO\", \"Portuguese (Angola)\"),\r\n new Locale(\"pt\", \"BR\", \"Portuguese (Brazil)\"),\r\n new Locale(\"pt\", \"CV\", \"Portuguese (Cape Verde)\"),\r\n new Locale(\"pt\", \"GQ\", \"Portuguese (Equatorial Guinea)\"),\r\n new Locale(\"pt\", \"GW\", \"Portuguese (Guinea-Bissau)\"),\r\n new Locale(\"pt\", \"LU\", \"Portuguese (Luxembourg)\"),\r\n new Locale(\"pt\", \"MO\", \"Portuguese (Macao SAR China)\"),\r\n new Locale(\"pt\", \"MZ\", \"Portuguese (Mozambique)\"),\r\n new Locale(\"pt\", \"PT\", \"Portuguese (Portugal)\"),\r\n new Locale(\"pt\", \"CH\", \"Portuguese (Switzerland)\"),\r\n new Locale(\"pt\", \"ST\", \"Portuguese (São Tomé & Príncipe)\"),\r\n new Locale(\"pt\", \"TL\", \"Portuguese (Timor-Leste)\"),\r\n new Locale(\"pa\", \"\", \"Punjabi\"),\r\n new Locale(\"pa\", \"IN\", \"Punjabi (India)\"),\r\n new Locale(\"pa\", \"PK\", \"Punjabi (Pakistan)\"),\r\n new Locale(\"qu\", \"\", \"Quechua\"),\r\n new Locale(\"qu\", \"BO\", \"Quechua (Bolivia)\"),\r\n new Locale(\"qu\", \"EC\", \"Quechua (Ecuador)\"),\r\n new Locale(\"qu\", \"PE\", \"Quechua (Peru)\"),\r\n new Locale(\"raj\", \"\", \"Rajasthani\"),\r\n new Locale(\"raj\", \"IN\", \"Rajasthani (India)\"),\r\n new Locale(\"ro\", \"\", \"Romanian\"),\r\n new Locale(\"ro\", \"MD\", \"Romanian (Moldova)\"),\r\n new Locale(\"ro\", \"RO\", \"Romanian (Romania)\"),\r\n new Locale(\"rm\", \"\", \"Romansh\"),\r\n new Locale(\"rm\", \"CH\", \"Romansh (Switzerland)\"),\r\n new Locale(\"rof\", \"\", \"Rombo\"),\r\n new Locale(\"rof\", \"TZ\", \"Rombo (Tanzania)\"),\r\n new Locale(\"rn\", \"\", \"Rundi\"),\r\n new Locale(\"rn\", \"BI\", \"Rundi (Burundi)\"),\r\n new Locale(\"ru\", \"\", \"Russian\"),\r\n new Locale(\"ru\", \"BY\", \"Russian (Belarus)\"),\r\n new Locale(\"ru\", \"KZ\", \"Russian (Kazakhstan)\"),\r\n new Locale(\"ru\", \"KG\", \"Russian (Kyrgyzstan)\"),\r\n new Locale(\"ru\", \"MD\", \"Russian (Moldova)\"),\r\n new Locale(\"ru\", \"RU\", \"Russian (Russia)\"),\r\n new Locale(\"ru\", \"UA\", \"Russian (Ukraine)\"),\r\n new Locale(\"rwk\", \"\", \"Rwa\"),\r\n new Locale(\"rwk\", \"TZ\", \"Rwa (Tanzania)\"),\r\n new Locale(\"saq\", \"\", \"Samburu\"),\r\n new Locale(\"saq\", \"KE\", \"Samburu (Kenya)\"),\r\n new Locale(\"sg\", \"\", \"Sango\"),\r\n new Locale(\"sg\", \"CF\", \"Sango (Central African Republic)\"),\r\n new Locale(\"sbp\", \"\", \"Sangu\"),\r\n new Locale(\"sbp\", \"TZ\", \"Sangu (Tanzania)\"),\r\n new Locale(\"sa\", \"\", \"Sanskrit\"),\r\n new Locale(\"sa\", \"IN\", \"Sanskrit (India)\"),\r\n new Locale(\"sat\", \"\", \"Santali\"),\r\n new Locale(\"sat\", \"IN\", \"Santali (India)\"),\r\n new Locale(\"sc\", \"\", \"Sardinian\"),\r\n new Locale(\"sc\", \"IT\", \"Sardinian (Italy)\"),\r\n new Locale(\"gd\", \"\", \"Scottish Gaelic\"),\r\n new Locale(\"gd\", \"GB\", \"Scottish Gaelic (United Kingdom)\"),\r\n new Locale(\"seh\", \"\", \"Sena\"),\r\n new Locale(\"seh\", \"MZ\", \"Sena (Mozambique)\"),\r\n new Locale(\"sr\", \"\", \"Serbian\"),\r\n new Locale(\"sr\", \"BA\", \"Serbian (Bosnia & Herzegovina)\"),\r\n new Locale(\"sr\", \"XK\", \"Serbian (Latin, Kosovo)\"),\r\n new Locale(\"sr\", \"ME\", \"Serbian (Montenegro)\"),\r\n new Locale(\"sr\", \"CS\", \"Serbian (Serbia and Montenegro)\"),\r\n new Locale(\"sr\", \"RS\", \"Serbian (Serbia)\"),\r\n new Locale(\"ksb\", \"\", \"Shambala\"),\r\n new Locale(\"ksb\", \"TZ\", \"Shambala (Tanzania)\"),\r\n new Locale(\"sn\", \"\", \"Shona\"),\r\n new Locale(\"sn\", \"ZW\", \"Shona (Zimbabwe)\"),\r\n new Locale(\"ii\", \"\", \"Sichuan Yi\"),\r\n new Locale(\"ii\", \"CN\", \"Sichuan Yi (China)\"),\r\n new Locale(\"sd\", \"\", \"Sindhi\"),\r\n new Locale(\"sd\", \"IN\", \"Sindhi (India)\"),\r\n new Locale(\"sd\", \"PK\", \"Sindhi (Pakistan)\"),\r\n new Locale(\"si\", \"\", \"Sinhala\"),\r\n new Locale(\"si\", \"LK\", \"Sinhala (Sri Lanka)\"),\r\n new Locale(\"sms\", \"\", \"Skolt Sami\"),\r\n new Locale(\"sms\", \"FI\", \"Skolt Sami (Finland)\"),\r\n new Locale(\"sk\", \"\", \"Slovak\"),\r\n new Locale(\"sk\", \"SK\", \"Slovak (Slovakia)\"),\r\n new Locale(\"sl\", \"\", \"Slovenian\"),\r\n new Locale(\"sl\", \"SI\", \"Slovenian (Slovenia)\"),\r\n new Locale(\"xog\", \"\", \"Soga\"),\r\n new Locale(\"xog\", \"UG\", \"Soga (Uganda)\"),\r\n new Locale(\"so\", \"\", \"Somali\"),\r\n new Locale(\"so\", \"DJ\", \"Somali (Djibouti)\"),\r\n new Locale(\"so\", \"ET\", \"Somali (Ethiopia)\"),\r\n new Locale(\"so\", \"KE\", \"Somali (Kenya)\"),\r\n new Locale(\"so\", \"SO\", \"Somali (Somalia)\"),\r\n new Locale(\"es\", \"\", \"Spanish\"),\r\n new Locale(\"es\", \"AR\", \"Spanish (Argentina)\"),\r\n new Locale(\"es\", \"BZ\", \"Spanish (Belize)\"),\r\n new Locale(\"es\", \"BO\", \"Spanish (Bolivia)\"),\r\n new Locale(\"es\", \"BR\", \"Spanish (Brazil)\"),\r\n new Locale(\"es\", \"IC\", \"Spanish (Canary Islands)\"),\r\n new Locale(\"es\", \"EA\", \"Spanish (Ceuta & Melilla)\"),\r\n new Locale(\"es\", \"CL\", \"Spanish (Chile)\"),\r\n new Locale(\"es\", \"CO\", \"Spanish (Colombia)\"),\r\n new Locale(\"es\", \"CR\", \"Spanish (Costa Rica)\"),\r\n new Locale(\"es\", \"CU\", \"Spanish (Cuba)\"),\r\n new Locale(\"es\", \"DO\", \"Spanish (Dominican Republic)\"),\r\n new Locale(\"es\", \"EC\", \"Spanish (Ecuador)\"),\r\n new Locale(\"es\", \"SV\", \"Spanish (El Salvador)\"),\r\n new Locale(\"es\", \"GQ\", \"Spanish (Equatorial Guinea)\"),\r\n new Locale(\"es\", \"GT\", \"Spanish (Guatemala)\"),\r\n new Locale(\"es\", \"HN\", \"Spanish (Honduras)\"),\r\n new Locale(\"es\", \"419\", \"Spanish (Latin America)\"),\r\n new Locale(\"es\", \"MX\", \"Spanish (Mexico)\"),\r\n new Locale(\"es\", \"NI\", \"Spanish (Nicaragua)\"),\r\n new Locale(\"es\", \"PA\", \"Spanish (Panama)\"),\r\n new Locale(\"es\", \"PY\", \"Spanish (Paraguay)\"),\r\n new Locale(\"es\", \"PE\", \"Spanish (Peru)\"),\r\n new Locale(\"es\", \"PH\", \"Spanish (Philippines)\"),\r\n new Locale(\"es\", \"PR\", \"Spanish (Puerto Rico)\"),\r\n new Locale(\"es\", \"ES\", \"Spanish (Spain)\"),\r\n new Locale(\"es\", \"US\", \"Spanish (United States)\"),\r\n new Locale(\"es\", \"UY\", \"Spanish (Uruguay)\"),\r\n new Locale(\"es\", \"VE\", \"Spanish (Venezuela)\"),\r\n new Locale(\"zgh\", \"\", \"Standard Moroccan Tamazight\"),\r\n new Locale(\"zgh\", \"MA\", \"Standard Moroccan Tamazight (Morocco)\"),\r\n new Locale(\"su\", \"\", \"Sundanese\"),\r\n new Locale(\"su\", \"ID\", \"Sundanese (Indonesia)\"),\r\n new Locale(\"sw\", \"\", \"Swahili\"),\r\n new Locale(\"sw\", \"CD\", \"Swahili (Congo - Kinshasa)\"),\r\n new Locale(\"sw\", \"KE\", \"Swahili (Kenya)\"),\r\n new Locale(\"sw\", \"TZ\", \"Swahili (Tanzania)\"),\r\n new Locale(\"sw\", \"UG\", \"Swahili (Uganda)\"),\r\n new Locale(\"sv\", \"\", \"Swedish\"),\r\n new Locale(\"sv\", \"FI\", \"Swedish (Finland)\"),\r\n new Locale(\"sv\", \"SE\", \"Swedish (Sweden)\"),\r\n new Locale(\"sv\", \"AX\", \"Swedish (Åland Islands)\"),\r\n new Locale(\"gsw\", \"\", \"Swiss German\"),\r\n new Locale(\"gsw\", \"FR\", \"Swiss German (France)\"),\r\n new Locale(\"gsw\", \"LI\", \"Swiss German (Liechtenstein)\"),\r\n new Locale(\"gsw\", \"CH\", \"Swiss German (Switzerland)\"),\r\n new Locale(\"shi\", \"\", \"Tachelhit\"),\r\n new Locale(\"shi\", \"MA\", \"Tachelhit (Morocco)\"),\r\n new Locale(\"dav\", \"\", \"Taita\"),\r\n new Locale(\"dav\", \"KE\", \"Taita (Kenya)\"),\r\n new Locale(\"tg\", \"\", \"Tajik\"),\r\n new Locale(\"tg\", \"TJ\", \"Tajik (Tajikistan)\"),\r\n new Locale(\"ta\", \"\", \"Tamil\"),\r\n new Locale(\"ta\", \"IN\", \"Tamil (India)\"),\r\n new Locale(\"ta\", \"MY\", \"Tamil (Malaysia)\"),\r\n new Locale(\"ta\", \"SG\", \"Tamil (Singapore)\"),\r\n new Locale(\"ta\", \"LK\", \"Tamil (Sri Lanka)\"),\r\n new Locale(\"twq\", \"\", \"Tasawaq\"),\r\n new Locale(\"twq\", \"NE\", \"Tasawaq (Niger)\"),\r\n new Locale(\"tt\", \"\", \"Tatar\"),\r\n new Locale(\"tt\", \"RU\", \"Tatar (Russia)\"),\r\n new Locale(\"te\", \"\", \"Telugu\"),\r\n new Locale(\"te\", \"IN\", \"Telugu (India)\"),\r\n new Locale(\"teo\", \"\", \"Teso\"),\r\n new Locale(\"teo\", \"KE\", \"Teso (Kenya)\"),\r\n new Locale(\"teo\", \"UG\", \"Teso (Uganda)\"),\r\n new Locale(\"th\", \"\", \"Thai\"),\r\n new Locale(\"th\", \"TH\", \"Thai (Thailand)\"),\r\n new Locale(\"bo\", \"\", \"Tibetan\"),\r\n new Locale(\"bo\", \"CN\", \"Tibetan (China)\"),\r\n new Locale(\"bo\", \"IN\", \"Tibetan (India)\"),\r\n new Locale(\"ti\", \"\", \"Tigrinya\"),\r\n new Locale(\"ti\", \"ER\", \"Tigrinya (Eritrea)\"),\r\n new Locale(\"ti\", \"ET\", \"Tigrinya (Ethiopia)\"),\r\n new Locale(\"tok\", \"\", \"Toki Pona\"),\r\n new Locale(\"tok\", \"001\", \"Toki Pona (world)\"),\r\n new Locale(\"to\", \"\", \"Tongan\"),\r\n new Locale(\"to\", \"TO\", \"Tongan (Tonga)\"),\r\n new Locale(\"tr\", \"\", \"Turkish\"),\r\n new Locale(\"tr\", \"CY\", \"Turkish (Cyprus)\"),\r\n new Locale(\"tr\", \"TR\", \"Turkish (Türkiye)\"),\r\n new Locale(\"tk\", \"\", \"Turkmen\"),\r\n new Locale(\"tk\", \"TM\", \"Turkmen (Turkmenistan)\"),\r\n new Locale(\"uk\", \"\", \"Ukrainian\"),\r\n new Locale(\"uk\", \"UA\", \"Ukrainian (Ukraine)\"),\r\n new Locale(\"hsb\", \"\", \"Upper Sorbian\"),\r\n new Locale(\"hsb\", \"DE\", \"Upper Sorbian (Germany)\"),\r\n new Locale(\"ur\", \"\", \"Urdu\"),\r\n new Locale(\"ur\", \"IN\", \"Urdu (India)\"),\r\n new Locale(\"ur\", \"PK\", \"Urdu (Pakistan)\"),\r\n new Locale(\"ug\", \"\", \"Uyghur\"),\r\n new Locale(\"ug\", \"CN\", \"Uyghur (China)\"),\r\n new Locale(\"uz\", \"\", \"Uzbek\"),\r\n new Locale(\"uz\", \"AF\", \"Uzbek (Afghanistan)\"),\r\n new Locale(\"uz\", \"UZ\", \"Uzbek (Uzbekistan)\"),\r\n new Locale(\"vai\", \"\", \"Vai\"),\r\n new Locale(\"vai\", \"LR\", \"Vai (Liberia)\"),\r\n new Locale(\"vi\", \"\", \"Vietnamese\"),\r\n new Locale(\"vi\", \"VN\", \"Vietnamese (Vietnam)\"),\r\n new Locale(\"vun\", \"\", \"Vunjo\"),\r\n new Locale(\"vun\", \"TZ\", \"Vunjo (Tanzania)\"),\r\n new Locale(\"wae\", \"\", \"Walser\"),\r\n new Locale(\"wae\", \"CH\", \"Walser (Switzerland)\"),\r\n new Locale(\"cy\", \"\", \"Welsh\"),\r\n new Locale(\"cy\", \"GB\", \"Welsh (United Kingdom)\"),\r\n new Locale(\"fy\", \"\", \"Western Frisian\"),\r\n new Locale(\"fy\", \"NL\", \"Western Frisian (Netherlands)\"),\r\n new Locale(\"wo\", \"\", \"Wolof\"),\r\n new Locale(\"wo\", \"SN\", \"Wolof (Senegal)\"),\r\n new Locale(\"xh\", \"\", \"Xhosa\"),\r\n new Locale(\"xh\", \"ZA\", \"Xhosa (South Africa)\"),\r\n new Locale(\"sah\", \"\", \"Yakut\"),\r\n new Locale(\"sah\", \"RU\", \"Yakut (Russia)\"),\r\n new Locale(\"yav\", \"\", \"Yangben\"),\r\n new Locale(\"yav\", \"CM\", \"Yangben (Cameroon)\"),\r\n new Locale(\"yi\", \"\", \"Yiddish\"),\r\n new Locale(\"yi\", \"001\", \"Yiddish (world)\"),\r\n new Locale(\"yo\", \"\", \"Yoruba\"),\r\n new Locale(\"yo\", \"BJ\", \"Yoruba (Benin)\"),\r\n new Locale(\"yo\", \"NG\", \"Yoruba (Nigeria)\"),\r\n new Locale(\"dje\", \"\", \"Zarma\"),\r\n new Locale(\"dje\", \"NE\", \"Zarma (Niger)\"),\r\n new Locale(\"zu\", \"\", \"Zulu\"),\r\n new Locale(\"zu\", \"ZA\", \"Zulu (South Africa)\")\r\n]\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Locale, LOCALES } from \"../util/locale-util\";\r\nimport { DateAdapter } from \"@angular/material/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TenantPropertiesService {\r\n\r\n readonly dateAdapter = inject(DateAdapter<any>);\r\n\r\n locale: Locale = LOCALES.find((locale) => locale.code === 'en-GB') as Locale;\r\n timezone: string | null = null;\r\n\r\n setLocale(locale: Locale) {\r\n this.locale = locale;\r\n this.dateAdapter.setLocale(locale.code);\r\n }\r\n\r\n setTimeZone(timeZone: string) {\r\n this.timezone = timeZone;\r\n }\r\n}\r\n","import { ThemeOption } from \"ngx-echarts\";\r\n\r\nexport const COLORS = [\r\n \"#c1232b\",\r\n \"#27727b\",\r\n \"#fcce10\",\r\n \"#e87c25\",\r\n \"#b5c334\",\r\n \"#fe8463\",\r\n \"#9bca63\",\r\n \"#fad860\",\r\n \"#f3a43b\",\r\n \"#60c0dd\",\r\n \"#d7504b\",\r\n \"#c6e579\",\r\n \"#f4e001\",\r\n \"#f0805a\",\r\n \"#26c0c0\"\r\n];\r\n\r\nexport const chartThemeLight = {\r\n \"color\": COLORS,\r\n \"backgroundColor\": \"rgba(0,0,0,0)\",\r\n \"textStyle\": {},\r\n \"title\": {\r\n \"textStyle\": {\r\n \"color\": \"#27727b\"\r\n },\r\n \"subtextStyle\": {\r\n \"color\": \"#aaaaaa\"\r\n }\r\n },\r\n \"line\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"width\": \"3\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false\r\n },\r\n \"radar\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"width\": \"3\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false\r\n },\r\n \"bar\": {\r\n \"itemStyle\": {\r\n \"barBorderWidth\": 0,\r\n \"barBorderColor\": \"#ccc\"\r\n }\r\n },\r\n \"pie\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"scatter\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"boxplot\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"parallel\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"sankey\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"funnel\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"gauge\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"candlestick\": {\r\n \"itemStyle\": {\r\n \"color\": \"#c1232b\",\r\n \"color0\": \"#b5c334\",\r\n \"borderColor\": \"#c1232b\",\r\n \"borderColor0\": \"#b5c334\",\r\n \"borderWidth\": 1\r\n }\r\n },\r\n \"graph\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n },\r\n \"lineStyle\": {\r\n \"width\": 1,\r\n \"color\": \"#aaaaaa\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false,\r\n \"color\": [\r\n \"#c1232b\",\r\n \"#27727b\",\r\n \"#fcce10\",\r\n \"#e87c25\",\r\n \"#b5c334\",\r\n \"#fe8463\",\r\n \"#9bca63\",\r\n \"#fad860\",\r\n \"#f3a43b\",\r\n \"#60c0dd\",\r\n \"#d7504b\",\r\n \"#c6e579\",\r\n \"#f4e001\",\r\n \"#f0805a\",\r\n \"#26c0c0\"\r\n ],\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n }\r\n },\r\n \"map\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#dddddd\",\r\n \"borderColor\": \"#eeeeee\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#fe994e\",\r\n \"borderColor\": \"#444\",\r\n \"borderWidth\": 1\r\n },\r\n \"label\": {\r\n \"color\": \"rgb(100,0,0)\"\r\n }\r\n }\r\n },\r\n \"geo\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#dddddd\",\r\n \"borderColor\": \"#eeeeee\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#fe994e\",\r\n \"borderColor\": \"#444\",\r\n \"borderWidth\": 1\r\n },\r\n \"label\": {\r\n \"color\": \"rgb(100,0,0)\"\r\n }\r\n }\r\n },\r\n \"categoryAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#333\"\r\n },\r\n \"splitLine\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#ccc\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"valueAxis\": {\r\n \"axisLine\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": \"#333\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": \"#333\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#333\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#ccc\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"logAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#333\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#333\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#ccc\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"timeAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#333\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#333\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#ccc\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"toolbox\": {\r\n \"iconStyle\": {\r\n \"borderColor\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"iconStyle\": {\r\n \"borderColor\": \"#e87c25\"\r\n }\r\n }\r\n },\r\n \"legend\": {\r\n \"textStyle\": {\r\n \"color\": \"#333333\"\r\n }\r\n },\r\n \"tooltip\": {\r\n \"axisPointer\": {\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\",\r\n \"width\": 1\r\n },\r\n \"crossStyle\": {\r\n \"color\": \"#27727b\",\r\n \"width\": 1\r\n }\r\n }\r\n },\r\n \"timeline\": {\r\n \"lineStyle\": {\r\n \"color\": \"#293c55\",\r\n \"width\": 1\r\n },\r\n \"itemStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderWidth\": 1\r\n },\r\n \"controlStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderColor\": \"#27727b\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"checkpointStyle\": {\r\n \"color\": \"#c1232b\",\r\n \"borderColor\": \"#c23531\"\r\n },\r\n \"label\": {\r\n \"color\": \"#293c55\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"color\": \"#72d4e0\"\r\n },\r\n \"controlStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderColor\": \"#27727b\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#293c55\"\r\n }\r\n }\r\n },\r\n \"visualMap\": {\r\n \"color\": [\r\n \"#c1232b\",\r\n \"#fcce10\"\r\n ]\r\n },\r\n \"dataZoom\": {\r\n \"backgroundColor\": \"rgba(0,0,0,0)\",\r\n \"dataBackgroundColor\": \"rgba(181,195,52,0.3)\",\r\n \"fillerColor\": \"rgba(181,195,52,0.2)\",\r\n \"handleColor\": \"#27727b\",\r\n \"handleSize\": \"100%\",\r\n \"textStyle\": {\r\n \"color\": \"#999999\"\r\n }\r\n },\r\n \"markPoint\": {\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n },\r\n \"emphasis\": {\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n }\r\n }\r\n }\r\n} as ThemeOption;\r\n","import { ThemeOption } from \"ngx-echarts\";\r\n\r\nexport const chartThemeDark = {\r\n \"color\": [\r\n \"#c1232b\",\r\n \"#27727b\",\r\n \"#fcce10\",\r\n \"#e87c25\",\r\n \"#b5c334\",\r\n \"#fe8463\",\r\n \"#9bca63\",\r\n \"#fad860\",\r\n \"#f3a43b\",\r\n \"#60c0dd\",\r\n \"#d7504b\",\r\n \"#c6e579\",\r\n \"#f4e001\",\r\n \"#f0805a\",\r\n \"#26c0c0\"\r\n ],\r\n \"backgroundColor\": \"rgba(0,0,0,0)\",\r\n \"textStyle\": {},\r\n \"title\": {\r\n \"textStyle\": {\r\n \"color\": \"#27727b\"\r\n },\r\n \"subtextStyle\": {\r\n \"color\": \"#aaaaaa\"\r\n }\r\n },\r\n \"line\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"width\": \"3\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false\r\n },\r\n \"radar\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 1\r\n },\r\n \"lineStyle\": {\r\n \"width\": \"3\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false\r\n },\r\n \"bar\": {\r\n \"itemStyle\": {\r\n \"barBorderWidth\": 0,\r\n \"barBorderColor\": \"#ccc\"\r\n }\r\n },\r\n \"pie\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"scatter\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"boxplot\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"parallel\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"sankey\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"funnel\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"gauge\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n }\r\n },\r\n \"candlestick\": {\r\n \"itemStyle\": {\r\n \"color\": \"#c1232b\",\r\n \"color0\": \"#b5c334\",\r\n \"borderColor\": \"#c1232b\",\r\n \"borderColor0\": \"#b5c334\",\r\n \"borderWidth\": 1\r\n }\r\n },\r\n \"graph\": {\r\n \"itemStyle\": {\r\n \"borderWidth\": 0,\r\n \"borderColor\": \"#ccc\"\r\n },\r\n \"lineStyle\": {\r\n \"width\": 1,\r\n \"color\": \"#aaaaaa\"\r\n },\r\n \"symbolSize\": \"5\",\r\n \"symbol\": \"emptyCircle\",\r\n \"smooth\": false,\r\n \"color\": [\r\n \"#c1232b\",\r\n \"#27727b\",\r\n \"#fcce10\",\r\n \"#e87c25\",\r\n \"#b5c334\",\r\n \"#fe8463\",\r\n \"#9bca63\",\r\n \"#fad860\",\r\n \"#f3a43b\",\r\n \"#60c0dd\",\r\n \"#d7504b\",\r\n \"#c6e579\",\r\n \"#f4e001\",\r\n \"#f0805a\",\r\n \"#26c0c0\"\r\n ],\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n }\r\n },\r\n \"map\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#dddddd\",\r\n \"borderColor\": \"#eeeeee\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#fe994e\",\r\n \"borderColor\": \"#444\",\r\n \"borderWidth\": 1\r\n },\r\n \"label\": {\r\n \"color\": \"rgb(100,0,0)\"\r\n }\r\n }\r\n },\r\n \"geo\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#dddddd\",\r\n \"borderColor\": \"#eeeeee\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"areaColor\": \"#fe994e\",\r\n \"borderColor\": \"#444\",\r\n \"borderWidth\": 1\r\n },\r\n \"label\": {\r\n \"color\": \"rgb(100,0,0)\"\r\n }\r\n }\r\n },\r\n \"categoryAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#ccc\"\r\n },\r\n \"splitLine\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#ccc\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"valueAxis\": {\r\n \"axisLine\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": \"#ccc\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": false,\r\n \"lineStyle\": {\r\n \"color\": \"#ccc\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#ccc\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#333\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"logAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#ccc\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#ccc\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#333\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"timeAxis\": {\r\n \"axisLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\"\r\n }\r\n },\r\n \"axisTick\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": \"#ccc\"\r\n }\r\n },\r\n \"axisLabel\": {\r\n \"show\": true,\r\n \"color\": \"#ccc\"\r\n },\r\n \"splitLine\": {\r\n \"show\": true,\r\n \"lineStyle\": {\r\n \"color\": [\r\n \"#333\"\r\n ]\r\n }\r\n },\r\n \"splitArea\": {\r\n \"show\": false,\r\n \"areaStyle\": {\r\n \"color\": [\r\n \"rgba(250,250,250,0.3)\",\r\n \"rgba(200,200,200,0.3)\"\r\n ]\r\n }\r\n }\r\n },\r\n \"toolbox\": {\r\n \"iconStyle\": {\r\n \"borderColor\": \"#c1232b\"\r\n },\r\n \"emphasis\": {\r\n \"iconStyle\": {\r\n \"borderColor\": \"#e87c25\"\r\n }\r\n }\r\n },\r\n \"legend\": {\r\n \"textStyle\": {\r\n \"color\": \"#ccc\"\r\n }\r\n },\r\n \"tooltip\": {\r\n \"axisPointer\": {\r\n \"lineStyle\": {\r\n \"color\": \"#27727b\",\r\n \"width\": 1\r\n },\r\n \"crossStyle\": {\r\n \"color\": \"#27727b\",\r\n \"width\": 1\r\n }\r\n }\r\n },\r\n \"timeline\": {\r\n \"lineStyle\": {\r\n \"color\": \"#293c55\",\r\n \"width\": 1\r\n },\r\n \"itemStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderWidth\": 1\r\n },\r\n \"controlStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderColor\": \"#27727b\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"checkpointStyle\": {\r\n \"color\": \"#c1232b\",\r\n \"borderColor\": \"#c23531\"\r\n },\r\n \"label\": {\r\n \"color\": \"#293c55\"\r\n },\r\n \"emphasis\": {\r\n \"itemStyle\": {\r\n \"color\": \"#72d4e0\"\r\n },\r\n \"controlStyle\": {\r\n \"color\": \"#27727b\",\r\n \"borderColor\": \"#27727b\",\r\n \"borderWidth\": 0.5\r\n },\r\n \"label\": {\r\n \"color\": \"#293c55\"\r\n }\r\n }\r\n },\r\n \"visualMap\": {\r\n \"color\": [\r\n \"#c1232b\",\r\n \"#fcce10\"\r\n ]\r\n },\r\n \"dataZoom\": {\r\n \"backgroundColor\": \"rgba(0,0,0,0)\",\r\n \"dataBackgroundColor\": \"rgba(181,195,52,0.3)\",\r\n \"fillerColor\": \"rgba(181,195,52,0.2)\",\r\n \"handleColor\": \"#27727b\",\r\n \"handleSize\": \"100%\",\r\n \"textStyle\": {\r\n \"color\": \"#999999\"\r\n }\r\n },\r\n \"markPoint\": {\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n },\r\n \"emphasis\": {\r\n \"label\": {\r\n \"color\": \"#eeeeee\"\r\n }\r\n }\r\n }\r\n} as ThemeOption;\r\n","import { DOCUMENT, Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, map } from \"rxjs\";\r\nimport { chartThemeLight } from \"../util/chart-theme-light\";\r\nimport { chartThemeDark } from \"../util/chart-theme-dark\";\r\nimport { argbFromHex, Hct, hexFromArgb, TonalPalette } from \"@material/material-color-utilities\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\nexport interface Color {\r\n name: string;\r\n value: string;\r\n}\r\n\r\nexport interface Theme {\r\n primary: string;\r\n secondary: string;\r\n tertiary: string;\r\n error: string;\r\n neutral: string;\r\n neutralVariant: string;\r\n warning: string;\r\n success: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ThemeService {\r\n\r\n private readonly THEME_KEY = 'WOLK_THEME';\r\n\r\n private readonly DEFAULT_COLORS: Theme = {\r\n primary: \"#00AFFF\",\r\n secondary: \"#C8E1FF\",\r\n tertiary: \"#004B32\",\r\n error: \"#FF0032\",\r\n neutral: \"#191919\",\r\n neutralVariant: \"#323232\",\r\n warning: \"#ff8e00\",\r\n success: \"#4caf50\",\r\n }\r\n\r\n private readonly themeType$ = new BehaviorSubject<'SYSTEM' | 'LIGHT' | 'DARK'>(localStorage.getItem(this.THEME_KEY) as any ?? 'SYSTEM');\r\n\r\n readonly isDarkTheme$ = this.themeType$.pipe(\r\n map((themeType) => themeType === 'DARK' || (themeType === \"SYSTEM\" && window.matchMedia('(prefers-color-scheme: dark)').matches))\r\n );\r\n\r\n readonly chartTheme$ = this.isDarkTheme$.pipe(\r\n map((isDark) => isDark ? chartThemeDark : chartThemeLight)\r\n );\r\n\r\n private readonly themeColors$ = new BehaviorSubject<Theme>(this.DEFAULT_COLORS);\r\n\r\n constructor(@Inject(DOCUMENT) private readonly document: Document) {\r\n this.themeColors$.pipe(takeUntilDestroyed()).subscribe((colors) => this.updateThemeVariables(colors));\r\n this.themeType$.pipe(takeUntilDestroyed()).subscribe((type) => {\r\n const browserTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'DARK' : 'LIGHT';\r\n const newTheme = type === 'SYSTEM' ? browserTheme : type;\r\n\r\n if (newTheme === 'LIGHT') {\r\n document.body.classList.remove('alt-theme');\r\n } else {\r\n document.body.classList.add('alt-theme');\r\n }\r\n })\r\n }\r\n\r\n get defaultColors() {\r\n return this.DEFAULT_COLORS;\r\n }\r\n\r\n setThemeType(theme: 'SYSTEM' | 'LIGHT' | 'DARK') {\r\n localStorage.setItem(this.THEME_KEY, theme);\r\n this.themeType$.next(theme);\r\n }\r\n\r\n setThemeColors(primaryColor?: string, secondaryColor?: string, tertiaryColor?: string) {\r\n const currentTheme = this.themeColors;\r\n const primary = primaryColor ?? currentTheme.primary;\r\n const secondary = secondaryColor ?? currentTheme.secondary;\r\n const tertiary = tertiaryColor ?? currentTheme.tertiary;\r\n\r\n this.themeColors$.next({\r\n ...currentTheme,\r\n primary,\r\n secondary,\r\n tertiary\r\n })\r\n }\r\n\r\n get themeType() {\r\n return this.themeType$.value;\r\n }\r\n\r\n get themeColors(): Theme {\r\n return this.themeColors$.value;\r\n }\r\n\r\n computeColorFromHex(hex: string, tone: number) {\r\n const palette = TonalPalette.fromHct(Hct.fromInt(argbFromHex(hex)));\r\n return hexFromArgb(Hct.from(palette.hue, palette.chroma, tone).toInt());\r\n }\r\n\r\n private updateThemeVariables(theme: Theme) {\r\n this.updateColorVariables('primary', theme.primary);\r\n this.updateColorVariables('secondary', theme.secondary);\r\n this.updateColorVariables('tertiary', theme.tertiary);\r\n this.updateColorVariables('error', theme.error);\r\n this.updateColorVariables('neutral', theme.neutral, true);\r\n this.updateColorVariables('neutral-variant', theme.neutralVariant,);\r\n this.updateColorVariables('warning', theme.warning);\r\n this.updateColorVariables('success', theme.success);\r\n }\r\n\r\n private updateColorVariables(name: string, color: string, hasAdditionalValues = false) {\r\n const palette = this.computeColorPalette(color, hasAdditionalValues);\r\n for (const variant of palette) {\r\n this.document.documentElement.style.setProperty(`--${name}-color${variant.name}`, variant.value);\r\n }\r\n }\r\n\r\n private computeColorPalette(hex: string, hasAdditionalValues: boolean): Color[] {\r\n const palette = TonalPalette.fromHct(Hct.fromInt(argbFromHex(hex)));\r\n const colorPalette = [\r\n this.getColorObject(palette, 0, '-0'),\r\n this.getColorObject(palette, 10, '-10'),\r\n this.getColorObject(palette, 20, '-20'),\r\n this.getColorObject(palette, 25, '-25'),\r\n this.getColorObject(palette, 30, '-30'),\r\n this.getColorObject(palette, 35, '-35'),\r\n this.getColorObject(palette, 40, '-40'),\r\n this.getColorObject(palette, 50, '-50'),\r\n this.getColorObject(palette, 60, '-60'),\r\n this.getColorObject(palette, 70, '-70'),\r\n this.getColorObject(palette, 80, '-80'),\r\n this.getColorObject(palette, 90, '-90'),\r\n this.getColorObject(palette, 95, '-95'),\r\n this.getColorObject(palette, 98, '-98'),\r\n this.getColorObject(palette, 99, '-99'),\r\n this.getColorObject(palette, 100, '-100'),\r\n ];\r\n\r\n const additionalValues = [\r\n this.getColorObject(palette, 4, '-4'),\r\n this.getColorObject(palette, 6, '-6'),\r\n this.getColorObject(palette, 12, '-12'),\r\n this.getColorObject(palette, 17, '-17'),\r\n this.getColorObject(palette, 22, '-22'),\r\n this.getColorObject(palette, 24, '-24'),\r\n this.getColorObject(palette, 87, '-87'),\r\n this.getColorObject(palette, 92, '-92'),\r\n this.getColorObject(palette, 94, '-94'),\r\n this.getColorObject(palette, 96, '-96'),\r\n ]\r\n\r\n return hasAdditionalValues ? [...colorPalette, ...additionalValues] : colorPalette;\r\n }\r\n\r\n private getColorObject(palette: TonalPalette, tone: number, name: string): Color {\r\n const hex = hexFromArgb(Hct.from(palette.hue, palette.chroma, tone).toInt());\r\n return {\r\n name,\r\n value: hex,\r\n };\r\n }\r\n}\r\n","import { Directive, ElementRef, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appLoadingIndicator]',\r\n standalone: true\r\n})\r\nexport class LoadingIndicatorDirective {\r\n\r\n @Input('appLoadingIndicator') set appLoadingShimmer(isLoading: boolean | unknown) {\r\n if (isLoading) {\r\n this.element.nativeElement.classList.add('shimmer');\r\n } else {\r\n this.element.nativeElement.classList.remove('shimmer');\r\n }\r\n }\r\n\r\n constructor(\r\n private element: ElementRef<HTMLElement>\r\n ) {\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, forwardRef, HostListener, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\r\nimport { Subscription } from 'rxjs';\r\nimport { TenantPropertiesService } from '../service/tenant-properties.service';\r\n\r\n@Directive({\r\n selector: 'input[wolkaboutLocalizedNumericInput]',\r\n providers: [\r\n { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: LocalizedNumericInputDirective },\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => LocalizedNumericInputDirective),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class LocalizedNumericInputDirective implements ControlValueAccessor {\r\n locale = 'en_US';\r\n decimalMarker = '.';\r\n thousandSeparator = ',';\r\n\r\n onChange!: (value: any) => void;\r\n onTouched!: (ev: any) => void;\r\n\r\n constructor(private element: ElementRef<HTMLInputElement>, private tenantPropertiesService: TenantPropertiesService) {\r\n this.locale = this.tenantPropertiesService.locale.code\r\n\r\n const formatted = (1000.99).toLocaleString(this.locale);\r\n\r\n // Remove digits → remaining chars are separators\r\n const [thousandSeparator, decimalMarker] = formatted.replace(/\\d/g, '');\r\n\r\n this.decimalMarker = decimalMarker;\r\n this.thousandSeparator = thousandSeparator;\r\n }\r\n\r\n @HostListener('input', ['$event.target.value'!])\r\n input(value: any) {\r\n const val = this.parseValue(value);\r\n this.printValue(val);\r\n this.onChange(val);\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus() {\r\n const value = this.parseValue(this.element.nativeElement.value);\r\n this.printValue(value);\r\n this.onChange(value);\r\n }\r\n\r\n writeValue(value: string) {\r\n let stringValue = value ?? '';\r\n stringValue = String(value);\r\n\r\n this.printValue(this.parseValue(stringValue.replace('.', this.decimalMarker)));\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void) {\r\n this.onTouched = fn;\r\n }\r\n\r\n //format string into\r\n //[sign]([integer]{ 0, 2}[thousand separator])?([integer]{ 3 } [thousand separator])* [integer]{ 0, 3 }.[decimal]\r\n private printValue(value: string): void {\r\n if (!value) {\r\n this.element.nativeElement.value = '';\r\n }\r\n\r\n //check if decimal marker needs to be preserved\r\n const endsInDecMark = value.charAt(value.length - 1) === '.';\r\n\r\n const [integer, decimal] = value.split('.');\r\n const formattedInteger = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandSeparator);\r\n const formattedDecimal = decimal || endsInDecMark ? this.decimalMarker + (decimal ?? '') : '';\r\n this.element.nativeElement.value = formattedInteger + formattedDecimal;\r\n }\r\n\r\n //parse input string into [sign][integer].[decimal]\r\n private parseValue(value: string): string {\r\n //if only blank spaces\r\n if (!(value || '').trim().length) return '';\r\n\r\n //remove blank spaces\r\n const val = value.trim();\r\n\r\n //check if decimal marker needs to be preserved\r\n const endsInDecMark = val.charAt(val.length - 1) === this.decimalMarker;\r\n\r\n //form whole number part and decimal part\r\n const [rawInt, ...dec] = val.split(this.decimalMarker);\r\n let parsedInt = rawInt.split(this.thousandSeparator).join('');\r\n let parsedDec = dec?.join('') ?? '';\r\n\r\n //handle sign as first character\r\n let [sign, ...rest] = parsedInt;\r\n if (!['+', '-'].includes(sign)) {\r\n parsedInt = [sign, ...(rest ?? [])].join('');\r\n sign = '';\r\n rest = []; //linter being stupid about let\r\n } else {\r\n parsedInt = rest?.join('') ?? '';\r\n }\r\n\r\n //remove anything that isn't a number from parts that should be numbers\r\n parsedInt = parsedInt.replace(/[^\\d]/g, '');\r\n parsedDec = parsedDec.replace(/[^\\d]/g, '');\r\n\r\n //remove leading zeros\r\n if (parsedInt.length > 1) parsedInt = parsedInt.replace(/^0+/g, '');\r\n\r\n //prefixes 0 if integer part is empty but decimal isn't\r\n if (!parsedInt.length && (parsedDec || endsInDecMark)) {\r\n parsedInt = '0';\r\n }\r\n\r\n //final format\r\n return sign + parsedInt + (parsedDec || endsInDecMark ? '.' : '') + parsedDec;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnDestroy, Renderer2, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\nimport { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\n\r\n@Directive({\r\n selector: '[appMessageTooltip]',\r\n standalone: true,\r\n})\r\nexport class MessageTooltipDirective implements OnDestroy {\r\n\r\n @Input('appMessageTooltip') tooltipTemplate!: TemplateRef<any>;\r\n\r\n private overlayRef: OverlayRef | null = null;\r\n private showTimeout: number | undefined = undefined;\r\n\r\n constructor(private overlay: Overlay, private elementRef: ElementRef, private viewContainerRef: ViewContainerRef, private renderer: Renderer2) {\r\n }\r\n\r\n @HostListener('mouseenter')\r\n show() {\r\n if (!this.tooltipTemplate || this.overlayRef) {\r\n return;\r\n }\r\n\r\n this.showTimeout = setTimeout(() => {\r\n const positionStrategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.elementRef)\r\n .withFlexibleDimensions(false)\r\n .withPush(true)\r\n .withGrowAfterOpen(true)\r\n .withViewportMargin(8)\r\n .withPositions([\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center'\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'top'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center'\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'bottom'\r\n }\r\n ])\r\n .withScrollableContainers([]);\r\n\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy,\r\n hasBackdrop: false,\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n });\r\n\r\n const portal = new TemplatePortal(this.tooltipTemplate, this.viewContainerRef);\r\n this.overlayRef.attach(portal);\r\n\r\n const el = this.overlayRef.overlayElement;\r\n this.renderer.addClass(el, 'message-tooltip-custom-animation');\r\n\r\n requestAnimationFrame(() => {\r\n this.renderer.addClass(el, 'visible');\r\n });\r\n }, 600);\r\n }\r\n\r\n @HostListener('mouseleave')\r\n hide() {\r\n clearTimeout(this.showTimeout);\r\n this.showTimeout = undefined;\r\n this.overlayRef?.detach();\r\n this.overlayRef = null;\r\n }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.showTimeout);\r\n this.overlayRef?.dispose();\r\n }\r\n}\r\n","import { Directive, inject, TemplateRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[appNgTemplateContent]'\r\n})\r\nexport class NgTemplateContentDirective {\r\n\r\n template = inject(TemplateRef);\r\n}\r\n","import { AfterViewChecked, AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[overflowClass]',\r\n standalone: true\r\n})\r\nexport class OverflowClassDirective implements AfterViewInit, AfterViewChecked {\r\n\r\n @Input() overflowClass: string | null = null;\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.checkScroll();\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n this.checkScroll();\r\n }\r\n\r\n private checkScroll() {\r\n const overflowClasses = this.overflowClass?.split(' ');\r\n (overflowClasses?.length ? overflowClasses : [this.overflowClass]).forEach((cssClass) => {\r\n if (this.el.nativeElement.scrollHeight > this.el.nativeElement.clientHeight) {\r\n this.el.nativeElement.classList.add(cssClass);\r\n } else {\r\n this.el.nativeElement.classList.remove(cssClass);\r\n }\r\n })\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { PermissionsService } from \"../service/permissions.service\";\r\nimport { distinctUntilChanged } from \"rxjs\";\r\n\r\n@Directive({\r\n selector: '[appRequiresAllGlobalOrAssetPermissions]'\r\n})\r\nexport class RequiresAllGlobalOrAssetPermissionsDirective {\r\n @Input() set appRequiresAllGlobalOrAssetPermissions(permissions: string | string[]) {\r\n if (!permissions) {\r\n return;\r\n }\r\n\r\n this.permissions.hasAllGlobalOrAssetPermissions(Array.isArray(permissions) ? permissions : [permissions]).pipe(\r\n distinctUntilChanged(),\r\n ).subscribe((hasPermissions) => {\r\n\r\n if (hasPermissions) {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n })\r\n }\r\n\r\n constructor(private templateRef: TemplateRef<unknown>, private viewContainer: ViewContainerRef, private permissions: PermissionsService) {\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\nimport { distinctUntilChanged } from \"rxjs\";\r\nimport { PermissionsService } from \"../service/permissions.service\";\r\n\r\n@Directive({\r\n selector: '[appRequiresAllPermissions]'\r\n})\r\nexport class RequiresAllPermissionDirective {\r\n @Input() set appRequiresAllPermissions(permissions: string | string[]) {\r\n if (!permissions) {\r\n return;\r\n }\r\n\r\n this.permissions.hasAllPermissions(Array.isArray(permissions) ? permissions : [permissions]).pipe(\r\n distinctUntilChanged(),\r\n ).subscribe((hasPermissions) => {\r\n\r\n if (hasPermissions) {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n })\r\n }\r\n\r\n constructor(private templateRef: TemplateRef<unknown>, private viewContainer: ViewContainerRef, private permissions: PermissionsService) {\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { PermissionsService } from \"../service/permissions.service\";\r\nimport { distinctUntilChanged } from \"rxjs\";\r\n\r\n@Directive({\r\n selector: '[appRequiresGlobalOrAssetPermission]'\r\n})\r\nexport class RequiresGlobalOrAsserPermissionDirective {\r\n @Input() set appRequiresGlobalOrAssetPermission(permissions: string | string[]) {\r\n if (!permissions) {\r\n return;\r\n }\r\n\r\n this.permissions.hasAnyGlobalOrAssetPermission(Array.isArray(permissions) ? permissions : [permissions]).pipe(\r\n distinctUntilChanged(),\r\n ).subscribe((hasPermissions) => {\r\n if (hasPermissions) {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n })\r\n }\r\n\r\n constructor(private templateRef: TemplateRef<unknown>, private viewContainer: ViewContainerRef, private permissions: PermissionsService) {\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { PermissionsService } from \"../service/permissions.service\";\r\nimport { distinctUntilChanged } from \"rxjs\";\r\n\r\n@Directive({\r\n selector: '[appRequiresPermission]'\r\n})\r\nexport class RequiresPermissionDirective {\r\n @Input() set appRequiresPermission(permissions: string | string[]) {\r\n if (!permissions) {\r\n return;\r\n }\r\n\r\n this.permissions.hasAnyPermission(Array.isArray(permissions) ? permissions : [permissions]).pipe(\r\n distinctUntilChanged(),\r\n ).subscribe((hasPermissions) => {\r\n if (hasPermissions) {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n })\r\n }\r\n\r\n constructor(private templateRef: TemplateRef<unknown>, private viewContainer: ViewContainerRef, private permissions: PermissionsService) {\r\n }\r\n}\r\n","import { Directive, ElementRef, Inject, Input, OnChanges, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from \"@angular/common\";\r\nimport { coerceBooleanProperty } from \"@angular/cdk/coercion\";\r\n\r\n@Directive({\r\n selector: '[appScrollIntoView]',\r\n standalone: true\r\n})\r\nexport class ScrollIntoViewDirective implements OnChanges {\r\n\r\n @Input() appScrollIntoView: boolean | undefined;\r\n\r\n constructor(@Inject(PLATFORM_ID) private platformId: any, private elementRef: ElementRef) {\r\n }\r\n\r\n ngOnChanges() {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return;\r\n }\r\n\r\n if (!coerceBooleanProperty(this.appScrollIntoView)) {\r\n return;\r\n }\r\n\r\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\r\n const topShown = rect.top >= 0;\r\n const bottomShown = rect.bottom <= window.innerHeight;\r\n if (!topShown || !bottomShown) {\r\n (this.elementRef.nativeElement as HTMLInputElement).scrollIntoView({behavior: 'smooth', block: 'center'});\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nexport const formatDuration = (totalSeconds: number | undefined): string => {\r\n if (!totalSeconds) return '-';\r\n\r\n const days = Math.floor(totalSeconds / (24 * 60 * 60));\r\n const hours = Math.floor((totalSeconds % (24 * 60 * 60)) / (60 * 60));\r\n const minutes = Math.floor((totalSeconds % (60 * 60)) / 60);\r\n const seconds = totalSeconds % 60;\r\n\r\n // If days are present → show full breakdown\r\n if (days > 0) {\r\n return `${days}d ${hours}h ${minutes}m ${seconds}s`;\r\n }\r\n\r\n const parts: string[] = [];\r\n if (hours > 0) {\r\n parts.push(`${hours}h`);\r\n }\r\n\r\n if (minutes > 0) {\r\n parts.push(`${minutes}m`);\r\n }\r\n\r\n if (seconds > 0) {\r\n parts.push(`${seconds}s`);\r\n }\r\n\r\n return parts.length > 0 ? parts.join(\" \") : \"0s\";\r\n}\r\n\r\n@Pipe({\r\n name: 'duration',\r\n standalone: true\r\n})\r\nexport class DurationPipe implements PipeTransform {\r\n\r\n /**\r\n * Transforms the given value to \"X days, Y hours, Z minutes\" format\r\n */\r\n transform(totalSeconds?: number): string {\r\n return formatDuration(totalSeconds);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TenantPropertiesService } from '../service/tenant-properties.service';\r\n\r\n@Pipe({\r\n name: 'localizedNumber',\r\n standalone: true,\r\n pure: true\r\n})\r\nexport class LocalizedNumberPipe implements PipeTransform {\r\n\r\n constructor(private tenantPropertiesService: TenantPropertiesService) { }\r\n\r\n transform(value: number | string | null | undefined, decimals: number = 2, locale?: string): string {\r\n if (value == null) {\r\n return ''\r\n }\r\n\r\n if (typeof value === 'string') {\r\n value = Number(value);\r\n }\r\n\r\n const defaultedLocale = locale ?? this.tenantPropertiesService.locale.code\r\n\r\n return new Intl.NumberFormat(defaultedLocale, {\r\n minimumFractionDigits: decimals,\r\n maximumFractionDigits: decimals\r\n }).format(value);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TenantPropertiesService } from \"../service/tenant-properties.service\";\r\nimport { DateTime } from \"luxon\";\r\n\r\n@Pipe({\r\n name: 'simpleDateTime',\r\n standalone: true\r\n})\r\nexport class SimpleDateTimePipe implements PipeTransform {\r\n\r\n constructor(private tenantPropertiesService: TenantPropertiesService) {\r\n }\r\n\r\n transform(timestamp?: number | null, timeZone?: string | null, showTimeZone: boolean = true, locale?: string | null ): string {\r\n if (!timestamp) {\r\n return '-';\r\n }\r\n\r\n const defaultedLocale = locale ?? this.tenantPropertiesService.locale.code;\r\n const defaultedTimezone = timeZone ?? this.tenantPropertiesService.timezone;\r\n\r\n const dateTime = DateTime.fromMillis(timestamp).setZone(defaultedTimezone ?? undefined).setLocale(defaultedLocale);\r\n\r\n const date = dateTime.toLocaleString(DateTime.DATE_SHORT);\r\n const time = dateTime.toLocaleString(DateTime.TIME_SIMPLE);\r\n const zone = dateTime.offsetNameShort;\r\n\r\n const formattedDateTime = date + ' ' + time;\r\n\r\n return showTimeZone ? `${formattedDateTime} ${zone}` : formattedDateTime;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DateTime } from \"luxon\";\r\nimport { TenantPropertiesService } from \"../service/tenant-properties.service\";\r\n\r\n@Pipe({\r\n name: 'simpleDate',\r\n standalone: true\r\n})\r\nexport class SimpleDatePipe implements PipeTransform {\r\n\r\n constructor(private tenantPropertiesService: TenantPropertiesService) {\r\n }\r\n\r\n transform(timestamp?: number | null, timeZone?: string | null, showTimeZone: boolean = true, locale?: string | null): string {\r\n if (!timestamp) {\r\n return '-';\r\n }\r\n\r\n const defaultedLocale = locale ?? this.tenantPropertiesService.locale.code;\r\n const defaultedTimezone = timeZone ?? this.tenantPropertiesService.timezone;\r\n\r\n const dateTime = DateTime.fromMillis(timestamp).setZone(defaultedTimezone ?? undefined).setLocale(defaultedLocale);\r\n\r\n const date = dateTime.toLocaleString(DateTime.DATE_SHORT);\r\n const zone = dateTime.offsetNameShort;\r\n\r\n return showTimeZone ? `${date} ${zone}` : date;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TenantPropertiesService } from \"../service/tenant-properties.service\";\r\nimport { DateTime } from \"luxon\";\r\n\r\n@Pipe({\r\n name: 'simpleTime',\r\n standalone: true\r\n})\r\nexport class SimpleTimePipe implements PipeTransform {\r\n\r\n constructor(private tenantPropertiesService: TenantPropertiesService) {\r\n }\r\n\r\n transform(timestamp?: number | null, timeZone?: string | null, showTimeZone: boolean = true, locale?: string | null): string {\r\n if (!timestamp) {\r\n return '-';\r\n }\r\n\r\n const defaultedLocale = locale ?? this.tenantPropertiesService.locale.code;\r\n const defaultedTimezone = timeZone ?? this.tenantPropertiesService.timezone;\r\n\r\n const dateTime = DateTime.fromMillis(timestamp).setZone(defaultedTimezone ?? undefined).setLocale(defaultedLocale);\r\n\r\n const time = dateTime.toLocaleString(DateTime.TIME_SIMPLE);\r\n const zone = dateTime.offsetNameShort;\r\n\r\n return showTimeZone ? `${time} ${zone}` : time;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nexport type SortDirection = 'asc' | 'desc';\r\n\r\n@Pipe({\r\n name: 'sort',\r\n standalone: true\r\n})\r\nexport class SortPipe implements PipeTransform {\r\n transform(array: any, field?: string, direction?: SortDirection): any[] {\r\n if (!Array.isArray(array)) {\r\n throw Error('Only arrays can be sorted.');\r\n }\r\n\r\n if (!field) {\r\n return array;\r\n }\r\n\r\n const multiplier = direction === 'desc' ? -1 : 1;\r\n\r\n array.sort((a: any, b: any) => {\r\n if (a[field] < b[field]) {\r\n return -multiplier;\r\n } else if (a[field] > b[field]) {\r\n return multiplier;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n\r\n return array;\r\n }\r\n}\r\n","import { DateTime } from 'luxon';\r\n\r\nexport const MILLISECONDS_IN_DAY = 86400000;\r\nexport const USERS_TIME_ZONE = DateTime.now().zone.name;\r\nexport const DEFAULT_TIME_ZONE = USERS_TIME_ZONE;\r\n\r\nexport const startOfTheDay = (dayOffSet?: number, timeZone?: string | null): number => {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('day')\r\n .plus({ days: dayOffSet })\r\n .toMillis();\r\n};\r\n\r\nexport const daysAway = (dayOffSet?: number, timeZone?: string | null): number => {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('minute')\r\n .plus({ days: dayOffSet })\r\n .toMillis();\r\n};\r\n\r\nexport const hoursAway = (hourOffset?: number, timeZone?: string | null): number => {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('minute')\r\n .plus({ hours: hourOffset })\r\n .toMillis();\r\n};\r\n\r\nexport const toStartOfTheDay = (millis: number, timeZone?: string | null): number => {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('day')\r\n .toMillis();\r\n};\r\n\r\nexport function startOfWeek(weekOffset?: number, timeZone?: string | null): number {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('week')\r\n .plus({ weeks: weekOffset })\r\n .toMillis();\r\n}\r\n\r\nexport function toStartOfWeek(millis: number, timeZone?: string | null): number {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('week')\r\n .toMillis();\r\n}\r\n\r\nexport function startOfMonth(monthOffset?: number, timeZone?: string | null): number {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('month')\r\n .plus({ months: monthOffset })\r\n .toMillis();\r\n}\r\n\r\nexport function toStartOfMonth(millis: number, timeZone?: string | null): number {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('month')\r\n .toMillis();\r\n}\r\n\r\nexport function toEndOfMonth(millis: number, timeZone?: string | null): number {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .endOf('month')\r\n .toMillis();\r\n}\r\n\r\nexport function startOfYear(yearOffset?: number, timeZone?: string | null): number {\r\n return DateTime.now()\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('year')\r\n .plus({ years: yearOffset })\r\n .toMillis();\r\n}\r\n\r\nexport function toStartOfYear(millis: number, timeZone?: string | null): number {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .startOf('year')\r\n .toMillis();\r\n}\r\n\r\nexport function toEndOfYear(millis: number, timeZone?: string | null): number {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .endOf('year')\r\n .toMillis();\r\n}\r\n\r\nexport const toJsDate = (millis: number, timeZone?: string | null): Date => {\r\n return DateTime.fromMillis(millis)\r\n .setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE)\r\n .toJSDate();\r\n};\r\n\r\nexport const toTime = (millis: number, timeZone?: string | null): { hour: number; minute: number; offset: string } => {\r\n const time = DateTime.fromMillis(millis).setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE);\r\n return { hour: time.hour, minute: time.minute, offset: time.offsetNameShort ?? '' };\r\n};\r\n\r\nexport const toOffset = (timeZone?: string | null): string => {\r\n const time = DateTime.fromJSDate(new Date()).setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE);\r\n return time.offsetNameShort ?? '';\r\n};\r\n\r\nexport const toDate = (millis: number, timeZone?: string | null): { day: number; month: number; year: number; offset: string } => {\r\n const time = DateTime.fromMillis(millis).setZone(timeZone ? timeZone : DEFAULT_TIME_ZONE);\r\n return { day: time.day, month: time.month, year: time.year, offset: time.offsetNameShort ?? '' };\r\n};\r\n\r\nexport function parseTimeInput(date: Date, timeInput: string, timezone?: string): number {\r\n if (!date || !timeInput || !timeInput.includes(':')) {\r\n return date?.getTime() ?? 0;\r\n }\r\n\r\n const localMidnight = toStartOfTheDay(date.getTime(), timezone);\r\n\r\n const hoursAndMinutes = timeInput.split(':').map((value) => Number.parseInt(value));\r\n\r\n const hours = hoursAndMinutes[0] * 1000 * 60 * 60;\r\n const minutes = hoursAndMinutes[1] * 1000 * 60;\r\n\r\n return localMidnight + hours + minutes;\r\n}\r\n\r\nexport function format(millis: number, locale: string, format?: string): string {\r\n if (format) {\r\n return DateTime.fromMillis(millis).toFormat(format, { locale: locale });\r\n } else {\r\n return DateTime.fromMillis(millis).toLocaleString({}, { locale: locale });\r\n }\r\n}\r\n\r\nexport enum RelativeTimePeriod {\r\n TODAY = 'TODAY',\r\n YESTERDAY = 'YESTERDAY',\r\n TOMORROW = 'TOMORROW',\r\n LAST_1_HOURS = 'LAST_1_HOURS',\r\n LAST_24_HOURS = 'LAST_24_HOURS',\r\n LAST_7_DAYS = 'LAST_7_DAYS',\r\n NEXT_7_DAYS = 'NEXT_7_DAYS',\r\n THIS_WEEK = 'THIS_WEEK',\r\n LAST_30_DAYS = 'LAST_30_DAYS',\r\n NEXT_30_DAYS = 'NEXT_30_DAYS',\r\n THIS_MONTH = 'THIS_MONTH',\r\n LAST_6_MONTHS = 'LAST_6_MONTHS',\r\n LAST_12_MONTHS = 'LAST_12_MONTHS',\r\n NEXT_12_MONTHS = 'NEXT_12_MONTHS',\r\n THIS_YEAR = 'THIS_YEAR',\r\n}\r\n\r\nexport const RELATIVE_TIME_PERIODS = Object.keys(RelativeTimePeriod) as RelativeTimePeriod[];\r\n\r\nexport const startOfPeriod: (timezone?: string | null) => { [key in RelativeTimePeriod]: number } = (timezone) => ({\r\n [RelativeTimePeriod.TODAY]: startOfTheDay(undefined, timezone),\r\n [RelativeTimePeriod.YESTERDAY]: startOfTheDay(-1, timezone),\r\n [RelativeTimePeriod.TOMORROW]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.LAST_1_HOURS]: hoursAway(-1, timezone),\r\n [RelativeTimePeriod.LAST_24_HOURS]: daysAway(-1, timezone),\r\n [RelativeTimePeriod.LAST_7_DAYS]: startOfTheDay(-7, timezone),\r\n [RelativeTimePeriod.NEXT_7_DAYS]: startOfTheDay(undefined, timezone),\r\n [RelativeTimePeriod.THIS_WEEK]: startOfWeek(undefined, timezone),\r\n [RelativeTimePeriod.LAST_30_DAYS]: startOfTheDay(-30, timezone),\r\n [RelativeTimePeriod.NEXT_30_DAYS]: startOfTheDay(undefined, timezone),\r\n [RelativeTimePeriod.THIS_MONTH]: startOfMonth(undefined, timezone),\r\n [RelativeTimePeriod.LAST_6_MONTHS]: startOfMonth(-6, timezone),\r\n [RelativeTimePeriod.LAST_12_MONTHS]: startOfTheDay(-365, timezone),\r\n [RelativeTimePeriod.NEXT_12_MONTHS]: startOfTheDay(undefined, timezone),\r\n [RelativeTimePeriod.THIS_YEAR]: startOfYear(undefined, timezone),\r\n});\r\n\r\nexport const endOfPeriod: (timezone?: string | null) => { [key in RelativeTimePeriod]: number } = (timezone) => ({\r\n [RelativeTimePeriod.TODAY]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.YESTERDAY]: startOfTheDay(undefined, timezone),\r\n [RelativeTimePeriod.TOMORROW]: startOfTheDay(+2, timezone),\r\n [RelativeTimePeriod.LAST_1_HOURS]: hoursAway(+0, timezone),\r\n [RelativeTimePeriod.LAST_24_HOURS]: daysAway(+0, timezone),\r\n [RelativeTimePeriod.LAST_7_DAYS]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.NEXT_7_DAYS]: startOfTheDay(+7, timezone),\r\n [RelativeTimePeriod.THIS_WEEK]: startOfWeek(+1, timezone),\r\n [RelativeTimePeriod.LAST_30_DAYS]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.NEXT_30_DAYS]: startOfTheDay(+30, timezone),\r\n [RelativeTimePeriod.THIS_MONTH]: startOfMonth(+1, timezone),\r\n [RelativeTimePeriod.LAST_6_MONTHS]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.LAST_12_MONTHS]: startOfTheDay(+1, timezone),\r\n [RelativeTimePeriod.NEXT_12_MONTHS]: startOfTheDay(+365, timezone),\r\n [RelativeTimePeriod.THIS_YEAR]: startOfYear(+1, timezone),\r\n});\r\n","export function saveFile(blob: Blob, fileName: string) {\r\n const url = URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n a.style.display = 'none';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n URL.revokeObjectURL(url);\r\n}\r\n","import { AbstractControl, ValidationErrors } from \"@angular/forms\";\r\n\r\nexport function validateAssetName(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return value.includes('/') ? {assetNameError: {valid: false}} : null;\r\n}\r\n\r\nexport function fileSizeValidator(control: AbstractControl, maxSizeInBytes: number): ValidationErrors | null {\r\n const file = control.value;\r\n if (!file || !file[0]) {\r\n return null;\r\n } else {\r\n return file[0].size > maxSizeInBytes ? {fileSize: maxSizeInBytes} : null;\r\n }\r\n}\r\n\r\nexport function validateTypeAssetName(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n const pattern = /^[^%?;#\\/\\\\]*$/;\r\n\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return pattern.test(value) ? null : {assetTypeNameError: {valid: false}};\r\n}\r\n","import { MissingTranslationHandler, MissingTranslationHandlerParams } from \"@ngx-translate/core\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class MissingTranslationHelper implements MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams) {\r\n return params.interpolateParams ? (params.interpolateParams as any).default || params.key : params.key;\r\n }\r\n}\r\n","export function determineMinMaxValues(values: number[], paddingPercentage?: number): { min: number; max: number } {\r\n if (values.length === 0) {\r\n return { min: 0, max: 0 };\r\n }\r\n\r\n const minValue = values.reduce((a, b) => (a <= b ? a : b));\r\n const maxValue = values.reduce((a, b) => (a >= b ? a : b));\r\n\r\n if (!paddingPercentage) {\r\n return { min: minValue, max: maxValue }\r\n }\r\n\r\n const padding = maxValue === minValue ? minValue / paddingPercentage : (maxValue - minValue) / paddingPercentage;\r\n const magnitude = determineMagnitude(padding);\r\n\r\n if (magnitude < 0) {\r\n return { min: scale(minValue - padding, -magnitude), max: scale(maxValue + padding, -magnitude) };\r\n } else {\r\n return { min: Math.floor(minValue - padding), max: Math.floor(maxValue + padding) };\r\n }\r\n}\r\n\r\n/**\r\n * Determines the magnitude of the number.\r\n *\r\n * ...\r\n * 100 - 999 -> 2\r\n * 10 - 99 -> 1\r\n * 0 - 9 -> 0\r\n * 0.1 - 0.9999999999... -> -1\r\n * 0.01 - 0.0999999... -> -2\r\n * ...\r\n */\r\nexport const determineMagnitude = (value: number): number => {\r\n if (value === 0) return 0;\r\n return value < 1 ? -Math.ceil(-(Math.log10(value))) : Math.floor(Math.log10(value));\r\n}\r\n\r\nexport const scale = (value: number, precision: number): number => {\r\n return Number(value.toFixed(precision));\r\n}\r\n","export const equalsByValue = <T>(value1: T, value2: T): boolean => {\r\n if (!value1) return !value2;\r\n if (!value2) return !value1;\r\n\r\n const object1Entries = Object.entries(value1).sort((a, b) => a[0].localeCompare(b[0]));\r\n const object2Entries = Object.entries(value2).sort((a, b) => a[0].localeCompare(b[0]));\r\n\r\n if (object1Entries.length != object2Entries.length) {\r\n return false;\r\n }\r\n\r\n return JSON.stringify(object1Entries) === JSON.stringify(object2Entries);\r\n}\r\n\r\nexport const groupBy = <T>(array: T[], groupingFunction: (value: T) => string): Record<string, T[]> => {\r\n if (!array) {\r\n return {};\r\n }\r\n\r\n const result: Record<string, T[]> = {};\r\n\r\n array.forEach(value => {\r\n const key = groupingFunction(value);\r\n if (!result[key]) {\r\n result[key] = [];\r\n }\r\n\r\n result[key].push(value);\r\n })\r\n\r\n return result;\r\n};\r\n\r\nexport const uniqueFrom = <R, T>(array: T[], valueFunction: (value: T) => R): R[] => {\r\n const uniqueValues: R[] = [];\r\n\r\n array.forEach(arrayElement => {\r\n const value = valueFunction(arrayElement);\r\n if (!uniqueValues.includes(value)) {\r\n uniqueValues.push(value);\r\n }\r\n })\r\n\r\n return uniqueValues;\r\n}\r\n\r\nexport const uniqueBy = <R, T>(array: T[], valueFunction: (value: T) => R): T[] => {\r\n const uniqueValues: R[] = [];\r\n const uniqueElements: T[] = [];\r\n\r\n array.forEach(arrayElement => {\r\n const value = valueFunction(arrayElement);\r\n if (!uniqueValues.includes(value)) {\r\n uniqueValues.push(value);\r\n uniqueElements.push(arrayElement);\r\n }\r\n })\r\n\r\n return uniqueElements;\r\n}\r\n\r\nexport const flatten = <T>(data: T[], getChildren: (node: T) => T[]): T[] => data.flatMap((node) => [node, ...flatten<T>(getChildren(node), getChildren)]);\r\n\r\nexport const flatMap = <T> (array: T[][]): T[] => {\r\n const flatArray: T[] = [];\r\n array.forEach(value => flatArray.push(...value))\r\n return flatArray;\r\n}\r\n\r\nexport const arrayToObject = <T, R> (array: T[] | null | undefined, propertyFunction: (entry: T) => string, mappingFunction: (entry: T) => R): Record<string, R> => {\r\n const result: Record<string, R> = {};\r\n if (!array) {\r\n return result;\r\n }\r\n\r\n array.forEach((entry) => {\r\n result[propertyFunction(entry)] = mappingFunction(entry);\r\n })\r\n\r\n return result;\r\n}\r\n","export const generateRandomString = (length: number): string => {\r\n const array = new Uint8Array(Math.ceil(length / 2));\r\n window.crypto.getRandomValues(array);\r\n return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('').slice(0, length);\r\n}\r\n","export const DEFAULT_TIMEZONES = \"Europe/Prague\";\r\n\r\nexport const TIMEZONES: string[] = [\r\n \"Africa/Abidjan\",\r\n \"Africa/Accra\",\r\n \"Africa/Addis_Ababa\",\r\n \"Africa/Algiers\",\r\n \"Africa/Asmara\",\r\n \"Africa/Asmera\",\r\n \"Africa/Bamako\",\r\n \"Africa/Bangui\",\r\n \"Africa/Banjul\",\r\n \"Africa/Bissau\",\r\n \"Africa/Blantyre\",\r\n \"Africa/Brazzaville\",\r\n \"Africa/Bujumbura\",\r\n \"Africa/Cairo\",\r\n \"Africa/Casablanca\",\r\n \"Africa/Ceuta\",\r\n \"Africa/Conakry\",\r\n \"Africa/Dakar\",\r\n \"Africa/Dar_es_Salaam\",\r\n \"Africa/Djibouti\",\r\n \"Africa/Douala\",\r\n \"Africa/El_Aaiun\",\r\n \"Africa/Freetown\",\r\n \"Africa/Gaborone\",\r\n \"Africa/Harare\",\r\n \"Africa/Johannesburg\",\r\n \"Africa/Juba\",\r\n \"Africa/Kampala\",\r\n \"Africa/Khartoum\",\r\n \"Africa/Kigali\",\r\n \"Africa/Kinshasa\",\r\n \"Africa/Lagos\",\r\n \"Africa/Libreville\",\r\n \"Africa/Lome\",\r\n \"Africa/Luanda\",\r\n \"Africa/Lubumbashi\",\r\n \"Africa/Lusaka\",\r\n \"Africa/Malabo\",\r\n \"Africa/Maputo\",\r\n \"Africa/Maseru\",\r\n \"Africa/Mbabane\",\r\n \"Africa/Mogadishu\",\r\n \"Africa/Monrovia\",\r\n \"Africa/Nairobi\",\r\n \"Africa/Ndjamena\",\r\n \"Africa/Niamey\",\r\n \"Africa/Nouakchott\",\r\n \"Africa/Ouagadougou\",\r\n \"Africa/Porto-Novo\",\r\n \"Africa/Sao_Tome\",\r\n \"Africa/Timbuktu\",\r\n \"Africa/Tripoli\",\r\n \"Africa/Tunis\",\r\n \"Africa/Windhoek\",\r\n \"America/Adak\",\r\n \"America/Anchorage\",\r\n \"America/Anguilla\",\r\n \"America/Antigua\",\r\n \"America/Araguaina\",\r\n \"America/Argentina/Buenos_Aires\",\r\n \"America/Argentina/Catamarca\",\r\n \"America/Argentina/ComodRivadavia\",\r\n \"America/Argentina/Cordoba\",\r\n \"America/Argentina/Jujuy\",\r\n \"America/Argentina/La_Rioja\",\r\n \"America/Argentina/Mendoza\",\r\n \"America/Argentina/Rio_Gallegos\",\r\n \"America/Argentina/Salta\",\r\n \"America/Argentina/San_Juan\",\r\n \"America/Argentina/San_Luis\",\r\n \"America/Argentina/Tucuman\",\r\n \"America/Argentina/Ushuaia\",\r\n \"America/Aruba\",\r\n \"America/Asuncion\",\r\n \"America/Atikokan\",\r\n \"America/Atka\",\r\n \"America/Bahia\",\r\n \"America/Bahia_Banderas\",\r\n \"America/Barbados\",\r\n \"America/Belem\",\r\n \"America/Belize\",\r\n \"America/Blanc-Sablon\",\r\n \"America/Boa_Vista\",\r\n \"America/Bogota\",\r\n \"America/Boise\",\r\n \"America/Buenos_Aires\",\r\n \"America/Cambridge_Bay\",\r\n \"America/Campo_Grande\",\r\n \"America/Cancun\",\r\n \"America/Caracas\",\r\n \"America/Catamarca\",\r\n \"America/Cayenne\",\r\n \"America/Cayman\",\r\n \"America/Chicago\",\r\n \"America/Chihuahua\",\r\n \"America/Ciudad_Juarez\",\r\n \"America/Coral_Harbour\",\r\n \"America/Cordoba\",\r\n \"America/Costa_Rica\",\r\n \"America/Creston\",\r\n \"America/Cuiaba\",\r\n \"America/Curacao\",\r\n \"America/Danmarkshavn\",\r\n \"America/Dawson\",\r\n \"America/Dawson_Creek\",\r\n \"America/Denver\",\r\n \"America/Detroit\",\r\n \"America/Dominica\",\r\n \"America/Edmonton\",\r\n \"America/Eirunepe\",\r\n \"America/El_Salvador\",\r\n \"America/Ensenada\",\r\n \"America/Fort_Nelson\",\r\n \"America/Fort_Wayne\",\r\n \"America/Fortaleza\",\r\n \"America/Glace_Bay\",\r\n \"America/Godthab\",\r\n \"America/Goose_Bay\",\r\n \"America/Grand_Turk\",\r\n \"America/Grenada\",\r\n \"America/Guadeloupe\",\r\n \"America/Guatemala\",\r\n \"America/Guayaquil\",\r\n \"America/Guyana\",\r\n \"America/Halifax\",\r\n \"America/Havana\",\r\n \"America/Hermosillo\",\r\n \"America/Indiana/Indianapolis\",\r\n \"America/Indiana/Knox\",\r\n \"America/Indiana/Marengo\",\r\n \"America/Indiana/Petersburg\",\r\n \"America/Indiana/Tell_City\",\r\n \"America/Indiana/Vevay\",\r\n \"America/Indiana/Vincennes\",\r\n \"America/Indiana/Winamac\",\r\n \"America/Indianapolis\",\r\n \"America/Inuvik\",\r\n \"America/Iqaluit\",\r\n \"America/Jamaica\",\r\n \"America/Jujuy\",\r\n \"America/Juneau\",\r\n \"America/Kentucky/Louisville\",\r\n \"America/Kentucky/Monticello\",\r\n \"America/Knox_IN\",\r\n \"America/Kralendijk\",\r\n \"America/La_Paz\",\r\n \"America/Lima\",\r\n \"America/Los_Angeles\",\r\n \"America/Louisville\",\r\n \"America/Lower_Princes\",\r\n \"America/Maceio\",\r\n \"America/Managua\",\r\n \"America/Manaus\",\r\n \"America/Marigot\",\r\n \"America/Martinique\",\r\n \"America/Matamoros\",\r\n \"America/Mazatlan\",\r\n \"America/Mendoza\",\r\n \"America/Menominee\",\r\n \"America/Merida\",\r\n \"America/Metlakatla\",\r\n \"America/Mexico_City\",\r\n \"America/Miquelon\",\r\n \"America/Moncton\",\r\n \"America/Monterrey\",\r\n \"America/Montevideo\",\r\n \"America/Montreal\",\r\n \"America/Montserrat\",\r\n \"America/Nassau\",\r\n \"America/New_York\",\r\n \"America/Nipigon\",\r\n \"America/Nome\",\r\n \"America/Noronha\",\r\n \"America/North_Dakota/Beulah\",\r\n \"America/North_Dakota/Center\",\r\n \"America/North_Dakota/New_Salem\",\r\n \"America/Nuuk\",\r\n \"America/Ojinaga\",\r\n \"America/Panama\",\r\n \"America/Pangnirtung\",\r\n \"America/Paramaribo\",\r\n \"America/Phoenix\",\r\n \"America/Port-au-Prince\",\r\n \"America/Port_of_Spain\",\r\n \"America/Porto_Acre\",\r\n \"America/Porto_Velho\",\r\n \"America/Puerto_Rico\",\r\n \"America/Punta_Arenas\",\r\n \"America/Rainy_River\",\r\n \"America/Rankin_Inlet\",\r\n \"America/Recife\",\r\n \"America/Regina\",\r\n \"America/Resolute\",\r\n \"America/Rio_Branco\",\r\n \"America/Rosario\",\r\n \"America/Santa_Isabel\",\r\n \"America/Santarem\",\r\n \"America/Santiago\",\r\n \"America/Santo_Domingo\",\r\n \"America/Sao_Paulo\",\r\n \"America/Scoresbysund\",\r\n \"America/Shiprock\",\r\n \"America/Sitka\",\r\n \"America/St_Barthelemy\",\r\n \"America/St_Johns\",\r\n \"America/St_Kitts\",\r\n \"America/St_Lucia\",\r\n \"America/St_Thomas\",\r\n \"America/St_Vincent\",\r\n \"America/Swift_Current\",\r\n \"America/Tegucigalpa\",\r\n \"America/Thule\",\r\n \"America/Thunder_Bay\",\r\n \"America/Tijuana\",\r\n \"America/Toronto\",\r\n \"America/Tortola\",\r\n \"America/Vancouver\",\r\n \"America/Virgin\",\r\n \"America/Whitehorse\",\r\n \"America/Winnipeg\",\r\n \"America/Yakutat\",\r\n \"America/Yellowknife\",\r\n \"Antarctica/Casey\",\r\n \"Antarctica/Davis\",\r\n \"Antarctica/DumontDUrville\",\r\n \"Antarctica/Macquarie\",\r\n \"Antarctica/Mawson\",\r\n \"Antarctica/McMurdo\",\r\n \"Antarctica/Palmer\",\r\n \"Antarctica/Rothera\",\r\n \"Antarctica/South_Pole\",\r\n \"Antarctica/Syowa\",\r\n \"Antarctica/Troll\",\r\n \"Antarctica/Vostok\",\r\n \"Arctic/Longyearbyen\",\r\n \"Asia/Aden\",\r\n \"Asia/Almaty\",\r\n \"Asia/Amman\",\r\n \"Asia/Anadyr\",\r\n \"Asia/Aqtau\",\r\n \"Asia/Aqtobe\",\r\n \"Asia/Ashgabat\",\r\n \"Asia/Ashkhabad\",\r\n \"Asia/Atyrau\",\r\n \"Asia/Baghdad\",\r\n \"Asia/Bahrain\",\r\n \"Asia/Baku\",\r\n \"Asia/Bangkok\",\r\n \"Asia/Barnaul\",\r\n \"Asia/Beirut\",\r\n \"Asia/Bishkek\",\r\n \"Asia/Brunei\",\r\n \"Asia/Calcutta\",\r\n \"Asia/Chita\",\r\n \"Asia/Choibalsan\",\r\n \"Asia/Chongqing\",\r\n \"Asia/Chungking\",\r\n \"Asia/Colombo\",\r\n \"Asia/Dacca\",\r\n \"Asia/Damascus\",\r\n \"Asia/Dhaka\",\r\n \"Asia/Dili\",\r\n \"Asia/Dubai\",\r\n \"Asia/Dushanbe\",\r\n \"Asia/Famagusta\",\r\n \"Asia/Gaza\",\r\n \"Asia/Harbin\",\r\n \"Asia/Hebron\",\r\n \"Asia/Ho_Chi_Minh\",\r\n \"Asia/Hong_Kong\",\r\n \"Asia/Hovd\",\r\n \"Asia/Irkutsk\",\r\n \"Asia/Istanbul\",\r\n \"Asia/Jakarta\",\r\n \"Asia/Jayapura\",\r\n \"Asia/Jerusalem\",\r\n \"Asia/Kabul\",\r\n \"Asia/Kamchatka\",\r\n \"Asia/Karachi\",\r\n \"Asia/Kashgar\",\r\n \"Asia/Kathmandu\",\r\n \"Asia/Katmandu\",\r\n \"Asia/Khandyga\",\r\n \"Asia/Kolkata\",\r\n \"Asia/Krasnoyarsk\",\r\n \"Asia/Kuala_Lumpur\",\r\n \"Asia/Kuching\",\r\n \"Asia/Kuwait\",\r\n \"Asia/Macao\",\r\n \"Asia/Macau\",\r\n \"Asia/Magadan\",\r\n \"Asia/Makassar\",\r\n \"Asia/Manila\",\r\n \"Asia/Muscat\",\r\n \"Asia/Nicosia\",\r\n \"Asia/Novokuznetsk\",\r\n \"Asia/Novosibirsk\",\r\n \"Asia/Omsk\",\r\n \"Asia/Oral\",\r\n \"Asia/Phnom_Penh\",\r\n \"Asia/Pontianak\",\r\n \"Asia/Pyongyang\",\r\n \"Asia/Qatar\",\r\n \"Asia/Qostanay\",\r\n \"Asia/Qyzylorda\",\r\n \"Asia/Rangoon\",\r\n \"Asia/Riyadh\",\r\n \"Asia/Saigon\",\r\n \"Asia/Sakhalin\",\r\n \"Asia/Samarkand\",\r\n \"Asia/Seoul\",\r\n \"Asia/Shanghai\",\r\n \"Asia/Singapore\",\r\n \"Asia/Srednekolymsk\",\r\n \"Asia/Taipei\",\r\n \"Asia/Tashkent\",\r\n \"Asia/Tbilisi\",\r\n \"Asia/Tehran\",\r\n \"Asia/Tel_Aviv\",\r\n \"Asia/Thimbu\",\r\n \"Asia/Thimphu\",\r\n \"Asia/Tokyo\",\r\n \"Asia/Tomsk\",\r\n \"Asia/Ujung_Pandang\",\r\n \"Asia/Ulaanbaatar\",\r\n \"Asia/Ulan_Bator\",\r\n \"Asia/Urumqi\",\r\n \"Asia/Ust-Nera\",\r\n \"Asia/Vientiane\",\r\n \"Asia/Vladivostok\",\r\n \"Asia/Yakutsk\",\r\n \"Asia/Yangon\",\r\n \"Asia/Yekaterinburg\",\r\n \"Asia/Yerevan\",\r\n \"Atlantic/Azores\",\r\n \"Atlantic/Bermuda\",\r\n \"Atlantic/Canary\",\r\n \"Atlantic/Cape_Verde\",\r\n \"Atlantic/Faeroe\",\r\n \"Atlantic/Faroe\",\r\n \"Atlantic/Jan_Mayen\",\r\n \"Atlantic/Madeira\",\r\n \"Atlantic/Reykjavik\",\r\n \"Atlantic/South_Georgia\",\r\n \"Atlantic/St_Helena\",\r\n \"Atlantic/Stanley\",\r\n \"Australia/ACT\",\r\n \"Australia/Adelaide\",\r\n \"Australia/Brisbane\",\r\n \"Australia/Broken_Hill\",\r\n \"Australia/Canberra\",\r\n \"Australia/Currie\",\r\n \"Australia/Darwin\",\r\n \"Australia/Eucla\",\r\n \"Australia/Hobart\",\r\n \"Australia/LHI\",\r\n \"Australia/Lindeman\",\r\n \"Australia/Lord_Howe\",\r\n \"Australia/Melbourne\",\r\n \"Australia/NSW\",\r\n \"Australia/North\",\r\n \"Australia/Perth\",\r\n \"Australia/Queensland\",\r\n \"Australia/South\",\r\n \"Australia/Sydney\",\r\n \"Australia/Tasmania\",\r\n \"Australia/Victoria\",\r\n \"Australia/West\",\r\n \"Australia/Yancowinna\",\r\n \"Brazil/Acre\",\r\n \"Brazil/DeNoronha\",\r\n \"Brazil/East\",\r\n \"Brazil/West\",\r\n \"CET\",\r\n \"CST6CDT\",\r\n \"Canada/Atlantic\",\r\n \"Canada/Central\",\r\n \"Canada/Eastern\",\r\n \"Canada/Mountain\",\r\n \"Canada/Newfoundland\",\r\n \"Canada/Pacific\",\r\n \"Canada/Saskatchewan\",\r\n \"Canada/Yukon\",\r\n \"Chile/Continental\",\r\n \"Chile/EasterIsland\",\r\n \"Cuba\",\r\n \"EET\",\r\n \"EST5EDT\",\r\n \"Egypt\",\r\n \"Eire\",\r\n \"Etc/GMT\",\r\n \"Etc/GMT+0\",\r\n \"Etc/GMT+1\",\r\n \"Etc/GMT+10\",\r\n \"Etc/GMT+11\",\r\n \"Etc/GMT+12\",\r\n \"Etc/GMT+2\",\r\n \"Etc/GMT+3\",\r\n \"Etc/GMT+4\",\r\n \"Etc/GMT+5\",\r\n \"Etc/GMT+6\",\r\n \"Etc/GMT+7\",\r\n \"Etc/GMT+8\",\r\n \"Etc/GMT+9\",\r\n \"Etc/GMT-0\",\r\n \"Etc/GMT-1\",\r\n \"Etc/GMT-10\",\r\n \"Etc/GMT-11\",\r\n \"Etc/GMT-12\",\r\n \"Etc/GMT-13\",\r\n \"Etc/GMT-14\",\r\n \"Etc/GMT-2\",\r\n \"Etc/GMT-3\",\r\n \"Etc/GMT-4\",\r\n \"Etc/GMT-5\",\r\n \"Etc/GMT-6\",\r\n \"Etc/GMT-7\",\r\n \"Etc/GMT-8\",\r\n \"Etc/GMT-9\",\r\n \"Etc/GMT0\",\r\n \"Etc/Greenwich\",\r\n \"Etc/UCT\",\r\n \"Etc/UTC\",\r\n \"Etc/Universal\",\r\n \"Etc/Zulu\",\r\n \"Europe/Amsterdam\",\r\n \"Europe/Andorra\",\r\n \"Europe/Astrakhan\",\r\n \"Europe/Athens\",\r\n \"Europe/Belfast\",\r\n \"Europe/Belgrade\",\r\n \"Europe/Berlin\",\r\n \"Europe/Bratislava\",\r\n \"Europe/Brussels\",\r\n \"Europe/Bucharest\",\r\n \"Europe/Budapest\",\r\n \"Europe/Busingen\",\r\n \"Europe/Chisinau\",\r\n \"Europe/Copenhagen\",\r\n \"Europe/Dublin\",\r\n \"Europe/Gibraltar\",\r\n \"Europe/Guernsey\",\r\n \"Europe/Helsinki\",\r\n \"Europe/Isle_of_Man\",\r\n \"Europe/Istanbul\",\r\n \"Europe/Jersey\",\r\n \"Europe/Kaliningrad\",\r\n \"Europe/Kiev\",\r\n \"Europe/Kirov\",\r\n \"Europe/Kyiv\",\r\n \"Europe/Lisbon\",\r\n \"Europe/Ljubljana\",\r\n \"Europe/London\",\r\n \"Europe/Luxembourg\",\r\n \"Europe/Madrid\",\r\n \"Europe/Malta\",\r\n \"Europe/Mariehamn\",\r\n \"Europe/Minsk\",\r\n \"Europe/Monaco\",\r\n \"Europe/Moscow\",\r\n \"Europe/Nicosia\",\r\n \"Europe/Oslo\",\r\n \"Europe/Paris\",\r\n \"Europe/Podgorica\",\r\n \"Europe/Prague\",\r\n \"Europe/Riga\",\r\n \"Europe/Rome\",\r\n \"Europe/Samara\",\r\n \"Europe/San_Marino\",\r\n \"Europe/Sarajevo\",\r\n \"Europe/Saratov\",\r\n \"Europe/Simferopol\",\r\n \"Europe/Skopje\",\r\n \"Europe/Sofia\",\r\n \"Europe/Stockholm\",\r\n \"Europe/Tallinn\",\r\n \"Europe/Tirane\",\r\n \"Europe/Tiraspol\",\r\n \"Europe/Ulyanovsk\",\r\n \"Europe/Uzhgorod\",\r\n \"Europe/Vaduz\",\r\n \"Europe/Vatican\",\r\n \"Europe/Vienna\",\r\n \"Europe/Vilnius\",\r\n \"Europe/Volgograd\",\r\n \"Europe/Warsaw\",\r\n \"Europe/Zagreb\",\r\n \"Europe/Zaporozhye\",\r\n \"Europe/Zurich\",\r\n \"GB\",\r\n \"GB-Eire\",\r\n \"GMT\",\r\n \"GMT0\",\r\n \"Greenwich\",\r\n \"Hongkong\",\r\n \"Iceland\",\r\n \"Indian/Antananarivo\",\r\n \"Indian/Chagos\",\r\n \"Indian/Christmas\",\r\n \"Indian/Cocos\",\r\n \"Indian/Comoro\",\r\n \"Indian/Kerguelen\",\r\n \"Indian/Mahe\",\r\n \"Indian/Maldives\",\r\n \"Indian/Mauritius\",\r\n \"Indian/Mayotte\",\r\n \"Indian/Reunion\",\r\n \"Iran\",\r\n \"Israel\",\r\n \"Jamaica\",\r\n \"Japan\",\r\n \"Kwajalein\",\r\n \"Libya\",\r\n \"MET\",\r\n \"MST7MDT\",\r\n \"Mexico/BajaNorte\",\r\n \"Mexico/BajaSur\",\r\n \"Mexico/General\",\r\n \"NZ\",\r\n \"NZ-CHAT\",\r\n \"Navajo\",\r\n \"PRC\",\r\n \"PST8PDT\",\r\n \"Pacific/Apia\",\r\n \"Pacific/Auckland\",\r\n \"Pacific/Bougainville\",\r\n \"Pacific/Chatham\",\r\n \"Pacific/Chuuk\",\r\n \"Pacific/Easter\",\r\n \"Pacific/Efate\",\r\n \"Pacific/Enderbury\",\r\n \"Pacific/Fakaofo\",\r\n \"Pacific/Fiji\",\r\n \"Pacific/Funafuti\",\r\n \"Pacific/Galapagos\",\r\n \"Pacific/Gambier\",\r\n \"Pacific/Guadalcanal\",\r\n \"Pacific/Guam\",\r\n \"Pacific/Honolulu\",\r\n \"Pacific/Johnston\",\r\n \"Pacific/Kanton\",\r\n \"Pacific/Kiritimati\",\r\n \"Pacific/Kosrae\",\r\n \"Pacific/Kwajalein\",\r\n \"Pacific/Majuro\",\r\n \"Pacific/Marquesas\",\r\n \"Pacific/Midway\",\r\n \"Pacific/Nauru\",\r\n \"Pacific/Niue\",\r\n \"Pacific/Norfolk\",\r\n \"Pacific/Noumea\",\r\n \"Pacific/Pago_Pago\",\r\n \"Pacific/Palau\",\r\n \"Pacific/Pitcairn\",\r\n \"Pacific/Pohnpei\",\r\n \"Pacific/Ponape\",\r\n \"Pacific/Port_Moresby\",\r\n \"Pacific/Rarotonga\",\r\n \"Pacific/Saipan\",\r\n \"Pacific/Samoa\",\r\n \"Pacific/Tahiti\",\r\n \"Pacific/Tarawa\",\r\n \"Pacific/Tongatapu\",\r\n \"Pacific/Truk\",\r\n \"Pacific/Wake\",\r\n \"Pacific/Wallis\",\r\n \"Pacific/Yap\",\r\n \"Poland\",\r\n \"Portugal\",\r\n \"ROK\",\r\n \"Singapore\",\r\n \"SystemV/AST4\",\r\n \"SystemV/AST4ADT\",\r\n \"SystemV/CST6\",\r\n \"SystemV/CST6CDT\",\r\n \"SystemV/EST5\",\r\n \"SystemV/EST5EDT\",\r\n \"SystemV/HST10\",\r\n \"SystemV/MST7\",\r\n \"SystemV/MST7MDT\",\r\n \"SystemV/PST8\",\r\n \"SystemV/PST8PDT\",\r\n \"SystemV/YST9\",\r\n \"SystemV/YST9YDT\",\r\n \"Turkey\",\r\n \"UCT\",\r\n \"US/Alaska\",\r\n \"US/Aleutian\",\r\n \"US/Arizona\",\r\n \"US/Central\",\r\n \"US/East-Indiana\",\r\n \"US/Eastern\",\r\n \"US/Hawaii\",\r\n \"US/Indiana-Starke\",\r\n \"US/Michigan\",\r\n \"US/Mountain\",\r\n \"US/Pacific\",\r\n \"US/Samoa\",\r\n \"UTC\",\r\n \"Universal\",\r\n \"W-SU\",\r\n \"WET\",\r\n \"Zulu\"\r\n]\r\n","/**\r\n * Looks for the value of the specified queryParameter.\r\n * Useful for many initialSelection implementations.\r\n */\r\nexport const lookUpQueryParam = (queryParamName: string): string | null => {\r\n const hash = window.location.hash; // includes everything after the '#'\r\n const queryIndex = hash.indexOf('?');\r\n if (queryIndex === -1) {\r\n return null;\r\n }\r\n\r\n const queryString = hash.substring(queryIndex + 1);\r\n const params = new URLSearchParams(queryString);\r\n return params.get(queryParamName);\r\n}\r\n\r\nexport const lookUpPathPart = (index: number): string | null => {\r\n return window.location.hash.split('/')[index];\r\n}\r\n","import { Component, ContentChild, Input, OnDestroy, OnInit, Optional, Self, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NgControl, Validators } from '@angular/forms';\r\nimport { filter, map, merge, Observable, of, shareReplay, Subject, switchMap, takeUntil, tap } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n imports: [shared]\r\n})\r\nexport class AutocompleteComponent<ItemType> implements ControlValueAccessor, OnInit, OnDestroy {\r\n\r\n @Input() name = '';\r\n @Input() dataFunction: (query: string) => Observable<ItemType[] | null> = () => of(null);\r\n @Input() displayFunction: (item: ItemType) => string = (item) => (item as any)?.name;\r\n @Input() outlineBackground = false;\r\n @ContentChild(TemplateRef) dropdownTemplate?: TemplateRef<unknown>;\r\n @ViewChild(MatAutocompleteTrigger) autocompleteTrigger?: MatAutocompleteTrigger;\r\n\r\n protected readonly Object = Object;\r\n\r\n disabled = false;\r\n\r\n formControl = new FormControl<ItemType | string>('', {nonNullable: true});\r\n\r\n data$ = this.formControl.valueChanges.pipe(\r\n startWith(''), // Autoload\r\n filter((value) => typeof value === 'string'),\r\n switchMap((value) => this.dataFunction(value as string)),\r\n shareReplay(1)\r\n );\r\n\r\n loading$ = merge(\r\n this.formControl.valueChanges.pipe(\r\n filter((value) => typeof value === 'string'),\r\n map(() => true)\r\n ),\r\n this.data$.pipe(map(() => false))\r\n );\r\n\r\n componentIsDestroyed$ = new Subject<void>();\r\n\r\n constructor(@Optional() @Self() public controlDir: NgControl) {\r\n controlDir.valueAccessor = this;\r\n }\r\n\r\n onTouched!: (ev: Event) => void;\r\n\r\n ngOnInit(): void {\r\n this.setControlValidators();\r\n document.addEventListener('wheel', this.scrollEvent, {capture: true, passive: false});\r\n document.addEventListener('touchmove', this.scrollEvent, {capture: true, passive: false});\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n tap((value) => {\r\n if (typeof value !== 'string') {\r\n this.formControl.disable({emitEvent: false});\r\n }\r\n }),\r\n map((value) => (!value || typeof value === 'string' ? '' : value)),\r\n takeUntil(this.componentIsDestroyed$)\r\n ).subscribe(fn);\r\n }\r\n\r\n registerOnTouched(fn: (ev: Event) => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value: ItemType): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n this.formControl.enable({emitEvent: false});\r\n } else {\r\n this.formControl.setValue(value);\r\n this.formControl.disable({emitEvent: false});\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n if (this.formControl.value || this.disabled) {\r\n this.formControl.disable({emitEvent: false});\r\n } else {\r\n this.formControl.enable({emitEvent: false});\r\n }\r\n }\r\n\r\n clear() {\r\n this.formControl.reset();\r\n this.formControl.enable({emitEvent: false});\r\n this.formControl.updateValueAndValidity();\r\n setTimeout(() => {\r\n this.autocompleteTrigger?.closePanel();\r\n }, 0);\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n private setControlValidators() {\r\n if (this.controlDir?.control) {\r\n const isRequired = this.controlDir.control.hasValidator(Validators.required);\r\n\r\n const validators = [];\r\n\r\n if (isRequired) {\r\n validators.push(Validators.required);\r\n }\r\n\r\n if (this.controlDir.control.validator) {\r\n validators.push(this.controlDir.control.validator);\r\n }\r\n\r\n this.formControl.setValidators(validators);\r\n }\r\n }\r\n\r\n private scrollEvent = (event: any): void => {\r\n if (this.autocompleteTrigger?.panelOpen\r\n && !event.srcElement?.className.includes('autocomplete-panel')\r\n && !event.srcElement?.className?.includes('autocomplete-option')) {\r\n event.preventDefault()\r\n }\r\n };\r\n\r\n ngOnDestroy() {\r\n this.componentIsDestroyed$.next();\r\n this.componentIsDestroyed$.complete();\r\n document.removeEventListener('wheel', this.scrollEvent, true);\r\n document.removeEventListener('touchmove', this.scrollEvent, true);\r\n }\r\n}\r\n","<ng-container>\r\n <div class=\"w-full\">\r\n <mat-form-field [ngClass]=\"{ 'outline-background': outlineBackground }\" class=\"w-full\">\r\n <mat-label>\r\n <span>{{ name | translate }}</span>\r\n </mat-label>\r\n <input matInput #autoCompleteInput [formControl]=\"formControl\" [placeholder]=\"name | translate\" autocomplete=\"off\" [matAutocomplete]=\"auto\" (blur)=\"onTouched($event)\" [attr.data-test]=\"name + 'SearchInput'\"/>\r\n <button matSuffix mat-icon-button *ngIf=\"formControl?.value\" (click)=\"clear()\" [disabled]=\"disabled\" type='button'>\r\n <mat-icon class=\"text-mat-sys-primary\">clear</mat-icon>\r\n </button>\r\n @for (error of getErrors(); track error) {\r\n <mat-error>{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [class]=\"'autocomplete-panel'\" [displayWith]=\"displayFunction\">\r\n @if (loading$ | async) {\r\n <mat-option>\r\n <div>{{ 'Loading...' }}</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </mat-option>\r\n } @else {\r\n <mat-option *ngFor=\"let item of data$ | async; let i = index\" [value]=\"item\" class=\"autocomplete-option\" [attr.data-test]=\"name + 'SearchItem' + (i + 1)\">\r\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate ? dropdownTemplate : defaultTemplate\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\r\n <ng-template #defaultTemplate>{{ displayFunction(item) }}</ng-template>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n</ng-container>\r\n","import { Component, ContentChild, ElementRef, Input, OnDestroy, OnInit, Optional, Self, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NgControl } from \"@angular/forms\";\r\nimport { BehaviorSubject, filter, map, merge, Observable, of, shareReplay, Subject, switchMap, takeUntil } from \"rxjs\";\r\nimport { startWith } from \"rxjs/operators\";\r\nimport { MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-autocomplete-chips',\r\n imports: [shared],\r\n templateUrl: './autocomplete-chips.component.html',\r\n styleUrl: './autocomplete-chips.component.scss'\r\n})\r\nexport class AutocompleteChipsComponent<ItemType> implements OnInit, ControlValueAccessor, OnDestroy {\r\n\r\n @Input() name = '';\r\n @Input() dataFunction: (query: string) => Observable<ItemType[] | null> = () => of(null);\r\n @Input() displayFunction: (item: ItemType | any) => string = (item) => (item as any)?.name;\r\n @Input() outlineBackground = false;\r\n @ContentChild(TemplateRef) dropdownTemplate?: TemplateRef<unknown>;\r\n @ViewChild(MatAutocompleteTrigger) autocompleteTrigger?: MatAutocompleteTrigger;\r\n @ViewChild('autoCompleteInput') inputRef!: ElementRef<HTMLInputElement>;\r\n\r\n protected readonly Object = Object;\r\n\r\n disabled = false;\r\n formControl = new FormControl<string>('');\r\n items$ = new BehaviorSubject<ItemType[]>([])\r\n\r\n data$ = this.formControl.valueChanges.pipe(\r\n startWith(''),\r\n filter((value) => typeof value === 'string'),\r\n switchMap((value) => this.dataFunction(value as string)),\r\n shareReplay(1)\r\n );\r\n\r\n loading$ = merge(\r\n this.formControl.valueChanges.pipe(\r\n filter((value) => typeof value === 'string'),\r\n map(() => true)\r\n ),\r\n this.data$.pipe(map(() => false))\r\n );\r\n\r\n componentIsDestroyed$ = new Subject<void>();\r\n\r\n onTouched!: (ev: Event) => void;\r\n\r\n constructor(@Optional() @Self() public controlDir: NgControl) {\r\n controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setControlValidators()\r\n document.addEventListener('wheel', this.scrollEvent, {capture: true, passive: false});\r\n document.addEventListener('touchmove', this.scrollEvent, {capture: true, passive: false});\r\n }\r\n\r\n removeItem(index: number, items: ItemType[]): void {\r\n if (!this.disabled) {\r\n const newItems = items.filter((v, i) => index !== i);\r\n this.items$.next(newItems);\r\n this.formControl.setValue('')\r\n this.inputRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n addItem(event: MatAutocompleteSelectedEvent) {\r\n this.items$.next([...this.items$.value, event.option.value]);\r\n this.formControl.setValue('');\r\n this.inputRef.nativeElement.value = '';\r\n }\r\n\r\n registerOnChange(fn: (value: ItemType[]) => void): void {\r\n this.items$.pipe(\r\n takeUntil(this.componentIsDestroyed$),\r\n ).subscribe(fn);\r\n }\r\n\r\n registerOnTouched(fn: (ev: Event) => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value: ItemType[] | null): void {\r\n if (!!value) {\r\n this.items$.next(value);\r\n } else {\r\n this.formControl.setValue('');\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n if (isDisabled) {\r\n this.formControl.disable({emitEvent: false});\r\n } else {\r\n this.formControl.enable({emitEvent: false});\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n shouldShowOption(item: ItemType, items: ItemType[]) {\r\n return !items.find((i) => (i as any).name === (item as any).name)\r\n }\r\n\r\n private scrollEvent = (event: any): void => {\r\n if (this.autocompleteTrigger?.panelOpen\r\n && !event.srcElement?.className.includes('autocomplete-panel')\r\n && !event.srcElement?.className?.includes('autocomplete-option')) {\r\n event.preventDefault()\r\n }\r\n };\r\n\r\n private setControlValidators() {\r\n if (this.controlDir.control) {\r\n this.formControl.setValidators(this.controlDir.control.validator);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.componentIsDestroyed$.next();\r\n this.componentIsDestroyed$.complete();\r\n document.removeEventListener('wheel', this.scrollEvent, true);\r\n document.removeEventListener('touchmove', this.scrollEvent, true);\r\n }\r\n}\r\n","<div class=\"w-full\" [ngClass]=\"{'required' : !!getErrors().length && !formControl.untouched && !(items$ | async)?.length}\">\r\n <mat-form-field [ngClass]=\"{ 'outline-background': outlineBackground }\" class=\"w-full\">\r\n <mat-label>\r\n <span>{{ name | translate }}</span>\r\n </mat-label>\r\n <mat-chip-grid #chipGrid>\r\n <mat-chip-row *ngFor=\"let item of items$ | async as items; let i = index\"\r\n [removable]=\"!disabled\"\r\n (removed)=\"removeItem(i, items)\">\r\n {{ displayFunction(item) }}\r\n <mat-icon matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\r\n </mat-chip-row>\r\n <input matInput\r\n #autoCompleteInput\r\n [placeholder]=\"name | translate\"\r\n autocomplete=\"off\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipGrid\"\r\n (blur)=\"onTouched($event)\"/>\r\n </mat-chip-grid>\r\n </mat-form-field>\r\n\r\n @for (error of getErrors(); track error) {\r\n @if (!formControl.untouched && !(items$ | async)?.length) {\r\n <mat-error class=\"ml-4 mt-[-2px] text-xs\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n }\r\n</div>\r\n<mat-autocomplete #auto=\"matAutocomplete\" [class]=\"'autocomplete-panel'\" (optionSelected)=\"addItem($event)\">\r\n @if (loading$ | async) {\r\n <mat-option>\r\n <div>{{ 'Loading...' }}</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </mat-option>\r\n } @else {\r\n <ng-container *ngFor=\"let item of data$ | async; let i = index\">\r\n @if (shouldShowOption(item, (items$ | async) ?? [])) {\r\n <mat-option\r\n [value]=\"item\"\r\n class=\"autocomplete-option\"\r\n [attr.data-test]=\"name + 'SearchItem' + (i + 1)\">\r\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate ? dropdownTemplate : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{ item }\"></ng-container>\r\n <ng-template #defaultTemplate>{{ displayFunction(item) }}</ng-template>\r\n </mat-option>\r\n }\r\n </ng-container>\r\n }\r\n</mat-autocomplete>\r\n","import { Component, computed, inject, input, signal, untracked } from '@angular/core';\r\nimport { NgxEchartsDirective } from \"ngx-echarts\";\r\nimport { TimeSeries } from \"./time-series\";\r\nimport { EChartsOption } from 'echarts'\r\nimport { SimpleDateTimePipe } from \"../../pipe/simple-date-time.pipe\";\r\nimport { SimpleDatePipe } from \"../../pipe/simple-date.pipe\";\r\nimport { determineMinMaxValues } from \"../../util/numeric-util\";\r\nimport { ThemeService } from \"../../service/theme.service\";\r\nimport { toSignal } from \"@angular/core/rxjs-interop\";\r\n\r\n@Component({\r\n selector: 'app-basic-time-series-graph',\r\n imports: [NgxEchartsDirective],\r\n providers: [SimpleDatePipe, SimpleDateTimePipe],\r\n templateUrl: './basic-time-series-graph.component.html',\r\n styleUrl: './basic-time-series-graph.component.scss'\r\n})\r\nexport class BasicTimeSeriesGraphComponent {\r\n\r\n private themeService = inject(ThemeService);\r\n protected readonly chartTheme = toSignal(this.themeService.chartTheme$);\r\n timeSeries = input.required<TimeSeries>();\r\n desiredTimeFrame = input<{ from: number; to: number }>();\r\n primaryColor = input<string>();\r\n graphOptions = computed(() => {\r\n const timeSeries = this.timeSeries();\r\n const dataZoom = untracked(this.dataZoom);\r\n\r\n const timeMinMax = determineMinMaxValues(timeSeries.data.map((data) => data.timestamp))\r\n const valueMinMax = determineMinMaxValues(timeSeries.data.map((data) => data.value), 10)\r\n const valueLabelWidth = valueMinMax.max.toString().length * 8;\r\n\r\n return {\r\n grid: {left: Math.max(64, valueLabelWidth), right: 8, top: 32, bottom: 32},\r\n xAxis: [{\r\n type: \"time\",\r\n min: this.desiredTimeFrame()?.from ?? timeMinMax.min,\r\n max: this.desiredTimeFrame()?.to ?? timeMinMax.max\r\n }],\r\n yAxis: [{\r\n type: \"value\",\r\n name: timeSeries.unitSymbol,\r\n min: valueMinMax.min,\r\n max: valueMinMax.max\r\n }],\r\n tooltip: {\r\n trigger: 'axis',\r\n formatter: (params: any) => {\r\n const [timestamp, data] = params[0].data;\r\n return `\r\n <div class=\"flex flex-col gap-y-2\">\r\n <div>${this.timeFormatter.transform(timestamp)}</div>\r\n <div class=\"flex flex-row gap-x-2 items-center\">\r\n <div class=\"h-2 w-2 bg-mat-sys-primary rounded-3xl\"> </div>\r\n <div>${timeSeries.name}:</div>\r\n <div><span class=\"font-bold\">${data}</span><span>${timeSeries.unitSymbol ?? ''}</span></div>\r\n </div>\r\n </div>`\r\n },\r\n axisPointer: {\r\n animation: false\r\n }\r\n },\r\n series: {\r\n name: timeSeries.name,\r\n type: 'line',\r\n sampling: timeSeries.data.length > 24 * 60 * 2 ? 'lttb' : 'none',\r\n symbolSize: 1,\r\n data: timeSeries.data.map(({timestamp, value}) => [timestamp, value]),\r\n color: this.primaryColor() || this.themeService.themeColors.primary\r\n },\r\n dataZoom: [{\r\n type: 'inside',\r\n zoomOnMouseWheel: true,\r\n filterMode: 'none',\r\n start: dataZoom?.start ? dataZoom.start : null,\r\n end: dataZoom?.end ? dataZoom.end : null,\r\n }\r\n ]\r\n } as EChartsOption;\r\n })\r\n dataZoom = signal<{ start: number, end: number } | null>(null)\r\n\r\n constructor(private timeFormatter: SimpleDateTimePipe) {\r\n }\r\n\r\n chartZoom(event: any) {\r\n this.dataZoom.set({\r\n start: event.batch?.[0]?.start,\r\n end: event.batch?.[0]?.end\r\n });\r\n }\r\n}\r\n","<div echarts [options]=\"graphOptions()\" (chartDataZoom)=\"chartZoom($event)\" [theme]=\"chartTheme()!\" class=\"w-full h-full\"></div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { PermissionsService } from \"../../service/permissions.service\";\r\nimport { toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { BehaviorSubject, combineLatestWith, switchMap } from \"rxjs\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-card-labeled-value',\r\n imports: [shared],\r\n templateUrl: './card-labeled-value.component.html',\r\n styleUrl: './card-labeled-value.component.scss'\r\n})\r\nexport class CardLabeledValueComponent {\r\n @Input() set permissions(permissions: string[] | undefined) {\r\n this.permissions$.next(permissions ?? [])\r\n }\r\n\r\n @Input() set useAssetPermissions(useAssetPermissions: boolean | undefined) {\r\n this.useAssetPermissions$.next(useAssetPermissions);\r\n }\r\n\r\n @Input({required: true}) label: string = '';\r\n @Input() editFunction: (() => void) | undefined;\r\n @Input() icon: string = 'edit';\r\n @Input() tooltip: string = '';\r\n\r\n private permissions$ = new BehaviorSubject<string[]>([]);\r\n private useAssetPermissions$ = new BehaviorSubject<boolean | undefined>(undefined);\r\n private hasPermission$ = this.permissions$.pipe(\r\n combineLatestWith(this.useAssetPermissions$),\r\n switchMap(([permissions, useAssetPermissions]) => useAssetPermissions\r\n ? this.permission.hasAnyGlobalOrAssetPermission(permissions)\r\n : this.permission.hasAnyPermission(permissions))\r\n )\r\n hasPermission = toSignal(this.hasPermission$)\r\n\r\n constructor(public permission: PermissionsService) {\r\n }\r\n}\r\n","<mat-card\r\n [ngClass]=\"{'cursor-pointer hover:bg-hover-color': editFunction && hasPermission() }\"\r\n [matTooltipDisabled]=\"!hasPermission()\" (click)=\"editFunction && hasPermission() ? editFunction() : null\"\r\n [matTooltip]=\"tooltip | translate\"\r\n matTooltipPosition=\"above\"\r\n class=\"h-full min-h-22\"\r\n>\r\n <div class=\"flex items-center justify-between p-4 gap-x-4 h-full\">\r\n <div class=\"flex flex-col w-full h-fit max-h-full overflow-hidden\">\r\n <div class=\"font-semibold\">{{ label | translate }}</div>\r\n <div class=\"text-mat-sys-primary flex h-fit max-h-full\">\r\n <ng-content/>\r\n </div>\r\n </div>\r\n @if (editFunction && hasPermission()) {\r\n <button mat-icon-button [ngClass]=\"icon === 'delete' ? 'text-mat-sys-on-error-container' : 'text-mat-sys-primary'\" (click)=\"editFunction(); $event.stopPropagation()\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n</mat-card>\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport interface ConfirmationData {\r\n message: string;\r\n parameters: any;\r\n deleteDialog?: boolean;\r\n actionButtonLabel?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirmation-dialog',\r\n imports: [shared],\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrl: './confirmation-dialog.component.scss'\r\n})\r\nexport class ConfirmationDialogComponent {\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: ConfirmationData, private dialog: MatDialogRef<ConfirmationDialogComponent>) {}\r\n\r\n confirm() {\r\n this.dialog.close(true);\r\n }\r\n}\r\n","<div class=\"flex flex-col flex-auto gap-y-8 p-4 content\">\r\n <div class=\"text-lg\">{{ 'COMMON.CONFIRMATION_DIALOG_TITLE' | translate }}</div>\r\n <div class=\"flex flex-col flex-auto gap-y-4\">\r\n <div class=\"flex flex-col flex-auto gap-y-4 max-h-96 overflow-hidden\">\r\n <div class=\"whitespace-pre-line\">{{ data.message | translate:data.parameters }}</div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row flex-auto gap-x-2 justify-end\">\r\n <button mat-button mat-dialog-close>{{ 'COMMON.CANCEL' | translate }}</button>\r\n <button [ngClass]=\"{'bg-mat-sys-error-container text-mat-sys-on-error-container': data.deleteDialog}\" mat-flat-button\r\n (click)=\"confirm()\">{{ data.actionButtonLabel ? (data.actionButtonLabel! | translate) : (data.deleteDialog ? ('COMMON.DELETE' | translate) : ('COMMON.CONFIRMATION_DIALOG_CONFIRM' | translate)) }}\r\n </button>\r\n </div>\r\n</div>\r\n","import { afterNextRender, Component, DestroyRef, effect, forwardRef, input, viewChild } from '@angular/core';\r\nimport { AbstractControlOptions, ControlValueAccessor, FormControl, FormGroup, FormGroupDirective, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgForm, ValidationErrors, Validator, } from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { MatDateRangePicker } from '@angular/material/datepicker';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { endOfPeriod, RelativeTimePeriod, startOfPeriod, toJsDate } from \"../../util/date-util\";\r\nimport { DateTime } from \"luxon\";\r\nimport { SimpleDatePipe } from \"../../pipe/simple-date.pipe\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { TenantPropertiesService } from \"../../service/tenant-properties.service\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport function parseDateRangeInputPeriod(value: DateRangeValues | null, timezone: string | null) {\r\n if (!value?.periodOption) return null;\r\n\r\n if (value.periodOption === CUSTOM_PERIOD) {\r\n if (!value.from || !value.to) return null;\r\n\r\n return {\r\n periodOption: value.periodOption,\r\n from: toJsDate(value.from, timezone).getTime(),\r\n to: toJsDate(value.to, timezone).getTime(),\r\n };\r\n } else {\r\n return {\r\n periodOption: value.periodOption,\r\n from: startOfPeriod(timezone)[value.periodOption],\r\n to: endOfPeriod(timezone)[value.periodOption],\r\n };\r\n }\r\n}\r\n\r\nexport const CUSTOM_PERIOD = 'CUSTOM_PERIOD';\r\n\r\nexport type RelativeTimePeriodWithCustom = typeof CUSTOM_PERIOD | RelativeTimePeriod;\r\n\r\nexport interface DateRangeValues {\r\n periodOption: RelativeTimePeriodWithCustom;\r\n from?: number;\r\n to?: number;\r\n}\r\n\r\nexport class PeriodErrorStateMatcher implements ErrorStateMatcher {\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n return form?.hasError('incompletePeriod') ?? false;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-date-range-input',\r\n templateUrl: './date-range-input.component.html',\r\n styleUrls: ['./date-range-input.component.scss'],\r\n imports: [shared, SimpleDatePipe],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateRangeInputComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DateRangeInputComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class DateRangeInputComponent implements ControlValueAccessor, Validator {\r\n availableDateOptions = input<RelativeTimePeriod[]>([RelativeTimePeriod.TODAY, RelativeTimePeriod.YESTERDAY, RelativeTimePeriod.LAST_7_DAYS, RelativeTimePeriod.LAST_30_DAYS]);\r\n translationPrefix = input<string>();\r\n allowCustomTimespan = input(true);\r\n isInForm = input(true);\r\n datePicker = viewChild<MatDateRangePicker<Date>>('picker');\r\n validators = input<(() => ValidationErrors)[]>([])\r\n\r\n private validateForm = (form: FormGroup) => {\r\n const {periodOption, from, to} = form.value;\r\n if (periodOption === CUSTOM_PERIOD) {\r\n return from && to ? null : {incompletePeriod: true};\r\n } else {\r\n return periodOption ? null : {required: true};\r\n }\r\n };\r\n onTouched!: (ev: any) => void;\r\n private onChange: (value: any) => void = () => {};\r\n onValidatorChange!: () => void;\r\n\r\n dateRangeForm = new FormGroup({\r\n periodOption: new FormControl(),\r\n from: new FormControl(),\r\n to: new FormControl(),\r\n }, {validators: [this.validateForm]} as AbstractControlOptions);\r\n CUSTOM_PERIOD = CUSTOM_PERIOD;\r\n periodErrorStateMatcher = new PeriodErrorStateMatcher();\r\n\r\n constructor(private destroyRef: DestroyRef, private tenantPropertiesService: TenantPropertiesService) {\r\n afterNextRender(() => {\r\n const datePicker = this.datePicker();\r\n\r\n datePicker?.closedStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\r\n this.onTouched(null);\r\n });\r\n })\r\n\r\n effect(() => {\r\n const validators = this.validators();\r\n\r\n this.dateRangeForm.controls.periodOption.setValidators(validators);\r\n });\r\n }\r\n\r\n writeValue(value: DateRangeValues | null | undefined): void {\r\n if (!value) {\r\n this.dateRangeForm.reset();\r\n } else {\r\n if (value.periodOption !== CUSTOM_PERIOD) {\r\n this.dateRangeForm.patchValue(\r\n {\r\n periodOption: value.periodOption,\r\n from: null,\r\n to: null,\r\n }\r\n );\r\n } else {\r\n this.dateRangeForm.patchValue(\r\n {\r\n periodOption: value.periodOption,\r\n from: value.from !== undefined ? DateTime.fromMillis(value.from) : undefined,\r\n to: value.to !== undefined ? DateTime.fromMillis(value.to) : undefined,\r\n }\r\n );\r\n }\r\n }\r\n this.dateRangeForm.markAsPristine();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n Object.values(this.dateRangeForm.controls).forEach((control) => {\r\n isDisabled ? control.disable() : control.enable();\r\n });\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.dateRangeForm.valid\r\n ? null\r\n : Object.values(this.dateRangeForm.controls).reduce((allErrors, control) => ({...allErrors, ...(control.errors ?? {})}), {} as ValidationErrors);\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n onTimeRangeChanged(selection: MatSelectChange) {\r\n const datePicker = this.datePicker();\r\n if (selection.value.startsWith(CUSTOM_PERIOD) && (!this.dateRangeForm.controls.from.value || !this.dateRangeForm.controls.to.value)) {\r\n datePicker?.open();\r\n }\r\n\r\n this.emitValueChange();\r\n }\r\n\r\n emitValueChange() {\r\n const value = this.onChangeForm()\r\n this.onChange(value)\r\n }\r\n\r\n private onChangeForm() {\r\n const value = this.dateRangeForm.getRawValue();\r\n\r\n if (!value?.periodOption) return null;\r\n\r\n const timezone = this.tenantPropertiesService.timezone;\r\n\r\n if (value.periodOption === CUSTOM_PERIOD) {\r\n if (!value.from || !value.to) return null;\r\n\r\n return {\r\n periodOption: value.periodOption,\r\n from: toJsDate(value.from.toMillis(), timezone).getTime(),\r\n to: toJsDate(value.to.toMillis(), timezone).getTime(),\r\n };\r\n } else {\r\n return {\r\n periodOption: value.periodOption,\r\n from: startOfPeriod(timezone)[value.periodOption as RelativeTimePeriod],\r\n to: endOfPeriod(timezone)[value.periodOption as RelativeTimePeriod],\r\n };\r\n }\r\n }\r\n}\r\n","<div class=\"w-full flex flex-col\" [formGroup]=\"dateRangeForm\">\r\n @if (isInForm()) {\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{ (translationPrefix() ? translationPrefix() + '_LABEL' : 'COMMON.DATE_RANGE_LABEL') | translate }}</mat-label>\r\n <mat-select (blur)=\"onTouched($event)\" formControlName=\"periodOption\" (selectionChange)=\"onTimeRangeChanged($event)\" [errorStateMatcher]=\"periodErrorStateMatcher\" panelClass=\"date-range-panel\">\r\n @for (periodOption of availableDateOptions(); track $index) {\r\n <mat-option [value]=\"periodOption\">{{ 'COMMON.RELATIVE_TIME_PERIOD_' + periodOption | translate }}</mat-option>\r\n }\r\n @if (allowCustomTimespan()) {\r\n <mat-option [value]=\"CUSTOM_PERIOD\">\r\n <div class=\"flex flex-row gap-x-4\">\r\n @if (dateRangeForm.get('from')?.value) {\r\n <div class=\"flex flex-row\">\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('from')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n <span class=\"whitespace-nowrap h-fit\"> - </span>\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('to')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n </div>\r\n } @else {\r\n <div>{{ 'COMMON.RELATIVE_TIME_PERIOD_CUSTOM' | translate }}</div>\r\n }\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n <mat-date-range-input [rangePicker]=\"picker\" style=\"visibility: hidden; width: 0; height: 0;\">\r\n <input (blur)=\"onTouched($event)\" matStartDate formControlName=\"from\">\r\n <input (blur)=\"onTouched($event)\" matEndDate formControlName=\"to\"/>\r\n </mat-date-range-input>\r\n <mat-date-range-picker #picker (closed)=\"emitValueChange()\"></mat-date-range-picker>\r\n @if (dateRangeForm.get('periodOption')?.value === CUSTOM_PERIOD) {\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n }\r\n @if (dateRangeForm.touched && dateRangeForm.hasError('required')) {\r\n <mat-error>\r\n {{ 'COMMON.ERROR_VALIDATION_REQUIRED' | translate }}\r\n </mat-error>\r\n }\r\n @if (dateRangeForm.touched && dateRangeForm.hasError('incompletePeriod')) {\r\n {{ 'COMMON.ERROR_VALIDATION_REQUIRED' | translate }}\r\n }\r\n </mat-form-field>\r\n } @else {\r\n <div class=\"flex\">\r\n <mat-select class=\"date-range-flat-picker-select\" (blur)=\"onTouched($event)\" formControlName=\"periodOption\" (selectionChange)=\"onTimeRangeChanged($event)\" [errorStateMatcher]=\"periodErrorStateMatcher\" panelClass=\"date-range-panel\">\r\n @for (periodOption of availableDateOptions(); track $index) {\r\n <mat-option [value]=\"periodOption\">{{ 'COMMON.RELATIVE_TIME_PERIOD_' + periodOption | translate }}</mat-option>\r\n }\r\n @if (allowCustomTimespan()) {\r\n <mat-option [value]=\"CUSTOM_PERIOD\">\r\n <div class=\"flex flex-row gap-x-4\">\r\n @if (dateRangeForm.get('from')?.value) {\r\n <div class=\"flex flex-row\">\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('from')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n <span class=\"whitespace-nowrap h-fit\"> - </span>\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('to')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n </div>\r\n } @else {\r\n <div>{{ 'COMMON.RELATIVE_TIME_PERIOD_CUSTOM' | translate }}</div>\r\n }\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n <mat-date-range-input [rangePicker]=\"picker\" style=\"visibility: hidden; width: 0; height: 0;\">\r\n <input (blur)=\"onTouched($event)\" matStartDate formControlName=\"from\">\r\n <input (blur)=\"onTouched($event)\" matEndDate formControlName=\"to\"/>\r\n </mat-date-range-input>\r\n <mat-date-range-picker #picker (closed)=\"emitValueChange()\"></mat-date-range-picker>\r\n @if (dateRangeForm.get('periodOption')?.value === CUSTOM_PERIOD) {\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" class=\"date-range-flat-picker-toggle\"></mat-datepicker-toggle>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component, effect, forwardRef, input, Input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { BehaviorSubject, combineLatest, filter, map, merge, Subject, takeUntil } from 'rxjs';\r\nimport { DateTime } from \"luxon\";\r\nimport { NgxMatTimepickerComponent, NgxMatTimepickerDirective } from \"ngx-mat-timepicker\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { startWith } from \"rxjs/operators\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-date-time-form-field',\r\n imports: [shared, NgxMatTimepickerDirective, NgxMatTimepickerComponent],\r\n templateUrl: './date-time-form-field.component.html',\r\n styleUrl: './date-time-form-field.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateTimeFormFieldComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DateTimeFormFieldComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class DateTimeFormFieldComponent implements OnDestroy, ControlValueAccessor, Validator {\r\n @Input() dateLabel?: string;\r\n @Input() timeLabel?: string;\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n formGroup = new FormGroup({\r\n date: new FormControl<DateTime | null>(null),\r\n time: new FormControl<string | null>(null)\r\n })\r\n\r\n onTouched!: (ev: any) => void;\r\n onValidatorChange!: () => void;\r\n private destroy$ = new Subject<void>();\r\n\r\n private readonly timeRegex = /^([01]\\d|2[0-3]):[0-5]\\d$/;\r\n onTimeInputChange = new BehaviorSubject<string | null>(null);\r\n timeChange = merge(this.formGroup.controls.time.valueChanges.pipe(startWith(null)), this.onTimeInputChange).pipe(\r\n filter((value) => !!value)\r\n );\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formGroup.controls.date.clearValidators();\r\n this.formGroup.controls.time.clearValidators();\r\n this.formGroup.controls.date.setValidators(validators);\r\n this.formGroup.controls.time.setValidators(validators);\r\n this.formGroup.controls.date.updateValueAndValidity();\r\n this.formGroup.controls.time.updateValueAndValidity();\r\n this.formGroup.updateValueAndValidity();\r\n })\r\n }\r\n\r\n writeValue(obj: Date | number | string): void {\r\n if (obj) {\r\n const jsDateValue = obj instanceof Date ? obj : new Date(obj);\r\n const dateTimeValue = DateTime.fromJSDate(jsDateValue);\r\n const minutesAndHours = String(jsDateValue.getHours() + ':' + jsDateValue.getMinutes());\r\n this.formGroup.get('date')?.setValue(dateTimeValue, {emitEvent: false})\r\n this.formGroup.get('time')?.setValue(minutesAndHours, {emitEvent: false})\r\n } else {\r\n this.formGroup.get('date')?.setValue(null, {emitEvent: false})\r\n this.formGroup.get('time')?.setValue('00:00', {emitEvent: false})\r\n }\r\n\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n combineLatest([this.formGroup.valueChanges, this.timeChange]).pipe(\r\n takeUntil(this.destroy$),\r\n map(([{date}, time]) => {\r\n if (date && time && this.timeRegex.test(time)) {\r\n const jsDate = date.toJSDate();\r\n const [hours, minutes] = time.split(':');\r\n jsDate.setHours(Number(hours), Number(minutes));\r\n return jsDate;\r\n } else {\r\n return null;\r\n }\r\n })\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n isDisabled ? this.formGroup.disable({emitEvent: false}) : this.formGroup.enable({emitEvent: false});\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formGroup.valid ? null : {dateTimeControl: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next()\r\n this.destroy$.complete();\r\n }\r\n\r\n getDateErrors(): string[] {\r\n return Object.keys(this.formGroup.controls.date.errors ?? [])\r\n .filter((key) => (this.formGroup.controls.date.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getTimeErrors(): string[] {\r\n return Object.keys(this.formGroup.controls.time.errors ?? [])\r\n .filter((key) => (this.formGroup.controls.time.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getDateErrorTooltip() {\r\n return this.getDateErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n getTimeErrorTooltip() {\r\n return this.getTimeErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n onInputChange(event: Event) {\r\n const inputEl = event.target as HTMLInputElement;\r\n const value = inputEl.value;\r\n if (value !== this.formGroup.get('time')?.value) {\r\n this.onTimeInputChange.next(value);\r\n }\r\n }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n <div class=\"flex flex-col gap-y-4\">\r\n <mat-form-field [matTooltip]=\"getDateErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ (dateLabel ?? 'COMMON.DATE') | translate }}</mat-label>\r\n <input [matDatepicker]=\"picker\" formControlName=\"date\" matInput>\r\n <mat-datepicker-toggle [for]=\"picker\" matIconSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n @for (error of getDateErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\" class=\"text-[12px]\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field [matTooltip]=\"getTimeErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ (timeLabel ?? 'COMMON.TIME') | translate }}</mat-label>\r\n <input [format]=\"24\" [ngxMatTimepicker]=\"pickerA\" formControlName=\"time\" matInput (input)=\"onInputChange($event)\"/>\r\n <mat-icon (click)=\"pickerA.open()\" matSuffix> watch_later</mat-icon>\r\n <ngx-mat-timepicker #pickerA></ngx-mat-timepicker>\r\n @for (error of getTimeErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\" class=\"text-[12px]\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n</ng-container>\r\n","import { AfterViewInit, Component, ElementRef, Input, OnDestroy, Optional, Self, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NgControl, ValidationErrors, Validator } from '@angular/forms';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { NotificationService } from \"../../service/notification.service\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'application-drag-drop-file-upload',\r\n templateUrl: './drag-drop-file-upload.component.html',\r\n styleUrls: ['./drag-drop-file-upload.component.scss'],\r\n imports: [shared]\r\n})\r\nexport class DragDropFileUploadComponent implements ControlValueAccessor, Validator, AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('dragDropZone') dragDropZone!: ElementRef<HTMLDivElement>;\r\n @ViewChild('fileInput') fileInput!: ElementRef<HTMLInputElement>;\r\n @Input() accept = '.*';\r\n @Input() multiple?: boolean;\r\n @Input() prompt = 'COMMON.DRAG_DROP_PROMPT';\r\n highlight = false;\r\n disabled = false;\r\n files$ = new BehaviorSubject<File[] | null>(null);\r\n TRUNCATE_NAME_LIMIT = 24;\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(@Optional() @Self() public controlDir: NgControl, private notificationService: NotificationService) {\r\n controlDir.valueAccessor = this;\r\n }\r\n\r\n onTouched!: (ev?: any) => void;\r\n onValidatorChange!: () => void;\r\n onChange = (value: any) => {};\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.controlDir.control?.valid ? null : { dragDropFileUploadControl: { valid: false } };\r\n }\r\n\r\n writeValue(val: any): void {\r\n if (val) {\r\n this.files$.next(val);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {\r\n this.dragDropZone.nativeElement.addEventListener(\r\n eventName,\r\n (ev) => {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n },\r\n false,\r\n );\r\n });\r\n\r\n ['dragenter', 'dragover'].forEach((eventName) => {\r\n this.dragDropZone.nativeElement.addEventListener(\r\n eventName,\r\n () => {\r\n if (!this.disabled) {\r\n this.highlight = true;\r\n }\r\n },\r\n false,\r\n );\r\n });\r\n\r\n ['dragleave', 'drop'].forEach((eventName) => {\r\n this.dragDropZone.nativeElement.addEventListener(\r\n eventName,\r\n () => {\r\n if (!this.disabled) {\r\n this.highlight = false;\r\n }\r\n },\r\n false,\r\n );\r\n });\r\n\r\n this.dragDropZone.nativeElement.addEventListener(\r\n 'click',\r\n (ev) => {\r\n if (!this.disabled) {\r\n this.onTouched();\r\n this.fileInput.nativeElement.click();\r\n }\r\n },\r\n false,\r\n );\r\n\r\n this.dragDropZone.nativeElement.addEventListener(\r\n 'drop',\r\n (ev) => {\r\n const dt = ev.dataTransfer;\r\n const files = dt?.files;\r\n\r\n if (files?.length && !this.disabled) {\r\n this.onTouched();\r\n const newFiles = Array.from(files);\r\n const acceptedFileTypesToRegex = this.accept.replace(/,\\s*/g, '|');\r\n\r\n if (newFiles.filter((file: File) => !file.name.match(acceptedFileTypesToRegex)).length > 0) {\r\n this.notificationService.showError('COMMON.DRAG_DROP_FORMAT_ERROR');\r\n } else {\r\n const value = this.multiple ? [...(this.files$.value ?? []), ...newFiles] : [...newFiles];\r\n this.files$.next(value);\r\n this.onChange(value);\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n }\r\n },\r\n false,\r\n );\r\n }\r\n\r\n getFileName(name: string) {\r\n return name.length > this.TRUNCATE_NAME_LIMIT ? name.slice(0, 19) + '...' : name;\r\n }\r\n\r\n getErrorForTranslation(errors?: ValidationErrors | null): { key: string, params?: any } {\r\n if (!errors) return {key: ''};\r\n\r\n const [error] = Object.keys(errors);\r\n\r\n if (errors?.['required']) return {key: 'COMMON.ERROR_VALIDATION_REQUIRED'};\r\n\r\n if (errors?.['fileSize']) return {key: 'COMMON.DRAG_DROP_FILE_SIZE_ERROR', params: {size: errors['fileSize'] / (1024 * 1024)}};\r\n\r\n const formattedError = error.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`).toUpperCase();\r\n return {key: `COMMON.DRAG_DROP_${formattedError}_ERROR`};\r\n }\r\n\r\n onFileAdded({ target }: { target: any }) {\r\n if (!this.disabled) {\r\n const value = this.multiple ? [...(this.files$?.value ?? []), ...(target?.files ?? [])] : [...(target?.files ?? [])];\r\n this.files$.next(value);\r\n this.onChange(value);\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n }\r\n\r\n deleteFile(event: MouseEvent, index: number) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n (this.files$.value ?? []).splice(index, 1);\r\n const value = this.files$.value?.length ? this.files$.value : null;\r\n this.files$.next(value);\r\n this.onChange(value);\r\n this.onTouched();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<div #dragDropZone class=\"drag-drop-zone flex flex-col items-center justify-center\" [ngClass]=\"{ highlight: highlight, disabled: disabled }\">\r\n @if (files$ | async; as files) {\r\n @if (files.length > 0) {\r\n <div class=\"flex flex-col flex-wrap items-center justify-center\">\r\n @for (file of files; track $index) {\r\n <div class=\"name-wrapper flex flex-row items-center justify-center gap-2\">\r\n <mat-icon>description</mat-icon>\r\n <span [matTooltipDisabled]=\"file.name.length < TRUNCATE_NAME_LIMIT\" [matTooltip]=\"file.name\">{{ getFileName(file.name) }}</span>\r\n <mat-icon class=\"delete-button text-warning-color\" (click)=\"deleteFile($event, $index)\">delete</mat-icon>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <span>{{ prompt | translate }}</span>\r\n }\r\n } @else {\r\n <span>{{ prompt | translate }}</span>\r\n }\r\n @if (controlDir.control?.errors && controlDir.control?.touched) {\r\n <mat-error>{{ getErrorForTranslation(controlDir.control?.errors).key | translate: getErrorForTranslation(controlDir.control?.errors).params }}</mat-error>\r\n }\r\n</div>\r\n<input #fileInput type=\"file\" [attr.multiple]=\"multiple\" [attr.accept]=\"accept\" (change)=\"onFileAdded($event)\"/>\r\n","import { afterRenderEffect, Component, computed, input, output, signal, viewChild } from '@angular/core';\r\nimport { GoogleMap } from \"@angular/google-maps\";\r\nimport { MarkerClusterer, Renderer } from \"@googlemaps/markerclusterer\";\r\nimport { SimpleDateTimePipe } from \"../../pipe/simple-date-time.pipe\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport interface MapItem {\r\n name: string;\r\n lat: number;\r\n lng: number;\r\n trueLat?: number;\r\n trueLng?: number;\r\n path: string;\r\n time: number;\r\n color: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-google-map',\r\n imports: [GoogleMap, shared],\r\n templateUrl: './google-map.component.html',\r\n styleUrl: './google-map.component.scss',\r\n providers: [SimpleDateTimePipe]\r\n})\r\nexport class GoogleMapComponent {\r\n\r\n map = viewChild.required(GoogleMap);\r\n\r\n googleMapId = input.required<string>();\r\n darkTheme = input.required<boolean>();\r\n items = input.required<MapItem[]>();\r\n pinColor = input.required<string>();\r\n\r\n markerClicked = output<MapItem>();\r\n\r\n zoom = signal<number>(4);\r\n\r\n mapOptions = computed<google.maps.MapOptions>(() => {\r\n return {\r\n mapId: this.googleMapId(),\r\n colorScheme: this.darkTheme() ? google.maps.ColorScheme.DARK : google.maps.ColorScheme.LIGHT,\r\n center: {\r\n lat: 0,\r\n lng: 0\r\n },\r\n minZoom: 2,\r\n maxZoom: 22,\r\n restriction: {\r\n latLngBounds: {\r\n north: 85,\r\n south: -85,\r\n west: -180,\r\n east: 180,\r\n },\r\n },\r\n disableDefaultUI: true\r\n };\r\n })\r\n\r\n clusterer = computed(() => {\r\n const renderer: Renderer = {\r\n render: ({count, position}) => {\r\n const content = document.createElement('div');\r\n content.classList.add('text-mat-sys-on-surface')\r\n content.classList.add('bg-mat-sys-surface')\r\n content.style.border = `2px solid ${this.pinColor()}`\r\n content.style.borderRadius = '50%';\r\n content.style.textAlign = 'center';\r\n content.style.fontSize = '12px';\r\n content.style.lineHeight = '38px';\r\n content.style.width = '40px';\r\n content.style.height = '40px';\r\n content.textContent = `${String(count)}`;\r\n return new google.maps.marker.AdvancedMarkerElement({position, content})\r\n }\r\n }\r\n\r\n return new MarkerClusterer({markers: [], map: this.map().googleMap, renderer: renderer, algorithmOptions: {maxZoom: 21}});\r\n });\r\n\r\n markers = computed(() => {\r\n const itemsWithJitter = this.addJitter(this.items())\r\n return itemsWithJitter.map((mapItem) => this.createMarker(mapItem));\r\n })\r\n\r\n mapBounds: google.maps.LatLngBounds = new google.maps.LatLngBounds();\r\n\r\n constructor(private translateService: TranslateService, private simpleDateTimePipe: SimpleDateTimePipe) {\r\n afterRenderEffect(() => {\r\n const markers = this.markers();\r\n\r\n // Prepare map bounds\r\n this.mapBounds = new google.maps.LatLngBounds();\r\n markers.forEach(marker => {\r\n const position = marker.position;\r\n if (position) {\r\n this.mapBounds.extend(position);\r\n }\r\n })\r\n\r\n this.map().fitBounds(this.mapBounds, {top: 100, right: 20, left: 20, bottom: 20});\r\n\r\n // Update default zoom\r\n this.zoom.set(markers.length === 1 ? 18 : (this.map().getZoom() ?? 4));\r\n\r\n const markerClusterer = this.clusterer();\r\n markerClusterer.clearMarkers();\r\n markerClusterer.addMarkers(markers);\r\n });\r\n }\r\n\r\n changeZoom(number: number) {\r\n this.zoom.update(value => Math.max(Math.min(value + number, 22), 2)); // Zoom level must be between 1 and 21\r\n }\r\n\r\n fitBounds() {\r\n this.map().fitBounds(this.mapBounds, {top: 100, right: 10, left: 10, bottom: 10});\r\n }\r\n\r\n private openDetails(mapItem: MapItem) {\r\n this.markerClicked.emit(mapItem);\r\n }\r\n\r\n private createMarker(mapItem: MapItem) {\r\n const lastReadingTime = mapItem.time;\r\n const isOffset = mapItem.trueLat !== undefined && mapItem.trueLng !== undefined;\r\n const lastReading = isOffset ? mapItem.trueLat + ',' + mapItem.trueLng : mapItem.lat + ',' + mapItem.lng;\r\n const offsetNotification = isOffset ? `<span>${this.translateService.instant('DASHBOARDS.MAP_WIDGET_OFFSET_NOTIFICATION')}</span>` : '';\r\n\r\n const infoWindowContent = `\r\n <div class=\"text-black flex flex-col gap-y-2 mt-4 w-fit! h-fit! select-none\">\r\n <span class=\"font-bold\">${mapItem.path}</span>\r\n <span>${lastReadingTime ? this.simpleDateTimePipe.transform(lastReadingTime) : ''}</span>\r\n <span class=\"font-bold mt-4\">${lastReading}</span>\r\n ${offsetNotification}\r\n </div>\r\n `\r\n\r\n const infoWindow = new google.maps.InfoWindow({\r\n content: infoWindowContent,\r\n disableAutoPan: true,\r\n pixelOffset: new google.maps.Size(0, -4)\r\n });\r\n\r\n const pin = document.createElement('div');\r\n pin.innerHTML = `\r\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 24 24\" fill=\"${mapItem.color}\">\r\n <path d=\"M10.453 14.016zM12 2.016q2.906 0 4.945 2.039t2.039 4.945q0 1.453-.727 3.328t-1.758 3.516-2.039 3.07-1.711 2.273l-.75.797q-.281-.328-.75-.867t-1.688-2.156-2.133-3.141-1.664-3.445-.75-3.375q0-2.906 2.039-4.945t4.945-2.039z\"></path>\r\n </svg>\r\n `;\r\n\r\n const marker = new google.maps.marker.AdvancedMarkerElement({\r\n position: {lat: +mapItem.lat, lng: +mapItem.lng},\r\n content: pin,\r\n map: this.map().googleMap\r\n });\r\n\r\n marker.element.addEventListener('mouseenter', () => {\r\n infoWindow.open({\r\n anchor: marker,\r\n map: this.map().googleMap,\r\n shouldFocus: false\r\n });\r\n });\r\n\r\n marker.element.addEventListener('click', () => {\r\n this.openDetails(mapItem);\r\n });\r\n\r\n marker.element.addEventListener('mouseleave', () => {\r\n infoWindow.close();\r\n });\r\n\r\n return marker;\r\n }\r\n\r\n addJitter(mapItems: MapItem[]) {\r\n const processedItems: MapItem[] = [];\r\n\r\n for (const item of mapItems) {\r\n const itemAlreadyProcessed = processedItems.find((i) => item.path === i.path);\r\n\r\n if (!!itemAlreadyProcessed) {\r\n continue;\r\n }\r\n\r\n const itemsWithSameLocation = mapItems.filter((i) => item.lat === i.lat && item.lng === i.lng && item.path !== i.path);\r\n\r\n if (itemsWithSameLocation.length) {\r\n processedItems.push(item);\r\n processedItems.push(...this.spreadMarkersInCircle(item, itemsWithSameLocation))\r\n } else {\r\n processedItems.push(item)\r\n }\r\n }\r\n\r\n return processedItems;\r\n }\r\n\r\n private spreadMarkersInCircle(item: MapItem, itemsToSpread: MapItem[]) {\r\n const result: MapItem[] = [];\r\n const earthRadius = 6378137;\r\n const baseLatRad = item.lat * Math.PI / 180;\r\n const radiusMeters = itemsToSpread.length > 12 ? 40 : 20;\r\n\r\n itemsToSpread.forEach((itemToSpread, index) => {\r\n const angle = (2 * Math.PI * index) / itemsToSpread.length;\r\n const dx = radiusMeters * Math.cos(angle);\r\n const dy = radiusMeters * Math.sin(angle);\r\n\r\n const dLat = (dy / earthRadius) * (180 / Math.PI);\r\n const dLng = (dx / (earthRadius * Math.cos(baseLatRad))) * (180 / Math.PI);\r\n\r\n result.push({\r\n ...itemToSpread,\r\n lat: item.lat + dLat,\r\n lng: item.lng + dLng,\r\n trueLat: itemToSpread.lat,\r\n trueLng: itemToSpread.lng\r\n })\r\n })\r\n\r\n return result;\r\n }\r\n}\r\n","<div class=\"flex w-full h-full\">\r\n <google-map height=\"100%\" width=\"100%\" [options]=\"mapOptions()\" [zoom]=\"zoom()\" class=\"w-full h-full\"/>\r\n <div class=\"absolute bottom-7 right-3 flex flex-col gap-y-1\">\r\n <mat-card class=\"border-none!\">\r\n <button mat-mini-fab (click)=\"fitBounds()\" class=\"bg-transparent! text-mat-sys-on-surface\" type=\"button\">\r\n <mat-icon>filter_center_focus</mat-icon>\r\n </button>\r\n </mat-card>\r\n <mat-card class=\"border-none!\">\r\n <button mat-mini-fab (click)=\"changeZoom(+1)\" [disabled]=\"zoom() === 21\" class=\"bg-transparent! text-mat-sys-on-surface\" type=\"button\">\r\n <mat-icon>add</mat-icon>\r\n </button>\r\n </mat-card>\r\n <mat-card class=\"border-none!\">\r\n <button mat-mini-fab (click)=\"changeZoom(-1)\" [disabled]=\"zoom() === 2\" class=\"bg-transparent! text-mat-sys-on-surface\" type=\"button\">\r\n <mat-icon>remove</mat-icon>\r\n </button>\r\n </mat-card>\r\n </div>\r\n</div>\r\n","import { afterNextRender, Component, ElementRef, Inject, signal, ViewChild, WritableSignal } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { SafeHtml, SafeUrl } from \"@angular/platform-browser\";\r\nimport { shared } from '../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-image-preview',\r\n imports: [shared],\r\n templateUrl: './image-preview.component.html',\r\n styleUrl: './image-preview.component.scss'\r\n})\r\nexport class ImagePreviewComponent {\r\n @ViewChild('imageElement') image!: ElementRef<HTMLImageElement>;\r\n @ViewChild('svgElement') svgElement!: ElementRef<HTMLDivElement>;\r\n dimensionStyles: WritableSignal<{ [key: string]: any }> = signal({});\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: { image: SafeUrl | SafeHtml }) {\r\n afterNextRender(() => {\r\n if (window.visualViewport) {\r\n if (this.image) {\r\n if (this.image.nativeElement.naturalWidth < window.visualViewport.width && this.image.nativeElement.naturalHeight < window.visualViewport.height) {\r\n this.dimensionStyles.set({width: 'auto', height: 'auto'});\r\n return;\r\n }\r\n\r\n const aspect = this.image.nativeElement.naturalWidth / this.image.nativeElement.naturalHeight\r\n\r\n const dimensions = window.visualViewport.width > window.visualViewport.height\r\n ? {width: (window.visualViewport.height - 40) * aspect + 'px', height: window.visualViewport.height - 40 + 'px'}\r\n : {width: (window.visualViewport.width - 40) + 'px', height: (window.visualViewport.width - 40) * aspect + 'px'}\r\n\r\n this.dimensionStyles.set(dimensions);\r\n } else {\r\n const svgImage = this.svgElement.nativeElement.children[0];\r\n\r\n if (svgImage.clientWidth > svgImage.clientHeight) {\r\n this.dimensionStyles.set({width: '80vw', height: 'auto'});\r\n } else {\r\n this.dimensionStyles.set({width: 'auto', height: '80vh'});\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n isHtml(image: SafeUrl | SafeHtml | null): boolean {\r\n return image !== null && image.constructor.name === 'SafeHtmlImpl';\r\n }\r\n}\r\n","<div class=\"relative overflow-hidden\" [ngStyle]=\"dimensionStyles() ? dimensionStyles() : {'opacity': '0'}\">\r\n <mat-icon class=\"absolute top-4 right-4 hover:cursor-pointer text-mat-sys-surface\" matDialogClose>close</mat-icon>\r\n @if (!isHtml(data.image)) {\r\n <img #imageElement [attr.src]=\"data.image\" alt=\"ImagePreview\"/>\r\n } @else {\r\n <div #svgElement class=\"p-4\" [innerHTML]=\"data.image\"></div>\r\n }\r\n</div>\r\n","import { Component, computed, inject, input, Signal } from '@angular/core';\r\nimport { AsyncPipe } from \"@angular/common\";\r\nimport { of } from \"rxjs\";\r\nimport { DomSanitizer, SafeHtml, SafeUrl } from \"@angular/platform-browser\";\r\nimport { ImagePreviewComponent } from \"./image-preview/image-preview.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n selector: 'app-image-display',\r\n imports: [AsyncPipe],\r\n templateUrl: './image-display.component.html',\r\n styleUrl: './image-display.component.scss'\r\n})\r\nexport class ImageDisplayComponent {\r\n\r\n readonly sanitizer = inject(DomSanitizer);\r\n readonly dialog = inject(MatDialog);\r\n\r\n value = input.required<string | null | undefined>();\r\n\r\n imageUrl: Signal<SafeUrl> = computed(() => {\r\n const value = this.value();\r\n\r\n if (!value) {\r\n return of(null)\r\n }\r\n\r\n return this.sanitizer.bypassSecurityTrustUrl(value);\r\n })\r\n\r\n isHtml(image: SafeUrl | SafeHtml | null): boolean {\r\n // Constructor name is different when built for production, have to check property\r\n return image !== null && ((image as any)['changingThisBreaksApplicationSecurity']?.startsWith('<?xml') || (image as any)['changingThisBreaksApplicationSecurity']?.startsWith('<svg'));\r\n }\r\n\r\n openImage(image: SafeUrl) {\r\n this.dialog.open(ImagePreviewComponent, {\r\n data: {\r\n image: image,\r\n },\r\n });\r\n }\r\n}\r\n","@if (imageUrl(); as image) {\r\n @if (isHtml(image)) {\r\n <div (click)=\"openImage(image)\" [innerHTML]=\"image\" class=\"max-h-full h-full w-full object-contain block mt-1 hover:cursor-pointer\"></div>\r\n } @else {\r\n <img (click)=\"openImage(image)\" [attr.src]=\"image\" class=\"max-h-full h-full w-full object-contain block mt-1 hover:cursor-pointer\" alt=\"\"/>\r\n }\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: 'app-labeled-value',\r\n imports: [TranslateModule],\r\n templateUrl: './labeled-value.component.html',\r\n styleUrl: './labeled-value.component.scss'\r\n})\r\nexport class LabeledValueComponent {\r\n\r\n name = input.required<string>();\r\n\r\n}\r\n","<div class=\"flex flex-row gap-x-2 items-center\">\r\n <div class=\"font-bold\">{{ name() | translate }}:</div>\r\n <div class=\"flex flex-row items-center gap-x-2\">\r\n <ng-content/>\r\n </div>\r\n</div>\r\n","import { Component, computed, input } from '@angular/core';\r\nimport { catchError, EMPTY, from, map, Observable, of, switchMap } from \"rxjs\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\nimport { SvgIcon } from \"../+common/model/icon\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-loaded-icon',\r\n imports: [shared],\r\n templateUrl: './loaded-icon.component.html',\r\n styleUrl: './loaded-icon.component.scss'\r\n})\r\nexport class LoadedIconComponent {\r\n\r\n iconRequest = input.required<Observable<Blob | null>>();\r\n defaultIcon = input.required<SvgIcon | string>();\r\n size = input.required<number>();\r\n\r\n icon = computed(() => {\r\n return this.iconRequest().pipe(\r\n switchMap(response => {\r\n if (!response) {\r\n return EMPTY;\r\n }\r\n\r\n const file = new File([response], 'icon.svg');\r\n return from(file.text()).pipe(\r\n map(text => {\r\n const svg = new DOMParser().parseFromString(text, \"image/svg+xml\");\r\n const svgTag = svg.documentElement;\r\n svgTag.setAttribute(\"width\", this.size().toString());\r\n svgTag.setAttribute(\"height\", this.size().toString());\r\n const dimensionedSvg = new XMLSerializer().serializeToString(svg);\r\n return this.sanitizer.bypassSecurityTrustHtml(dimensionedSvg);\r\n })\r\n );\r\n }),\r\n catchError(() => {\r\n return of(null);\r\n }));\r\n })\r\n\r\n isSvgIcon(): SvgIcon | null {\r\n const defaultIcon = this.defaultIcon()\r\n return typeof defaultIcon !== 'string' && Object.hasOwn(defaultIcon, 'id') ? defaultIcon as SvgIcon : null;\r\n }\r\n\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n}\r\n","<div [style.height.px]=\"size()\" [style.width.px]=\"size()\">\r\n @if (icon() | async; as icon) {\r\n <div [innerHTML]=\"icon\"></div>\r\n } @else {\r\n @if (isSvgIcon(); as icon) {\r\n <mat-icon [svgIcon]=\"icon.id\"></mat-icon>\r\n } @else {\r\n <mat-icon>{{ defaultIcon() }}</mat-icon>\r\n }\r\n }\r\n</div>\r\n","import { Component, effect, input, output, signal, untracked } from '@angular/core';\r\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from \"@angular/cdk/scrolling\";\r\nimport { shared } from '../../common.config';\r\n\r\ninterface TableColumn {\r\n name: string;\r\n shouldSort: boolean;\r\n shouldTranslateValue?: boolean\r\n}\r\n\r\ntype SortDirection = 'asc' | 'desc';\r\n\r\n@Component({\r\n selector: 'app-local-sort-table',\r\n imports: [\r\n CdkFixedSizeVirtualScroll,\r\n CdkVirtualForOf,\r\n CdkVirtualScrollViewport,\r\n shared\r\n ],\r\n templateUrl: './local-sort-table.component.html',\r\n styleUrl: './local-sort-table.component.scss',\r\n})\r\nexport class LocalSortTableComponent {\r\n columns = input.required<TableColumn[]>();\r\n data = input.required<Record<string, any>[]>();\r\n translationPrefix = input<string>('COMMON.')\r\n loading = input<boolean>(false);\r\n itemSelected = output<Record<string, any>>();\r\n\r\n sortDirection: SortDirection = 'asc';\r\n sortField!: string;\r\n displayData = signal<Record<string, any>[] | null>(null);\r\n sorting = signal(false);\r\n\r\n constructor() {\r\n effect(() => {\r\n const data = this.data();\r\n const columns = this.columns();\r\n\r\n if (data && columns) {\r\n if (data.length) {\r\n (columns ?? []).forEach((column) => {\r\n const valid = Object.hasOwn(data[0], column.name);\r\n\r\n if (!valid) {\r\n console.error('Object doesnt have \\'' + column.name + '\\' property');\r\n }\r\n });\r\n }\r\n\r\n if (!this.sortField) {\r\n this.sortField = columns[0].name;\r\n }\r\n this.sort(columns[0].name, false);\r\n }\r\n })\r\n }\r\n\r\n sort(field: string, shouldUpdateDirectionAndField = true) {\r\n const data = this.data();\r\n\r\n if (!this.sortField) {\r\n return;\r\n }\r\n\r\n if (shouldUpdateDirectionAndField) {\r\n this.sortField = field;\r\n this.sortDirection === 'asc' ? this.sortDirection = 'desc': this.sortDirection = 'asc';\r\n }\r\n\r\n if (data) {\r\n this.sorting.set(true)\r\n const sortedData = data.sort((a, b) => this.sortDirection === 'asc' ? a[field] > b[field] ? 1 : -1 : a[field] > b[field] ? -1 : 1);\r\n this.displayData.set(structuredClone(sortedData));\r\n this.sorting.set(false);\r\n }\r\n }\r\n}\r\n","<table>\r\n <thead>\r\n <tr>\r\n @for (column of columns(); track column.name) {\r\n <th class=\"font-medium! truncate\" [ngClass]=\"{'sort-field': column.shouldSort, 'cursor-pointer': column.shouldSort}\" (click)=\"column.shouldSort ? sort(column.name) : undefined\">\r\n <div class=\"flex flex-row items-center gap-x-2\">\r\n {{ (translationPrefix().toUpperCase() +column.name.toUpperCase()) | translate }}\r\n @if (column.shouldSort) {\r\n <mat-icon>{{ sortDirection === 'asc' ? 'arrow_upward' : 'arrow_downward' }}</mat-icon>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @if (loading()) {\r\n <div class=\"w-full h-full flex flex-col justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n } @else {\r\n @if (!sorting()) {\r\n <cdk-virtual-scroll-viewport [itemSize]=\"56\" class=\"viewport\">\r\n <tr *cdkVirtualFor=\"let element of (displayData() ?? [])\" (click)=\"itemSelected.emit(element)\">\r\n @for (column of columns(); track column.name) {\r\n <td class=\"cursor-pointer truncate\">\r\n <span [matTooltip]=\"column.shouldTranslateValue ? ((translationPrefix() + element[column.name]) | translate) : element[column.name]\">\r\n {{ column.shouldTranslateValue ? ((translationPrefix() + element[column.name]) | translate) : element[column.name] }}\r\n </span>\r\n }\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n }\r\n }\r\n </tbody>\r\n</table>\r\n","import { Component, Input } from '@angular/core';\r\nimport { shared } from '../../common.config';\r\n\r\n/**\r\n * Determines the width ratio between master and detail parts.\r\n * The idea is to use appropriate ratios to maintain the equal width between all master parts\r\n * in the case where a master-detail component is embedded as a detail of another.\r\n *\r\n * 'full' width will use 25% of the available width for the master part.\r\n * 'medium' will use 33% of the available width, which corresponds to 25% of total width when embedded once.\r\n * 'narrow' will use 50% of the available width, which corresponds to 25% of total width when embedded twice.\r\n */\r\nexport type MasterDetailDisplayRatio = 'full' | 'wide' | 'medium' | 'narrow' | 'reverse';\r\n\r\n@Component({\r\n selector: 'app-master-details-view',\r\n templateUrl: './master-details-view.component.html',\r\n styleUrls: ['./master-details-view.component.scss'],\r\n imports: [shared]\r\n})\r\nexport class MasterDetailsViewComponent {\r\n @Input() displayRatio: MasterDetailDisplayRatio = 'wide';\r\n\r\n calculateWidth(): string {\r\n switch (this.displayRatio) {\r\n case 'full':\r\n return 'basis-1/5 max-w-1/5';\r\n case 'wide':\r\n return 'basis-1/4 max-w-1/4';\r\n case 'medium':\r\n return 'basis-1/3 max-w-1/3';\r\n case 'narrow':\r\n return 'basis-1/2 max-w-1/2';\r\n case 'reverse':\r\n return 'basis-3/4 max-w-3/4';\r\n default:\r\n throw Error('Too deep!');\r\n }\r\n }\r\n}\r\n","<div class=\"container flex h-full w-full min-w-full min-h-full overflow-hidden\">\r\n <div [ngClass]=\"calculateWidth()\" class=\"master flex shrink-0 grow-0\">\r\n <ng-content select=\"[app-master]\"></ng-content>\r\n </div>\r\n <mat-divider [vertical]=\"true\"></mat-divider>\r\n <div class=\"details flex shrink grow overflow-hidden\">\r\n <ng-content select=\"[app-details]\"></ng-content>\r\n </div>\r\n</div>\r\n","import { afterNextRender, Component, computed, DestroyRef, effect, input, output, signal } from '@angular/core';\r\nimport { NestedListDataSource, NestedListItem } from \"./nested-list.data-source\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { startWith } from \"rxjs/operators\";\r\nimport { catchError, map, Observable, take } from \"rxjs\";\r\nimport { ScrollIntoViewDirective } from \"../../directive/scroll-into-view.directive\";\r\nimport { LoadedIcon, SvgIcon } from \"../+common/model/icon\";\r\nimport { LoadedIconComponent } from \"../loaded-icon/loaded-icon.component\";\r\nimport { OverflowClassDirective } from \"../../directive/overflow-class.directive\";\r\nimport { NestedListDataControl } from \"./nested-list.data-control\";\r\nimport { DndDraggableDirective } from \"ngx-drag-drop\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport interface SearchAction {\r\n name: string;\r\n icon: SvgIcon;\r\n defaultAction?: boolean;\r\n action: (params?: any) => void;\r\n disableCondition?: (params?: any) => boolean;\r\n disabledTooltip?: string;\r\n condition: (params?: any) => Observable<boolean>;\r\n}\r\n\r\n@Component({\r\n selector: 'app-nested-list-view',\r\n imports: [shared, ScrollIntoViewDirective, LoadedIconComponent, OverflowClassDirective, DndDraggableDirective],\r\n templateUrl: './nested-list-view.component.html',\r\n styleUrl: './nested-list-view.component.scss'\r\n})\r\nexport class NestedListViewComponent<ItemType> {\r\n\r\n dataSource = input.required<NestedListDataSource<ItemType>>();\r\n dataControl = input.required<NestedListDataControl<ItemType>>();\r\n\r\n position = input<'inner' | 'outer'>('outer');\r\n disableThresholdId = input<string | undefined | null>(null);\r\n hideDetails = input<boolean>(false);\r\n isColoredInput = input<boolean>(false);\r\n searchActions = input<SearchAction[]>([]);\r\n defaultSearchAction = computed(() => {\r\n const actions = this.searchActions();\r\n\r\n return actions.find((action) => !!action.defaultAction)\r\n });\r\n otherSearchActions = computed(() => {\r\n const actions = this.searchActions();\r\n\r\n return actions.filter((action) => !action.defaultAction)\r\n });\r\n\r\n width = computed(() => {\r\n if (this.hideDetails()) {\r\n return 'w-full'\r\n }\r\n\r\n return this.position() === 'outer' ? 'basis-1/4' : 'basis-1/2';\r\n })\r\n\r\n loadingBreadcrumbs = signal<boolean>(true);\r\n loadingChildren = signal<boolean>(true);\r\n\r\n selectedItem = signal<NestedListItem<ItemType> | null>(null);\r\n\r\n hideSearch = input<boolean>(false);\r\n nameSearchControl = new FormControl<string>('');\r\n\r\n searchTerm = toSignal(this.nameSearchControl.valueChanges.pipe(startWith(this.nameSearchControl.getRawValue())));\r\n breadcrumbs = signal<NestedListItem<ItemType>[]>([]);\r\n\r\n roots = signal<NestedListItem<ItemType>[]>([]);\r\n hasMultipleRoots = signal<boolean>(false);\r\n rootButtonText = input<string>('COMMON.BACK_TO_ROOTS_BUTTON_TEXT')\r\n\r\n enableDrag = input<boolean>(false);\r\n isDragging = signal<boolean>(false);\r\n dragging = output<boolean>()\r\n\r\n children = signal<NestedListItem<ItemType>[]>([]);\r\n\r\n filteredChildren = computed(() => {\r\n const searchTerm = this.searchTerm();\r\n if (!searchTerm) {\r\n return this.children();\r\n }\r\n\r\n return this.children().filter(item => item.name.toLowerCase().includes(searchTerm.toLowerCase()));\r\n })\r\n\r\n itemSelected = output<ItemType | null>();\r\n\r\n constructor(private destroyRef: DestroyRef, private dialog: MatDialog) {\r\n afterNextRender(() => {\r\n const dataSource = this.dataSource();\r\n const dataControl = this.dataControl();\r\n\r\n this.initiateState(dataSource.initialSelection());\r\n\r\n dataControl.changeSelection$.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((id) => {\r\n const breadcrumbs = this.breadcrumbs();\r\n const breadcrumb = breadcrumbs.find(value => value.id === id);\r\n if (breadcrumb) {\r\n this.selectBreadcrumb(breadcrumb);\r\n return;\r\n }\r\n\r\n const children = this.children();\r\n const child = children.find(value => value.id === id);\r\n if (child) {\r\n this.selectChild(child);\r\n return;\r\n }\r\n\r\n this.initiateState(id);\r\n })\r\n\r\n dataControl.childAdded.pipe(\r\n map((item) => dataSource.prepareItem(item)),\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((newChild) => {\r\n this.children.update(children => [...children, newChild].sort(dataSource.sortingFunction));\r\n this.selectChild(newChild);\r\n })\r\n\r\n dataControl.itemRemoved$.pipe(\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((id) => {\r\n const breadcrumbs = this.breadcrumbs();\r\n const index = breadcrumbs.findIndex(breadcrumb => breadcrumb.id === id);\r\n this.breadcrumbs.update(breadcrumbs => breadcrumbs.slice(0, index));\r\n const lastItem = this.breadcrumbs()[this.breadcrumbs().length - 1];\r\n this.selectedItem.set(lastItem);\r\n this.itemSelected.emit(lastItem.data);\r\n })\r\n\r\n dataControl.itemUpdated$.pipe(\r\n map((item) => dataSource.prepareItem(item)),\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe((updatedItem) => {\r\n this.breadcrumbs.update(breadcrumbs => breadcrumbs.map(breadcrumb => breadcrumb.id === updatedItem.id ? updatedItem : breadcrumb));\r\n this.children.update(children => children.map(child => child.id === updatedItem.id ? updatedItem : child));\r\n })\r\n })\r\n\r\n effect(() => {\r\n const dataSource = this.dataSource();\r\n\r\n const selectedItem = this.selectedItem();\r\n if (!selectedItem) {\r\n return;\r\n }\r\n\r\n this.loadingChildren.set(true);\r\n dataSource.loadChildren(selectedItem).pipe(\r\n catchError(() => {\r\n this.loadingChildren.set(false);\r\n return [];\r\n }),\r\n map((data) => data.map((value) => dataSource.prepareItem(value)).sort(dataSource.sortingFunction)),\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe(children => {\r\n this.loadingChildren.set(false);\r\n this.children.set(children);\r\n })\r\n });\r\n\r\n effect(() => {\r\n const isDragging = this.isDragging();\r\n\r\n this.dragging.emit(isDragging);\r\n })\r\n }\r\n\r\n private initiateState(startingItem: string | null) {\r\n const dataSource = this.dataSource();\r\n this.breadcrumbs.set([]);\r\n this.children.set([]);\r\n\r\n this.loadingBreadcrumbs.set(true);\r\n this.loadingChildren.set(true);\r\n\r\n dataSource.loadRoots().pipe(\r\n map((data) => data.map((value) => dataSource.prepareItem(value, true))),\r\n take(1)\r\n ).subscribe(roots => {\r\n this.roots.set(roots);\r\n this.hasMultipleRoots.set(roots.length > 1);\r\n\r\n if (startingItem) {\r\n dataSource.loadBreadcrumbs(startingItem).pipe(\r\n map((data) => data.map((value) => dataSource.prepareItem(value))),\r\n take(1)\r\n ).subscribe(breadcrumbs => {\r\n this.loadingBreadcrumbs.set(false);\r\n this.breadcrumbs.set(breadcrumbs);\r\n\r\n if (breadcrumbs && breadcrumbs.length > 0) {\r\n const selectedItem = breadcrumbs[breadcrumbs.length - 1];\r\n this.selectedItem.set(selectedItem);\r\n this.itemSelected.emit(selectedItem.data);\r\n }\r\n })\r\n } else {\r\n this.loadingBreadcrumbs.set(false);\r\n this.breadcrumbs.set(roots);\r\n\r\n if (this.roots().length && !this.hasMultipleRoots()) {\r\n const selectedItem = this.roots()[0];\r\n this.selectedItem.set(selectedItem);\r\n this.itemSelected.emit(selectedItem.data);\r\n } else {\r\n this.itemSelected.emit(null);\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n selectBreadcrumb(item: NestedListItem<ItemType>) {\r\n if (this.selectedItem()?.id === item?.id) {\r\n return;\r\n }\r\n\r\n if (item.isRoot) {\r\n const index = this.breadcrumbs().findIndex((breadcrumb) => breadcrumb.id === item.id);\r\n this.breadcrumbs.update(breadcrumbs => breadcrumbs.slice(index, breadcrumbs.indexOf(item) + 1));\r\n } else {\r\n this.breadcrumbs.update(breadcrumbs => breadcrumbs.slice(0, breadcrumbs.indexOf(item) + 1));\r\n }\r\n\r\n this.nameSearchControl.setValue(null);\r\n this.selectedItem.set(item);\r\n this.itemSelected.emit(item.data);\r\n }\r\n\r\n selectChild(item: NestedListItem<ItemType>) {\r\n if (this.selectedItem()?.id === item?.id) {\r\n return;\r\n }\r\n\r\n this.breadcrumbs.update(breadcrumbs => [...breadcrumbs, item]);\r\n\r\n this.nameSearchControl.setValue(null);\r\n this.selectedItem.set(item);\r\n this.itemSelected.emit(item.data);\r\n }\r\n\r\n dragStart(event: DragEvent, item: ItemType) {\r\n this.isDragging.set(true)\r\n\r\n event.dataTransfer?.setData('application/json', JSON.stringify([item]));\r\n }\r\n\r\n resetNavigation() {\r\n this.selectedItem.set(null);\r\n this.itemSelected.emit(null);\r\n this.initiateState(null);\r\n }\r\n\r\n shouldDisableBreadcrumbClick(item: NestedListItem<ItemType>) {\r\n const disableThresholdId = this.disableThresholdId()\r\n return disableThresholdId && !item.idPath.includes(disableThresholdId);\r\n }\r\n\r\n isAsyncIcon(item: NestedListItem<ItemType>): LoadedIcon | null {\r\n return !!item.icon && typeof item.icon !== 'string' && !Object.hasOwn(item.icon, 'id') ? item.icon as LoadedIcon : null;\r\n }\r\n\r\n isSvgIcon(item: NestedListItem<ItemType>): SvgIcon | null {\r\n return !!item.icon && typeof item.icon !== 'string' && Object.hasOwn(item.icon, 'id') ? item.icon as SvgIcon : null;\r\n }\r\n\r\n formControlAction(params?: any) {\r\n const actions = this.searchActions();\r\n const boundAction = actions.find((action) => !!action.defaultAction);\r\n const empty = () => undefined;\r\n\r\n if (!boundAction) {\r\n return empty();\r\n }\r\n\r\n if (boundAction.disableCondition) {\r\n return boundAction.disableCondition(params) ? empty() : boundAction.action(params);\r\n }\r\n\r\n return boundAction.action(params);\r\n }\r\n}\r\n","<div class=\"container flex h-full w-full min-w-full min-h-full relative overflow-hidden\">\r\n <div [ngClass]=\"width()\" class=\"master flex shrink-0 grow-0 min-w-0\">\r\n\r\n <!-- LISTING -->\r\n <div class=\"w-full h-full flex flex-col gap-y-2 relative\" [ngClass]=\"hideSearch() ? 'pt-2' : 'pt-1'\">\r\n\r\n <!-- HEADER -->\r\n <div class=\"flex w-full flex-row gap-x-2\">\r\n\r\n <!-- SEARCH -->\r\n @if (!hideSearch()) {\r\n <div class=\"flex shrink grow flex-row pt-1 gap-x-2 overflow-hidden\">\r\n <mat-form-field class=\"flex grow shrink small-input\" (keydown.enter)=\"defaultSearchAction()?.action({parent: this.selectedItem()?.data, control: this.nameSearchControl})\" [ngClass]=\"{'colored-input': isColoredInput()}\">\r\n <mat-label>{{ 'COMMON.SEARCH_IMMEDIATE_CHILDREN' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"nameSearchControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n @if (defaultSearchAction(); as defaultAction) {\r\n <div [matTooltip]=\"defaultAction.disabledTooltip ? (defaultAction.disabledTooltip | translate) : ''\" [matTooltipDisabled]=\"defaultAction.disableCondition ? !defaultAction.disableCondition({control: nameSearchControl}) : true\">\r\n <button mat-mini-fab [disabled]=\"defaultAction.disableCondition ? defaultAction.disableCondition({control: nameSearchControl}) : false\" (click)=\"defaultAction.action({parent: this.selectedItem()?.data, control: this.nameSearchControl})\" [matTooltip]=\"defaultAction.name | translate\">\r\n <mat-icon [svgIcon]=\"defaultAction.icon.id\"/>\r\n </button>\r\n </div>\r\n }\r\n @for (action of otherSearchActions(); track $index) {\r\n @if (action.condition() | async) {\r\n <div [matTooltip]=\"action.disabledTooltip ? (action.disabledTooltip | translate) : ''\" [matTooltipDisabled]=\"action.disableCondition ? !action.disableCondition() : true\">\r\n <button mat-mini-fab [disabled]=\"action.disableCondition ? action.disableCondition() : false\" (click)=\"action.action()\" [matTooltip]=\"action.name | translate\">\r\n <mat-icon [svgIcon]=\"action.icon.id\"/>\r\n </button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- LIST -->\r\n <div class=\"flex flex-col w-full h-full relative overflow-hidden\">\r\n\r\n <!-- BREADCRUMBS -->\r\n <div class=\"max-h-[50%] overflow-auto shrink-0\" [overflowClass]=\"'pr-4'\">\r\n @if (!loadingBreadcrumbs()) {\r\n @if (breadcrumbs(); as items) {\r\n <div class=\"flex flex-col w-full overflow-x-hidden\">\r\n @for (item of items; let i = $index; track i) {\r\n @if (selectedItem() && hasMultipleRoots() && i === 0) {\r\n <mat-card (click)=\"resetNavigation()\" class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\">\r\n <div class=\"px-3 flex flex-row items-center gap-x-2 item-card\">\r\n <div class=\"shrink-0 h-6\">\r\n <mat-icon>arrow_upward</mat-icon>\r\n </div>\r\n <span class=\"text-mat-sys-on-surface\">{{ rootButtonText() | translate: {default: rootButtonText()} }}</span>\r\n </div>\r\n </mat-card>\r\n }\r\n <mat-card class=\"mb-2 cursor-pointer\" (click)=\"selectBreadcrumb(item)\"\r\n [dndDraggable]=\"item.data\" [dndDisableDragIf]=\"!enableDrag() || !!shouldDisableBreadcrumbClick(item)\" (dndStart)=\"dragStart($event, item.data)\" (dndEnd)=\"isDragging.set(false)\"\r\n [ngClass]=\"[selectedItem()?.id === item.id ? 'selected-item' : 'regular-item hover:bg-hover-color', shouldDisableBreadcrumbClick(item) ? 'bg-disabled-color opacity-50 hover:cursor-auto pointer-events-none disabled' : '']\"\r\n [appScrollIntoView]=\"selectedItem()?.id === item.id\" [matTooltip]=\"item.name\" matTooltipPosition=\"right\">\r\n <div class=\"px-3 flex flex-row items-center justify-between gap-x-2 item-card\">\r\n <div class=\"flex flex-row grow items-center gap-x-2 overflow-hidden\">\r\n @if (item.icon) {\r\n <div class=\"shrink-0 h-6\">\r\n @if (isAsyncIcon(item); as loadedIcon) {\r\n <app-loaded-icon [iconRequest]=\"loadedIcon.data\" [defaultIcon]=\"loadedIcon.defaultIcon\" [size]=\"24\"/>\r\n }\r\n @if (isSvgIcon(item); as svgIcon) {\r\n <mat-icon [svgIcon]=\"svgIcon.id\"></mat-icon>\r\n }\r\n @if (typeof item.icon === 'string') {\r\n <mat-icon>{{ item.icon }}</mat-icon>\r\n }\r\n </div>\r\n }\r\n <span [ngClass]=\"[selectedItem()?.id === item.id ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface']\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n @if (enableDrag() && !shouldDisableBreadcrumbClick(item)) {\r\n <mat-icon>drag_indicator</mat-icon>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <mat-divider class=\"w-full pb-2\"/>\r\n\r\n <!-- CHILDREN -->\r\n @if (selectedItem()) {\r\n <div class=\"flex-1 overflow-auto min-h-0\" [overflowClass]=\"'pr-4'\">\r\n @if (!loadingChildren()) {\r\n @if (filteredChildren(); as items) {\r\n @if (items.length) {\r\n <div class=\"flex flex-col w-full overflow-y-auto overflow-x-hidden\">\r\n @for (item of items; track $index) {\r\n <mat-card class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\" (click)=\"selectChild(item)\" [matTooltip]=\"item.name\" matTooltipPosition=\"right\"\r\n [dndDraggable]=\"item.data\" [dndDisableDragIf]=\"!enableDrag()\" (dndStart)=\"dragStart($event, item.data)\" (dndEnd)=\"isDragging.set(false)\">\r\n <div class=\"px-3 flex flex-row items-center justify-between gap-x-2 item-card\">\r\n <div class=\"flex flex-row grow items-center gap-x-2 overflow-hidden\">\r\n @if (item.icon) {\r\n <div class=\"shrink-0 h-6\">\r\n @if (isAsyncIcon(item); as loadedIcon) {\r\n <app-loaded-icon [iconRequest]=\"loadedIcon.data\" [defaultIcon]=\"loadedIcon.defaultIcon\" [size]=\"24\"/>\r\n }\r\n @if (isSvgIcon(item); as svgIcon) {\r\n <mat-icon [svgIcon]=\"svgIcon.id\"></mat-icon>\r\n }\r\n @if (typeof item.icon === 'string') {\r\n <mat-icon>{{ item.icon }}</mat-icon>\r\n }\r\n </div>\r\n }\r\n <span [ngClass]=\"selectedItem()?.id === item.id ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface'\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n @if (enableDrag()) {\r\n <mat-icon>drag_indicator</mat-icon>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <ng-content select=\"[app-no-items-message]\"/>\r\n </div>\r\n }\r\n }\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- ACTIONS (bottom right of the listing) -->\r\n <div class=\"absolute bottom-0 right-0 z-10\">\r\n <ng-content select=\"[app-actions]\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n @if (!hideDetails()) {\r\n <mat-divider [vertical]=\"true\" class=\"relative top-2\"/>\r\n\r\n <!-- DETAILS -->\r\n <div class=\"details flex shrink grow overflow-hidden pt-2\">\r\n <ng-content select=\"[app-details]\"/>\r\n </div>\r\n }\r\n</div>\r\n","import { BehaviorSubject, filter, Observable, Subject } from \"rxjs\";\r\n\r\nexport class NestedListDataControl<ItemType> {\r\n\r\n private _changeSelection$ = new BehaviorSubject<string | null>(null);\r\n private _itemUpdated$ = new Subject<ItemType>();\r\n private _childAdded = new Subject<ItemType>();\r\n private _itemRemoved$ = new Subject<string>();\r\n\r\n readonly selectItem = (id: string): void => this._changeSelection$.next(id);\r\n readonly updateItem = (item: ItemType): void => this._itemUpdated$.next(item);\r\n readonly addItem = (item: ItemType): void => this._childAdded.next(item);\r\n readonly removeItem = (id: string): void => this._itemRemoved$.next(id);\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Nested List Component\r\n */\r\n get changeSelection$(): Observable<string> {\r\n return this._changeSelection$.pipe(\r\n filter((value) => value !== null && value !== undefined)\r\n );\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside of the Nested List Component\r\n */\r\n get itemUpdated$(): Observable<ItemType> {\r\n return this._itemUpdated$.asObservable();\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Nested List Component\r\n */\r\n get childAdded(): Observable<ItemType> {\r\n return this._childAdded.asObservable();\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Nested List Component\r\n */\r\n get itemRemoved$(): Observable<string> {\r\n return this._itemRemoved$.asObservable();\r\n }\r\n}\r\n","import { LoadedIcon, SvgIcon } from \"../+common/model/icon\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport interface NestedListItem<ItemType> {\r\n id: string;\r\n name: string;\r\n idPath: string;\r\n type?: string;\r\n icon: string | LoadedIcon | SvgIcon;\r\n isRoot: boolean;\r\n data: ItemType;\r\n}\r\n\r\nexport abstract class NestedListDataSource<ItemType> {\r\n\r\n /**\r\n * Loads roots (needed for multiple roots).\r\n */\r\n abstract loadRoots(): Observable<ItemType[]>;\r\n\r\n /**\r\n * Loads the breadcrumb data (top half).\r\n */\r\n abstract loadBreadcrumbs(id: string): Observable<ItemType[]>;\r\n\r\n /**\r\n * Loads children for the currently selected item.\r\n */\r\n abstract loadChildren(item: NestedListItem<ItemType>): Observable<ItemType[]>;\r\n\r\n /**\r\n * Sets the id of the item that should be loaded first.\r\n */\r\n abstract initialSelection(): string | null;\r\n\r\n /**\r\n * Generalized the item and prepares it for display.\r\n */\r\n abstract prepareItem(item: ItemType, isRoot?: boolean): NestedListItem<ItemType>;\r\n\r\n sortingFunction(item1: NestedListItem<ItemType>, item2: NestedListItem<ItemType>): number {\r\n return item1.name.localeCompare(item2.name);\r\n }\r\n}\r\n","import { Component, computed, input } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-pdf-viewer',\r\n imports: [],\r\n templateUrl: './pdf-viewer.component.html',\r\n styleUrl: './pdf-viewer.component.scss',\r\n})\r\nexport class PdfViewerComponent {\r\n value = input.required<string>();\r\n\r\n safeSrc = computed<SafeResourceUrl | null>(() => {\r\n const url = this.value();\r\n if (!url) return null;\r\n\r\n const urlWithParams = `${url}#zoom=page-width&view=FitH`;\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(urlWithParams);\r\n });\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n}\r\n","@if (safeSrc()) {\r\n <iframe [src]=\"safeSrc()\" frameborder=\"0\" class=\"w-full h-full\"></iframe>\r\n}","import { afterNextRender, afterRenderEffect, Component, computed, contentChild, DestroyRef, input, output, signal } from '@angular/core';\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { StandardListDataSource, StandardListItem } from \"./standard-list.data-source\";\r\nimport { catchError, map, of, take } from \"rxjs\";\r\nimport { startWith } from \"rxjs/operators\";\r\nimport { OverflowClassDirective } from \"../../directive/overflow-class.directive\";\r\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\r\nimport { ScrollIntoViewDirective } from \"../../directive/scroll-into-view.directive\";\r\nimport { LoadedIconComponent } from \"../loaded-icon/loaded-icon.component\";\r\nimport { LoadedIcon, SvgIcon } from \"../+common/model/icon\";\r\nimport { StandardListDataControl } from \"./standard-list.data-control\";\r\nimport { NgTemplateContentDirective } from \"../../directive/ng-template-content.directive\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-standard-list-view',\r\n imports: [shared, OverflowClassDirective, ScrollIntoViewDirective, LoadedIconComponent],\r\n templateUrl: './standard-list-view.component.html',\r\n styleUrl: './standard-list-view.component.scss'\r\n})\r\nexport class StandardListViewComponent<ItemType> {\r\n\r\n dataSource = input.required<StandardListDataSource<ItemType>>();\r\n dataControl = input.required<StandardListDataControl<ItemType>>();\r\n\r\n position = input<'inner' | 'outer'>('outer');\r\n isColoredInput = input<boolean>(false);\r\n\r\n loadingData = signal<boolean>(true);\r\n loadingPage = signal<boolean>(false);\r\n\r\n selectedItem = signal<StandardListItem<ItemType> | null>(null);\r\n\r\n hideSearch = input<boolean>(false);\r\n hideDetails = input<boolean>(false);\r\n hidePadding = input<boolean>(false); // TODO Remove, but the component should have innate outer padding :(\r\n\r\n width = computed(() => {\r\n if (this.hideDetails()) {\r\n return 'w-full'\r\n }\r\n\r\n return this.position() === 'outer' ? 'basis-1/4' : 'basis-1/3';\r\n })\r\n\r\n nameSearchControl = new FormControl<string>('');\r\n searchTerm = toSignal(this.nameSearchControl.valueChanges.pipe(startWith(this.nameSearchControl.getRawValue())));\r\n\r\n items = signal<StandardListItem<ItemType>[]>([]);\r\n\r\n filteredItems = computed(() => {\r\n const searchTerm = this.searchTerm();\r\n if (!searchTerm) {\r\n return this.items();\r\n }\r\n\r\n return this.items().filter(item => item.name.toLowerCase().includes(searchTerm.toLowerCase()));\r\n })\r\n\r\n itemSelected = output<ItemType | null>();\r\n\r\n content = contentChild(NgTemplateContentDirective);\r\n\r\n constructor(destroyRef: DestroyRef) {\r\n afterNextRender(() => {\r\n const dataSource = this.dataSource();\r\n const dataControl = this.dataControl();\r\n\r\n dataSource.loadData().pipe(\r\n map((data) => data.map((value) => dataSource.prepareItem(value))),\r\n catchError((error) => {\r\n this.loadingData.set(false);\r\n return of([]);\r\n }),\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe((items) => {\r\n this.loadingData.set(false);\r\n this.selectedItem.set(null);\r\n this.items.set(items.sort(dataSource.sortingFunction));\r\n\r\n if (items.length === 0) {\r\n this.selectEmpty();\r\n return;\r\n }\r\n\r\n const initialSelection = dataSource.initialSelection();\r\n if (initialSelection) {\r\n this.selectItem(items.find(item => item.id === initialSelection) ?? items[0]);\r\n } else {\r\n this.selectItem(items[0]);\r\n }\r\n })\r\n\r\n dataControl.changeSelection$.pipe(\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe((id) => {\r\n const items = this.filteredItems();\r\n const newSelection = items.find(item => item.id === id) ?? items[0];\r\n this.selectItem(newSelection);\r\n })\r\n\r\n dataControl.itemAdded$.pipe(\r\n map((item) => dataSource.prepareItem(item)),\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe((item) => {\r\n this.items.set([...this.items(), item].sort(dataSource.sortingFunction));\r\n this.selectItem(item);\r\n })\r\n\r\n dataControl.itemRemoved$.pipe(\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe((id) => {\r\n if (this.items().length === 0) {\r\n this.selectEmpty();\r\n return;\r\n }\r\n\r\n const deletedItemPosition = this.items().map((item) => item.id).indexOf(id);\r\n this.items.set(this.items().filter(item => item.id !== id));\r\n if (deletedItemPosition > 0) {\r\n this.selectItem(this.items()[deletedItemPosition - 1]);\r\n } else if (deletedItemPosition === 0 && this.items().length > 0) {\r\n this.selectItem(this.items()[0]);\r\n } else {\r\n this.selectEmpty();\r\n }\r\n })\r\n\r\n dataControl.itemUpdated$.pipe(\r\n map((item) => dataSource.prepareItem(item)),\r\n takeUntilDestroyed(destroyRef)\r\n ).subscribe((updatedItem) => {\r\n this.items.update(items => items.map(item => item.id === updatedItem.id ? updatedItem : item).sort(dataSource.sortingFunction));\r\n })\r\n });\r\n\r\n afterRenderEffect(() => {\r\n const items = this.filteredItems();\r\n const selected = this.selectedItem();\r\n\r\n if (items.length === 0) {\r\n if (!selected) {\r\n return;\r\n }\r\n this.selectEmpty();\r\n return;\r\n }\r\n\r\n if (!selected) {\r\n this.selectItem(items[0]);\r\n }\r\n\r\n const selectedItemStillVisible = items.find((item) => item.id === selected?.id);\r\n if (!selectedItemStillVisible) {\r\n this.selectItem(items[0]);\r\n }\r\n })\r\n }\r\n\r\n selectItem(item: StandardListItem<ItemType>) {\r\n if (this.selectedItem()?.id === item?.id) {\r\n return;\r\n }\r\n\r\n this.selectedItem.set(item);\r\n this.itemSelected.emit(item.data);\r\n }\r\n\r\n selectEmpty() {\r\n this.selectedItem.set(null);\r\n this.itemSelected.emit(null);\r\n }\r\n\r\n isAsyncIcon(item: StandardListItem<ItemType>): LoadedIcon | null {\r\n return !!item.icon && typeof item.icon !== 'string' && !Object.hasOwn(item.icon, 'id') ? item.icon as LoadedIcon : null;\r\n }\r\n\r\n isSvgIcon(item: StandardListItem<ItemType>): SvgIcon | null {\r\n return !!item.icon && typeof item.icon !== 'string' && Object.hasOwn(item.icon, 'id') ? item.icon as SvgIcon : null;\r\n }\r\n\r\n loadMore() {\r\n this.loadingPage.set(true);\r\n\r\n this.dataSource().nextPage().pipe(\r\n map((data) => data.map((value) => this.dataSource().prepareItem(value))),\r\n catchError(() => {\r\n this.loadingPage.set(false);\r\n return [];\r\n }),\r\n take(1)\r\n ).subscribe((items) => {\r\n this.items.set([...this.items(), ...items].sort(this.dataSource().sortingFunction));\r\n this.loadingPage.set(false);\r\n });\r\n }\r\n}\r\n","<div class=\"container flex h-full w-full min-w-full min-h-full relative overflow-hidden {{hidePadding() ? 'pt-0' : 'pt-2'}}\">\r\n <div [ngClass]=\"width()\" class=\"master flex shrink-0 grow-0 min-w-0\">\r\n\r\n <!-- LISTING -->\r\n <div class=\"w-full h-full flex flex-col gap-y-2 relative\">\r\n\r\n <!-- SEARCH -->\r\n @if (!hideSearch()) {\r\n <mat-form-field class=\"w-full small-input\" [ngClass]=\"{'colored-input': isColoredInput()}\">\r\n <mat-label>{{ 'COMMON.SEARCH' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"nameSearchControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n }\r\n\r\n <!-- LIST -->\r\n <div class=\"flex flex-col w-full h-full relative overflow-hidden\">\r\n @if (!loadingData()) {\r\n @if (filteredItems(); as items) {\r\n @if (items.length) {\r\n <div class=\"flex flex-col w-full grow shrink overflow-y-auto overflow-x-hidden\" [overflowClass]=\"'pr-4'\">\r\n @for (item of items; track $index) {\r\n <ng-container [ngTemplateOutlet]=\"content()?.template || defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: item, selectedItem: selectedItem(), selectItem: selectItem.bind(this), isSvgIcon: isSvgIcon.bind(this), isAsyncIcon: isAsyncIcon.bind(this)}\">\r\n </ng-container>\r\n\r\n <!--DEFAULT TEMPLATE-->\r\n <ng-template #defaultTemplate>\r\n <mat-card class=\"mb-2 cursor-pointer\" (click)=\"selectItem(item)\"\r\n [ngClass]=\"selectedItem()?.id === item.id ? 'selected-item' : 'regular-item hover:bg-hover-color'\"\r\n [appScrollIntoView]=\"selectedItem()?.id === item.id\" [matTooltip]=\"item.name\" matTooltipPosition=\"right\">\r\n <div class=\"px-3 flex flex-row items-center gap-x-2 item-card\">\r\n @if (item.icon) {\r\n <div class=\"shrink-0 h-6\">\r\n @if (isAsyncIcon(item); as loadedIcon) {\r\n <app-loaded-icon [iconRequest]=\"loadedIcon.data\" [defaultIcon]=\"loadedIcon.defaultIcon\" [size]=\"24\"/>\r\n }\r\n @if (isSvgIcon(item); as svgIcon) {\r\n <mat-icon [svgIcon]=\"svgIcon.id\"></mat-icon>\r\n }\r\n @if (typeof item.icon === 'string') {\r\n <mat-icon>{{ item.icon }}</mat-icon>\r\n }\r\n </div>\r\n }\r\n <span [ngClass]=\"selectedItem()?.id === item.id ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface'\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n </mat-card>\r\n </ng-template>\r\n }\r\n @if (this.dataSource().isPaged && !this.dataSource().isLastPage) {\r\n <mat-card class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\" (click)=\"loadMore()\">\r\n <div class=\"px-3 flex flex-row justify-center items-center gap-x-2 item-card\">\r\n @if (loadingPage()) {\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n } @else {\r\n <span class=\"text-mat-sys-on-surface\">{{ 'COMMON.LOAD_MORE' | translate }}</span>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <ng-content select=\"[app-no-items-message]\"></ng-content>\r\n </div>\r\n }\r\n }\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n }\r\n\r\n <!-- ACTIONS (bottom right of the listing) -->\r\n <div class=\"absolute bottom-0 right-0 z-10\">\r\n <ng-content select=\"[app-actions]\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n @if (!hideDetails()) {\r\n <mat-divider [vertical]=\"true\"/>\r\n\r\n <!-- DETAILS -->\r\n <div class=\"details flex shrink grow overflow-hidden\">\r\n <ng-content select=\"[app-details]\"/>\r\n </div>\r\n }\r\n</div>\r\n","import { BehaviorSubject, filter, Observable, Subject } from \"rxjs\";\r\n\r\nexport class StandardListDataControl<ItemType> {\r\n\r\n private _changeSelection$ = new BehaviorSubject<string | null>(null);\r\n private _itemUpdated$ = new Subject<ItemType>();\r\n private _itemAdded$ = new Subject<ItemType>();\r\n private _itemRemoved$ = new Subject<string>();\r\n\r\n readonly selectItem = (id: string): void => this._changeSelection$.next(id);\r\n readonly updateItem = (item: ItemType): void => this._itemUpdated$.next(item);\r\n readonly addItem = (item: ItemType): void => this._itemAdded$.next(item);\r\n readonly removeItem = (id: string): void => this._itemRemoved$.next(id);\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Standard List Component\r\n */\r\n get changeSelection$(): Observable<string> {\r\n return this._changeSelection$.pipe(\r\n filter((value) => value !== null)\r\n );\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside of the Standard List Component\r\n */\r\n get itemUpdated$(): Observable<ItemType> {\r\n return this._itemUpdated$.asObservable();\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Standard List Component\r\n */\r\n get itemAdded$(): Observable<ItemType> {\r\n return this._itemAdded$.asObservable();\r\n }\r\n\r\n /**\r\n * Internal event hook. Do not use outside the Standard List Component\r\n */\r\n get itemRemoved$(): Observable<string> {\r\n return this._itemRemoved$.asObservable();\r\n }\r\n}\r\n","import { Observable, of } from \"rxjs\";\r\nimport { LoadedIcon, SvgIcon } from \"../+common/model/icon\";\r\n\r\nexport interface StandardListItem<ItemType> {\r\n id: string;\r\n name: string;\r\n icon: string | LoadedIcon | SvgIcon;\r\n data: ItemType;\r\n}\r\n\r\nexport abstract class StandardListDataSource<ItemType> {\r\n page = 0;\r\n isPaged = false;\r\n isLastPage = false;\r\n\r\n /**\r\n * Loads the initial data from the backend.\r\n */\r\n abstract loadData(): Observable<ItemType[]>;\r\n\r\n /**\r\n * Sets the id of the item that should be selected as soon as the data loads.\r\n */\r\n abstract initialSelection(): string[] | string | null;\r\n\r\n /**\r\n * Generalized the item and prepares it for display.\r\n */\r\n abstract prepareItem(item: ItemType): StandardListItem<ItemType>;\r\n\r\n sortingFunction(item1: StandardListItem<ItemType>, item2: StandardListItem<ItemType>): number {\r\n return item1.name.localeCompare(item2.name);\r\n }\r\n\r\n /**\r\n * If isPaged is set to true, implement this method, gets next page from the backend.\r\n */\r\n nextPage(): Observable<ItemType[]> {\r\n return of([]);\r\n };\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { Tab } from \"../+common/model/tab\";\r\nimport { ActivatedRoute, QueryParamsHandling, Router } from \"@angular/router\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport const LAST_ACTIVE_TAB_KEY = 'WOLK_LAST_ACTIVE_TAB';\r\n\r\n@Component({\r\n selector: 'app-tabulated-chip-view',\r\n imports: [shared],\r\n templateUrl: './tabulated-chip-view.component.html',\r\n styleUrl: './tabulated-chip-view.component.scss'\r\n})\r\nexport class TabulatedChipViewComponent {\r\n tabs = input.required<Tab[]>();\r\n queryParamHandling = input<QueryParamsHandling>('replace');\r\n saveLastActiveTab = input<boolean>(false);\r\n navBarLayoutClasses = input<string>('');\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n isActive(route: string) {\r\n return window.location.hash.includes(route)\r\n }\r\n\r\n navigate(route: string) {\r\n if (!this.isActive(route)) {\r\n if (this.saveLastActiveTab()) {\r\n localStorage.setItem(LAST_ACTIVE_TAB_KEY, route);\r\n }\r\n this.router.navigate([route], {relativeTo: this.route, queryParamsHandling: this.queryParamHandling()})\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-auto flex-col overflow-hidden tabulated-view-container\">\r\n <nav mat-tab-nav-bar [mat-stretch-tabs]=\"false\" [tabPanel]=\"tabPanel\" class=\"navigation\" [ngClass]=\"navBarLayoutClasses()\">\r\n @for (tab of tabs(); track $index) {\r\n @if (!tab.condition || (tab.condition | async)) {\r\n <div\r\n mat-tab-link\r\n [active]=\"isActive(tab.route)\"\r\n (click)=\"navigate(tab.route)\"\r\n [matTooltip]=\"tab.tooltip ? (tab.tooltip | translate) : null\"\r\n [ngClass]=\"{ 'bg-mat-sys-primary': isActive(tab.route), 'active': isActive(tab.route) }\"\r\n class=\"rounded mr-2 navigation-tab\"\r\n [attr.data-test]=\"tab.name + '_tab'\"\r\n >\r\n @if (tab.icon) {\r\n <mat-icon>{{ tab.icon }}</mat-icon>\r\n }\r\n <span [ngClass]=\"isActive(tab.route) ?'text-mat-sys-surface-container' : 'text-mat-sys-primary'\">{{ tab.name | translate }}</span>\r\n </div>\r\n }\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex flex-auto flex-col overflow-hidden\">\r\n <router-outlet/>\r\n </mat-tab-nav-panel>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Tab } from \"../+common/model/tab\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-tabulated-view',\r\n imports: [shared],\r\n templateUrl: './tabulated-view.component.html',\r\n styleUrl: './tabulated-view.component.scss'\r\n})\r\nexport class TabulatedViewComponent {\r\n @Input({required: true}) tabs: Tab[] = [];\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) {\r\n }\r\n\r\n isActive(route: string) {\r\n return window.location.hash.includes(route)\r\n }\r\n\r\n navigate(route: string) {\r\n if (!this.isActive(route)) {\r\n this.router.navigate([route], {relativeTo: this.route})\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-auto flex-col overflow-hidden\">\r\n <nav mat-tab-nav-bar [mat-stretch-tabs]=\"false\" [tabPanel]=\"tabPanel\" class=\"navigation\">\r\n <div\r\n *ngFor=\"let tab of tabs\"\r\n mat-tab-link\r\n [active]=\"isActive(tab.route)\"\r\n (click)=\"navigate(tab.route)\"\r\n [matTooltip]=\"tab.tooltip ? (tab.tooltip | translate) : null\"\r\n [attr.data-test]=\"tab.name + '_tab'\"\r\n >\r\n <mat-icon *ngIf=\"tab.icon\">\r\n {{ tab.icon }}\r\n </mat-icon>\r\n {{ tab.name | translate }}\r\n </div>\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex flex-auto flex-col overflow-hidden\">\r\n <router-outlet></router-outlet>\r\n </mat-tab-nav-panel>\r\n</div>\r\n","import { Component, input, output } from '@angular/core';\r\nimport { TreeNode } from \"../tree.model\";\r\nimport { shared } from '../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-tree-node',\r\n imports: [shared],\r\n templateUrl: './tree-node.component.html',\r\n styleUrl: './tree-node.component.scss'\r\n})\r\nexport class TreeNodeComponent {\r\n\r\n node = input.required<TreeNode<any>>();\r\n\r\n nodeSelected = output<TreeNode<any>>();\r\n\r\n toggle(node: TreeNode<any>) {\r\n node.open = !node.open;\r\n }\r\n\r\n selectNode(node: TreeNode<any>) {\r\n this.nodeSelected.emit(node);\r\n }\r\n}\r\n","<div class=\"w-full flex flex-col\">\r\n <!-- ROW -->\r\n <div class=\"w-full h-10 flex flex-row items-center\">\r\n\r\n <!-- ARROWS -->\r\n @if (node().canHaveChildren) {\r\n @if (node().open) {\r\n <button mat-icon-button class=\"scale-80\" (click)=\"toggle(node())\">\r\n <mat-icon>keyboard_arrow_down</mat-icon>\r\n </button>\r\n } @else {\r\n <button mat-icon-button class=\"scale-80\" [disabled]=\"!node().hasChildren\" (click)=\"toggle(node())\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n }\r\n } @else {\r\n <div class=\"w-12 h-12\"> </div>\r\n }\r\n\r\n <!-- ICON AND TEXT -->\r\n <div class=\"flex flex-row items-center cursor-pointer\" (click)=\"selectNode(node())\">\r\n <mat-icon [ngClass]=\"node().selected ? 'text-mat-sys-tertiary' : 'text-mat-sys-primary'\">{{ node().icon }}</mat-icon>\r\n <div class=\"pl-2\" [ngClass]=\"{ 'text-mat-sys-tertiary' : node().selected }\">{{ node().name }}</div>\r\n </div>\r\n </div>\r\n\r\n <!-- Children -->\r\n @if (node().open) {\r\n <div class=\"w-full flex flex-col pl-9\">\r\n @if (node().children | async; as children) {\r\n @for (child of children; track $index) {\r\n <app-tree-node [node]=\"child\" (nodeSelected)=\"selectNode($event)\"/>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { Component, effect, input, output } from '@angular/core';\r\nimport { TreeNode } from \"./tree.model\";\r\nimport { TreeNodeComponent } from \"./tree-node/tree-node.component\";\r\nimport { first } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'app-tree',\r\n imports: [TreeNodeComponent],\r\n templateUrl: './tree.component.html',\r\n styleUrl: './tree.component.scss'\r\n})\r\nexport class TreeComponent {\r\n\r\n roots = input.required<TreeNode<any>[]>();\r\n guidPath = input.required<string[]>();\r\n\r\n nodeSelected = output<TreeNode<any>>();\r\n\r\n selectedNode: TreeNode<any> | null = null;\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.selectedNode?.guid === this.guidPath()[this.guidPath().length - 1]) {\r\n return; // Everything is as it should be.\r\n }\r\n\r\n if (this.roots()?.length && this.guidPath()?.length) {\r\n this.discoverNode(this.roots(), this.guidPath());\r\n }\r\n });\r\n }\r\n\r\n private discoverNode(nodes: TreeNode<any>[], path: string[], level: number = 0) {\r\n if (level >= path.length) {\r\n return;\r\n }\r\n\r\n const discoveredNode = nodes.find(node => node.guid === path[level]);\r\n if (!discoveredNode) {\r\n return;\r\n }\r\n\r\n if (discoveredNode.hasChildren) {\r\n discoveredNode.open = true; // Expand the node\r\n }\r\n\r\n if (level === path.length - 1) {\r\n this.markSelected(discoveredNode) // Select the final node\r\n } else if (discoveredNode.hasChildren) {\r\n discoveredNode.children.pipe(first()).subscribe(children => {\r\n this.discoverNode(children, path, level + 1);\r\n });\r\n }\r\n }\r\n\r\n selectNode(node: TreeNode<any>) {\r\n this.markSelected(node);\r\n this.nodeSelected.emit(node);\r\n }\r\n\r\n private markSelected(node: TreeNode<any>) {\r\n if (this.selectedNode) {\r\n this.selectedNode.selected = false;\r\n }\r\n\r\n this.selectedNode = node;\r\n this.selectedNode.selected = true;\r\n }\r\n}\r\n","<div class=\"h-full w-full flex flex-col\">\r\n @for (node of roots(); track $index) {\r\n <app-tree-node [node]=\"node\" (nodeSelected)=\"selectNode($event)\"/>\r\n }\r\n</div>\r\n","import { Component, input } from '@angular/core';\r\nimport { DataType } from \"../../enum/data-type\";\r\nimport { DurationPipe } from \"../../pipe/duration.pipe\";\r\nimport { SimpleDateTimePipe } from \"../../pipe/simple-date-time.pipe\";\r\nimport { LocalizedNumberPipe } from '../../pipe/localized-number.pipe';\r\nimport { shared } from '../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-display',\r\n imports: [shared, DurationPipe, SimpleDateTimePipe, LocalizedNumberPipe],\r\n templateUrl: './value-display.component.html',\r\n styleUrl: './value-display.component.scss'\r\n})\r\nexport class ValueDisplayComponent {\r\n\r\n protected readonly DataType = DataType;\r\n\r\n value = input.required<string | null | undefined>();\r\n type = input.required<DataType>();\r\n unit = input<string>();\r\n\r\n constructor() {\r\n }\r\n\r\n getNumber(epochTime: string): number {\r\n return Number(epochTime);\r\n }\r\n\r\n getVectorValue(vector: string) {\r\n return vector.replaceAll(',', ', ');\r\n }\r\n}\r\n","@if (value(); as value) {\r\n @switch (type()) {\r\n @case (DataType.BOOLEAN) {\r\n <mat-icon>{{ value === 'true' ? 'check' : 'close' }}</mat-icon>\r\n }\r\n @case (DataType.COLOR) {\r\n <div class=\"rounded-full h-6 w-6 mt-1 color-circle\" [style.background-color]=\"value\"></div>\r\n }\r\n @case (DataType.DATE) {\r\n <div class=\"truncate\" matTooltip=\"{{ getNumber(value) | simpleDateTime }}\">{{ getNumber(value) | simpleDateTime }}</div>\r\n }\r\n @case (DataType.DURATION) {\r\n {{ getNumber(value) | duration }}\r\n }\r\n @case (DataType.LINK) {\r\n <div class=\"truncate\" matTooltip=\"{{ value }}\">\r\n <a href=\"{{value}}\" target=\"_blank\" class=\"underline\">{{ value }}</a>\r\n </div>\r\n }\r\n @case (DataType.VECTOR) {\r\n <div class=\"truncate\" matTooltip=\"{{ getVectorValue(value) }}\">{{ getVectorValue(value) }}</div>\r\n }\r\n @case (DataType.NUMERIC){\r\n <div class=\"truncate\" matTooltip=\"{{ getNumber(value) }} {{ unit() }}\">{{getNumber(value) | localizedNumber}} {{ unit() }}</div>\r\n }\r\n @default {\r\n <div class=\"truncate\" matTooltip=\"{{ value }} {{ unit() }}\">{{ value }} {{ unit() }}</div>\r\n }\r\n }\r\n} @else {\r\n -\r\n}\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { MatSlideToggle } from \"@angular/material/slide-toggle\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-boolean',\r\n imports: [shared, MatSlideToggle],\r\n templateUrl: './value-input-boolean.component.html',\r\n styleUrl: './value-input-boolean.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputBooleanComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputBooleanComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputBooleanComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n name = input<string>('');\r\n formControl = new FormControl<boolean>(false);\r\n destroy$ = new Subject<void>();\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n onTouched: () => void = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n writeValue(value: string): void {\r\n this.formControl.patchValue(value === 'true', { emitEvent: false });\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {boolean: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-slide-toggle [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <div class=\"flex flex-col ml-2\">\r\n <span class=\"text-xs font-light\"> {{ name() }} </span>\r\n <span>{{ formControl.value ? ('DATA_BROWSER.ATTRIBUTE_VALUE_ENABLED' | translate) : ('DATA_BROWSER.ATTRIBUTE_VALUE_DISABLED' | translate) }}</span>\r\n </div>\r\n</mat-slide-toggle>\r\n@for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\" class=\"ml-4 mt-[-8px] text-[12px]\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n}\r\n","import { Component, effect, ElementRef, forwardRef, input, OnDestroy, viewChild } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-color',\r\n imports: [shared],\r\n templateUrl: './value-input-color.component.html',\r\n styleUrl: './value-input-color.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputColorComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputColorComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputColorComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n name = input<string>('');\r\n colorPicker = viewChild.required<ElementRef<HTMLInputElement>>('colorPicker');\r\n showPicker = false;\r\n formControl = new FormControl<string>('');\r\n destroy$ = new Subject<void>();\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.hexadecimalColorValidator]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.showPicker = !this.showPicker;\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {color: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n openColorPicker() {\r\n if (!this.formControl.value) {\r\n this.formControl.setValue(\"#000000\", { emitEvent: false });\r\n }\r\n this.colorPicker().nativeElement.click();\r\n }\r\n\r\n onColorPickerChange(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n this.formControl.setValue(input.value.toUpperCase());\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n private hexadecimalColorValidator = (control: AbstractControl): ValidationErrors | null => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return /^#(?:[0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(control.value) ? null : {hexadecimalColor: true};\r\n };\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-form-field class=\"w-full relative\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" (click)=\"openColorPicker()\">\r\n <input type=\"color\" #colorPicker [value]=\"formControl.value\" (input)=\"onColorPickerChange($event)\" class=\"absolute opacity-0 right-55 top-full mt-1 z-10\" [class.hidden]=\"!showPicker\">\r\n <div class=\"w-5 h-5 rounded-full mr-4 cursor-pointer\" [style.background-color]=\"formControl.getRawValue()\" matSuffix (click)=\"openColorPicker()\"> </div>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { map, Subject, takeUntil } from \"rxjs\";\r\nimport { DateTimeFormFieldComponent } from \"../../../date-time-form-field/date-time-form-field.component\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-date',\r\n imports: [shared, DateTimeFormFieldComponent],\r\n templateUrl: './value-input-date.component.html',\r\n styleUrl: './value-input-date.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputDateComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputDateComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputDateComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<Date | null>(null);\r\n destroy$ = new Subject<void>()\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor() {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // Control Value Accessor\r\n writeValue(value: Date): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(new Date(Number(value)), { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$),\r\n map((value) => {\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return value ? new Date(value).getTime().toString() : null;\r\n })\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {date: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<app-date-time-form-field [formControl]=\"formControl\" [validators]=\"validators()\" [showErrorInTooltip]=\"showErrorInTooltip()\" class=\"w-full\"></app-date-time-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-enum',\r\n imports: [shared],\r\n templateUrl: './value-input-enum.component.html',\r\n styleUrl: './value-input-enum.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputEnumComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputEnumComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputEnumComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<string>('');\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n destroy$ = new Subject<void>();\r\n\r\n options = input<string[] | undefined>([]);\r\n name = input<string>('');\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {enum: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<div class=\"w-full flex flex-col gap-y-2\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <mat-select [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\">\r\n @for (value of options(); track value) {\r\n <mat-option [value]=\"value\">{{ value }}</mat-option>\r\n }\r\n </mat-select>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n</div>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-hexadecimal',\r\n imports: [shared],\r\n templateUrl: './value-input-hexadecimal.component.html',\r\n styleUrl: './value-input-hexadecimal.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputHexadecimalComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputHexadecimalComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputHexadecimalComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<string>('');\r\n destroy$ = new Subject<void>();\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.hexadecimalValidator]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {hexadecimal: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n private hexadecimalValidator = (control: AbstractControl): ValidationErrors | null => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return /^[0-9a-fA-F]+$/.test(control.value) ? null : {hexadecimal: true};\r\n };\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_VALUE' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" autocomplete=\"off\"/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-link',\r\n imports: [shared],\r\n templateUrl: './value-input-link.component.html',\r\n styleUrl: './value-input-link.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputLinkComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputLinkComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputLinkComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<string>('');\r\n destroy$ = new Subject<void>();\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.linkValidator]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {link: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n private linkValidator = (control: AbstractControl): ValidationErrors | null => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return /^(https?:\\/\\/)?(www\\.)?([\\w-]+(\\.[\\w-]+)+)(:[0-9]+)?(\\/[\\w-./#]*)?(\\?[\\w-./?%&=]*)?(#[\\w-]*)?$/.test(control.value) ? null : {link: true};\r\n };\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_VALUE' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" autocomplete=\"off\"/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn, Validators } from \"@angular/forms\";\r\nimport { map, Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-location',\r\n imports: [shared],\r\n templateUrl: './value-input-location.component.html',\r\n styleUrl: './value-input-location.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputLocationComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputLocationComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputLocationComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n destroy$ = new Subject<void>();\r\n formGroup = new FormGroup({\r\n latitude: new FormControl<string | null>(null),\r\n longitude: new FormControl<string | null>(null)\r\n })\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formGroup.get('latitude')?.setValidators([...validators, Validators.min(-90), Validators.max(90)]);\r\n this.formGroup.get('longitude')?.setValidators([...validators, Validators.min(-180), Validators.max(180)]);\r\n this.formGroup.get('latitude')?.updateValueAndValidity({ emitEvent: false });\r\n this.formGroup.get('longitude')?.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formGroup.reset();\r\n } else {\r\n const [latitude, longitude] = value.replace(' ', '').split(',')\r\n this.formGroup.setValue({latitude, longitude}, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formGroup.valueChanges.pipe(\r\n takeUntil(this.destroy$),\r\n map((value) => {\r\n return value.latitude && value.longitude ? `${value?.latitude}, ${value.longitude}` : null;\r\n })\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formGroup.valid ? null : {location: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formGroup.get('latitude')?.disable();\r\n this.formGroup.get('longitude')?.disable();\r\n } else {\r\n this.formGroup.get('latitude')?.enable();\r\n this.formGroup.get('longitude')?.enable();\r\n }\r\n }\r\n\r\n handleLocationPaste(event: ClipboardEvent, formControlName: 'latitude' | 'longitude') {\r\n event.preventDefault();\r\n const clipboardData = event.clipboardData?.getData('text')?.trim() || '';\r\n\r\n const latLonPattern = /^-?\\d{1,3}\\.?\\d*,\\s*-?\\d{1,3}\\.?\\d*$/;\r\n if (latLonPattern.test(clipboardData)) {\r\n const [lat, lon] = clipboardData.split(',').map(item => item.trim());\r\n this.formGroup.get('latitude')?.setValue(lat);\r\n this.formGroup.get('longitude')?.setValue(lon);\r\n } else {\r\n this.formGroup.get(formControlName)?.setValue(clipboardData);\r\n }\r\n }\r\n\r\n getErrors(controlName: string): string[] {\r\n return Object.keys(this.formGroup.get(controlName)?.errors ?? {})\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip(controlName: string) {\r\n return this.getErrors(controlName).map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<form [formGroup]=\"formGroup\">\r\n <div class=\"flex flex-col gap-y-1\">\r\n <div class=\"flex gap-4 w-full justify-between items-start\">\r\n <mat-form-field class=\"flex-1\" [matTooltip]=\"getErrorTooltip('latitude')\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_LATITUDE' | translate }}</mat-label>\r\n <input matInput (paste)=\"handleLocationPaste($event, 'latitude')\" (blur)=\"this.formGroup.get('latitude')?.updateValueAndValidity()\" formControlName=\"latitude\" type=\"number\" autocomplete=\"off\">\r\n\r\n @for (error of getErrors('latitude'); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate: {max: 90, min: -90} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-1\" [matTooltip]=\"getErrorTooltip('longitude')\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_LONGITUDE' | translate }}</mat-label>\r\n <input matInput (paste)=\"handleLocationPaste($event, 'longitude')\" (blur)=\"this.formGroup.get('longitude')?.updateValueAndValidity()\" formControlName=\"longitude\" type=\"number\" autocomplete=\"off\">\r\n\r\n @for (error of getErrors('longitude'); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate: {max: 180, min: -180} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</form>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { LocalizedNumericInputDirective } from '../../../../directive/localize-numeric-input.directive';\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-numeric',\r\n imports: [shared, LocalizedNumericInputDirective],\r\n templateUrl: './value-input-numeric.component.html',\r\n styleUrl: './value-input-numeric.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputNumericComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputNumericComponent),\r\n multi: true,\r\n }]\r\n})\r\nexport class ValueInputNumericComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<number | null>(null);\r\n destroy$ = new Subject<void>();\r\n name = input<string>('');\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.numberValidator()]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {number: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: number): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n private numberValidator(): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n\r\n return /^[-+]?(\\d+\\.?\\d*|\\.\\d+)([eE][-+]?\\d+)?$/.test(control.value) ? null : {number: true};\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" autocomplete=\"off\" wolkaboutLocalizedNumericInput/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-string',\r\n imports: [shared],\r\n templateUrl: './value-input-string.component.html',\r\n styleUrl: './value-input-string.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputStringComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputStringComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputStringComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n name = input<string>('')\r\n formControl = new FormControl<string>('');\r\n destroy$ = new Subject<void>();\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {string: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput [type]=\"'text'\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" autocomplete=\"off\"/>\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate : {max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-vector',\r\n imports: [shared],\r\n templateUrl: './value-input-vector.component.html',\r\n styleUrl: './value-input-vector.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputVectorComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputVectorComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputVectorComponent implements ControlValueAccessor, Validator, OnDestroy {\r\n\r\n formControl = new FormControl<string>('');\r\n destroy$ = new Subject<void>();\r\n options = input<string[] | undefined>([]);\r\n name = input<string>('');\r\n showErrorInTooltip = input<boolean>(false);\r\n validators = input<ValidatorFn[]>();\r\n\r\n onTouched: any = () => {\r\n };\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.validateOptions]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n });\r\n\r\n effect(() => {\r\n const options = this.options();\r\n this.formControl.updateValueAndValidity();\r\n })\r\n }\r\n\r\n // ControlValueAccessor methods\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(value, { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n takeUntil(this.destroy$)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {enum: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n validateOptions = (control: AbstractControl): ValidationErrors | null => {\r\n const value: string = control.value;\r\n const options = this.options()\r\n\r\n if (value === null || value === undefined || value === '' || !options?.length) {\r\n return null;\r\n }\r\n\r\n const valueArray = value.split(',');\r\n const isValueNumeric = valueArray.every((item: string) => {\r\n if (!item) {\r\n return false;\r\n }\r\n\r\n return !isNaN(+item);\r\n })\r\n\r\n return options.length !== valueArray.length || !isValueNumeric ? {invalidVectorOption: {valid: false}} : null\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}\r\n","<div class=\"w-full flex flex-col gap-y-2\">\r\n <mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }} ({{ options()?.join(',') }})</mat-label>\r\n <input matInput [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" class=\"w-full\">\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n</div>\r\n","import { Component, DestroyRef, effect, forwardRef, input } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { map } from \"rxjs\";\r\nimport { formatDuration } from \"../../../../pipe/duration.pipe\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { shared } from '../../../../common.config';\r\n\r\n@Component({\r\n selector: 'app-value-input-duration',\r\n imports: [shared],\r\n templateUrl: './value-input-duration.component.html',\r\n styleUrl: './value-input-duration.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputDurationComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputDurationComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class ValueInputDurationComponent implements ControlValueAccessor, Validator {\r\n\r\n name = input<string>('')\r\n formControl = new FormControl<string>('');\r\n validators = input<ValidatorFn[]>();\r\n showErrorInTooltip = input<boolean>(false);\r\n\r\n durationValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const value: string | null = control.value;\r\n\r\n if (value == null || value.trim() === '') {\r\n return null;\r\n }\r\n\r\n return /^(?:\\d+[dhms]\\s*)+$/.test(value) ? null : {duration: true};\r\n };\r\n\r\n onTouched: any = () => {\r\n };\r\n\r\n onValidatorChange!: () => void;\r\n\r\n constructor(private destroyRef: DestroyRef, private translate: TranslateService) {\r\n effect(() => {\r\n const validators = this.validators() ?? [];\r\n this.formControl.setValidators([...validators, this.durationValidator]);\r\n this.formControl.updateValueAndValidity({ emitEvent: false });\r\n })\r\n }\r\n\r\n writeValue(value: string): void {\r\n if (!value) {\r\n this.formControl.reset();\r\n } else {\r\n this.formControl.setValue(formatDuration(Number(value)), { emitEvent: false });\r\n }\r\n }\r\n\r\n registerOnChange(fn: () => void): void {\r\n this.formControl.valueChanges.pipe(\r\n map((value) => this.parseDurationToSeconds(value)),\r\n takeUntilDestroyed(this.destroyRef)\r\n ).subscribe(fn)\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {duration: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n getErrors(): string[] {\r\n return Object.keys(this.formControl.errors ?? [])\r\n .filter((key) => (this.formControl.errors as any ?? [])[key])\r\n .map((key) => key.toUpperCase());\r\n }\r\n\r\n getErrorTooltip() {\r\n return this.getErrors().map((error) => this.translate.instant('COMMON.ERROR_VALIDATION_' + error) + '\\n').toString();\r\n }\r\n\r\n parseDurationToSeconds(duration: string | null): number | null {\r\n if (!duration) {\r\n return null;\r\n }\r\n\r\n return (duration.match(/\\d+[dhms]/g) || [])\r\n .map((token) => token.trim())\r\n .map((token) => {\r\n const value = Number(token.slice(0, -1));\r\n const unit = token[token.length - 1];\r\n\r\n switch (unit) {\r\n case \"d\":\r\n return value * 86400;\r\n case \"h\":\r\n return value * 3600;\r\n case \"m\":\r\n return value * 60;\r\n case \"s\":\r\n return value;\r\n default:\r\n throw new Error(`Unexpected duration unit: ${unit}`);\r\n }\r\n })\r\n .reduce((a, b) => a + b, 0);\r\n }\r\n}\r\n","<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput [type]=\"'text'\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity()\" autocomplete=\"off\"/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n","import { Component, effect, forwardRef, input, signal } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, ValidatorFn, Validators } from \"@angular/forms\";\r\nimport { DataType } from \"../../enum/data-type\";\r\nimport { ValueInputBooleanComponent } from \"./implementation/value-input-boolean/value-input-boolean.component\";\r\nimport { ValueInputColorComponent } from \"./implementation/value-input-color/value-input-color.component\";\r\nimport { ValueInputDateComponent } from \"./implementation/value-input-date/value-input-date.component\";\r\nimport { ValueInputEnumComponent } from \"./implementation/value-input-enum/value-input-enum.component\";\r\nimport { ValueInputHexadecimalComponent } from \"./implementation/value-input-hexadecimal/value-input-hexadecimal.component\";\r\nimport { ValueInputLinkComponent } from \"./implementation/value-input-link/value-input-link.component\";\r\nimport { ValueInputLocationComponent } from \"./implementation/value-input-location/value-input-location.component\";\r\nimport { ValueInputNumericComponent } from \"./implementation/value-input-numeric/value-input-numeric.component\";\r\nimport { ValueInputStringComponent } from \"./implementation/value-input-string/value-input-string.component\";\r\nimport { ValueInputVectorComponent } from \"./implementation/value-input-vector/value-input-vector.component\";\r\nimport { ValueInputDurationComponent } from \"./implementation/value-input-duration/value-input-duration.component\";\r\nimport { shared } from '../../common.config';\r\n\r\nexport interface ValueInputValidationConditions {\r\n regex?: string | RegExp | null;\r\n required?: boolean | null;\r\n minSize?: number | null;\r\n maxSize?: number | null;\r\n}\r\n\r\n@Component({\r\n selector: 'app-value-input',\r\n imports: [shared, ValueInputBooleanComponent, ValueInputColorComponent, ValueInputDateComponent, ValueInputEnumComponent, ValueInputHexadecimalComponent, ValueInputLinkComponent, ValueInputLocationComponent, ValueInputNumericComponent, ValueInputStringComponent, ValueInputVectorComponent, ValueInputDurationComponent],\r\n templateUrl: './value-input.component.html',\r\n styleUrl: './value-input.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ValueInputComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => ValueInputComponent),\r\n multi: true,\r\n }]\r\n})\r\nexport class ValueInputComponent implements ControlValueAccessor, Validator {\r\n\r\n name = input.required<string>();\r\n dataType = input.required<DataType>();\r\n options = input<string[]>();\r\n validationConditions = input<ValueInputValidationConditions | null>();\r\n showErrorInTooltip = input<boolean>(false);\r\n validators = signal<ValidatorFn[]>([]);\r\n\r\n formControl = new FormControl<string | null>(null);\r\n onValidatorChange!: () => void;\r\n\r\n constructor() {\r\n effect(() => {\r\n const validationConditions = this.validationConditions();\r\n const dataType = this.dataType();\r\n\r\n this.setValidators(validationConditions, dataType)\r\n });\r\n }\r\n\r\n validate(): ValidationErrors | null {\r\n return this.formControl.valid ? null : {valueInputForm: {valid: false}};\r\n }\r\n\r\n registerOnValidatorChange?(fn: () => void): void {\r\n this.onValidatorChange = fn;\r\n }\r\n\r\n onTouched!: (event: Event) => void;\r\n\r\n writeValue(value: string | null | undefined): void {\r\n if (value) {\r\n this.formControl.setValue(value, {emitEvent: false});\r\n } else {\r\n this.formControl.reset('', {emitEvent: false})\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.formControl.valueChanges.subscribe(fn);\r\n }\r\n\r\n registerOnTouched(fn: (event: Event) => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.formControl.disable();\r\n } else {\r\n this.formControl.enable();\r\n }\r\n }\r\n\r\n private setValidators(validationConditions: ValueInputValidationConditions | null | undefined, dataType: DataType) {\r\n if (!validationConditions) {\r\n return;\r\n }\r\n\r\n const validators = [];\r\n\r\n if (validationConditions.required) {\r\n validators.push(Validators.required)\r\n }\r\n\r\n if (validationConditions.regex && dataType === DataType.STRING) {\r\n validators.push(Validators.pattern(validationConditions.regex))\r\n }\r\n\r\n if (validationConditions.maxSize !== null && validationConditions.maxSize !== undefined) {\r\n validators.push(Validators.maxLength(+validationConditions.maxSize))\r\n }\r\n\r\n if (validationConditions.minSize !== null && validationConditions.minSize !== undefined) {\r\n validators.push(Validators.minLength(+validationConditions.minSize))\r\n }\r\n\r\n this.validators.set(validators)\r\n }\r\n\r\n protected readonly DataType = DataType;\r\n}\r\n","@switch (dataType()) {\r\n @case (DataType.STRING) {\r\n <app-value-input-string [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.NUMERIC) {\r\n <app-value-input-numeric [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.BOOLEAN) {\r\n <app-value-input-boolean [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.HEXADECIMAL) {\r\n <app-value-input-hexadecimal [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.COLOR) {\r\n <app-value-input-color [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.LINK) {\r\n <app-value-input-link [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.DATE) {\r\n <app-value-input-date [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.DURATION) {\r\n <app-value-input-duration [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.LOCATION) {\r\n <app-value-input-location [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.VECTOR) {\r\n <app-value-input-vector [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\" [options]=\"options()\"/>\r\n }\r\n @case (DataType.ENUM) {\r\n <app-value-input-enum [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\" [options]=\"options()\"/>\r\n }\r\n}\r\n","// Config\r\nexport * from './lib/common.config';\r\n\r\n// Models\r\nexport * from './lib/component/+common/model/icon';\r\nexport * from './lib/component/+common/model/tab';\r\nexport * from './lib/model/authentication.model';\r\nexport * from './lib/model/import-error.model';\r\n\r\n// Enums\r\nexport * from './lib/enum/data-type';\r\nexport * from './lib/enum/permission.enum';\r\n\r\n// Guards\r\nexport * from './lib/guard/requires-permission.guard';\r\n\r\n// Services\r\nexport * from './lib/service/authentication-client';\r\nexport * from './lib/service/authentication.service';\r\nexport * from './lib/service/feature-registry.service';\r\nexport * from './lib/service/maps-loader.service';\r\nexport * from './lib/service/notification.service';\r\nexport * from './lib/service/permissions.service';\r\nexport * from './lib/service/tenant-properties.service';\r\nexport * from './lib/service/theme.service';\r\n\r\n// Directives\r\nexport * from './lib/directive/loading-indicator.directive';\r\nexport * from './lib/directive/localize-numeric-input.directive';\r\nexport * from './lib/directive/message-tooltip.directive';\r\nexport * from './lib/directive/ng-template-content.directive';\r\nexport * from './lib/directive/overflow-class.directive';\r\nexport * from './lib/directive/requires-all-global-asset-permission.directive';\r\nexport * from './lib/directive/requires-all-permissions.directive';\r\nexport * from './lib/directive/requires-global-asset-permission.directive';\r\nexport * from './lib/directive/requires-permission.directive';\r\nexport * from './lib/directive/scroll-into-view.directive';\r\n\r\n// Pipes\r\nexport * from './lib/pipe/duration.pipe';\r\nexport * from './lib/pipe/localized-number.pipe';\r\nexport * from './lib/pipe/simple-date-time.pipe';\r\nexport * from './lib/pipe/simple-date.pipe';\r\nexport * from './lib/pipe/simple-time.pipe';\r\nexport * from './lib/pipe/sort.pipe';\r\n\r\n// Utilities\r\nexport * from './lib/util/chart-theme-dark';\r\nexport * from './lib/util/chart-theme-light';\r\nexport * from './lib/util/date-util';\r\nexport * from './lib/util/file-util';\r\nexport * from './lib/util/form-validation.util';\r\nexport * from './lib/util/locale-util';\r\nexport * from './lib/util/missing-translation-helper';\r\nexport * from './lib/util/numeric-util';\r\nexport * from './lib/util/object-utils';\r\nexport * from './lib/util/string-util';\r\nexport * from './lib/util/time-zone-util';\r\nexport * from './lib/util/url-utils';\r\n\r\n// Components\r\nexport * from './lib/component/autocomplete/autocomplete.component';\r\nexport * from './lib/component/autocomplete-chips/autocomplete-chips.component';\r\nexport * from './lib/component/basic-time-series-graph/basic-time-series-graph.component';\r\nexport * from './lib/component/basic-time-series-graph/time-series';\r\nexport * from './lib/component/card-labeled-value/card-labeled-value.component';\r\nexport * from './lib/component/confirmation-dialog/confirmation-dialog.component';\r\nexport * from './lib/component/date-range-input/date-range-input.component';\r\nexport * from './lib/component/date-time-form-field/date-time-form-field.component';\r\nexport * from './lib/component/drag-drop-file-upload/drag-drop-file-upload.component';\r\nexport * from './lib/component/google-map/google-map.component';\r\nexport * from './lib/component/image-display/image-display.component';\r\nexport * from './lib/component/image-display/image-preview/image-preview.component';\r\nexport * from './lib/component/labeled-value/labeled-value.component';\r\nexport * from './lib/component/loaded-icon/loaded-icon.component';\r\nexport * from './lib/component/local-sort-table/local-sort-table.component';\r\nexport * from './lib/component/master-details-view/master-details-view.component';\r\nexport * from './lib/component/nested-list-view/nested-list-view.component';\r\nexport * from './lib/component/nested-list-view/nested-list.data-control';\r\nexport * from './lib/component/nested-list-view/nested-list.data-source';\r\nexport * from './lib/component/pdf-viewer/pdf-viewer.component';\r\nexport * from './lib/component/standard-list-view/standard-list-view.component';\r\nexport * from './lib/component/standard-list-view/standard-list.data-control';\r\nexport * from './lib/component/standard-list-view/standard-list.data-source';\r\nexport * from './lib/component/tabulated-chip-view/tabulated-chip-view.component';\r\nexport * from './lib/component/tabulated-view/tabulated-view.component';\r\nexport * from './lib/component/tree/tree.component';\r\nexport * from './lib/component/tree/tree.model';\r\nexport * from './lib/component/tree/tree-node/tree-node.component';\r\nexport * from './lib/component/value-display/value-display.component';\r\nexport * from './lib/component/value-input/value-input.component';\r\nexport * from './lib/component/value-input/implementation/value-input-boolean/value-input-boolean.component';\r\nexport * from './lib/component/value-input/implementation/value-input-color/value-input-color.component';\r\nexport * from './lib/component/value-input/implementation/value-input-date/value-input-date.component';\r\nexport * from './lib/component/value-input/implementation/value-input-duration/value-input-duration.component';\r\nexport * from './lib/component/value-input/implementation/value-input-enum/value-input-enum.component';\r\nexport * from './lib/component/value-input/implementation/value-input-hexadecimal/value-input-hexadecimal.component';\r\nexport * from './lib/component/value-input/implementation/value-input-link/value-input-link.component';\r\nexport * from './lib/component/value-input/implementation/value-input-location/value-input-location.component';\r\nexport * from './lib/component/value-input/implementation/value-input-numeric/value-input-numeric.component';\r\nexport * from './lib/component/value-input/implementation/value-input-string/value-input-string.component';\r\nexport * from './lib/component/value-input/implementation/value-input-vector/value-input-vector.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1.TenantPropertiesService","i1","i1.PermissionsService","i30","i1.SimpleDateTimePipe","i31","i32","i33","i14","i15","i16","i17","i18","i19","i20","i21","i22","i23","i24","i25","i26","i27","i28","i29","i2.NotificationService","i3","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i2.SimpleDateTimePipe"],"mappings":"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"}
|