@valtimo/dashboard 10.6.0 → 10.7.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.
Files changed (222) hide show
  1. package/esm2020/lib/components/dashboard/dashboard.component.mjs +85 -0
  2. package/esm2020/lib/components/widget-dashboard/widget-dashboard.component.mjs +56 -0
  3. package/esm2020/lib/components/widget-dashboard-content/widget-dashboard-content.component.mjs +122 -0
  4. package/esm2020/lib/constants/data-features.constants.mjs +21 -0
  5. package/esm2020/lib/constants/index.mjs +19 -0
  6. package/esm2020/lib/constants/injection-tokens.mjs +20 -0
  7. package/esm2020/lib/constants/layout.constants.mjs +19 -0
  8. package/esm2020/lib/dashboard-routing.module.mjs +10 -10
  9. package/esm2020/lib/dashboard.module.mjs +37 -13
  10. package/esm2020/lib/data-sources/case-count/case-count.module.mjs +61 -0
  11. package/esm2020/lib/data-sources/case-count/case-count.specification.mjs +74 -0
  12. package/esm2020/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.mjs +149 -0
  13. package/esm2020/lib/data-sources/case-count/components/case-count-configuration/index.mjs +17 -0
  14. package/esm2020/lib/data-sources/case-count/components/index.mjs +17 -0
  15. package/esm2020/lib/data-sources/case-count/index.mjs +20 -0
  16. package/esm2020/lib/data-sources/case-count/models/case-count.model.mjs +26 -0
  17. package/esm2020/lib/data-sources/case-count/models/index.mjs +17 -0
  18. package/esm2020/lib/data-sources/index.mjs +18 -0
  19. package/esm2020/lib/data-sources/test/components/index.mjs +17 -0
  20. package/esm2020/lib/data-sources/test/components/test-configuration/index.mjs +17 -0
  21. package/esm2020/lib/data-sources/test/components/test-configuration/test-configuration.component.mjs +80 -0
  22. package/esm2020/lib/data-sources/test/index.mjs +20 -0
  23. package/esm2020/lib/data-sources/test/models/index.mjs +17 -0
  24. package/esm2020/lib/data-sources/test/models/test.model.mjs +17 -0
  25. package/esm2020/lib/data-sources/test/test.module.mjs +39 -0
  26. package/esm2020/lib/data-sources/test/test.specification.mjs +44 -0
  27. package/esm2020/lib/display-types/bar-chart/bar-chart.module.mjs +36 -0
  28. package/esm2020/lib/display-types/bar-chart/bar-chart.specification.mjs +35 -0
  29. package/esm2020/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.mjs +32 -0
  30. package/esm2020/lib/display-types/bar-chart/components/bar-chart-display/index.mjs +17 -0
  31. package/esm2020/lib/display-types/bar-chart/components/index.mjs +17 -0
  32. package/esm2020/lib/display-types/bar-chart/index.mjs +20 -0
  33. package/esm2020/lib/display-types/bar-chart/models/bar-chart.model.mjs +17 -0
  34. package/esm2020/lib/display-types/bar-chart/models/index.mjs +17 -0
  35. package/esm2020/lib/display-types/big-number/big-number.module.mjs +53 -0
  36. package/esm2020/lib/display-types/big-number/big-number.specification.mjs +67 -0
  37. package/esm2020/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.mjs +124 -0
  38. package/esm2020/lib/display-types/big-number/components/big-number-configuration/index.mjs +17 -0
  39. package/esm2020/lib/display-types/big-number/components/big-number-display/big-number-display.component.mjs +56 -0
  40. package/esm2020/lib/display-types/big-number/components/big-number-display/index.mjs +17 -0
  41. package/esm2020/lib/display-types/big-number/components/index.mjs +18 -0
  42. package/esm2020/lib/display-types/big-number/index.mjs +20 -0
  43. package/esm2020/lib/display-types/big-number/models/big-number.model.mjs +17 -0
  44. package/esm2020/lib/display-types/big-number/models/index.mjs +17 -0
  45. package/esm2020/lib/display-types/index.mjs +19 -0
  46. package/esm2020/lib/display-types/meter/components/index.mjs +17 -0
  47. package/esm2020/lib/display-types/meter/components/meter-display/index.mjs +17 -0
  48. package/esm2020/lib/display-types/meter/components/meter-display/meter-display.component.mjs +32 -0
  49. package/esm2020/lib/display-types/meter/index.mjs +20 -0
  50. package/esm2020/lib/display-types/meter/meter.module.mjs +36 -0
  51. package/esm2020/lib/display-types/meter/meter.specification.mjs +35 -0
  52. package/esm2020/lib/display-types/meter/models/index.mjs +17 -0
  53. package/esm2020/lib/display-types/meter/models/meter.model.mjs +17 -0
  54. package/esm2020/lib/models/configuration.model.mjs +17 -0
  55. package/esm2020/lib/models/dashboard.model.mjs +17 -0
  56. package/esm2020/lib/models/data-source.model.mjs +17 -0
  57. package/esm2020/lib/models/display-type.model.mjs +17 -0
  58. package/esm2020/lib/models/index.mjs +23 -0
  59. package/esm2020/lib/models/layout.model.mjs +17 -0
  60. package/esm2020/lib/models/widget-data.model.mjs +17 -0
  61. package/esm2020/lib/models/widget-display.model.mjs +25 -0
  62. package/esm2020/lib/pipes/index.mjs +17 -0
  63. package/esm2020/lib/pipes/widget-translate/index.mjs +18 -0
  64. package/esm2020/lib/pipes/widget-translate/widget-translate-pipe.module.mjs +33 -0
  65. package/esm2020/lib/pipes/widget-translate/widget-translate.pipe.mjs +35 -0
  66. package/esm2020/lib/services/dashboard.service.mjs +38 -0
  67. package/esm2020/lib/services/index.mjs +19 -0
  68. package/esm2020/lib/services/widget-api.service.mjs +38 -0
  69. package/esm2020/lib/services/widget-layout.service.mjs +121 -0
  70. package/esm2020/lib/services/widget-translation.service.mjs +61 -0
  71. package/esm2020/lib/services/widget.service.mjs +62 -0
  72. package/esm2020/public_api.mjs +10 -2
  73. package/fesm2015/valtimo-dashboard.mjs +2047 -90
  74. package/fesm2015/valtimo-dashboard.mjs.map +1 -1
  75. package/fesm2020/valtimo-dashboard.mjs +2213 -90
  76. package/fesm2020/valtimo-dashboard.mjs.map +1 -1
  77. package/lib/{dashboard.component.d.ts → components/dashboard/dashboard.component.d.ts} +3 -8
  78. package/lib/components/dashboard/dashboard.component.d.ts.map +1 -0
  79. package/lib/components/widget-dashboard/widget-dashboard.component.d.ts +20 -0
  80. package/lib/components/widget-dashboard/widget-dashboard.component.d.ts.map +1 -0
  81. package/lib/components/widget-dashboard-content/widget-dashboard-content.component.d.ts +34 -0
  82. package/lib/components/widget-dashboard-content/widget-dashboard-content.component.d.ts.map +1 -0
  83. package/lib/constants/data-features.constants.d.ts +6 -0
  84. package/lib/constants/data-features.constants.d.ts.map +1 -0
  85. package/lib/constants/index.d.ts +4 -0
  86. package/lib/constants/index.d.ts.map +1 -0
  87. package/lib/constants/injection-tokens.d.ts +6 -0
  88. package/lib/constants/injection-tokens.d.ts.map +1 -0
  89. package/lib/constants/layout.constants.d.ts +4 -0
  90. package/lib/constants/layout.constants.d.ts.map +1 -0
  91. package/lib/dashboard-routing.module.d.ts.map +1 -1
  92. package/lib/dashboard.module.d.ts +12 -8
  93. package/lib/dashboard.module.d.ts.map +1 -1
  94. package/lib/data-sources/case-count/case-count.module.d.ts +13 -0
  95. package/lib/data-sources/case-count/case-count.module.d.ts.map +1 -0
  96. package/lib/data-sources/case-count/case-count.specification.d.ts +3 -0
  97. package/lib/data-sources/case-count/case-count.specification.d.ts.map +1 -0
  98. package/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.d.ts +44 -0
  99. package/lib/data-sources/case-count/components/case-count-configuration/case-count-configuration.component.d.ts.map +1 -0
  100. package/lib/data-sources/case-count/components/case-count-configuration/index.d.ts +2 -0
  101. package/lib/data-sources/case-count/components/case-count-configuration/index.d.ts.map +1 -0
  102. package/lib/data-sources/case-count/components/index.d.ts +2 -0
  103. package/lib/data-sources/case-count/components/index.d.ts.map +1 -0
  104. package/lib/data-sources/case-count/index.d.ts +5 -0
  105. package/lib/data-sources/case-count/index.d.ts.map +1 -0
  106. package/lib/data-sources/case-count/models/case-count.model.d.ts +19 -0
  107. package/lib/data-sources/case-count/models/case-count.model.d.ts.map +1 -0
  108. package/lib/data-sources/case-count/models/index.d.ts +2 -0
  109. package/lib/data-sources/case-count/models/index.d.ts.map +1 -0
  110. package/lib/data-sources/index.d.ts +3 -0
  111. package/lib/data-sources/index.d.ts.map +1 -0
  112. package/lib/data-sources/test/components/index.d.ts +2 -0
  113. package/lib/data-sources/test/components/index.d.ts.map +1 -0
  114. package/lib/data-sources/test/components/test-configuration/index.d.ts +2 -0
  115. package/lib/data-sources/test/components/test-configuration/index.d.ts.map +1 -0
  116. package/lib/data-sources/test/components/test-configuration/test-configuration.component.d.ts +26 -0
  117. package/lib/data-sources/test/components/test-configuration/test-configuration.component.d.ts.map +1 -0
  118. package/lib/data-sources/test/index.d.ts +5 -0
  119. package/lib/data-sources/test/index.d.ts.map +1 -0
  120. package/lib/data-sources/test/models/index.d.ts +2 -0
  121. package/lib/data-sources/test/models/index.d.ts.map +1 -0
  122. package/lib/data-sources/test/models/test.model.d.ts +6 -0
  123. package/lib/data-sources/test/models/test.model.d.ts.map +1 -0
  124. package/lib/data-sources/test/test.module.d.ts +12 -0
  125. package/lib/data-sources/test/test.module.d.ts.map +1 -0
  126. package/lib/data-sources/test/test.specification.d.ts +3 -0
  127. package/lib/data-sources/test/test.specification.d.ts.map +1 -0
  128. package/lib/display-types/bar-chart/bar-chart.module.d.ts +9 -0
  129. package/lib/display-types/bar-chart/bar-chart.module.d.ts.map +1 -0
  130. package/lib/display-types/bar-chart/bar-chart.specification.d.ts +3 -0
  131. package/lib/display-types/bar-chart/bar-chart.specification.d.ts.map +1 -0
  132. package/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.d.ts +11 -0
  133. package/lib/display-types/bar-chart/components/bar-chart-display/bar-chart-display.component.d.ts.map +1 -0
  134. package/lib/display-types/bar-chart/components/bar-chart-display/index.d.ts +2 -0
  135. package/lib/display-types/bar-chart/components/bar-chart-display/index.d.ts.map +1 -0
  136. package/lib/display-types/bar-chart/components/index.d.ts +2 -0
  137. package/lib/display-types/bar-chart/components/index.d.ts.map +1 -0
  138. package/lib/display-types/bar-chart/index.d.ts +5 -0
  139. package/lib/display-types/bar-chart/index.d.ts.map +1 -0
  140. package/lib/display-types/bar-chart/models/bar-chart.model.d.ts +8 -0
  141. package/lib/display-types/bar-chart/models/bar-chart.model.d.ts.map +1 -0
  142. package/lib/display-types/bar-chart/models/index.d.ts +2 -0
  143. package/lib/display-types/bar-chart/models/index.d.ts.map +1 -0
  144. package/lib/display-types/big-number/big-number.module.d.ts +13 -0
  145. package/lib/display-types/big-number/big-number.module.d.ts.map +1 -0
  146. package/lib/display-types/big-number/big-number.specification.d.ts +3 -0
  147. package/lib/display-types/big-number/big-number.specification.d.ts.map +1 -0
  148. package/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.d.ts +37 -0
  149. package/lib/display-types/big-number/components/big-number-configuration/big-number-configuration.component.d.ts.map +1 -0
  150. package/lib/display-types/big-number/components/big-number-configuration/index.d.ts +2 -0
  151. package/lib/display-types/big-number/components/big-number-configuration/index.d.ts.map +1 -0
  152. package/lib/display-types/big-number/components/big-number-display/big-number-display.component.d.ts +13 -0
  153. package/lib/display-types/big-number/components/big-number-display/big-number-display.component.d.ts.map +1 -0
  154. package/lib/display-types/big-number/components/big-number-display/index.d.ts +2 -0
  155. package/lib/display-types/big-number/components/big-number-display/index.d.ts.map +1 -0
  156. package/lib/display-types/big-number/components/index.d.ts +3 -0
  157. package/lib/display-types/big-number/components/index.d.ts.map +1 -0
  158. package/lib/display-types/big-number/index.d.ts +5 -0
  159. package/lib/display-types/big-number/index.d.ts.map +1 -0
  160. package/lib/display-types/big-number/models/big-number.model.d.ts +14 -0
  161. package/lib/display-types/big-number/models/big-number.model.d.ts.map +1 -0
  162. package/lib/display-types/big-number/models/index.d.ts +2 -0
  163. package/lib/display-types/big-number/models/index.d.ts.map +1 -0
  164. package/lib/display-types/index.d.ts +4 -0
  165. package/lib/display-types/index.d.ts.map +1 -0
  166. package/lib/display-types/meter/components/index.d.ts +2 -0
  167. package/lib/display-types/meter/components/index.d.ts.map +1 -0
  168. package/lib/display-types/meter/components/meter-display/index.d.ts +2 -0
  169. package/lib/display-types/meter/components/meter-display/index.d.ts.map +1 -0
  170. package/lib/display-types/meter/components/meter-display/meter-display.component.d.ts +11 -0
  171. package/lib/display-types/meter/components/meter-display/meter-display.component.d.ts.map +1 -0
  172. package/lib/display-types/meter/index.d.ts +5 -0
  173. package/lib/display-types/meter/index.d.ts.map +1 -0
  174. package/lib/display-types/meter/meter.module.d.ts +9 -0
  175. package/lib/display-types/meter/meter.module.d.ts.map +1 -0
  176. package/lib/display-types/meter/meter.specification.d.ts +3 -0
  177. package/lib/display-types/meter/meter.specification.d.ts.map +1 -0
  178. package/lib/display-types/meter/models/index.d.ts +2 -0
  179. package/lib/display-types/meter/models/index.d.ts.map +1 -0
  180. package/lib/display-types/meter/models/meter.model.d.ts +8 -0
  181. package/lib/display-types/meter/models/meter.model.d.ts.map +1 -0
  182. package/lib/models/configuration.model.d.ts +18 -0
  183. package/lib/models/configuration.model.d.ts.map +1 -0
  184. package/lib/models/dashboard.model.d.ts +15 -0
  185. package/lib/models/dashboard.model.d.ts.map +1 -0
  186. package/lib/models/data-source.model.d.ts +14 -0
  187. package/lib/models/data-source.model.d.ts.map +1 -0
  188. package/lib/models/display-type.model.d.ts +23 -0
  189. package/lib/models/display-type.model.d.ts.map +1 -0
  190. package/lib/models/index.d.ts +8 -0
  191. package/lib/models/index.d.ts.map +1 -0
  192. package/lib/models/layout.model.d.ts +18 -0
  193. package/lib/models/layout.model.d.ts.map +1 -0
  194. package/lib/models/widget-data.model.d.ts +6 -0
  195. package/lib/models/widget-data.model.d.ts.map +1 -0
  196. package/lib/models/widget-display.model.d.ts +9 -0
  197. package/lib/models/widget-display.model.d.ts.map +1 -0
  198. package/lib/pipes/index.d.ts +2 -0
  199. package/lib/pipes/index.d.ts.map +1 -0
  200. package/lib/pipes/widget-translate/index.d.ts +3 -0
  201. package/lib/pipes/widget-translate/index.d.ts.map +1 -0
  202. package/lib/pipes/widget-translate/widget-translate-pipe.module.d.ts +9 -0
  203. package/lib/pipes/widget-translate/widget-translate-pipe.module.d.ts.map +1 -0
  204. package/lib/pipes/widget-translate/widget-translate.pipe.d.ts +12 -0
  205. package/lib/pipes/widget-translate/widget-translate.pipe.d.ts.map +1 -0
  206. package/lib/services/dashboard.service.d.ts +15 -0
  207. package/lib/services/dashboard.service.d.ts.map +1 -0
  208. package/lib/services/index.d.ts +4 -0
  209. package/lib/services/index.d.ts.map +1 -0
  210. package/lib/services/widget-api.service.d.ts +15 -0
  211. package/lib/services/widget-api.service.d.ts.map +1 -0
  212. package/lib/services/widget-layout.service.d.ts +29 -0
  213. package/lib/services/widget-layout.service.d.ts.map +1 -0
  214. package/lib/services/widget-translation.service.d.ts +15 -0
  215. package/lib/services/widget-translation.service.d.ts.map +1 -0
  216. package/lib/services/widget.service.d.ts +19 -0
  217. package/lib/services/widget.service.d.ts.map +1 -0
  218. package/package.json +7 -6
  219. package/public_api.d.ts +9 -1
  220. package/public_api.d.ts.map +1 -1
  221. package/esm2020/lib/dashboard.component.mjs +0 -89
  222. package/lib/dashboard.component.d.ts.map +0 -1
@@ -1,23 +1,30 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ViewChild, NgModule } from '@angular/core';
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 { take } from 'rxjs/operators';
5
- import { BehaviorSubject } from 'rxjs';
6
- import * as i1 from '@angular/router';
7
- import { RouterModule } from '@angular/router';
8
- import * as i2 from '@valtimo/context';
9
- import * as i3 from '@valtimo/task';
4
+ import { BehaviorSubject, filter, combineLatest, map, Subscription, tap, take as take$1, startWith } from 'rxjs';
5
+ import { take, map as map$1 } from 'rxjs/operators';
6
+ import * as i1 from '@valtimo/task';
10
7
  import { TaskModule } from '@valtimo/task';
11
- import * as i4 from '@ngx-translate/core';
12
- import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
13
- import * as i5 from '@angular/common';
8
+ import * as i2 from '@angular/router';
9
+ import { RouterModule } from '@angular/router';
10
+ import * as i3 from '@angular/common';
14
11
  import { CommonModule } from '@angular/common';
15
- import * as i6 from '@valtimo/components';
16
- import { WidgetModule, ListModule, BpmnJsDiagramModule, AlertModule, SpinnerModule } from '@valtimo/components';
12
+ import * as i4 from '@valtimo/components';
13
+ import { WidgetModule, ListModule, BpmnJsDiagramModule, AlertModule, SpinnerModule, CarbonMultiInputModule } from '@valtimo/components';
14
+ import * as i1$1 from '@ngx-translate/core';
15
+ import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
16
+ import pack from 'bin-pack-with-constraints';
17
+ import * as i1$2 from '@angular/common/http';
18
+ import { HttpClient } from '@angular/common/http';
19
+ import * as i2$1 from '@valtimo/config';
20
+ import { ROLE_USER } from '@valtimo/config';
21
+ import * as i4$1 from 'carbon-components-angular';
22
+ import { TabsModule, ThemeModule, LoadingModule, InputModule, DropdownModule, CheckboxModule } from 'carbon-components-angular';
17
23
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
18
24
  import { AuthGuardService } from '@valtimo/security';
19
- import { ROLE_USER } from '@valtimo/config';
20
- import { HttpClient } from '@angular/common/http';
25
+ import * as i1$3 from '@angular/forms';
26
+ import { Validators, ReactiveFormsModule } from '@angular/forms';
27
+ import * as i2$2 from '@valtimo/document';
21
28
 
22
29
  /*
23
30
  * Copyright 2015-2023 Ritense BV, the Netherlands.
@@ -37,12 +44,9 @@ import { HttpClient } from '@angular/common/http';
37
44
  moment.locale(localStorage.getItem('langKey') || '');
38
45
  moment.defaultFormat = 'DD MMM YYYY HH:mm';
39
46
  class DashboardComponent {
40
- constructor(router, contextService, taskService, route, translate) {
41
- this.router = router;
42
- this.contextService = contextService;
47
+ constructor(taskService, route) {
43
48
  this.taskService = taskService;
44
49
  this.route = route;
45
- this.translate = translate;
46
50
  this.openTaskFields = [
47
51
  {
48
52
  key: 'created',
@@ -87,12 +91,12 @@ class DashboardComponent {
87
91
  });
88
92
  }
89
93
  }
90
- DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.Router }, { token: i2.ContextService }, { token: i3.TaskService }, { token: i1.ActivatedRoute }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
91
- DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DashboardComponent, selector: "valtimo-dashboard", viewQueries: [{ propertyName: "taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], 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<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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i6.ListComponent, selector: "valtimo-list", inputs: ["items", "fields", "pagination", "viewMode", "isSearchable", "header", "actions", "paginationIdentifier", "initialSortState", "lastColumnTemplate"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged"] }, { kind: "component", type: i3.TaskDetailModalComponent, selector: "valtimo-task-detail-modal", outputs: ["formSubmit", "assignmentOfTaskChanged"] }, { kind: "component", type: i6.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DashboardComponent, decorators: [{
94
+ DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.TaskService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
95
+ DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DashboardComponent, selector: "valtimo-dashboard", viewQueries: [{ propertyName: "taskDetail", first: true, predicate: ["taskDetail"], descendants: true }], 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<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: i4.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: i4.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: i4.SpinnerComponent, selector: "valtimo-spinner", inputs: ["useBootstrapSpinner", "name", "type", "size", "color", "bdColor", "fullScreen", "noMarginTop"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardComponent, decorators: [{
93
97
  type: Component,
94
98
  args: [{ selector: 'valtimo-dashboard', 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<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" }]
95
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ContextService }, { type: i3.TaskService }, { type: i1.ActivatedRoute }, { type: i4.TranslateService }]; }, propDecorators: { taskDetail: [{
99
+ }], ctorParameters: function () { return [{ type: i1.TaskService }, { type: i2.ActivatedRoute }]; }, propDecorators: { taskDetail: [{
96
100
  type: ViewChild,
97
101
  args: ['taskDetail']
98
102
  }] } });
@@ -112,27 +116,122 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
112
116
  * See the License for the specific language governing permissions and
113
117
  * limitations under the License.
114
118
  */
115
- const routes = [
116
- {
117
- path: '',
118
- component: DashboardComponent,
119
- canActivate: [AuthGuardService],
120
- data: { title: 'Dashboard', roles: [ROLE_USER] },
121
- },
122
- ];
123
- class DashboardRoutingModule {
119
+ const DATA_FEATURES = {
120
+ NUMBER: 'number',
121
+ TOTAL: 'total',
122
+ };
123
+
124
+ /*
125
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
126
+ *
127
+ * Licensed under EUPL, Version 1.2 (the "License");
128
+ * you may not use this file except in compliance with the License.
129
+ * You may obtain a copy of the License at
130
+ *
131
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
132
+ *
133
+ * Unless required by applicable law or agreed to in writing, software
134
+ * distributed under the License is distributed on an "AS IS" basis,
135
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136
+ * See the License for the specific language governing permissions and
137
+ * limitations under the License.
138
+ */
139
+ const DISPLAY_TYPE_TOKEN = new InjectionToken('Supported display types');
140
+ const DATA_SOURCE_TOKEN = new InjectionToken('Supported data sources');
141
+
142
+ /*
143
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
144
+ *
145
+ * Licensed under EUPL, Version 1.2 (the "License");
146
+ * you may not use this file except in compliance with the License.
147
+ * You may obtain a copy of the License at
148
+ *
149
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
150
+ *
151
+ * Unless required by applicable law or agreed to in writing, software
152
+ * distributed under the License is distributed on an "AS IS" basis,
153
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
154
+ * See the License for the specific language governing permissions and
155
+ * limitations under the License.
156
+ */
157
+ const WIDGET_1X_HEIGHT = 220;
158
+ const WIDGET_1X_MIN_WIDTH = 275;
159
+
160
+ /*
161
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
162
+ *
163
+ * Licensed under EUPL, Version 1.2 (the "License");
164
+ * you may not use this file except in compliance with the License.
165
+ * You may obtain a copy of the License at
166
+ *
167
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
168
+ *
169
+ * Unless required by applicable law or agreed to in writing, software
170
+ * distributed under the License is distributed on an "AS IS" basis,
171
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
172
+ * See the License for the specific language governing permissions and
173
+ * limitations under the License.
174
+ */
175
+
176
+ /*
177
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
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
+ constructor(supportedDisplayTypesFromToken, supportedDataSourcesFromToken) {
193
+ this.supportedDisplayTypesFromToken = supportedDisplayTypesFromToken;
194
+ this.supportedDataSourcesFromToken = supportedDataSourcesFromToken;
195
+ this._supportedDisplayTypes$ = new BehaviorSubject(null);
196
+ this._supportedDataSources$ = new BehaviorSubject(null);
197
+ this.setSupportedDisplayTypes(supportedDisplayTypesFromToken);
198
+ this.setSupportedDataSources(supportedDataSourcesFromToken);
199
+ }
200
+ get supportedDisplayTypes$() {
201
+ return this._supportedDisplayTypes$.pipe(filter(specifications => !!specifications));
202
+ }
203
+ get supportedDataSources$() {
204
+ return this._supportedDataSources$.pipe(filter(specifications => !!specifications));
205
+ }
206
+ get supportedDisplayTypes() {
207
+ return this._supportedDisplayTypes$.getValue() || [];
208
+ }
209
+ get supportedDataSources() {
210
+ return this._supportedDataSources$.getValue() || [];
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
+ }
124
218
  }
125
- DashboardRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DashboardRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
126
- DashboardRoutingModulemod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DashboardRoutingModule, imports: [CommonModule, i1.RouterModule], exports: [RouterModule] });
127
- DashboardRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DashboardRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] });
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DashboardRoutingModule, decorators: [{
129
- type: NgModule,
219
+ WidgetService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetService, deps: [{ token: DISPLAY_TYPE_TOKEN }, { token: DATA_SOURCE_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
220
+ WidgetServiceprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetService, providedIn: 'root' });
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetService, decorators: [{
222
+ type: Injectable,
130
223
  args: [{
131
- declarations: [],
132
- imports: [CommonModule, RouterModule.forChild(routes)],
133
- exports: [RouterModule],
224
+ providedIn: 'root',
134
225
  }]
135
- }] });
226
+ }], ctorParameters: function () {
227
+ return [{ type: Array, decorators: [{
228
+ type: Inject,
229
+ args: [DISPLAY_TYPE_TOKEN]
230
+ }] }, { type: Array, decorators: [{
231
+ type: Inject,
232
+ args: [DATA_SOURCE_TOKEN]
233
+ }] }];
234
+ } });
136
235
 
137
236
  /*
138
237
  * Copyright 2015-2023 Ritense BV, the Netherlands.
@@ -149,59 +248,1917 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
149
248
  * See the License for the specific language governing permissions and
150
249
  * limitations under the License.
151
250
  */
152
- // AoT requires an exported function for factories
153
- function HttpLoaderFactory(httpClient) {
154
- return new TranslateHttpLoader(httpClient);
251
+ class WidgetLayoutService {
252
+ constructor(widgetService) {
253
+ this.widgetService = widgetService;
254
+ this._widgetContainerWidth$ = new BehaviorSubject(null);
255
+ this._widgetConfigurations$ = new BehaviorSubject([]);
256
+ this._widgetPackResult$ = new BehaviorSubject(null);
257
+ this.openLayoutSubscription();
258
+ }
259
+ get widgetPackResult$() {
260
+ return this._widgetPackResult$.asObservable().pipe(filter(result => !!result));
261
+ }
262
+ get widgetContainerWidth$() {
263
+ return this._widgetContainerWidth$.asObservable().pipe(filter(width => !!width));
264
+ }
265
+ get widgetConfigurationBins$() {
266
+ return combineLatest([
267
+ this.widgetService.supportedDisplayTypes$,
268
+ this._widgetConfigurations$,
269
+ ]).pipe(map(([displayTypes, configurations]) => configurations.map(configuration => {
270
+ const specification = displayTypes.find(type => type.displayTypeKey === configuration.displayType);
271
+ return {
272
+ configurationKey: configuration.key,
273
+ width: specification.width,
274
+ height: specification.height,
275
+ };
276
+ })));
277
+ }
278
+ ngOnDestroy() {
279
+ var _a;
280
+ (_a = this._layoutSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
281
+ }
282
+ setWidgetContainerWidth(width) {
283
+ this._widgetContainerWidth$.next(width);
284
+ }
285
+ setWidgetConfigurations(configurations) {
286
+ this._widgetConfigurations$.next(configurations);
287
+ }
288
+ openLayoutSubscription() {
289
+ this._layoutSubscription = combineLatest([
290
+ this.widgetContainerWidth$,
291
+ this.widgetConfigurationBins$,
292
+ ]).subscribe(([widgetContainerWidth, configurationBins]) => {
293
+ const amountOfMinWidthColumns = this.getAmountOfMinWidthColumns(widgetContainerWidth);
294
+ const widget1xWidth = this.getWidget1xWidth(widgetContainerWidth, amountOfMinWidthColumns);
295
+ const binsToFit = configurationBins.map(configurationBin => (Object.assign(Object.assign({}, configurationBin), { width: configurationBin.width * widget1xWidth, height: configurationBin.height * WIDGET_1X_HEIGHT })));
296
+ const heightConstraint = this.getHeightConstraint(configurationBins, amountOfMinWidthColumns);
297
+ const resultWithoutHeightConstraint = this.getPackResult(binsToFit, widgetContainerWidth);
298
+ const resultWithHeightConstraint = this.getPackResult(binsToFit, widgetContainerWidth, heightConstraint);
299
+ const resultWithHeightConstraintExceedsBoundary = this.checkIfPackResultExceedsBoundary(resultWithHeightConstraint, widgetContainerWidth);
300
+ const resultToUse = resultWithHeightConstraintExceedsBoundary
301
+ ? resultWithoutHeightConstraint
302
+ : resultWithHeightConstraint;
303
+ const resultWithMaxWidth = this.getResultWithMaxWidth(resultToUse, widgetContainerWidth);
304
+ this._widgetPackResult$.next(resultWithMaxWidth);
305
+ });
306
+ }
307
+ getPackResult(binsToFit, maxWidth, maxHeight) {
308
+ return pack(binsToFit, Object.assign({ maxWidth }, (maxHeight && { maxHeight })));
309
+ }
310
+ checkIfPackResultExceedsBoundary(result, maxWidth) {
311
+ return !!result.items.find(item => item.width + item.x > maxWidth);
312
+ }
313
+ getAmountOfMinWidthColumns(containerWidth) {
314
+ return Math.floor(containerWidth / WIDGET_1X_MIN_WIDTH);
315
+ }
316
+ getWidget1xWidth(containerWidth, amountOfMinWidthColumns) {
317
+ const widget1xWidth = Math.floor(containerWidth / (amountOfMinWidthColumns || 1));
318
+ return widget1xWidth;
319
+ }
320
+ getResultWithMaxWidth(result, containerWidth) {
321
+ return Object.assign(Object.assign({}, result), { items: result.items.map(item => (Object.assign(Object.assign({}, item), { width: item.width > containerWidth ? containerWidth : item.width }))) });
322
+ }
323
+ getHeightConstraint(binsToFit, amountOfMinWidthColumns) {
324
+ const amountOfSpacesNeeded = binsToFit.reduce((acc, curr) => acc + curr.height * curr.width, 0);
325
+ const minAmountOfRowsNeeded = Math.ceil(amountOfSpacesNeeded / amountOfMinWidthColumns);
326
+ const tallestWidgetHeightSpace = binsToFit.reduce((acc, curr) => (curr.height > acc ? curr.height : acc), 0);
327
+ const amountOfRowsNeeded = minAmountOfRowsNeeded < tallestWidgetHeightSpace
328
+ ? tallestWidgetHeightSpace
329
+ : minAmountOfRowsNeeded;
330
+ return amountOfRowsNeeded * WIDGET_1X_HEIGHT;
331
+ }
155
332
  }
156
- class DashboardModule {
333
+ WidgetLayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetLayoutService, deps: [{ token: WidgetService }], target: i0.ɵɵFactoryTarget.Injectable });
334
+ WidgetLayoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetLayoutService });
335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetLayoutService, decorators: [{
336
+ type: Injectable
337
+ }], ctorParameters: function () { return [{ type: WidgetService }]; } });
338
+
339
+ /*
340
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
341
+ *
342
+ * Licensed under EUPL, Version 1.2 (the "License");
343
+ * you may not use this file except in compliance with the License.
344
+ * You may obtain a copy of the License at
345
+ *
346
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
347
+ *
348
+ * Unless required by applicable law or agreed to in writing, software
349
+ * distributed under the License is distributed on an "AS IS" basis,
350
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
351
+ * See the License for the specific language governing permissions and
352
+ * limitations under the License.
353
+ */
354
+ class DashboardService {
355
+ constructor(http, configService) {
356
+ this.http = http;
357
+ this.configService = configService;
358
+ this._endpointUri = this.configService.config.valtimoApi.endpointUri;
359
+ }
360
+ getDashboards() {
361
+ return this.http.get(`${this._endpointUri}v1/dashboard`);
362
+ }
157
363
  }
158
- DashboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
159
- DashboardModulemod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DashboardModule, declarations: [DashboardComponent], imports: [CommonModule,
160
- DashboardRoutingModule,
161
- WidgetModule,
162
- ListModule,
163
- BpmnJsDiagramModule, i4.TranslateModule, AlertModule,
164
- TaskModule,
165
- SpinnerModule], exports: [DashboardComponent] });
166
- DashboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DashboardModule, imports: [CommonModule,
167
- DashboardRoutingModule,
168
- WidgetModule,
169
- ListModule,
170
- BpmnJsDiagramModule,
171
- TranslateModule.forRoot({
172
- loader: {
173
- provide: TranslateLoader,
174
- useFactory: HttpLoaderFactory,
175
- deps: [HttpClient],
176
- },
177
- }),
178
- AlertModule,
179
- TaskModule,
180
- SpinnerModule] });
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DashboardModule, decorators: [{
182
- type: NgModule,
364
+ DashboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardService, deps: [{ token: i1$2.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
365
+ DashboardServiceprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardService, providedIn: 'root' });
366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardService, decorators: [{
367
+ type: Injectable,
183
368
  args: [{
184
- declarations: [DashboardComponent],
185
- imports: [
186
- CommonModule,
187
- DashboardRoutingModule,
188
- WidgetModule,
189
- ListModule,
190
- BpmnJsDiagramModule,
191
- TranslateModule.forRoot({
192
- loader: {
193
- provide: TranslateLoader,
194
- useFactory: HttpLoaderFactory,
195
- deps: [HttpClient],
196
- },
197
- }),
198
- AlertModule,
199
- TaskModule,
200
- SpinnerModule,
201
- ],
202
- exports: [DashboardComponent],
369
+ providedIn: 'root',
203
370
  }]
204
- }] });
371
+ }], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: i2$1.ConfigService }]; } });
372
+
373
+ /*
374
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
375
+ *
376
+ * Licensed under EUPL, Version 1.2 (the "License");
377
+ * you may not use this file except in compliance with the License.
378
+ * You may obtain a copy of the License at
379
+ *
380
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
381
+ *
382
+ * Unless required by applicable law or agreed to in writing, software
383
+ * distributed under the License is distributed on an "AS IS" basis,
384
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
385
+ * See the License for the specific language governing permissions and
386
+ * limitations under the License.
387
+ */
388
+ class WidgetTranslationService {
389
+ constructor(translateService, widgetService) {
390
+ this.translateService = translateService;
391
+ this.widgetService = widgetService;
392
+ }
393
+ translate(translateKey, key) {
394
+ return combineLatest([
395
+ this.widgetService.supportedDisplayTypes$,
396
+ this.widgetService.supportedDataSources$,
397
+ this.translateService.stream('key'),
398
+ ]).pipe(map$1(([supportedDisplayTypes, supportedDataSources]) => this.getTranslation(supportedDisplayTypes, supportedDataSources, key, translateKey)));
399
+ }
400
+ instant(translateKey, displayTypeKey) {
401
+ return this.getTranslation(this.widgetService.supportedDisplayTypes, this.widgetService.supportedDataSources, displayTypeKey, translateKey);
402
+ }
403
+ getTranslation(supportedDisplayTypes, supportedDataSources, key, translateKey) {
404
+ const currentLang = this.translateService.currentLang;
405
+ const displayTypeSpecification = supportedDisplayTypes.find(displayType => displayType.displayTypeKey === key);
406
+ const dataSourceSpecification = supportedDataSources.find(datasource => datasource.dataSourceKey === key);
407
+ let translation = '';
408
+ if (displayTypeSpecification &&
409
+ displayTypeSpecification.translations.hasOwnProperty(currentLang)) {
410
+ translation = displayTypeSpecification.translations[currentLang][translateKey];
411
+ }
412
+ else if (dataSourceSpecification &&
413
+ dataSourceSpecification.translations.hasOwnProperty(currentLang)) {
414
+ translation = dataSourceSpecification.translations[currentLang][translateKey];
415
+ }
416
+ return translation || `${key}.${translateKey}`;
417
+ }
418
+ }
419
+ WidgetTranslationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetTranslationService, deps: [{ token: i1$1.TranslateService }, { token: WidgetService }], target: i0.ɵɵFactoryTarget.Injectable });
420
+ WidgetTranslationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetTranslationService, providedIn: 'root' });
421
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetTranslationService, decorators: [{
422
+ type: Injectable,
423
+ args: [{
424
+ providedIn: 'root',
425
+ }]
426
+ }], ctorParameters: function () { return [{ type: i1$1.TranslateService }, { type: WidgetService }]; } });
427
+
428
+ /*
429
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
430
+ *
431
+ * Licensed under EUPL, Version 1.2 (the "License");
432
+ * you may not use this file except in compliance with the License.
433
+ * You may obtain a copy of the License at
434
+ *
435
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
436
+ *
437
+ * Unless required by applicable law or agreed to in writing, software
438
+ * distributed under the License is distributed on an "AS IS" basis,
439
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
440
+ * See the License for the specific language governing permissions and
441
+ * limitations under the License.
442
+ */
443
+
444
+ /*
445
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
446
+ *
447
+ * Licensed under EUPL, Version 1.2 (the "License");
448
+ * you may not use this file except in compliance with the License.
449
+ * You may obtain a copy of the License at
450
+ *
451
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
452
+ *
453
+ * Unless required by applicable law or agreed to in writing, software
454
+ * distributed under the License is distributed on an "AS IS" basis,
455
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
456
+ * See the License for the specific language governing permissions and
457
+ * limitations under the License.
458
+ */
459
+ class WidgetDashboardContentComponent {
460
+ constructor(layoutService, widgetService, renderer) {
461
+ this.layoutService = layoutService;
462
+ this.widgetService = widgetService;
463
+ this.renderer = renderer;
464
+ this.isLoading$ = new BehaviorSubject(true);
465
+ this._widgetData$ = new BehaviorSubject([]);
466
+ this.widgetConfigurations$ = new BehaviorSubject(null);
467
+ this._subscriptions = new Subscription();
468
+ }
469
+ set widgetData(value) {
470
+ this.isLoading$.next(value.loading);
471
+ this._widgetData$.next(value.data);
472
+ }
473
+ set dashboard(value) {
474
+ this.setWidgetConfigurations(value);
475
+ }
476
+ ngAfterViewInit() {
477
+ this._observer = new ResizeObserver(event => {
478
+ this.observerMutation(event);
479
+ });
480
+ this._observer.observe(this._widgetContainerRef.nativeElement);
481
+ this.openPackResultSubscription();
482
+ this.renderWidgets();
483
+ }
484
+ ngOnDestroy() {
485
+ var _a, _b;
486
+ (_a = this._observer) === null || _a === void 0 ? void 0 : _a.disconnect();
487
+ (_b = this._subscriptions) === null || _b === void 0 ? void 0 : _b.unsubscribe();
488
+ }
489
+ setWidgetConfigurations(dashboard) {
490
+ this.widgetService.supportedDisplayTypes$.pipe(take(1)).subscribe(supportedDisplayTypes => {
491
+ var _a;
492
+ const supportedWidgetConfigurations = ((_a = dashboard.widgets) === null || _a === void 0 ? void 0 : _a.filter(widgetConfiguration => supportedDisplayTypes.find(type => type.displayTypeKey === widgetConfiguration.displayType))) || [];
493
+ this.layoutService.setWidgetConfigurations(supportedWidgetConfigurations);
494
+ this.widgetConfigurations$.next(supportedWidgetConfigurations);
495
+ });
496
+ }
497
+ observerMutation(event) {
498
+ var _a, _b;
499
+ const widgetContainerWidth = (_b = (_a = event[0]) === null || _a === void 0 ? void 0 : _a.borderBoxSize[0]) === null || _b === void 0 ? void 0 : _b.inlineSize;
500
+ if (typeof widgetContainerWidth === 'number' && widgetContainerWidth !== 0) {
501
+ this.layoutService.setWidgetContainerWidth(widgetContainerWidth);
502
+ }
503
+ }
504
+ openPackResultSubscription() {
505
+ this._subscriptions.add(this.layoutService.widgetPackResult$.subscribe(packResult => {
506
+ this.renderer.setStyle(this._widgetContainerRef.nativeElement, 'height', `${packResult.height}px`);
507
+ this._widgetConfigurationRefs.toArray().forEach(widgetConfigurationRef => {
508
+ const nativeElement = widgetConfigurationRef.nativeElement;
509
+ const configPackResult = packResult.items.find(result => result.item.configurationKey === nativeElement.id);
510
+ this.renderer.setStyle(nativeElement, 'height', `${configPackResult === null || configPackResult === void 0 ? void 0 : configPackResult.height}px`);
511
+ this.renderer.setStyle(nativeElement, 'width', `${configPackResult === null || configPackResult === void 0 ? void 0 : configPackResult.width}px`);
512
+ this.renderer.setStyle(nativeElement, 'left', `${configPackResult === null || configPackResult === void 0 ? void 0 : configPackResult.x}px`);
513
+ this.renderer.setStyle(nativeElement, 'top', `${configPackResult === null || configPackResult === void 0 ? void 0 : configPackResult.y}px`);
514
+ });
515
+ }));
516
+ }
517
+ renderWidgets() {
518
+ this._subscriptions.add(combineLatest([
519
+ this.widgetConfigurations$,
520
+ this.widgetService.supportedDisplayTypes$,
521
+ this._widgetData$,
522
+ ]).subscribe(([configurations, displayTypes, data]) => {
523
+ configurations === null || configurations === void 0 ? void 0 : configurations.forEach((configuration, index) => {
524
+ var _a;
525
+ const displayType = displayTypes.find(type => type.displayTypeKey === configuration.displayType);
526
+ const vcRef = this._widgetConfigurationContentVcRefs.toArray()[index];
527
+ if (displayType && data) {
528
+ vcRef.clear();
529
+ const componentInstance = vcRef.createComponent(displayType.displayComponent);
530
+ componentInstance.setInput('displayTypeKey', configuration.displayType);
531
+ componentInstance.setInput('displayTypeProperties', Object.assign({}, configuration.displayTypeProperties));
532
+ componentInstance.setInput('data', (_a = data.find(dataItem => dataItem.key === configuration.key)) === null || _a === void 0 ? void 0 : _a.data);
533
+ }
534
+ });
535
+ }));
536
+ }
537
+ }
538
+ WidgetDashboardContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetDashboardContentComponent, deps: [{ token: WidgetLayoutService }, { token: WidgetService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
539
+ WidgetDashboardContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div #widgetContainer [class.loading]=\"isLoading$ | async\" class=\"widget-container\">\n <ng-container *ngIf=\"widgetConfigurations$ | async as widgetConfigurations\">\n <ng-container *ngFor=\"let config of widgetConfigurations\">\n <div #widgetConfiguration [id]=\"config.key\" class=\"widget-configuration\">\n <div class=\"widget-configuration-content\">\n <ng-container #widgetConfigurationContent></ng-container>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf=\"widgetConfigurations.length === 0\" class=\"no-widgets-message\">\n {{ 'dashboard.noWidgets' | translate }}\n </div>\n </ng-container>\n</div>\n\n<cds-loading *ngIf=\"isLoading$ | async\" class=\"widget-loader\"></cds-loading>\n", 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 */.widget-container{margin-top:16px;width:calc(100% + 16px);margin-left:-8px;position:relative}.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}.no-widgets-message{padding-top:16px;display:flex;justify-content:center;width:100%}.widget-loader{display:flex;justify-content:center;padding-top:32px}.loading{display:none}\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: i4$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetDashboardContentComponent, decorators: [{
541
+ type: Component,
542
+ args: [{ selector: 'valtimo-widget-dashboard-content', providers: [WidgetLayoutService], 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<div #widgetContainer [class.loading]=\"isLoading$ | async\" class=\"widget-container\">\n <ng-container *ngIf=\"widgetConfigurations$ | async as widgetConfigurations\">\n <ng-container *ngFor=\"let config of widgetConfigurations\">\n <div #widgetConfiguration [id]=\"config.key\" class=\"widget-configuration\">\n <div class=\"widget-configuration-content\">\n <ng-container #widgetConfigurationContent></ng-container>\n </div>\n </div>\n </ng-container>\n\n <div *ngIf=\"widgetConfigurations.length === 0\" class=\"no-widgets-message\">\n {{ 'dashboard.noWidgets' | translate }}\n </div>\n </ng-container>\n</div>\n\n<cds-loading *ngIf=\"isLoading$ | async\" class=\"widget-loader\"></cds-loading>\n", 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 */.widget-container{margin-top:16px;width:calc(100% + 16px);margin-left:-8px;position:relative}.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}.no-widgets-message{padding-top:16px;display:flex;justify-content:center;width:100%}.widget-loader{display:flex;justify-content:center;padding-top:32px}.loading{display:none}\n"] }]
543
+ }], ctorParameters: function () { return [{ type: WidgetLayoutService }, { type: WidgetService }, { type: i0.Renderer2 }]; }, propDecorators: { _widgetConfigurationRefs: [{
544
+ type: ViewChildren,
545
+ args: ['widgetConfiguration']
546
+ }], _widgetConfigurationContentVcRefs: [{
547
+ type: ViewChildren,
548
+ args: ['widgetConfigurationContent', { read: ViewContainerRef }]
549
+ }], _widgetContainerRef: [{
550
+ type: ViewChild,
551
+ args: ['widgetContainer']
552
+ }], widgetData: [{
553
+ type: Input
554
+ }], dashboard: [{
555
+ type: Input
556
+ }] } });
557
+
558
+ /*
559
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
560
+ *
561
+ * Licensed under EUPL, Version 1.2 (the "License");
562
+ * you may not use this file except in compliance with the License.
563
+ * You may obtain a copy of the License at
564
+ *
565
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
566
+ *
567
+ * Unless required by applicable law or agreed to in writing, software
568
+ * distributed under the License is distributed on an "AS IS" basis,
569
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
570
+ * See the License for the specific language governing permissions and
571
+ * limitations under the License.
572
+ */
573
+ class WidgetApiService {
574
+ constructor(configService, http) {
575
+ this.configService = configService;
576
+ this.http = http;
577
+ this._endpointUri = `${this.configService.config.valtimoApi.endpointUri}v1/dashboard`;
578
+ }
579
+ getWidgetData(dashboardKey) {
580
+ return this.http.get(`${this._endpointUri}/${dashboardKey}/data`);
581
+ }
582
+ }
583
+ WidgetApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetApiService, deps: [{ token: i2$1.ConfigService }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
584
+ WidgetApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetApiService, providedIn: 'root' });
585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetApiService, decorators: [{
586
+ type: Injectable,
587
+ args: [{
588
+ providedIn: 'root',
589
+ }]
590
+ }], ctorParameters: function () { return [{ type: i2$1.ConfigService }, { type: i1$2.HttpClient }]; } });
591
+
592
+ /*
593
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
594
+ *
595
+ * Licensed under EUPL, Version 1.2 (the "License");
596
+ * you may not use this file except in compliance with the License.
597
+ * You may obtain a copy of the License at
598
+ *
599
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
600
+ *
601
+ * Unless required by applicable law or agreed to in writing, software
602
+ * distributed under the License is distributed on an "AS IS" basis,
603
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
604
+ * See the License for the specific language governing permissions and
605
+ * limitations under the License.
606
+ */
607
+ class WidgetDashboardComponent {
608
+ constructor(dashboardService, widgetApiService) {
609
+ this.dashboardService = dashboardService;
610
+ this.widgetApiService = widgetApiService;
611
+ this.dashboards$ = this.dashboardService.getDashboards().pipe(tap(dashboards => {
612
+ if (dashboards.length === 1) {
613
+ this.onTabSelected(dashboards[0].key);
614
+ }
615
+ }));
616
+ this.activeWidgetData$ = new BehaviorSubject({
617
+ data: [],
618
+ loading: true,
619
+ });
620
+ }
621
+ onTabSelected(dashboardKey) {
622
+ this.widgetApiService
623
+ .getWidgetData(dashboardKey)
624
+ .pipe(tap(() => {
625
+ this.activeWidgetData$.next({ data: [], loading: true });
626
+ }), take$1(1))
627
+ .subscribe((data) => this.activeWidgetData$.next({ data, loading: false }));
628
+ }
629
+ trackByIndex(index) {
630
+ return index;
631
+ }
632
+ }
633
+ WidgetDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetDashboardComponent, deps: [{ token: DashboardService }, { token: WidgetApiService }], target: i0.ɵɵFactoryTarget.Component });
634
+ WidgetDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: WidgetDashboardComponent, selector: "valtimo-widget-dashboard", 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<div *ngIf=\"dashboards$ | async as dashboards\" class=\"dashboards-container\">\n <div *ngIf=\"dashboards.length === 1\">\n <h4>{{ dashboards[0].title }}</h4>\n\n <valtimo-widget-dashboard-content\n [dashboard]=\"dashboards[0]\"\n [widgetData]=\"activeWidgetData$ | async\"\n ></valtimo-widget-dashboard-content>\n </div>\n\n <div *ngIf=\"dashboards.length > 1\">\n <cds-tabs>\n <cds-tab\n *ngFor=\"let dashboard of dashboards; trackBy: trackByIndex\"\n [heading]=\"dashboard.title\"\n (selected)=\"onTabSelected(dashboard.key)\"\n >\n <valtimo-widget-dashboard-content\n [dashboard]=\"dashboard\"\n [widgetData]=\"activeWidgetData$ | async\"\n ></valtimo-widget-dashboard-content>\n </cds-tab>\n </cds-tabs>\n </div>\n</div>\n", 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 */.dashboards-container .cds--tab-content{outline:0;padding:0}\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: i4$1.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i4$1.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: WidgetDashboardContentComponent, selector: "valtimo-widget-dashboard-content", inputs: ["widgetData", "dashboard"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetDashboardComponent, decorators: [{
636
+ type: Component,
637
+ args: [{ selector: 'valtimo-widget-dashboard', encapsulation: ViewEncapsulation.None, 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<div *ngIf=\"dashboards$ | async as dashboards\" class=\"dashboards-container\">\n <div *ngIf=\"dashboards.length === 1\">\n <h4>{{ dashboards[0].title }}</h4>\n\n <valtimo-widget-dashboard-content\n [dashboard]=\"dashboards[0]\"\n [widgetData]=\"activeWidgetData$ | async\"\n ></valtimo-widget-dashboard-content>\n </div>\n\n <div *ngIf=\"dashboards.length > 1\">\n <cds-tabs>\n <cds-tab\n *ngFor=\"let dashboard of dashboards; trackBy: trackByIndex\"\n [heading]=\"dashboard.title\"\n (selected)=\"onTabSelected(dashboard.key)\"\n >\n <valtimo-widget-dashboard-content\n [dashboard]=\"dashboard\"\n [widgetData]=\"activeWidgetData$ | async\"\n ></valtimo-widget-dashboard-content>\n </cds-tab>\n </cds-tabs>\n </div>\n</div>\n", 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 */.dashboards-container .cds--tab-content{outline:0;padding:0}\n"] }]
638
+ }], ctorParameters: function () { return [{ type: DashboardService }, { type: WidgetApiService }]; } });
639
+
640
+ /*
641
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
642
+ *
643
+ * Licensed under EUPL, Version 1.2 (the "License");
644
+ * you may not use this file except in compliance with the License.
645
+ * You may obtain a copy of the License at
646
+ *
647
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
648
+ *
649
+ * Unless required by applicable law or agreed to in writing, software
650
+ * distributed under the License is distributed on an "AS IS" basis,
651
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
652
+ * See the License for the specific language governing permissions and
653
+ * limitations under the License.
654
+ */
655
+ const routes = [
656
+ {
657
+ path: '',
658
+ component: WidgetDashboardComponent,
659
+ canActivate: [AuthGuardService],
660
+ data: { title: 'Dashboard', roles: [ROLE_USER], hidePageTitle: true },
661
+ },
662
+ ];
663
+ class DashboardRoutingModule {
664
+ }
665
+ DashboardRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
666
+ DashboardRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: DashboardRoutingModule, imports: [CommonModule, i2.RouterModule], exports: [RouterModule] });
667
+ DashboardRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] });
668
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardRoutingModule, decorators: [{
669
+ type: NgModule,
670
+ args: [{
671
+ declarations: [],
672
+ imports: [CommonModule, RouterModule.forChild(routes)],
673
+ exports: [RouterModule],
674
+ }]
675
+ }] });
676
+
677
+ /*
678
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
679
+ *
680
+ * Licensed under EUPL, Version 1.2 (the "License");
681
+ * you may not use this file except in compliance with the License.
682
+ * You may obtain a copy of the License at
683
+ *
684
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
685
+ *
686
+ * Unless required by applicable law or agreed to in writing, software
687
+ * distributed under the License is distributed on an "AS IS" basis,
688
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
689
+ * See the License for the specific language governing permissions and
690
+ * limitations under the License.
691
+ */
692
+ class WidgetTranslatePipe {
693
+ constructor(widgetTranslationService) {
694
+ this.widgetTranslationService = widgetTranslationService;
695
+ }
696
+ transform(translateKey, key) {
697
+ return this.widgetTranslationService.translate(translateKey, key);
698
+ }
699
+ }
700
+ WidgetTranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetTranslatePipe, deps: [{ token: WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Pipe });
701
+ WidgetTranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: WidgetTranslatePipe, name: "widgetTranslate" });
702
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetTranslatePipe, decorators: [{
703
+ type: Pipe,
704
+ args: [{
705
+ name: 'widgetTranslate',
706
+ }]
707
+ }], ctorParameters: function () { return [{ type: WidgetTranslationService }]; } });
708
+
709
+ /*
710
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
711
+ *
712
+ * Licensed under EUPL, Version 1.2 (the "License");
713
+ * you may not use this file except in compliance with the License.
714
+ * You may obtain a copy of the License at
715
+ *
716
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
717
+ *
718
+ * Unless required by applicable law or agreed to in writing, software
719
+ * distributed under the License is distributed on an "AS IS" basis,
720
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
721
+ * See the License for the specific language governing permissions and
722
+ * limitations under the License.
723
+ */
724
+ class WidgetTranslatePipeModule {
725
+ }
726
+ WidgetTranslatePipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetTranslatePipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
727
+ WidgetTranslatePipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: WidgetTranslatePipeModule, declarations: [WidgetTranslatePipe], imports: [TranslateModule], exports: [WidgetTranslatePipe] });
728
+ WidgetTranslatePipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetTranslatePipeModule, imports: [TranslateModule] });
729
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WidgetTranslatePipeModule, decorators: [{
730
+ type: NgModule,
731
+ args: [{
732
+ imports: [TranslateModule],
733
+ declarations: [WidgetTranslatePipe],
734
+ exports: [WidgetTranslatePipe],
735
+ }]
736
+ }] });
737
+
738
+ /*
739
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
740
+ *
741
+ * Licensed under EUPL, Version 1.2 (the "License");
742
+ * you may not use this file except in compliance with the License.
743
+ * You may obtain a copy of the License at
744
+ *
745
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
746
+ *
747
+ * Unless required by applicable law or agreed to in writing, software
748
+ * distributed under the License is distributed on an "AS IS" basis,
749
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
750
+ * See the License for the specific language governing permissions and
751
+ * limitations under the License.
752
+ */
753
+
754
+ /*
755
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
756
+ *
757
+ * Licensed under EUPL, Version 1.2 (the "License");
758
+ * you may not use this file except in compliance with the License.
759
+ * You may obtain a copy of the License at
760
+ *
761
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
762
+ *
763
+ * Unless required by applicable law or agreed to in writing, software
764
+ * distributed under the License is distributed on an "AS IS" basis,
765
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
766
+ * See the License for the specific language governing permissions and
767
+ * limitations under the License.
768
+ */
769
+
770
+ /*
771
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
772
+ *
773
+ * Licensed under EUPL, Version 1.2 (the "License");
774
+ * you may not use this file except in compliance with the License.
775
+ * You may obtain a copy of the License at
776
+ *
777
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
778
+ *
779
+ * Unless required by applicable law or agreed to in writing, software
780
+ * distributed under the License is distributed on an "AS IS" basis,
781
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
782
+ * See the License for the specific language governing permissions and
783
+ * limitations under the License.
784
+ */
785
+ // AoT requires an exported function for factories
786
+ function HttpLoaderFactory(httpClient) {
787
+ return new TranslateHttpLoader(httpClient);
788
+ }
789
+ class DashboardModule {
790
+ }
791
+ DashboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
792
+ DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: DashboardModule, declarations: [DashboardComponent, WidgetDashboardComponent, WidgetDashboardContentComponent], imports: [CommonModule,
793
+ DashboardRoutingModule,
794
+ WidgetModule,
795
+ ListModule,
796
+ BpmnJsDiagramModule, i1$1.TranslateModule, AlertModule,
797
+ TaskModule,
798
+ SpinnerModule,
799
+ TabsModule,
800
+ ThemeModule,
801
+ WidgetTranslatePipeModule,
802
+ LoadingModule], exports: [DashboardComponent, WidgetDashboardComponent] });
803
+ DashboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardModule, providers: [
804
+ { provide: DISPLAY_TYPE_TOKEN, useValue: null, multi: true },
805
+ { provide: DATA_SOURCE_TOKEN, useValue: null, multi: true },
806
+ ], imports: [CommonModule,
807
+ DashboardRoutingModule,
808
+ WidgetModule,
809
+ ListModule,
810
+ BpmnJsDiagramModule,
811
+ TranslateModule.forRoot({
812
+ loader: {
813
+ provide: TranslateLoader,
814
+ useFactory: HttpLoaderFactory,
815
+ deps: [HttpClient],
816
+ },
817
+ }),
818
+ AlertModule,
819
+ TaskModule,
820
+ SpinnerModule,
821
+ TabsModule,
822
+ ThemeModule,
823
+ WidgetTranslatePipeModule,
824
+ LoadingModule] });
825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashboardModule, decorators: [{
826
+ type: NgModule,
827
+ args: [{
828
+ declarations: [DashboardComponent, WidgetDashboardComponent, WidgetDashboardContentComponent],
829
+ imports: [
830
+ CommonModule,
831
+ DashboardRoutingModule,
832
+ WidgetModule,
833
+ ListModule,
834
+ BpmnJsDiagramModule,
835
+ TranslateModule.forRoot({
836
+ loader: {
837
+ provide: TranslateLoader,
838
+ useFactory: HttpLoaderFactory,
839
+ deps: [HttpClient],
840
+ },
841
+ }),
842
+ AlertModule,
843
+ TaskModule,
844
+ SpinnerModule,
845
+ TabsModule,
846
+ ThemeModule,
847
+ WidgetTranslatePipeModule,
848
+ LoadingModule,
849
+ ],
850
+ exports: [DashboardComponent, WidgetDashboardComponent],
851
+ providers: [
852
+ { provide: DISPLAY_TYPE_TOKEN, useValue: null, multi: true },
853
+ { provide: DATA_SOURCE_TOKEN, useValue: null, multi: true },
854
+ ],
855
+ }]
856
+ }] });
857
+
858
+ /*
859
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
860
+ *
861
+ * Licensed under EUPL, Version 1.2 (the "License");
862
+ * you may not use this file except in compliance with the License.
863
+ * You may obtain a copy of the License at
864
+ *
865
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
866
+ *
867
+ * Unless required by applicable law or agreed to in writing, software
868
+ * distributed under the License is distributed on an "AS IS" basis,
869
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
870
+ * See the License for the specific language governing permissions and
871
+ * limitations under the License.
872
+ */
873
+ class TestConfigurationComponent {
874
+ constructor(fb) {
875
+ this.fb = fb;
876
+ this.form = this.fb.group({
877
+ value: this.fb.control(null, [Validators.required]),
878
+ total: this.fb.control(null, [Validators.required]),
879
+ });
880
+ this.configurationEvent = new EventEmitter();
881
+ this._subscriptions = new Subscription();
882
+ }
883
+ set disabled(disabledValue) {
884
+ if (disabledValue) {
885
+ this.form.disable();
886
+ }
887
+ else {
888
+ this.form.enable();
889
+ }
890
+ }
891
+ get value() {
892
+ return this.form.get('value');
893
+ }
894
+ get total() {
895
+ return this.form.get('total');
896
+ }
897
+ set prefillConfiguration(configurationValue) {
898
+ if (configurationValue) {
899
+ this.value.setValue(configurationValue.value);
900
+ this.total.setValue(configurationValue.total);
901
+ }
902
+ }
903
+ ngOnInit() {
904
+ this.openFormSubscription();
905
+ }
906
+ ngOnDestroy() {
907
+ this._subscriptions.unsubscribe();
908
+ }
909
+ openFormSubscription() {
910
+ this._subscriptions.add(this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {
911
+ this.configurationEvent.emit({ valid: this.form.valid, data: formValue });
912
+ }));
913
+ }
914
+ }
915
+ TestConfigurationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TestConfigurationComponent, deps: [{ token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
916
+ TestConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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 });
917
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TestConfigurationComponent, decorators: [{
918
+ type: Component,
919
+ 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"] }]
920
+ }], ctorParameters: function () { return [{ type: i1$3.FormBuilder }]; }, propDecorators: { dataSourceKey: [{
921
+ type: Input
922
+ }], disabled: [{
923
+ type: Input
924
+ }], prefillConfiguration: [{
925
+ type: Input
926
+ }], configurationEvent: [{
927
+ type: Output
928
+ }] } });
929
+
930
+ /*
931
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
932
+ *
933
+ * Licensed under EUPL, Version 1.2 (the "License");
934
+ * you may not use this file except in compliance with the License.
935
+ * You may obtain a copy of the License at
936
+ *
937
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
938
+ *
939
+ * Unless required by applicable law or agreed to in writing, software
940
+ * distributed under the License is distributed on an "AS IS" basis,
941
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
942
+ * See the License for the specific language governing permissions and
943
+ * limitations under the License.
944
+ */
945
+
946
+ /*
947
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
948
+ *
949
+ * Licensed under EUPL, Version 1.2 (the "License");
950
+ * you may not use this file except in compliance with the License.
951
+ * You may obtain a copy of the License at
952
+ *
953
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
954
+ *
955
+ * Unless required by applicable law or agreed to in writing, software
956
+ * distributed under the License is distributed on an "AS IS" basis,
957
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
958
+ * See the License for the specific language governing permissions and
959
+ * limitations under the License.
960
+ */
961
+
962
+ /*
963
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
964
+ *
965
+ * Licensed under EUPL, Version 1.2 (the "License");
966
+ * you may not use this file except in compliance with the License.
967
+ * You may obtain a copy of the License at
968
+ *
969
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
970
+ *
971
+ * Unless required by applicable law or agreed to in writing, software
972
+ * distributed under the License is distributed on an "AS IS" basis,
973
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
974
+ * See the License for the specific language governing permissions and
975
+ * limitations under the License.
976
+ */
977
+
978
+ /*
979
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
980
+ *
981
+ * Licensed under EUPL, Version 1.2 (the "License");
982
+ * you may not use this file except in compliance with the License.
983
+ * You may obtain a copy of the License at
984
+ *
985
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
986
+ *
987
+ * Unless required by applicable law or agreed to in writing, software
988
+ * distributed under the License is distributed on an "AS IS" basis,
989
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
990
+ * See the License for the specific language governing permissions and
991
+ * limitations under the License.
992
+ */
993
+ const testDataSourceSpecification = {
994
+ dataSourceKey: 'test',
995
+ configurationComponent: TestConfigurationComponent,
996
+ translations: {
997
+ de: {
998
+ title: 'Test-Datenquelle',
999
+ value: 'Wert (erforderlich)',
1000
+ valueHelperText: 'Der im Widget angezeigte Wert',
1001
+ total: 'Gesamtwert (erforderlich)',
1002
+ totalHelperText: 'Der im Widget angezeigte Gesamtwert',
1003
+ },
1004
+ en: {
1005
+ title: 'Test data source',
1006
+ value: 'Value (required)',
1007
+ valueHelperText: 'The value displayed in the widget',
1008
+ total: 'Total value (required)',
1009
+ totalHelperText: 'The total value displayed in the widget',
1010
+ },
1011
+ nl: {
1012
+ title: 'Testdatabron',
1013
+ value: 'Waarde (vereist)',
1014
+ valueHelperText: 'De waarde die wordt weergegeven in de widget',
1015
+ total: 'Totaalwaarde (vereist)',
1016
+ totalHelperText: 'De totaalwaarde die wordt weergegeven in de widget',
1017
+ },
1018
+ },
1019
+ };
1020
+
1021
+ /*
1022
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1023
+ *
1024
+ * Licensed under EUPL, Version 1.2 (the "License");
1025
+ * you may not use this file except in compliance with the License.
1026
+ * You may obtain a copy of the License at
1027
+ *
1028
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1029
+ *
1030
+ * Unless required by applicable law or agreed to in writing, software
1031
+ * distributed under the License is distributed on an "AS IS" basis,
1032
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1033
+ * See the License for the specific language governing permissions and
1034
+ * limitations under the License.
1035
+ */
1036
+ class TestDataSourceModule {
1037
+ }
1038
+ TestDataSourceModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TestDataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1039
+ TestDataSourceModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: TestDataSourceModule, declarations: [TestConfigurationComponent], imports: [CommonModule, ReactiveFormsModule, WidgetTranslatePipeModule, InputModule], exports: [TestConfigurationComponent] });
1040
+ TestDataSourceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TestDataSourceModule, providers: [{ provide: DATA_SOURCE_TOKEN, useValue: testDataSourceSpecification, multi: true }], imports: [CommonModule, ReactiveFormsModule, WidgetTranslatePipeModule, InputModule] });
1041
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TestDataSourceModule, decorators: [{
1042
+ type: NgModule,
1043
+ args: [{
1044
+ declarations: [TestConfigurationComponent],
1045
+ imports: [CommonModule, ReactiveFormsModule, WidgetTranslatePipeModule, InputModule],
1046
+ exports: [TestConfigurationComponent],
1047
+ providers: [{ provide: DATA_SOURCE_TOKEN, useValue: testDataSourceSpecification, multi: true }],
1048
+ }]
1049
+ }] });
1050
+
1051
+ /*
1052
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1053
+ *
1054
+ * Licensed under EUPL, Version 1.2 (the "License");
1055
+ * you may not use this file except in compliance with the License.
1056
+ * You may obtain a copy of the License at
1057
+ *
1058
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1059
+ *
1060
+ * Unless required by applicable law or agreed to in writing, software
1061
+ * distributed under the License is distributed on an "AS IS" basis,
1062
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1063
+ * See the License for the specific language governing permissions and
1064
+ * limitations under the License.
1065
+ */
1066
+
1067
+ /*
1068
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1069
+ *
1070
+ * Licensed under EUPL, Version 1.2 (the "License");
1071
+ * you may not use this file except in compliance with the License.
1072
+ * You may obtain a copy of the License at
1073
+ *
1074
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1075
+ *
1076
+ * Unless required by applicable law or agreed to in writing, software
1077
+ * distributed under the License is distributed on an "AS IS" basis,
1078
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1079
+ * See the License for the specific language governing permissions and
1080
+ * limitations under the License.
1081
+ */
1082
+ var Operator;
1083
+ (function (Operator) {
1084
+ Operator["NOT_EQUAL_TO"] = "!=";
1085
+ Operator["EQUAL_TO"] = "==";
1086
+ Operator["GREATER_THAN"] = ">";
1087
+ Operator["GREATER_THAN_OR_EQUAL_TO"] = ">=";
1088
+ Operator["LESS_THAN"] = "<";
1089
+ Operator["LESS_THAN_OR_EQUAL_TO"] = "<=";
1090
+ })(Operator || (Operator = {}));
1091
+
1092
+ /*
1093
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1094
+ *
1095
+ * Licensed under EUPL, Version 1.2 (the "License");
1096
+ * you may not use this file except in compliance with the License.
1097
+ * You may obtain a copy of the License at
1098
+ *
1099
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1100
+ *
1101
+ * Unless required by applicable law or agreed to in writing, software
1102
+ * distributed under the License is distributed on an "AS IS" basis,
1103
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1104
+ * See the License for the specific language governing permissions and
1105
+ * limitations under the License.
1106
+ */
1107
+
1108
+ /*
1109
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1110
+ *
1111
+ * Licensed under EUPL, Version 1.2 (the "License");
1112
+ * you may not use this file except in compliance with the License.
1113
+ * You may obtain a copy of the License at
1114
+ *
1115
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1116
+ *
1117
+ * Unless required by applicable law or agreed to in writing, software
1118
+ * distributed under the License is distributed on an "AS IS" basis,
1119
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1120
+ * See the License for the specific language governing permissions and
1121
+ * limitations under the License.
1122
+ */
1123
+ class CaseCountConfigurationComponent {
1124
+ constructor(fb, documentService, translateService, widgetTranslationService) {
1125
+ this.fb = fb;
1126
+ this.documentService = documentService;
1127
+ this.translateService = translateService;
1128
+ this.widgetTranslationService = widgetTranslationService;
1129
+ this.form = this.fb.group({
1130
+ documentDefinition: this.fb.control(null, [Validators.required]),
1131
+ queryConditions: this.fb.control(null),
1132
+ });
1133
+ this._selectedDocumentDefinition$ = new BehaviorSubject('');
1134
+ this.documentItems$ = combineLatest([
1135
+ this.documentService.getAllDefinitions(),
1136
+ this._selectedDocumentDefinition$,
1137
+ ]).pipe(map(([documentDefinitions, selectedDocumentDefintion]) => documentDefinitions.content.map(definition => ({
1138
+ content: definition.id.name,
1139
+ selected: definition.id.name === selectedDocumentDefintion,
1140
+ }))));
1141
+ this._OPERATORS = [
1142
+ Operator.NOT_EQUAL_TO,
1143
+ Operator.EQUAL_TO,
1144
+ Operator.GREATER_THAN,
1145
+ Operator.GREATER_THAN_OR_EQUAL_TO,
1146
+ Operator.LESS_THAN,
1147
+ Operator.LESS_THAN_OR_EQUAL_TO,
1148
+ ];
1149
+ this.operatorItems$ = this.translateService
1150
+ .stream('key')
1151
+ .pipe(map(() => this._OPERATORS.map(operator => ({
1152
+ id: operator,
1153
+ content: this.widgetTranslationService.instant(operator, this.dataSourceKey),
1154
+ selected: false,
1155
+ }))));
1156
+ this.defaultConditionValues$ = new BehaviorSubject(null);
1157
+ this.allConditionsValid$ = new BehaviorSubject(true);
1158
+ this.configurationEvent = new EventEmitter();
1159
+ this._subscriptions = new Subscription();
1160
+ }
1161
+ set disabled(disabledValue) {
1162
+ if (disabledValue) {
1163
+ this.form.disable();
1164
+ }
1165
+ else {
1166
+ this.form.enable();
1167
+ }
1168
+ }
1169
+ get documentDefinition() {
1170
+ return this.form.get('documentDefinition');
1171
+ }
1172
+ get queryConditions() {
1173
+ return this.form.get('queryConditions');
1174
+ }
1175
+ set prefillConfiguration(configurationValue) {
1176
+ if (configurationValue) {
1177
+ this.documentDefinitionSelected({
1178
+ item: {
1179
+ content: configurationValue.documentDefinition,
1180
+ },
1181
+ });
1182
+ this.defaultConditionValues$.next(configurationValue.queryConditions.map(condition => ({
1183
+ key: condition.queryPath,
1184
+ dropdown: condition.queryOperator,
1185
+ value: condition.queryValue,
1186
+ })));
1187
+ }
1188
+ }
1189
+ ngOnInit() {
1190
+ this.openFormSubscription();
1191
+ }
1192
+ ngOnDestroy() {
1193
+ this._subscriptions.unsubscribe();
1194
+ }
1195
+ documentDefinitionSelected(documentDefinitionItem) {
1196
+ var _a, _b;
1197
+ if (!documentDefinitionItem) {
1198
+ return;
1199
+ }
1200
+ this._selectedDocumentDefinition$.next((_a = documentDefinitionItem === null || documentDefinitionItem === void 0 ? void 0 : documentDefinitionItem.item) === null || _a === void 0 ? void 0 : _a.content);
1201
+ this.documentDefinition.setValue((_b = documentDefinitionItem === null || documentDefinitionItem === void 0 ? void 0 : documentDefinitionItem.item) === null || _b === void 0 ? void 0 : _b.content);
1202
+ }
1203
+ conditionsValueChange(values) {
1204
+ if (values.length === 0) {
1205
+ this.queryConditions.setValue(null);
1206
+ }
1207
+ else {
1208
+ this.queryConditions.setValue(values.map(value => ({
1209
+ queryPath: value.key,
1210
+ queryOperator: value.dropdown,
1211
+ queryValue: value.value,
1212
+ })));
1213
+ }
1214
+ }
1215
+ onAllConditionsValid(allConditionsValid) {
1216
+ this.allConditionsValid$.next(allConditionsValid);
1217
+ }
1218
+ openFormSubscription() {
1219
+ this._subscriptions.add(combineLatest([
1220
+ this.form.valueChanges.pipe(startWith(this.form.value)),
1221
+ this.allConditionsValid$,
1222
+ ]).subscribe(([formValue, allConditionsValid]) => {
1223
+ this.configurationEvent.emit({
1224
+ valid: this.form.valid && allConditionsValid,
1225
+ data: formValue,
1226
+ });
1227
+ }));
1228
+ }
1229
+ }
1230
+ CaseCountConfigurationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CaseCountConfigurationComponent, deps: [{ token: i1$3.FormBuilder }, { token: i2$2.DocumentService }, { token: i1$1.TranslateService }, { token: WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Component });
1231
+ CaseCountConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CaseCountConfigurationComponent, 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\n class=\"case-count-configuration-form\"\n *ngIf=\"{documentItems: documentItems$ | async, operatorItems: operatorItems$} as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate : dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate : dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate : dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate : dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate : dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addCondition' | widgetTranslate : dataSourceKey | async\"\n [defaultValues]=\"defaultConditionValues$ | async\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate : dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate : dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate : dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (allValuesValidEvent)=\"onAllConditionsValid($event)\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", 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 */.case-count-configuration-form .conditions-label{margin-bottom:16px}.case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\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: i4$1.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i4$1.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: i4$1.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i4.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: WidgetTranslatePipe, name: "widgetTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CaseCountConfigurationComponent, decorators: [{
1233
+ type: Component,
1234
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, 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\n class=\"case-count-configuration-form\"\n *ngIf=\"{documentItems: documentItems$ | async, operatorItems: operatorItems$} as obs\"\n [formGroup]=\"form\"\n>\n <div class=\"form__element\">\n <cds-dropdown\n formControlName=\"documentDefinition\"\n [helperText]=\"'documentDefinitionHelperText' | widgetTranslate : dataSourceKey | async\"\n [invalidText]=\"'documentDefinitionHelperText' | widgetTranslate : dataSourceKey | async\"\n [invalid]=\"documentDefinition.dirty && documentDefinition.invalid\"\n [label]=\"'documentDefinition' | widgetTranslate : dataSourceKey | async\"\n (selected)=\"documentDefinitionSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs?.documentItems || []\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div class=\"form__element conditions-multi-input\">\n <cds-label\n [helperText]=\"'conditionsHelperText' | widgetTranslate : dataSourceKey | async\"\n class=\"conditions-label\"\n >{{ 'conditions' | widgetTranslate : dataSourceKey | async }}</cds-label\n >\n <valtimo-carbon-multi-input\n [addRowText]=\"'addCondition' | widgetTranslate : dataSourceKey | async\"\n [defaultValues]=\"defaultConditionValues$ | async\"\n [dropdownColumnTitle]=\"'operator' | widgetTranslate : dataSourceKey | async\"\n [dropdownItems]=\"operatorItems$ | async\"\n [fullWidth]=\"true\"\n [initialAmountOfRows]=\"0\"\n [keyColumnTitle]=\"'path' | widgetTranslate : dataSourceKey | async\"\n [minimumAmountOfRows]=\"0\"\n [valueColumnTitle]=\"'value' | widgetTranslate : dataSourceKey | async\"\n type=\"keyDropdownValue\"\n (allValuesValidEvent)=\"onAllConditionsValid($event)\"\n (valueChange)=\"conditionsValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </div>\n</form>\n", 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 */.case-count-configuration-form .conditions-label{margin-bottom:16px}.case-count-configuration-form .conditions-multi-input .cds--form__helper-text{font-style:italic}\n"] }]
1235
+ }], ctorParameters: function () { return [{ type: i1$3.FormBuilder }, { type: i2$2.DocumentService }, { type: i1$1.TranslateService }, { type: WidgetTranslationService }]; }, propDecorators: { dataSourceKey: [{
1236
+ type: Input
1237
+ }], disabled: [{
1238
+ type: Input
1239
+ }], prefillConfiguration: [{
1240
+ type: Input
1241
+ }], configurationEvent: [{
1242
+ type: Output
1243
+ }] } });
1244
+
1245
+ /*
1246
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1247
+ *
1248
+ * Licensed under EUPL, Version 1.2 (the "License");
1249
+ * you may not use this file except in compliance with the License.
1250
+ * You may obtain a copy of the License at
1251
+ *
1252
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1253
+ *
1254
+ * Unless required by applicable law or agreed to in writing, software
1255
+ * distributed under the License is distributed on an "AS IS" basis,
1256
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1257
+ * See the License for the specific language governing permissions and
1258
+ * limitations under the License.
1259
+ */
1260
+
1261
+ /*
1262
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1263
+ *
1264
+ * Licensed under EUPL, Version 1.2 (the "License");
1265
+ * you may not use this file except in compliance with the License.
1266
+ * You may obtain a copy of the License at
1267
+ *
1268
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1269
+ *
1270
+ * Unless required by applicable law or agreed to in writing, software
1271
+ * distributed under the License is distributed on an "AS IS" basis,
1272
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1273
+ * See the License for the specific language governing permissions and
1274
+ * limitations under the License.
1275
+ */
1276
+
1277
+ /*
1278
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1279
+ *
1280
+ * Licensed under EUPL, Version 1.2 (the "License");
1281
+ * you may not use this file except in compliance with the License.
1282
+ * You may obtain a copy of the License at
1283
+ *
1284
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1285
+ *
1286
+ * Unless required by applicable law or agreed to in writing, software
1287
+ * distributed under the License is distributed on an "AS IS" basis,
1288
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1289
+ * See the License for the specific language governing permissions and
1290
+ * limitations under the License.
1291
+ */
1292
+ const caseCountDataSourceSpecification = {
1293
+ dataSourceKey: 'case-count',
1294
+ configurationComponent: CaseCountConfigurationComponent,
1295
+ translations: {
1296
+ de: {
1297
+ title: 'Fallzahl',
1298
+ documentDefinition: 'Falltyp (erforderlich)',
1299
+ documentDefinitionHelperText: 'Der Falltyp, für den die Anzahl abgerufen wird',
1300
+ '!=': 'Nicht gleichzusetzen mit',
1301
+ '==': 'Gleich',
1302
+ '>': 'Größer als',
1303
+ '>=': 'Größer als oder gleich wie',
1304
+ '<': 'Weniger als',
1305
+ '<=': 'Gleich oder kleiner als',
1306
+ path: 'Pfad',
1307
+ operator: 'Operator',
1308
+ value: 'Wert',
1309
+ conditions: 'Bedingungen',
1310
+ 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'.",
1311
+ addCondition: 'Bedingung hinzufügen',
1312
+ },
1313
+ en: {
1314
+ title: 'Case count',
1315
+ documentDefinition: 'Case type (required)',
1316
+ documentDefinitionHelperText: 'The case type for which the count is retrieved',
1317
+ '!=': 'Not equal to',
1318
+ '==': 'Equal to',
1319
+ '>': 'Greater than',
1320
+ '>=': 'Greater than or equal to',
1321
+ '<': 'Less than',
1322
+ '<=': 'Less than or equal to',
1323
+ path: 'Path (required)',
1324
+ operator: 'Operator',
1325
+ value: 'Value',
1326
+ conditions: 'Conditions',
1327
+ conditionsHelperText: "Specify optional conditions for retrieving the number of cases for the selected case type. For example: 'case:createdBy', 'Equal to', 'test@test.com'.",
1328
+ addCondition: 'Add condition',
1329
+ },
1330
+ nl: {
1331
+ title: 'Aantal dossiers',
1332
+ documentDefinition: 'Dossiertype (vereist)',
1333
+ documentDefinitionHelperText: 'Het dossiertype waarvoor de telling wordt opgehaald',
1334
+ '!=': 'Niet gelijk aan',
1335
+ '==': 'Gelijk aan',
1336
+ '>': 'Groter dan',
1337
+ '>=': 'Groter dan of gelijk aan',
1338
+ '<': 'Minder dan',
1339
+ '<=': 'Minder dan of gelijk aan',
1340
+ path: 'Pad',
1341
+ operator: 'Operator',
1342
+ value: 'Waarde',
1343
+ conditions: 'Condities',
1344
+ conditionsHelperText: "Geef optionele condities op voor het ophalen van het aantal zaken voor het geselecteerde zaaktype. Bijvoorbeeld: 'case:createdBy', 'Gelijk aan', 'test@test.com'.",
1345
+ addCondition: 'Conditie toevoegen',
1346
+ },
1347
+ },
1348
+ };
1349
+
1350
+ /*
1351
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1352
+ *
1353
+ * Licensed under EUPL, Version 1.2 (the "License");
1354
+ * you may not use this file except in compliance with the License.
1355
+ * You may obtain a copy of the License at
1356
+ *
1357
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1358
+ *
1359
+ * Unless required by applicable law or agreed to in writing, software
1360
+ * distributed under the License is distributed on an "AS IS" basis,
1361
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1362
+ * See the License for the specific language governing permissions and
1363
+ * limitations under the License.
1364
+ */
1365
+ class CaseCountDataSourceModule {
1366
+ }
1367
+ CaseCountDataSourceModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CaseCountDataSourceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1368
+ CaseCountDataSourceModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: CaseCountDataSourceModule, declarations: [CaseCountConfigurationComponent], imports: [CommonModule,
1369
+ ReactiveFormsModule,
1370
+ WidgetTranslatePipeModule,
1371
+ InputModule,
1372
+ DropdownModule,
1373
+ CarbonMultiInputModule], exports: [CaseCountConfigurationComponent] });
1374
+ CaseCountDataSourceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CaseCountDataSourceModule, providers: [
1375
+ { provide: DATA_SOURCE_TOKEN, useValue: caseCountDataSourceSpecification, multi: true },
1376
+ ], imports: [CommonModule,
1377
+ ReactiveFormsModule,
1378
+ WidgetTranslatePipeModule,
1379
+ InputModule,
1380
+ DropdownModule,
1381
+ CarbonMultiInputModule] });
1382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CaseCountDataSourceModule, decorators: [{
1383
+ type: NgModule,
1384
+ args: [{
1385
+ declarations: [CaseCountConfigurationComponent],
1386
+ imports: [
1387
+ CommonModule,
1388
+ ReactiveFormsModule,
1389
+ WidgetTranslatePipeModule,
1390
+ InputModule,
1391
+ DropdownModule,
1392
+ CarbonMultiInputModule,
1393
+ ],
1394
+ exports: [CaseCountConfigurationComponent],
1395
+ providers: [
1396
+ { provide: DATA_SOURCE_TOKEN, useValue: caseCountDataSourceSpecification, multi: true },
1397
+ ],
1398
+ }]
1399
+ }] });
1400
+
1401
+ /*
1402
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1403
+ *
1404
+ * Licensed under EUPL, Version 1.2 (the "License");
1405
+ * you may not use this file except in compliance with the License.
1406
+ * You may obtain a copy of the License at
1407
+ *
1408
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1409
+ *
1410
+ * Unless required by applicable law or agreed to in writing, software
1411
+ * distributed under the License is distributed on an "AS IS" basis,
1412
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1413
+ * See the License for the specific language governing permissions and
1414
+ * limitations under the License.
1415
+ */
1416
+
1417
+ /*
1418
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1419
+ *
1420
+ * Licensed under EUPL, Version 1.2 (the "License");
1421
+ * you may not use this file except in compliance with the License.
1422
+ * You may obtain a copy of the License at
1423
+ *
1424
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1425
+ *
1426
+ * Unless required by applicable law or agreed to in writing, software
1427
+ * distributed under the License is distributed on an "AS IS" basis,
1428
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1429
+ * See the License for the specific language governing permissions and
1430
+ * limitations under the License.
1431
+ */
1432
+
1433
+ /*
1434
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1435
+ *
1436
+ * Licensed under EUPL, Version 1.2 (the "License");
1437
+ * you may not use this file except in compliance with the License.
1438
+ * You may obtain a copy of the License at
1439
+ *
1440
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1441
+ *
1442
+ * Unless required by applicable law or agreed to in writing, software
1443
+ * distributed under the License is distributed on an "AS IS" basis,
1444
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1445
+ * See the License for the specific language governing permissions and
1446
+ * limitations under the License.
1447
+ */
1448
+
1449
+ /*
1450
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1451
+ *
1452
+ * Licensed under EUPL, Version 1.2 (the "License");
1453
+ * you may not use this file except in compliance with the License.
1454
+ * You may obtain a copy of the License at
1455
+ *
1456
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1457
+ *
1458
+ * Unless required by applicable law or agreed to in writing, software
1459
+ * distributed under the License is distributed on an "AS IS" basis,
1460
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1461
+ * See the License for the specific language governing permissions and
1462
+ * limitations under the License.
1463
+ */
1464
+ class BarChartDisplayComponent {
1465
+ }
1466
+ BarChartDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BarChartDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1467
+ BarChartDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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 });
1468
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BarChartDisplayComponent, decorators: [{
1469
+ type: Component,
1470
+ 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"] }]
1471
+ }], propDecorators: { displayTypeKey: [{
1472
+ type: Input
1473
+ }], data: [{
1474
+ type: Input
1475
+ }], displayTypeProperties: [{
1476
+ type: Input
1477
+ }] } });
1478
+
1479
+ /*
1480
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1481
+ *
1482
+ * Licensed under EUPL, Version 1.2 (the "License");
1483
+ * you may not use this file except in compliance with the License.
1484
+ * You may obtain a copy of the License at
1485
+ *
1486
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1487
+ *
1488
+ * Unless required by applicable law or agreed to in writing, software
1489
+ * distributed under the License is distributed on an "AS IS" basis,
1490
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1491
+ * See the License for the specific language governing permissions and
1492
+ * limitations under the License.
1493
+ */
1494
+
1495
+ /*
1496
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1497
+ *
1498
+ * Licensed under EUPL, Version 1.2 (the "License");
1499
+ * you may not use this file except in compliance with the License.
1500
+ * You may obtain a copy of the License at
1501
+ *
1502
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1503
+ *
1504
+ * Unless required by applicable law or agreed to in writing, software
1505
+ * distributed under the License is distributed on an "AS IS" basis,
1506
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1507
+ * See the License for the specific language governing permissions and
1508
+ * limitations under the License.
1509
+ */
1510
+
1511
+ /*
1512
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1513
+ *
1514
+ * Licensed under EUPL, Version 1.2 (the "License");
1515
+ * you may not use this file except in compliance with the License.
1516
+ * You may obtain a copy of the License at
1517
+ *
1518
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1519
+ *
1520
+ * Unless required by applicable law or agreed to in writing, software
1521
+ * distributed under the License is distributed on an "AS IS" basis,
1522
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1523
+ * See the License for the specific language governing permissions and
1524
+ * limitations under the License.
1525
+ */
1526
+ const barChartSpecification = {
1527
+ displayTypeKey: 'bar-chart',
1528
+ displayComponent: BarChartDisplayComponent,
1529
+ width: 1,
1530
+ height: 2,
1531
+ translations: {
1532
+ nl: {
1533
+ title: 'Staafdiagram',
1534
+ },
1535
+ en: {
1536
+ title: 'Bar chart',
1537
+ },
1538
+ de: {
1539
+ title: 'Balkendiagramm',
1540
+ },
1541
+ },
1542
+ requiredDataFeatures: [],
1543
+ };
1544
+
1545
+ /*
1546
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1547
+ *
1548
+ * Licensed under EUPL, Version 1.2 (the "License");
1549
+ * you may not use this file except in compliance with the License.
1550
+ * You may obtain a copy of the License at
1551
+ *
1552
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1553
+ *
1554
+ * Unless required by applicable law or agreed to in writing, software
1555
+ * distributed under the License is distributed on an "AS IS" basis,
1556
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1557
+ * See the License for the specific language governing permissions and
1558
+ * limitations under the License.
1559
+ */
1560
+ class BarChartModule {
1561
+ }
1562
+ BarChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BarChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1563
+ BarChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: BarChartModule, declarations: [BarChartDisplayComponent], imports: [CommonModule], exports: [BarChartDisplayComponent] });
1564
+ BarChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BarChartModule, providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: barChartSpecification, multi: true }], imports: [CommonModule] });
1565
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BarChartModule, decorators: [{
1566
+ type: NgModule,
1567
+ args: [{
1568
+ declarations: [BarChartDisplayComponent],
1569
+ imports: [CommonModule],
1570
+ exports: [BarChartDisplayComponent],
1571
+ providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: barChartSpecification, multi: true }],
1572
+ }]
1573
+ }] });
1574
+
1575
+ /*
1576
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1577
+ *
1578
+ * Licensed under EUPL, Version 1.2 (the "License");
1579
+ * you may not use this file except in compliance with the License.
1580
+ * You may obtain a copy of the License at
1581
+ *
1582
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1583
+ *
1584
+ * Unless required by applicable law or agreed to in writing, software
1585
+ * distributed under the License is distributed on an "AS IS" basis,
1586
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1587
+ * See the License for the specific language governing permissions and
1588
+ * limitations under the License.
1589
+ */
1590
+
1591
+ /*
1592
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1593
+ *
1594
+ * Licensed under EUPL, Version 1.2 (the "License");
1595
+ * you may not use this file except in compliance with the License.
1596
+ * You may obtain a copy of the License at
1597
+ *
1598
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1599
+ *
1600
+ * Unless required by applicable law or agreed to in writing, software
1601
+ * distributed under the License is distributed on an "AS IS" basis,
1602
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1603
+ * See the License for the specific language governing permissions and
1604
+ * limitations under the License.
1605
+ */
1606
+ class BigNumberConfigurationComponent {
1607
+ constructor(fb) {
1608
+ this.fb = fb;
1609
+ this.form = this.fb.group({
1610
+ title: this.fb.control('', [Validators.required]),
1611
+ subtitle: this.fb.control(''),
1612
+ label: this.fb.control(''),
1613
+ useKPI: this.fb.control(false, [Validators.required]),
1614
+ lowSeverityThreshold: this.fb.control(null),
1615
+ mediumSeverityThreshold: this.fb.control(null),
1616
+ highSeverityThreshold: this.fb.control(null),
1617
+ });
1618
+ this.configurationEvent = new EventEmitter();
1619
+ this._subscriptions = new Subscription();
1620
+ }
1621
+ set disabled(disabledValue) {
1622
+ if (disabledValue) {
1623
+ this.form.disable();
1624
+ }
1625
+ else {
1626
+ this.form.enable();
1627
+ }
1628
+ }
1629
+ get title() {
1630
+ return this.form.get('title');
1631
+ }
1632
+ get subtitle() {
1633
+ return this.form.get('subtitle');
1634
+ }
1635
+ get label() {
1636
+ return this.form.get('label');
1637
+ }
1638
+ get useKPI() {
1639
+ return this.form.get('useKPI');
1640
+ }
1641
+ get lowSeverityThreshold() {
1642
+ return this.form.get('lowSeverityThreshold');
1643
+ }
1644
+ get mediumSeverityThreshold() {
1645
+ return this.form.get('mediumSeverityThreshold');
1646
+ }
1647
+ get highSeverityThreshold() {
1648
+ return this.form.get('highSeverityThreshold');
1649
+ }
1650
+ set prefillConfiguration(configurationValue) {
1651
+ if (configurationValue) {
1652
+ this.title.setValue(configurationValue.title || '');
1653
+ this.subtitle.setValue(configurationValue.subtitle || '');
1654
+ this.label.setValue(configurationValue.label || '');
1655
+ this.useKPI.setValue(configurationValue.useKPI || false);
1656
+ this.lowSeverityThreshold.setValue(configurationValue.lowSeverityThreshold || null);
1657
+ this.mediumSeverityThreshold.setValue(configurationValue.mediumSeverityThreshold || null);
1658
+ this.highSeverityThreshold.setValue(configurationValue.highSeverityThreshold || null);
1659
+ }
1660
+ }
1661
+ ngOnInit() {
1662
+ this.openFormSubscription();
1663
+ this.openKPISubscription();
1664
+ }
1665
+ ngOnDestroy() {
1666
+ this._subscriptions.unsubscribe();
1667
+ }
1668
+ openFormSubscription() {
1669
+ this._subscriptions.add(this.form.valueChanges.pipe(startWith(this.form.value)).subscribe(formValue => {
1670
+ this.configurationEvent.emit({ valid: this.form.valid, data: formValue });
1671
+ }));
1672
+ }
1673
+ openKPISubscription() {
1674
+ this._subscriptions.add(this.useKPI.valueChanges.pipe(startWith(this.useKPI.value)).subscribe(useKpi => {
1675
+ const validators = [Validators.required];
1676
+ if (useKpi) {
1677
+ this.lowSeverityThreshold.setValidators(validators);
1678
+ this.mediumSeverityThreshold.setValidators(validators);
1679
+ this.highSeverityThreshold.setValidators(validators);
1680
+ }
1681
+ else {
1682
+ this.lowSeverityThreshold.clearValidators();
1683
+ this.mediumSeverityThreshold.clearValidators();
1684
+ this.highSeverityThreshold.clearValidators();
1685
+ }
1686
+ this.lowSeverityThreshold.updateValueAndValidity();
1687
+ this.mediumSeverityThreshold.updateValueAndValidity();
1688
+ this.highSeverityThreshold.updateValueAndValidity();
1689
+ }));
1690
+ }
1691
+ }
1692
+ BigNumberConfigurationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BigNumberConfigurationComponent, deps: [{ token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
1693
+ BigNumberConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BigNumberConfigurationComponent, selector: "ng-component", inputs: { displayTypeKey: "displayTypeKey", 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]=\"'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: 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: "component", type: i4$1.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 });
1694
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BigNumberConfigurationComponent, decorators: [{
1695
+ type: Component,
1696
+ 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]=\"'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" }]
1697
+ }], ctorParameters: function () { return [{ type: i1$3.FormBuilder }]; }, propDecorators: { displayTypeKey: [{
1698
+ type: Input
1699
+ }], disabled: [{
1700
+ type: Input
1701
+ }], prefillConfiguration: [{
1702
+ type: Input
1703
+ }], configurationEvent: [{
1704
+ type: Output
1705
+ }] } });
1706
+
1707
+ /*
1708
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1709
+ *
1710
+ * Licensed under EUPL, Version 1.2 (the "License");
1711
+ * you may not use this file except in compliance with the License.
1712
+ * You may obtain a copy of the License at
1713
+ *
1714
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1715
+ *
1716
+ * Unless required by applicable law or agreed to in writing, software
1717
+ * distributed under the License is distributed on an "AS IS" basis,
1718
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1719
+ * See the License for the specific language governing permissions and
1720
+ * limitations under the License.
1721
+ */
1722
+
1723
+ /*
1724
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1725
+ *
1726
+ * Licensed under EUPL, Version 1.2 (the "License");
1727
+ * you may not use this file except in compliance with the License.
1728
+ * You may obtain a copy of the License at
1729
+ *
1730
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1731
+ *
1732
+ * Unless required by applicable law or agreed to in writing, software
1733
+ * distributed under the License is distributed on an "AS IS" basis,
1734
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1735
+ * See the License for the specific language governing permissions and
1736
+ * limitations under the License.
1737
+ */
1738
+ var WidgetSeverity;
1739
+ (function (WidgetSeverity) {
1740
+ WidgetSeverity["BLACK"] = "valtimo-severity__black";
1741
+ WidgetSeverity["GREEN"] = "valtimo-severity__green";
1742
+ WidgetSeverity["YELLOW"] = "valtimo-severity__yellow";
1743
+ WidgetSeverity["ORANGE"] = "valtimo-severity__orange";
1744
+ WidgetSeverity["RED"] = "valtimo-severity__red";
1745
+ })(WidgetSeverity || (WidgetSeverity = {}));
1746
+
1747
+ /*
1748
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1749
+ *
1750
+ * Licensed under EUPL, Version 1.2 (the "License");
1751
+ * you may not use this file except in compliance with the License.
1752
+ * You may obtain a copy of the License at
1753
+ *
1754
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1755
+ *
1756
+ * Unless required by applicable law or agreed to in writing, software
1757
+ * distributed under the License is distributed on an "AS IS" basis,
1758
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1759
+ * See the License for the specific language governing permissions and
1760
+ * limitations under the License.
1761
+ */
1762
+
1763
+ /*
1764
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1765
+ *
1766
+ * Licensed under EUPL, Version 1.2 (the "License");
1767
+ * you may not use this file except in compliance with the License.
1768
+ * You may obtain a copy of the License at
1769
+ *
1770
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1771
+ *
1772
+ * Unless required by applicable law or agreed to in writing, software
1773
+ * distributed under the License is distributed on an "AS IS" basis,
1774
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1775
+ * See the License for the specific language governing permissions and
1776
+ * limitations under the License.
1777
+ */
1778
+ class BigNumberDisplayComponent {
1779
+ get severityClass() {
1780
+ var _a;
1781
+ if (!this.displayTypeProperties.useKPI) {
1782
+ return WidgetSeverity.BLACK;
1783
+ }
1784
+ const value = (_a = this.data) === null || _a === void 0 ? void 0 : _a.value;
1785
+ if (value < this.displayTypeProperties.lowSeverityThreshold) {
1786
+ return WidgetSeverity.GREEN;
1787
+ }
1788
+ else if (value < this.displayTypeProperties.mediumSeverityThreshold) {
1789
+ return WidgetSeverity.YELLOW;
1790
+ }
1791
+ else if (value < this.displayTypeProperties.highSeverityThreshold) {
1792
+ return WidgetSeverity.ORANGE;
1793
+ }
1794
+ return WidgetSeverity.RED;
1795
+ }
1796
+ get numberFontSize() {
1797
+ if (!this.data) {
1798
+ return 122;
1799
+ }
1800
+ return Math.floor(122 / this.data.value.toString().length) + 20;
1801
+ }
1802
+ }
1803
+ BigNumberDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BigNumberDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1804
+ BigNumberDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BigNumberDisplayComponent, selector: "valtimo-big-number-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\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: ["/*!\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;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px}.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"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BigNumberDisplayComponent, decorators: [{
1806
+ type: Component,
1807
+ args: [{ selector: 'valtimo-big-number-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\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: ["/*!\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;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px}.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"] }]
1808
+ }], propDecorators: { displayTypeKey: [{
1809
+ type: Input
1810
+ }], data: [{
1811
+ type: Input
1812
+ }], displayTypeProperties: [{
1813
+ type: Input
1814
+ }] } });
1815
+
1816
+ /*
1817
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1818
+ *
1819
+ * Licensed under EUPL, Version 1.2 (the "License");
1820
+ * you may not use this file except in compliance with the License.
1821
+ * You may obtain a copy of the License at
1822
+ *
1823
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1824
+ *
1825
+ * Unless required by applicable law or agreed to in writing, software
1826
+ * distributed under the License is distributed on an "AS IS" basis,
1827
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1828
+ * See the License for the specific language governing permissions and
1829
+ * limitations under the License.
1830
+ */
1831
+
1832
+ /*
1833
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1834
+ *
1835
+ * Licensed under EUPL, Version 1.2 (the "License");
1836
+ * you may not use this file except in compliance with the License.
1837
+ * You may obtain a copy of the License at
1838
+ *
1839
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1840
+ *
1841
+ * Unless required by applicable law or agreed to in writing, software
1842
+ * distributed under the License is distributed on an "AS IS" basis,
1843
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1844
+ * See the License for the specific language governing permissions and
1845
+ * limitations under the License.
1846
+ */
1847
+
1848
+ /*
1849
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1850
+ *
1851
+ * Licensed under EUPL, Version 1.2 (the "License");
1852
+ * you may not use this file except in compliance with the License.
1853
+ * You may obtain a copy of the License at
1854
+ *
1855
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1856
+ *
1857
+ * Unless required by applicable law or agreed to in writing, software
1858
+ * distributed under the License is distributed on an "AS IS" basis,
1859
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1860
+ * See the License for the specific language governing permissions and
1861
+ * limitations under the License.
1862
+ */
1863
+ const bigNumberSpecification = {
1864
+ displayTypeKey: 'number',
1865
+ displayComponent: BigNumberDisplayComponent,
1866
+ configurationComponent: BigNumberConfigurationComponent,
1867
+ width: 1,
1868
+ height: 1,
1869
+ translations: {
1870
+ nl: {
1871
+ title: 'Groot getal',
1872
+ formTitle: 'Titel (vereist)',
1873
+ formTitleHelperText: 'De titel die wordt weergegeven in de widget',
1874
+ subtitle: 'Ondertitel',
1875
+ subtitleHelperText: 'De ondertitel weergegeven in de widget',
1876
+ label: 'Label',
1877
+ labelHelperText: 'Het label dat wordt weergegeven in de widget',
1878
+ useKPI: 'KPI gebruiken',
1879
+ lowSeverityThreshold: 'Lage ernstdrempel (vereist)',
1880
+ mediumSeverityThreshold: 'Middelmatige ernstdrempel (vereist)',
1881
+ highSeverityThreshold: 'Hoge ernstdrempel (vereist)',
1882
+ },
1883
+ en: {
1884
+ title: 'Big number',
1885
+ formTitle: 'Title (required)',
1886
+ formTitleHelperText: 'The title displayed in the widget',
1887
+ subtitle: 'Subtitle',
1888
+ subtitleHelperText: 'The subtitle displayed in the widget',
1889
+ label: 'Label',
1890
+ labelHelperText: 'The label displayed in the widget',
1891
+ useKPI: 'Use KPI',
1892
+ lowSeverityThreshold: 'Low severity threshold (required)',
1893
+ mediumSeverityThreshold: 'Medium severity threshold (required)',
1894
+ highSeverityThreshold: 'High severity threshold (required)',
1895
+ },
1896
+ de: {
1897
+ title: 'Große Nummer',
1898
+ formTitle: 'Titel (erforderlich)',
1899
+ formTitleHelperText: 'Der im Widget angezeigte Titel',
1900
+ subtitle: 'Untertitel',
1901
+ subtitleHelperText: 'Der im Widget angezeigte Untertitel',
1902
+ label: 'Beschriftung',
1903
+ labelHelperText: 'Die im Widget angezeigte Beschriftung',
1904
+ useKPI: 'Verwenden Sie KPI',
1905
+ lowSeverityThreshold: 'Niedriger Schweregradschwellenwert (erforderlich)',
1906
+ mediumSeverityThreshold: 'Mittlerer Schweregradschwellenwert (erforderlich)',
1907
+ highSeverityThreshold: 'Hoher Schweregradschwellenwert (erforderlich)',
1908
+ },
1909
+ },
1910
+ requiredDataFeatures: [DATA_FEATURES.NUMBER],
1911
+ };
1912
+
1913
+ /*
1914
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1915
+ *
1916
+ * Licensed under EUPL, Version 1.2 (the "License");
1917
+ * you may not use this file except in compliance with the License.
1918
+ * You may obtain a copy of the License at
1919
+ *
1920
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1921
+ *
1922
+ * Unless required by applicable law or agreed to in writing, software
1923
+ * distributed under the License is distributed on an "AS IS" basis,
1924
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1925
+ * See the License for the specific language governing permissions and
1926
+ * limitations under the License.
1927
+ */
1928
+ class BigNumberModule {
1929
+ }
1930
+ BigNumberModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BigNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1931
+ BigNumberModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: BigNumberModule, declarations: [BigNumberDisplayComponent, BigNumberConfigurationComponent], imports: [CommonModule,
1932
+ ReactiveFormsModule,
1933
+ WidgetTranslatePipeModule,
1934
+ InputModule,
1935
+ CheckboxModule], exports: [BigNumberDisplayComponent] });
1936
+ BigNumberModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BigNumberModule, providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: bigNumberSpecification, multi: true }], imports: [CommonModule,
1937
+ ReactiveFormsModule,
1938
+ WidgetTranslatePipeModule,
1939
+ InputModule,
1940
+ CheckboxModule] });
1941
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BigNumberModule, decorators: [{
1942
+ type: NgModule,
1943
+ args: [{
1944
+ declarations: [BigNumberDisplayComponent, BigNumberConfigurationComponent],
1945
+ imports: [
1946
+ CommonModule,
1947
+ ReactiveFormsModule,
1948
+ WidgetTranslatePipeModule,
1949
+ InputModule,
1950
+ CheckboxModule,
1951
+ ],
1952
+ exports: [BigNumberDisplayComponent],
1953
+ providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: bigNumberSpecification, multi: true }],
1954
+ }]
1955
+ }] });
1956
+
1957
+ /*
1958
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1959
+ *
1960
+ * Licensed under EUPL, Version 1.2 (the "License");
1961
+ * you may not use this file except in compliance with the License.
1962
+ * You may obtain a copy of the License at
1963
+ *
1964
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1965
+ *
1966
+ * Unless required by applicable law or agreed to in writing, software
1967
+ * distributed under the License is distributed on an "AS IS" basis,
1968
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1969
+ * See the License for the specific language governing permissions and
1970
+ * limitations under the License.
1971
+ */
1972
+
1973
+ /*
1974
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1975
+ *
1976
+ * Licensed under EUPL, Version 1.2 (the "License");
1977
+ * you may not use this file except in compliance with the License.
1978
+ * You may obtain a copy of the License at
1979
+ *
1980
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1981
+ *
1982
+ * Unless required by applicable law or agreed to in writing, software
1983
+ * distributed under the License is distributed on an "AS IS" basis,
1984
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1985
+ * See the License for the specific language governing permissions and
1986
+ * limitations under the License.
1987
+ */
1988
+
1989
+ /*
1990
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
1991
+ *
1992
+ * Licensed under EUPL, Version 1.2 (the "License");
1993
+ * you may not use this file except in compliance with the License.
1994
+ * You may obtain a copy of the License at
1995
+ *
1996
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1997
+ *
1998
+ * Unless required by applicable law or agreed to in writing, software
1999
+ * distributed under the License is distributed on an "AS IS" basis,
2000
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2001
+ * See the License for the specific language governing permissions and
2002
+ * limitations under the License.
2003
+ */
2004
+ class MeterDisplayComponent {
2005
+ }
2006
+ MeterDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MeterDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2007
+ MeterDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MeterDisplayComponent, selector: "valtimo-meter-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\nmeter 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 });
2008
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MeterDisplayComponent, decorators: [{
2009
+ type: Component,
2010
+ args: [{ selector: 'valtimo-meter-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\nmeter 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"] }]
2011
+ }], propDecorators: { displayTypeKey: [{
2012
+ type: Input
2013
+ }], data: [{
2014
+ type: Input
2015
+ }], displayTypeProperties: [{
2016
+ type: Input
2017
+ }] } });
2018
+
2019
+ /*
2020
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
2021
+ *
2022
+ * Licensed under EUPL, Version 1.2 (the "License");
2023
+ * you may not use this file except in compliance with the License.
2024
+ * You may obtain a copy of the License at
2025
+ *
2026
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2027
+ *
2028
+ * Unless required by applicable law or agreed to in writing, software
2029
+ * distributed under the License is distributed on an "AS IS" basis,
2030
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2031
+ * See the License for the specific language governing permissions and
2032
+ * limitations under the License.
2033
+ */
2034
+
2035
+ /*
2036
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
2037
+ *
2038
+ * Licensed under EUPL, Version 1.2 (the "License");
2039
+ * you may not use this file except in compliance with the License.
2040
+ * You may obtain a copy of the License at
2041
+ *
2042
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2043
+ *
2044
+ * Unless required by applicable law or agreed to in writing, software
2045
+ * distributed under the License is distributed on an "AS IS" basis,
2046
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2047
+ * See the License for the specific language governing permissions and
2048
+ * limitations under the License.
2049
+ */
2050
+
2051
+ /*
2052
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
2053
+ *
2054
+ * Licensed under EUPL, Version 1.2 (the "License");
2055
+ * you may not use this file except in compliance with the License.
2056
+ * You may obtain a copy of the License at
2057
+ *
2058
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2059
+ *
2060
+ * Unless required by applicable law or agreed to in writing, software
2061
+ * distributed under the License is distributed on an "AS IS" basis,
2062
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2063
+ * See the License for the specific language governing permissions and
2064
+ * limitations under the License.
2065
+ */
2066
+ const meterSpecification = {
2067
+ displayTypeKey: 'meter',
2068
+ displayComponent: MeterDisplayComponent,
2069
+ width: 2,
2070
+ height: 1,
2071
+ translations: {
2072
+ nl: {
2073
+ title: 'Meter',
2074
+ },
2075
+ en: {
2076
+ title: 'Meter',
2077
+ },
2078
+ de: {
2079
+ title: 'Meter',
2080
+ },
2081
+ },
2082
+ requiredDataFeatures: [],
2083
+ };
2084
+
2085
+ /*
2086
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
2087
+ *
2088
+ * Licensed under EUPL, Version 1.2 (the "License");
2089
+ * you may not use this file except in compliance with the License.
2090
+ * You may obtain a copy of the License at
2091
+ *
2092
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2093
+ *
2094
+ * Unless required by applicable law or agreed to in writing, software
2095
+ * distributed under the License is distributed on an "AS IS" basis,
2096
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2097
+ * See the License for the specific language governing permissions and
2098
+ * limitations under the License.
2099
+ */
2100
+ class MeterModule {
2101
+ }
2102
+ MeterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MeterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2103
+ MeterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: MeterModule, declarations: [MeterDisplayComponent], imports: [CommonModule], exports: [MeterDisplayComponent] });
2104
+ MeterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MeterModule, providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: meterSpecification, multi: true }], imports: [CommonModule] });
2105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MeterModule, decorators: [{
2106
+ type: NgModule,
2107
+ args: [{
2108
+ declarations: [MeterDisplayComponent],
2109
+ imports: [CommonModule],
2110
+ exports: [MeterDisplayComponent],
2111
+ providers: [{ provide: DISPLAY_TYPE_TOKEN, useValue: meterSpecification, multi: true }],
2112
+ }]
2113
+ }] });
2114
+
2115
+ /*
2116
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
2117
+ *
2118
+ * Licensed under EUPL, Version 1.2 (the "License");
2119
+ * you may not use this file except in compliance with the License.
2120
+ * You may obtain a copy of the License at
2121
+ *
2122
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2123
+ *
2124
+ * Unless required by applicable law or agreed to in writing, software
2125
+ * distributed under the License is distributed on an "AS IS" basis,
2126
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2127
+ * See the License for the specific language governing permissions and
2128
+ * limitations under the License.
2129
+ */
2130
+
2131
+ /*
2132
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
2133
+ *
2134
+ * Licensed under EUPL, Version 1.2 (the "License");
2135
+ * you may not use this file except in compliance with the License.
2136
+ * You may obtain a copy of the License at
2137
+ *
2138
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2139
+ *
2140
+ * Unless required by applicable law or agreed to in writing, software
2141
+ * distributed under the License is distributed on an "AS IS" basis,
2142
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2143
+ * See the License for the specific language governing permissions and
2144
+ * limitations under the License.
2145
+ */
2146
+
2147
+ /*
2148
+ * Copyright 2015-2023 Ritense BV, the Netherlands.
2149
+ *
2150
+ * Licensed under EUPL, Version 1.2 (the "License");
2151
+ * you may not use this file except in compliance with the License.
2152
+ * You may obtain a copy of the License at
2153
+ *
2154
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2155
+ *
2156
+ * Unless required by applicable law or agreed to in writing, software
2157
+ * distributed under the License is distributed on an "AS IS" basis,
2158
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2159
+ * See the License for the specific language governing permissions and
2160
+ * limitations under the License.
2161
+ */
205
2162
 
206
2163
  /*
207
2164
  * Copyright 2015-2023 Ritense BV, the Netherlands.
@@ -223,5 +2180,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
223
2180
  * Generated bundle index. Do not edit.
224
2181
  */
225
2182
 
226
- export { DashboardComponent, DashboardModule, HttpLoaderFactory };
2183
+ export { BarChartDisplayComponent, BarChartModule, BigNumberConfigurationComponent, BigNumberDisplayComponent, BigNumberModule, CaseCountConfigurationComponent, CaseCountDataSourceModule, DATA_FEATURES, DATA_SOURCE_TOKEN, DISPLAY_TYPE_TOKEN, DashboardComponent, DashboardModule, DashboardService, HttpLoaderFactory, MeterDisplayComponent, MeterModule, Operator, TestConfigurationComponent, TestDataSourceModule, WIDGET_1X_HEIGHT, WIDGET_1X_MIN_WIDTH, WidgetDashboardComponent, WidgetDashboardContentComponent, WidgetService, WidgetSeverity, WidgetTranslatePipe, WidgetTranslatePipeModule, WidgetTranslationService, barChartSpecification, bigNumberSpecification, caseCountDataSourceSpecification, meterSpecification, testDataSourceSpecification };
227
2184
  //# sourceMappingURL=valtimo-dashboard.mjs.map