@valtimo/dashboard 11.3.2 → 12.1.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/dashboard/dashboard.component.mjs +7 -7
- package/esm2022/lib/components/widget-dashboard/widget-dashboard.component.mjs +11 -11
- package/esm2022/lib/components/widget-dashboard-content/widget-dashboard-content.component.mjs +61 -19
- package/esm2022/lib/constants/data-features.constants.mjs +3 -2
- package/esm2022/lib/constants/index.mjs +2 -2
- package/esm2022/lib/constants/injection-tokens.mjs +2 -2
- package/esm2022/lib/constants/layout.constants.mjs +2 -2
- package/esm2022/lib/dashboard-routing.module.mjs +6 -6
- package/esm2022/lib/dashboard.module.mjs +6 -6
- package/esm2022/lib/data-sources/case-count/case-count.module.mjs +6 -6
- package/esm2022/lib/data-sources/case-count/case-count.specification.mjs +5 -5
- package/esm2022/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.mjs +8 -8
- package/esm2022/lib/data-sources/case-count/components/case-count-configuration/index.mjs +2 -2
- package/esm2022/lib/data-sources/case-count/components/index.mjs +2 -2
- package/esm2022/lib/data-sources/case-count/index.mjs +2 -2
- package/esm2022/lib/data-sources/case-count/models/case-count.model.mjs +3 -12
- package/esm2022/lib/data-sources/case-count/models/index.mjs +2 -2
- package/esm2022/lib/data-sources/case-counts/case-counts.module.mjs +76 -0
- package/esm2022/lib/data-sources/case-counts/case-counts.specification.mjs +77 -0
- package/esm2022/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.mjs +202 -0
- package/esm2022/lib/data-sources/case-counts/components/case-counts-configuration/index.mjs +17 -0
- package/esm2022/lib/data-sources/case-counts/components/index.mjs +17 -0
- package/esm2022/lib/data-sources/case-counts/index.mjs +20 -0
- package/esm2022/lib/data-sources/case-counts/models/case-counts.model.mjs +17 -0
- package/esm2022/lib/data-sources/case-counts/models/index.mjs +17 -0
- package/esm2022/lib/data-sources/case-group-by/case-group-by.module.mjs +61 -0
- package/esm2022/lib/data-sources/case-group-by/case-group-by.specification.mjs +89 -0
- package/esm2022/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.mjs +206 -0
- package/esm2022/lib/data-sources/case-group-by/components/case-group-by-configuration/index.mjs +17 -0
- package/esm2022/lib/{display-types/bar-chart → data-sources/case-group-by/components}/index.mjs +3 -6
- package/esm2022/lib/data-sources/case-group-by/index.mjs +20 -0
- package/esm2022/lib/data-sources/case-group-by/models/case-group-by.model.mjs +17 -0
- package/esm2022/lib/data-sources/case-group-by/models/index.mjs +17 -0
- package/esm2022/lib/data-sources/index.mjs +4 -3
- package/esm2022/lib/display-types/big-number/big-number.module.mjs +6 -6
- package/esm2022/lib/display-types/big-number/big-number.specification.mjs +2 -2
- package/esm2022/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.mjs +7 -7
- package/esm2022/lib/display-types/big-number/components/big-number-configuration/index.mjs +2 -2
- package/esm2022/lib/display-types/big-number/components/big-number-display/big-number-display.component.mjs +6 -6
- package/esm2022/lib/display-types/big-number/components/big-number-display/index.mjs +2 -2
- package/esm2022/lib/display-types/big-number/components/index.mjs +2 -2
- package/esm2022/lib/display-types/big-number/index.mjs +2 -2
- package/esm2022/lib/display-types/big-number/models/big-number.model.mjs +2 -2
- package/esm2022/lib/display-types/big-number/models/index.mjs +2 -2
- package/esm2022/lib/display-types/donut/components/donut-configuration/donut-configuration.component.mjs +89 -0
- package/esm2022/lib/display-types/donut/components/donut-configuration/index.mjs +17 -0
- package/esm2022/lib/display-types/donut/components/donut-display/donut-display.component.mjs +72 -0
- package/esm2022/lib/display-types/donut/components/donut-display/index.mjs +17 -0
- package/esm2022/lib/display-types/donut/components/index.mjs +18 -0
- package/esm2022/lib/display-types/donut/donut.module.mjs +68 -0
- package/esm2022/lib/display-types/donut/donut.specification.mjs +55 -0
- package/esm2022/lib/display-types/donut/index.mjs +20 -0
- package/esm2022/lib/display-types/donut/models/donut.model.mjs +17 -0
- package/esm2022/lib/display-types/donut/models/index.mjs +17 -0
- package/esm2022/lib/display-types/gauge/components/gauge-configuration/gauge-configuration.component.mjs +89 -0
- package/esm2022/lib/display-types/gauge/components/gauge-configuration/index.mjs +17 -0
- package/esm2022/lib/display-types/gauge/components/gauge-display/gauge-display.component.mjs +86 -0
- package/esm2022/lib/display-types/gauge/components/gauge-display/index.mjs +17 -0
- package/esm2022/lib/display-types/gauge/components/index.mjs +18 -0
- package/esm2022/lib/display-types/gauge/gauge.module.mjs +60 -0
- package/esm2022/lib/display-types/gauge/gauge.specification.mjs +55 -0
- package/esm2022/lib/display-types/gauge/index.mjs +20 -0
- package/esm2022/lib/display-types/gauge/models/gauge.model.mjs +17 -0
- package/esm2022/lib/display-types/gauge/models/index.mjs +17 -0
- package/esm2022/lib/display-types/index.mjs +4 -3
- package/esm2022/lib/display-types/meter/components/index.mjs +3 -2
- package/esm2022/lib/display-types/meter/components/meter-configuration/index.mjs +17 -0
- package/esm2022/lib/display-types/meter/components/meter-configuration/meter-configuration.component.mjs +83 -0
- package/esm2022/lib/display-types/meter/components/meter-display/index.mjs +2 -2
- package/esm2022/lib/display-types/meter/components/meter-display/meter-display.component.mjs +46 -7
- package/esm2022/lib/display-types/meter/index.mjs +3 -3
- package/esm2022/lib/display-types/meter/meter.module.mjs +41 -9
- package/esm2022/lib/display-types/meter/meter.specification.mjs +24 -4
- package/esm2022/lib/display-types/meter/models/index.mjs +2 -2
- package/esm2022/lib/display-types/meter/models/meter.model.mjs +2 -2
- package/esm2022/lib/models/configuration.model.mjs +2 -2
- package/esm2022/lib/models/dashboard.model.mjs +2 -2
- package/esm2022/lib/models/data-source.model.mjs +12 -3
- package/esm2022/lib/models/display-type.model.mjs +2 -2
- package/esm2022/lib/models/index.mjs +2 -2
- package/esm2022/lib/models/layout.model.mjs +2 -2
- package/esm2022/lib/models/widget-data.model.mjs +2 -2
- package/esm2022/lib/models/widget-display.model.mjs +2 -2
- package/esm2022/lib/pipes/index.mjs +2 -2
- package/esm2022/lib/pipes/widget-translate/index.mjs +2 -2
- package/esm2022/lib/pipes/widget-translate/widget-translate-pipe.module.mjs +6 -6
- package/esm2022/lib/pipes/widget-translate/widget-translate.pipe.mjs +6 -6
- package/esm2022/lib/services/dashboard.service.mjs +6 -6
- package/esm2022/lib/services/index.mjs +2 -2
- package/esm2022/lib/services/widget-api.service.mjs +6 -6
- package/esm2022/lib/services/widget-layout.service.mjs +31 -85
- package/esm2022/lib/services/widget-translation.service.mjs +6 -6
- package/esm2022/lib/services/widget.service.mjs +7 -7
- package/esm2022/public_api.mjs +2 -2
- package/fesm2022/valtimo-dashboard.mjs +1909 -615
- package/fesm2022/valtimo-dashboard.mjs.map +1 -1
- package/lib/components/widget-dashboard/widget-dashboard.component.d.ts +1 -0
- package/lib/components/widget-dashboard/widget-dashboard.component.d.ts.map +1 -1
- package/lib/components/widget-dashboard-content/widget-dashboard-content.component.d.ts +9 -3
- package/lib/components/widget-dashboard-content/widget-dashboard-content.component.d.ts.map +1 -1
- package/lib/constants/data-features.constants.d.ts +1 -0
- package/lib/constants/data-features.constants.d.ts.map +1 -1
- package/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.d.ts +1 -1
- package/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.d.ts.map +1 -1
- package/lib/data-sources/case-count/models/case-count.model.d.ts +3 -15
- package/lib/data-sources/case-count/models/case-count.model.d.ts.map +1 -1
- package/lib/data-sources/case-counts/case-counts.module.d.ts +13 -0
- package/lib/data-sources/case-counts/case-counts.module.d.ts.map +1 -0
- package/lib/data-sources/case-counts/case-counts.specification.d.ts +3 -0
- package/lib/data-sources/case-counts/case-counts.specification.d.ts.map +1 -0
- package/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.d.ts +52 -0
- package/lib/data-sources/case-counts/components/case-counts-configuration/case-counts-configuration.component.d.ts.map +1 -0
- package/lib/data-sources/case-counts/components/case-counts-configuration/index.d.ts +2 -0
- package/lib/data-sources/{test/components/test-configuration → case-counts/components/case-counts-configuration}/index.d.ts.map +1 -1
- package/lib/data-sources/case-counts/components/index.d.ts +2 -0
- package/lib/data-sources/case-counts/components/index.d.ts.map +1 -0
- package/lib/data-sources/case-counts/index.d.ts +5 -0
- package/lib/data-sources/case-counts/index.d.ts.map +1 -0
- package/lib/data-sources/case-counts/models/case-counts.model.d.ts +16 -0
- package/lib/data-sources/case-counts/models/case-counts.model.d.ts.map +1 -0
- package/lib/data-sources/case-counts/models/index.d.ts +2 -0
- package/lib/data-sources/{test/components → case-counts/models}/index.d.ts.map +1 -1
- package/lib/data-sources/case-group-by/case-group-by.module.d.ts +13 -0
- package/lib/data-sources/case-group-by/case-group-by.module.d.ts.map +1 -0
- package/lib/data-sources/case-group-by/case-group-by.specification.d.ts +3 -0
- package/lib/data-sources/case-group-by/case-group-by.specification.d.ts.map +1 -0
- package/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.d.ts +54 -0
- package/lib/data-sources/case-group-by/components/case-group-by-configuration/case-group-by-configuration.component.d.ts.map +1 -0
- package/lib/data-sources/case-group-by/components/case-group-by-configuration/index.d.ts +2 -0
- package/lib/data-sources/case-group-by/components/case-group-by-configuration/index.d.ts.map +1 -0
- package/lib/data-sources/case-group-by/components/index.d.ts +2 -0
- package/lib/data-sources/case-group-by/components/index.d.ts.map +1 -0
- package/lib/data-sources/case-group-by/index.d.ts +5 -0
- package/lib/data-sources/case-group-by/index.d.ts.map +1 -0
- package/lib/data-sources/case-group-by/models/case-group-by.model.d.ts +19 -0
- package/lib/data-sources/case-group-by/models/case-group-by.model.d.ts.map +1 -0
- package/lib/data-sources/case-group-by/models/index.d.ts +2 -0
- package/lib/data-sources/{test → case-group-by}/models/index.d.ts.map +1 -1
- package/lib/data-sources/index.d.ts +2 -1
- package/lib/data-sources/index.d.ts.map +1 -1
- package/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.d.ts +10 -10
- package/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.d.ts.map +1 -1
- package/lib/display-types/donut/components/donut-configuration/donut-configuration.component.d.ts +29 -0
- package/lib/display-types/donut/components/donut-configuration/donut-configuration.component.d.ts.map +1 -0
- package/lib/display-types/donut/components/donut-configuration/index.d.ts +2 -0
- package/lib/display-types/{bar-chart/components/bar-chart-display → donut/components/donut-configuration}/index.d.ts.map +1 -1
- package/lib/display-types/donut/components/donut-display/donut-display.component.d.ts +19 -0
- package/lib/display-types/donut/components/donut-display/donut-display.component.d.ts.map +1 -0
- package/lib/display-types/donut/components/donut-display/index.d.ts +2 -0
- package/lib/display-types/donut/components/donut-display/index.d.ts.map +1 -0
- package/lib/display-types/donut/components/index.d.ts +3 -0
- package/lib/display-types/donut/components/index.d.ts.map +1 -0
- package/lib/display-types/donut/donut.module.d.ts +16 -0
- package/lib/display-types/donut/donut.module.d.ts.map +1 -0
- package/lib/display-types/donut/donut.specification.d.ts +3 -0
- package/lib/display-types/donut/donut.specification.d.ts.map +1 -0
- package/lib/display-types/donut/index.d.ts +5 -0
- package/lib/display-types/donut/index.d.ts.map +1 -0
- package/lib/display-types/donut/models/donut.model.d.ts +14 -0
- package/lib/display-types/donut/models/donut.model.d.ts.map +1 -0
- package/lib/display-types/donut/models/index.d.ts +2 -0
- package/lib/display-types/{bar-chart → donut}/models/index.d.ts.map +1 -1
- package/lib/display-types/gauge/components/gauge-configuration/gauge-configuration.component.d.ts +29 -0
- package/lib/display-types/gauge/components/gauge-configuration/gauge-configuration.component.d.ts.map +1 -0
- package/lib/display-types/gauge/components/gauge-configuration/index.d.ts +2 -0
- package/lib/display-types/gauge/components/gauge-configuration/index.d.ts.map +1 -0
- package/lib/display-types/gauge/components/gauge-display/gauge-display.component.d.ts +24 -0
- package/lib/display-types/gauge/components/gauge-display/gauge-display.component.d.ts.map +1 -0
- package/lib/display-types/gauge/components/gauge-display/index.d.ts +2 -0
- package/lib/display-types/gauge/components/gauge-display/index.d.ts.map +1 -0
- package/lib/display-types/gauge/components/index.d.ts +3 -0
- package/lib/display-types/gauge/components/index.d.ts.map +1 -0
- package/lib/display-types/gauge/gauge.module.d.ts +14 -0
- package/lib/display-types/gauge/gauge.module.d.ts.map +1 -0
- package/lib/display-types/gauge/gauge.specification.d.ts +3 -0
- package/lib/display-types/gauge/gauge.specification.d.ts.map +1 -0
- package/lib/display-types/gauge/index.d.ts +5 -0
- package/lib/display-types/gauge/index.d.ts.map +1 -0
- package/lib/display-types/gauge/models/gauge.model.d.ts +11 -0
- package/lib/display-types/gauge/models/gauge.model.d.ts.map +1 -0
- package/lib/display-types/gauge/models/index.d.ts +2 -0
- package/lib/display-types/{bar-chart/components → gauge/models}/index.d.ts.map +1 -1
- package/lib/display-types/index.d.ts +2 -1
- package/lib/display-types/index.d.ts.map +1 -1
- package/lib/display-types/meter/components/index.d.ts +1 -0
- package/lib/display-types/meter/components/index.d.ts.map +1 -1
- package/lib/display-types/meter/components/meter-configuration/index.d.ts +2 -0
- package/lib/display-types/meter/components/meter-configuration/index.d.ts.map +1 -0
- package/lib/display-types/meter/components/meter-configuration/meter-configuration.component.d.ts +26 -0
- package/lib/display-types/meter/components/meter-configuration/meter-configuration.component.d.ts.map +1 -0
- package/lib/display-types/meter/components/meter-display/meter-display.component.d.ts +11 -3
- package/lib/display-types/meter/components/meter-display/meter-display.component.d.ts.map +1 -1
- package/lib/display-types/meter/index.d.ts +1 -1
- package/lib/display-types/meter/index.d.ts.map +1 -1
- package/lib/display-types/meter/meter.module.d.ts +9 -2
- package/lib/display-types/meter/meter.module.d.ts.map +1 -1
- package/lib/display-types/meter/meter.specification.d.ts.map +1 -1
- package/lib/display-types/meter/models/meter.model.d.ts +7 -2
- package/lib/display-types/meter/models/meter.model.d.ts.map +1 -1
- package/lib/models/configuration.model.d.ts +2 -2
- package/lib/models/configuration.model.d.ts.map +1 -1
- package/lib/models/data-source.model.d.ts +14 -1
- package/lib/models/data-source.model.d.ts.map +1 -1
- package/lib/services/widget-layout.service.d.ts +13 -18
- package/lib/services/widget-layout.service.d.ts.map +1 -1
- package/package.json +10 -6
- package/esm2022/lib/data-sources/test/components/index.mjs +0 -17
- package/esm2022/lib/data-sources/test/components/test-configuration/index.mjs +0 -17
- package/esm2022/lib/data-sources/test/components/test-configuration/test-configuration.component.mjs +0 -80
- package/esm2022/lib/data-sources/test/index.mjs +0 -20
- package/esm2022/lib/data-sources/test/models/index.mjs +0 -17
- package/esm2022/lib/data-sources/test/models/test.model.mjs +0 -17
- package/esm2022/lib/data-sources/test/test.module.mjs +0 -39
- package/esm2022/lib/data-sources/test/test.specification.mjs +0 -44
- package/esm2022/lib/display-types/bar-chart/bar-chart.module.mjs +0 -36
- package/esm2022/lib/display-types/bar-chart/bar-chart.specification.mjs +0 -35
- package/esm2022/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.mjs +0 -32
- package/esm2022/lib/display-types/bar-chart/components/bar-chart-display/index.mjs +0 -17
- package/esm2022/lib/display-types/bar-chart/components/index.mjs +0 -17
- package/esm2022/lib/display-types/bar-chart/models/bar-chart.model.mjs +0 -17
- package/esm2022/lib/display-types/bar-chart/models/index.mjs +0 -17
- package/lib/data-sources/test/components/index.d.ts +0 -2
- package/lib/data-sources/test/components/test-configuration/index.d.ts +0 -2
- package/lib/data-sources/test/components/test-configuration/test-configuration.component.d.ts +0 -26
- package/lib/data-sources/test/components/test-configuration/test-configuration.component.d.ts.map +0 -1
- package/lib/data-sources/test/index.d.ts +0 -5
- package/lib/data-sources/test/index.d.ts.map +0 -1
- package/lib/data-sources/test/models/index.d.ts +0 -2
- package/lib/data-sources/test/models/test.model.d.ts +0 -6
- package/lib/data-sources/test/models/test.model.d.ts.map +0 -1
- package/lib/data-sources/test/test.module.d.ts +0 -12
- package/lib/data-sources/test/test.module.d.ts.map +0 -1
- package/lib/data-sources/test/test.specification.d.ts +0 -3
- package/lib/data-sources/test/test.specification.d.ts.map +0 -1
- package/lib/display-types/bar-chart/bar-chart.module.d.ts +0 -9
- package/lib/display-types/bar-chart/bar-chart.module.d.ts.map +0 -1
- package/lib/display-types/bar-chart/bar-chart.specification.d.ts +0 -3
- package/lib/display-types/bar-chart/bar-chart.specification.d.ts.map +0 -1
- package/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.d.ts +0 -11
- package/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.d.ts.map +0 -1
- package/lib/display-types/bar-chart/components/bar-chart-display/index.d.ts +0 -2
- package/lib/display-types/bar-chart/components/index.d.ts +0 -2
- package/lib/display-types/bar-chart/index.d.ts +0 -5
- package/lib/display-types/bar-chart/index.d.ts.map +0 -1
- package/lib/display-types/bar-chart/models/bar-chart.model.d.ts +0 -8
- package/lib/display-types/bar-chart/models/bar-chart.model.d.ts.map +0 -1
- package/lib/display-types/bar-chart/models/index.d.ts +0 -2
|
@@ -1,33 +1,37 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, ViewChild, InjectionToken, Injectable, Inject, ViewContainerRef, ViewChildren, Input, ViewEncapsulation, NgModule, Pipe, EventEmitter, ChangeDetectionStrategy, Output } from '@angular/core';
|
|
3
3
|
import moment from 'moment';
|
|
4
|
-
import { BehaviorSubject, filter,
|
|
5
|
-
import { take, map as map$1 } from 'rxjs/operators';
|
|
4
|
+
import { BehaviorSubject, filter, map, Subject, Subscription, combineLatest, debounceTime, tap, startWith, distinctUntilChanged } from 'rxjs';
|
|
5
|
+
import { take, map as map$1, delay } from 'rxjs/operators';
|
|
6
6
|
import * as i1 from '@valtimo/task';
|
|
7
7
|
import { TaskModule } from '@valtimo/task';
|
|
8
8
|
import * as i2 from '@angular/router';
|
|
9
9
|
import { RouterModule } from '@angular/router';
|
|
10
10
|
import * as i3 from '@angular/common';
|
|
11
11
|
import { CommonModule } from '@angular/common';
|
|
12
|
-
import * as
|
|
13
|
-
import { WidgetModule, ListModule, BpmnJsDiagramModule, AlertModule, SpinnerModule, CarbonListModule, CarbonMultiInputModule } from '@valtimo/components';
|
|
14
|
-
import * as
|
|
12
|
+
import * as i1$1 from '@valtimo/components';
|
|
13
|
+
import { WidgetModule, ListModule, BpmnJsDiagramModule, AlertModule, SpinnerModule, CarbonListModule, CarbonMultiInputModule, InputModule as InputModule$1 } from '@valtimo/components';
|
|
14
|
+
import * as i3$1 from '@ngx-translate/core';
|
|
15
15
|
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
16
|
-
import
|
|
16
|
+
import Muuri from 'muuri';
|
|
17
17
|
import * as i1$2 from '@angular/common/http';
|
|
18
18
|
import { HttpClient } from '@angular/common/http';
|
|
19
19
|
import * as i2$1 from '@valtimo/config';
|
|
20
20
|
import { ROLE_USER } from '@valtimo/config';
|
|
21
|
-
import * as
|
|
22
|
-
import { TabsModule, ThemeModule, LoadingModule, InputModule, DropdownModule, CheckboxModule } from 'carbon-components-angular';
|
|
21
|
+
import * as i5 from 'carbon-components-angular';
|
|
22
|
+
import { TabsModule, ThemeModule, LoadingModule, InputModule, DropdownModule, ButtonModule, TilesModule, LayerModule, IconModule, CheckboxModule } from 'carbon-components-angular';
|
|
23
23
|
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
|
24
24
|
import { AuthGuardService } from '@valtimo/security';
|
|
25
25
|
import * as i1$3 from '@angular/forms';
|
|
26
26
|
import { Validators, ReactiveFormsModule } from '@angular/forms';
|
|
27
27
|
import * as i2$2 from '@valtimo/document';
|
|
28
|
+
import { isEqual } from 'lodash';
|
|
29
|
+
import { Add16, TrashCan16 } from '@carbon/icons';
|
|
30
|
+
import * as i3$2 from '@carbon/charts-angular';
|
|
31
|
+
import { ChartsModule } from '@carbon/charts-angular';
|
|
28
32
|
|
|
29
33
|
/*
|
|
30
|
-
* Copyright 2015-
|
|
34
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
31
35
|
*
|
|
32
36
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
33
37
|
* you may not use this file except in compliance with the License.
|
|
@@ -90,19 +94,19 @@ class DashboardComponent {
|
|
|
90
94
|
}
|
|
91
95
|
});
|
|
92
96
|
}
|
|
93
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.TaskService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
98
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DashboardComponent, selector: "valtimo-dashboard", viewQueries: [{ propertyName: "taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$1.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i1$1.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i1.TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: ["formSubmit", "assignmentOfTaskChanged"] }, { kind: "component", type: i1$1.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
|
|
95
99
|
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
97
101
|
type: Component,
|
|
98
|
-
args: [{ selector: 'valtimo-dashboard', template: "<!--\n ~ Copyright 2015-
|
|
99
|
-
}], ctorParameters:
|
|
102
|
+
args: [{ selector: 'valtimo-dashboard', template: "<!--\n ~ Copyright 2015-2024 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" }]
|
|
103
|
+
}], ctorParameters: () => [{ type: i1.TaskService }, { type: i2.ActivatedRoute }], propDecorators: { taskDetail: [{
|
|
100
104
|
type: ViewChild,
|
|
101
105
|
args: ['taskDetail']
|
|
102
106
|
}] } });
|
|
103
107
|
|
|
104
108
|
/*
|
|
105
|
-
* Copyright 2015-
|
|
109
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
106
110
|
*
|
|
107
111
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
108
112
|
* you may not use this file except in compliance with the License.
|
|
@@ -119,10 +123,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
119
123
|
const DATA_FEATURES = {
|
|
120
124
|
NUMBER: 'number',
|
|
121
125
|
TOTAL: 'total',
|
|
126
|
+
NUMBERS: 'numbers',
|
|
122
127
|
};
|
|
123
128
|
|
|
124
129
|
/*
|
|
125
|
-
* Copyright 2015-
|
|
130
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
126
131
|
*
|
|
127
132
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
128
133
|
* you may not use this file except in compliance with the License.
|
|
@@ -140,7 +145,7 @@ const DISPLAY_TYPE_TOKEN = new InjectionToken('Supported display types');
|
|
|
140
145
|
const DATA_SOURCE_TOKEN = new InjectionToken('Supported data sources');
|
|
141
146
|
|
|
142
147
|
/*
|
|
143
|
-
* Copyright 2015-
|
|
148
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
144
149
|
*
|
|
145
150
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
146
151
|
* you may not use this file except in compliance with the License.
|
|
@@ -158,7 +163,7 @@ const WIDGET_1X_HEIGHT = 220;
|
|
|
158
163
|
const WIDGET_1X_MIN_WIDTH = 275;
|
|
159
164
|
|
|
160
165
|
/*
|
|
161
|
-
* Copyright 2015-
|
|
166
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
162
167
|
*
|
|
163
168
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
164
169
|
* you may not use this file except in compliance with the License.
|
|
@@ -174,65 +179,7 @@ const WIDGET_1X_MIN_WIDTH = 275;
|
|
|
174
179
|
*/
|
|
175
180
|
|
|
176
181
|
/*
|
|
177
|
-
* Copyright 2015-
|
|
178
|
-
*
|
|
179
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
180
|
-
* you may not use this file except in compliance with the License.
|
|
181
|
-
* You may obtain a copy of the License at
|
|
182
|
-
*
|
|
183
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
184
|
-
*
|
|
185
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
186
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
187
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
188
|
-
* See the License for the specific language governing permissions and
|
|
189
|
-
* limitations under the License.
|
|
190
|
-
*/
|
|
191
|
-
class WidgetService {
|
|
192
|
-
get supportedDisplayTypes$() {
|
|
193
|
-
return this._supportedDisplayTypes$.pipe(filter(specifications => !!specifications));
|
|
194
|
-
}
|
|
195
|
-
get supportedDataSources$() {
|
|
196
|
-
return this._supportedDataSources$.pipe(filter(specifications => !!specifications));
|
|
197
|
-
}
|
|
198
|
-
get supportedDisplayTypes() {
|
|
199
|
-
return this._supportedDisplayTypes$.getValue() || [];
|
|
200
|
-
}
|
|
201
|
-
get supportedDataSources() {
|
|
202
|
-
return this._supportedDataSources$.getValue() || [];
|
|
203
|
-
}
|
|
204
|
-
constructor(supportedDisplayTypesFromToken, supportedDataSourcesFromToken) {
|
|
205
|
-
this.supportedDisplayTypesFromToken = supportedDisplayTypesFromToken;
|
|
206
|
-
this.supportedDataSourcesFromToken = supportedDataSourcesFromToken;
|
|
207
|
-
this._supportedDisplayTypes$ = new BehaviorSubject(null);
|
|
208
|
-
this._supportedDataSources$ = new BehaviorSubject(null);
|
|
209
|
-
this.setSupportedDisplayTypes(supportedDisplayTypesFromToken);
|
|
210
|
-
this.setSupportedDataSources(supportedDataSourcesFromToken);
|
|
211
|
-
}
|
|
212
|
-
setSupportedDisplayTypes(supportedDisplayTypes) {
|
|
213
|
-
this._supportedDisplayTypes$.next(supportedDisplayTypes.filter(displayType => !!displayType));
|
|
214
|
-
}
|
|
215
|
-
setSupportedDataSources(supportedDataSources) {
|
|
216
|
-
this._supportedDataSources$.next(supportedDataSources.filter(dataSource => !!dataSource));
|
|
217
|
-
}
|
|
218
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetService, deps: [{ token: DISPLAY_TYPE_TOKEN }, { token: DATA_SOURCE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
219
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetService, providedIn: 'root' }); }
|
|
220
|
-
}
|
|
221
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetService, decorators: [{
|
|
222
|
-
type: Injectable,
|
|
223
|
-
args: [{
|
|
224
|
-
providedIn: 'root',
|
|
225
|
-
}]
|
|
226
|
-
}], ctorParameters: function () { return [{ type: Array, decorators: [{
|
|
227
|
-
type: Inject,
|
|
228
|
-
args: [DISPLAY_TYPE_TOKEN]
|
|
229
|
-
}] }, { type: Array, decorators: [{
|
|
230
|
-
type: Inject,
|
|
231
|
-
args: [DATA_SOURCE_TOKEN]
|
|
232
|
-
}] }]; } });
|
|
233
|
-
|
|
234
|
-
/*
|
|
235
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
182
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
236
183
|
*
|
|
237
184
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
238
185
|
* you may not use this file except in compliance with the License.
|
|
@@ -247,34 +194,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
247
194
|
* limitations under the License.
|
|
248
195
|
*/
|
|
249
196
|
class WidgetLayoutService {
|
|
250
|
-
get
|
|
251
|
-
return this.
|
|
197
|
+
get muuri$() {
|
|
198
|
+
return this._muuriSubject$.pipe(filter(muuri => !!muuri));
|
|
199
|
+
}
|
|
200
|
+
get muuriSubject$() {
|
|
201
|
+
return this._muuriSubject$.asObservable();
|
|
252
202
|
}
|
|
253
203
|
get widgetContainerWidth$() {
|
|
254
204
|
return this._widgetContainerWidth$.asObservable().pipe(filter(width => !!width));
|
|
255
205
|
}
|
|
256
|
-
get
|
|
257
|
-
return
|
|
258
|
-
this.widgetService.supportedDisplayTypes$,
|
|
259
|
-
this._widgetConfigurations$,
|
|
260
|
-
]).pipe(map(([displayTypes, configurations]) => configurations.map(configuration => {
|
|
261
|
-
const specification = displayTypes.find(type => type.displayTypeKey === configuration.displayType);
|
|
262
|
-
return {
|
|
263
|
-
configurationKey: configuration.key,
|
|
264
|
-
width: specification.width,
|
|
265
|
-
height: specification.height,
|
|
266
|
-
};
|
|
267
|
-
})));
|
|
206
|
+
get amountOfColumns$() {
|
|
207
|
+
return this.widgetContainerWidth$.pipe(map(containerWidth => Math.floor(containerWidth / WIDGET_1X_MIN_WIDTH)));
|
|
268
208
|
}
|
|
269
|
-
constructor(
|
|
270
|
-
this.widgetService = widgetService;
|
|
209
|
+
constructor() {
|
|
271
210
|
this._widgetContainerWidth$ = new BehaviorSubject(null);
|
|
272
211
|
this._widgetConfigurations$ = new BehaviorSubject([]);
|
|
273
|
-
this.
|
|
274
|
-
this.
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
this._layoutSubscription?.unsubscribe();
|
|
212
|
+
this._muuriSubject$ = new BehaviorSubject(null);
|
|
213
|
+
this._triggerMuuriLayout$ = new Subject();
|
|
214
|
+
this._subscriptions = new Subscription();
|
|
215
|
+
this.openMuuriSubscription();
|
|
278
216
|
}
|
|
279
217
|
setWidgetContainerWidth(width) {
|
|
280
218
|
this._widgetContainerWidth$.next(width);
|
|
@@ -282,72 +220,29 @@ class WidgetLayoutService {
|
|
|
282
220
|
setWidgetConfigurations(configurations) {
|
|
283
221
|
this._widgetConfigurations$.next(configurations);
|
|
284
222
|
}
|
|
285
|
-
|
|
286
|
-
this.
|
|
287
|
-
this.widgetContainerWidth$,
|
|
288
|
-
this.widgetConfigurationBins$,
|
|
289
|
-
]).subscribe(([widgetContainerWidth, configurationBins]) => {
|
|
290
|
-
const amountOfMinWidthColumns = this.getAmountOfMinWidthColumns(widgetContainerWidth);
|
|
291
|
-
const widget1xWidth = this.getWidget1xWidth(widgetContainerWidth, amountOfMinWidthColumns);
|
|
292
|
-
const binsToFit = configurationBins.map(configurationBin => ({
|
|
293
|
-
...configurationBin,
|
|
294
|
-
width: configurationBin.width * widget1xWidth,
|
|
295
|
-
height: configurationBin.height * WIDGET_1X_HEIGHT,
|
|
296
|
-
}));
|
|
297
|
-
const heightConstraint = this.getHeightConstraint(configurationBins, amountOfMinWidthColumns);
|
|
298
|
-
const resultWithoutHeightConstraint = this.getPackResult(binsToFit, widgetContainerWidth);
|
|
299
|
-
const resultWithHeightConstraint = this.getPackResult(binsToFit, widgetContainerWidth, heightConstraint);
|
|
300
|
-
const resultWithHeightConstraintExceedsBoundary = this.checkIfPackResultExceedsBoundary(resultWithHeightConstraint, widgetContainerWidth);
|
|
301
|
-
const resultToUse = resultWithHeightConstraintExceedsBoundary
|
|
302
|
-
? resultWithoutHeightConstraint
|
|
303
|
-
: resultWithHeightConstraint;
|
|
304
|
-
const resultWithMaxWidth = this.getResultWithMaxWidth(resultToUse, widgetContainerWidth);
|
|
305
|
-
this._widgetPackResult$.next(resultWithMaxWidth);
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
getPackResult(binsToFit, maxWidth, maxHeight) {
|
|
309
|
-
return pack(binsToFit, {
|
|
310
|
-
maxWidth,
|
|
311
|
-
...(maxHeight && { maxHeight }),
|
|
312
|
-
});
|
|
313
|
-
}
|
|
314
|
-
checkIfPackResultExceedsBoundary(result, maxWidth) {
|
|
315
|
-
return !!result.items.find(item => item.width + item.x > maxWidth);
|
|
223
|
+
setMuuri(muuri) {
|
|
224
|
+
this._muuriSubject$.next(muuri);
|
|
316
225
|
}
|
|
317
|
-
|
|
318
|
-
|
|
226
|
+
triggerMuuriLayout() {
|
|
227
|
+
this._triggerMuuriLayout$.next(null);
|
|
319
228
|
}
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
items: result.items.map(item => ({
|
|
328
|
-
...item,
|
|
329
|
-
width: item.width > containerWidth ? containerWidth : item.width,
|
|
330
|
-
})),
|
|
331
|
-
};
|
|
229
|
+
openMuuriSubscription() {
|
|
230
|
+
this._subscriptions.add(combineLatest([this.muuri$, this._triggerMuuriLayout$])
|
|
231
|
+
.pipe(debounceTime(150))
|
|
232
|
+
.subscribe(([muuri]) => {
|
|
233
|
+
muuri.refreshItems();
|
|
234
|
+
muuri.layout();
|
|
235
|
+
}));
|
|
332
236
|
}
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
const minAmountOfRowsNeeded = Math.ceil(amountOfSpacesNeeded / amountOfMinWidthColumns);
|
|
336
|
-
const tallestWidgetHeightSpace = binsToFit.reduce((acc, curr) => (curr.height > acc ? curr.height : acc), 0);
|
|
337
|
-
const amountOfRowsNeeded = minAmountOfRowsNeeded < tallestWidgetHeightSpace
|
|
338
|
-
? tallestWidgetHeightSpace
|
|
339
|
-
: minAmountOfRowsNeeded;
|
|
340
|
-
return amountOfRowsNeeded * WIDGET_1X_HEIGHT;
|
|
341
|
-
}
|
|
342
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetLayoutService, deps: [{ token: WidgetService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
343
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetLayoutService }); }
|
|
237
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
238
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetLayoutService }); }
|
|
344
239
|
}
|
|
345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetLayoutService, decorators: [{
|
|
346
241
|
type: Injectable
|
|
347
|
-
}], ctorParameters:
|
|
242
|
+
}], ctorParameters: () => [] });
|
|
348
243
|
|
|
349
244
|
/*
|
|
350
|
-
* Copyright 2015-
|
|
245
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
351
246
|
*
|
|
352
247
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
353
248
|
* you may not use this file except in compliance with the License.
|
|
@@ -370,18 +265,76 @@ class DashboardService {
|
|
|
370
265
|
getDashboards() {
|
|
371
266
|
return this.http.get(`${this._endpointUri}v1/dashboard`);
|
|
372
267
|
}
|
|
373
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
374
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
268
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardService, deps: [{ token: i1$2.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
269
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardService, providedIn: 'root' }); }
|
|
270
|
+
}
|
|
271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardService, decorators: [{
|
|
272
|
+
type: Injectable,
|
|
273
|
+
args: [{
|
|
274
|
+
providedIn: 'root',
|
|
275
|
+
}]
|
|
276
|
+
}], ctorParameters: () => [{ type: i1$2.HttpClient }, { type: i2$1.ConfigService }] });
|
|
277
|
+
|
|
278
|
+
/*
|
|
279
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
280
|
+
*
|
|
281
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
282
|
+
* you may not use this file except in compliance with the License.
|
|
283
|
+
* You may obtain a copy of the License at
|
|
284
|
+
*
|
|
285
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
286
|
+
*
|
|
287
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
288
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
289
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
290
|
+
* See the License for the specific language governing permissions and
|
|
291
|
+
* limitations under the License.
|
|
292
|
+
*/
|
|
293
|
+
class WidgetService {
|
|
294
|
+
get supportedDisplayTypes$() {
|
|
295
|
+
return this._supportedDisplayTypes$.pipe(filter(specifications => !!specifications));
|
|
296
|
+
}
|
|
297
|
+
get supportedDataSources$() {
|
|
298
|
+
return this._supportedDataSources$.pipe(filter(specifications => !!specifications));
|
|
299
|
+
}
|
|
300
|
+
get supportedDisplayTypes() {
|
|
301
|
+
return this._supportedDisplayTypes$.getValue() || [];
|
|
302
|
+
}
|
|
303
|
+
get supportedDataSources() {
|
|
304
|
+
return this._supportedDataSources$.getValue() || [];
|
|
305
|
+
}
|
|
306
|
+
constructor(supportedDisplayTypesFromToken, supportedDataSourcesFromToken) {
|
|
307
|
+
this.supportedDisplayTypesFromToken = supportedDisplayTypesFromToken;
|
|
308
|
+
this.supportedDataSourcesFromToken = supportedDataSourcesFromToken;
|
|
309
|
+
this._supportedDisplayTypes$ = new BehaviorSubject(null);
|
|
310
|
+
this._supportedDataSources$ = new BehaviorSubject(null);
|
|
311
|
+
this.setSupportedDisplayTypes(supportedDisplayTypesFromToken);
|
|
312
|
+
this.setSupportedDataSources(supportedDataSourcesFromToken);
|
|
313
|
+
}
|
|
314
|
+
setSupportedDisplayTypes(supportedDisplayTypes) {
|
|
315
|
+
this._supportedDisplayTypes$.next(supportedDisplayTypes.filter(displayType => !!displayType));
|
|
316
|
+
}
|
|
317
|
+
setSupportedDataSources(supportedDataSources) {
|
|
318
|
+
this._supportedDataSources$.next(supportedDataSources.filter(dataSource => !!dataSource));
|
|
319
|
+
}
|
|
320
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetService, deps: [{ token: DISPLAY_TYPE_TOKEN }, { token: DATA_SOURCE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
321
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetService, providedIn: 'root' }); }
|
|
375
322
|
}
|
|
376
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
323
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetService, decorators: [{
|
|
377
324
|
type: Injectable,
|
|
378
325
|
args: [{
|
|
379
326
|
providedIn: 'root',
|
|
380
327
|
}]
|
|
381
|
-
}], ctorParameters:
|
|
328
|
+
}], ctorParameters: () => [{ type: Array, decorators: [{
|
|
329
|
+
type: Inject,
|
|
330
|
+
args: [DISPLAY_TYPE_TOKEN]
|
|
331
|
+
}] }, { type: Array, decorators: [{
|
|
332
|
+
type: Inject,
|
|
333
|
+
args: [DATA_SOURCE_TOKEN]
|
|
334
|
+
}] }] });
|
|
382
335
|
|
|
383
336
|
/*
|
|
384
|
-
* Copyright 2015-
|
|
337
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
385
338
|
*
|
|
386
339
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
387
340
|
* you may not use this file except in compliance with the License.
|
|
@@ -425,18 +378,18 @@ class WidgetTranslationService {
|
|
|
425
378
|
}
|
|
426
379
|
return translation || `${key}.${translateKey}`;
|
|
427
380
|
}
|
|
428
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
429
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
381
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTranslationService, deps: [{ token: i3$1.TranslateService }, { token: WidgetService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
382
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTranslationService, providedIn: 'root' }); }
|
|
430
383
|
}
|
|
431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
384
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTranslationService, decorators: [{
|
|
432
385
|
type: Injectable,
|
|
433
386
|
args: [{
|
|
434
387
|
providedIn: 'root',
|
|
435
388
|
}]
|
|
436
|
-
}], ctorParameters:
|
|
389
|
+
}], ctorParameters: () => [{ type: i3$1.TranslateService }, { type: WidgetService }] });
|
|
437
390
|
|
|
438
391
|
/*
|
|
439
|
-
* Copyright 2015-
|
|
392
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
440
393
|
*
|
|
441
394
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
442
395
|
* you may not use this file except in compliance with the License.
|
|
@@ -452,7 +405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
452
405
|
*/
|
|
453
406
|
|
|
454
407
|
/*
|
|
455
|
-
* Copyright 2015-
|
|
408
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
456
409
|
*
|
|
457
410
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
458
411
|
* you may not use this file except in compliance with the License.
|
|
@@ -468,27 +421,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
468
421
|
*/
|
|
469
422
|
class WidgetDashboardContentComponent {
|
|
470
423
|
set widgetData(value) {
|
|
471
|
-
this.
|
|
424
|
+
this._isLoading$.next(value.loading);
|
|
472
425
|
this._widgetData$.next(value.data);
|
|
473
426
|
}
|
|
474
427
|
set dashboard(value) {
|
|
475
428
|
this.setWidgetConfigurations(value);
|
|
476
429
|
}
|
|
430
|
+
get _muuriInitialized$() {
|
|
431
|
+
return this._muuri$.pipe(map$1(muuri => !!muuri));
|
|
432
|
+
}
|
|
477
433
|
constructor(layoutService, widgetService, renderer) {
|
|
478
434
|
this.layoutService = layoutService;
|
|
479
435
|
this.widgetService = widgetService;
|
|
480
436
|
this.renderer = renderer;
|
|
481
|
-
this.
|
|
437
|
+
this._isLoading$ = new BehaviorSubject(true);
|
|
482
438
|
this._widgetData$ = new BehaviorSubject([]);
|
|
483
439
|
this.widgetConfigurations$ = new BehaviorSubject(null);
|
|
484
440
|
this._subscriptions = new Subscription();
|
|
441
|
+
this._muuri$ = this.layoutService.muuriSubject$;
|
|
442
|
+
this._creatingMuuri = false;
|
|
443
|
+
this._noResults$ = new BehaviorSubject(false);
|
|
444
|
+
this.loaded$ = combineLatest([
|
|
445
|
+
this._isLoading$,
|
|
446
|
+
this._muuriInitialized$,
|
|
447
|
+
this._noResults$,
|
|
448
|
+
]).pipe(map$1(([isLoading, muuriInitialized, noResults]) => !isLoading && (muuriInitialized || noResults)), delay(400));
|
|
485
449
|
}
|
|
486
450
|
ngAfterViewInit() {
|
|
487
451
|
this._observer = new ResizeObserver(event => {
|
|
488
452
|
this.observerMutation(event);
|
|
489
453
|
});
|
|
490
454
|
this._observer.observe(this._widgetContainerRef.nativeElement);
|
|
491
|
-
this.
|
|
455
|
+
this.openWidgetSizeSubscription();
|
|
492
456
|
this.renderWidgets();
|
|
493
457
|
}
|
|
494
458
|
ngOnDestroy() {
|
|
@@ -508,17 +472,34 @@ class WidgetDashboardContentComponent {
|
|
|
508
472
|
this.layoutService.setWidgetContainerWidth(widgetContainerWidth);
|
|
509
473
|
}
|
|
510
474
|
}
|
|
511
|
-
|
|
512
|
-
this._subscriptions.add(
|
|
513
|
-
this.
|
|
475
|
+
openWidgetSizeSubscription() {
|
|
476
|
+
this._subscriptions.add(combineLatest([
|
|
477
|
+
this.layoutService.amountOfColumns$,
|
|
478
|
+
this.widgetConfigurations$,
|
|
479
|
+
this.widgetService.supportedDisplayTypes$,
|
|
480
|
+
this._muuri$,
|
|
481
|
+
]).subscribe(([amountOfColumns, widgetConfigurations, supportedDisplayTypes, muuri]) => {
|
|
514
482
|
this._widgetConfigurationRefs.toArray().forEach(widgetConfigurationRef => {
|
|
515
483
|
const nativeElement = widgetConfigurationRef.nativeElement;
|
|
516
|
-
const
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
484
|
+
const widgetConfiguration = widgetConfigurations.find(config => config.key === nativeElement.id);
|
|
485
|
+
const specification = supportedDisplayTypes.find(type => type.displayTypeKey === widgetConfiguration.displayType);
|
|
486
|
+
const widthPercentage = specification.width > amountOfColumns
|
|
487
|
+
? 100
|
|
488
|
+
: (specification.width / amountOfColumns) * 100;
|
|
489
|
+
this.renderer.setStyle(nativeElement, 'height', `${WIDGET_1X_HEIGHT * specification.height}px`);
|
|
490
|
+
this.renderer.setStyle(nativeElement, 'width', `${widthPercentage}%`);
|
|
521
491
|
});
|
|
492
|
+
if (widgetConfigurations.length > 0) {
|
|
493
|
+
if (!muuri) {
|
|
494
|
+
this.initMuuri();
|
|
495
|
+
}
|
|
496
|
+
else {
|
|
497
|
+
this.layoutService.triggerMuuriLayout();
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
this._noResults$.next(true);
|
|
502
|
+
}
|
|
522
503
|
}));
|
|
523
504
|
}
|
|
524
505
|
renderWidgets() {
|
|
@@ -542,13 +523,25 @@ class WidgetDashboardContentComponent {
|
|
|
542
523
|
});
|
|
543
524
|
}));
|
|
544
525
|
}
|
|
545
|
-
|
|
546
|
-
|
|
526
|
+
initMuuri() {
|
|
527
|
+
if (!this._widgetContainerRef || this._creatingMuuri)
|
|
528
|
+
return;
|
|
529
|
+
this._creatingMuuri = true;
|
|
530
|
+
this.layoutService.setMuuri(new Muuri(this._widgetContainerRef.nativeElement, {
|
|
531
|
+
layout: {
|
|
532
|
+
fillGaps: true,
|
|
533
|
+
},
|
|
534
|
+
layoutOnResize: false,
|
|
535
|
+
}));
|
|
536
|
+
this._creatingMuuri = false;
|
|
537
|
+
}
|
|
538
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetDashboardContentComponent, deps: [{ token: WidgetLayoutService }, { token: WidgetService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
539
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: WidgetDashboardContentComponent, selector: "valtimo-widget-dashboard-content", inputs: { widgetData: "widgetData", dashboard: "dashboard" }, providers: [WidgetLayoutService], viewQueries: [{ propertyName: "_widgetContainerRef", first: true, predicate: ["widgetContainer"], descendants: true }, { propertyName: "_widgetConfigurationRefs", predicate: ["widgetConfiguration"], descendants: true }, { propertyName: "_widgetConfigurationContentVcRefs", predicate: ["widgetConfigurationContent"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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<ng-container *ngIf=\"{loaded: loaded$ | async} as obs\">\n <div *ngIf=\"!obs.loaded\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-container>\n\n<div\n #widgetContainer\n class=\"widget-container\"\n [ngClass]=\"{'widget-container__visible': loaded$ | async}\"\n>\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 [description]=\"'dashboard.noWidgetsDescription' | translate\"\n illustration=\"valtimo-layout/img/no-widgets.svg\"\n ></valtimo-no-results>\n </ng-container>\n</div>\n", styles: [":host{position:relative}.widget-container{margin-top:16px;width:calc(100% + 16px);margin-left:-8px;position:relative;visibility:hidden}.widget-container__visible{visibility:visible}.widget-configuration{position:absolute;display:flex;justify-content:center;align-items:center}.widget-configuration-content{width:calc(100% - 16px);height:calc(100% - 16px);background-color:#fff}.loading-container{padding-top:32px;position:absolute;top:0;display:flex;width:100%;justify-content:center}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i1$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }] }); }
|
|
547
540
|
}
|
|
548
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
541
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetDashboardContentComponent, decorators: [{
|
|
549
542
|
type: Component,
|
|
550
|
-
args: [{ selector: 'valtimo-widget-dashboard-content', providers: [WidgetLayoutService], template: "<!--\n ~ Copyright 2015-
|
|
551
|
-
}], ctorParameters:
|
|
543
|
+
args: [{ selector: 'valtimo-widget-dashboard-content', providers: [WidgetLayoutService], template: "<!--\n ~ Copyright 2015-2024 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<ng-container *ngIf=\"{loaded: loaded$ | async} as obs\">\n <div *ngIf=\"!obs.loaded\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-container>\n\n<div\n #widgetContainer\n class=\"widget-container\"\n [ngClass]=\"{'widget-container__visible': loaded$ | async}\"\n>\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 [description]=\"'dashboard.noWidgetsDescription' | translate\"\n illustration=\"valtimo-layout/img/no-widgets.svg\"\n ></valtimo-no-results>\n </ng-container>\n</div>\n", styles: [":host{position:relative}.widget-container{margin-top:16px;width:calc(100% + 16px);margin-left:-8px;position:relative;visibility:hidden}.widget-container__visible{visibility:visible}.widget-configuration{position:absolute;display:flex;justify-content:center;align-items:center}.widget-configuration-content{width:calc(100% - 16px);height:calc(100% - 16px);background-color:#fff}.loading-container{padding-top:32px;position:absolute;top:0;display:flex;width:100%;justify-content:center}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
544
|
+
}], ctorParameters: () => [{ type: WidgetLayoutService }, { type: WidgetService }, { type: i0.Renderer2 }], propDecorators: { _widgetConfigurationRefs: [{
|
|
552
545
|
type: ViewChildren,
|
|
553
546
|
args: ['widgetConfiguration']
|
|
554
547
|
}], _widgetConfigurationContentVcRefs: [{
|
|
@@ -564,7 +557,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
564
557
|
}] } });
|
|
565
558
|
|
|
566
559
|
/*
|
|
567
|
-
* Copyright 2015-
|
|
560
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
568
561
|
*
|
|
569
562
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
570
563
|
* you may not use this file except in compliance with the License.
|
|
@@ -587,18 +580,18 @@ class WidgetApiService {
|
|
|
587
580
|
getWidgetData(dashboardKey) {
|
|
588
581
|
return this.http.get(`${this._endpointUri}/${dashboardKey}/data`);
|
|
589
582
|
}
|
|
590
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
591
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
583
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetApiService, deps: [{ token: i2$1.ConfigService }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
584
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetApiService, providedIn: 'root' }); }
|
|
592
585
|
}
|
|
593
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
586
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetApiService, decorators: [{
|
|
594
587
|
type: Injectable,
|
|
595
588
|
args: [{
|
|
596
589
|
providedIn: 'root',
|
|
597
590
|
}]
|
|
598
|
-
}], ctorParameters:
|
|
591
|
+
}], ctorParameters: () => [{ type: i2$1.ConfigService }, { type: i1$2.HttpClient }] });
|
|
599
592
|
|
|
600
593
|
/*
|
|
601
|
-
* Copyright 2015-
|
|
594
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
602
595
|
*
|
|
603
596
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
604
597
|
* you may not use this file except in compliance with the License.
|
|
@@ -625,28 +618,28 @@ class WidgetDashboardComponent {
|
|
|
625
618
|
data: [],
|
|
626
619
|
loading: true,
|
|
627
620
|
});
|
|
621
|
+
this.selectedDashboardKey$ = new BehaviorSubject('');
|
|
628
622
|
}
|
|
629
623
|
onTabSelected(dashboardKey) {
|
|
624
|
+
this.selectedDashboardKey$.next(dashboardKey);
|
|
625
|
+
this.activeWidgetData$.next({ data: [], loading: true });
|
|
630
626
|
this.widgetApiService
|
|
631
627
|
.getWidgetData(dashboardKey)
|
|
632
|
-
.pipe(tap(() => {
|
|
633
|
-
this.activeWidgetData$.next({ data: [], loading: true });
|
|
634
|
-
}), take$1(1))
|
|
635
628
|
.subscribe((data) => this.activeWidgetData$.next({ data, loading: false }));
|
|
636
629
|
}
|
|
637
630
|
trackByIndex(index) {
|
|
638
631
|
return index;
|
|
639
632
|
}
|
|
640
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
641
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
633
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetDashboardComponent, deps: [{ token: DashboardService }, { token: WidgetApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
634
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: WidgetDashboardComponent, selector: "valtimo-widget-dashboard", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 [description]=\"'dashboard.noDashboardsDescription' | translate\"\n illustration=\"valtimo-layout/img/no-dashboards.svg\"\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 *ngIf=\"(selectedDashboardKey$ | async) === dashboard.key\"\n [dashboard]=\"dashboard\"\n [widgetData]=\"activeWidgetData$ | async\"\n ></valtimo-widget-dashboard-content>\n </cds-tab>\n </cds-tabs>\n </div>\n</div>\n", styles: [".dashboards-container .cds--tab-content{outline:0;padding:0}.dashboards-container .valtimo-no-results,.widget-container .valtimo-no-results{flex-wrap:wrap;align-items:flex-start;align-content:center;flex-direction:column;gap:16px!important}.dashboards-container .valtimo-no-results__content,.widget-container .valtimo-no-results__content{gap:16px!important;max-width:500px;line-height:20px}.dashboards-container .valtimo-no-results img,.widget-container .valtimo-no-results img{padding-left:0!important}.dashboards-container .valtimo-no-results span,.dashboards-container .valtimo-no-results h4,.widget-container .valtimo-no-results span,.widget-container .valtimo-no-results h4{width:100%!important}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i5.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: i1$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "component", type: WidgetDashboardContentComponent, selector: "valtimo-widget-dashboard-content", inputs: ["widgetData", "dashboard"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
642
635
|
}
|
|
643
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
636
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetDashboardComponent, decorators: [{
|
|
644
637
|
type: Component,
|
|
645
|
-
args: [{ selector: 'valtimo-widget-dashboard', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-
|
|
646
|
-
}], ctorParameters:
|
|
638
|
+
args: [{ selector: 'valtimo-widget-dashboard', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 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 [description]=\"'dashboard.noDashboardsDescription' | translate\"\n illustration=\"valtimo-layout/img/no-dashboards.svg\"\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 *ngIf=\"(selectedDashboardKey$ | async) === dashboard.key\"\n [dashboard]=\"dashboard\"\n [widgetData]=\"activeWidgetData$ | async\"\n ></valtimo-widget-dashboard-content>\n </cds-tab>\n </cds-tabs>\n </div>\n</div>\n", styles: [".dashboards-container .cds--tab-content{outline:0;padding:0}.dashboards-container .valtimo-no-results,.widget-container .valtimo-no-results{flex-wrap:wrap;align-items:flex-start;align-content:center;flex-direction:column;gap:16px!important}.dashboards-container .valtimo-no-results__content,.widget-container .valtimo-no-results__content{gap:16px!important;max-width:500px;line-height:20px}.dashboards-container .valtimo-no-results img,.widget-container .valtimo-no-results img{padding-left:0!important}.dashboards-container .valtimo-no-results span,.dashboards-container .valtimo-no-results h4,.widget-container .valtimo-no-results span,.widget-container .valtimo-no-results h4{width:100%!important}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
639
|
+
}], ctorParameters: () => [{ type: DashboardService }, { type: WidgetApiService }] });
|
|
647
640
|
|
|
648
641
|
/*
|
|
649
|
-
* Copyright 2015-
|
|
642
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
650
643
|
*
|
|
651
644
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
652
645
|
* you may not use this file except in compliance with the License.
|
|
@@ -669,11 +662,11 @@ const routes = [
|
|
|
669
662
|
},
|
|
670
663
|
];
|
|
671
664
|
class DashboardRoutingModule {
|
|
672
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
673
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
674
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
665
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
666
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: DashboardRoutingModule, imports: [CommonModule, i2.RouterModule], exports: [RouterModule] }); }
|
|
667
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
675
668
|
}
|
|
676
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
669
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardRoutingModule, decorators: [{
|
|
677
670
|
type: NgModule,
|
|
678
671
|
args: [{
|
|
679
672
|
declarations: [],
|
|
@@ -683,7 +676,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
683
676
|
}] });
|
|
684
677
|
|
|
685
678
|
/*
|
|
686
|
-
* Copyright 2015-
|
|
679
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
687
680
|
*
|
|
688
681
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
689
682
|
* you may not use this file except in compliance with the License.
|
|
@@ -704,18 +697,18 @@ class WidgetTranslatePipe {
|
|
|
704
697
|
transform(translateKey, key) {
|
|
705
698
|
return this.widgetTranslationService.translate(translateKey, key);
|
|
706
699
|
}
|
|
707
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
708
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
700
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTranslatePipe, deps: [{ token: WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
701
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: WidgetTranslatePipe, name: "widgetTranslate" }); }
|
|
709
702
|
}
|
|
710
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
703
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTranslatePipe, decorators: [{
|
|
711
704
|
type: Pipe,
|
|
712
705
|
args: [{
|
|
713
706
|
name: 'widgetTranslate',
|
|
714
707
|
}]
|
|
715
|
-
}], ctorParameters:
|
|
708
|
+
}], ctorParameters: () => [{ type: WidgetTranslationService }] });
|
|
716
709
|
|
|
717
710
|
/*
|
|
718
|
-
* Copyright 2015-
|
|
711
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
719
712
|
*
|
|
720
713
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
721
714
|
* you may not use this file except in compliance with the License.
|
|
@@ -730,11 +723,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
730
723
|
* limitations under the License.
|
|
731
724
|
*/
|
|
732
725
|
class WidgetTranslatePipeModule {
|
|
733
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
734
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
735
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
726
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTranslatePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
727
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: WidgetTranslatePipeModule, declarations: [WidgetTranslatePipe], imports: [TranslateModule], exports: [WidgetTranslatePipe] }); }
|
|
728
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTranslatePipeModule, imports: [TranslateModule] }); }
|
|
736
729
|
}
|
|
737
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
730
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTranslatePipeModule, decorators: [{
|
|
738
731
|
type: NgModule,
|
|
739
732
|
args: [{
|
|
740
733
|
imports: [TranslateModule],
|
|
@@ -744,7 +737,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
744
737
|
}] });
|
|
745
738
|
|
|
746
739
|
/*
|
|
747
|
-
* Copyright 2015-
|
|
740
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
748
741
|
*
|
|
749
742
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
750
743
|
* you may not use this file except in compliance with the License.
|
|
@@ -760,7 +753,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
760
753
|
*/
|
|
761
754
|
|
|
762
755
|
/*
|
|
763
|
-
* Copyright 2015-
|
|
756
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
764
757
|
*
|
|
765
758
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
766
759
|
* you may not use this file except in compliance with the License.
|
|
@@ -776,7 +769,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
776
769
|
*/
|
|
777
770
|
|
|
778
771
|
/*
|
|
779
|
-
* Copyright 2015-
|
|
772
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
780
773
|
*
|
|
781
774
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
782
775
|
* you may not use this file except in compliance with the License.
|
|
@@ -795,12 +788,12 @@ function HttpLoaderFactory(httpClient) {
|
|
|
795
788
|
return new TranslateHttpLoader(httpClient);
|
|
796
789
|
}
|
|
797
790
|
class DashboardModule {
|
|
798
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
799
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
791
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
792
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: DashboardModule, declarations: [DashboardComponent, WidgetDashboardComponent, WidgetDashboardContentComponent], imports: [CommonModule,
|
|
800
793
|
DashboardRoutingModule,
|
|
801
794
|
WidgetModule,
|
|
802
795
|
ListModule,
|
|
803
|
-
BpmnJsDiagramModule,
|
|
796
|
+
BpmnJsDiagramModule, i3$1.TranslateModule, AlertModule,
|
|
804
797
|
TaskModule,
|
|
805
798
|
SpinnerModule,
|
|
806
799
|
TabsModule,
|
|
@@ -808,7 +801,7 @@ class DashboardModule {
|
|
|
808
801
|
WidgetTranslatePipeModule,
|
|
809
802
|
LoadingModule,
|
|
810
803
|
CarbonListModule], exports: [DashboardComponent, WidgetDashboardComponent] }); }
|
|
811
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
804
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardModule, providers: [
|
|
812
805
|
{ provide: DISPLAY_TYPE_TOKEN, useValue: null, multi: true },
|
|
813
806
|
{ provide: DATA_SOURCE_TOKEN, useValue: null, multi: true },
|
|
814
807
|
], imports: [CommonModule,
|
|
@@ -832,7 +825,7 @@ class DashboardModule {
|
|
|
832
825
|
LoadingModule,
|
|
833
826
|
CarbonListModule] }); }
|
|
834
827
|
}
|
|
835
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
828
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardModule, decorators: [{
|
|
836
829
|
type: NgModule,
|
|
837
830
|
args: [{
|
|
838
831
|
declarations: [DashboardComponent, WidgetDashboardComponent, WidgetDashboardContentComponent],
|
|
@@ -867,95 +860,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
867
860
|
}] });
|
|
868
861
|
|
|
869
862
|
/*
|
|
870
|
-
* Copyright 2015-
|
|
871
|
-
*
|
|
872
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
873
|
-
* you may not use this file except in compliance with the License.
|
|
874
|
-
* You may obtain a copy of the License at
|
|
875
|
-
*
|
|
876
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
877
|
-
*
|
|
878
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
879
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
880
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
881
|
-
* See the License for the specific language governing permissions and
|
|
882
|
-
* limitations under the License.
|
|
883
|
-
*/
|
|
884
|
-
class TestConfigurationComponent {
|
|
885
|
-
set disabled(disabledValue) {
|
|
886
|
-
if (disabledValue) {
|
|
887
|
-
this.form.disable();
|
|
888
|
-
}
|
|
889
|
-
else {
|
|
890
|
-
this.form.enable();
|
|
891
|
-
}
|
|
892
|
-
}
|
|
893
|
-
get value() {
|
|
894
|
-
return this.form.get('value');
|
|
895
|
-
}
|
|
896
|
-
get total() {
|
|
897
|
-
return this.form.get('total');
|
|
898
|
-
}
|
|
899
|
-
set prefillConfiguration(configurationValue) {
|
|
900
|
-
if (configurationValue) {
|
|
901
|
-
this.value.setValue(configurationValue.value);
|
|
902
|
-
this.total.setValue(configurationValue.total);
|
|
903
|
-
}
|
|
904
|
-
}
|
|
905
|
-
constructor(fb) {
|
|
906
|
-
this.fb = fb;
|
|
907
|
-
this.form = this.fb.group({
|
|
908
|
-
value: this.fb.control(null, [Validators.required]),
|
|
909
|
-
total: this.fb.control(null, [Validators.required]),
|
|
910
|
-
});
|
|
911
|
-
this.configurationEvent = new EventEmitter();
|
|
912
|
-
this._subscriptions = new Subscription();
|
|
913
|
-
}
|
|
914
|
-
ngOnInit() {
|
|
915
|
-
this.openFormSubscription();
|
|
916
|
-
}
|
|
917
|
-
ngOnDestroy() {
|
|
918
|
-
this._subscriptions.unsubscribe();
|
|
919
|
-
}
|
|
920
|
-
openFormSubscription() {
|
|
921
|
-
this._subscriptions.add(this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {
|
|
922
|
-
this.configurationEvent.emit({ valid: this.form.valid, data: formValue });
|
|
923
|
-
}));
|
|
924
|
-
}
|
|
925
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TestConfigurationComponent, deps: [{ token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
926
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TestConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\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", styles: ["/*!\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"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4$1.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i4$1.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
927
|
-
}
|
|
928
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TestConfigurationComponent, decorators: [{
|
|
929
|
-
type: Component,
|
|
930
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\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", styles: ["/*!\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"] }]
|
|
931
|
-
}], ctorParameters: function () { return [{ type: i1$3.FormBuilder }]; }, propDecorators: { dataSourceKey: [{
|
|
932
|
-
type: Input
|
|
933
|
-
}], disabled: [{
|
|
934
|
-
type: Input
|
|
935
|
-
}], prefillConfiguration: [{
|
|
936
|
-
type: Input
|
|
937
|
-
}], configurationEvent: [{
|
|
938
|
-
type: Output
|
|
939
|
-
}] } });
|
|
940
|
-
|
|
941
|
-
/*
|
|
942
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
943
|
-
*
|
|
944
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
945
|
-
* you may not use this file except in compliance with the License.
|
|
946
|
-
* You may obtain a copy of the License at
|
|
947
|
-
*
|
|
948
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
949
|
-
*
|
|
950
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
951
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
952
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
953
|
-
* See the License for the specific language governing permissions and
|
|
954
|
-
* limitations under the License.
|
|
955
|
-
*/
|
|
956
|
-
|
|
957
|
-
/*
|
|
958
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
863
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
959
864
|
*
|
|
960
865
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
961
866
|
* you may not use this file except in compliance with the License.
|
|
@@ -971,7 +876,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
971
876
|
*/
|
|
972
877
|
|
|
973
878
|
/*
|
|
974
|
-
* Copyright 2015-
|
|
879
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
975
880
|
*
|
|
976
881
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
977
882
|
* you may not use this file except in compliance with the License.
|
|
@@ -987,7 +892,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
987
892
|
*/
|
|
988
893
|
|
|
989
894
|
/*
|
|
990
|
-
* Copyright 2015-
|
|
895
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
991
896
|
*
|
|
992
897
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
993
898
|
* you may not use this file except in compliance with the License.
|
|
@@ -1001,9 +906,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1001
906
|
* See the License for the specific language governing permissions and
|
|
1002
907
|
* limitations under the License.
|
|
1003
908
|
*/
|
|
909
|
+
var Operator;
|
|
910
|
+
(function (Operator) {
|
|
911
|
+
Operator["NOT_EQUAL_TO"] = "!=";
|
|
912
|
+
Operator["EQUAL_TO"] = "==";
|
|
913
|
+
Operator["GREATER_THAN"] = ">";
|
|
914
|
+
Operator["GREATER_THAN_OR_EQUAL_TO"] = ">=";
|
|
915
|
+
Operator["LESS_THAN"] = "<";
|
|
916
|
+
Operator["LESS_THAN_OR_EQUAL_TO"] = "<=";
|
|
917
|
+
})(Operator || (Operator = {}));
|
|
1004
918
|
|
|
1005
919
|
/*
|
|
1006
|
-
* Copyright 2015-
|
|
920
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1007
921
|
*
|
|
1008
922
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1009
923
|
* you may not use this file except in compliance with the License.
|
|
@@ -1017,36 +931,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1017
931
|
* See the License for the specific language governing permissions and
|
|
1018
932
|
* limitations under the License.
|
|
1019
933
|
*/
|
|
1020
|
-
const testDataSourceSpecification = {
|
|
1021
|
-
dataSourceKey: 'test',
|
|
1022
|
-
configurationComponent: TestConfigurationComponent,
|
|
1023
|
-
translations: {
|
|
1024
|
-
de: {
|
|
1025
|
-
title: 'Test-Datenquelle',
|
|
1026
|
-
value: 'Wert (erforderlich)',
|
|
1027
|
-
valueHelperText: 'Der im Widget angezeigte Wert',
|
|
1028
|
-
total: 'Gesamtwert (erforderlich)',
|
|
1029
|
-
totalHelperText: 'Der im Widget angezeigte Gesamtwert',
|
|
1030
|
-
},
|
|
1031
|
-
en: {
|
|
1032
|
-
title: 'Test data source',
|
|
1033
|
-
value: 'Value (required)',
|
|
1034
|
-
valueHelperText: 'The value displayed in the widget',
|
|
1035
|
-
total: 'Total value (required)',
|
|
1036
|
-
totalHelperText: 'The total value displayed in the widget',
|
|
1037
|
-
},
|
|
1038
|
-
nl: {
|
|
1039
|
-
title: 'Testdatabron',
|
|
1040
|
-
value: 'Waarde (vereist)',
|
|
1041
|
-
valueHelperText: 'De waarde die wordt weergegeven in de widget',
|
|
1042
|
-
total: 'Totaalwaarde (vereist)',
|
|
1043
|
-
totalHelperText: 'De totaalwaarde die wordt weergegeven in de widget',
|
|
1044
|
-
},
|
|
1045
|
-
},
|
|
1046
|
-
};
|
|
1047
934
|
|
|
1048
935
|
/*
|
|
1049
|
-
* Copyright 2015-
|
|
936
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1050
937
|
*
|
|
1051
938
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1052
939
|
* you may not use this file except in compliance with the License.
|
|
@@ -1060,23 +947,9 @@ const testDataSourceSpecification = {
|
|
|
1060
947
|
* See the License for the specific language governing permissions and
|
|
1061
948
|
* limitations under the License.
|
|
1062
949
|
*/
|
|
1063
|
-
class TestDataSourceModule {
|
|
1064
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TestDataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1065
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TestDataSourceModule, declarations: [TestConfigurationComponent], imports: [CommonModule, ReactiveFormsModule, WidgetTranslatePipeModule, InputModule], exports: [TestConfigurationComponent] }); }
|
|
1066
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TestDataSourceModule, providers: [{ provide: DATA_SOURCE_TOKEN, useValue: testDataSourceSpecification, multi: true }], imports: [CommonModule, ReactiveFormsModule, WidgetTranslatePipeModule, InputModule] }); }
|
|
1067
|
-
}
|
|
1068
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TestDataSourceModule, decorators: [{
|
|
1069
|
-
type: NgModule,
|
|
1070
|
-
args: [{
|
|
1071
|
-
declarations: [TestConfigurationComponent],
|
|
1072
|
-
imports: [CommonModule, ReactiveFormsModule, WidgetTranslatePipeModule, InputModule],
|
|
1073
|
-
exports: [TestConfigurationComponent],
|
|
1074
|
-
providers: [{ provide: DATA_SOURCE_TOKEN, useValue: testDataSourceSpecification, multi: true }],
|
|
1075
|
-
}]
|
|
1076
|
-
}] });
|
|
1077
950
|
|
|
1078
951
|
/*
|
|
1079
|
-
* Copyright 2015-
|
|
952
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1080
953
|
*
|
|
1081
954
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1082
955
|
* you may not use this file except in compliance with the License.
|
|
@@ -1092,7 +965,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1092
965
|
*/
|
|
1093
966
|
|
|
1094
967
|
/*
|
|
1095
|
-
* Copyright 2015-
|
|
968
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1096
969
|
*
|
|
1097
970
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1098
971
|
* you may not use this file except in compliance with the License.
|
|
@@ -1106,18 +979,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1106
979
|
* See the License for the specific language governing permissions and
|
|
1107
980
|
* limitations under the License.
|
|
1108
981
|
*/
|
|
1109
|
-
var
|
|
1110
|
-
(function (
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
})(Operator || (Operator = {}));
|
|
982
|
+
var WidgetSeverity;
|
|
983
|
+
(function (WidgetSeverity) {
|
|
984
|
+
WidgetSeverity["BLACK"] = "valtimo-severity__black";
|
|
985
|
+
WidgetSeverity["GREEN"] = "valtimo-severity__green";
|
|
986
|
+
WidgetSeverity["YELLOW"] = "valtimo-severity__yellow";
|
|
987
|
+
WidgetSeverity["ORANGE"] = "valtimo-severity__orange";
|
|
988
|
+
WidgetSeverity["RED"] = "valtimo-severity__red";
|
|
989
|
+
})(WidgetSeverity || (WidgetSeverity = {}));
|
|
1118
990
|
|
|
1119
991
|
/*
|
|
1120
|
-
* Copyright 2015-
|
|
992
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1121
993
|
*
|
|
1122
994
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1123
995
|
* you may not use this file except in compliance with the License.
|
|
@@ -1133,7 +1005,7 @@ var Operator;
|
|
|
1133
1005
|
*/
|
|
1134
1006
|
|
|
1135
1007
|
/*
|
|
1136
|
-
* Copyright 2015-
|
|
1008
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1137
1009
|
*
|
|
1138
1010
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1139
1011
|
* you may not use this file except in compliance with the License.
|
|
@@ -1252,13 +1124,13 @@ class CaseCountConfigurationComponent {
|
|
|
1252
1124
|
});
|
|
1253
1125
|
}));
|
|
1254
1126
|
}
|
|
1255
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1256
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
1127
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountConfigurationComponent, deps: [{ token: i1$3.FormBuilder }, { token: i2$2.DocumentService }, { token: i3$1.TranslateService }, { token: WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1128
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: CaseCountConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i1$1.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1257
1129
|
}
|
|
1258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountConfigurationComponent, decorators: [{
|
|
1259
1131
|
type: Component,
|
|
1260
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-
|
|
1261
|
-
}], ctorParameters:
|
|
1132
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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 ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
1133
|
+
}], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: i2$2.DocumentService }, { type: i3$1.TranslateService }, { type: WidgetTranslationService }], propDecorators: { dataSourceKey: [{
|
|
1262
1134
|
type: Input
|
|
1263
1135
|
}], disabled: [{
|
|
1264
1136
|
type: Input
|
|
@@ -1269,7 +1141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1269
1141
|
}] } });
|
|
1270
1142
|
|
|
1271
1143
|
/*
|
|
1272
|
-
* Copyright 2015-
|
|
1144
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1273
1145
|
*
|
|
1274
1146
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1275
1147
|
* you may not use this file except in compliance with the License.
|
|
@@ -1285,7 +1157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1285
1157
|
*/
|
|
1286
1158
|
|
|
1287
1159
|
/*
|
|
1288
|
-
* Copyright 2015-
|
|
1160
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1289
1161
|
*
|
|
1290
1162
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1291
1163
|
* you may not use this file except in compliance with the License.
|
|
@@ -1301,7 +1173,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1301
1173
|
*/
|
|
1302
1174
|
|
|
1303
1175
|
/*
|
|
1304
|
-
* Copyright 2015-
|
|
1176
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1305
1177
|
*
|
|
1306
1178
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1307
1179
|
* you may not use this file except in compliance with the License.
|
|
@@ -1315,17 +1187,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1315
1187
|
* See the License for the specific language governing permissions and
|
|
1316
1188
|
* limitations under the License.
|
|
1317
1189
|
*/
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1190
|
+
|
|
1191
|
+
/*
|
|
1192
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1193
|
+
*
|
|
1194
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1195
|
+
* you may not use this file except in compliance with the License.
|
|
1196
|
+
* You may obtain a copy of the License at
|
|
1197
|
+
*
|
|
1198
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1199
|
+
*
|
|
1200
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1201
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1202
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1203
|
+
* See the License for the specific language governing permissions and
|
|
1204
|
+
* limitations under the License.
|
|
1205
|
+
*/
|
|
1206
|
+
|
|
1207
|
+
/*
|
|
1208
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1209
|
+
*
|
|
1210
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1211
|
+
* you may not use this file except in compliance with the License.
|
|
1212
|
+
* You may obtain a copy of the License at
|
|
1213
|
+
*
|
|
1214
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1215
|
+
*
|
|
1216
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1217
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1218
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1219
|
+
* See the License for the specific language governing permissions and
|
|
1220
|
+
* limitations under the License.
|
|
1221
|
+
*/
|
|
1222
|
+
const caseCountDataSourceSpecification = {
|
|
1223
|
+
dataSourceKey: 'case-count',
|
|
1224
|
+
configurationComponent: CaseCountConfigurationComponent,
|
|
1225
|
+
translations: {
|
|
1226
|
+
de: {
|
|
1227
|
+
title: 'Fallzahl',
|
|
1228
|
+
documentDefinition: 'Falltyp (erforderlich)',
|
|
1229
|
+
documentDefinitionHelperText: 'Der Falltyp, für den die Anzahl abgerufen wird',
|
|
1230
|
+
'!=': 'Nicht gleichzusetzen mit',
|
|
1231
|
+
'==': 'Gleich',
|
|
1232
|
+
'>': 'Größer als',
|
|
1329
1233
|
'>=': 'Größer als oder gleich wie',
|
|
1330
1234
|
'<': 'Weniger als',
|
|
1331
1235
|
'<=': 'Gleich oder kleiner als',
|
|
@@ -1333,7 +1237,7 @@ const caseCountDataSourceSpecification = {
|
|
|
1333
1237
|
operator: 'Operator',
|
|
1334
1238
|
value: 'Wert',
|
|
1335
1239
|
conditions: 'Bedingungen',
|
|
1336
|
-
conditionsHelperText: "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'.",
|
|
1240
|
+
conditionsHelperText: "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'. Zum Vergleichen mit leeren Werten kann als Wert '${null}' eingegeben werden. Zum Vergleichen mit dem aktuellen Datum kann als Wert '${localDateTimeNow}' eingegeben werden. Damit wird beispielsweise auch folgende Logik unterstützt: '${localDateTimeNow.minusWeeks(2)}'.",
|
|
1337
1241
|
addCondition: 'Bedingung hinzufügen',
|
|
1338
1242
|
},
|
|
1339
1243
|
en: {
|
|
@@ -1350,7 +1254,7 @@ const caseCountDataSourceSpecification = {
|
|
|
1350
1254
|
operator: 'Operator',
|
|
1351
1255
|
value: 'Value',
|
|
1352
1256
|
conditions: 'Conditions',
|
|
1353
|
-
conditionsHelperText: "Specify optional conditions for retrieving the number of cases for the selected case type. For example: 'case:createdBy', 'Equal to', 'test@test.com'.",
|
|
1257
|
+
conditionsHelperText: "Specify optional conditions for retrieving the number of cases for the selected case type. For example: 'case:createdBy', 'Equal to', 'test@test.com'. To compare with empty values, '${null}' can be entered as a value. To compare with the current date, '${localDateTimeNow}' can be entered as a value. This also supports, for example, the following logic: '${localDateTimeNow.minusWeeks(2)}'.",
|
|
1354
1258
|
addCondition: 'Add condition',
|
|
1355
1259
|
},
|
|
1356
1260
|
nl: {
|
|
@@ -1367,14 +1271,14 @@ const caseCountDataSourceSpecification = {
|
|
|
1367
1271
|
operator: 'Operator',
|
|
1368
1272
|
value: 'Waarde',
|
|
1369
1273
|
conditions: 'Condities',
|
|
1370
|
-
conditionsHelperText: "Geef optionele condities op voor het ophalen van het aantal zaken voor het geselecteerde zaaktype. Bijvoorbeeld: 'case:createdBy', 'Gelijk aan', 'test@test.com'.",
|
|
1274
|
+
conditionsHelperText: "Geef optionele condities op voor het ophalen van het aantal zaken voor het geselecteerde zaaktype. Bijvoorbeeld: 'case:createdBy', 'Gelijk aan', 'test@test.com'. Voor het vergelijken met lege waardes kan '${null}' ingevuld worden als waarde. Voor het vergelijken met de huidige datum kan '${localDateTimeNow}' ingevuld worden als waarde. Deze ondersteunt ook bijvoorbeeld de volgende logica: '${localDateTimeNow.minusWeeks(2)}'.",
|
|
1371
1275
|
addCondition: 'Conditie toevoegen',
|
|
1372
1276
|
},
|
|
1373
1277
|
},
|
|
1374
1278
|
};
|
|
1375
1279
|
|
|
1376
1280
|
/*
|
|
1377
|
-
* Copyright 2015-
|
|
1281
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1378
1282
|
*
|
|
1379
1283
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1380
1284
|
* you may not use this file except in compliance with the License.
|
|
@@ -1389,14 +1293,14 @@ const caseCountDataSourceSpecification = {
|
|
|
1389
1293
|
* limitations under the License.
|
|
1390
1294
|
*/
|
|
1391
1295
|
class CaseCountDataSourceModule {
|
|
1392
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1393
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1296
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountDataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1297
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: CaseCountDataSourceModule, declarations: [CaseCountConfigurationComponent], imports: [CommonModule,
|
|
1394
1298
|
ReactiveFormsModule,
|
|
1395
1299
|
WidgetTranslatePipeModule,
|
|
1396
1300
|
InputModule,
|
|
1397
1301
|
DropdownModule,
|
|
1398
1302
|
CarbonMultiInputModule], exports: [CaseCountConfigurationComponent] }); }
|
|
1399
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1303
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountDataSourceModule, providers: [
|
|
1400
1304
|
{ provide: DATA_SOURCE_TOKEN, useValue: caseCountDataSourceSpecification, multi: true },
|
|
1401
1305
|
], imports: [CommonModule,
|
|
1402
1306
|
ReactiveFormsModule,
|
|
@@ -1405,7 +1309,7 @@ class CaseCountDataSourceModule {
|
|
|
1405
1309
|
DropdownModule,
|
|
1406
1310
|
CarbonMultiInputModule] }); }
|
|
1407
1311
|
}
|
|
1408
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountDataSourceModule, decorators: [{
|
|
1409
1313
|
type: NgModule,
|
|
1410
1314
|
args: [{
|
|
1411
1315
|
declarations: [CaseCountConfigurationComponent],
|
|
@@ -1425,23 +1329,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1425
1329
|
}] });
|
|
1426
1330
|
|
|
1427
1331
|
/*
|
|
1428
|
-
* Copyright 2015-
|
|
1429
|
-
*
|
|
1430
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1431
|
-
* you may not use this file except in compliance with the License.
|
|
1432
|
-
* You may obtain a copy of the License at
|
|
1433
|
-
*
|
|
1434
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1435
|
-
*
|
|
1436
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
1437
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
1438
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1439
|
-
* See the License for the specific language governing permissions and
|
|
1440
|
-
* limitations under the License.
|
|
1441
|
-
*/
|
|
1442
|
-
|
|
1443
|
-
/*
|
|
1444
|
-
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
1332
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1445
1333
|
*
|
|
1446
1334
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1447
1335
|
* you may not use this file except in compliance with the License.
|
|
@@ -1457,7 +1345,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1457
1345
|
*/
|
|
1458
1346
|
|
|
1459
1347
|
/*
|
|
1460
|
-
* Copyright 2015-
|
|
1348
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1461
1349
|
*
|
|
1462
1350
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1463
1351
|
* you may not use this file except in compliance with the License.
|
|
@@ -1471,9 +1359,180 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1471
1359
|
* See the License for the specific language governing permissions and
|
|
1472
1360
|
* limitations under the License.
|
|
1473
1361
|
*/
|
|
1362
|
+
class CaseCountsConfigurationComponent {
|
|
1363
|
+
set disabled(disabledValue) {
|
|
1364
|
+
if (disabledValue) {
|
|
1365
|
+
this.form.disable();
|
|
1366
|
+
}
|
|
1367
|
+
else {
|
|
1368
|
+
this.form.enable();
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1371
|
+
get queryItems() {
|
|
1372
|
+
return this.form.get('queryItems');
|
|
1373
|
+
}
|
|
1374
|
+
get queryItemsValue$() {
|
|
1375
|
+
return this.queryItems.valueChanges.pipe(startWith(this.queryItems.value || []));
|
|
1376
|
+
}
|
|
1377
|
+
get queryItemsList$() {
|
|
1378
|
+
return this.queryItemsValue$.pipe(map(queryItemsValue => queryItemsValue.map(() => null)), distinctUntilChanged((previous, current) => isEqual(previous, current)));
|
|
1379
|
+
}
|
|
1380
|
+
get documentDefinition() {
|
|
1381
|
+
return this.form.get('documentDefinition');
|
|
1382
|
+
}
|
|
1383
|
+
get formDisabled() {
|
|
1384
|
+
return this.form.disabled;
|
|
1385
|
+
}
|
|
1386
|
+
set prefillConfiguration(configurationValue) {
|
|
1387
|
+
if (!configurationValue)
|
|
1388
|
+
return;
|
|
1389
|
+
this.documentDefinitionSelected({
|
|
1390
|
+
item: {
|
|
1391
|
+
content: configurationValue.documentDefinition,
|
|
1392
|
+
},
|
|
1393
|
+
});
|
|
1394
|
+
this.documentDefinition.patchValue(configurationValue.documentDefinition);
|
|
1395
|
+
this.queryItems.patchValue(this.queryItemsToMultiInputValues(configurationValue.queryItems));
|
|
1396
|
+
}
|
|
1397
|
+
constructor(fb, documentService, translateService, widgetTranslationService, iconService) {
|
|
1398
|
+
this.fb = fb;
|
|
1399
|
+
this.documentService = documentService;
|
|
1400
|
+
this.translateService = translateService;
|
|
1401
|
+
this.widgetTranslationService = widgetTranslationService;
|
|
1402
|
+
this.iconService = iconService;
|
|
1403
|
+
this._EMPTY_QUERY_ITEM_VALUE = {
|
|
1404
|
+
label: '',
|
|
1405
|
+
queryConditions: [{ key: '', value: '', dropdown: '' }],
|
|
1406
|
+
};
|
|
1407
|
+
this.form = this.fb.group({
|
|
1408
|
+
documentDefinition: this.fb.control(null, [Validators.required]),
|
|
1409
|
+
queryItems: this.fb.control([this._EMPTY_QUERY_ITEM_VALUE, this._EMPTY_QUERY_ITEM_VALUE], [this.queryItemsValidator()]),
|
|
1410
|
+
});
|
|
1411
|
+
this.configurationEvent = new EventEmitter();
|
|
1412
|
+
this._selectedDocumentDefinition$ = new BehaviorSubject('');
|
|
1413
|
+
this.documentItems$ = combineLatest([
|
|
1414
|
+
this.documentService.getAllDefinitions(),
|
|
1415
|
+
this._selectedDocumentDefinition$,
|
|
1416
|
+
]).pipe(map(([documentDefinitions, selectedDocumentDefintion]) => documentDefinitions.content.map(definition => ({
|
|
1417
|
+
content: definition.id.name,
|
|
1418
|
+
selected: definition.id.name === selectedDocumentDefintion,
|
|
1419
|
+
}))));
|
|
1420
|
+
this._OPERATORS = [
|
|
1421
|
+
Operator.NOT_EQUAL_TO,
|
|
1422
|
+
Operator.EQUAL_TO,
|
|
1423
|
+
Operator.GREATER_THAN,
|
|
1424
|
+
Operator.GREATER_THAN_OR_EQUAL_TO,
|
|
1425
|
+
Operator.LESS_THAN,
|
|
1426
|
+
Operator.LESS_THAN_OR_EQUAL_TO,
|
|
1427
|
+
];
|
|
1428
|
+
this.operatorItems$ = this.translateService
|
|
1429
|
+
.stream('key')
|
|
1430
|
+
.pipe(map(() => this._OPERATORS.map(operator => ({
|
|
1431
|
+
id: operator,
|
|
1432
|
+
content: this.widgetTranslationService.instant(operator, this.dataSourceKey),
|
|
1433
|
+
selected: false,
|
|
1434
|
+
}))));
|
|
1435
|
+
this._subscriptions = new Subscription();
|
|
1436
|
+
this.iconService.registerAll([Add16, TrashCan16]);
|
|
1437
|
+
}
|
|
1438
|
+
ngOnInit() {
|
|
1439
|
+
this.openFormSubscription();
|
|
1440
|
+
}
|
|
1441
|
+
ngOnDestroy() {
|
|
1442
|
+
this._subscriptions.unsubscribe();
|
|
1443
|
+
}
|
|
1444
|
+
documentDefinitionSelected(documentDefinitionItem) {
|
|
1445
|
+
if (!documentDefinitionItem) {
|
|
1446
|
+
return;
|
|
1447
|
+
}
|
|
1448
|
+
this._selectedDocumentDefinition$.next(documentDefinitionItem?.item?.content);
|
|
1449
|
+
}
|
|
1450
|
+
conditionsValueChange(index, values) {
|
|
1451
|
+
const currentQueryItemsValues = this.queryItems.value;
|
|
1452
|
+
if (isEqual(currentQueryItemsValues[index].queryConditions, values))
|
|
1453
|
+
return;
|
|
1454
|
+
this.queryItems.patchValue(currentQueryItemsValues.map((item, itemIndex) => itemIndex === index ? { ...item, queryConditions: values } : item));
|
|
1455
|
+
}
|
|
1456
|
+
labelValueChange(index, value) {
|
|
1457
|
+
const currentQueryItemsValues = this.queryItems.value;
|
|
1458
|
+
if (currentQueryItemsValues[index].label === value)
|
|
1459
|
+
return;
|
|
1460
|
+
this.queryItems.patchValue(currentQueryItemsValues.map((item, itemIndex) => itemIndex === index ? { ...item, label: value } : item));
|
|
1461
|
+
}
|
|
1462
|
+
addQueryItem() {
|
|
1463
|
+
const currentQueryItems = this.queryItems.value;
|
|
1464
|
+
this.queryItems.patchValue([...currentQueryItems, this._EMPTY_QUERY_ITEM_VALUE]);
|
|
1465
|
+
}
|
|
1466
|
+
deleteCount(i) {
|
|
1467
|
+
const currentQueryItems = this.queryItems.value;
|
|
1468
|
+
this.queryItems.patchValue(currentQueryItems.filter((_, index) => index !== i));
|
|
1469
|
+
}
|
|
1470
|
+
openFormSubscription() {
|
|
1471
|
+
this._subscriptions.add(this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {
|
|
1472
|
+
this.configurationEvent.emit({
|
|
1473
|
+
valid: this.form.valid,
|
|
1474
|
+
data: {
|
|
1475
|
+
...formValue,
|
|
1476
|
+
queryItems: this.multiInputValuesToQueryItems(formValue.queryItems),
|
|
1477
|
+
},
|
|
1478
|
+
});
|
|
1479
|
+
}));
|
|
1480
|
+
}
|
|
1481
|
+
queryItemsToMultiInputValues(queryItems) {
|
|
1482
|
+
return queryItems.map(queryItem => ({
|
|
1483
|
+
...queryItem,
|
|
1484
|
+
queryConditions: queryItem.queryConditions.map(condition => ({
|
|
1485
|
+
key: condition.queryPath,
|
|
1486
|
+
dropdown: condition.queryOperator,
|
|
1487
|
+
value: condition.queryValue,
|
|
1488
|
+
})),
|
|
1489
|
+
}));
|
|
1490
|
+
}
|
|
1491
|
+
multiInputValuesToQueryItems(multiInputValues) {
|
|
1492
|
+
return multiInputValues.map(queryItem => ({
|
|
1493
|
+
...queryItem,
|
|
1494
|
+
queryConditions: queryItem.queryConditions.map(condition => ({
|
|
1495
|
+
queryPath: condition.key,
|
|
1496
|
+
queryOperator: condition.dropdown,
|
|
1497
|
+
queryValue: condition.value,
|
|
1498
|
+
})),
|
|
1499
|
+
}));
|
|
1500
|
+
}
|
|
1501
|
+
queryItemsValidator() {
|
|
1502
|
+
return (control) => {
|
|
1503
|
+
const queryItems = control.value;
|
|
1504
|
+
const validQueryItems = queryItems.filter(item => {
|
|
1505
|
+
const validLabel = !!item.label;
|
|
1506
|
+
const validConditions = item.queryConditions.filter(condition => !!condition.value && !!condition.key && !!condition.dropdown);
|
|
1507
|
+
return (validLabel &&
|
|
1508
|
+
validConditions.length > 0 &&
|
|
1509
|
+
item.queryConditions.length === validConditions.length);
|
|
1510
|
+
});
|
|
1511
|
+
return validQueryItems.length > 1 && validQueryItems.length === queryItems.length
|
|
1512
|
+
? null
|
|
1513
|
+
: {
|
|
1514
|
+
invalidQueryItems: 'invalid',
|
|
1515
|
+
};
|
|
1516
|
+
};
|
|
1517
|
+
}
|
|
1518
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsConfigurationComponent, deps: [{ token: i1$3.FormBuilder }, { token: i2$2.DocumentService }, { token: i3$1.TranslateService }, { token: WidgetTranslationService }, { token: i5.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1519
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: CaseCountsConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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-counts-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n queryItemsValue: queryItemsValue$ | async\n } 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 <cds-label class=\"conditions__label\">{{\n 'counts' | widgetTranslate: dataSourceKey | async\n }}</cds-label>\n\n <p class=\"conditions__helper-text cds--form__helper-text\">\n {{ 'countsHelperText' | widgetTranslate: dataSourceKey | async }}\n </p>\n\n @for (_ of queryItemsList$ | async; track $index; let i = $index) {\n <cds-tile class=\"count-tile\" cdsLayer=\"1\">\n <div class=\"count-tile__input\">\n <v-input\n [title]=\"'countTitle' | widgetTranslate: dataSourceKey | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.queryItemsValue[i]?.label\"\n [disabled]=\"formDisabled\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n (valueChange)=\"labelValueChange(i, $event)\"\n >\n </v-input>\n\n <valtimo-carbon-multi-input\n [disabled]=\"formDisabled\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.queryItemsValue[i]?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"1\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"1\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (valueChange)=\"conditionsValueChange(i, $event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"count-tile__delete-button\">\n <cds-icon-button\n [disabled]=\"formDisabled || i < 2\"\n (click)=\"deleteCount(i)\"\n kind=\"danger\"\n size=\"sm\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-tile>\n }\n\n <button\n class=\"add-count-button\"\n cdsButton=\"primary\"\n [disabled]=\"formDisabled\"\n (click)=\"addQueryItem()\"\n >\n {{ 'Aantal toevoegen' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n", styles: ["::ng-deep .case-counts-configuration-form .conditions__label{display:flex;margin-bottom:8px}::ng-deep .case-counts-configuration-form .conditions__helper-text{font-style:italic;display:flex;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile{display:flex;flex-direction:row;gap:32px;justify-content:space-between;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile__input{width:100%}::ng-deep .case-counts-configuration-form .add-count-button{margin-bottom:16px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i1$1.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder"], outputs: ["valueChange"] }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i1$1.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i5.IconButton, selector: "cds-icon-button, ibm-icon-button", inputs: ["buttonNgClass", "buttonAttributes", "buttonId", "kind", "size", "type", "isExpressive", "disabled", "description"], outputs: ["click", "focus", "blur", "tooltipClick"] }, { kind: "component", type: i5.Tile, selector: "cds-tile, ibm-tile", inputs: ["theme"] }, { kind: "directive", type: i5.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1520
|
+
}
|
|
1521
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsConfigurationComponent, decorators: [{
|
|
1522
|
+
type: Component,
|
|
1523
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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-counts-configuration-form\"\n *ngIf=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n queryItemsValue: queryItemsValue$ | async\n } 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 <cds-label class=\"conditions__label\">{{\n 'counts' | widgetTranslate: dataSourceKey | async\n }}</cds-label>\n\n <p class=\"conditions__helper-text cds--form__helper-text\">\n {{ 'countsHelperText' | widgetTranslate: dataSourceKey | async }}\n </p>\n\n @for (_ of queryItemsList$ | async; track $index; let i = $index) {\n <cds-tile class=\"count-tile\" cdsLayer=\"1\">\n <div class=\"count-tile__input\">\n <v-input\n [title]=\"'countTitle' | widgetTranslate: dataSourceKey | async\"\n [margin]=\"true\"\n [defaultValue]=\"obs.queryItemsValue[i]?.label\"\n [disabled]=\"formDisabled\"\n [required]=\"true\"\n [fullWidth]=\"true\"\n (valueChange)=\"labelValueChange(i, $event)\"\n >\n </v-input>\n\n <valtimo-carbon-multi-input\n [disabled]=\"formDisabled\"\n [addRowText]=\"'addCondition' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.queryItemsValue[i]?.queryConditions\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate: dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"1\"\n [keyColumnTitle]=\"'path' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"1\"\n [valueColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (valueChange)=\"conditionsValueChange(i, $event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"count-tile__delete-button\">\n <cds-icon-button\n [disabled]=\"formDisabled || i < 2\"\n (click)=\"deleteCount(i)\"\n kind=\"danger\"\n size=\"sm\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </cds-icon-button>\n </div>\n </cds-tile>\n }\n\n <button\n class=\"add-count-button\"\n cdsButton=\"primary\"\n [disabled]=\"formDisabled\"\n (click)=\"addQueryItem()\"\n >\n {{ 'Aantal toevoegen' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n", styles: ["::ng-deep .case-counts-configuration-form .conditions__label{display:flex;margin-bottom:8px}::ng-deep .case-counts-configuration-form .conditions__helper-text{font-style:italic;display:flex;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile{display:flex;flex-direction:row;gap:32px;justify-content:space-between;margin-bottom:16px}::ng-deep .case-counts-configuration-form .count-tile__input{width:100%}::ng-deep .case-counts-configuration-form .add-count-button{margin-bottom:16px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
1524
|
+
}], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: i2$2.DocumentService }, { type: i3$1.TranslateService }, { type: WidgetTranslationService }, { type: i5.IconService }], propDecorators: { dataSourceKey: [{
|
|
1525
|
+
type: Input
|
|
1526
|
+
}], disabled: [{
|
|
1527
|
+
type: Input
|
|
1528
|
+
}], prefillConfiguration: [{
|
|
1529
|
+
type: Input
|
|
1530
|
+
}], configurationEvent: [{
|
|
1531
|
+
type: Output
|
|
1532
|
+
}] } });
|
|
1474
1533
|
|
|
1475
1534
|
/*
|
|
1476
|
-
* Copyright 2015-
|
|
1535
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1477
1536
|
*
|
|
1478
1537
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1479
1538
|
* you may not use this file except in compliance with the License.
|
|
@@ -1489,7 +1548,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1489
1548
|
*/
|
|
1490
1549
|
|
|
1491
1550
|
/*
|
|
1492
|
-
* Copyright 2015-
|
|
1551
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1493
1552
|
*
|
|
1494
1553
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1495
1554
|
* you may not use this file except in compliance with the License.
|
|
@@ -1503,23 +1562,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1503
1562
|
* See the License for the specific language governing permissions and
|
|
1504
1563
|
* limitations under the License.
|
|
1505
1564
|
*/
|
|
1506
|
-
class BarChartDisplayComponent {
|
|
1507
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BarChartDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1508
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BarChartDisplayComponent, selector: "valtimo-bar-chart-display", inputs: { displayTypeKey: "displayTypeKey", data: "data", displayTypeProperties: "displayTypeProperties" }, ngImport: i0, template: "<!--\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", styles: ["/*!\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 */:host{display:flex;padding:20px;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1509
|
-
}
|
|
1510
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BarChartDisplayComponent, decorators: [{
|
|
1511
|
-
type: Component,
|
|
1512
|
-
args: [{ selector: 'valtimo-bar-chart-display', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\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", styles: ["/*!\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 */:host{display:flex;padding:20px;width:100%;height:100%}\n"] }]
|
|
1513
|
-
}], propDecorators: { displayTypeKey: [{
|
|
1514
|
-
type: Input
|
|
1515
|
-
}], data: [{
|
|
1516
|
-
type: Input
|
|
1517
|
-
}], displayTypeProperties: [{
|
|
1518
|
-
type: Input
|
|
1519
|
-
}] } });
|
|
1520
1565
|
|
|
1521
1566
|
/*
|
|
1522
|
-
* Copyright 2015-
|
|
1567
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1523
1568
|
*
|
|
1524
1569
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1525
1570
|
* you may not use this file except in compliance with the License.
|
|
@@ -1535,7 +1580,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1535
1580
|
*/
|
|
1536
1581
|
|
|
1537
1582
|
/*
|
|
1538
|
-
* Copyright 2015-
|
|
1583
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1539
1584
|
*
|
|
1540
1585
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1541
1586
|
* you may not use this file except in compliance with the License.
|
|
@@ -1551,7 +1596,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1551
1596
|
*/
|
|
1552
1597
|
|
|
1553
1598
|
/*
|
|
1554
|
-
* Copyright 2015-
|
|
1599
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1555
1600
|
*
|
|
1556
1601
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1557
1602
|
* you may not use this file except in compliance with the License.
|
|
@@ -1565,27 +1610,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1565
1610
|
* See the License for the specific language governing permissions and
|
|
1566
1611
|
* limitations under the License.
|
|
1567
1612
|
*/
|
|
1568
|
-
const
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
width: 1,
|
|
1572
|
-
height: 2,
|
|
1613
|
+
const caseCountsDataSourceSpecification = {
|
|
1614
|
+
dataSourceKey: 'case-counts',
|
|
1615
|
+
configurationComponent: CaseCountsConfigurationComponent,
|
|
1573
1616
|
translations: {
|
|
1574
|
-
|
|
1575
|
-
title: '
|
|
1617
|
+
de: {
|
|
1618
|
+
title: 'Mehrere Fallanzahllen',
|
|
1619
|
+
documentDefinition: 'Falltyp (erforderlich)',
|
|
1620
|
+
documentDefinitionHelperText: 'Der Falltyp, für den die Anzahllen abgeruft wirden',
|
|
1621
|
+
'!=': 'Nicht gleichzusetzen mit',
|
|
1622
|
+
'==': 'Gleich',
|
|
1623
|
+
'>': 'Größer als',
|
|
1624
|
+
'>=': 'Größer als oder gleich wie',
|
|
1625
|
+
'<': 'Weniger als',
|
|
1626
|
+
'<=': 'Gleich oder kleiner als',
|
|
1627
|
+
path: 'Pfad',
|
|
1628
|
+
operator: 'Operator',
|
|
1629
|
+
value: 'Wert',
|
|
1630
|
+
counts: 'Anzahllen',
|
|
1631
|
+
countsHelperText: "Geben Sie eine oder mehrere Bedingungen für mindestens zwei Anzahllen an. Zum Beispiel: 'case:createdBy', 'Gleich', 'test@test.com'. Zum Vergleichen mit leeren Werten kann als Wert '${null}' eingegeben werden. Zum Vergleichen mit dem aktuellen Datum kann als Wert '${localDateTimeNow}' eingegeben werden. Damit wird beispielsweise auch folgende Logik unterstützt: '${localDateTimeNow.minusWeeks(2)}'.",
|
|
1632
|
+
addCondition: 'Bedingung hinzufügen',
|
|
1633
|
+
countTitle: 'Anzahltitel',
|
|
1576
1634
|
},
|
|
1577
1635
|
en: {
|
|
1578
|
-
title: '
|
|
1636
|
+
title: 'Multiple case counts',
|
|
1637
|
+
documentDefinition: 'Case type (required)',
|
|
1638
|
+
documentDefinitionHelperText: 'The case type for which the counts are retrieved',
|
|
1639
|
+
'!=': 'Not equal to',
|
|
1640
|
+
'==': 'Equal to',
|
|
1641
|
+
'>': 'Greater than',
|
|
1642
|
+
'>=': 'Greater than or equal to',
|
|
1643
|
+
'<': 'Less than',
|
|
1644
|
+
'<=': 'Less than or equal to',
|
|
1645
|
+
path: 'Path (required)',
|
|
1646
|
+
operator: 'Operator',
|
|
1647
|
+
value: 'Value',
|
|
1648
|
+
counts: 'Counts',
|
|
1649
|
+
countsHelperText: "Specify one or more conditions for each count that should be displayed. For example: 'case:createdBy', 'Equal to', 'test@test.com'. Configure at least two counts and at least one condition per count.",
|
|
1650
|
+
addCondition: 'Add condition',
|
|
1651
|
+
countTitle: 'Count title',
|
|
1579
1652
|
},
|
|
1580
|
-
|
|
1581
|
-
title: '
|
|
1653
|
+
nl: {
|
|
1654
|
+
title: 'Meerdere dossieraantallen',
|
|
1655
|
+
documentDefinition: 'Dossiertype (vereist)',
|
|
1656
|
+
documentDefinitionHelperText: 'Het dossiertype waarvoor de aantallen worden opgehaald',
|
|
1657
|
+
'!=': 'Niet gelijk aan',
|
|
1658
|
+
'==': 'Gelijk aan',
|
|
1659
|
+
'>': 'Groter dan',
|
|
1660
|
+
'>=': 'Groter dan of gelijk aan',
|
|
1661
|
+
'<': 'Minder dan',
|
|
1662
|
+
'<=': 'Minder dan of gelijk aan',
|
|
1663
|
+
path: 'Pad',
|
|
1664
|
+
operator: 'Operator',
|
|
1665
|
+
value: 'Waarde',
|
|
1666
|
+
counts: 'Aantallen',
|
|
1667
|
+
countsHelperText: "Geef een of meer condities op voor een minimum van twee aantallen. Bijvoorbeeld: 'case:createdBy', 'Gelijk aan', 'test@test.com'. Voor het vergelijken met lege waardes kan '${null}' ingevuld worden als waarde. Voor het vergelijken met de huidige datum kan '${localDateTimeNow}' ingevuld worden als waarde. Deze ondersteunt ook bijvoorbeeld de volgende logica: '${localDateTimeNow.minusWeeks(2)}'.",
|
|
1668
|
+
addCondition: 'Conditie toevoegen',
|
|
1669
|
+
countTitle: 'Aantaltitel',
|
|
1582
1670
|
},
|
|
1583
1671
|
},
|
|
1584
|
-
requiredDataFeatures: [],
|
|
1585
1672
|
};
|
|
1586
1673
|
|
|
1587
1674
|
/*
|
|
1588
|
-
* Copyright 2015-
|
|
1675
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1589
1676
|
*
|
|
1590
1677
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1591
1678
|
* you may not use this file except in compliance with the License.
|
|
@@ -1599,23 +1686,59 @@ const barChartSpecification = {
|
|
|
1599
1686
|
* See the License for the specific language governing permissions and
|
|
1600
1687
|
* limitations under the License.
|
|
1601
1688
|
*/
|
|
1602
|
-
class
|
|
1603
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1604
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1605
|
-
|
|
1689
|
+
class CaseCountsDataSourceModule {
|
|
1690
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsDataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1691
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsDataSourceModule, declarations: [CaseCountsConfigurationComponent], imports: [CommonModule,
|
|
1692
|
+
ReactiveFormsModule,
|
|
1693
|
+
WidgetTranslatePipeModule,
|
|
1694
|
+
InputModule$1,
|
|
1695
|
+
DropdownModule,
|
|
1696
|
+
CarbonMultiInputModule,
|
|
1697
|
+
InputModule$1,
|
|
1698
|
+
ButtonModule,
|
|
1699
|
+
TilesModule,
|
|
1700
|
+
LayerModule,
|
|
1701
|
+
IconModule], exports: [CaseCountsConfigurationComponent] }); }
|
|
1702
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsDataSourceModule, providers: [
|
|
1703
|
+
{ provide: DATA_SOURCE_TOKEN, useValue: caseCountsDataSourceSpecification, multi: true },
|
|
1704
|
+
], imports: [CommonModule,
|
|
1705
|
+
ReactiveFormsModule,
|
|
1706
|
+
WidgetTranslatePipeModule,
|
|
1707
|
+
InputModule$1,
|
|
1708
|
+
DropdownModule,
|
|
1709
|
+
CarbonMultiInputModule,
|
|
1710
|
+
InputModule$1,
|
|
1711
|
+
ButtonModule,
|
|
1712
|
+
TilesModule,
|
|
1713
|
+
LayerModule,
|
|
1714
|
+
IconModule] }); }
|
|
1606
1715
|
}
|
|
1607
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1716
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseCountsDataSourceModule, decorators: [{
|
|
1608
1717
|
type: NgModule,
|
|
1609
1718
|
args: [{
|
|
1610
|
-
declarations: [
|
|
1611
|
-
imports: [
|
|
1612
|
-
|
|
1613
|
-
|
|
1719
|
+
declarations: [CaseCountsConfigurationComponent],
|
|
1720
|
+
imports: [
|
|
1721
|
+
CommonModule,
|
|
1722
|
+
ReactiveFormsModule,
|
|
1723
|
+
WidgetTranslatePipeModule,
|
|
1724
|
+
InputModule$1,
|
|
1725
|
+
DropdownModule,
|
|
1726
|
+
CarbonMultiInputModule,
|
|
1727
|
+
InputModule$1,
|
|
1728
|
+
ButtonModule,
|
|
1729
|
+
TilesModule,
|
|
1730
|
+
LayerModule,
|
|
1731
|
+
IconModule,
|
|
1732
|
+
],
|
|
1733
|
+
exports: [CaseCountsConfigurationComponent],
|
|
1734
|
+
providers: [
|
|
1735
|
+
{ provide: DATA_SOURCE_TOKEN, useValue: caseCountsDataSourceSpecification, multi: true },
|
|
1736
|
+
],
|
|
1614
1737
|
}]
|
|
1615
1738
|
}] });
|
|
1616
1739
|
|
|
1617
1740
|
/*
|
|
1618
|
-
* Copyright 2015-
|
|
1741
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1619
1742
|
*
|
|
1620
1743
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1621
1744
|
* you may not use this file except in compliance with the License.
|
|
@@ -1631,7 +1754,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1631
1754
|
*/
|
|
1632
1755
|
|
|
1633
1756
|
/*
|
|
1634
|
-
* Copyright 2015-
|
|
1757
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1635
1758
|
*
|
|
1636
1759
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1637
1760
|
* you may not use this file except in compliance with the License.
|
|
@@ -1645,7 +1768,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1645
1768
|
* See the License for the specific language governing permissions and
|
|
1646
1769
|
* limitations under the License.
|
|
1647
1770
|
*/
|
|
1648
|
-
class
|
|
1771
|
+
class CaseGroupByConfigurationComponent {
|
|
1772
|
+
get documentDefinition() {
|
|
1773
|
+
return this.form.get('documentDefinition');
|
|
1774
|
+
}
|
|
1775
|
+
get path() {
|
|
1776
|
+
return this.form.get('path');
|
|
1777
|
+
}
|
|
1778
|
+
get queryConditions() {
|
|
1779
|
+
return this.form.get('queryConditions');
|
|
1780
|
+
}
|
|
1781
|
+
get enum() {
|
|
1782
|
+
return this.form.get('enum');
|
|
1783
|
+
}
|
|
1784
|
+
get formDisabled() {
|
|
1785
|
+
return this.form.disabled;
|
|
1786
|
+
}
|
|
1787
|
+
get formValue$() {
|
|
1788
|
+
return this.form.valueChanges.pipe(startWith(this.form.value));
|
|
1789
|
+
}
|
|
1649
1790
|
set disabled(disabledValue) {
|
|
1650
1791
|
if (disabledValue) {
|
|
1651
1792
|
this.form.disable();
|
|
@@ -1654,36 +1795,802 @@ class BigNumberConfigurationComponent {
|
|
|
1654
1795
|
this.form.enable();
|
|
1655
1796
|
}
|
|
1656
1797
|
}
|
|
1657
|
-
get title() {
|
|
1658
|
-
return this.form.get('title');
|
|
1659
|
-
}
|
|
1660
|
-
get subtitle() {
|
|
1661
|
-
return this.form.get('subtitle');
|
|
1662
|
-
}
|
|
1663
|
-
get label() {
|
|
1664
|
-
return this.form.get('label');
|
|
1665
|
-
}
|
|
1666
|
-
get useKPI() {
|
|
1667
|
-
return this.form.get('useKPI');
|
|
1668
|
-
}
|
|
1669
|
-
get lowSeverityThreshold() {
|
|
1670
|
-
return this.form.get('lowSeverityThreshold');
|
|
1671
|
-
}
|
|
1672
|
-
get mediumSeverityThreshold() {
|
|
1673
|
-
return this.form.get('mediumSeverityThreshold');
|
|
1674
|
-
}
|
|
1675
|
-
get highSeverityThreshold() {
|
|
1676
|
-
return this.form.get('highSeverityThreshold');
|
|
1677
|
-
}
|
|
1678
1798
|
set prefillConfiguration(configurationValue) {
|
|
1679
|
-
if (configurationValue)
|
|
1680
|
-
|
|
1681
|
-
|
|
1799
|
+
if (!configurationValue)
|
|
1800
|
+
return;
|
|
1801
|
+
this.documentDefinitionSelected({
|
|
1802
|
+
item: {
|
|
1803
|
+
content: configurationValue.documentDefinition,
|
|
1804
|
+
},
|
|
1805
|
+
});
|
|
1806
|
+
this.queryConditions.patchValue(this.queryConditionsToMultiInputValues(configurationValue.queryConditions));
|
|
1807
|
+
this.enum.patchValue(this.enumToMultiInputValues(configurationValue.enum));
|
|
1808
|
+
this.path.patchValue(configurationValue.path);
|
|
1809
|
+
}
|
|
1810
|
+
constructor(fb, documentService, translateService, widgetTranslationService) {
|
|
1811
|
+
this.fb = fb;
|
|
1812
|
+
this.documentService = documentService;
|
|
1813
|
+
this.translateService = translateService;
|
|
1814
|
+
this.widgetTranslationService = widgetTranslationService;
|
|
1815
|
+
this.form = this.fb.group({
|
|
1816
|
+
documentDefinition: this.fb.control(null, [Validators.required]),
|
|
1817
|
+
path: this.fb.control(null, [Validators.required]),
|
|
1818
|
+
queryConditions: this.fb.control([], [this.queryConditionsValidator()]),
|
|
1819
|
+
enum: this.fb.control([], [this.enumValidator()]),
|
|
1820
|
+
});
|
|
1821
|
+
this._selectedDocumentDefinition$ = new BehaviorSubject('');
|
|
1822
|
+
this.documentItems$ = combineLatest([
|
|
1823
|
+
this.documentService.getAllDefinitions(),
|
|
1824
|
+
this._selectedDocumentDefinition$,
|
|
1825
|
+
]).pipe(map(([documentDefinitions, selectedDocumentDefintion]) => documentDefinitions.content.map(definition => ({
|
|
1826
|
+
content: definition.id.name,
|
|
1827
|
+
selected: definition.id.name === selectedDocumentDefintion,
|
|
1828
|
+
}))));
|
|
1829
|
+
this._OPERATORS = [
|
|
1830
|
+
Operator.NOT_EQUAL_TO,
|
|
1831
|
+
Operator.EQUAL_TO,
|
|
1832
|
+
Operator.GREATER_THAN,
|
|
1833
|
+
Operator.GREATER_THAN_OR_EQUAL_TO,
|
|
1834
|
+
Operator.LESS_THAN,
|
|
1835
|
+
Operator.LESS_THAN_OR_EQUAL_TO,
|
|
1836
|
+
];
|
|
1837
|
+
this.operatorItems$ = this.translateService
|
|
1838
|
+
.stream('key')
|
|
1839
|
+
.pipe(map(() => this._OPERATORS.map(operator => ({
|
|
1840
|
+
id: operator,
|
|
1841
|
+
content: this.widgetTranslationService.instant(operator, this.dataSourceKey),
|
|
1842
|
+
selected: false,
|
|
1843
|
+
}))));
|
|
1844
|
+
this.configurationEvent = new EventEmitter();
|
|
1845
|
+
this._subscriptions = new Subscription();
|
|
1846
|
+
}
|
|
1847
|
+
ngOnInit() {
|
|
1848
|
+
this.openFormSubscription();
|
|
1849
|
+
}
|
|
1850
|
+
ngOnDestroy() {
|
|
1851
|
+
this._subscriptions.unsubscribe();
|
|
1852
|
+
}
|
|
1853
|
+
documentDefinitionSelected(documentDefinitionItem) {
|
|
1854
|
+
if (!documentDefinitionItem) {
|
|
1855
|
+
return;
|
|
1856
|
+
}
|
|
1857
|
+
this._selectedDocumentDefinition$.next(documentDefinitionItem?.item?.content);
|
|
1858
|
+
this.documentDefinition.setValue(documentDefinitionItem?.item?.content);
|
|
1859
|
+
}
|
|
1860
|
+
conditionsValueChange(values) {
|
|
1861
|
+
if (!values)
|
|
1862
|
+
return;
|
|
1863
|
+
const currentValue = this.queryConditions.value;
|
|
1864
|
+
if (isEqual(values, currentValue))
|
|
1865
|
+
return;
|
|
1866
|
+
this.queryConditions.patchValue(values);
|
|
1867
|
+
}
|
|
1868
|
+
enumValueChange(values) {
|
|
1869
|
+
if (!values)
|
|
1870
|
+
return;
|
|
1871
|
+
const currentValue = this.enum.value;
|
|
1872
|
+
if (isEqual(values, currentValue))
|
|
1873
|
+
return;
|
|
1874
|
+
this.enum.patchValue(values);
|
|
1875
|
+
}
|
|
1876
|
+
openFormSubscription() {
|
|
1877
|
+
this._subscriptions.add(this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {
|
|
1878
|
+
this.configurationEvent.emit({
|
|
1879
|
+
valid: this.form.valid,
|
|
1880
|
+
data: {
|
|
1881
|
+
...formValue,
|
|
1882
|
+
queryConditions: this.multiInputValuesToQueryConditions(formValue.queryConditions),
|
|
1883
|
+
enum: this.multiInputValuesToEnum(formValue.enum),
|
|
1884
|
+
},
|
|
1885
|
+
});
|
|
1886
|
+
}));
|
|
1887
|
+
}
|
|
1888
|
+
queryConditionsValidator() {
|
|
1889
|
+
return (control) => {
|
|
1890
|
+
const queryConditions = control.value;
|
|
1891
|
+
const validConditions = queryConditions.filter(condition => !!condition.value && !!condition.key && !!condition.dropdown);
|
|
1892
|
+
return validConditions.length === queryConditions.length
|
|
1893
|
+
? null
|
|
1894
|
+
: {
|
|
1895
|
+
invalidQueryItems: 'invalid',
|
|
1896
|
+
};
|
|
1897
|
+
};
|
|
1898
|
+
}
|
|
1899
|
+
enumValidator() {
|
|
1900
|
+
return (control) => {
|
|
1901
|
+
const enumeration = control.value || [];
|
|
1902
|
+
const enumLength = enumeration.length;
|
|
1903
|
+
const validEnumKeysLength = enumeration.filter(entry => !!entry.key).length;
|
|
1904
|
+
const validEnumValuesLength = enumeration.filter(entry => !!entry.value).length;
|
|
1905
|
+
return enumLength === validEnumKeysLength && enumLength === validEnumValuesLength
|
|
1906
|
+
? null
|
|
1907
|
+
: {
|
|
1908
|
+
invalidEnum: 'invalid',
|
|
1909
|
+
};
|
|
1910
|
+
};
|
|
1911
|
+
}
|
|
1912
|
+
enumToMultiInputValues(enumeration) {
|
|
1913
|
+
return Object.keys(enumeration || {}).reduce((acc, key) => [...acc, { key, value: enumeration[key] }], []);
|
|
1914
|
+
}
|
|
1915
|
+
multiInputValuesToEnum(values) {
|
|
1916
|
+
return (values || []).reduce((acc, curr) => ({ ...acc, [curr.key]: curr.value }), {});
|
|
1917
|
+
}
|
|
1918
|
+
queryConditionsToMultiInputValues(queryConditions) {
|
|
1919
|
+
return (queryConditions || []).map(condition => ({
|
|
1920
|
+
key: condition.queryPath,
|
|
1921
|
+
dropdown: condition.queryOperator,
|
|
1922
|
+
value: condition.queryValue,
|
|
1923
|
+
}));
|
|
1924
|
+
}
|
|
1925
|
+
multiInputValuesToQueryConditions(values) {
|
|
1926
|
+
return (values || []).map(condition => ({
|
|
1927
|
+
queryPath: condition.key,
|
|
1928
|
+
queryOperator: condition.dropdown,
|
|
1929
|
+
queryValue: condition.value,
|
|
1930
|
+
}));
|
|
1931
|
+
}
|
|
1932
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseGroupByConfigurationComponent, deps: [{ token: i1$3.FormBuilder }, { token: i2$2.DocumentService }, { token: i3$1.TranslateService }, { token: WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1933
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: CaseGroupByConfigurationComponent, selector: "ng-component", inputs: { dataSourceKey: "dataSourceKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n formValue: formValue$ | async\n } 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\">\n <cds-label\n [helperText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"path.dirty && path.invalid\"\n >\n {{ 'path' | widgetTranslate: dataSourceKey | async }}\n\n <input cdsText formControlName=\"path\" [invalid]=\"path.dirty && path.invalid\" />\n </cds-label>\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]=\"obs.formValue?.queryConditions\"\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 (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'enumHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'enum' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addDisplay' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.formValue?.enum\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'displayValue' | widgetTranslate: dataSourceKey | async\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i5.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i1$1.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1934
|
+
}
|
|
1935
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseGroupByConfigurationComponent, decorators: [{
|
|
1936
|
+
type: Component,
|
|
1937
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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=\"{\n documentItems: documentItems$ | async,\n operatorItems: operatorItems$,\n formValue: formValue$ | async\n } 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\">\n <cds-label\n [helperText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalidText]=\"'pathHelperText' | widgetTranslate: dataSourceKey | async\"\n [invalid]=\"path.dirty && path.invalid\"\n >\n {{ 'path' | widgetTranslate: dataSourceKey | async }}\n\n <input cdsText formControlName=\"path\" [invalid]=\"path.dirty && path.invalid\" />\n </cds-label>\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]=\"obs.formValue?.queryConditions\"\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 (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'enumHelperText' | widgetTranslate: dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'enum' | widgetTranslate: dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addDisplay' | widgetTranslate: dataSourceKey | async\"\n [defaultValues]=\"obs.formValue?.enum\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'value' | widgetTranslate: dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'displayValue' | widgetTranslate: dataSourceKey | async\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", styles: ["::ng-deep .case-count-configuration-form .conditions-label{margin-bottom:16px}::ng-deep .case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
1938
|
+
}], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: i2$2.DocumentService }, { type: i3$1.TranslateService }, { type: WidgetTranslationService }], propDecorators: { dataSourceKey: [{
|
|
1939
|
+
type: Input
|
|
1940
|
+
}], disabled: [{
|
|
1941
|
+
type: Input
|
|
1942
|
+
}], prefillConfiguration: [{
|
|
1943
|
+
type: Input
|
|
1944
|
+
}], configurationEvent: [{
|
|
1945
|
+
type: Output
|
|
1946
|
+
}] } });
|
|
1947
|
+
|
|
1948
|
+
/*
|
|
1949
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1950
|
+
*
|
|
1951
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1952
|
+
* you may not use this file except in compliance with the License.
|
|
1953
|
+
* You may obtain a copy of the License at
|
|
1954
|
+
*
|
|
1955
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1956
|
+
*
|
|
1957
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1958
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1959
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1960
|
+
* See the License for the specific language governing permissions and
|
|
1961
|
+
* limitations under the License.
|
|
1962
|
+
*/
|
|
1963
|
+
|
|
1964
|
+
/*
|
|
1965
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1966
|
+
*
|
|
1967
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1968
|
+
* you may not use this file except in compliance with the License.
|
|
1969
|
+
* You may obtain a copy of the License at
|
|
1970
|
+
*
|
|
1971
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1972
|
+
*
|
|
1973
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1974
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1975
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1976
|
+
* See the License for the specific language governing permissions and
|
|
1977
|
+
* limitations under the License.
|
|
1978
|
+
*/
|
|
1979
|
+
|
|
1980
|
+
/*
|
|
1981
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1982
|
+
*
|
|
1983
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1984
|
+
* you may not use this file except in compliance with the License.
|
|
1985
|
+
* You may obtain a copy of the License at
|
|
1986
|
+
*
|
|
1987
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
1988
|
+
*
|
|
1989
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1990
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
1991
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1992
|
+
* See the License for the specific language governing permissions and
|
|
1993
|
+
* limitations under the License.
|
|
1994
|
+
*/
|
|
1995
|
+
|
|
1996
|
+
/*
|
|
1997
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1998
|
+
*
|
|
1999
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2000
|
+
* you may not use this file except in compliance with the License.
|
|
2001
|
+
* You may obtain a copy of the License at
|
|
2002
|
+
*
|
|
2003
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2004
|
+
*
|
|
2005
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2006
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2007
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2008
|
+
* See the License for the specific language governing permissions and
|
|
2009
|
+
* limitations under the License.
|
|
2010
|
+
*/
|
|
2011
|
+
|
|
2012
|
+
/*
|
|
2013
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2014
|
+
*
|
|
2015
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2016
|
+
* you may not use this file except in compliance with the License.
|
|
2017
|
+
* You may obtain a copy of the License at
|
|
2018
|
+
*
|
|
2019
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2020
|
+
*
|
|
2021
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2022
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2023
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2024
|
+
* See the License for the specific language governing permissions and
|
|
2025
|
+
* limitations under the License.
|
|
2026
|
+
*/
|
|
2027
|
+
const caseGroupByDataSourceSpecification = {
|
|
2028
|
+
dataSourceKey: 'case-group-by',
|
|
2029
|
+
configurationComponent: CaseGroupByConfigurationComponent,
|
|
2030
|
+
translations: {
|
|
2031
|
+
de: {
|
|
2032
|
+
title: 'Gruppe',
|
|
2033
|
+
documentDefinition: 'Falltyp (erforderlich)',
|
|
2034
|
+
documentDefinitionHelperText: 'Der Falltyp, für den die Anzahl abgerufen wird',
|
|
2035
|
+
'!=': 'Nicht gleichzusetzen mit',
|
|
2036
|
+
'==': 'Gleich',
|
|
2037
|
+
'>': 'Größer als',
|
|
2038
|
+
'>=': 'Größer als oder gleich wie',
|
|
2039
|
+
'<': 'Weniger als',
|
|
2040
|
+
'<=': 'Gleich oder kleiner als',
|
|
2041
|
+
path: 'Pfad',
|
|
2042
|
+
pathHelperText: 'Der Pfad innerhalb der Fall, deren Werte gruppiert werden sollen',
|
|
2043
|
+
operator: 'Operator',
|
|
2044
|
+
value: 'Wert',
|
|
2045
|
+
conditions: 'Bedingungen',
|
|
2046
|
+
conditionsHelperText: "Geben Sie optionale Bedingungen zum Abrufen der Gruppierung für den ausgewählten Falltyp an. Zum Beispiel: 'case:createdBy', 'Nicht gleichzusetzen mit', 'test@test.com'.",
|
|
2047
|
+
addCondition: 'Bedingung hinzufügen',
|
|
2048
|
+
enum: 'Anzeige der Werte',
|
|
2049
|
+
enumHelperText: "Einige Werte aus der Datenbank sind für den Endbenutzer nicht lesbar. Geben Sie hier an, wie die Werte angezeigt werden sollen. Beispiel: Wert: 'anfrage-gesendet', Anzeige: 'Anfrage gesendet'.",
|
|
2050
|
+
displayValue: 'Anzeige',
|
|
2051
|
+
addDisplay: 'Ansicht hinzufügen',
|
|
2052
|
+
},
|
|
2053
|
+
en: {
|
|
2054
|
+
title: 'Group by',
|
|
2055
|
+
documentDefinition: 'Case type (required)',
|
|
2056
|
+
documentDefinitionHelperText: 'The case type for which the count is retrieved',
|
|
2057
|
+
'!=': 'Not equal to',
|
|
2058
|
+
'==': 'Equal to',
|
|
2059
|
+
'>': 'Greater than',
|
|
2060
|
+
'>=': 'Greater than or equal to',
|
|
2061
|
+
'<': 'Less than',
|
|
2062
|
+
'<=': 'Less than or equal to',
|
|
2063
|
+
path: 'Path (required)',
|
|
2064
|
+
pathHelperText: 'The path within the case of which the values should be grouped',
|
|
2065
|
+
operator: 'Operator',
|
|
2066
|
+
value: 'Value',
|
|
2067
|
+
conditions: 'Conditions',
|
|
2068
|
+
conditionsHelperText: "Specify optional conditions for retrieving the grouping for the selected case type. For example: 'case:createdBy', 'Not equal to', 'test@test.com'. To compare with empty values, '${null}' can be entered as a value. To compare with the current date, '${localDateTimeNow}' can be entered as a value. This also supports, for example, the following logic: '${localDateTimeNow.minusWeeks(2)}'.",
|
|
2069
|
+
addCondition: 'Add condition',
|
|
2070
|
+
enum: 'Display of values',
|
|
2071
|
+
enumHelperText: "Some values from the database will not be readable by the end user. Specify here how the values should be displayed. For example: Value: 'request-sent', Display: 'Request sent'.",
|
|
2072
|
+
displayValue: 'Display',
|
|
2073
|
+
addDisplay: 'Add display',
|
|
2074
|
+
},
|
|
2075
|
+
nl: {
|
|
2076
|
+
title: 'Groepering',
|
|
2077
|
+
documentDefinition: 'Dossiertype (vereist)',
|
|
2078
|
+
documentDefinitionHelperText: 'Het dossiertype waarvoor de telling wordt opgehaald',
|
|
2079
|
+
'!=': 'Niet gelijk aan',
|
|
2080
|
+
'==': 'Gelijk aan',
|
|
2081
|
+
'>': 'Groter dan',
|
|
2082
|
+
'>=': 'Groter dan of gelijk aan',
|
|
2083
|
+
'<': 'Minder dan',
|
|
2084
|
+
'<=': 'Minder dan of gelijk aan',
|
|
2085
|
+
path: 'Pad',
|
|
2086
|
+
pathHelperText: 'Het pad binnen het dossier waarvan de waardes gegroepeerd moeten worden',
|
|
2087
|
+
operator: 'Operator',
|
|
2088
|
+
value: 'Waarde',
|
|
2089
|
+
conditions: 'Condities',
|
|
2090
|
+
conditionsHelperText: "Geef optionele condities op voor het ophalen van de groepering voor het geselecteerde dossiertype. Bijvoorbeeld: 'case:createdBy', 'Niet gelijk aan', 'test@test.com'. Voor het vergelijken met lege waardes kan '${null}' ingevuld worden als waarde. Voor het vergelijken met de huidige datum kan '${localDateTimeNow}' ingevuld worden als waarde. Deze ondersteunt ook bijvoorbeeld de volgende logica: '${localDateTimeNow.minusWeeks(2)}'.",
|
|
2091
|
+
addCondition: 'Conditie toevoegen',
|
|
2092
|
+
enum: 'Weergave van waardes',
|
|
2093
|
+
enumHelperText: "Sommige waardes uit de database zullen niet leesbaar zijn voor de eindgebruiker. Geef hier op hoe de waardes weergegeven moeten worden. Bijvoorbeeld: Waarde: 'aanvraag-verzonden', Weergave: 'Aanvraag verzonden'.",
|
|
2094
|
+
displayValue: 'Weergave',
|
|
2095
|
+
addDisplay: 'Weergave toevoegen',
|
|
2096
|
+
},
|
|
2097
|
+
},
|
|
2098
|
+
};
|
|
2099
|
+
|
|
2100
|
+
/*
|
|
2101
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2102
|
+
*
|
|
2103
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2104
|
+
* you may not use this file except in compliance with the License.
|
|
2105
|
+
* You may obtain a copy of the License at
|
|
2106
|
+
*
|
|
2107
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2108
|
+
*
|
|
2109
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2110
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2111
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2112
|
+
* See the License for the specific language governing permissions and
|
|
2113
|
+
* limitations under the License.
|
|
2114
|
+
*/
|
|
2115
|
+
class CaseGroupByDataSourceModule {
|
|
2116
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseGroupByDataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2117
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: CaseGroupByDataSourceModule, declarations: [CaseGroupByConfigurationComponent], imports: [CommonModule,
|
|
2118
|
+
ReactiveFormsModule,
|
|
2119
|
+
WidgetTranslatePipeModule,
|
|
2120
|
+
InputModule,
|
|
2121
|
+
DropdownModule,
|
|
2122
|
+
CarbonMultiInputModule], exports: [CaseGroupByConfigurationComponent] }); }
|
|
2123
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseGroupByDataSourceModule, providers: [
|
|
2124
|
+
{ provide: DATA_SOURCE_TOKEN, useValue: caseGroupByDataSourceSpecification, multi: true },
|
|
2125
|
+
], imports: [CommonModule,
|
|
2126
|
+
ReactiveFormsModule,
|
|
2127
|
+
WidgetTranslatePipeModule,
|
|
2128
|
+
InputModule,
|
|
2129
|
+
DropdownModule,
|
|
2130
|
+
CarbonMultiInputModule] }); }
|
|
2131
|
+
}
|
|
2132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: CaseGroupByDataSourceModule, decorators: [{
|
|
2133
|
+
type: NgModule,
|
|
2134
|
+
args: [{
|
|
2135
|
+
declarations: [CaseGroupByConfigurationComponent],
|
|
2136
|
+
imports: [
|
|
2137
|
+
CommonModule,
|
|
2138
|
+
ReactiveFormsModule,
|
|
2139
|
+
WidgetTranslatePipeModule,
|
|
2140
|
+
InputModule,
|
|
2141
|
+
DropdownModule,
|
|
2142
|
+
CarbonMultiInputModule,
|
|
2143
|
+
],
|
|
2144
|
+
exports: [CaseGroupByConfigurationComponent],
|
|
2145
|
+
providers: [
|
|
2146
|
+
{ provide: DATA_SOURCE_TOKEN, useValue: caseGroupByDataSourceSpecification, multi: true },
|
|
2147
|
+
],
|
|
2148
|
+
}]
|
|
2149
|
+
}] });
|
|
2150
|
+
|
|
2151
|
+
/*
|
|
2152
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2153
|
+
*
|
|
2154
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2155
|
+
* you may not use this file except in compliance with the License.
|
|
2156
|
+
* You may obtain a copy of the License at
|
|
2157
|
+
*
|
|
2158
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2159
|
+
*
|
|
2160
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2161
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2162
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2163
|
+
* See the License for the specific language governing permissions and
|
|
2164
|
+
* limitations under the License.
|
|
2165
|
+
*/
|
|
2166
|
+
|
|
2167
|
+
/*
|
|
2168
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2169
|
+
*
|
|
2170
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2171
|
+
* you may not use this file except in compliance with the License.
|
|
2172
|
+
* You may obtain a copy of the License at
|
|
2173
|
+
*
|
|
2174
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2175
|
+
*
|
|
2176
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2177
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2178
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2179
|
+
* See the License for the specific language governing permissions and
|
|
2180
|
+
* limitations under the License.
|
|
2181
|
+
*/
|
|
2182
|
+
|
|
2183
|
+
/*
|
|
2184
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2185
|
+
*
|
|
2186
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2187
|
+
* you may not use this file except in compliance with the License.
|
|
2188
|
+
* You may obtain a copy of the License at
|
|
2189
|
+
*
|
|
2190
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2191
|
+
*
|
|
2192
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2193
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2194
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2195
|
+
* See the License for the specific language governing permissions and
|
|
2196
|
+
* limitations under the License.
|
|
2197
|
+
*/
|
|
2198
|
+
class BigNumberConfigurationComponent {
|
|
2199
|
+
set disabled(disabledValue) {
|
|
2200
|
+
if (disabledValue) {
|
|
2201
|
+
this.form.disable();
|
|
2202
|
+
}
|
|
2203
|
+
else {
|
|
2204
|
+
this.form.enable();
|
|
2205
|
+
}
|
|
2206
|
+
}
|
|
2207
|
+
get title() {
|
|
2208
|
+
return this.form.get('title');
|
|
2209
|
+
}
|
|
2210
|
+
get subtitle() {
|
|
2211
|
+
return this.form.get('subtitle');
|
|
2212
|
+
}
|
|
2213
|
+
get label() {
|
|
2214
|
+
return this.form.get('label');
|
|
2215
|
+
}
|
|
2216
|
+
get useKPI() {
|
|
2217
|
+
return this.form.get('useKPI');
|
|
2218
|
+
}
|
|
2219
|
+
get lowSeverityThreshold() {
|
|
2220
|
+
return this.form.get('lowSeverityThreshold');
|
|
2221
|
+
}
|
|
2222
|
+
get mediumSeverityThreshold() {
|
|
2223
|
+
return this.form.get('mediumSeverityThreshold');
|
|
2224
|
+
}
|
|
2225
|
+
get highSeverityThreshold() {
|
|
2226
|
+
return this.form.get('highSeverityThreshold');
|
|
2227
|
+
}
|
|
2228
|
+
set prefillConfiguration(configurationValue) {
|
|
2229
|
+
if (configurationValue) {
|
|
2230
|
+
this.title.setValue(configurationValue.title || '');
|
|
2231
|
+
this.subtitle.setValue(configurationValue.subtitle || '');
|
|
2232
|
+
this.label.setValue(configurationValue.label || '');
|
|
2233
|
+
this.useKPI.setValue(configurationValue.useKPI || false);
|
|
2234
|
+
this.lowSeverityThreshold.setValue(configurationValue.lowSeverityThreshold || null);
|
|
2235
|
+
this.mediumSeverityThreshold.setValue(configurationValue.mediumSeverityThreshold || null);
|
|
2236
|
+
this.highSeverityThreshold.setValue(configurationValue.highSeverityThreshold || null);
|
|
2237
|
+
}
|
|
2238
|
+
}
|
|
2239
|
+
constructor(fb) {
|
|
2240
|
+
this.fb = fb;
|
|
2241
|
+
this.form = this.fb.group({
|
|
2242
|
+
title: this.fb.control('', [Validators.required]),
|
|
2243
|
+
subtitle: this.fb.control(''),
|
|
2244
|
+
label: this.fb.control(''),
|
|
2245
|
+
useKPI: this.fb.control(false, [Validators.required]),
|
|
2246
|
+
lowSeverityThreshold: this.fb.control(null),
|
|
2247
|
+
mediumSeverityThreshold: this.fb.control(null),
|
|
2248
|
+
highSeverityThreshold: this.fb.control(null),
|
|
2249
|
+
});
|
|
2250
|
+
this.configurationEvent = new EventEmitter();
|
|
2251
|
+
this._subscriptions = new Subscription();
|
|
2252
|
+
}
|
|
2253
|
+
ngOnInit() {
|
|
2254
|
+
this.openFormSubscription();
|
|
2255
|
+
this.openKPISubscription();
|
|
2256
|
+
}
|
|
2257
|
+
ngOnDestroy() {
|
|
2258
|
+
this._subscriptions.unsubscribe();
|
|
2259
|
+
}
|
|
2260
|
+
openFormSubscription() {
|
|
2261
|
+
this._subscriptions.add(this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {
|
|
2262
|
+
this.configurationEvent.emit({ valid: this.form.valid, data: formValue });
|
|
2263
|
+
}));
|
|
2264
|
+
}
|
|
2265
|
+
openKPISubscription() {
|
|
2266
|
+
this._subscriptions.add(this.useKPI.valueChanges.pipe(startWith(this.useKPI.value)).subscribe(useKpi => {
|
|
2267
|
+
const validators = [Validators.required];
|
|
2268
|
+
if (useKpi) {
|
|
2269
|
+
this.lowSeverityThreshold.setValidators(validators);
|
|
2270
|
+
this.mediumSeverityThreshold.setValidators(validators);
|
|
2271
|
+
this.highSeverityThreshold.setValidators(validators);
|
|
2272
|
+
}
|
|
2273
|
+
else {
|
|
2274
|
+
this.lowSeverityThreshold.clearValidators();
|
|
2275
|
+
this.mediumSeverityThreshold.clearValidators();
|
|
2276
|
+
this.highSeverityThreshold.clearValidators();
|
|
2277
|
+
}
|
|
2278
|
+
this.lowSeverityThreshold.updateValueAndValidity();
|
|
2279
|
+
this.mediumSeverityThreshold.updateValueAndValidity();
|
|
2280
|
+
this.highSeverityThreshold.updateValueAndValidity();
|
|
2281
|
+
}));
|
|
2282
|
+
}
|
|
2283
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BigNumberConfigurationComponent, deps: [{ token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2284
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: BigNumberConfigurationComponent, selector: "ng-component", inputs: { displayTypeKey: "displayTypeKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i5.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i5.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2285
|
+
}
|
|
2286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BigNumberConfigurationComponent, decorators: [{
|
|
2287
|
+
type: Component,
|
|
2288
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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" }]
|
|
2289
|
+
}], ctorParameters: () => [{ type: i1$3.FormBuilder }], propDecorators: { displayTypeKey: [{
|
|
2290
|
+
type: Input
|
|
2291
|
+
}], disabled: [{
|
|
2292
|
+
type: Input
|
|
2293
|
+
}], prefillConfiguration: [{
|
|
2294
|
+
type: Input
|
|
2295
|
+
}], configurationEvent: [{
|
|
2296
|
+
type: Output
|
|
2297
|
+
}] } });
|
|
2298
|
+
|
|
2299
|
+
/*
|
|
2300
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2301
|
+
*
|
|
2302
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2303
|
+
* you may not use this file except in compliance with the License.
|
|
2304
|
+
* You may obtain a copy of the License at
|
|
2305
|
+
*
|
|
2306
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2307
|
+
*
|
|
2308
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2309
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2310
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2311
|
+
* See the License for the specific language governing permissions and
|
|
2312
|
+
* limitations under the License.
|
|
2313
|
+
*/
|
|
2314
|
+
|
|
2315
|
+
/*
|
|
2316
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2317
|
+
*
|
|
2318
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2319
|
+
* you may not use this file except in compliance with the License.
|
|
2320
|
+
* You may obtain a copy of the License at
|
|
2321
|
+
*
|
|
2322
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2323
|
+
*
|
|
2324
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2325
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2326
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2327
|
+
* See the License for the specific language governing permissions and
|
|
2328
|
+
* limitations under the License.
|
|
2329
|
+
*/
|
|
2330
|
+
class BigNumberDisplayComponent {
|
|
2331
|
+
get severityClass() {
|
|
2332
|
+
if (!this.displayTypeProperties.useKPI) {
|
|
2333
|
+
return WidgetSeverity.BLACK;
|
|
2334
|
+
}
|
|
2335
|
+
const value = this.data?.value;
|
|
2336
|
+
if (value < this.displayTypeProperties.lowSeverityThreshold) {
|
|
2337
|
+
return WidgetSeverity.GREEN;
|
|
2338
|
+
}
|
|
2339
|
+
else if (value < this.displayTypeProperties.mediumSeverityThreshold) {
|
|
2340
|
+
return WidgetSeverity.YELLOW;
|
|
2341
|
+
}
|
|
2342
|
+
else if (value < this.displayTypeProperties.highSeverityThreshold) {
|
|
2343
|
+
return WidgetSeverity.ORANGE;
|
|
2344
|
+
}
|
|
2345
|
+
return WidgetSeverity.RED;
|
|
2346
|
+
}
|
|
2347
|
+
get numberFontSize() {
|
|
2348
|
+
if (!this.data) {
|
|
2349
|
+
return 122;
|
|
2350
|
+
}
|
|
2351
|
+
return Math.floor(122 / this.data.value.toString().length) + 20;
|
|
2352
|
+
}
|
|
2353
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BigNumberDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2354
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: BigNumberDisplayComponent, selector: "valtimo-big-number-display", inputs: { displayTypeKey: "displayTypeKey", data: "data", displayTypeProperties: "displayTypeProperties" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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", styles: [":host{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px}.valtimo-big-number-widget__title,.valtimo-big-number-widget__subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.valtimo-big-number-widget__title{font-size:20px;margin-bottom:12px}.valtimo-big-number-widget__subtitle{font-size:14px}.valtimo-big-number-widget__number{font-weight:lighter;font-size:122px;line-height:.75em}.valtimo-big-number-widget__label{font-size:12px;margin-left:12px;margin-bottom:-1px}.valtimo-big-number-widget__content{display:flex;align-items:flex-end}.valtimo-severity__black{color:#000}.valtimo-severity__green{color:#42be65}.valtimo-severity__yellow{color:#f1c21b}.valtimo-severity__orange{color:#ff832b}.valtimo-severity__red{color:#da1e28}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2355
|
+
}
|
|
2356
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BigNumberDisplayComponent, decorators: [{
|
|
2357
|
+
type: Component,
|
|
2358
|
+
args: [{ selector: 'valtimo-big-number-display', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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", styles: [":host{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px}.valtimo-big-number-widget__title,.valtimo-big-number-widget__subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.valtimo-big-number-widget__title{font-size:20px;margin-bottom:12px}.valtimo-big-number-widget__subtitle{font-size:14px}.valtimo-big-number-widget__number{font-weight:lighter;font-size:122px;line-height:.75em}.valtimo-big-number-widget__label{font-size:12px;margin-left:12px;margin-bottom:-1px}.valtimo-big-number-widget__content{display:flex;align-items:flex-end}.valtimo-severity__black{color:#000}.valtimo-severity__green{color:#42be65}.valtimo-severity__yellow{color:#f1c21b}.valtimo-severity__orange{color:#ff832b}.valtimo-severity__red{color:#da1e28}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
2359
|
+
}], propDecorators: { displayTypeKey: [{
|
|
2360
|
+
type: Input
|
|
2361
|
+
}], data: [{
|
|
2362
|
+
type: Input
|
|
2363
|
+
}], displayTypeProperties: [{
|
|
2364
|
+
type: Input
|
|
2365
|
+
}] } });
|
|
2366
|
+
|
|
2367
|
+
/*
|
|
2368
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2369
|
+
*
|
|
2370
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2371
|
+
* you may not use this file except in compliance with the License.
|
|
2372
|
+
* You may obtain a copy of the License at
|
|
2373
|
+
*
|
|
2374
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2375
|
+
*
|
|
2376
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2377
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2378
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2379
|
+
* See the License for the specific language governing permissions and
|
|
2380
|
+
* limitations under the License.
|
|
2381
|
+
*/
|
|
2382
|
+
|
|
2383
|
+
/*
|
|
2384
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2385
|
+
*
|
|
2386
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2387
|
+
* you may not use this file except in compliance with the License.
|
|
2388
|
+
* You may obtain a copy of the License at
|
|
2389
|
+
*
|
|
2390
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2391
|
+
*
|
|
2392
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2393
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2394
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2395
|
+
* See the License for the specific language governing permissions and
|
|
2396
|
+
* limitations under the License.
|
|
2397
|
+
*/
|
|
2398
|
+
|
|
2399
|
+
/*
|
|
2400
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2401
|
+
*
|
|
2402
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2403
|
+
* you may not use this file except in compliance with the License.
|
|
2404
|
+
* You may obtain a copy of the License at
|
|
2405
|
+
*
|
|
2406
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2407
|
+
*
|
|
2408
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2409
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2410
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2411
|
+
* See the License for the specific language governing permissions and
|
|
2412
|
+
* limitations under the License.
|
|
2413
|
+
*/
|
|
2414
|
+
const bigNumberSpecification = {
|
|
2415
|
+
displayTypeKey: 'number',
|
|
2416
|
+
displayComponent: BigNumberDisplayComponent,
|
|
2417
|
+
configurationComponent: BigNumberConfigurationComponent,
|
|
2418
|
+
width: 1,
|
|
2419
|
+
height: 1,
|
|
2420
|
+
translations: {
|
|
2421
|
+
nl: {
|
|
2422
|
+
title: 'Groot getal',
|
|
2423
|
+
formTitle: 'Titel (vereist)',
|
|
2424
|
+
formTitleHelperText: 'De titel die wordt weergegeven in de widget',
|
|
2425
|
+
subtitle: 'Ondertitel',
|
|
2426
|
+
subtitleHelperText: 'De ondertitel weergegeven in de widget',
|
|
2427
|
+
label: 'Label',
|
|
2428
|
+
labelHelperText: 'Het label dat wordt weergegeven in de widget',
|
|
2429
|
+
useKPI: 'KPI gebruiken',
|
|
2430
|
+
lowSeverityThreshold: 'Lage ernstdrempel (vereist)',
|
|
2431
|
+
mediumSeverityThreshold: 'Middelmatige ernstdrempel (vereist)',
|
|
2432
|
+
highSeverityThreshold: 'Hoge ernstdrempel (vereist)',
|
|
2433
|
+
},
|
|
2434
|
+
en: {
|
|
2435
|
+
title: 'Big number',
|
|
2436
|
+
formTitle: 'Title (required)',
|
|
2437
|
+
formTitleHelperText: 'The title displayed in the widget',
|
|
2438
|
+
subtitle: 'Subtitle',
|
|
2439
|
+
subtitleHelperText: 'The subtitle displayed in the widget',
|
|
2440
|
+
label: 'Label',
|
|
2441
|
+
labelHelperText: 'The label displayed in the widget',
|
|
2442
|
+
useKPI: 'Use KPI',
|
|
2443
|
+
lowSeverityThreshold: 'Low severity threshold (required)',
|
|
2444
|
+
mediumSeverityThreshold: 'Medium severity threshold (required)',
|
|
2445
|
+
highSeverityThreshold: 'High severity threshold (required)',
|
|
2446
|
+
},
|
|
2447
|
+
de: {
|
|
2448
|
+
title: 'Große Nummer',
|
|
2449
|
+
formTitle: 'Titel (erforderlich)',
|
|
2450
|
+
formTitleHelperText: 'Der im Widget angezeigte Titel',
|
|
2451
|
+
subtitle: 'Untertitel',
|
|
2452
|
+
subtitleHelperText: 'Der im Widget angezeigte Untertitel',
|
|
2453
|
+
label: 'Beschriftung',
|
|
2454
|
+
labelHelperText: 'Die im Widget angezeigte Beschriftung',
|
|
2455
|
+
useKPI: 'Verwenden Sie KPI',
|
|
2456
|
+
lowSeverityThreshold: 'Niedriger Schweregradschwellenwert (erforderlich)',
|
|
2457
|
+
mediumSeverityThreshold: 'Mittlerer Schweregradschwellenwert (erforderlich)',
|
|
2458
|
+
highSeverityThreshold: 'Hoher Schweregradschwellenwert (erforderlich)',
|
|
2459
|
+
},
|
|
2460
|
+
},
|
|
2461
|
+
requiredDataFeatures: [DATA_FEATURES.NUMBER],
|
|
2462
|
+
};
|
|
2463
|
+
|
|
2464
|
+
/*
|
|
2465
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2466
|
+
*
|
|
2467
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2468
|
+
* you may not use this file except in compliance with the License.
|
|
2469
|
+
* You may obtain a copy of the License at
|
|
2470
|
+
*
|
|
2471
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2472
|
+
*
|
|
2473
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2474
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2475
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2476
|
+
* See the License for the specific language governing permissions and
|
|
2477
|
+
* limitations under the License.
|
|
2478
|
+
*/
|
|
2479
|
+
class BigNumberModule {
|
|
2480
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BigNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2481
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: BigNumberModule, declarations: [BigNumberDisplayComponent, BigNumberConfigurationComponent], imports: [CommonModule,
|
|
2482
|
+
ReactiveFormsModule,
|
|
2483
|
+
WidgetTranslatePipeModule,
|
|
2484
|
+
InputModule,
|
|
2485
|
+
CheckboxModule], exports: [BigNumberDisplayComponent] }); }
|
|
2486
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BigNumberModule, providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: bigNumberSpecification, multi: true }], imports: [CommonModule,
|
|
2487
|
+
ReactiveFormsModule,
|
|
2488
|
+
WidgetTranslatePipeModule,
|
|
2489
|
+
InputModule,
|
|
2490
|
+
CheckboxModule] }); }
|
|
2491
|
+
}
|
|
2492
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BigNumberModule, decorators: [{
|
|
2493
|
+
type: NgModule,
|
|
2494
|
+
args: [{
|
|
2495
|
+
declarations: [BigNumberDisplayComponent, BigNumberConfigurationComponent],
|
|
2496
|
+
imports: [
|
|
2497
|
+
CommonModule,
|
|
2498
|
+
ReactiveFormsModule,
|
|
2499
|
+
WidgetTranslatePipeModule,
|
|
2500
|
+
InputModule,
|
|
2501
|
+
CheckboxModule,
|
|
2502
|
+
],
|
|
2503
|
+
exports: [BigNumberDisplayComponent],
|
|
2504
|
+
providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: bigNumberSpecification, multi: true }],
|
|
2505
|
+
}]
|
|
2506
|
+
}] });
|
|
2507
|
+
|
|
2508
|
+
/*
|
|
2509
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2510
|
+
*
|
|
2511
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2512
|
+
* you may not use this file except in compliance with the License.
|
|
2513
|
+
* You may obtain a copy of the License at
|
|
2514
|
+
*
|
|
2515
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2516
|
+
*
|
|
2517
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2518
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2519
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2520
|
+
* See the License for the specific language governing permissions and
|
|
2521
|
+
* limitations under the License.
|
|
2522
|
+
*/
|
|
2523
|
+
|
|
2524
|
+
/*
|
|
2525
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2526
|
+
*
|
|
2527
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2528
|
+
* you may not use this file except in compliance with the License.
|
|
2529
|
+
* You may obtain a copy of the License at
|
|
2530
|
+
*
|
|
2531
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2532
|
+
*
|
|
2533
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2534
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2535
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2536
|
+
* See the License for the specific language governing permissions and
|
|
2537
|
+
* limitations under the License.
|
|
2538
|
+
*/
|
|
2539
|
+
|
|
2540
|
+
/*
|
|
2541
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2542
|
+
*
|
|
2543
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2544
|
+
* you may not use this file except in compliance with the License.
|
|
2545
|
+
* You may obtain a copy of the License at
|
|
2546
|
+
*
|
|
2547
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2548
|
+
*
|
|
2549
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2550
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2551
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2552
|
+
* See the License for the specific language governing permissions and
|
|
2553
|
+
* limitations under the License.
|
|
2554
|
+
*/
|
|
2555
|
+
|
|
2556
|
+
/*
|
|
2557
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2558
|
+
*
|
|
2559
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2560
|
+
* you may not use this file except in compliance with the License.
|
|
2561
|
+
* You may obtain a copy of the License at
|
|
2562
|
+
*
|
|
2563
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2564
|
+
*
|
|
2565
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2566
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2567
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2568
|
+
* See the License for the specific language governing permissions and
|
|
2569
|
+
* limitations under the License.
|
|
2570
|
+
*/
|
|
2571
|
+
class DonutConfigurationComponent {
|
|
2572
|
+
set disabled(disabledValue) {
|
|
2573
|
+
if (disabledValue) {
|
|
2574
|
+
this.form.disable();
|
|
2575
|
+
}
|
|
2576
|
+
else {
|
|
2577
|
+
this.form.enable();
|
|
2578
|
+
}
|
|
2579
|
+
}
|
|
2580
|
+
get title() {
|
|
2581
|
+
return this.form.get('title');
|
|
2582
|
+
}
|
|
2583
|
+
get subtitle() {
|
|
2584
|
+
return this.form.get('subtitle');
|
|
2585
|
+
}
|
|
2586
|
+
get label() {
|
|
2587
|
+
return this.form.get('label');
|
|
2588
|
+
}
|
|
2589
|
+
set prefillConfiguration(configurationValue) {
|
|
2590
|
+
if (configurationValue) {
|
|
2591
|
+
this.title.setValue(configurationValue.title || '');
|
|
2592
|
+
this.subtitle.setValue(configurationValue.subtitle || '');
|
|
1682
2593
|
this.label.setValue(configurationValue.label || '');
|
|
1683
|
-
this.useKPI.setValue(configurationValue.useKPI || false);
|
|
1684
|
-
this.lowSeverityThreshold.setValue(configurationValue.lowSeverityThreshold || null);
|
|
1685
|
-
this.mediumSeverityThreshold.setValue(configurationValue.mediumSeverityThreshold || null);
|
|
1686
|
-
this.highSeverityThreshold.setValue(configurationValue.highSeverityThreshold || null);
|
|
1687
2594
|
}
|
|
1688
2595
|
}
|
|
1689
2596
|
constructor(fb) {
|
|
@@ -1693,50 +2600,31 @@ class BigNumberConfigurationComponent {
|
|
|
1693
2600
|
subtitle: this.fb.control(''),
|
|
1694
2601
|
label: this.fb.control(''),
|
|
1695
2602
|
useKPI: this.fb.control(false, [Validators.required]),
|
|
1696
|
-
lowSeverityThreshold: this.fb.control(null),
|
|
1697
|
-
mediumSeverityThreshold: this.fb.control(null),
|
|
1698
|
-
highSeverityThreshold: this.fb.control(null),
|
|
1699
2603
|
});
|
|
1700
2604
|
this.configurationEvent = new EventEmitter();
|
|
1701
2605
|
this._subscriptions = new Subscription();
|
|
1702
2606
|
}
|
|
1703
2607
|
ngOnInit() {
|
|
1704
2608
|
this.openFormSubscription();
|
|
1705
|
-
this.openKPISubscription();
|
|
1706
2609
|
}
|
|
1707
2610
|
ngOnDestroy() {
|
|
1708
2611
|
this._subscriptions.unsubscribe();
|
|
1709
2612
|
}
|
|
1710
2613
|
openFormSubscription() {
|
|
1711
2614
|
this._subscriptions.add(this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {
|
|
1712
|
-
this.configurationEvent.emit({
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
this._subscriptions.add(this.useKPI.valueChanges.pipe(startWith(this.useKPI.value)).subscribe(useKpi => {
|
|
1717
|
-
const validators = [Validators.required];
|
|
1718
|
-
if (useKpi) {
|
|
1719
|
-
this.lowSeverityThreshold.setValidators(validators);
|
|
1720
|
-
this.mediumSeverityThreshold.setValidators(validators);
|
|
1721
|
-
this.highSeverityThreshold.setValidators(validators);
|
|
1722
|
-
}
|
|
1723
|
-
else {
|
|
1724
|
-
this.lowSeverityThreshold.clearValidators();
|
|
1725
|
-
this.mediumSeverityThreshold.clearValidators();
|
|
1726
|
-
this.highSeverityThreshold.clearValidators();
|
|
1727
|
-
}
|
|
1728
|
-
this.lowSeverityThreshold.updateValueAndValidity();
|
|
1729
|
-
this.mediumSeverityThreshold.updateValueAndValidity();
|
|
1730
|
-
this.highSeverityThreshold.updateValueAndValidity();
|
|
2615
|
+
this.configurationEvent.emit({
|
|
2616
|
+
valid: this.form.valid,
|
|
2617
|
+
data: formValue,
|
|
2618
|
+
});
|
|
1731
2619
|
}));
|
|
1732
2620
|
}
|
|
1733
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1734
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2621
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DonutConfigurationComponent, deps: [{ token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2622
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DonutConfigurationComponent, selector: "ng-component", inputs: { displayTypeKey: "displayTypeKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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</form>\n", dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i5.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1735
2623
|
}
|
|
1736
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2624
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DonutConfigurationComponent, decorators: [{
|
|
1737
2625
|
type: Component,
|
|
1738
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-
|
|
1739
|
-
}], ctorParameters:
|
|
2626
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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</form>\n" }]
|
|
2627
|
+
}], ctorParameters: () => [{ type: i1$3.FormBuilder }], propDecorators: { displayTypeKey: [{
|
|
1740
2628
|
type: Input
|
|
1741
2629
|
}], disabled: [{
|
|
1742
2630
|
type: Input
|
|
@@ -1747,7 +2635,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1747
2635
|
}] } });
|
|
1748
2636
|
|
|
1749
2637
|
/*
|
|
1750
|
-
* Copyright 2015-
|
|
2638
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2639
|
+
*
|
|
2640
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2641
|
+
* you may not use this file except in compliance with the License.
|
|
2642
|
+
* You may obtain a copy of the License at
|
|
2643
|
+
*
|
|
2644
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2645
|
+
*
|
|
2646
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2647
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2648
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2649
|
+
* See the License for the specific language governing permissions and
|
|
2650
|
+
* limitations under the License.
|
|
2651
|
+
*/
|
|
2652
|
+
|
|
2653
|
+
/*
|
|
2654
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2655
|
+
*
|
|
2656
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2657
|
+
* you may not use this file except in compliance with the License.
|
|
2658
|
+
* You may obtain a copy of the License at
|
|
2659
|
+
*
|
|
2660
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
2661
|
+
*
|
|
2662
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2663
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
2664
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2665
|
+
* See the License for the specific language governing permissions and
|
|
2666
|
+
* limitations under the License.
|
|
2667
|
+
*/
|
|
2668
|
+
class DonutDisplayComponent {
|
|
2669
|
+
set data(value) {
|
|
2670
|
+
if (!value)
|
|
2671
|
+
return;
|
|
2672
|
+
this._data$.next(value);
|
|
2673
|
+
}
|
|
2674
|
+
constructor(themeService) {
|
|
2675
|
+
this.themeService = themeService;
|
|
2676
|
+
this._data$ = new BehaviorSubject(null);
|
|
2677
|
+
this.donutData$ = this._data$.pipe(filter(data => !!data), map(data => data?.values.map(dataValue => ({
|
|
2678
|
+
group: dataValue.label,
|
|
2679
|
+
value: dataValue.value,
|
|
2680
|
+
})) || []));
|
|
2681
|
+
this.donutChartOptions$ = this.themeService.currentTheme$.pipe(map(currentTheme => ({
|
|
2682
|
+
resizable: true,
|
|
2683
|
+
toolbar: { enabled: false },
|
|
2684
|
+
height: '300px',
|
|
2685
|
+
theme: currentTheme,
|
|
2686
|
+
donut: {
|
|
2687
|
+
alignment: 'center',
|
|
2688
|
+
center: {
|
|
2689
|
+
label: this.displayTypeProperties.label,
|
|
2690
|
+
},
|
|
2691
|
+
},
|
|
2692
|
+
pie: {
|
|
2693
|
+
labels: {
|
|
2694
|
+
enabled: false,
|
|
2695
|
+
},
|
|
2696
|
+
},
|
|
2697
|
+
legend: {
|
|
2698
|
+
truncation: {
|
|
2699
|
+
numCharacter: 28,
|
|
2700
|
+
},
|
|
2701
|
+
},
|
|
2702
|
+
})));
|
|
2703
|
+
}
|
|
2704
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DonutDisplayComponent, deps: [{ token: i1$1.CdsThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2705
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DonutDisplayComponent, selector: "valtimo-donut-display", inputs: { displayTypeKey: "displayTypeKey", data: "data", displayTypeProperties: "displayTypeProperties" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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-donut-widget__header\">\n <h3 class=\"valtimo-donut-widget__title\">{{ displayTypeProperties.title }}</h3>\n\n <span *ngIf=\"displayTypeProperties.subtitle\" class=\"valtimo-donut-widget__subtitle\">\n {{ displayTypeProperties.subtitle }}\n </span>\n</section>\n\n<section class=\"valtimo-donut-widget__content\">\n <ng-container *ngIf=\"donutData$ | async as donutData\">\n @if (donutData.length > 0) {\n <ibm-donut-chart\n type=\"donut\"\n class=\"n-chart\"\n [data]=\"donutData\"\n [options]=\"donutChartOptions$ | async\"\n ></ibm-donut-chart>\n } @else {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n </ng-container>\n</section>\n", styles: [":host{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px}.valtimo-donut-widget__title,.valtimo-donut-widget__subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.valtimo-donut-widget__title{font-size:20px;margin-bottom:12px}.valtimo-donut-widget__subtitle{font-size:14px}.valtimo-donut-widget__label{font-size:12px;margin-left:12px;margin-bottom:-1px}.valtimo-donut-widget__content{display:flex;align-items:flex-end;justify-content:center;margin-bottom:12px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.DonutChartComponent, selector: "ibm-donut-chart" }, { kind: "component", type: i1$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2706
|
+
}
|
|
2707
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DonutDisplayComponent, decorators: [{
|
|
2708
|
+
type: Component,
|
|
2709
|
+
args: [{ selector: 'valtimo-donut-display', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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-donut-widget__header\">\n <h3 class=\"valtimo-donut-widget__title\">{{ displayTypeProperties.title }}</h3>\n\n <span *ngIf=\"displayTypeProperties.subtitle\" class=\"valtimo-donut-widget__subtitle\">\n {{ displayTypeProperties.subtitle }}\n </span>\n</section>\n\n<section class=\"valtimo-donut-widget__content\">\n <ng-container *ngIf=\"donutData$ | async as donutData\">\n @if (donutData.length > 0) {\n <ibm-donut-chart\n type=\"donut\"\n class=\"n-chart\"\n [data]=\"donutData\"\n [options]=\"donutChartOptions$ | async\"\n ></ibm-donut-chart>\n } @else {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n </ng-container>\n</section>\n", styles: [":host{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px}.valtimo-donut-widget__title,.valtimo-donut-widget__subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.valtimo-donut-widget__title{font-size:20px;margin-bottom:12px}.valtimo-donut-widget__subtitle{font-size:14px}.valtimo-donut-widget__label{font-size:12px;margin-left:12px;margin-bottom:-1px}.valtimo-donut-widget__content{display:flex;align-items:flex-end;justify-content:center;margin-bottom:12px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
2710
|
+
}], ctorParameters: () => [{ type: i1$1.CdsThemeService }], propDecorators: { displayTypeKey: [{
|
|
2711
|
+
type: Input
|
|
2712
|
+
}], data: [{
|
|
2713
|
+
type: Input
|
|
2714
|
+
}], displayTypeProperties: [{
|
|
2715
|
+
type: Input
|
|
2716
|
+
}] } });
|
|
2717
|
+
|
|
2718
|
+
/*
|
|
2719
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1751
2720
|
*
|
|
1752
2721
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1753
2722
|
* you may not use this file except in compliance with the License.
|
|
@@ -1763,7 +2732,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1763
2732
|
*/
|
|
1764
2733
|
|
|
1765
2734
|
/*
|
|
1766
|
-
* Copyright 2015-
|
|
2735
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1767
2736
|
*
|
|
1768
2737
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1769
2738
|
* you may not use this file except in compliance with the License.
|
|
@@ -1779,7 +2748,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1779
2748
|
*/
|
|
1780
2749
|
|
|
1781
2750
|
/*
|
|
1782
|
-
* Copyright 2015-
|
|
2751
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1783
2752
|
*
|
|
1784
2753
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1785
2754
|
* you may not use this file except in compliance with the License.
|
|
@@ -1793,9 +2762,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1793
2762
|
* See the License for the specific language governing permissions and
|
|
1794
2763
|
* limitations under the License.
|
|
1795
2764
|
*/
|
|
2765
|
+
const donutSpecification = {
|
|
2766
|
+
displayTypeKey: 'donut',
|
|
2767
|
+
displayComponent: DonutDisplayComponent,
|
|
2768
|
+
configurationComponent: DonutConfigurationComponent,
|
|
2769
|
+
width: 1,
|
|
2770
|
+
height: 2,
|
|
2771
|
+
translations: {
|
|
2772
|
+
nl: {
|
|
2773
|
+
title: 'Donut-diagram',
|
|
2774
|
+
formTitle: 'Titel (vereist)',
|
|
2775
|
+
formTitleHelperText: 'De titel die wordt weergegeven in de widget',
|
|
2776
|
+
subtitle: 'Ondertitel',
|
|
2777
|
+
subtitleHelperText: 'De ondertitel weergegeven in de widget',
|
|
2778
|
+
label: 'Label',
|
|
2779
|
+
labelHelperText: 'Het label dat wordt weergegeven in de widget',
|
|
2780
|
+
},
|
|
2781
|
+
en: {
|
|
2782
|
+
title: 'Donut chart',
|
|
2783
|
+
formTitle: 'Title (required)',
|
|
2784
|
+
formTitleHelperText: 'The title displayed in the widget',
|
|
2785
|
+
subtitle: 'Subtitle',
|
|
2786
|
+
subtitleHelperText: 'The subtitle displayed in the widget',
|
|
2787
|
+
label: 'Label',
|
|
2788
|
+
labelHelperText: 'The label displayed in the widget',
|
|
2789
|
+
},
|
|
2790
|
+
de: {
|
|
2791
|
+
title: 'Donut-Diagramm',
|
|
2792
|
+
formTitle: 'Titel (erforderlich)',
|
|
2793
|
+
formTitleHelperText: 'Der im Widget angezeigte Titel',
|
|
2794
|
+
subtitle: 'Untertitel',
|
|
2795
|
+
subtitleHelperText: 'Der im Widget angezeigte Untertitel',
|
|
2796
|
+
label: 'Beschriftung',
|
|
2797
|
+
labelHelperText: 'Die im Widget angezeigte Beschriftung',
|
|
2798
|
+
},
|
|
2799
|
+
},
|
|
2800
|
+
requiredDataFeatures: [DATA_FEATURES.NUMBERS],
|
|
2801
|
+
};
|
|
1796
2802
|
|
|
1797
2803
|
/*
|
|
1798
|
-
* Copyright 2015-
|
|
2804
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1799
2805
|
*
|
|
1800
2806
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1801
2807
|
* you may not use this file except in compliance with the License.
|
|
@@ -1809,9 +2815,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1809
2815
|
* See the License for the specific language governing permissions and
|
|
1810
2816
|
* limitations under the License.
|
|
1811
2817
|
*/
|
|
2818
|
+
class DonutModule {
|
|
2819
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DonutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2820
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: DonutModule, declarations: [DonutDisplayComponent, DonutConfigurationComponent], imports: [CommonModule,
|
|
2821
|
+
ReactiveFormsModule,
|
|
2822
|
+
WidgetTranslatePipeModule,
|
|
2823
|
+
InputModule,
|
|
2824
|
+
CheckboxModule,
|
|
2825
|
+
CommonModule,
|
|
2826
|
+
ChartsModule,
|
|
2827
|
+
CarbonListModule,
|
|
2828
|
+
TranslateModule], exports: [DonutDisplayComponent] }); }
|
|
2829
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DonutModule, providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: donutSpecification, multi: true }], imports: [CommonModule,
|
|
2830
|
+
ReactiveFormsModule,
|
|
2831
|
+
WidgetTranslatePipeModule,
|
|
2832
|
+
InputModule,
|
|
2833
|
+
CheckboxModule,
|
|
2834
|
+
CommonModule,
|
|
2835
|
+
ChartsModule,
|
|
2836
|
+
CarbonListModule,
|
|
2837
|
+
TranslateModule] }); }
|
|
2838
|
+
}
|
|
2839
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DonutModule, decorators: [{
|
|
2840
|
+
type: NgModule,
|
|
2841
|
+
args: [{
|
|
2842
|
+
declarations: [DonutDisplayComponent, DonutConfigurationComponent],
|
|
2843
|
+
imports: [
|
|
2844
|
+
CommonModule,
|
|
2845
|
+
ReactiveFormsModule,
|
|
2846
|
+
WidgetTranslatePipeModule,
|
|
2847
|
+
InputModule,
|
|
2848
|
+
CheckboxModule,
|
|
2849
|
+
CommonModule,
|
|
2850
|
+
ChartsModule,
|
|
2851
|
+
CarbonListModule,
|
|
2852
|
+
TranslateModule,
|
|
2853
|
+
],
|
|
2854
|
+
exports: [DonutDisplayComponent],
|
|
2855
|
+
providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: donutSpecification, multi: true }],
|
|
2856
|
+
}]
|
|
2857
|
+
}] });
|
|
1812
2858
|
|
|
1813
2859
|
/*
|
|
1814
|
-
* Copyright 2015-
|
|
2860
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1815
2861
|
*
|
|
1816
2862
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1817
2863
|
* you may not use this file except in compliance with the License.
|
|
@@ -1827,7 +2873,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1827
2873
|
*/
|
|
1828
2874
|
|
|
1829
2875
|
/*
|
|
1830
|
-
* Copyright 2015-
|
|
2876
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1831
2877
|
*
|
|
1832
2878
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1833
2879
|
* you may not use this file except in compliance with the License.
|
|
@@ -1843,7 +2889,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1843
2889
|
*/
|
|
1844
2890
|
|
|
1845
2891
|
/*
|
|
1846
|
-
* Copyright 2015-
|
|
2892
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1847
2893
|
*
|
|
1848
2894
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1849
2895
|
* you may not use this file except in compliance with the License.
|
|
@@ -1859,7 +2905,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1859
2905
|
*/
|
|
1860
2906
|
|
|
1861
2907
|
/*
|
|
1862
|
-
* Copyright 2015-
|
|
2908
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1863
2909
|
*
|
|
1864
2910
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1865
2911
|
* you may not use this file except in compliance with the License.
|
|
@@ -1873,17 +2919,74 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1873
2919
|
* See the License for the specific language governing permissions and
|
|
1874
2920
|
* limitations under the License.
|
|
1875
2921
|
*/
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
}
|
|
2922
|
+
class GaugeConfigurationComponent {
|
|
2923
|
+
set disabled(disabledValue) {
|
|
2924
|
+
if (disabledValue) {
|
|
2925
|
+
this.form.disable();
|
|
2926
|
+
}
|
|
2927
|
+
else {
|
|
2928
|
+
this.form.enable();
|
|
2929
|
+
}
|
|
2930
|
+
}
|
|
2931
|
+
get title() {
|
|
2932
|
+
return this.form.get('title');
|
|
2933
|
+
}
|
|
2934
|
+
get subtitle() {
|
|
2935
|
+
return this.form.get('subtitle');
|
|
2936
|
+
}
|
|
2937
|
+
get label() {
|
|
2938
|
+
return this.form.get('label');
|
|
2939
|
+
}
|
|
2940
|
+
set prefillConfiguration(configurationValue) {
|
|
2941
|
+
if (configurationValue) {
|
|
2942
|
+
this.title.setValue(configurationValue.title || '');
|
|
2943
|
+
this.subtitle.setValue(configurationValue.subtitle || '');
|
|
2944
|
+
this.label.setValue(configurationValue.label || '');
|
|
2945
|
+
}
|
|
2946
|
+
}
|
|
2947
|
+
constructor(fb) {
|
|
2948
|
+
this.fb = fb;
|
|
2949
|
+
this.form = this.fb.group({
|
|
2950
|
+
title: this.fb.control('', [Validators.required]),
|
|
2951
|
+
subtitle: this.fb.control(''),
|
|
2952
|
+
label: this.fb.control(''),
|
|
2953
|
+
useKPI: this.fb.control(false, [Validators.required]),
|
|
2954
|
+
});
|
|
2955
|
+
this.configurationEvent = new EventEmitter();
|
|
2956
|
+
this._subscriptions = new Subscription();
|
|
2957
|
+
}
|
|
2958
|
+
ngOnInit() {
|
|
2959
|
+
this.openFormSubscription();
|
|
2960
|
+
}
|
|
2961
|
+
ngOnDestroy() {
|
|
2962
|
+
this._subscriptions.unsubscribe();
|
|
2963
|
+
}
|
|
2964
|
+
openFormSubscription() {
|
|
2965
|
+
this._subscriptions.add(this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {
|
|
2966
|
+
this.configurationEvent.emit({
|
|
2967
|
+
valid: this.form.valid,
|
|
2968
|
+
data: formValue,
|
|
2969
|
+
});
|
|
2970
|
+
}));
|
|
2971
|
+
}
|
|
2972
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: GaugeConfigurationComponent, deps: [{ token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2973
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: GaugeConfigurationComponent, selector: "ng-component", inputs: { displayTypeKey: "displayTypeKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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</form>\n", dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i5.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2974
|
+
}
|
|
2975
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: GaugeConfigurationComponent, decorators: [{
|
|
2976
|
+
type: Component,
|
|
2977
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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</form>\n" }]
|
|
2978
|
+
}], ctorParameters: () => [{ type: i1$3.FormBuilder }], propDecorators: { displayTypeKey: [{
|
|
2979
|
+
type: Input
|
|
2980
|
+
}], disabled: [{
|
|
2981
|
+
type: Input
|
|
2982
|
+
}], prefillConfiguration: [{
|
|
2983
|
+
type: Input
|
|
2984
|
+
}], configurationEvent: [{
|
|
2985
|
+
type: Output
|
|
2986
|
+
}] } });
|
|
1884
2987
|
|
|
1885
2988
|
/*
|
|
1886
|
-
* Copyright 2015-
|
|
2989
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1887
2990
|
*
|
|
1888
2991
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1889
2992
|
* you may not use this file except in compliance with the License.
|
|
@@ -1899,7 +3002,7 @@ var WidgetSeverity;
|
|
|
1899
3002
|
*/
|
|
1900
3003
|
|
|
1901
3004
|
/*
|
|
1902
|
-
* Copyright 2015-
|
|
3005
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1903
3006
|
*
|
|
1904
3007
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1905
3008
|
* you may not use this file except in compliance with the License.
|
|
@@ -1913,36 +3016,63 @@ var WidgetSeverity;
|
|
|
1913
3016
|
* See the License for the specific language governing permissions and
|
|
1914
3017
|
* limitations under the License.
|
|
1915
3018
|
*/
|
|
1916
|
-
class
|
|
1917
|
-
|
|
1918
|
-
if (!
|
|
1919
|
-
return
|
|
1920
|
-
|
|
1921
|
-
const value = this.data?.value;
|
|
1922
|
-
if (value < this.displayTypeProperties.lowSeverityThreshold) {
|
|
1923
|
-
return WidgetSeverity.GREEN;
|
|
1924
|
-
}
|
|
1925
|
-
else if (value < this.displayTypeProperties.mediumSeverityThreshold) {
|
|
1926
|
-
return WidgetSeverity.YELLOW;
|
|
1927
|
-
}
|
|
1928
|
-
else if (value < this.displayTypeProperties.highSeverityThreshold) {
|
|
1929
|
-
return WidgetSeverity.ORANGE;
|
|
1930
|
-
}
|
|
1931
|
-
return WidgetSeverity.RED;
|
|
3019
|
+
class GaugeDisplayComponent {
|
|
3020
|
+
set data(value) {
|
|
3021
|
+
if (!value)
|
|
3022
|
+
return;
|
|
3023
|
+
this._data$.next(value);
|
|
1932
3024
|
}
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
3025
|
+
constructor(themeService, translateService) {
|
|
3026
|
+
this.themeService = themeService;
|
|
3027
|
+
this.translateService = translateService;
|
|
3028
|
+
this._DELTA = -1.0;
|
|
3029
|
+
this._data$ = new BehaviorSubject(null);
|
|
3030
|
+
this.chartData$ = this._data$.pipe(filter(data => !!data), map(data => [
|
|
3031
|
+
{
|
|
3032
|
+
group: 'value',
|
|
3033
|
+
value: this.calculatePercentage(data?.value || 0, data?.total || 0),
|
|
3034
|
+
},
|
|
3035
|
+
{
|
|
3036
|
+
group: 'delta',
|
|
3037
|
+
value: this._DELTA,
|
|
3038
|
+
},
|
|
3039
|
+
]));
|
|
3040
|
+
this.gaugeChartOptions$ = combineLatest([
|
|
3041
|
+
this.themeService.currentTheme$,
|
|
3042
|
+
this.translateService.stream('key'),
|
|
3043
|
+
]).pipe(map(([currentTheme]) => ({
|
|
3044
|
+
resizable: true,
|
|
3045
|
+
toolbar: { enabled: false },
|
|
3046
|
+
height: '110px',
|
|
3047
|
+
theme: currentTheme == 'g10' ? 'white' : 'g100',
|
|
3048
|
+
gauge: {
|
|
3049
|
+
alignment: 'center',
|
|
3050
|
+
numberFormatter: value => this.numberFormatter(this, value),
|
|
3051
|
+
deltaArrow: {
|
|
3052
|
+
enabled: false,
|
|
3053
|
+
},
|
|
3054
|
+
showPercentageSymbol: false,
|
|
3055
|
+
type: 'semi',
|
|
3056
|
+
},
|
|
3057
|
+
})));
|
|
3058
|
+
}
|
|
3059
|
+
calculatePercentage(value, total) {
|
|
3060
|
+
return (value * 100.0) / (total || 100.0);
|
|
3061
|
+
}
|
|
3062
|
+
numberFormatter(scope, value) {
|
|
3063
|
+
const scopeData = scope._data$.getValue();
|
|
3064
|
+
if (value == scope._DELTA) {
|
|
3065
|
+
return `${this.translateService.instant('dashboard.of')} ${scopeData?.total || 0} ${scope.displayTypeProperties.label} `;
|
|
1936
3066
|
}
|
|
1937
|
-
return Math.
|
|
3067
|
+
return Math.round(value * (scopeData?.total || 0)) / 100.0 + '';
|
|
1938
3068
|
}
|
|
1939
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1940
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
3069
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: GaugeDisplayComponent, deps: [{ token: i1$1.CdsThemeService }, { token: i3$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3070
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: GaugeDisplayComponent, selector: "valtimo-gauge-display", inputs: { displayTypeKey: "displayTypeKey", data: "data", displayTypeProperties: "displayTypeProperties" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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-gauge-widget__header\">\n <h3 class=\"valtimo-gauge-widget__title\">{{ displayTypeProperties.title }}</h3>\n\n <span *ngIf=\"displayTypeProperties.subtitle\" class=\"valtimo-gauge-widget__subtitle\">\n {{ displayTypeProperties.subtitle }}\n </span>\n</section>\n\n<section class=\"valtimo-gauge-widget__content\">\n <ibm-gauge-chart\n *ngIf=\"chartData$ | async as chartData\"\n type=\"gauge\"\n class=\"n-chart\"\n [data]=\"chartData\"\n [options]=\"gaugeChartOptions$ | async\"\n ></ibm-gauge-chart>\n</section>\n", styles: [":host{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px}.valtimo-gauge-widget__title,.valtimo-gauge-widget__subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.valtimo-gauge-widget__title{font-size:20px;margin-bottom:12px}.valtimo-gauge-widget__subtitle{font-size:14px}.valtimo-gauge-widget__label{font-size:12px;margin-left:12px;margin-bottom:-1px}.valtimo-gauge-widget__content{display:flex;align-items:flex-end;margin-bottom:12px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.GaugeChartComponent, selector: "ibm-gauge-chart" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1941
3071
|
}
|
|
1942
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3072
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: GaugeDisplayComponent, decorators: [{
|
|
1943
3073
|
type: Component,
|
|
1944
|
-
args: [{ selector: 'valtimo-
|
|
1945
|
-
}], propDecorators: { displayTypeKey: [{
|
|
3074
|
+
args: [{ selector: 'valtimo-gauge-display', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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-gauge-widget__header\">\n <h3 class=\"valtimo-gauge-widget__title\">{{ displayTypeProperties.title }}</h3>\n\n <span *ngIf=\"displayTypeProperties.subtitle\" class=\"valtimo-gauge-widget__subtitle\">\n {{ displayTypeProperties.subtitle }}\n </span>\n</section>\n\n<section class=\"valtimo-gauge-widget__content\">\n <ibm-gauge-chart\n *ngIf=\"chartData$ | async as chartData\"\n type=\"gauge\"\n class=\"n-chart\"\n [data]=\"chartData\"\n [options]=\"gaugeChartOptions$ | async\"\n ></ibm-gauge-chart>\n</section>\n", styles: [":host{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px}.valtimo-gauge-widget__title,.valtimo-gauge-widget__subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.valtimo-gauge-widget__title{font-size:20px;margin-bottom:12px}.valtimo-gauge-widget__subtitle{font-size:14px}.valtimo-gauge-widget__label{font-size:12px;margin-left:12px;margin-bottom:-1px}.valtimo-gauge-widget__content{display:flex;align-items:flex-end;margin-bottom:12px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
3075
|
+
}], ctorParameters: () => [{ type: i1$1.CdsThemeService }, { type: i3$1.TranslateService }], propDecorators: { displayTypeKey: [{
|
|
1946
3076
|
type: Input
|
|
1947
3077
|
}], data: [{
|
|
1948
3078
|
type: Input
|
|
@@ -1951,7 +3081,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1951
3081
|
}] } });
|
|
1952
3082
|
|
|
1953
3083
|
/*
|
|
1954
|
-
* Copyright 2015-
|
|
3084
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1955
3085
|
*
|
|
1956
3086
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1957
3087
|
* you may not use this file except in compliance with the License.
|
|
@@ -1967,7 +3097,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1967
3097
|
*/
|
|
1968
3098
|
|
|
1969
3099
|
/*
|
|
1970
|
-
* Copyright 2015-
|
|
3100
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1971
3101
|
*
|
|
1972
3102
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1973
3103
|
* you may not use this file except in compliance with the License.
|
|
@@ -1983,7 +3113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1983
3113
|
*/
|
|
1984
3114
|
|
|
1985
3115
|
/*
|
|
1986
|
-
* Copyright 2015-
|
|
3116
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
1987
3117
|
*
|
|
1988
3118
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
1989
3119
|
* you may not use this file except in compliance with the License.
|
|
@@ -1997,58 +3127,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1997
3127
|
* See the License for the specific language governing permissions and
|
|
1998
3128
|
* limitations under the License.
|
|
1999
3129
|
*/
|
|
2000
|
-
const
|
|
2001
|
-
displayTypeKey: '
|
|
2002
|
-
displayComponent:
|
|
2003
|
-
configurationComponent:
|
|
3130
|
+
const gaugeSpecification = {
|
|
3131
|
+
displayTypeKey: 'gauge',
|
|
3132
|
+
displayComponent: GaugeDisplayComponent,
|
|
3133
|
+
configurationComponent: GaugeConfigurationComponent,
|
|
2004
3134
|
width: 1,
|
|
2005
3135
|
height: 1,
|
|
2006
3136
|
translations: {
|
|
2007
3137
|
nl: {
|
|
2008
|
-
title: '
|
|
3138
|
+
title: 'Graadmeter',
|
|
2009
3139
|
formTitle: 'Titel (vereist)',
|
|
2010
3140
|
formTitleHelperText: 'De titel die wordt weergegeven in de widget',
|
|
2011
3141
|
subtitle: 'Ondertitel',
|
|
2012
3142
|
subtitleHelperText: 'De ondertitel weergegeven in de widget',
|
|
2013
3143
|
label: 'Label',
|
|
2014
3144
|
labelHelperText: 'Het label dat wordt weergegeven in de widget',
|
|
2015
|
-
useKPI: 'KPI gebruiken',
|
|
2016
|
-
lowSeverityThreshold: 'Lage ernstdrempel (vereist)',
|
|
2017
|
-
mediumSeverityThreshold: 'Middelmatige ernstdrempel (vereist)',
|
|
2018
|
-
highSeverityThreshold: 'Hoge ernstdrempel (vereist)',
|
|
2019
3145
|
},
|
|
2020
3146
|
en: {
|
|
2021
|
-
title: '
|
|
3147
|
+
title: 'Gauge',
|
|
2022
3148
|
formTitle: 'Title (required)',
|
|
2023
3149
|
formTitleHelperText: 'The title displayed in the widget',
|
|
2024
3150
|
subtitle: 'Subtitle',
|
|
2025
3151
|
subtitleHelperText: 'The subtitle displayed in the widget',
|
|
2026
3152
|
label: 'Label',
|
|
2027
3153
|
labelHelperText: 'The label displayed in the widget',
|
|
2028
|
-
useKPI: 'Use KPI',
|
|
2029
|
-
lowSeverityThreshold: 'Low severity threshold (required)',
|
|
2030
|
-
mediumSeverityThreshold: 'Medium severity threshold (required)',
|
|
2031
|
-
highSeverityThreshold: 'High severity threshold (required)',
|
|
2032
3154
|
},
|
|
2033
3155
|
de: {
|
|
2034
|
-
title: '
|
|
3156
|
+
title: 'Messgerät',
|
|
2035
3157
|
formTitle: 'Titel (erforderlich)',
|
|
2036
3158
|
formTitleHelperText: 'Der im Widget angezeigte Titel',
|
|
2037
3159
|
subtitle: 'Untertitel',
|
|
2038
3160
|
subtitleHelperText: 'Der im Widget angezeigte Untertitel',
|
|
2039
3161
|
label: 'Beschriftung',
|
|
2040
3162
|
labelHelperText: 'Die im Widget angezeigte Beschriftung',
|
|
2041
|
-
useKPI: 'Verwenden Sie KPI',
|
|
2042
|
-
lowSeverityThreshold: 'Niedriger Schweregradschwellenwert (erforderlich)',
|
|
2043
|
-
mediumSeverityThreshold: 'Mittlerer Schweregradschwellenwert (erforderlich)',
|
|
2044
|
-
highSeverityThreshold: 'Hoher Schweregradschwellenwert (erforderlich)',
|
|
2045
3163
|
},
|
|
2046
3164
|
},
|
|
2047
|
-
requiredDataFeatures: [DATA_FEATURES.NUMBER],
|
|
3165
|
+
requiredDataFeatures: [DATA_FEATURES.NUMBER, DATA_FEATURES.TOTAL],
|
|
2048
3166
|
};
|
|
2049
3167
|
|
|
2050
3168
|
/*
|
|
2051
|
-
* Copyright 2015-
|
|
3169
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2052
3170
|
*
|
|
2053
3171
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2054
3172
|
* you may not use this file except in compliance with the License.
|
|
@@ -2062,37 +3180,75 @@ const bigNumberSpecification = {
|
|
|
2062
3180
|
* See the License for the specific language governing permissions and
|
|
2063
3181
|
* limitations under the License.
|
|
2064
3182
|
*/
|
|
2065
|
-
class
|
|
2066
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2067
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3183
|
+
class GaugeModule {
|
|
3184
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: GaugeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3185
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: GaugeModule, declarations: [GaugeDisplayComponent, GaugeConfigurationComponent], imports: [CommonModule,
|
|
2068
3186
|
ReactiveFormsModule,
|
|
2069
3187
|
WidgetTranslatePipeModule,
|
|
2070
3188
|
InputModule,
|
|
2071
|
-
CheckboxModule
|
|
2072
|
-
|
|
3189
|
+
CheckboxModule,
|
|
3190
|
+
CommonModule,
|
|
3191
|
+
ChartsModule], exports: [GaugeDisplayComponent] }); }
|
|
3192
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: GaugeModule, providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: gaugeSpecification, multi: true }], imports: [CommonModule,
|
|
2073
3193
|
ReactiveFormsModule,
|
|
2074
3194
|
WidgetTranslatePipeModule,
|
|
2075
3195
|
InputModule,
|
|
2076
|
-
CheckboxModule
|
|
3196
|
+
CheckboxModule,
|
|
3197
|
+
CommonModule,
|
|
3198
|
+
ChartsModule] }); }
|
|
2077
3199
|
}
|
|
2078
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3200
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: GaugeModule, decorators: [{
|
|
2079
3201
|
type: NgModule,
|
|
2080
3202
|
args: [{
|
|
2081
|
-
declarations: [
|
|
3203
|
+
declarations: [GaugeDisplayComponent, GaugeConfigurationComponent],
|
|
2082
3204
|
imports: [
|
|
2083
3205
|
CommonModule,
|
|
2084
3206
|
ReactiveFormsModule,
|
|
2085
3207
|
WidgetTranslatePipeModule,
|
|
2086
3208
|
InputModule,
|
|
2087
3209
|
CheckboxModule,
|
|
3210
|
+
CommonModule,
|
|
3211
|
+
ChartsModule,
|
|
2088
3212
|
],
|
|
2089
|
-
exports: [
|
|
2090
|
-
providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue:
|
|
3213
|
+
exports: [GaugeDisplayComponent],
|
|
3214
|
+
providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: gaugeSpecification, multi: true }],
|
|
2091
3215
|
}]
|
|
2092
3216
|
}] });
|
|
2093
3217
|
|
|
2094
3218
|
/*
|
|
2095
|
-
* Copyright 2015-
|
|
3219
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3220
|
+
*
|
|
3221
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
3222
|
+
* you may not use this file except in compliance with the License.
|
|
3223
|
+
* You may obtain a copy of the License at
|
|
3224
|
+
*
|
|
3225
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
3226
|
+
*
|
|
3227
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3228
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
3229
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3230
|
+
* See the License for the specific language governing permissions and
|
|
3231
|
+
* limitations under the License.
|
|
3232
|
+
*/
|
|
3233
|
+
|
|
3234
|
+
/*
|
|
3235
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3236
|
+
*
|
|
3237
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
3238
|
+
* you may not use this file except in compliance with the License.
|
|
3239
|
+
* You may obtain a copy of the License at
|
|
3240
|
+
*
|
|
3241
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
3242
|
+
*
|
|
3243
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3244
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
3245
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3246
|
+
* See the License for the specific language governing permissions and
|
|
3247
|
+
* limitations under the License.
|
|
3248
|
+
*/
|
|
3249
|
+
|
|
3250
|
+
/*
|
|
3251
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2096
3252
|
*
|
|
2097
3253
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2098
3254
|
* you may not use this file except in compliance with the License.
|
|
@@ -2108,7 +3264,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2108
3264
|
*/
|
|
2109
3265
|
|
|
2110
3266
|
/*
|
|
2111
|
-
* Copyright 2015-
|
|
3267
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2112
3268
|
*
|
|
2113
3269
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2114
3270
|
* you may not use this file except in compliance with the License.
|
|
@@ -2122,9 +3278,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2122
3278
|
* See the License for the specific language governing permissions and
|
|
2123
3279
|
* limitations under the License.
|
|
2124
3280
|
*/
|
|
3281
|
+
class MeterConfigurationComponent {
|
|
3282
|
+
set disabled(disabledValue) {
|
|
3283
|
+
if (disabledValue) {
|
|
3284
|
+
this.form.disable();
|
|
3285
|
+
}
|
|
3286
|
+
else {
|
|
3287
|
+
this.form.enable();
|
|
3288
|
+
}
|
|
3289
|
+
}
|
|
3290
|
+
get title() {
|
|
3291
|
+
return this.form.get('title');
|
|
3292
|
+
}
|
|
3293
|
+
get subtitle() {
|
|
3294
|
+
return this.form.get('subtitle');
|
|
3295
|
+
}
|
|
3296
|
+
set prefillConfiguration(configurationValue) {
|
|
3297
|
+
if (configurationValue) {
|
|
3298
|
+
this.title.setValue(configurationValue.title || '');
|
|
3299
|
+
this.subtitle.setValue(configurationValue.subtitle || '');
|
|
3300
|
+
}
|
|
3301
|
+
}
|
|
3302
|
+
constructor(fb) {
|
|
3303
|
+
this.fb = fb;
|
|
3304
|
+
this.form = this.fb.group({
|
|
3305
|
+
title: this.fb.control('', [Validators.required]),
|
|
3306
|
+
subtitle: this.fb.control(''),
|
|
3307
|
+
});
|
|
3308
|
+
this.configurationEvent = new EventEmitter();
|
|
3309
|
+
this._subscriptions = new Subscription();
|
|
3310
|
+
}
|
|
3311
|
+
ngOnInit() {
|
|
3312
|
+
this.openFormSubscription();
|
|
3313
|
+
}
|
|
3314
|
+
ngOnDestroy() {
|
|
3315
|
+
this._subscriptions.unsubscribe();
|
|
3316
|
+
}
|
|
3317
|
+
openFormSubscription() {
|
|
3318
|
+
this._subscriptions.add(this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {
|
|
3319
|
+
this.configurationEvent.emit({
|
|
3320
|
+
valid: this.form.valid,
|
|
3321
|
+
data: formValue,
|
|
3322
|
+
});
|
|
3323
|
+
}));
|
|
3324
|
+
}
|
|
3325
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MeterConfigurationComponent, deps: [{ token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: MeterConfigurationComponent, selector: "ng-component", inputs: { displayTypeKey: "displayTypeKey", disabled: "disabled", prefillConfiguration: "prefillConfiguration" }, outputs: { configurationEvent: "configurationEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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</form>\n", dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i5.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3327
|
+
}
|
|
3328
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MeterConfigurationComponent, decorators: [{
|
|
3329
|
+
type: Component,
|
|
3330
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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</form>\n" }]
|
|
3331
|
+
}], ctorParameters: () => [{ type: i1$3.FormBuilder }], propDecorators: { displayTypeKey: [{
|
|
3332
|
+
type: Input
|
|
3333
|
+
}], disabled: [{
|
|
3334
|
+
type: Input
|
|
3335
|
+
}], prefillConfiguration: [{
|
|
3336
|
+
type: Input
|
|
3337
|
+
}], configurationEvent: [{
|
|
3338
|
+
type: Output
|
|
3339
|
+
}] } });
|
|
2125
3340
|
|
|
2126
3341
|
/*
|
|
2127
|
-
* Copyright 2015-
|
|
3342
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2128
3343
|
*
|
|
2129
3344
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2130
3345
|
* you may not use this file except in compliance with the License.
|
|
@@ -2140,7 +3355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2140
3355
|
*/
|
|
2141
3356
|
|
|
2142
3357
|
/*
|
|
2143
|
-
* Copyright 2015-
|
|
3358
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2144
3359
|
*
|
|
2145
3360
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2146
3361
|
* you may not use this file except in compliance with the License.
|
|
@@ -2155,13 +3370,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2155
3370
|
* limitations under the License.
|
|
2156
3371
|
*/
|
|
2157
3372
|
class MeterDisplayComponent {
|
|
2158
|
-
|
|
2159
|
-
|
|
3373
|
+
set data(value) {
|
|
3374
|
+
if (!value)
|
|
3375
|
+
return;
|
|
3376
|
+
this._data$.next(value);
|
|
3377
|
+
}
|
|
3378
|
+
constructor(themeService) {
|
|
3379
|
+
this.themeService = themeService;
|
|
3380
|
+
this._data$ = new BehaviorSubject(null);
|
|
3381
|
+
this.meterData$ = this._data$.pipe(filter(data => !!data), map(data => data?.values.map(dataValue => ({
|
|
3382
|
+
group: dataValue.label,
|
|
3383
|
+
value: dataValue.value,
|
|
3384
|
+
})) || []));
|
|
3385
|
+
this.meterChartOptions$ = combineLatest([
|
|
3386
|
+
this.themeService.currentTheme$,
|
|
3387
|
+
this.meterData$,
|
|
3388
|
+
]).pipe(map(([currentTheme, meterData]) => ({
|
|
3389
|
+
resizable: true,
|
|
3390
|
+
toolbar: { enabled: false },
|
|
3391
|
+
theme: currentTheme,
|
|
3392
|
+
height: '60px',
|
|
3393
|
+
meter: {
|
|
3394
|
+
height: 60,
|
|
3395
|
+
showLabels: false,
|
|
3396
|
+
title: {
|
|
3397
|
+
percentageIndicator: {
|
|
3398
|
+
enabled: false,
|
|
3399
|
+
},
|
|
3400
|
+
},
|
|
3401
|
+
proportional: {
|
|
3402
|
+
total: meterData.reduce((acc, curr) => acc + curr.value, 0),
|
|
3403
|
+
},
|
|
3404
|
+
},
|
|
3405
|
+
})));
|
|
3406
|
+
}
|
|
3407
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MeterDisplayComponent, deps: [{ token: i1$1.CdsThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3408
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: MeterDisplayComponent, selector: "valtimo-meter-display", inputs: { displayTypeKey: "displayTypeKey", data: "data", displayTypeProperties: "displayTypeProperties" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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-donut-widget__header\">\n <h3 class=\"valtimo-donut-widget__title\">{{ displayTypeProperties.title }}</h3>\n\n <span *ngIf=\"displayTypeProperties.subtitle\" class=\"valtimo-donut-widget__subtitle\">\n {{ displayTypeProperties.subtitle }}\n </span>\n</section>\n\n<section class=\"valtimo-donut-widget__content\">\n <ng-container *ngIf=\"meterData$ | async as meterData\">\n @if (meterData.length > 0) {\n <ibm-meter-chart [data]=\"meterData\" [options]=\"meterChartOptions$ | async\"></ibm-meter-chart>\n } @else {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n </ng-container>\n</section>\n", styles: [":host{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px}.valtimo-donut-widget__title,.valtimo-donut-widget__subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.valtimo-donut-widget__title{font-size:20px;margin-bottom:12px}.valtimo-donut-widget__subtitle{font-size:14px}.valtimo-donut-widget__label{font-size:12px;margin-left:12px;margin-bottom:-1px}.valtimo-donut-widget__content{display:flex;align-items:flex-end;justify-content:center;margin-bottom:12px}\n/*!\n * Copyright 2015-2024 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"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MeterChartComponent, selector: "ibm-meter-chart" }, { kind: "component", type: i1$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2160
3409
|
}
|
|
2161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3410
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MeterDisplayComponent, decorators: [{
|
|
2162
3411
|
type: Component,
|
|
2163
|
-
args: [{ selector: 'valtimo-meter-display', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-
|
|
2164
|
-
}], propDecorators: { displayTypeKey: [{
|
|
3412
|
+
args: [{ selector: 'valtimo-meter-display', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 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-donut-widget__header\">\n <h3 class=\"valtimo-donut-widget__title\">{{ displayTypeProperties.title }}</h3>\n\n <span *ngIf=\"displayTypeProperties.subtitle\" class=\"valtimo-donut-widget__subtitle\">\n {{ displayTypeProperties.subtitle }}\n </span>\n</section>\n\n<section class=\"valtimo-donut-widget__content\">\n <ng-container *ngIf=\"meterData$ | async as meterData\">\n @if (meterData.length > 0) {\n <ibm-meter-chart [data]=\"meterData\" [options]=\"meterChartOptions$ | async\"></ibm-meter-chart>\n } @else {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n </ng-container>\n</section>\n", styles: [":host{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px}.valtimo-donut-widget__title,.valtimo-donut-widget__subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.valtimo-donut-widget__title{font-size:20px;margin-bottom:12px}.valtimo-donut-widget__subtitle{font-size:14px}.valtimo-donut-widget__label{font-size:12px;margin-left:12px;margin-bottom:-1px}.valtimo-donut-widget__content{display:flex;align-items:flex-end;justify-content:center;margin-bottom:12px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
3413
|
+
}], ctorParameters: () => [{ type: i1$1.CdsThemeService }], propDecorators: { displayTypeKey: [{
|
|
2165
3414
|
type: Input
|
|
2166
3415
|
}], data: [{
|
|
2167
3416
|
type: Input
|
|
@@ -2170,7 +3419,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2170
3419
|
}] } });
|
|
2171
3420
|
|
|
2172
3421
|
/*
|
|
2173
|
-
* Copyright 2015-
|
|
3422
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2174
3423
|
*
|
|
2175
3424
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2176
3425
|
* you may not use this file except in compliance with the License.
|
|
@@ -2186,7 +3435,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2186
3435
|
*/
|
|
2187
3436
|
|
|
2188
3437
|
/*
|
|
2189
|
-
* Copyright 2015-
|
|
3438
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2190
3439
|
*
|
|
2191
3440
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2192
3441
|
* you may not use this file except in compliance with the License.
|
|
@@ -2202,7 +3451,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2202
3451
|
*/
|
|
2203
3452
|
|
|
2204
3453
|
/*
|
|
2205
|
-
* Copyright 2015-
|
|
3454
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2206
3455
|
*
|
|
2207
3456
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2208
3457
|
* you may not use this file except in compliance with the License.
|
|
@@ -2219,24 +3468,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2219
3468
|
const meterSpecification = {
|
|
2220
3469
|
displayTypeKey: 'meter',
|
|
2221
3470
|
displayComponent: MeterDisplayComponent,
|
|
3471
|
+
configurationComponent: MeterConfigurationComponent,
|
|
2222
3472
|
width: 2,
|
|
2223
3473
|
height: 1,
|
|
2224
3474
|
translations: {
|
|
2225
3475
|
nl: {
|
|
2226
3476
|
title: 'Meter',
|
|
3477
|
+
formTitle: 'Titel (vereist)',
|
|
3478
|
+
formTitleHelperText: 'De titel die wordt weergegeven in de widget',
|
|
3479
|
+
subtitle: 'Ondertitel',
|
|
3480
|
+
subtitleHelperText: 'De ondertitel weergegeven in de widget',
|
|
3481
|
+
label: 'Label',
|
|
3482
|
+
labelHelperText: 'Het label dat wordt weergegeven in de widget',
|
|
2227
3483
|
},
|
|
2228
3484
|
en: {
|
|
2229
3485
|
title: 'Meter',
|
|
3486
|
+
formTitle: 'Title (required)',
|
|
3487
|
+
formTitleHelperText: 'The title displayed in the widget',
|
|
3488
|
+
subtitle: 'Subtitle',
|
|
3489
|
+
subtitleHelperText: 'The subtitle displayed in the widget',
|
|
3490
|
+
label: 'Label',
|
|
3491
|
+
labelHelperText: 'The label displayed in the widget',
|
|
2230
3492
|
},
|
|
2231
3493
|
de: {
|
|
2232
3494
|
title: 'Meter',
|
|
3495
|
+
formTitle: 'Titel (erforderlich)',
|
|
3496
|
+
formTitleHelperText: 'Der im Widget angezeigte Titel',
|
|
3497
|
+
subtitle: 'Untertitel',
|
|
3498
|
+
subtitleHelperText: 'Der im Widget angezeigte Untertitel',
|
|
3499
|
+
label: 'Beschriftung',
|
|
3500
|
+
labelHelperText: 'Die im Widget angezeigte Beschriftung',
|
|
2233
3501
|
},
|
|
2234
3502
|
},
|
|
2235
|
-
requiredDataFeatures: [],
|
|
3503
|
+
requiredDataFeatures: [DATA_FEATURES.NUMBERS],
|
|
2236
3504
|
};
|
|
2237
3505
|
|
|
2238
3506
|
/*
|
|
2239
|
-
* Copyright 2015-
|
|
3507
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2240
3508
|
*
|
|
2241
3509
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2242
3510
|
* you may not use this file except in compliance with the License.
|
|
@@ -2251,22 +3519,48 @@ const meterSpecification = {
|
|
|
2251
3519
|
* limitations under the License.
|
|
2252
3520
|
*/
|
|
2253
3521
|
class MeterModule {
|
|
2254
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2255
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2256
|
-
|
|
3522
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MeterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3523
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: MeterModule, declarations: [MeterDisplayComponent, MeterConfigurationComponent], imports: [CommonModule,
|
|
3524
|
+
ReactiveFormsModule,
|
|
3525
|
+
WidgetTranslatePipeModule,
|
|
3526
|
+
InputModule,
|
|
3527
|
+
CheckboxModule,
|
|
3528
|
+
CommonModule,
|
|
3529
|
+
ChartsModule,
|
|
3530
|
+
CarbonListModule,
|
|
3531
|
+
TranslateModule], exports: [MeterDisplayComponent] }); }
|
|
3532
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MeterModule, providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: meterSpecification, multi: true }], imports: [CommonModule,
|
|
3533
|
+
ReactiveFormsModule,
|
|
3534
|
+
WidgetTranslatePipeModule,
|
|
3535
|
+
InputModule,
|
|
3536
|
+
CheckboxModule,
|
|
3537
|
+
CommonModule,
|
|
3538
|
+
ChartsModule,
|
|
3539
|
+
CarbonListModule,
|
|
3540
|
+
TranslateModule] }); }
|
|
2257
3541
|
}
|
|
2258
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3542
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MeterModule, decorators: [{
|
|
2259
3543
|
type: NgModule,
|
|
2260
3544
|
args: [{
|
|
2261
|
-
declarations: [MeterDisplayComponent],
|
|
2262
|
-
imports: [
|
|
3545
|
+
declarations: [MeterDisplayComponent, MeterConfigurationComponent],
|
|
3546
|
+
imports: [
|
|
3547
|
+
CommonModule,
|
|
3548
|
+
ReactiveFormsModule,
|
|
3549
|
+
WidgetTranslatePipeModule,
|
|
3550
|
+
InputModule,
|
|
3551
|
+
CheckboxModule,
|
|
3552
|
+
CommonModule,
|
|
3553
|
+
ChartsModule,
|
|
3554
|
+
CarbonListModule,
|
|
3555
|
+
TranslateModule,
|
|
3556
|
+
],
|
|
2263
3557
|
exports: [MeterDisplayComponent],
|
|
2264
3558
|
providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: meterSpecification, multi: true }],
|
|
2265
3559
|
}]
|
|
2266
3560
|
}] });
|
|
2267
3561
|
|
|
2268
3562
|
/*
|
|
2269
|
-
* Copyright 2015-
|
|
3563
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2270
3564
|
*
|
|
2271
3565
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2272
3566
|
* you may not use this file except in compliance with the License.
|
|
@@ -2282,7 +3576,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2282
3576
|
*/
|
|
2283
3577
|
|
|
2284
3578
|
/*
|
|
2285
|
-
* Copyright 2015-
|
|
3579
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2286
3580
|
*
|
|
2287
3581
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2288
3582
|
* you may not use this file except in compliance with the License.
|
|
@@ -2298,7 +3592,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2298
3592
|
*/
|
|
2299
3593
|
|
|
2300
3594
|
/*
|
|
2301
|
-
* Copyright 2015-
|
|
3595
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2302
3596
|
*
|
|
2303
3597
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2304
3598
|
* you may not use this file except in compliance with the License.
|
|
@@ -2314,7 +3608,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2314
3608
|
*/
|
|
2315
3609
|
|
|
2316
3610
|
/*
|
|
2317
|
-
* Copyright 2015-
|
|
3611
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2318
3612
|
*
|
|
2319
3613
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2320
3614
|
* you may not use this file except in compliance with the License.
|
|
@@ -2330,7 +3624,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2330
3624
|
*/
|
|
2331
3625
|
|
|
2332
3626
|
/*
|
|
2333
|
-
* Copyright 2015-
|
|
3627
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
2334
3628
|
*
|
|
2335
3629
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
2336
3630
|
* you may not use this file except in compliance with the License.
|
|
@@ -2352,5 +3646,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2352
3646
|
* Generated bundle index. Do not edit.
|
|
2353
3647
|
*/
|
|
2354
3648
|
|
|
2355
|
-
export {
|
|
3649
|
+
export { BigNumberConfigurationComponent, BigNumberDisplayComponent, BigNumberModule, CaseCountConfigurationComponent, CaseCountDataSourceModule, CaseCountsConfigurationComponent, CaseCountsDataSourceModule, CaseGroupByConfigurationComponent, CaseGroupByDataSourceModule, DATA_FEATURES, DATA_SOURCE_TOKEN, DISPLAY_TYPE_TOKEN, DashboardComponent, DashboardModule, DashboardService, DonutConfigurationComponent, DonutDisplayComponent, DonutModule, GaugeConfigurationComponent, GaugeDisplayComponent, GaugeModule, HttpLoaderFactory, MeterConfigurationComponent, MeterDisplayComponent, MeterModule, Operator, WIDGET_1X_HEIGHT, WIDGET_1X_MIN_WIDTH, WidgetDashboardComponent, WidgetDashboardContentComponent, WidgetService, WidgetSeverity, WidgetTranslatePipe, WidgetTranslatePipeModule, WidgetTranslationService, bigNumberSpecification, caseCountDataSourceSpecification, caseCountsDataSourceSpecification, caseGroupByDataSourceSpecification, donutSpecification, gaugeSpecification, meterSpecification };
|
|
2356
3650
|
//# sourceMappingURL=valtimo-dashboard.mjs.map
|