@valtimo/dashboard 11.1.2 → 11.2.0
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.
- package/esm2022/lib/components/widget-dashboard/widget-dashboard.component.mjs +6 -4
- package/esm2022/lib/components/widget-dashboard-content/widget-dashboard-content.component.mjs +5 -4
- package/esm2022/lib/dashboard.module.mjs +8 -5
- package/esm2022/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.mjs +3 -3
- package/fesm2022/valtimo-dashboard.mjs +12 -9
- package/fesm2022/valtimo-dashboard.mjs.map +1 -1
- package/lib/dashboard.module.d.ts +1 -1
- package/lib/dashboard.module.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-dashboard.mjs","sources":["../../../../projects/valtimo/dashboard/src/lib/components/dashboard/dashboard.component.ts","../../../../projects/valtimo/dashboard/src/lib/components/dashboard/dashboard.component.html","../../../../projects/valtimo/dashboard/src/lib/constants/data-features.constants.ts","../../../../projects/valtimo/dashboard/src/lib/constants/injection-tokens.ts","../../../../projects/valtimo/dashboard/src/lib/constants/layout.constants.ts","../../../../projects/valtimo/dashboard/src/lib/constants/index.ts","../../../../projects/valtimo/dashboard/src/lib/services/widget.service.ts","../../../../projects/valtimo/dashboard/src/lib/services/widget-layout.service.ts","../../../../projects/valtimo/dashboard/src/lib/services/dashboard.service.ts","../../../../projects/valtimo/dashboard/src/lib/services/widget-translation.service.ts","../../../../projects/valtimo/dashboard/src/lib/services/index.ts","../../../../projects/valtimo/dashboard/src/lib/components/widget-dashboard-content/widget-dashboard-content.component.ts","../../../../projects/valtimo/dashboard/src/lib/components/widget-dashboard-content/widget-dashboard-content.component.html","../../../../projects/valtimo/dashboard/src/lib/services/widget-api.service.ts","../../../../projects/valtimo/dashboard/src/lib/components/widget-dashboard/widget-dashboard.component.ts","../../../../projects/valtimo/dashboard/src/lib/components/widget-dashboard/widget-dashboard.component.html","../../../../projects/valtimo/dashboard/src/lib/dashboard-routing.module.ts","../../../../projects/valtimo/dashboard/src/lib/pipes/widget-translate/widget-translate.pipe.ts","../../../../projects/valtimo/dashboard/src/lib/pipes/widget-translate/widget-translate-pipe.module.ts","../../../../projects/valtimo/dashboard/src/lib/pipes/widget-translate/index.ts","../../../../projects/valtimo/dashboard/src/lib/pipes/index.ts","../../../../projects/valtimo/dashboard/src/lib/dashboard.module.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/components/test-configuration/test-configuration.component.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/components/test-configuration/test-configuration.component.html","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/components/test-configuration/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/components/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/models/test.model.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/test.specification.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/test.module.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/models/case-count.model.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.html","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/components/case-count-configuration/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/components/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/case-count.specification.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/case-count.module.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/models/bar-chart.model.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.html","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/components/bar-chart-display/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/components/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/bar-chart.specification.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/bar-chart.module.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.html","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-configuration/index.ts","../../../../projects/valtimo/dashboard/src/lib/models/configuration.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/dashboard.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/data-source.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/display-type.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/layout.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/widget-data.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/widget-display.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-display/big-number-display.component.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-display/big-number-display.component.html","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-display/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/big-number.specification.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/big-number.module.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/models/big-number.model.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/components/meter-display/meter-display.component.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/components/meter-display/meter-display.component.html","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/components/meter-display/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/components/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/meter.specification.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/meter.module.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/models/meter.model.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/index.ts","../../../../projects/valtimo/dashboard/src/public_api.ts","../../../../projects/valtimo/dashboard/src/valtimo-dashboard.ts"],"sourcesContent":["/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {Task, TaskDetailModalComponent, TaskService} from '@valtimo/task';\nimport moment from 'moment';\nimport {BehaviorSubject} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.css'],\n})\nexport class DashboardComponent implements OnInit {\n public processDefinitions: Array<any>;\n public openTasks: Array<any>;\n public openTaskFields = [\n {\n key: 'created',\n label: 'Created',\n },\n {\n key: 'name',\n label: 'Name',\n },\n {\n key: 'valtimoAssignee.fullName',\n label: 'Assignee',\n },\n ];\n @ViewChild('taskDetail') taskDetail: TaskDetailModalComponent;\n\n loading$ = new BehaviorSubject<boolean>(true);\n\n constructor(\n private readonly taskService: TaskService,\n private readonly route: ActivatedRoute\n ) {}\n\n ngOnInit() {\n this.getOpenTasks();\n }\n\n public getOpenTasks() {\n this.taskService.getTasks().subscribe(response => {\n this.openTasks = response;\n this.openTasks.map(task => {\n task.created = moment(task.created).format('DD MMM YYYY HH:mm');\n });\n this.checkRouteForTaskId(response);\n this.loading$.next(false);\n });\n }\n\n public rowOpenTaskClick(task) {\n if (!task.endTime) {\n this.taskDetail.openTaskDetails(task);\n }\n }\n\n private checkRouteForTaskId(tasks: Array<Task>): void {\n this.route.queryParams.pipe(take(1)).subscribe(params => {\n const taskId = params?.taskId;\n const findTaskFromId = tasks.find(task => task.id === taskId);\n\n if (findTaskFromId) {\n this.rowOpenTaskClick(findTaskFromId);\n }\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content container-fluid\" *ngIf=\"{loading: loading$ | async} as obs\">\n <h4 class=\"title\">\n {{ 'dashboard.openTasks.title' | translate }}\n <sup *ngIf=\"obs.loading === false\" class=\"ml-1 badge badge-pill badge-primary\">{{\n openTasks?.length\n }}</sup>\n </h4>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"openTasks\"\n [fields]=\"openTaskFields\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n ></valtimo-list>\n </valtimo-widget>\n </ng-container>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"getOpenTasks()\"\n (assignmentOfTaskChanged)=\"getOpenTasks()\"\n ></valtimo-task-detail-modal>\n</div>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst DATA_FEATURES = {\n NUMBER: 'number',\n TOTAL: 'total',\n};\n\nexport {DATA_FEATURES};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {DataSourceSpecification, DisplayTypeSpecification} from '../models';\n\nconst DISPLAY_TYPE_TOKEN = new InjectionToken<DisplayTypeSpecification | null>(\n 'Supported display types'\n);\n\nconst DATA_SOURCE_TOKEN = new InjectionToken<DataSourceSpecification | null>(\n 'Supported data sources'\n);\n\nexport {DISPLAY_TYPE_TOKEN, DATA_SOURCE_TOKEN};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst WIDGET_1X_HEIGHT = 220;\nconst WIDGET_1X_MIN_WIDTH = 275;\n\nexport {WIDGET_1X_HEIGHT, WIDGET_1X_MIN_WIDTH};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './data-features.constants';\nexport * from './injection-tokens';\nexport * from './layout.constants';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable} from '@angular/core';\nimport {DATA_SOURCE_TOKEN, DISPLAY_TYPE_TOKEN} from '../constants';\nimport {DataSourceSpecification, DisplayTypeSpecification} from '../models';\nimport {BehaviorSubject, filter, Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WidgetService {\n private readonly _supportedDisplayTypes$ =\n new BehaviorSubject<Array<DisplayTypeSpecification> | null>(null);\n\n private readonly _supportedDataSources$ =\n new BehaviorSubject<Array<DataSourceSpecification> | null>(null);\n\n public get supportedDisplayTypes$(): Observable<Array<DisplayTypeSpecification>> {\n return this._supportedDisplayTypes$.pipe(filter(specifications => !!specifications));\n }\n\n public get supportedDataSources$(): Observable<Array<DataSourceSpecification>> {\n return this._supportedDataSources$.pipe(filter(specifications => !!specifications));\n }\n\n public get supportedDisplayTypes(): Array<DisplayTypeSpecification> {\n return this._supportedDisplayTypes$.getValue() || [];\n }\n\n public get supportedDataSources(): Array<DataSourceSpecification> {\n return this._supportedDataSources$.getValue() || [];\n }\n\n constructor(\n @Inject(DISPLAY_TYPE_TOKEN)\n private readonly supportedDisplayTypesFromToken: Array<DisplayTypeSpecification | null>,\n @Inject(DATA_SOURCE_TOKEN)\n private readonly supportedDataSourcesFromToken: Array<DataSourceSpecification | null>\n ) {\n this.setSupportedDisplayTypes(supportedDisplayTypesFromToken);\n this.setSupportedDataSources(supportedDataSourcesFromToken);\n }\n\n private setSupportedDisplayTypes(\n supportedDisplayTypes: Array<DisplayTypeSpecification | null>\n ): void {\n this._supportedDisplayTypes$.next(supportedDisplayTypes.filter(displayType => !!displayType));\n }\n\n private setSupportedDataSources(\n supportedDataSources: Array<DataSourceSpecification | null>\n ): void {\n this._supportedDataSources$.next(supportedDataSources.filter(dataSource => !!dataSource));\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, Subscription} from 'rxjs';\nimport {WidgetService} from './widget.service';\nimport {DashboardWidgetConfiguration, PackResult, WidgetConfigurationBin} from '../models';\nimport {WIDGET_1X_HEIGHT, WIDGET_1X_MIN_WIDTH} from '../constants';\nimport pack from 'bin-pack-with-constraints';\n\n@Injectable()\nexport class WidgetLayoutService implements OnDestroy {\n private readonly _widgetContainerWidth$ = new BehaviorSubject<number | null>(null);\n private readonly _widgetConfigurations$ = new BehaviorSubject<\n Array<DashboardWidgetConfiguration>\n >([]);\n private readonly _widgetPackResult$ = new BehaviorSubject<PackResult | null>(null);\n\n private _layoutSubscription!: Subscription;\n\n public get widgetPackResult$(): Observable<PackResult> {\n return this._widgetPackResult$.asObservable().pipe(filter(result => !!result));\n }\n\n private get widgetContainerWidth$(): Observable<number> {\n return this._widgetContainerWidth$.asObservable().pipe(filter(width => !!width));\n }\n\n private get widgetConfigurationBins$(): Observable<Array<WidgetConfigurationBin>> {\n return combineLatest([\n this.widgetService.supportedDisplayTypes$,\n this._widgetConfigurations$,\n ]).pipe(\n map(([displayTypes, configurations]) =>\n configurations.map(configuration => {\n const specification = displayTypes.find(\n type => type.displayTypeKey === configuration.displayType\n );\n return {\n configurationKey: configuration.key,\n width: specification.width,\n height: specification.height,\n };\n })\n )\n );\n }\n\n constructor(private readonly widgetService: WidgetService) {\n this.openLayoutSubscription();\n }\n\n ngOnDestroy(): void {\n this._layoutSubscription?.unsubscribe();\n }\n\n setWidgetContainerWidth(width: number): void {\n this._widgetContainerWidth$.next(width);\n }\n\n setWidgetConfigurations(configurations: Array<DashboardWidgetConfiguration>): void {\n this._widgetConfigurations$.next(configurations);\n }\n\n private openLayoutSubscription(): void {\n this._layoutSubscription = combineLatest([\n this.widgetContainerWidth$,\n this.widgetConfigurationBins$,\n ]).subscribe(([widgetContainerWidth, configurationBins]) => {\n const amountOfMinWidthColumns = this.getAmountOfMinWidthColumns(widgetContainerWidth);\n const widget1xWidth = this.getWidget1xWidth(widgetContainerWidth, amountOfMinWidthColumns);\n const binsToFit = configurationBins.map(configurationBin => ({\n ...configurationBin,\n width: configurationBin.width * widget1xWidth,\n height: configurationBin.height * WIDGET_1X_HEIGHT,\n }));\n const heightConstraint = this.getHeightConstraint(configurationBins, amountOfMinWidthColumns);\n const resultWithoutHeightConstraint = this.getPackResult(binsToFit, widgetContainerWidth);\n const resultWithHeightConstraint = this.getPackResult(\n binsToFit,\n widgetContainerWidth,\n heightConstraint\n );\n const resultWithHeightConstraintExceedsBoundary = this.checkIfPackResultExceedsBoundary(\n resultWithHeightConstraint,\n widgetContainerWidth\n );\n const resultToUse = resultWithHeightConstraintExceedsBoundary\n ? resultWithoutHeightConstraint\n : resultWithHeightConstraint;\n const resultWithMaxWidth = this.getResultWithMaxWidth(resultToUse, widgetContainerWidth);\n\n this._widgetPackResult$.next(resultWithMaxWidth);\n });\n }\n\n private getPackResult(\n binsToFit: Array<WidgetConfigurationBin>,\n maxWidth: number,\n maxHeight?: number\n ): PackResult {\n return pack(binsToFit, {\n maxWidth,\n ...(maxHeight && {maxHeight}),\n });\n }\n\n private checkIfPackResultExceedsBoundary(result: PackResult, maxWidth: number): boolean {\n return !!result.items.find(item => item.width + item.x > maxWidth);\n }\n\n private getAmountOfMinWidthColumns(containerWidth: number): number {\n return Math.floor(containerWidth / WIDGET_1X_MIN_WIDTH);\n }\n\n private getWidget1xWidth(containerWidth: number, amountOfMinWidthColumns: number): number {\n const widget1xWidth = Math.floor(containerWidth / (amountOfMinWidthColumns || 1));\n\n return widget1xWidth;\n }\n\n private getResultWithMaxWidth(result: PackResult, containerWidth: number): PackResult {\n return {\n ...result,\n items: result.items.map(item => ({\n ...item,\n width: item.width > containerWidth ? containerWidth : item.width,\n })),\n };\n }\n\n private getHeightConstraint(\n binsToFit: Array<WidgetConfigurationBin>,\n amountOfMinWidthColumns: number\n ): number {\n const amountOfSpacesNeeded = binsToFit.reduce((acc, curr) => acc + curr.height * curr.width, 0);\n const minAmountOfRowsNeeded = Math.ceil(amountOfSpacesNeeded / amountOfMinWidthColumns);\n const tallestWidgetHeightSpace = binsToFit.reduce(\n (acc, curr) => (curr.height > acc ? curr.height : acc),\n 0\n );\n const amountOfRowsNeeded =\n minAmountOfRowsNeeded < tallestWidgetHeightSpace\n ? tallestWidgetHeightSpace\n : minAmountOfRowsNeeded;\n\n return amountOfRowsNeeded * WIDGET_1X_HEIGHT;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {Dashboard} from '../models';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DashboardService {\n private _endpointUri: string;\n\n constructor(\n private readonly http: HttpClient,\n private readonly configService: ConfigService\n ) {\n this._endpointUri = this.configService.config.valtimoApi.endpointUri;\n }\n\n public getDashboards(): Observable<Array<Dashboard>> {\n return this.http.get<Array<Dashboard>>(`${this._endpointUri}v1/dashboard`);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DataSourceSpecification, DisplayTypeSpecification} from '../models';\nimport {combineLatest, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {WidgetService} from './widget.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WidgetTranslationService {\n constructor(\n private readonly translateService: TranslateService,\n private readonly widgetService: WidgetService\n ) {}\n\n translate(translateKey: string, key: string): Observable<string> {\n return combineLatest([\n this.widgetService.supportedDisplayTypes$,\n this.widgetService.supportedDataSources$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([supportedDisplayTypes, supportedDataSources]) =>\n this.getTranslation(supportedDisplayTypes, supportedDataSources, key, translateKey)\n )\n );\n }\n\n instant(translateKey: string, displayTypeKey: string): string {\n return this.getTranslation(\n this.widgetService.supportedDisplayTypes,\n this.widgetService.supportedDataSources,\n displayTypeKey,\n translateKey\n );\n }\n\n private getTranslation(\n supportedDisplayTypes: Array<DisplayTypeSpecification>,\n supportedDataSources: Array<DataSourceSpecification>,\n key: string,\n translateKey: string\n ): string {\n const currentLang = this.translateService.currentLang;\n const displayTypeSpecification = supportedDisplayTypes.find(\n displayType => displayType.displayTypeKey === key\n );\n const dataSourceSpecification = supportedDataSources.find(\n datasource => datasource.dataSourceKey === key\n );\n\n let translation = '';\n\n if (\n displayTypeSpecification &&\n displayTypeSpecification.translations.hasOwnProperty(currentLang)\n ) {\n translation = displayTypeSpecification.translations[currentLang][translateKey];\n } else if (\n dataSourceSpecification &&\n dataSourceSpecification.translations.hasOwnProperty(currentLang)\n ) {\n translation = dataSourceSpecification.translations[currentLang][translateKey];\n }\n\n return translation || `${key}.${translateKey}`;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dashboard.service';\nexport * from './widget-translation.service';\nexport * from './widget.service';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n AfterViewInit,\n Component,\n ComponentRef,\n ElementRef,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {Dashboard, DashboardWidgetConfiguration, DisplayComponent, WidgetData} from '../../models';\nimport {WidgetService} from '../../services';\nimport {WidgetLayoutService} from '../../services/widget-layout.service';\n\n@Component({\n selector: 'valtimo-widget-dashboard-content',\n templateUrl: './widget-dashboard-content.component.html',\n styleUrls: ['./widget-dashboard-content.component.scss'],\n providers: [WidgetLayoutService],\n})\nexport class WidgetDashboardContentComponent implements AfterViewInit, OnDestroy {\n @ViewChildren('widgetConfiguration') private _widgetConfigurationRefs: QueryList<\n ElementRef<HTMLDivElement>\n >;\n @ViewChildren('widgetConfigurationContent', {read: ViewContainerRef})\n private _widgetConfigurationContentVcRefs: QueryList<ViewContainerRef>;\n @ViewChild('widgetContainer') private _widgetContainerRef: ElementRef<HTMLDivElement>;\n\n public readonly isLoading$ = new BehaviorSubject<boolean>(true);\n private _widgetData$ = new BehaviorSubject<WidgetData[]>([]);\n\n @Input() set widgetData(value: {data: WidgetData[]; loading: boolean}) {\n this.isLoading$.next(value.loading);\n this._widgetData$.next(value.data);\n }\n @Input() set dashboard(value: Dashboard) {\n this.setWidgetConfigurations(value);\n }\n\n public readonly widgetConfigurations$ =\n new BehaviorSubject<Array<DashboardWidgetConfiguration> | null>(null);\n\n private _observer!: ResizeObserver;\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly layoutService: WidgetLayoutService,\n private readonly widgetService: WidgetService,\n private readonly renderer: Renderer2\n ) {}\n\n public ngAfterViewInit(): void {\n this._observer = new ResizeObserver(event => {\n this.observerMutation(event);\n });\n this._observer.observe(this._widgetContainerRef.nativeElement);\n this.openPackResultSubscription();\n this.renderWidgets();\n }\n\n public ngOnDestroy(): void {\n this._observer?.disconnect();\n this._subscriptions?.unsubscribe();\n }\n\n private setWidgetConfigurations(dashboard: Dashboard): void {\n this.widgetService.supportedDisplayTypes$.pipe(take(1)).subscribe(supportedDisplayTypes => {\n const supportedWidgetConfigurations =\n dashboard.widgets?.filter(widgetConfiguration =>\n supportedDisplayTypes.find(\n type => type.displayTypeKey === widgetConfiguration.displayType\n )\n ) || [];\n this.layoutService.setWidgetConfigurations(supportedWidgetConfigurations);\n this.widgetConfigurations$.next(supportedWidgetConfigurations);\n });\n }\n\n private observerMutation(event: Array<ResizeObserverEntry>): void {\n const widgetContainerWidth = event[0]?.borderBoxSize[0]?.inlineSize;\n\n if (typeof widgetContainerWidth === 'number' && widgetContainerWidth !== 0) {\n this.layoutService.setWidgetContainerWidth(widgetContainerWidth);\n }\n }\n\n private openPackResultSubscription(): void {\n this._subscriptions.add(\n this.layoutService.widgetPackResult$.subscribe(packResult => {\n this.renderer.setStyle(\n this._widgetContainerRef.nativeElement,\n 'height',\n `${packResult.height}px`\n );\n\n this._widgetConfigurationRefs.toArray().forEach(widgetConfigurationRef => {\n const nativeElement = widgetConfigurationRef.nativeElement;\n const configPackResult = packResult.items.find(\n result => result.item.configurationKey === nativeElement.id\n );\n this.renderer.setStyle(nativeElement, 'height', `${configPackResult?.height}px`);\n this.renderer.setStyle(nativeElement, 'width', `${configPackResult?.width}px`);\n this.renderer.setStyle(nativeElement, 'left', `${configPackResult?.x}px`);\n this.renderer.setStyle(nativeElement, 'top', `${configPackResult?.y}px`);\n });\n })\n );\n }\n\n private renderWidgets(): void {\n this._subscriptions.add(\n combineLatest([\n this.widgetConfigurations$,\n this.widgetService.supportedDisplayTypes$,\n this._widgetData$,\n ]).subscribe(([configurations, displayTypes, data]) => {\n configurations?.forEach((configuration, index) => {\n const displayType = displayTypes.find(\n type => type.displayTypeKey === configuration.displayType\n );\n const vcRef = this._widgetConfigurationContentVcRefs.toArray()[index];\n\n if (displayType && data) {\n vcRef.clear();\n const componentInstance: ComponentRef<DisplayComponent> = vcRef.createComponent(\n displayType.displayComponent\n );\n componentInstance.setInput('displayTypeKey', configuration.displayType);\n componentInstance.setInput('displayTypeProperties', {\n ...configuration.displayTypeProperties,\n });\n\n componentInstance.setInput(\n 'data',\n data.find(dataItem => dataItem.key === configuration.key)?.data\n );\n }\n });\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div #widgetContainer [class.loading]=\"isLoading$ | async\" class=\"widget-container\">\n <ng-container *ngIf=\"widgetConfigurations$ | async as widgetConfigurations\">\n <ng-container *ngFor=\"let config of widgetConfigurations\">\n <div #widgetConfiguration [id]=\"config.key\" class=\"widget-configuration\">\n <div class=\"widget-configuration-content\">\n <ng-container #widgetConfigurationContent></ng-container>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf=\"widgetConfigurations.length === 0\" class=\"no-widgets-message\">\n {{ 'dashboard.noWidgets' | translate }}\n </div>\n </ng-container>\n</div>\n\n<cds-loading *ngIf=\"isLoading$ | async\" class=\"widget-loader\"></cds-loading>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {HttpClient} from '@angular/common/http';\nimport {WidgetData} from '../models';\nimport {Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WidgetApiService {\n private _endpointUri: string;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {\n this._endpointUri = `${this.configService.config.valtimoApi.endpointUri}v1/dashboard`;\n }\n\n public getWidgetData(dashboardKey: string): Observable<WidgetData[]> {\n return this.http.get<WidgetData[]>(`${this._endpointUri}/${dashboardKey}/data`);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, ViewEncapsulation} from '@angular/core';\nimport {BehaviorSubject, Observable, take, tap} from 'rxjs';\nimport {Dashboard, WidgetData} from '../../models';\nimport {DashboardService} from '../../services';\nimport {WidgetApiService} from '../../services/widget-api.service';\n\n@Component({\n selector: 'valtimo-widget-dashboard',\n templateUrl: './widget-dashboard.component.html',\n styleUrls: ['./widget-dashboard.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class WidgetDashboardComponent {\n public dashboards$: Observable<Array<Dashboard>> = this.dashboardService.getDashboards().pipe(\n tap(dashboards => {\n if (dashboards.length === 1) {\n this.onTabSelected(dashboards[0].key);\n }\n })\n );\n public readonly activeWidgetData$ = new BehaviorSubject<{data: WidgetData[]; loading: boolean}>({\n data: [],\n loading: true,\n });\n\n constructor(\n private readonly dashboardService: DashboardService,\n private readonly widgetApiService: WidgetApiService\n ) {}\n\n public onTabSelected(dashboardKey: string): void {\n this.widgetApiService\n .getWidgetData(dashboardKey)\n .pipe(\n tap(() => {\n this.activeWidgetData$.next({data: [], loading: true});\n }),\n take(1)\n )\n .subscribe((data: WidgetData[]) => this.activeWidgetData$.next({data, loading: false}));\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"dashboards$ | async as dashboards\" class=\"dashboards-container\">\n <div *ngIf=\"dashboards.length === 1\">\n <h4>{{ dashboards[0].title }}</h4>\n\n <valtimo-widget-dashboard-content\n [dashboard]=\"dashboards[0]\"\n [widgetData]=\"activeWidgetData$ | async\"\n ></valtimo-widget-dashboard-content>\n </div>\n\n <div *ngIf=\"dashboards.length > 1\">\n <cds-tabs>\n <cds-tab\n *ngFor=\"let dashboard of dashboards; trackBy: trackByIndex\"\n [heading]=\"dashboard.title\"\n (selected)=\"onTabSelected(dashboard.key)\"\n >\n <valtimo-widget-dashboard-content\n [dashboard]=\"dashboard\"\n [widgetData]=\"activeWidgetData$ | async\"\n ></valtimo-widget-dashboard-content>\n </cds-tab>\n </cds-tabs>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ROLE_USER} from '@valtimo/config';\nimport {AuthGuardService} from '@valtimo/security';\nimport {WidgetDashboardComponent} from './components/widget-dashboard/widget-dashboard.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: WidgetDashboardComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dashboard', roles: [ROLE_USER], hidePageTitle: true},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DashboardRoutingModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {WidgetTranslationService} from '../../services';\n\n@Pipe({\n name: 'widgetTranslate',\n})\nexport class WidgetTranslatePipe implements PipeTransform {\n constructor(private readonly widgetTranslationService: WidgetTranslationService) {}\n\n transform(translateKey: string, key: string): Observable<string> {\n return this.widgetTranslationService.translate(translateKey, key);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {WidgetTranslatePipe} from './widget-translate.pipe';\nimport {NgModule} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n imports: [TranslateModule],\n declarations: [WidgetTranslatePipe],\n exports: [WidgetTranslatePipe],\n})\nexport class WidgetTranslatePipeModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './widget-translate.pipe';\nexport * from './widget-translate-pipe.module';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './widget-translate';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {HttpClient} from '@angular/common/http';\nimport {NgModule} from '@angular/core';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\nimport {\n AlertModule,\n BpmnJsDiagramModule,\n ListModule,\n SpinnerModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {TaskModule} from '@valtimo/task';\nimport {LoadingModule, TabsModule, ThemeModule} from 'carbon-components-angular';\nimport {DashboardComponent} from './components/dashboard/dashboard.component';\nimport {WidgetDashboardContentComponent} from './components/widget-dashboard-content/widget-dashboard-content.component';\nimport {WidgetDashboardComponent} from './components/widget-dashboard/widget-dashboard.component';\nimport {DashboardRoutingModule} from './dashboard-routing.module';\nimport {DATA_SOURCE_TOKEN, DISPLAY_TYPE_TOKEN} from './constants';\nimport {WidgetTranslatePipeModule} from './pipes';\n\n// AoT requires an exported function for factories\nexport function HttpLoaderFactory(httpClient: HttpClient) {\n return new TranslateHttpLoader(httpClient);\n}\n\n@NgModule({\n declarations: [DashboardComponent, WidgetDashboardComponent, WidgetDashboardContentComponent],\n imports: [\n CommonModule,\n DashboardRoutingModule,\n WidgetModule,\n ListModule,\n BpmnJsDiagramModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n AlertModule,\n TaskModule,\n SpinnerModule,\n TabsModule,\n ThemeModule,\n WidgetTranslatePipeModule,\n LoadingModule,\n ],\n exports: [DashboardComponent, WidgetDashboardComponent],\n providers: [\n {provide: DISPLAY_TYPE_TOKEN, useValue: null, multi: true},\n {provide: DATA_SOURCE_TOKEN, useValue: null, multi: true},\n ],\n})\nexport class DashboardModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {ConfigurationOutput, DataSourceConfigurationComponent} from '../../../../models';\nimport {startWith, Subscription} from 'rxjs';\nimport {FormBuilder, Validators} from '@angular/forms';\nimport {TestConfiguration} from '../../models';\n\n@Component({\n templateUrl: './test-configuration.component.html',\n styleUrls: ['./test-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TestConfigurationComponent\n implements OnInit, OnDestroy, DataSourceConfigurationComponent\n{\n public readonly form = this.fb.group({\n value: this.fb.control(null, [Validators.required]),\n total: this.fb.control(null, [Validators.required]),\n });\n\n @Input() dataSourceKey: string;\n @Input() set disabled(disabledValue: boolean) {\n if (disabledValue) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n public get value() {\n return this.form.get('value');\n }\n\n public get total() {\n return this.form.get('total');\n }\n\n @Input() set prefillConfiguration(configurationValue: TestConfiguration) {\n if (configurationValue) {\n this.value.setValue(configurationValue.value);\n this.total.setValue(configurationValue.total);\n }\n }\n\n @Output() public configurationEvent = new EventEmitter<ConfigurationOutput>();\n\n private _subscriptions = new Subscription();\n\n constructor(private readonly fb: FormBuilder) {}\n\n public ngOnInit(): void {\n this.openFormSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openFormSubscription(): void {\n this._subscriptions.add(\n this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {\n this.configurationEvent.emit({valid: this.form.valid, data: formValue});\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form [formGroup]=\"form\">\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'valueHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'valueHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"value.dirty && value.invalid\"\n >\n {{ 'value' | widgetTranslate: dataSourceKey | async }}\n\n <input\n cdsText\n formControlName=\"value\"\n [invalid]=\"value.dirty && value.invalid\"\n type=\"number\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'totalHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'totalHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"total.dirty && total.invalid\"\n >\n {{ 'total' | widgetTranslate: dataSourceKey | async }}\n\n <input\n cdsText\n formControlName=\"total\"\n [invalid]=\"total.dirty && total.invalid\"\n type=\"number\"\n />\n </cds-label>\n </div>\n</form>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './test-configuration.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './test-configuration';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface TestConfiguration {\n value: number;\n total: number;\n}\n\nexport {TestConfiguration};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './test.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DataSourceSpecification} from '../../models';\nimport {TestConfigurationComponent} from './components';\n\nexport const testDataSourceSpecification: DataSourceSpecification = {\n dataSourceKey: 'test',\n configurationComponent: TestConfigurationComponent,\n translations: {\n de: {\n title: 'Test-Datenquelle',\n value: 'Wert (erforderlich)',\n valueHelperText: 'Der im Widget angezeigte Wert',\n total: 'Gesamtwert (erforderlich)',\n totalHelperText: 'Der im Widget angezeigte Gesamtwert',\n },\n en: {\n title: 'Test data source',\n value: 'Value (required)',\n valueHelperText: 'The value displayed in the widget',\n total: 'Total value (required)',\n totalHelperText: 'The total value displayed in the widget',\n },\n nl: {\n title: 'Testdatabron',\n value: 'Waarde (vereist)',\n valueHelperText: 'De waarde die wordt weergegeven in de widget',\n total: 'Totaalwaarde (vereist)',\n totalHelperText: 'De totaalwaarde die wordt weergegeven in de widget',\n },\n },\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DATA_SOURCE_TOKEN} from '../../constants';\nimport {testDataSourceSpecification} from './test.specification';\nimport {TestConfigurationComponent} from './components';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {WidgetTranslatePipeModule} from '../../pipes';\nimport {InputModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [TestConfigurationComponent],\n imports: [CommonModule, ReactiveFormsModule, WidgetTranslatePipeModule, InputModule],\n exports: [TestConfigurationComponent],\n providers: [{provide: DATA_SOURCE_TOKEN, useValue: testDataSourceSpecification, multi: true}],\n})\nexport class TestDataSourceModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './test.module';\nexport * from './test.specification';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface QueryCondition {\n queryPath: string;\n queryOperator: string;\n queryValue: string;\n}\n\ninterface CaseCountConfiguration {\n documentDefinition: string;\n queryConditions: Array<QueryCondition>;\n}\n\nenum Operator {\n NOT_EQUAL_TO = '!=',\n EQUAL_TO = '==',\n GREATER_THAN = '>',\n GREATER_THAN_OR_EQUAL_TO = '>=',\n LESS_THAN = '<',\n LESS_THAN_OR_EQUAL_TO = '<=',\n}\n\nexport {CaseCountConfiguration, QueryCondition, Operator};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-count.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {ConfigurationOutput, DataSourceConfigurationComponent} from '../../../../models';\nimport {BehaviorSubject, combineLatest, map, Observable, startWith, Subscription} from 'rxjs';\nimport {FormBuilder, Validators} from '@angular/forms';\nimport {CaseCountConfiguration, Operator} from '../../models';\nimport {DocumentService} from '@valtimo/document';\nimport {ListItem} from 'carbon-components-angular';\nimport {ListItemWithId, MultiInputKeyValue, MultiInputValues} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {WidgetTranslationService} from '../../../../services';\n\n@Component({\n templateUrl: './case-count-configuration.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./case-count-configuration.component.scss'],\n})\nexport class CaseCountConfigurationComponent\n implements OnInit, OnDestroy, DataSourceConfigurationComponent\n{\n @Input() public dataSourceKey: string;\n\n public readonly form = this.fb.group({\n documentDefinition: this.fb.control(null, [Validators.required]),\n queryConditions: this.fb.control(null),\n });\n\n @Input() public set disabled(disabledValue: boolean) {\n if (disabledValue) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n private readonly _selectedDocumentDefinition$ = new BehaviorSubject<string>('');\n\n public readonly documentItems$: Observable<Array<ListItem>> = combineLatest([\n this.documentService.getAllDefinitions(),\n this._selectedDocumentDefinition$,\n ]).pipe(\n map(([documentDefinitions, selectedDocumentDefintion]) =>\n documentDefinitions.content.map(definition => ({\n content: definition.id.name,\n selected: definition.id.name === selectedDocumentDefintion,\n }))\n )\n );\n\n private readonly _OPERATORS: Array<Operator> = [\n Operator.NOT_EQUAL_TO,\n Operator.EQUAL_TO,\n Operator.GREATER_THAN,\n Operator.GREATER_THAN_OR_EQUAL_TO,\n Operator.LESS_THAN,\n Operator.LESS_THAN_OR_EQUAL_TO,\n ];\n\n public readonly operatorItems$: Observable<Array<ListItemWithId>> = this.translateService\n .stream('key')\n .pipe(\n map(() =>\n this._OPERATORS.map(operator => ({\n id: operator,\n content: this.widgetTranslationService.instant(operator, this.dataSourceKey),\n selected: false,\n }))\n )\n );\n\n public readonly defaultConditionValues$ = new BehaviorSubject<MultiInputValues | null>(null);\n public readonly allConditionsValid$ = new BehaviorSubject<boolean>(true);\n\n public get documentDefinition() {\n return this.form.get('documentDefinition');\n }\n\n public get queryConditions() {\n return this.form.get('queryConditions');\n }\n\n @Input() set prefillConfiguration(configurationValue: CaseCountConfiguration) {\n if (configurationValue) {\n this.documentDefinitionSelected({\n item: {\n content: configurationValue.documentDefinition,\n },\n } as any);\n this.defaultConditionValues$.next(\n configurationValue.queryConditions.map(condition => ({\n key: condition.queryPath,\n dropdown: condition.queryOperator,\n value: condition.queryValue,\n }))\n );\n }\n }\n\n @Output() public configurationEvent = new EventEmitter<ConfigurationOutput>();\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n private readonly widgetTranslationService: WidgetTranslationService\n ) {}\n\n public ngOnInit(): void {\n this.openFormSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public documentDefinitionSelected(documentDefinitionItem: ListItem): void {\n if (!documentDefinitionItem) {\n return;\n }\n\n this._selectedDocumentDefinition$.next(documentDefinitionItem?.item?.content);\n this.documentDefinition.setValue(documentDefinitionItem?.item?.content);\n }\n\n public conditionsValueChange(values: Array<MultiInputKeyValue>): void {\n if (values.length === 0) {\n this.queryConditions.setValue(null);\n } else {\n this.queryConditions.setValue(\n values.map(value => ({\n queryPath: value.key,\n queryOperator: value.dropdown,\n queryValue: value.value,\n }))\n );\n }\n }\n\n onAllConditionsValid(allConditionsValid: boolean): void {\n this.allConditionsValid$.next(allConditionsValid);\n }\n\n private openFormSubscription(): void {\n this._subscriptions.add(\n combineLatest([\n this.form.valueChanges.pipe(startWith(this.form.value)),\n this.allConditionsValid$,\n ]).subscribe(([formValue, allConditionsValid]) => {\n this.configurationEvent.emit({\n valid: this.form.valid && allConditionsValid,\n data: formValue,\n });\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-count-configuration-form\"\n *ngIf=\"{documentItems: documentItems$ | async, operatorItems: operatorItems$} as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"defaultConditionValues$ | async\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (allValuesValidEvent)=\"onAllConditionsValid($event)\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-count-configuration.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-count-configuration';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DataSourceSpecification} from '../../models';\nimport {CaseCountConfigurationComponent} from './components';\n\nexport const caseCountDataSourceSpecification: DataSourceSpecification = {\n dataSourceKey: 'case-count',\n configurationComponent: CaseCountConfigurationComponent,\n translations: {\n de: {\n title: 'Fallzahl',\n documentDefinition: 'Falltyp (erforderlich)',\n documentDefinitionHelperText: 'Der Falltyp, für den die Anzahl abgerufen wird',\n '!=': 'Nicht gleichzusetzen mit',\n '==': 'Gleich',\n '>': 'Größer als',\n '>=': 'Größer als oder gleich wie',\n '<': 'Weniger als',\n '<=': 'Gleich oder kleiner als',\n path: 'Pfad',\n operator: 'Operator',\n value: 'Wert',\n conditions: 'Bedingungen',\n conditionsHelperText:\n \"Geben Sie optionale Bedingungen zum Abrufen der Anzahl der Fälle für den ausgewählten Falltyp an. Zum Beispiel: 'case:createdBy', 'Gleich', 'test@test.com'.\",\n addCondition: 'Bedingung hinzufügen',\n },\n en: {\n title: 'Case count',\n documentDefinition: 'Case type (required)',\n documentDefinitionHelperText: 'The case type for which the count is retrieved',\n '!=': 'Not equal to',\n '==': 'Equal to',\n '>': 'Greater than',\n '>=': 'Greater than or equal to',\n '<': 'Less than',\n '<=': 'Less than or equal to',\n path: 'Path (required)',\n operator: 'Operator',\n value: 'Value',\n conditions: 'Conditions',\n conditionsHelperText:\n \"Specify optional conditions for retrieving the number of cases for the selected case type. For example: 'case:createdBy', 'Equal to', 'test@test.com'.\",\n addCondition: 'Add condition',\n },\n nl: {\n title: 'Aantal dossiers',\n documentDefinition: 'Dossiertype (vereist)',\n documentDefinitionHelperText: 'Het dossiertype waarvoor de telling wordt opgehaald',\n '!=': 'Niet gelijk aan',\n '==': 'Gelijk aan',\n '>': 'Groter dan',\n '>=': 'Groter dan of gelijk aan',\n '<': 'Minder dan',\n '<=': 'Minder dan of gelijk aan',\n path: 'Pad',\n operator: 'Operator',\n value: 'Waarde',\n conditions: 'Condities',\n conditionsHelperText:\n \"Geef optionele condities op voor het ophalen van het aantal zaken voor het geselecteerde zaaktype. Bijvoorbeeld: 'case:createdBy', 'Gelijk aan', 'test@test.com'.\",\n addCondition: 'Conditie toevoegen',\n },\n },\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DATA_SOURCE_TOKEN} from '../../constants';\nimport {caseCountDataSourceSpecification} from './case-count.specification';\nimport {CaseCountConfigurationComponent} from './components';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {WidgetTranslatePipeModule} from '../../pipes';\nimport {DropdownModule, InputModule} from 'carbon-components-angular';\nimport {CarbonMultiInputModule} from '@valtimo/components';\n\n@NgModule({\n declarations: [CaseCountConfigurationComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n WidgetTranslatePipeModule,\n InputModule,\n DropdownModule,\n CarbonMultiInputModule,\n ],\n exports: [CaseCountConfigurationComponent],\n providers: [\n {provide: DATA_SOURCE_TOKEN, useValue: caseCountDataSourceSpecification, multi: true},\n ],\n})\nexport class CaseCountDataSourceModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './case-count.module';\nexport * from './case-count.specification';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './test';\nexport * from './case-count';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface BarChartData {\n value: number;\n}\n\ninterface BarChartDisplayTypeProperties {\n title: string;\n}\n\nexport {BarChartData, BarChartDisplayTypeProperties};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './bar-chart.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {DisplayComponent} from '../../../../models';\nimport {BarChartData, BarChartDisplayTypeProperties} from '../../models';\n\n@Component({\n selector: 'valtimo-bar-chart-display',\n templateUrl: './bar-chart-display.component.html',\n styleUrls: ['./bar-chart-display.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BarChartDisplayComponent implements DisplayComponent {\n @Input() displayTypeKey: string;\n @Input() data: BarChartData;\n @Input() displayTypeProperties: BarChartDisplayTypeProperties;\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\nbar chart works\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './bar-chart-display.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './bar-chart-display';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DisplayTypeSpecification} from '../../models';\nimport {BarChartDisplayComponent} from './components/bar-chart-display/bar-chart-display.component';\n\nexport const barChartSpecification: DisplayTypeSpecification = {\n displayTypeKey: 'bar-chart',\n displayComponent: BarChartDisplayComponent,\n width: 1,\n height: 2,\n translations: {\n nl: {\n title: 'Staafdiagram',\n },\n en: {\n title: 'Bar chart',\n },\n de: {\n title: 'Balkendiagramm',\n },\n },\n requiredDataFeatures: [],\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BarChartDisplayComponent} from './components/bar-chart-display/bar-chart-display.component';\nimport {DISPLAY_TYPE_TOKEN} from '../../constants';\nimport {barChartSpecification} from './bar-chart.specification';\n\n@NgModule({\n declarations: [BarChartDisplayComponent],\n imports: [CommonModule],\n exports: [BarChartDisplayComponent],\n providers: [{provide: DISPLAY_TYPE_TOKEN, useValue: barChartSpecification, multi: true}],\n})\nexport class BarChartModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './models';\nexport * from './components';\nexport * from './bar-chart.specification';\nexport * from './bar-chart.module';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {ConfigurationOutput, DisplayTypeConfigurationComponent} from '../../../../models';\nimport {startWith, Subscription} from 'rxjs';\nimport {FormBuilder, Validators} from '@angular/forms';\nimport {BigNumberDisplayTypeProperties} from '../../models';\n\n@Component({\n templateUrl: './big-number-configuration.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BigNumberConfigurationComponent\n implements OnInit, OnDestroy, DisplayTypeConfigurationComponent\n{\n public readonly form = this.fb.group({\n title: this.fb.control('', [Validators.required]),\n subtitle: this.fb.control(''),\n label: this.fb.control(''),\n useKPI: this.fb.control(false, [Validators.required]),\n lowSeverityThreshold: this.fb.control(null),\n mediumSeverityThreshold: this.fb.control(null),\n highSeverityThreshold: this.fb.control(null),\n });\n\n @Input() displayTypeKey: string;\n @Input() set disabled(disabledValue: boolean) {\n if (disabledValue) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n public get title() {\n return this.form.get('title');\n }\n\n public get subtitle() {\n return this.form.get('subtitle');\n }\n\n public get label() {\n return this.form.get('label');\n }\n\n public get useKPI() {\n return this.form.get('useKPI');\n }\n\n public get lowSeverityThreshold() {\n return this.form.get('lowSeverityThreshold');\n }\n\n public get mediumSeverityThreshold() {\n return this.form.get('mediumSeverityThreshold');\n }\n\n public get highSeverityThreshold() {\n return this.form.get('highSeverityThreshold');\n }\n\n @Input() set prefillConfiguration(configurationValue: BigNumberDisplayTypeProperties) {\n if (configurationValue) {\n this.title.setValue(configurationValue.title || '');\n this.subtitle.setValue(configurationValue.subtitle || '');\n this.label.setValue(configurationValue.label || '');\n this.useKPI.setValue(configurationValue.useKPI || false);\n this.lowSeverityThreshold.setValue(configurationValue.lowSeverityThreshold || null);\n this.mediumSeverityThreshold.setValue(configurationValue.mediumSeverityThreshold || null);\n this.highSeverityThreshold.setValue(configurationValue.highSeverityThreshold || null);\n }\n }\n\n @Output() public configurationEvent = new EventEmitter<ConfigurationOutput>();\n\n private _subscriptions = new Subscription();\n\n constructor(private readonly fb: FormBuilder) {}\n\n public ngOnInit(): void {\n this.openFormSubscription();\n this.openKPISubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openFormSubscription(): void {\n this._subscriptions.add(\n this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {\n this.configurationEvent.emit({valid: this.form.valid, data: formValue});\n })\n );\n }\n\n private openKPISubscription(): void {\n this._subscriptions.add(\n this.useKPI.valueChanges.pipe(startWith(this.useKPI.value)).subscribe(useKpi => {\n const validators = [Validators.required];\n\n if (useKpi) {\n this.lowSeverityThreshold.setValidators(validators);\n this.mediumSeverityThreshold.setValidators(validators);\n this.highSeverityThreshold.setValidators(validators);\n } else {\n this.lowSeverityThreshold.clearValidators();\n this.mediumSeverityThreshold.clearValidators();\n this.highSeverityThreshold.clearValidators();\n }\n\n this.lowSeverityThreshold.updateValueAndValidity();\n this.mediumSeverityThreshold.updateValueAndValidity();\n this.highSeverityThreshold.updateValueAndValidity();\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form [formGroup]=\"form\">\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'formTitleHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalidText]=\"'formTitleHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalid]=\"title.dirty && title.invalid\"\n >\n {{ 'formTitle' | widgetTranslate: displayTypeKey | async }}\n\n <input cdsText formControlName=\"title\" [invalid]=\"title.dirty && title.invalid\" />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'subtitleHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalidText]=\"'subtitleHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalid]=\"subtitle.dirty && subtitle.invalid\"\n >\n {{ 'subtitle' | widgetTranslate: displayTypeKey | async }}\n\n <input cdsText formControlName=\"subtitle\" [invalid]=\"subtitle.dirty && subtitle.invalid\" />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'labelHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalidText]=\"'labelHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalid]=\"label.dirty && label.invalid\"\n >\n {{ 'label' | widgetTranslate: displayTypeKey | async }}\n\n <input cdsText formControlName=\"label\" [invalid]=\"label.dirty && label.invalid\" />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-checkbox formControlName=\"useKPI\">\n {{ 'useKPI' | widgetTranslate: displayTypeKey | async }}\n </cds-checkbox>\n </div>\n\n <div class=\"form__row\" *ngIf=\"useKPI.value\">\n <div class=\"form__element\">\n <cds-label [invalid]=\"lowSeverityThreshold.dirty && lowSeverityThreshold.invalid\">\n {{ 'lowSeverityThreshold' | widgetTranslate: displayTypeKey | async }}\n\n <input\n cdsText\n [invalid]=\"lowSeverityThreshold.dirty && lowSeverityThreshold.invalid\"\n formControlName=\"lowSeverityThreshold\"\n type=\"number\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__spacer\"></div>\n\n <div class=\"form__element\">\n <cds-label [invalid]=\"mediumSeverityThreshold.dirty && mediumSeverityThreshold.invalid\">\n {{ 'mediumSeverityThreshold' | widgetTranslate: displayTypeKey | async }}\n\n <input\n cdsText\n formControlName=\"mediumSeverityThreshold\"\n [invalid]=\"mediumSeverityThreshold.dirty && mediumSeverityThreshold.invalid\"\n type=\"number\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__spacer\"></div>\n\n <div class=\"form__element\">\n <cds-label [invalid]=\"highSeverityThreshold.dirty && highSeverityThreshold.invalid\">\n {{ 'highSeverityThreshold' | widgetTranslate: displayTypeKey | async }}\n\n <input\n cdsText\n formControlName=\"highSeverityThreshold\"\n [invalid]=\"highSeverityThreshold.dirty && highSeverityThreshold.invalid\"\n type=\"number\"\n />\n </cds-label>\n </div>\n </div>\n</form>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './big-number-configuration.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {EventEmitter} from '@angular/core';\n\ninterface ConfigurationOutput {\n valid: boolean;\n data: object;\n}\n\ninterface ConfigurationComponent {\n disabled: boolean;\n prefillConfiguration?: object;\n configurationEvent: EventEmitter<ConfigurationOutput>;\n}\n\ninterface DisplayTypeConfigurationComponent extends ConfigurationComponent {\n displayTypeKey: string;\n}\n\ninterface DataSourceConfigurationComponent extends ConfigurationComponent {\n dataSourceKey: string;\n}\n\nexport {\n ConfigurationComponent,\n DisplayTypeConfigurationComponent,\n DataSourceConfigurationComponent,\n ConfigurationOutput,\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface Dashboard {\n key: string;\n title: string;\n widgets: Array<DashboardWidgetConfiguration>;\n}\n\ninterface DashboardWidgetConfiguration {\n key: string;\n title: string;\n dataSourceKey: string;\n displayType: string;\n dataSourceProperties: object;\n displayTypeProperties: object;\n}\n\nexport {Dashboard, DashboardWidgetConfiguration};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\nimport {DataSourceConfigurationComponent} from './configuration.model';\n\ninterface DataSourceSpecification {\n dataSourceKey: string;\n configurationComponent?: Type<DataSourceConfigurationComponent>;\n translations: {\n [langKey: string]: {\n title: string;\n [translationKey: string]: string;\n };\n };\n}\n\nexport {DataSourceSpecification};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\nimport {DisplayTypeConfigurationComponent} from './configuration.model';\n\ninterface DisplayComponent {\n displayTypeKey: string;\n displayTypeProperties: object;\n data: object;\n}\n\ninterface DisplayTypeSpecification {\n displayTypeKey: string;\n displayComponent: Type<DisplayComponent>;\n configurationComponent?: Type<DisplayTypeConfigurationComponent>;\n requiredDataFeatures: Array<string>;\n width: number;\n height: number;\n translations: {\n [langKey: string]: {\n title: string;\n [translationKey: string]: string;\n };\n };\n}\n\nexport {DisplayComponent, DisplayTypeSpecification};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface WidgetConfigurationBin {\n configurationKey: string;\n width: number;\n height: number;\n}\n\ninterface PackResult {\n height: number;\n width: number;\n items: Array<{width: number; height: number; x: number; y: number; item: WidgetConfigurationBin}>;\n}\n\nexport {WidgetConfigurationBin, PackResult};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface WidgetData {\n key: string;\n data: object;\n}\n\nexport {WidgetData};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nenum WidgetSeverity {\n BLACK = 'valtimo-severity__black',\n GREEN = 'valtimo-severity__green',\n YELLOW = 'valtimo-severity__yellow',\n ORANGE = 'valtimo-severity__orange',\n RED = 'valtimo-severity__red',\n}\n\nexport {WidgetSeverity};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './configuration.model';\nexport * from './dashboard.model';\nexport * from './data-source.model';\nexport * from './display-type.model';\nexport * from './layout.model';\nexport * from './widget-data.model';\nexport * from './widget-display.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {DisplayComponent, WidgetSeverity} from '../../../../models';\nimport {BigNumberData, BigNumberDisplayTypeProperties} from '../../models';\n\n@Component({\n selector: 'valtimo-big-number-display',\n templateUrl: './big-number-display.component.html',\n styleUrls: ['./big-number-display.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BigNumberDisplayComponent implements DisplayComponent {\n @Input() displayTypeKey: string;\n @Input() data: BigNumberData;\n @Input() displayTypeProperties: BigNumberDisplayTypeProperties;\n\n public get severityClass(): string {\n if (!this.displayTypeProperties.useKPI) {\n return WidgetSeverity.BLACK;\n }\n\n const value: number = this.data?.value;\n\n if (value < this.displayTypeProperties.lowSeverityThreshold) {\n return WidgetSeverity.GREEN;\n } else if (value < this.displayTypeProperties.mediumSeverityThreshold) {\n return WidgetSeverity.YELLOW;\n } else if (value < this.displayTypeProperties.highSeverityThreshold) {\n return WidgetSeverity.ORANGE;\n }\n\n return WidgetSeverity.RED;\n }\n\n public get numberFontSize(): number {\n if (!this.data) {\n return 122;\n }\n\n return Math.floor(122 / this.data.value.toString().length) + 20;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<section class=\"valtimo-big-number-widget__header\">\n <h3 class=\"valtimo-big-number-widget__title\">{{ displayTypeProperties.title }}</h3>\n\n <span *ngIf=\"displayTypeProperties.subtitle\" class=\"valtimo-big-number-widget__subtitle\">\n {{ displayTypeProperties.subtitle }}\n </span>\n</section>\n\n<section class=\"valtimo-big-number-widget__content\">\n <span\n [class]=\"['valtimo-big-number-widget__number', severityClass]\"\n [style.fontSize.px]=\"numberFontSize\"\n >{{ data?.value }}</span\n >\n\n <span *ngIf=\"displayTypeProperties.label\" class=\"valtimo-big-number-widget__label\">\n {{ displayTypeProperties.label }}\n </span>\n</section>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './big-number-display.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './big-number-configuration';\nexport * from './big-number-display';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DisplayTypeSpecification} from '../../models';\nimport {DATA_FEATURES} from '../../constants';\nimport {BigNumberConfigurationComponent, BigNumberDisplayComponent} from './components';\n\nexport const bigNumberSpecification: DisplayTypeSpecification = {\n displayTypeKey: 'number',\n displayComponent: BigNumberDisplayComponent,\n configurationComponent: BigNumberConfigurationComponent,\n width: 1,\n height: 1,\n translations: {\n nl: {\n title: 'Groot getal',\n formTitle: 'Titel (vereist)',\n formTitleHelperText: 'De titel die wordt weergegeven in de widget',\n subtitle: 'Ondertitel',\n subtitleHelperText: 'De ondertitel weergegeven in de widget',\n label: 'Label',\n labelHelperText: 'Het label dat wordt weergegeven in de widget',\n useKPI: 'KPI gebruiken',\n lowSeverityThreshold: 'Lage ernstdrempel (vereist)',\n mediumSeverityThreshold: 'Middelmatige ernstdrempel (vereist)',\n highSeverityThreshold: 'Hoge ernstdrempel (vereist)',\n },\n en: {\n title: 'Big number',\n formTitle: 'Title (required)',\n formTitleHelperText: 'The title displayed in the widget',\n subtitle: 'Subtitle',\n subtitleHelperText: 'The subtitle displayed in the widget',\n label: 'Label',\n labelHelperText: 'The label displayed in the widget',\n useKPI: 'Use KPI',\n lowSeverityThreshold: 'Low severity threshold (required)',\n mediumSeverityThreshold: 'Medium severity threshold (required)',\n highSeverityThreshold: 'High severity threshold (required)',\n },\n de: {\n title: 'Große Nummer',\n formTitle: 'Titel (erforderlich)',\n formTitleHelperText: 'Der im Widget angezeigte Titel',\n subtitle: 'Untertitel',\n subtitleHelperText: 'Der im Widget angezeigte Untertitel',\n label: 'Beschriftung',\n labelHelperText: 'Die im Widget angezeigte Beschriftung',\n useKPI: 'Verwenden Sie KPI',\n lowSeverityThreshold: 'Niedriger Schweregradschwellenwert (erforderlich)',\n mediumSeverityThreshold: 'Mittlerer Schweregradschwellenwert (erforderlich)',\n highSeverityThreshold: 'Hoher Schweregradschwellenwert (erforderlich)',\n },\n },\n requiredDataFeatures: [DATA_FEATURES.NUMBER],\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DISPLAY_TYPE_TOKEN} from '../../constants';\nimport {bigNumberSpecification} from './big-number.specification';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {WidgetTranslatePipeModule} from '../../pipes';\nimport {CheckboxModule, InputModule} from 'carbon-components-angular';\nimport {BigNumberConfigurationComponent, BigNumberDisplayComponent} from './components';\n\n@NgModule({\n declarations: [BigNumberDisplayComponent, BigNumberConfigurationComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n WidgetTranslatePipeModule,\n InputModule,\n CheckboxModule,\n ],\n exports: [BigNumberDisplayComponent],\n providers: [{provide: DISPLAY_TYPE_TOKEN, useValue: bigNumberSpecification, multi: true}],\n})\nexport class BigNumberModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface BigNumberData {\n value: number;\n}\n\ninterface BigNumberDisplayTypeProperties {\n title: string;\n subtitle: string;\n useKPI: boolean;\n lowSeverityThreshold: number;\n mediumSeverityThreshold: number;\n highSeverityThreshold: number;\n label?: string;\n}\n\nexport {BigNumberData, BigNumberDisplayTypeProperties};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './big-number.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './big-number.module';\nexport * from './big-number.specification';\nexport * from './components';\nexport * from './models';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {DisplayComponent} from '../../../../models';\nimport {MeterData, MeterDisplayTypeProperties} from '../../models';\n\n@Component({\n selector: 'valtimo-meter-display',\n templateUrl: './meter-display.component.html',\n styleUrls: ['./meter-display.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MeterDisplayComponent implements DisplayComponent {\n @Input() displayTypeKey: string;\n @Input() data: MeterData;\n @Input() displayTypeProperties: MeterDisplayTypeProperties;\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\nmeter works\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './meter-display.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './meter-display';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DisplayTypeSpecification} from '../../models';\nimport {MeterDisplayComponent} from './components/meter-display/meter-display.component';\n\nexport const meterSpecification: DisplayTypeSpecification = {\n displayTypeKey: 'meter',\n displayComponent: MeterDisplayComponent,\n width: 2,\n height: 1,\n translations: {\n nl: {\n title: 'Meter',\n },\n en: {\n title: 'Meter',\n },\n de: {\n title: 'Meter',\n },\n },\n requiredDataFeatures: [],\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MeterDisplayComponent} from './components/meter-display/meter-display.component';\nimport {DISPLAY_TYPE_TOKEN} from '../../constants';\nimport {meterSpecification} from './meter.specification';\n\n@NgModule({\n declarations: [MeterDisplayComponent],\n imports: [CommonModule],\n exports: [MeterDisplayComponent],\n providers: [{provide: DISPLAY_TYPE_TOKEN, useValue: meterSpecification, multi: true}],\n})\nexport class MeterModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface MeterData {\n value: number;\n}\n\ninterface MeterDisplayTypeProperties {\n title: string;\n}\n\nexport {MeterData, MeterDisplayTypeProperties};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './meter.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './meter.module';\nexport * from './meter.specification';\nexport * from './models';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './bar-chart';\nexport * from './big-number';\nexport * from './meter';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of dashboard\n */\n\nexport * from './lib/components/dashboard/dashboard.component';\nexport * from './lib/components/widget-dashboard-content/widget-dashboard-content.component';\nexport * from './lib/components/widget-dashboard/widget-dashboard.component';\nexport * from './lib/constants';\nexport * from './lib/dashboard.module';\nexport * from './lib/data-sources';\nexport * from './lib/display-types';\nexport * from './lib/models';\nexport * from './lib/pipes';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i5","i1.WidgetService","i1","i2","map","i2.WidgetService","i1.WidgetLayoutService","i4","take","i1.DashboardService","i2.WidgetApiService","i5.WidgetDashboardContentComponent","i1.WidgetTranslationService","i4.WidgetTranslatePipe","i3","i4.WidgetTranslationService","i6","i7","i8.WidgetTranslatePipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-dashboard.mjs","sources":["../../../../projects/valtimo/dashboard/src/lib/components/dashboard/dashboard.component.ts","../../../../projects/valtimo/dashboard/src/lib/components/dashboard/dashboard.component.html","../../../../projects/valtimo/dashboard/src/lib/constants/data-features.constants.ts","../../../../projects/valtimo/dashboard/src/lib/constants/injection-tokens.ts","../../../../projects/valtimo/dashboard/src/lib/constants/layout.constants.ts","../../../../projects/valtimo/dashboard/src/lib/constants/index.ts","../../../../projects/valtimo/dashboard/src/lib/services/widget.service.ts","../../../../projects/valtimo/dashboard/src/lib/services/widget-layout.service.ts","../../../../projects/valtimo/dashboard/src/lib/services/dashboard.service.ts","../../../../projects/valtimo/dashboard/src/lib/services/widget-translation.service.ts","../../../../projects/valtimo/dashboard/src/lib/services/index.ts","../../../../projects/valtimo/dashboard/src/lib/components/widget-dashboard-content/widget-dashboard-content.component.ts","../../../../projects/valtimo/dashboard/src/lib/components/widget-dashboard-content/widget-dashboard-content.component.html","../../../../projects/valtimo/dashboard/src/lib/services/widget-api.service.ts","../../../../projects/valtimo/dashboard/src/lib/components/widget-dashboard/widget-dashboard.component.ts","../../../../projects/valtimo/dashboard/src/lib/components/widget-dashboard/widget-dashboard.component.html","../../../../projects/valtimo/dashboard/src/lib/dashboard-routing.module.ts","../../../../projects/valtimo/dashboard/src/lib/pipes/widget-translate/widget-translate.pipe.ts","../../../../projects/valtimo/dashboard/src/lib/pipes/widget-translate/widget-translate-pipe.module.ts","../../../../projects/valtimo/dashboard/src/lib/pipes/widget-translate/index.ts","../../../../projects/valtimo/dashboard/src/lib/pipes/index.ts","../../../../projects/valtimo/dashboard/src/lib/dashboard.module.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/components/test-configuration/test-configuration.component.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/components/test-configuration/test-configuration.component.html","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/components/test-configuration/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/components/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/models/test.model.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/test.specification.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/test.module.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/test/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/models/case-count.model.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.html","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/components/case-count-configuration/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/components/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/case-count.specification.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/case-count.module.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/case-count/index.ts","../../../../projects/valtimo/dashboard/src/lib/data-sources/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/models/bar-chart.model.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.html","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/components/bar-chart-display/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/components/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/bar-chart.specification.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/bar-chart.module.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/bar-chart/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.html","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-configuration/index.ts","../../../../projects/valtimo/dashboard/src/lib/models/configuration.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/dashboard.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/data-source.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/display-type.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/layout.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/widget-data.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/widget-display.model.ts","../../../../projects/valtimo/dashboard/src/lib/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-display/big-number-display.component.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-display/big-number-display.component.html","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/big-number-display/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/components/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/big-number.specification.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/big-number.module.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/models/big-number.model.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/big-number/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/components/meter-display/meter-display.component.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/components/meter-display/meter-display.component.html","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/components/meter-display/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/components/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/meter.specification.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/meter.module.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/models/meter.model.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/models/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/meter/index.ts","../../../../projects/valtimo/dashboard/src/lib/display-types/index.ts","../../../../projects/valtimo/dashboard/src/public_api.ts","../../../../projects/valtimo/dashboard/src/valtimo-dashboard.ts"],"sourcesContent":["/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {Task, TaskDetailModalComponent, TaskService} from '@valtimo/task';\nimport moment from 'moment';\nimport {BehaviorSubject} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\nmoment.locale(localStorage.getItem('langKey') || '');\nmoment.defaultFormat = 'DD MMM YYYY HH:mm';\n\n@Component({\n selector: 'valtimo-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.css'],\n})\nexport class DashboardComponent implements OnInit {\n public processDefinitions: Array<any>;\n public openTasks: Array<any>;\n public openTaskFields = [\n {\n key: 'created',\n label: 'Created',\n },\n {\n key: 'name',\n label: 'Name',\n },\n {\n key: 'valtimoAssignee.fullName',\n label: 'Assignee',\n },\n ];\n @ViewChild('taskDetail') taskDetail: TaskDetailModalComponent;\n\n loading$ = new BehaviorSubject<boolean>(true);\n\n constructor(\n private readonly taskService: TaskService,\n private readonly route: ActivatedRoute\n ) {}\n\n ngOnInit() {\n this.getOpenTasks();\n }\n\n public getOpenTasks() {\n this.taskService.getTasks().subscribe(response => {\n this.openTasks = response;\n this.openTasks.map(task => {\n task.created = moment(task.created).format('DD MMM YYYY HH:mm');\n });\n this.checkRouteForTaskId(response);\n this.loading$.next(false);\n });\n }\n\n public rowOpenTaskClick(task) {\n if (!task.endTime) {\n this.taskDetail.openTaskDetails(task);\n }\n }\n\n private checkRouteForTaskId(tasks: Array<Task>): void {\n this.route.queryParams.pipe(take(1)).subscribe(params => {\n const taskId = params?.taskId;\n const findTaskFromId = tasks.find(task => task.id === taskId);\n\n if (findTaskFromId) {\n this.rowOpenTaskClick(findTaskFromId);\n }\n });\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content container-fluid\" *ngIf=\"{loading: loading$ | async} as obs\">\n <h4 class=\"title\">\n {{ 'dashboard.openTasks.title' | translate }}\n <sup *ngIf=\"obs.loading === false\" class=\"ml-1 badge badge-pill badge-primary\">{{\n openTasks?.length\n }}</sup>\n </h4>\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <valtimo-widget>\n <valtimo-list\n [items]=\"openTasks\"\n [fields]=\"openTaskFields\"\n (rowClicked)=\"rowOpenTaskClick($event)\"\n ></valtimo-list>\n </valtimo-widget>\n </ng-container>\n <valtimo-task-detail-modal\n #taskDetail\n (formSubmit)=\"getOpenTasks()\"\n (assignmentOfTaskChanged)=\"getOpenTasks()\"\n ></valtimo-task-detail-modal>\n</div>\n\n<ng-template #loading>\n <valtimo-spinner></valtimo-spinner>\n</ng-template>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst DATA_FEATURES = {\n NUMBER: 'number',\n TOTAL: 'total',\n};\n\nexport {DATA_FEATURES};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {InjectionToken} from '@angular/core';\nimport {DataSourceSpecification, DisplayTypeSpecification} from '../models';\n\nconst DISPLAY_TYPE_TOKEN = new InjectionToken<DisplayTypeSpecification | null>(\n 'Supported display types'\n);\n\nconst DATA_SOURCE_TOKEN = new InjectionToken<DataSourceSpecification | null>(\n 'Supported data sources'\n);\n\nexport {DISPLAY_TYPE_TOKEN, DATA_SOURCE_TOKEN};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst WIDGET_1X_HEIGHT = 220;\nconst WIDGET_1X_MIN_WIDTH = 275;\n\nexport {WIDGET_1X_HEIGHT, WIDGET_1X_MIN_WIDTH};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './data-features.constants';\nexport * from './injection-tokens';\nexport * from './layout.constants';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Inject, Injectable} from '@angular/core';\nimport {DATA_SOURCE_TOKEN, DISPLAY_TYPE_TOKEN} from '../constants';\nimport {DataSourceSpecification, DisplayTypeSpecification} from '../models';\nimport {BehaviorSubject, filter, Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WidgetService {\n private readonly _supportedDisplayTypes$ =\n new BehaviorSubject<Array<DisplayTypeSpecification> | null>(null);\n\n private readonly _supportedDataSources$ =\n new BehaviorSubject<Array<DataSourceSpecification> | null>(null);\n\n public get supportedDisplayTypes$(): Observable<Array<DisplayTypeSpecification>> {\n return this._supportedDisplayTypes$.pipe(filter(specifications => !!specifications));\n }\n\n public get supportedDataSources$(): Observable<Array<DataSourceSpecification>> {\n return this._supportedDataSources$.pipe(filter(specifications => !!specifications));\n }\n\n public get supportedDisplayTypes(): Array<DisplayTypeSpecification> {\n return this._supportedDisplayTypes$.getValue() || [];\n }\n\n public get supportedDataSources(): Array<DataSourceSpecification> {\n return this._supportedDataSources$.getValue() || [];\n }\n\n constructor(\n @Inject(DISPLAY_TYPE_TOKEN)\n private readonly supportedDisplayTypesFromToken: Array<DisplayTypeSpecification | null>,\n @Inject(DATA_SOURCE_TOKEN)\n private readonly supportedDataSourcesFromToken: Array<DataSourceSpecification | null>\n ) {\n this.setSupportedDisplayTypes(supportedDisplayTypesFromToken);\n this.setSupportedDataSources(supportedDataSourcesFromToken);\n }\n\n private setSupportedDisplayTypes(\n supportedDisplayTypes: Array<DisplayTypeSpecification | null>\n ): void {\n this._supportedDisplayTypes$.next(supportedDisplayTypes.filter(displayType => !!displayType));\n }\n\n private setSupportedDataSources(\n supportedDataSources: Array<DataSourceSpecification | null>\n ): void {\n this._supportedDataSources$.next(supportedDataSources.filter(dataSource => !!dataSource));\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, combineLatest, filter, map, Observable, Subscription} from 'rxjs';\nimport {WidgetService} from './widget.service';\nimport {DashboardWidgetConfiguration, PackResult, WidgetConfigurationBin} from '../models';\nimport {WIDGET_1X_HEIGHT, WIDGET_1X_MIN_WIDTH} from '../constants';\nimport pack from 'bin-pack-with-constraints';\n\n@Injectable()\nexport class WidgetLayoutService implements OnDestroy {\n private readonly _widgetContainerWidth$ = new BehaviorSubject<number | null>(null);\n private readonly _widgetConfigurations$ = new BehaviorSubject<\n Array<DashboardWidgetConfiguration>\n >([]);\n private readonly _widgetPackResult$ = new BehaviorSubject<PackResult | null>(null);\n\n private _layoutSubscription!: Subscription;\n\n public get widgetPackResult$(): Observable<PackResult> {\n return this._widgetPackResult$.asObservable().pipe(filter(result => !!result));\n }\n\n private get widgetContainerWidth$(): Observable<number> {\n return this._widgetContainerWidth$.asObservable().pipe(filter(width => !!width));\n }\n\n private get widgetConfigurationBins$(): Observable<Array<WidgetConfigurationBin>> {\n return combineLatest([\n this.widgetService.supportedDisplayTypes$,\n this._widgetConfigurations$,\n ]).pipe(\n map(([displayTypes, configurations]) =>\n configurations.map(configuration => {\n const specification = displayTypes.find(\n type => type.displayTypeKey === configuration.displayType\n );\n return {\n configurationKey: configuration.key,\n width: specification.width,\n height: specification.height,\n };\n })\n )\n );\n }\n\n constructor(private readonly widgetService: WidgetService) {\n this.openLayoutSubscription();\n }\n\n ngOnDestroy(): void {\n this._layoutSubscription?.unsubscribe();\n }\n\n setWidgetContainerWidth(width: number): void {\n this._widgetContainerWidth$.next(width);\n }\n\n setWidgetConfigurations(configurations: Array<DashboardWidgetConfiguration>): void {\n this._widgetConfigurations$.next(configurations);\n }\n\n private openLayoutSubscription(): void {\n this._layoutSubscription = combineLatest([\n this.widgetContainerWidth$,\n this.widgetConfigurationBins$,\n ]).subscribe(([widgetContainerWidth, configurationBins]) => {\n const amountOfMinWidthColumns = this.getAmountOfMinWidthColumns(widgetContainerWidth);\n const widget1xWidth = this.getWidget1xWidth(widgetContainerWidth, amountOfMinWidthColumns);\n const binsToFit = configurationBins.map(configurationBin => ({\n ...configurationBin,\n width: configurationBin.width * widget1xWidth,\n height: configurationBin.height * WIDGET_1X_HEIGHT,\n }));\n const heightConstraint = this.getHeightConstraint(configurationBins, amountOfMinWidthColumns);\n const resultWithoutHeightConstraint = this.getPackResult(binsToFit, widgetContainerWidth);\n const resultWithHeightConstraint = this.getPackResult(\n binsToFit,\n widgetContainerWidth,\n heightConstraint\n );\n const resultWithHeightConstraintExceedsBoundary = this.checkIfPackResultExceedsBoundary(\n resultWithHeightConstraint,\n widgetContainerWidth\n );\n const resultToUse = resultWithHeightConstraintExceedsBoundary\n ? resultWithoutHeightConstraint\n : resultWithHeightConstraint;\n const resultWithMaxWidth = this.getResultWithMaxWidth(resultToUse, widgetContainerWidth);\n\n this._widgetPackResult$.next(resultWithMaxWidth);\n });\n }\n\n private getPackResult(\n binsToFit: Array<WidgetConfigurationBin>,\n maxWidth: number,\n maxHeight?: number\n ): PackResult {\n return pack(binsToFit, {\n maxWidth,\n ...(maxHeight && {maxHeight}),\n });\n }\n\n private checkIfPackResultExceedsBoundary(result: PackResult, maxWidth: number): boolean {\n return !!result.items.find(item => item.width + item.x > maxWidth);\n }\n\n private getAmountOfMinWidthColumns(containerWidth: number): number {\n return Math.floor(containerWidth / WIDGET_1X_MIN_WIDTH);\n }\n\n private getWidget1xWidth(containerWidth: number, amountOfMinWidthColumns: number): number {\n const widget1xWidth = Math.floor(containerWidth / (amountOfMinWidthColumns || 1));\n\n return widget1xWidth;\n }\n\n private getResultWithMaxWidth(result: PackResult, containerWidth: number): PackResult {\n return {\n ...result,\n items: result.items.map(item => ({\n ...item,\n width: item.width > containerWidth ? containerWidth : item.width,\n })),\n };\n }\n\n private getHeightConstraint(\n binsToFit: Array<WidgetConfigurationBin>,\n amountOfMinWidthColumns: number\n ): number {\n const amountOfSpacesNeeded = binsToFit.reduce((acc, curr) => acc + curr.height * curr.width, 0);\n const minAmountOfRowsNeeded = Math.ceil(amountOfSpacesNeeded / amountOfMinWidthColumns);\n const tallestWidgetHeightSpace = binsToFit.reduce(\n (acc, curr) => (curr.height > acc ? curr.height : acc),\n 0\n );\n const amountOfRowsNeeded =\n minAmountOfRowsNeeded < tallestWidgetHeightSpace\n ? tallestWidgetHeightSpace\n : minAmountOfRowsNeeded;\n\n return amountOfRowsNeeded * WIDGET_1X_HEIGHT;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {Dashboard} from '../models';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DashboardService {\n private _endpointUri: string;\n\n constructor(\n private readonly http: HttpClient,\n private readonly configService: ConfigService\n ) {\n this._endpointUri = this.configService.config.valtimoApi.endpointUri;\n }\n\n public getDashboards(): Observable<Array<Dashboard>> {\n return this.http.get<Array<Dashboard>>(`${this._endpointUri}v1/dashboard`);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {DataSourceSpecification, DisplayTypeSpecification} from '../models';\nimport {combineLatest, Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {WidgetService} from './widget.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WidgetTranslationService {\n constructor(\n private readonly translateService: TranslateService,\n private readonly widgetService: WidgetService\n ) {}\n\n translate(translateKey: string, key: string): Observable<string> {\n return combineLatest([\n this.widgetService.supportedDisplayTypes$,\n this.widgetService.supportedDataSources$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([supportedDisplayTypes, supportedDataSources]) =>\n this.getTranslation(supportedDisplayTypes, supportedDataSources, key, translateKey)\n )\n );\n }\n\n instant(translateKey: string, displayTypeKey: string): string {\n return this.getTranslation(\n this.widgetService.supportedDisplayTypes,\n this.widgetService.supportedDataSources,\n displayTypeKey,\n translateKey\n );\n }\n\n private getTranslation(\n supportedDisplayTypes: Array<DisplayTypeSpecification>,\n supportedDataSources: Array<DataSourceSpecification>,\n key: string,\n translateKey: string\n ): string {\n const currentLang = this.translateService.currentLang;\n const displayTypeSpecification = supportedDisplayTypes.find(\n displayType => displayType.displayTypeKey === key\n );\n const dataSourceSpecification = supportedDataSources.find(\n datasource => datasource.dataSourceKey === key\n );\n\n let translation = '';\n\n if (\n displayTypeSpecification &&\n displayTypeSpecification.translations.hasOwnProperty(currentLang)\n ) {\n translation = displayTypeSpecification.translations[currentLang][translateKey];\n } else if (\n dataSourceSpecification &&\n dataSourceSpecification.translations.hasOwnProperty(currentLang)\n ) {\n translation = dataSourceSpecification.translations[currentLang][translateKey];\n }\n\n return translation || `${key}.${translateKey}`;\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './dashboard.service';\nexport * from './widget-translation.service';\nexport * from './widget.service';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n AfterViewInit,\n Component,\n ComponentRef,\n ElementRef,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Subscription} from 'rxjs';\nimport {take} from 'rxjs/operators';\nimport {Dashboard, DashboardWidgetConfiguration, DisplayComponent, WidgetData} from '../../models';\nimport {WidgetService} from '../../services';\nimport {WidgetLayoutService} from '../../services/widget-layout.service';\n\n@Component({\n selector: 'valtimo-widget-dashboard-content',\n templateUrl: './widget-dashboard-content.component.html',\n styleUrls: ['./widget-dashboard-content.component.scss'],\n providers: [WidgetLayoutService],\n})\nexport class WidgetDashboardContentComponent implements AfterViewInit, OnDestroy {\n @ViewChildren('widgetConfiguration') private _widgetConfigurationRefs: QueryList<\n ElementRef<HTMLDivElement>\n >;\n @ViewChildren('widgetConfigurationContent', {read: ViewContainerRef})\n private _widgetConfigurationContentVcRefs: QueryList<ViewContainerRef>;\n @ViewChild('widgetContainer') private _widgetContainerRef: ElementRef<HTMLDivElement>;\n\n public readonly isLoading$ = new BehaviorSubject<boolean>(true);\n private _widgetData$ = new BehaviorSubject<WidgetData[]>([]);\n\n @Input() set widgetData(value: {data: WidgetData[]; loading: boolean}) {\n this.isLoading$.next(value.loading);\n this._widgetData$.next(value.data);\n }\n @Input() set dashboard(value: Dashboard) {\n this.setWidgetConfigurations(value);\n }\n\n public readonly widgetConfigurations$ =\n new BehaviorSubject<Array<DashboardWidgetConfiguration> | null>(null);\n\n private _observer!: ResizeObserver;\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly layoutService: WidgetLayoutService,\n private readonly widgetService: WidgetService,\n private readonly renderer: Renderer2\n ) {}\n\n public ngAfterViewInit(): void {\n this._observer = new ResizeObserver(event => {\n this.observerMutation(event);\n });\n this._observer.observe(this._widgetContainerRef.nativeElement);\n this.openPackResultSubscription();\n this.renderWidgets();\n }\n\n public ngOnDestroy(): void {\n this._observer?.disconnect();\n this._subscriptions?.unsubscribe();\n }\n\n private setWidgetConfigurations(dashboard: Dashboard): void {\n this.widgetService.supportedDisplayTypes$.pipe(take(1)).subscribe(supportedDisplayTypes => {\n const supportedWidgetConfigurations =\n dashboard.widgets?.filter(widgetConfiguration =>\n supportedDisplayTypes.find(\n type => type.displayTypeKey === widgetConfiguration.displayType\n )\n ) || [];\n this.layoutService.setWidgetConfigurations(supportedWidgetConfigurations);\n this.widgetConfigurations$.next(supportedWidgetConfigurations);\n });\n }\n\n private observerMutation(event: Array<ResizeObserverEntry>): void {\n const widgetContainerWidth = event[0]?.borderBoxSize[0]?.inlineSize;\n\n if (typeof widgetContainerWidth === 'number' && widgetContainerWidth !== 0) {\n this.layoutService.setWidgetContainerWidth(widgetContainerWidth);\n }\n }\n\n private openPackResultSubscription(): void {\n this._subscriptions.add(\n this.layoutService.widgetPackResult$.subscribe(packResult => {\n this.renderer.setStyle(\n this._widgetContainerRef.nativeElement,\n 'height',\n `${packResult.height}px`\n );\n\n this._widgetConfigurationRefs.toArray().forEach(widgetConfigurationRef => {\n const nativeElement = widgetConfigurationRef.nativeElement;\n const configPackResult = packResult.items.find(\n result => result.item.configurationKey === nativeElement.id\n );\n this.renderer.setStyle(nativeElement, 'height', `${configPackResult?.height}px`);\n this.renderer.setStyle(nativeElement, 'width', `${configPackResult?.width}px`);\n this.renderer.setStyle(nativeElement, 'left', `${configPackResult?.x}px`);\n this.renderer.setStyle(nativeElement, 'top', `${configPackResult?.y}px`);\n });\n })\n );\n }\n\n private renderWidgets(): void {\n this._subscriptions.add(\n combineLatest([\n this.widgetConfigurations$,\n this.widgetService.supportedDisplayTypes$,\n this._widgetData$,\n ]).subscribe(([configurations, displayTypes, data]) => {\n configurations?.forEach((configuration, index) => {\n const displayType = displayTypes.find(\n type => type.displayTypeKey === configuration.displayType\n );\n const vcRef = this._widgetConfigurationContentVcRefs.toArray()[index];\n\n if (displayType && data) {\n vcRef.clear();\n const componentInstance: ComponentRef<DisplayComponent> = vcRef.createComponent(\n displayType.displayComponent\n );\n componentInstance.setInput('displayTypeKey', configuration.displayType);\n componentInstance.setInput('displayTypeProperties', {\n ...configuration.displayTypeProperties,\n });\n\n componentInstance.setInput(\n 'data',\n data.find(dataItem => dataItem.key === configuration.key)?.data\n );\n }\n });\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div #widgetContainer [class.loading]=\"isLoading$ | async\" class=\"widget-container\">\n <ng-container *ngIf=\"widgetConfigurations$ | async as widgetConfigurations\">\n <ng-container *ngFor=\"let config of widgetConfigurations\">\n <div #widgetConfiguration [id]=\"config.key\" class=\"widget-configuration\">\n <div class=\"widget-configuration-content\">\n <ng-container #widgetConfigurationContent></ng-container>\n </div>\n </div>\n </ng-container>\n\n <valtimo-no-results\n *ngIf=\"!widgetConfigurations.length\"\n [title]=\"'dashboard.noWidgets' | translate\"\n ></valtimo-no-results>\n </ng-container>\n</div>\n\n<cds-loading *ngIf=\"isLoading$ | async\" class=\"widget-loader\"></cds-loading>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {HttpClient} from '@angular/common/http';\nimport {WidgetData} from '../models';\nimport {Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WidgetApiService {\n private _endpointUri: string;\n\n constructor(\n private readonly configService: ConfigService,\n private readonly http: HttpClient\n ) {\n this._endpointUri = `${this.configService.config.valtimoApi.endpointUri}v1/dashboard`;\n }\n\n public getWidgetData(dashboardKey: string): Observable<WidgetData[]> {\n return this.http.get<WidgetData[]>(`${this._endpointUri}/${dashboardKey}/data`);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, ViewEncapsulation} from '@angular/core';\nimport {BehaviorSubject, Observable, take, tap} from 'rxjs';\nimport {Dashboard, WidgetData} from '../../models';\nimport {DashboardService} from '../../services';\nimport {WidgetApiService} from '../../services/widget-api.service';\n\n@Component({\n selector: 'valtimo-widget-dashboard',\n templateUrl: './widget-dashboard.component.html',\n styleUrls: ['./widget-dashboard.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class WidgetDashboardComponent {\n public dashboards$: Observable<Array<Dashboard>> = this.dashboardService.getDashboards().pipe(\n tap(dashboards => {\n if (dashboards.length === 1) {\n this.onTabSelected(dashboards[0].key);\n }\n })\n );\n public readonly activeWidgetData$ = new BehaviorSubject<{data: WidgetData[]; loading: boolean}>({\n data: [],\n loading: true,\n });\n\n constructor(\n private readonly dashboardService: DashboardService,\n private readonly widgetApiService: WidgetApiService\n ) {}\n\n public onTabSelected(dashboardKey: string): void {\n this.widgetApiService\n .getWidgetData(dashboardKey)\n .pipe(\n tap(() => {\n this.activeWidgetData$.next({data: [], loading: true});\n }),\n take(1)\n )\n .subscribe((data: WidgetData[]) => this.activeWidgetData$.next({data, loading: false}));\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div *ngIf=\"dashboards$ | async as dashboards\" class=\"dashboards-container\">\n <valtimo-no-results\n *ngIf=\"!dashboards.length\"\n [title]=\"'dashboard.noDashboards' | translate\"\n ></valtimo-no-results>\n\n <div *ngIf=\"dashboards.length === 1\">\n <h4>{{ dashboards[0].title }}</h4>\n\n <valtimo-widget-dashboard-content\n [dashboard]=\"dashboards[0]\"\n [widgetData]=\"activeWidgetData$ | async\"\n ></valtimo-widget-dashboard-content>\n </div>\n\n <div *ngIf=\"dashboards.length > 1\">\n <cds-tabs>\n <cds-tab\n *ngFor=\"let dashboard of dashboards; trackBy: trackByIndex\"\n [heading]=\"dashboard.title\"\n (selected)=\"onTabSelected(dashboard.key)\"\n >\n <valtimo-widget-dashboard-content\n [dashboard]=\"dashboard\"\n [widgetData]=\"activeWidgetData$ | async\"\n ></valtimo-widget-dashboard-content>\n </cds-tab>\n </cds-tabs>\n </div>\n</div>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ROLE_USER} from '@valtimo/config';\nimport {AuthGuardService} from '@valtimo/security';\nimport {WidgetDashboardComponent} from './components/widget-dashboard/widget-dashboard.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: WidgetDashboardComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Dashboard', roles: [ROLE_USER], hidePageTitle: true},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DashboardRoutingModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {WidgetTranslationService} from '../../services';\n\n@Pipe({\n name: 'widgetTranslate',\n})\nexport class WidgetTranslatePipe implements PipeTransform {\n constructor(private readonly widgetTranslationService: WidgetTranslationService) {}\n\n transform(translateKey: string, key: string): Observable<string> {\n return this.widgetTranslationService.translate(translateKey, key);\n }\n}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {WidgetTranslatePipe} from './widget-translate.pipe';\nimport {NgModule} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n imports: [TranslateModule],\n declarations: [WidgetTranslatePipe],\n exports: [WidgetTranslatePipe],\n})\nexport class WidgetTranslatePipeModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './widget-translate.pipe';\nexport * from './widget-translate-pipe.module';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './widget-translate';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {HttpClient} from '@angular/common/http';\nimport {NgModule} from '@angular/core';\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\nimport {\n AlertModule,\n BpmnJsDiagramModule,\n CarbonListModule,\n ListModule,\n SpinnerModule,\n WidgetModule,\n} from '@valtimo/components';\nimport {TaskModule} from '@valtimo/task';\nimport {LoadingModule, TabsModule, ThemeModule} from 'carbon-components-angular';\nimport {DashboardComponent} from './components/dashboard/dashboard.component';\nimport {WidgetDashboardContentComponent} from './components/widget-dashboard-content/widget-dashboard-content.component';\nimport {WidgetDashboardComponent} from './components/widget-dashboard/widget-dashboard.component';\nimport {DATA_SOURCE_TOKEN, DISPLAY_TYPE_TOKEN} from './constants';\nimport {DashboardRoutingModule} from './dashboard-routing.module';\nimport {WidgetTranslatePipeModule} from './pipes';\n\n// AoT requires an exported function for factories\nexport function HttpLoaderFactory(httpClient: HttpClient) {\n return new TranslateHttpLoader(httpClient);\n}\n\n@NgModule({\n declarations: [DashboardComponent, WidgetDashboardComponent, WidgetDashboardContentComponent],\n imports: [\n CommonModule,\n DashboardRoutingModule,\n WidgetModule,\n ListModule,\n BpmnJsDiagramModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n }),\n AlertModule,\n TaskModule,\n SpinnerModule,\n TabsModule,\n ThemeModule,\n WidgetTranslatePipeModule,\n LoadingModule,\n CarbonListModule,\n ],\n exports: [DashboardComponent, WidgetDashboardComponent],\n providers: [\n {provide: DISPLAY_TYPE_TOKEN, useValue: null, multi: true},\n {provide: DATA_SOURCE_TOKEN, useValue: null, multi: true},\n ],\n})\nexport class DashboardModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {ConfigurationOutput, DataSourceConfigurationComponent} from '../../../../models';\nimport {startWith, Subscription} from 'rxjs';\nimport {FormBuilder, Validators} from '@angular/forms';\nimport {TestConfiguration} from '../../models';\n\n@Component({\n templateUrl: './test-configuration.component.html',\n styleUrls: ['./test-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TestConfigurationComponent\n implements OnInit, OnDestroy, DataSourceConfigurationComponent\n{\n public readonly form = this.fb.group({\n value: this.fb.control(null, [Validators.required]),\n total: this.fb.control(null, [Validators.required]),\n });\n\n @Input() dataSourceKey: string;\n @Input() set disabled(disabledValue: boolean) {\n if (disabledValue) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n public get value() {\n return this.form.get('value');\n }\n\n public get total() {\n return this.form.get('total');\n }\n\n @Input() set prefillConfiguration(configurationValue: TestConfiguration) {\n if (configurationValue) {\n this.value.setValue(configurationValue.value);\n this.total.setValue(configurationValue.total);\n }\n }\n\n @Output() public configurationEvent = new EventEmitter<ConfigurationOutput>();\n\n private _subscriptions = new Subscription();\n\n constructor(private readonly fb: FormBuilder) {}\n\n public ngOnInit(): void {\n this.openFormSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openFormSubscription(): void {\n this._subscriptions.add(\n this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {\n this.configurationEvent.emit({valid: this.form.valid, data: formValue});\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form [formGroup]=\"form\">\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'valueHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'valueHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"value.dirty && value.invalid\"\n >\n {{ 'value' | widgetTranslate: dataSourceKey | async }}\n\n <input\n cdsText\n formControlName=\"value\"\n [invalid]=\"value.dirty && value.invalid\"\n type=\"number\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'totalHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'totalHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"total.dirty && total.invalid\"\n >\n {{ 'total' | widgetTranslate: dataSourceKey | async }}\n\n <input\n cdsText\n formControlName=\"total\"\n [invalid]=\"total.dirty && total.invalid\"\n type=\"number\"\n />\n </cds-label>\n </div>\n</form>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './test-configuration.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './test-configuration';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface TestConfiguration {\n value: number;\n total: number;\n}\n\nexport {TestConfiguration};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './test.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DataSourceSpecification} from '../../models';\nimport {TestConfigurationComponent} from './components';\n\nexport const testDataSourceSpecification: DataSourceSpecification = {\n dataSourceKey: 'test',\n configurationComponent: TestConfigurationComponent,\n translations: {\n de: {\n title: 'Test-Datenquelle',\n value: 'Wert (erforderlich)',\n valueHelperText: 'Der im Widget angezeigte Wert',\n total: 'Gesamtwert (erforderlich)',\n totalHelperText: 'Der im Widget angezeigte Gesamtwert',\n },\n en: {\n title: 'Test data source',\n value: 'Value (required)',\n valueHelperText: 'The value displayed in the widget',\n total: 'Total value (required)',\n totalHelperText: 'The total value displayed in the widget',\n },\n nl: {\n title: 'Testdatabron',\n value: 'Waarde (vereist)',\n valueHelperText: 'De waarde die wordt weergegeven in de widget',\n total: 'Totaalwaarde (vereist)',\n totalHelperText: 'De totaalwaarde die wordt weergegeven in de widget',\n },\n },\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DATA_SOURCE_TOKEN} from '../../constants';\nimport {testDataSourceSpecification} from './test.specification';\nimport {TestConfigurationComponent} from './components';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {WidgetTranslatePipeModule} from '../../pipes';\nimport {InputModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [TestConfigurationComponent],\n imports: [CommonModule, ReactiveFormsModule, WidgetTranslatePipeModule, InputModule],\n exports: [TestConfigurationComponent],\n providers: [{provide: DATA_SOURCE_TOKEN, useValue: testDataSourceSpecification, multi: true}],\n})\nexport class TestDataSourceModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './test.module';\nexport * from './test.specification';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface QueryCondition {\n queryPath: string;\n queryOperator: string;\n queryValue: string;\n}\n\ninterface CaseCountConfiguration {\n documentDefinition: string;\n queryConditions: Array<QueryCondition>;\n}\n\nenum Operator {\n NOT_EQUAL_TO = '!=',\n EQUAL_TO = '==',\n GREATER_THAN = '>',\n GREATER_THAN_OR_EQUAL_TO = '>=',\n LESS_THAN = '<',\n LESS_THAN_OR_EQUAL_TO = '<=',\n}\n\nexport {CaseCountConfiguration, QueryCondition, Operator};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-count.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {ConfigurationOutput, DataSourceConfigurationComponent} from '../../../../models';\nimport {BehaviorSubject, combineLatest, map, Observable, startWith, Subscription} from 'rxjs';\nimport {FormBuilder, Validators} from '@angular/forms';\nimport {CaseCountConfiguration, Operator} from '../../models';\nimport {DocumentService} from '@valtimo/document';\nimport {ListItem} from 'carbon-components-angular';\nimport {ListItemWithId, MultiInputKeyValue, MultiInputValues} from '@valtimo/components';\nimport {TranslateService} from '@ngx-translate/core';\nimport {WidgetTranslationService} from '../../../../services';\n\n@Component({\n templateUrl: './case-count-configuration.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./case-count-configuration.component.scss'],\n})\nexport class CaseCountConfigurationComponent\n implements OnInit, OnDestroy, DataSourceConfigurationComponent\n{\n @Input() public dataSourceKey: string;\n\n public readonly form = this.fb.group({\n documentDefinition: this.fb.control(null, [Validators.required]),\n queryConditions: this.fb.control(null),\n });\n\n @Input() public set disabled(disabledValue: boolean) {\n if (disabledValue) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n private readonly _selectedDocumentDefinition$ = new BehaviorSubject<string>('');\n\n public readonly documentItems$: Observable<Array<ListItem>> = combineLatest([\n this.documentService.getAllDefinitions(),\n this._selectedDocumentDefinition$,\n ]).pipe(\n map(([documentDefinitions, selectedDocumentDefintion]) =>\n documentDefinitions.content.map(definition => ({\n content: definition.id.name,\n selected: definition.id.name === selectedDocumentDefintion,\n }))\n )\n );\n\n private readonly _OPERATORS: Array<Operator> = [\n Operator.NOT_EQUAL_TO,\n Operator.EQUAL_TO,\n Operator.GREATER_THAN,\n Operator.GREATER_THAN_OR_EQUAL_TO,\n Operator.LESS_THAN,\n Operator.LESS_THAN_OR_EQUAL_TO,\n ];\n\n public readonly operatorItems$: Observable<Array<ListItemWithId>> = this.translateService\n .stream('key')\n .pipe(\n map(() =>\n this._OPERATORS.map(operator => ({\n id: operator,\n content: this.widgetTranslationService.instant(operator, this.dataSourceKey),\n selected: false,\n }))\n )\n );\n\n public readonly defaultConditionValues$ = new BehaviorSubject<MultiInputValues | null>(null);\n public readonly allConditionsValid$ = new BehaviorSubject<boolean>(true);\n\n public get documentDefinition() {\n return this.form.get('documentDefinition');\n }\n\n public get queryConditions() {\n return this.form.get('queryConditions');\n }\n\n @Input() set prefillConfiguration(configurationValue: CaseCountConfiguration) {\n if (configurationValue) {\n this.documentDefinitionSelected({\n item: {\n content: configurationValue.documentDefinition,\n },\n } as any);\n this.defaultConditionValues$.next(\n configurationValue.queryConditions.map(condition => ({\n key: condition.queryPath,\n dropdown: condition.queryOperator,\n value: condition.queryValue,\n }))\n );\n }\n }\n\n @Output() public configurationEvent = new EventEmitter<ConfigurationOutput>();\n\n private _subscriptions = new Subscription();\n\n constructor(\n private readonly fb: FormBuilder,\n private readonly documentService: DocumentService,\n private readonly translateService: TranslateService,\n private readonly widgetTranslationService: WidgetTranslationService\n ) {}\n\n public ngOnInit(): void {\n this.openFormSubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public documentDefinitionSelected(documentDefinitionItem: ListItem): void {\n if (!documentDefinitionItem) {\n return;\n }\n\n this._selectedDocumentDefinition$.next(documentDefinitionItem?.item?.content);\n this.documentDefinition.setValue(documentDefinitionItem?.item?.content);\n }\n\n public conditionsValueChange(values: Array<MultiInputKeyValue>): void {\n if (values.length === 0) {\n this.queryConditions.setValue(null);\n } else {\n this.queryConditions.setValue(\n values.map(value => ({\n queryPath: value.key,\n queryOperator: value.dropdown,\n queryValue: value.value,\n }))\n );\n }\n }\n\n onAllConditionsValid(allConditionsValid: boolean): void {\n this.allConditionsValid$.next(allConditionsValid);\n }\n\n private openFormSubscription(): void {\n this._subscriptions.add(\n combineLatest([\n this.form.valueChanges.pipe(startWith(this.form.value)),\n this.allConditionsValid$,\n ]).subscribe(([formValue, allConditionsValid]) => {\n this.configurationEvent.emit({\n valid: this.form.valid && allConditionsValid,\n data: formValue,\n });\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n class=\"case-count-configuration-form\"\n *ngIf=\"{documentItems: documentItems$ | async, operatorItems: operatorItems$} as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate: dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"defaultConditionValues$ | async\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (allValuesValidEvent)=\"onAllConditionsValid($event)\"\n (valueChange)=\"conditionsValueChange($event)\"\n carbonTheme=\"white\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-count-configuration.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './case-count-configuration';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DataSourceSpecification} from '../../models';\nimport {CaseCountConfigurationComponent} from './components';\n\nexport const caseCountDataSourceSpecification: DataSourceSpecification = {\n dataSourceKey: 'case-count',\n configurationComponent: CaseCountConfigurationComponent,\n translations: {\n de: {\n title: 'Fallzahl',\n documentDefinition: 'Falltyp (erforderlich)',\n documentDefinitionHelperText: 'Der Falltyp, für den die Anzahl abgerufen wird',\n '!=': 'Nicht gleichzusetzen mit',\n '==': 'Gleich',\n '>': 'Größer als',\n '>=': 'Größer als oder gleich wie',\n '<': 'Weniger als',\n '<=': 'Gleich oder kleiner als',\n path: 'Pfad',\n operator: 'Operator',\n value: 'Wert',\n conditions: 'Bedingungen',\n conditionsHelperText:\n \"Geben Sie optionale Bedingungen zum Abrufen der Anzahl der Fälle für den ausgewählten Falltyp an. Zum Beispiel: 'case:createdBy', 'Gleich', 'test@test.com'.\",\n addCondition: 'Bedingung hinzufügen',\n },\n en: {\n title: 'Case count',\n documentDefinition: 'Case type (required)',\n documentDefinitionHelperText: 'The case type for which the count is retrieved',\n '!=': 'Not equal to',\n '==': 'Equal to',\n '>': 'Greater than',\n '>=': 'Greater than or equal to',\n '<': 'Less than',\n '<=': 'Less than or equal to',\n path: 'Path (required)',\n operator: 'Operator',\n value: 'Value',\n conditions: 'Conditions',\n conditionsHelperText:\n \"Specify optional conditions for retrieving the number of cases for the selected case type. For example: 'case:createdBy', 'Equal to', 'test@test.com'.\",\n addCondition: 'Add condition',\n },\n nl: {\n title: 'Aantal dossiers',\n documentDefinition: 'Dossiertype (vereist)',\n documentDefinitionHelperText: 'Het dossiertype waarvoor de telling wordt opgehaald',\n '!=': 'Niet gelijk aan',\n '==': 'Gelijk aan',\n '>': 'Groter dan',\n '>=': 'Groter dan of gelijk aan',\n '<': 'Minder dan',\n '<=': 'Minder dan of gelijk aan',\n path: 'Pad',\n operator: 'Operator',\n value: 'Waarde',\n conditions: 'Condities',\n conditionsHelperText:\n \"Geef optionele condities op voor het ophalen van het aantal zaken voor het geselecteerde zaaktype. Bijvoorbeeld: 'case:createdBy', 'Gelijk aan', 'test@test.com'.\",\n addCondition: 'Conditie toevoegen',\n },\n },\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DATA_SOURCE_TOKEN} from '../../constants';\nimport {caseCountDataSourceSpecification} from './case-count.specification';\nimport {CaseCountConfigurationComponent} from './components';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {WidgetTranslatePipeModule} from '../../pipes';\nimport {DropdownModule, InputModule} from 'carbon-components-angular';\nimport {CarbonMultiInputModule} from '@valtimo/components';\n\n@NgModule({\n declarations: [CaseCountConfigurationComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n WidgetTranslatePipeModule,\n InputModule,\n DropdownModule,\n CarbonMultiInputModule,\n ],\n exports: [CaseCountConfigurationComponent],\n providers: [\n {provide: DATA_SOURCE_TOKEN, useValue: caseCountDataSourceSpecification, multi: true},\n ],\n})\nexport class CaseCountDataSourceModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './models';\nexport * from './case-count.module';\nexport * from './case-count.specification';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './test';\nexport * from './case-count';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface BarChartData {\n value: number;\n}\n\ninterface BarChartDisplayTypeProperties {\n title: string;\n}\n\nexport {BarChartData, BarChartDisplayTypeProperties};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './bar-chart.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {DisplayComponent} from '../../../../models';\nimport {BarChartData, BarChartDisplayTypeProperties} from '../../models';\n\n@Component({\n selector: 'valtimo-bar-chart-display',\n templateUrl: './bar-chart-display.component.html',\n styleUrls: ['./bar-chart-display.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BarChartDisplayComponent implements DisplayComponent {\n @Input() displayTypeKey: string;\n @Input() data: BarChartData;\n @Input() displayTypeProperties: BarChartDisplayTypeProperties;\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\nbar chart works\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './bar-chart-display.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './bar-chart-display';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DisplayTypeSpecification} from '../../models';\nimport {BarChartDisplayComponent} from './components/bar-chart-display/bar-chart-display.component';\n\nexport const barChartSpecification: DisplayTypeSpecification = {\n displayTypeKey: 'bar-chart',\n displayComponent: BarChartDisplayComponent,\n width: 1,\n height: 2,\n translations: {\n nl: {\n title: 'Staafdiagram',\n },\n en: {\n title: 'Bar chart',\n },\n de: {\n title: 'Balkendiagramm',\n },\n },\n requiredDataFeatures: [],\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BarChartDisplayComponent} from './components/bar-chart-display/bar-chart-display.component';\nimport {DISPLAY_TYPE_TOKEN} from '../../constants';\nimport {barChartSpecification} from './bar-chart.specification';\n\n@NgModule({\n declarations: [BarChartDisplayComponent],\n imports: [CommonModule],\n exports: [BarChartDisplayComponent],\n providers: [{provide: DISPLAY_TYPE_TOKEN, useValue: barChartSpecification, multi: true}],\n})\nexport class BarChartModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './models';\nexport * from './components';\nexport * from './bar-chart.specification';\nexport * from './bar-chart.module';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport {ConfigurationOutput, DisplayTypeConfigurationComponent} from '../../../../models';\nimport {startWith, Subscription} from 'rxjs';\nimport {FormBuilder, Validators} from '@angular/forms';\nimport {BigNumberDisplayTypeProperties} from '../../models';\n\n@Component({\n templateUrl: './big-number-configuration.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BigNumberConfigurationComponent\n implements OnInit, OnDestroy, DisplayTypeConfigurationComponent\n{\n public readonly form = this.fb.group({\n title: this.fb.control('', [Validators.required]),\n subtitle: this.fb.control(''),\n label: this.fb.control(''),\n useKPI: this.fb.control(false, [Validators.required]),\n lowSeverityThreshold: this.fb.control(null),\n mediumSeverityThreshold: this.fb.control(null),\n highSeverityThreshold: this.fb.control(null),\n });\n\n @Input() displayTypeKey: string;\n @Input() set disabled(disabledValue: boolean) {\n if (disabledValue) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n public get title() {\n return this.form.get('title');\n }\n\n public get subtitle() {\n return this.form.get('subtitle');\n }\n\n public get label() {\n return this.form.get('label');\n }\n\n public get useKPI() {\n return this.form.get('useKPI');\n }\n\n public get lowSeverityThreshold() {\n return this.form.get('lowSeverityThreshold');\n }\n\n public get mediumSeverityThreshold() {\n return this.form.get('mediumSeverityThreshold');\n }\n\n public get highSeverityThreshold() {\n return this.form.get('highSeverityThreshold');\n }\n\n @Input() set prefillConfiguration(configurationValue: BigNumberDisplayTypeProperties) {\n if (configurationValue) {\n this.title.setValue(configurationValue.title || '');\n this.subtitle.setValue(configurationValue.subtitle || '');\n this.label.setValue(configurationValue.label || '');\n this.useKPI.setValue(configurationValue.useKPI || false);\n this.lowSeverityThreshold.setValue(configurationValue.lowSeverityThreshold || null);\n this.mediumSeverityThreshold.setValue(configurationValue.mediumSeverityThreshold || null);\n this.highSeverityThreshold.setValue(configurationValue.highSeverityThreshold || null);\n }\n }\n\n @Output() public configurationEvent = new EventEmitter<ConfigurationOutput>();\n\n private _subscriptions = new Subscription();\n\n constructor(private readonly fb: FormBuilder) {}\n\n public ngOnInit(): void {\n this.openFormSubscription();\n this.openKPISubscription();\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n private openFormSubscription(): void {\n this._subscriptions.add(\n this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {\n this.configurationEvent.emit({valid: this.form.valid, data: formValue});\n })\n );\n }\n\n private openKPISubscription(): void {\n this._subscriptions.add(\n this.useKPI.valueChanges.pipe(startWith(this.useKPI.value)).subscribe(useKpi => {\n const validators = [Validators.required];\n\n if (useKpi) {\n this.lowSeverityThreshold.setValidators(validators);\n this.mediumSeverityThreshold.setValidators(validators);\n this.highSeverityThreshold.setValidators(validators);\n } else {\n this.lowSeverityThreshold.clearValidators();\n this.mediumSeverityThreshold.clearValidators();\n this.highSeverityThreshold.clearValidators();\n }\n\n this.lowSeverityThreshold.updateValueAndValidity();\n this.mediumSeverityThreshold.updateValueAndValidity();\n this.highSeverityThreshold.updateValueAndValidity();\n })\n );\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form [formGroup]=\"form\">\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'formTitleHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalidText]=\"'formTitleHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalid]=\"title.dirty && title.invalid\"\n >\n {{ 'formTitle' | widgetTranslate: displayTypeKey | async }}\n\n <input cdsText formControlName=\"title\" [invalid]=\"title.dirty && title.invalid\" />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'subtitleHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalidText]=\"'subtitleHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalid]=\"subtitle.dirty && subtitle.invalid\"\n >\n {{ 'subtitle' | widgetTranslate: displayTypeKey | async }}\n\n <input cdsText formControlName=\"subtitle\" [invalid]=\"subtitle.dirty && subtitle.invalid\" />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'labelHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalidText]=\"'labelHelperText' | widgetTranslate: displayTypeKey | async\"\n [invalid]=\"label.dirty && label.invalid\"\n >\n {{ 'label' | widgetTranslate: displayTypeKey | async }}\n\n <input cdsText formControlName=\"label\" [invalid]=\"label.dirty && label.invalid\" />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-checkbox formControlName=\"useKPI\">\n {{ 'useKPI' | widgetTranslate: displayTypeKey | async }}\n </cds-checkbox>\n </div>\n\n <div class=\"form__row\" *ngIf=\"useKPI.value\">\n <div class=\"form__element\">\n <cds-label [invalid]=\"lowSeverityThreshold.dirty && lowSeverityThreshold.invalid\">\n {{ 'lowSeverityThreshold' | widgetTranslate: displayTypeKey | async }}\n\n <input\n cdsText\n [invalid]=\"lowSeverityThreshold.dirty && lowSeverityThreshold.invalid\"\n formControlName=\"lowSeverityThreshold\"\n type=\"number\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__spacer\"></div>\n\n <div class=\"form__element\">\n <cds-label [invalid]=\"mediumSeverityThreshold.dirty && mediumSeverityThreshold.invalid\">\n {{ 'mediumSeverityThreshold' | widgetTranslate: displayTypeKey | async }}\n\n <input\n cdsText\n formControlName=\"mediumSeverityThreshold\"\n [invalid]=\"mediumSeverityThreshold.dirty && mediumSeverityThreshold.invalid\"\n type=\"number\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__spacer\"></div>\n\n <div class=\"form__element\">\n <cds-label [invalid]=\"highSeverityThreshold.dirty && highSeverityThreshold.invalid\">\n {{ 'highSeverityThreshold' | widgetTranslate: displayTypeKey | async }}\n\n <input\n cdsText\n formControlName=\"highSeverityThreshold\"\n [invalid]=\"highSeverityThreshold.dirty && highSeverityThreshold.invalid\"\n type=\"number\"\n />\n </cds-label>\n </div>\n </div>\n</form>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './big-number-configuration.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {EventEmitter} from '@angular/core';\n\ninterface ConfigurationOutput {\n valid: boolean;\n data: object;\n}\n\ninterface ConfigurationComponent {\n disabled: boolean;\n prefillConfiguration?: object;\n configurationEvent: EventEmitter<ConfigurationOutput>;\n}\n\ninterface DisplayTypeConfigurationComponent extends ConfigurationComponent {\n displayTypeKey: string;\n}\n\ninterface DataSourceConfigurationComponent extends ConfigurationComponent {\n dataSourceKey: string;\n}\n\nexport {\n ConfigurationComponent,\n DisplayTypeConfigurationComponent,\n DataSourceConfigurationComponent,\n ConfigurationOutput,\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface Dashboard {\n key: string;\n title: string;\n widgets: Array<DashboardWidgetConfiguration>;\n}\n\ninterface DashboardWidgetConfiguration {\n key: string;\n title: string;\n dataSourceKey: string;\n displayType: string;\n dataSourceProperties: object;\n displayTypeProperties: object;\n}\n\nexport {Dashboard, DashboardWidgetConfiguration};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\nimport {DataSourceConfigurationComponent} from './configuration.model';\n\ninterface DataSourceSpecification {\n dataSourceKey: string;\n configurationComponent?: Type<DataSourceConfigurationComponent>;\n translations: {\n [langKey: string]: {\n title: string;\n [translationKey: string]: string;\n };\n };\n}\n\nexport {DataSourceSpecification};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Type} from '@angular/core';\nimport {DisplayTypeConfigurationComponent} from './configuration.model';\n\ninterface DisplayComponent {\n displayTypeKey: string;\n displayTypeProperties: object;\n data: object;\n}\n\ninterface DisplayTypeSpecification {\n displayTypeKey: string;\n displayComponent: Type<DisplayComponent>;\n configurationComponent?: Type<DisplayTypeConfigurationComponent>;\n requiredDataFeatures: Array<string>;\n width: number;\n height: number;\n translations: {\n [langKey: string]: {\n title: string;\n [translationKey: string]: string;\n };\n };\n}\n\nexport {DisplayComponent, DisplayTypeSpecification};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface WidgetConfigurationBin {\n configurationKey: string;\n width: number;\n height: number;\n}\n\ninterface PackResult {\n height: number;\n width: number;\n items: Array<{width: number; height: number; x: number; y: number; item: WidgetConfigurationBin}>;\n}\n\nexport {WidgetConfigurationBin, PackResult};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface WidgetData {\n key: string;\n data: object;\n}\n\nexport {WidgetData};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nenum WidgetSeverity {\n BLACK = 'valtimo-severity__black',\n GREEN = 'valtimo-severity__green',\n YELLOW = 'valtimo-severity__yellow',\n ORANGE = 'valtimo-severity__orange',\n RED = 'valtimo-severity__red',\n}\n\nexport {WidgetSeverity};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './configuration.model';\nexport * from './dashboard.model';\nexport * from './data-source.model';\nexport * from './display-type.model';\nexport * from './layout.model';\nexport * from './widget-data.model';\nexport * from './widget-display.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {DisplayComponent, WidgetSeverity} from '../../../../models';\nimport {BigNumberData, BigNumberDisplayTypeProperties} from '../../models';\n\n@Component({\n selector: 'valtimo-big-number-display',\n templateUrl: './big-number-display.component.html',\n styleUrls: ['./big-number-display.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BigNumberDisplayComponent implements DisplayComponent {\n @Input() displayTypeKey: string;\n @Input() data: BigNumberData;\n @Input() displayTypeProperties: BigNumberDisplayTypeProperties;\n\n public get severityClass(): string {\n if (!this.displayTypeProperties.useKPI) {\n return WidgetSeverity.BLACK;\n }\n\n const value: number = this.data?.value;\n\n if (value < this.displayTypeProperties.lowSeverityThreshold) {\n return WidgetSeverity.GREEN;\n } else if (value < this.displayTypeProperties.mediumSeverityThreshold) {\n return WidgetSeverity.YELLOW;\n } else if (value < this.displayTypeProperties.highSeverityThreshold) {\n return WidgetSeverity.ORANGE;\n }\n\n return WidgetSeverity.RED;\n }\n\n public get numberFontSize(): number {\n if (!this.data) {\n return 122;\n }\n\n return Math.floor(122 / this.data.value.toString().length) + 20;\n }\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<section class=\"valtimo-big-number-widget__header\">\n <h3 class=\"valtimo-big-number-widget__title\">{{ displayTypeProperties.title }}</h3>\n\n <span *ngIf=\"displayTypeProperties.subtitle\" class=\"valtimo-big-number-widget__subtitle\">\n {{ displayTypeProperties.subtitle }}\n </span>\n</section>\n\n<section class=\"valtimo-big-number-widget__content\">\n <span\n [class]=\"['valtimo-big-number-widget__number', severityClass]\"\n [style.fontSize.px]=\"numberFontSize\"\n >{{ data?.value }}</span\n >\n\n <span *ngIf=\"displayTypeProperties.label\" class=\"valtimo-big-number-widget__label\">\n {{ displayTypeProperties.label }}\n </span>\n</section>\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './big-number-display.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './big-number-configuration';\nexport * from './big-number-display';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DisplayTypeSpecification} from '../../models';\nimport {DATA_FEATURES} from '../../constants';\nimport {BigNumberConfigurationComponent, BigNumberDisplayComponent} from './components';\n\nexport const bigNumberSpecification: DisplayTypeSpecification = {\n displayTypeKey: 'number',\n displayComponent: BigNumberDisplayComponent,\n configurationComponent: BigNumberConfigurationComponent,\n width: 1,\n height: 1,\n translations: {\n nl: {\n title: 'Groot getal',\n formTitle: 'Titel (vereist)',\n formTitleHelperText: 'De titel die wordt weergegeven in de widget',\n subtitle: 'Ondertitel',\n subtitleHelperText: 'De ondertitel weergegeven in de widget',\n label: 'Label',\n labelHelperText: 'Het label dat wordt weergegeven in de widget',\n useKPI: 'KPI gebruiken',\n lowSeverityThreshold: 'Lage ernstdrempel (vereist)',\n mediumSeverityThreshold: 'Middelmatige ernstdrempel (vereist)',\n highSeverityThreshold: 'Hoge ernstdrempel (vereist)',\n },\n en: {\n title: 'Big number',\n formTitle: 'Title (required)',\n formTitleHelperText: 'The title displayed in the widget',\n subtitle: 'Subtitle',\n subtitleHelperText: 'The subtitle displayed in the widget',\n label: 'Label',\n labelHelperText: 'The label displayed in the widget',\n useKPI: 'Use KPI',\n lowSeverityThreshold: 'Low severity threshold (required)',\n mediumSeverityThreshold: 'Medium severity threshold (required)',\n highSeverityThreshold: 'High severity threshold (required)',\n },\n de: {\n title: 'Große Nummer',\n formTitle: 'Titel (erforderlich)',\n formTitleHelperText: 'Der im Widget angezeigte Titel',\n subtitle: 'Untertitel',\n subtitleHelperText: 'Der im Widget angezeigte Untertitel',\n label: 'Beschriftung',\n labelHelperText: 'Die im Widget angezeigte Beschriftung',\n useKPI: 'Verwenden Sie KPI',\n lowSeverityThreshold: 'Niedriger Schweregradschwellenwert (erforderlich)',\n mediumSeverityThreshold: 'Mittlerer Schweregradschwellenwert (erforderlich)',\n highSeverityThreshold: 'Hoher Schweregradschwellenwert (erforderlich)',\n },\n },\n requiredDataFeatures: [DATA_FEATURES.NUMBER],\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DISPLAY_TYPE_TOKEN} from '../../constants';\nimport {bigNumberSpecification} from './big-number.specification';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {WidgetTranslatePipeModule} from '../../pipes';\nimport {CheckboxModule, InputModule} from 'carbon-components-angular';\nimport {BigNumberConfigurationComponent, BigNumberDisplayComponent} from './components';\n\n@NgModule({\n declarations: [BigNumberDisplayComponent, BigNumberConfigurationComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n WidgetTranslatePipeModule,\n InputModule,\n CheckboxModule,\n ],\n exports: [BigNumberDisplayComponent],\n providers: [{provide: DISPLAY_TYPE_TOKEN, useValue: bigNumberSpecification, multi: true}],\n})\nexport class BigNumberModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface BigNumberData {\n value: number;\n}\n\ninterface BigNumberDisplayTypeProperties {\n title: string;\n subtitle: string;\n useKPI: boolean;\n lowSeverityThreshold: number;\n mediumSeverityThreshold: number;\n highSeverityThreshold: number;\n label?: string;\n}\n\nexport {BigNumberData, BigNumberDisplayTypeProperties};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './big-number.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './big-number.module';\nexport * from './big-number.specification';\nexport * from './components';\nexport * from './models';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {DisplayComponent} from '../../../../models';\nimport {MeterData, MeterDisplayTypeProperties} from '../../models';\n\n@Component({\n selector: 'valtimo-meter-display',\n templateUrl: './meter-display.component.html',\n styleUrls: ['./meter-display.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MeterDisplayComponent implements DisplayComponent {\n @Input() displayTypeKey: string;\n @Input() data: MeterData;\n @Input() displayTypeProperties: MeterDisplayTypeProperties;\n}\n","<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\nmeter works\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './meter-display.component';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './meter-display';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {DisplayTypeSpecification} from '../../models';\nimport {MeterDisplayComponent} from './components/meter-display/meter-display.component';\n\nexport const meterSpecification: DisplayTypeSpecification = {\n displayTypeKey: 'meter',\n displayComponent: MeterDisplayComponent,\n width: 2,\n height: 1,\n translations: {\n nl: {\n title: 'Meter',\n },\n en: {\n title: 'Meter',\n },\n de: {\n title: 'Meter',\n },\n },\n requiredDataFeatures: [],\n};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MeterDisplayComponent} from './components/meter-display/meter-display.component';\nimport {DISPLAY_TYPE_TOKEN} from '../../constants';\nimport {meterSpecification} from './meter.specification';\n\n@NgModule({\n declarations: [MeterDisplayComponent],\n imports: [CommonModule],\n exports: [MeterDisplayComponent],\n providers: [{provide: DISPLAY_TYPE_TOKEN, useValue: meterSpecification, multi: true}],\n})\nexport class MeterModule {}\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface MeterData {\n value: number;\n}\n\ninterface MeterDisplayTypeProperties {\n title: string;\n}\n\nexport {MeterData, MeterDisplayTypeProperties};\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './meter.model';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './components';\nexport * from './meter.module';\nexport * from './meter.specification';\nexport * from './models';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './bar-chart';\nexport * from './big-number';\nexport * from './meter';\n","/*\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of dashboard\n */\n\nexport * from './lib/components/dashboard/dashboard.component';\nexport * from './lib/components/widget-dashboard-content/widget-dashboard-content.component';\nexport * from './lib/components/widget-dashboard/widget-dashboard.component';\nexport * from './lib/constants';\nexport * from './lib/dashboard.module';\nexport * from './lib/data-sources';\nexport * from './lib/display-types';\nexport * from './lib/models';\nexport * from './lib/pipes';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i5","i1.WidgetService","i1","i2","map","i2.WidgetService","i1.WidgetLayoutService","i4","i6","take","i1.DashboardService","i2.WidgetApiService","i6.WidgetDashboardContentComponent","i7","i1.WidgetTranslationService","i4.WidgetTranslatePipe","i3","i4.WidgetTranslationService","i8.WidgetTranslatePipe"],"mappings":"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"}
|