@valtimo/iko 13.40.0 → 13.40.2

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 (25) hide show
  1. package/fesm2022/valtimo-iko.mjs +77 -20
  2. package/fesm2022/valtimo-iko.mjs.map +1 -1
  3. package/lib/components/iko-list/iko-list.component.d.ts +1 -0
  4. package/lib/components/iko-list/iko-list.component.d.ts.map +1 -1
  5. package/lib/components/tabs/iko-widget/iko-widget.component.d.ts +3 -0
  6. package/lib/components/tabs/iko-widget/iko-widget.component.d.ts.map +1 -1
  7. package/lib/components/widget-collection/iko-widget-collection.component.d.ts +1 -0
  8. package/lib/components/widget-collection/iko-widget-collection.component.d.ts.map +1 -1
  9. package/lib/components/widget-custom/iko-widget-custom.component.d.ts +1 -0
  10. package/lib/components/widget-custom/iko-widget-custom.component.d.ts.map +1 -1
  11. package/lib/components/widget-field/iko-widget-field.component.d.ts +1 -0
  12. package/lib/components/widget-field/iko-widget-field.component.d.ts.map +1 -1
  13. package/lib/components/widget-formio/iko-widget-formio.component.d.ts +1 -0
  14. package/lib/components/widget-formio/iko-widget-formio.component.d.ts.map +1 -1
  15. package/lib/components/widget-interactive-table/iko-widget-interactive-table.component.d.ts +1 -0
  16. package/lib/components/widget-interactive-table/iko-widget-interactive-table.component.d.ts.map +1 -1
  17. package/lib/components/widget-map/iko-widget-map.component.d.ts +1 -0
  18. package/lib/components/widget-map/iko-widget-map.component.d.ts.map +1 -1
  19. package/lib/components/widget-metroline/iko-widget-metroline.component.d.ts +1 -0
  20. package/lib/components/widget-metroline/iko-widget-metroline.component.d.ts.map +1 -1
  21. package/lib/components/widget-table/iko-widget-table.component.d.ts +1 -0
  22. package/lib/components/widget-table/iko-widget-table.component.d.ts.map +1 -1
  23. package/lib/services/iko-api.service.d.ts +1 -0
  24. package/lib/services/iko-api.service.d.ts.map +1 -1
  25. package/package.json +1 -1
@@ -11,11 +11,11 @@ import * as i2$2 from '@valtimo/components';
11
11
  import { CarbonListModule, FormIoModule, FitPageDirective, RenderInPageHeaderDirective, SelectModule, CARBON_CONSTANTS, ValtimoCdsModalDirective, AutoKeyInputComponent, ViewType, ConfirmationModalModule, runAfterCarbonModalClosed, CarbonMultiInputModule, InputLabelModule, WidgetLayout, WIDGET_LAYOUT_VALUES, WIDGET_LAYOUT_TRANSLATION_KEYS, WidgetLayoutInfoComponent, ValuePathSelectorPrefix, InputModule as InputModule$1, DatePickerModule, ParagraphModule, DateTimePickerComponent, FormModule, registerCustomFormioComponent } from '@valtimo/components';
12
12
  import * as i6 from 'carbon-components-angular';
13
13
  import { InputModule, PaginationModule, TilesModule, ButtonModule, ModalModule, TabsModule, IconModule, LayerModule, TooltipModule, LoadingModule, ToggleModule, NumberModule, DropdownModule, ProgressBarModule, CheckboxModule, FileUploaderModule, NotificationModule, TimePickerModule } from 'carbon-components-angular';
14
- import { BehaviorSubject, filter, of, switchMap, combineLatest, distinctUntilChanged, tap, map as map$1, ReplaySubject, take, Subscription, delay, startWith, catchError } from 'rxjs';
15
- import * as i2$1 from '@valtimo/layout';
16
- import { WidgetCollectionComponent, WidgetCustomComponent, WidgetFieldComponent, WidgetFormioComponent, WidgetInteractiveTableComponent, WidgetTableComponent, WidgetMapComponent, WidgetMetrolineComponent, WidgetType, WidgetContainerComponent, ManagementWidgetDetailsComponent, WIDGET_MANAGEMENT_SERVICE, WidgetManagementComponent } from '@valtimo/layout';
14
+ import { BehaviorSubject, filter, of, switchMap, startWith, combineLatest, distinctUntilChanged, tap, catchError, map as map$1, ReplaySubject, take, Subscription, delay } from 'rxjs';
17
15
  import * as i5 from '@ngx-translate/core';
18
16
  import { TranslateModule, TranslatePipe } from '@ngx-translate/core';
17
+ import * as i2$1 from '@valtimo/layout';
18
+ import { catchWidgetDataError, WidgetCollectionComponent, WidgetCustomComponent, WidgetFieldComponent, WidgetFormioComponent, WidgetInteractiveTableComponent, WidgetTableComponent, WidgetMapComponent, WidgetMetrolineComponent, WidgetType, WidgetContainerComponent, ManagementWidgetDetailsComponent, WIDGET_MANAGEMENT_SERVICE, WidgetManagementComponent } from '@valtimo/layout';
19
19
  import * as i1 from '@angular/common/http';
20
20
  import { HttpHeaders, HttpParams } from '@angular/common/http';
21
21
  import { map, take as take$1 } from 'rxjs/operators';
@@ -56,6 +56,7 @@ class IkoApiService extends BaseApiService {
56
56
  this.configService = configService;
57
57
  this.globalNotificationService = globalNotificationService;
58
58
  this.router = router;
59
+ this.WIDGET_DATA_SKIP_TOAST_STATUSES = '500,502,503,504';
59
60
  this._cachedMenuItems$ = new BehaviorSubject([]);
60
61
  }
61
62
  getIkoViews(key, title, page = 0, size = 10000, sort = 'title,asc') {
@@ -79,7 +80,9 @@ class IkoApiService extends BaseApiService {
79
80
  return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${ikoViewKey}/tab/${tabKey}/widget`));
80
81
  }
81
82
  getIkoWidgetData(ikoViewKey, tabKey, widgetId, id, queryParams) {
82
- return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${ikoViewKey}/tab/${tabKey}/widget/${widgetId}/data?id=${id}${!queryParams ? '' : '&' + queryParams.toString()}`));
83
+ return this.httpClient.get(this.getApiUrl(`/v1/iko-view/${ikoViewKey}/tab/${tabKey}/widget/${widgetId}/data?id=${id}${!queryParams ? '' : '&' + queryParams.toString()}`), {
84
+ headers: new HttpHeaders().set(InterceptorSkip, this.WIDGET_DATA_SKIP_TOAST_STATUSES),
85
+ });
83
86
  }
84
87
  searchIkoSearchAction(ikoKey, paramKey, filters) {
85
88
  return this.httpClient.post(this.getApiUrl(`/v1/iko-view/${ikoKey}/search-action/${paramKey}/search`), filters);
@@ -568,13 +571,17 @@ class IkoWidgetCollectionComponent {
568
571
  this._widgetParams$ = new BehaviorSubject(null);
569
572
  this.widgetConfiguration$ = new BehaviorSubject(null);
570
573
  this._queryParams$ = new BehaviorSubject(new HttpParams());
574
+ this._reloadWidgetData$ = this.widgetLayoutService.widgetDataReload$.pipe(filter(uuid => uuid === this.widgetUuid), startWith(null));
571
575
  this.widgetData$ = combineLatest([
572
576
  this.widgetConfiguration$,
573
577
  this._widgetParams$,
574
578
  this._queryParams$.pipe(distinctUntilChanged((prevParams, currParams) => prevParams.toString() === currParams.toString())),
579
+ this._reloadWidgetData$,
575
580
  ]).pipe(switchMap(([widgetConfiguration, widgetParams, queryParams]) => !widgetParams || !widgetConfiguration
576
581
  ? of(null)
577
- : this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId, queryParams)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
582
+ : this.ikoApiService
583
+ .getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId, queryParams)
584
+ .pipe(catchWidgetDataError(this.widgetLayoutService, () => this.widgetUuid))), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
578
585
  }
579
586
  onPaginationEvent(event) {
580
587
  this._queryParams$.next(new HttpParams()
@@ -652,12 +659,16 @@ class IkoWidgetCustomComponent {
652
659
  this.widgetLayoutService = widgetLayoutService;
653
660
  this._widgetParams$ = new BehaviorSubject(null);
654
661
  this._widgetConfigSubject$ = new BehaviorSubject(null);
662
+ this._reloadWidgetData$ = this.widgetLayoutService.widgetDataReload$.pipe(filter(uuid => uuid === this.widgetUuid), startWith(null));
655
663
  this.widgetData$ = combineLatest([
656
664
  this._widgetConfigSubject$,
657
665
  this._widgetParams$,
666
+ this._reloadWidgetData$,
658
667
  ]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
659
668
  ? of(null)
660
- : this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
669
+ : this.ikoApiService
670
+ .getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)
671
+ .pipe(catchWidgetDataError(this.widgetLayoutService, () => this.widgetUuid))), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
661
672
  }
662
673
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IkoWidgetCustomComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
663
674
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: IkoWidgetCustomComponent, isStandalone: true, selector: "valtimo-iko-widget-custom", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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<valtimo-widget-custom\n *ngIf=\"{\n widgetConfiguration: widgetConfig$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n [widgetUuid]=\"widgetUuid\"\n>\n</valtimo-widget-custom>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetCustomComponent, selector: "valtimo-widget-custom", inputs: ["widgetConfiguration", "widgetData", "widgetUuid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -718,12 +729,16 @@ class IkoWidgetFieldComponent {
718
729
  this.widgetLayoutService = widgetLayoutService;
719
730
  this._widgetParams$ = new BehaviorSubject(null);
720
731
  this.widgetConfiguration$ = new BehaviorSubject(null);
732
+ this._reloadWidgetData$ = this.widgetLayoutService.widgetDataReload$.pipe(filter(uuid => uuid === this.widgetUuid), startWith(null));
721
733
  this.widgetData$ = combineLatest([
722
734
  this.widgetConfiguration$,
723
735
  this._widgetParams$,
736
+ this._reloadWidgetData$,
724
737
  ]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
725
738
  ? of(null)
726
- : this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
739
+ : this.ikoApiService
740
+ .getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)
741
+ .pipe(catchWidgetDataError(this.widgetLayoutService, () => this.widgetUuid))), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
727
742
  }
728
743
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IkoWidgetFieldComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
729
744
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: IkoWidgetFieldComponent, isStandalone: true, selector: "valtimo-iko-widget-field", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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<valtimo-widget-field\n [widgetConfiguration]=\"widgetConfiguration$ | async\"\n [widgetData]=\"widgetData$ | async\"\n>\n</valtimo-widget-field>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetFieldComponent, selector: "valtimo-widget-field", inputs: ["widgetConfiguration", "widgetData"], outputs: ["noVisibleFieldsEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -795,12 +810,16 @@ class IkoWidgetFormioComponent {
795
810
  this.widgetLayoutService = widgetLayoutService;
796
811
  this._widgetParams$ = new BehaviorSubject(null);
797
812
  this._widgetConfigurationSubject$ = new BehaviorSubject(null);
813
+ this._reloadWidgetData$ = this.widgetLayoutService.widgetDataReload$.pipe(filter(uuid => uuid === this.widgetUuid), startWith(null));
798
814
  this.widgetData$ = combineLatest([
799
815
  this.widgetConfiguration$,
800
816
  this._widgetParams$,
817
+ this._reloadWidgetData$,
801
818
  ]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
802
819
  ? of(null)
803
- : this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
820
+ : this.ikoApiService
821
+ .getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)
822
+ .pipe(catchWidgetDataError(this.widgetLayoutService, () => this.widgetUuid))), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
804
823
  }
805
824
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IkoWidgetFormioComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
806
825
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: IkoWidgetFormioComponent, isStandalone: true, selector: "valtimo-iko-widget-formio", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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<valtimo-widget-formio\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetData: widgetData$ | async,\n } as obs\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n [widgetUuid]=\"widgetUuid\"\n>\n</valtimo-widget-formio>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: FormIoModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetFormioComponent, selector: "valtimo-widget-formio", inputs: ["documentId", "widgetConfiguration", "widgetData", "widgetUuid", "refreshForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -865,14 +884,18 @@ class IkoWidgetInteractiveTableComponent {
865
884
  this.widgetConfiguration$ = new BehaviorSubject(null);
866
885
  this._widgetParams$ = new BehaviorSubject(null);
867
886
  this._queryParams$ = new BehaviorSubject(new HttpParams());
887
+ this._reloadWidgetData$ = this.widgetLayoutService.widgetDataReload$.pipe(filter(uuid => uuid === this.widgetUuid), startWith(null));
868
888
  this.widgetData$ = combineLatest([
869
889
  this.widgetConfiguration$,
870
890
  this._widgetParams$,
871
891
  this._queryParams$.pipe(distinctUntilChanged((prevParams, currParams) => prevParams.toString() === currParams.toString())),
872
892
  this.listService.forceRefresh$,
893
+ this._reloadWidgetData$,
873
894
  ]).pipe(switchMap(([widgetConfiguration, widgetParams, queryParams]) => !widgetParams || !widgetConfiguration
874
895
  ? of(null)
875
- : this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId, queryParams)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
896
+ : this.ikoApiService
897
+ .getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId, queryParams)
898
+ .pipe(catchWidgetDataError(this.widgetLayoutService, () => this.widgetUuid))), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
876
899
  }
877
900
  onQueryParamsEvent(params) {
878
901
  this._queryParams$.next(params);
@@ -963,13 +986,17 @@ class IkoWidgetTableComponent {
963
986
  this.widgetConfiguration$ = new BehaviorSubject(null);
964
987
  this._widgetParams$ = new BehaviorSubject(null);
965
988
  this._queryParams$ = new BehaviorSubject(new HttpParams());
989
+ this._reloadWidgetData$ = this.widgetLayoutService.widgetDataReload$.pipe(filter(uuid => uuid === this.widgetUuid), startWith(null));
966
990
  this.widgetData$ = combineLatest([
967
991
  this.widgetConfiguration$,
968
992
  this._widgetParams$,
969
993
  this._queryParams$.pipe(distinctUntilChanged((prevParams, currParams) => prevParams.toString() === currParams.toString())),
994
+ this._reloadWidgetData$,
970
995
  ]).pipe(switchMap(([widgetConfiguration, widgetParams, queryParams]) => !widgetParams || !widgetConfiguration
971
996
  ? of(null)
972
- : this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId, queryParams)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
997
+ : this.ikoApiService
998
+ .getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId, queryParams)
999
+ .pipe(catchWidgetDataError(this.widgetLayoutService, () => this.widgetUuid))), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
973
1000
  }
974
1001
  onPaginationEvent(event) {
975
1002
  this._queryParams$.next(new HttpParams()
@@ -1044,12 +1071,16 @@ class IkoWidgetMapComponent {
1044
1071
  this.widgetLayoutService = widgetLayoutService;
1045
1072
  this._widgetParams$ = new BehaviorSubject(null);
1046
1073
  this.widgetConfiguration$ = new BehaviorSubject(null);
1074
+ this._reloadWidgetData$ = this.widgetLayoutService.widgetDataReload$.pipe(filter(uuid => uuid === this.widgetUuid), startWith(null));
1047
1075
  this.widgetData$ = combineLatest([
1048
1076
  this.widgetConfiguration$,
1049
1077
  this._widgetParams$,
1078
+ this._reloadWidgetData$,
1050
1079
  ]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
1051
1080
  ? of(null)
1052
- : this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
1081
+ : this.ikoApiService
1082
+ .getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)
1083
+ .pipe(catchWidgetDataError(this.widgetLayoutService, () => this.widgetUuid))), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
1053
1084
  }
1054
1085
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IkoWidgetMapComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
1055
1086
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: IkoWidgetMapComponent, isStandalone: true, selector: "valtimo-iko-widget-map", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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<valtimo-widget-map\n [widgetConfiguration]=\"widgetConfiguration$ | async\"\n [widgetData]=\"widgetData$ | async\"\n>\n</valtimo-widget-map>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: WidgetMapComponent, selector: "valtimo-widget-map", inputs: ["widgetConfiguration", "widgetData"], outputs: ["noVisibleMapEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -1117,12 +1148,16 @@ class IkoWidgetMetrolineComponent {
1117
1148
  this.widgetLayoutService = widgetLayoutService;
1118
1149
  this._widgetParams$ = new BehaviorSubject(null);
1119
1150
  this.widgetConfiguration$ = new BehaviorSubject(null);
1151
+ this._reloadWidgetData$ = this.widgetLayoutService.widgetDataReload$.pipe(filter(uuid => uuid === this.widgetUuid), startWith(null));
1120
1152
  this.widgetData$ = combineLatest([
1121
1153
  this.widgetConfiguration$,
1122
1154
  this._widgetParams$,
1155
+ this._reloadWidgetData$,
1123
1156
  ]).pipe(switchMap(([widgetConfiguration, widgetParams]) => !widgetParams || !widgetConfiguration
1124
1157
  ? of(null)
1125
- : this.ikoApiService.getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
1158
+ : this.ikoApiService
1159
+ .getIkoWidgetData(widgetParams.ikoViewKey, widgetParams.tabKey, widgetConfiguration.key, widgetParams.entryId)
1160
+ .pipe(catchWidgetDataError(this.widgetLayoutService, () => this.widgetUuid))), tap(() => this.widgetLayoutService.setWidgetDataLoaded(this.widgetUuid)));
1126
1161
  }
1127
1162
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IkoWidgetMetrolineComponent, deps: [{ token: IkoApiService }, { token: i2$1.WidgetLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
1128
1163
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: IkoWidgetMetrolineComponent, isStandalone: true, selector: "valtimo-iko-widget-metroline", inputs: { widgetConfiguration: "widgetConfiguration", widgetParams: "widgetParams", widgetUuid: "widgetUuid" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 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<valtimo-widget-metroline\n [widgetConfiguration]=\"widgetConfiguration$ | async\"\n [widgetData]=\"widgetData$ | async\"\n>\n</valtimo-widget-metroline>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "component", type: WidgetMetrolineComponent, selector: "valtimo-widget-metroline", inputs: ["widgetConfiguration", "widgetData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -1184,7 +1219,12 @@ class IkoWidgetComponent {
1184
1219
  this.entryId$ = this.ikoTabService.entryId$;
1185
1220
  this._key$ = new BehaviorSubject('');
1186
1221
  this.loading$ = new BehaviorSubject(true);
1187
- this.widgets$ = combineLatest([this.ikoViewKey$, this.key$]).pipe(switchMap(([ikoViewKey, key]) => this.ikoApiService.getIkoWidget(ikoViewKey, key)));
1222
+ this.widgetsError$ = new BehaviorSubject(false);
1223
+ this._reloadWidgets$ = new BehaviorSubject(null);
1224
+ this.widgets$ = combineLatest([this.ikoViewKey$, this.key$, this._reloadWidgets$]).pipe(tap(() => this.widgetsError$.next(false)), switchMap(([ikoViewKey, key]) => this.ikoApiService.getIkoWidget(ikoViewKey, key).pipe(catchError(() => {
1225
+ this.widgetsError$.next(true);
1226
+ return of([]);
1227
+ }))));
1188
1228
  this.widgetLayout$ = combineLatest([
1189
1229
  this.ikoViewKey$,
1190
1230
  this.key$,
@@ -1214,12 +1254,22 @@ class IkoWidgetComponent {
1214
1254
  [WidgetType.METROLINE]: IkoWidgetMetrolineComponent,
1215
1255
  };
1216
1256
  }
1257
+ onRetryWidgets() {
1258
+ this._reloadWidgets$.next(null);
1259
+ }
1217
1260
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IkoWidgetComponent, deps: [{ token: IkoTabService }, { token: IkoApiService }, { token: i1$1.NGXLogger }], target: i0.ɵɵFactoryTarget.Component }); }
1218
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: IkoWidgetComponent, isStandalone: true, selector: "ng-component", inputs: { key: "key" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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<valtimo-widget-container\n fitPage\n [disableOverflow]=\"true\"\n class=\"iko-widget-container\"\n [widgets]=\"widgets$ | async\"\n [widgetComponentMap]=\"widgetComponentMap\"\n [widgetParams]=\"widgetParams$ | async\"\n [widgetLayout]=\"widgetLayout$ | async\"\n>\n</valtimo-widget-container>\n", styles: [":host ::ng-deep .widgets-container{overflow:hidden}.iko-widget-container{display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}\n/*!\n * Copyright 2015-2025 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: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "component", type: WidgetContainerComponent, selector: "valtimo-widget-container", inputs: ["widgets", "widgetLayout", "widgetComponentMap", "widgetParams"] }, { kind: "directive", type: FitPageDirective, selector: "[fitPage]", inputs: ["spaceAdjustment", "fitPageDisabled", "disableOverflow", "bottomMargin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1261
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: IkoWidgetComponent, isStandalone: true, selector: "ng-component", inputs: { key: "key" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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@let hasWidgetsError = widgetsError$ | async;\n\n@if (hasWidgetsError) {\n <valtimo-no-results\n [action]=\"retryWidgets\"\n [title]=\"'widgets.dataError.title' | translate\"\n illustration=\"valtimo-layout/img/emptystate-error.svg\"\n ></valtimo-no-results>\n\n <ng-template #retryWidgets>\n <button cdsButton=\"tertiary\" size=\"sm\" (click)=\"onRetryWidgets()\">\n {{ 'widgets.dataError.retry' | translate }}\n </button>\n </ng-template>\n}\n\n<valtimo-widget-container\n fitPage\n [disableOverflow]=\"true\"\n class=\"iko-widget-container\"\n [class.iko-widget-container--hidden]=\"hasWidgetsError\"\n [widgets]=\"widgets$ | async\"\n [widgetComponentMap]=\"widgetComponentMap\"\n [widgetParams]=\"widgetParams$ | async\"\n [widgetLayout]=\"widgetLayout$ | async\"\n>\n</valtimo-widget-container>\n", styles: [":host ::ng-deep .widgets-container{overflow:hidden}.iko-widget-container{display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}.iko-widget-container--hidden{display:none}\n/*!\n * Copyright 2015-2025 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: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "directive", type: FitPageDirective, selector: "[fitPage]", inputs: ["spaceAdjustment", "fitPageDisabled", "disableOverflow", "bottomMargin"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: WidgetContainerComponent, selector: "valtimo-widget-container", inputs: ["widgets", "widgetLayout", "widgetComponentMap", "widgetParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1219
1262
  }
1220
1263
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IkoWidgetComponent, decorators: [{
1221
1264
  type: Component,
1222
- args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, WidgetContainerComponent, FitPageDirective], template: "<!--\n ~ Copyright 2015-2025 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<valtimo-widget-container\n fitPage\n [disableOverflow]=\"true\"\n class=\"iko-widget-container\"\n [widgets]=\"widgets$ | async\"\n [widgetComponentMap]=\"widgetComponentMap\"\n [widgetParams]=\"widgetParams$ | async\"\n [widgetLayout]=\"widgetLayout$ | async\"\n>\n</valtimo-widget-container>\n", styles: [":host ::ng-deep .widgets-container{overflow:hidden}.iko-widget-container{display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}\n/*!\n * Copyright 2015-2025 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"] }]
1265
+ args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
1266
+ ButtonModule,
1267
+ CarbonListModule,
1268
+ CommonModule,
1269
+ FitPageDirective,
1270
+ TranslateModule,
1271
+ WidgetContainerComponent,
1272
+ ], template: "<!--\n ~ Copyright 2015-2025 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@let hasWidgetsError = widgetsError$ | async;\n\n@if (hasWidgetsError) {\n <valtimo-no-results\n [action]=\"retryWidgets\"\n [title]=\"'widgets.dataError.title' | translate\"\n illustration=\"valtimo-layout/img/emptystate-error.svg\"\n ></valtimo-no-results>\n\n <ng-template #retryWidgets>\n <button cdsButton=\"tertiary\" size=\"sm\" (click)=\"onRetryWidgets()\">\n {{ 'widgets.dataError.retry' | translate }}\n </button>\n </ng-template>\n}\n\n<valtimo-widget-container\n fitPage\n [disableOverflow]=\"true\"\n class=\"iko-widget-container\"\n [class.iko-widget-container--hidden]=\"hasWidgetsError\"\n [widgets]=\"widgets$ | async\"\n [widgetComponentMap]=\"widgetComponentMap\"\n [widgetParams]=\"widgetParams$ | async\"\n [widgetLayout]=\"widgetLayout$ | async\"\n>\n</valtimo-widget-container>\n", styles: [":host ::ng-deep .widgets-container{overflow:hidden}.iko-widget-container{display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}.iko-widget-container--hidden{display:none}\n/*!\n * Copyright 2015-2025 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"] }]
1223
1273
  }], ctorParameters: () => [{ type: IkoTabService }, { type: IkoApiService }, { type: i1$1.NGXLogger }], propDecorators: { key: [{
1224
1274
  type: Input
1225
1275
  }] } });
@@ -1346,6 +1396,7 @@ class IkoListComponent {
1346
1396
  this.router = router;
1347
1397
  this.rowSelectedEvent = new EventEmitter();
1348
1398
  this.loading$ = new BehaviorSubject(true);
1399
+ this.searchError$ = new BehaviorSubject(false);
1349
1400
  this._searchParams$ = new ReplaySubject(1);
1350
1401
  this.listConfig$ = this._searchParams$.pipe(switchMap(inputParams => {
1351
1402
  if (inputParams && this.ikoViewKey) {
@@ -1368,8 +1419,14 @@ class IkoListComponent {
1368
1419
  });
1369
1420
  return { ikoViewKey: params.key, searchKey: params.searchKey, filters: queryParams };
1370
1421
  }));
1371
- }), tap(() => this.loading$.next(true)), switchMap(({ ikoViewKey, searchKey, filters }) => this.ikoApiService.searchIkoSearchAction(ikoViewKey, searchKey, { filters })), map$1(res => ({
1372
- fields: res.headers.reduce((acc, curr) => [
1422
+ }), tap(() => {
1423
+ this.loading$.next(true);
1424
+ this.searchError$.next(false);
1425
+ }), switchMap(({ ikoViewKey, searchKey, filters }) => this.ikoApiService.searchIkoSearchAction(ikoViewKey, searchKey, { filters }).pipe(catchError(() => {
1426
+ this.searchError$.next(true);
1427
+ return of(null);
1428
+ }))), map$1(res => ({
1429
+ fields: (res?.headers ?? []).reduce((acc, curr) => [
1373
1430
  ...acc,
1374
1431
  ...(curr.displayType.type === 'hidden'
1375
1432
  ? []
@@ -1384,7 +1441,7 @@ class IkoListComponent {
1384
1441
  },
1385
1442
  ]),
1386
1443
  ], []),
1387
- items: res.rows.content.map(stuff => stuff.items.reduce((acc, curr) => ({ ...acc, [curr.key]: curr.value }), {})),
1444
+ items: (res?.rows?.content ?? []).map(stuff => stuff.items.reduce((acc, curr) => ({ ...acc, [curr.key]: curr.value }), {})),
1388
1445
  })), tap(() => this.loading$.next(false)));
1389
1446
  combineLatest([this.route.params, this.route.queryParams])
1390
1447
  .pipe(takeUntilDestroyed())
@@ -1412,11 +1469,11 @@ class IkoListComponent {
1412
1469
  }
1413
1470
  }
1414
1471
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IkoListComponent, deps: [{ token: i2$2.BreadcrumbService }, { token: IkoApiService }, { token: i3.ActivatedRoute }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
1415
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: IkoListComponent, isStandalone: true, selector: "valtimo-iko-list", inputs: { ikoViewKey: "ikoViewKey", searchParams: "searchParams" }, outputs: { rowSelectedEvent: "rowSelectedEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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<valtimo-carbon-list\n *ngIf=\"{\n listConfig: listConfig$ | async,\n loading: loading$ | async,\n } as obs\"\n [fields]=\"obs.listConfig?.fields\"\n [items]=\"obs.listConfig?.items\"\n [loading]=\"obs.loading\"\n [hideToolbar]=\"true\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <valtimo-no-results\n title=\"{{ 'ikoManagement.search.noResultsTitle' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n description=\"{{ 'ikoManagement.search.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "skeletonRowCount", "actions", "actionItems", "showActionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "initialSearchValue", "searchDebounceMs", "invalidSearchFields", "searchFields", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled", "expandedRowTemplate", "expandedRowKey", "trackByKey"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
1472
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: IkoListComponent, isStandalone: true, selector: "valtimo-iko-list", inputs: { ikoViewKey: "ikoViewKey", searchParams: "searchParams" }, outputs: { rowSelectedEvent: "rowSelectedEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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@let hasSearchError = searchError$ | async;\n\n@if (hasSearchError) {\n <valtimo-no-results\n title=\"{{ 'widgets.dataError.title' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-error.svg\"\n ></valtimo-no-results>\n}\n\n<valtimo-carbon-list\n *ngIf=\"{\n listConfig: listConfig$ | async,\n loading: loading$ | async,\n } as obs\"\n [class.iko-list--hidden]=\"hasSearchError\"\n [fields]=\"obs.listConfig?.fields\"\n [items]=\"obs.listConfig?.items\"\n [loading]=\"obs.loading\"\n [hideToolbar]=\"true\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <valtimo-no-results\n title=\"{{ 'ikoManagement.search.noResultsTitle' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n description=\"{{ 'ikoManagement.search.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n", styles: [".iko-list--hidden{display:none}\n/*!\n * Copyright 2015-2026 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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i2$2.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "skeletonRowCount", "actions", "actionItems", "showActionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "initialSearchValue", "searchDebounceMs", "invalidSearchFields", "searchFields", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled", "expandedRowTemplate", "expandedRowKey", "trackByKey"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i2$2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
1416
1473
  }
1417
1474
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: IkoListComponent, decorators: [{
1418
1475
  type: Component,
1419
- args: [{ selector: 'valtimo-iko-list', standalone: true, imports: [CommonModule, CarbonListModule, TranslatePipe], template: "<!--\n ~ Copyright 2015-2025 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<valtimo-carbon-list\n *ngIf=\"{\n listConfig: listConfig$ | async,\n loading: loading$ | async,\n } as obs\"\n [fields]=\"obs.listConfig?.fields\"\n [items]=\"obs.listConfig?.items\"\n [loading]=\"obs.loading\"\n [hideToolbar]=\"true\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <valtimo-no-results\n title=\"{{ 'ikoManagement.search.noResultsTitle' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n description=\"{{ 'ikoManagement.search.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n" }]
1476
+ args: [{ selector: 'valtimo-iko-list', standalone: true, imports: [CommonModule, CarbonListModule, TranslatePipe], template: "<!--\n ~ Copyright 2015-2025 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@let hasSearchError = searchError$ | async;\n\n@if (hasSearchError) {\n <valtimo-no-results\n title=\"{{ 'widgets.dataError.title' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-error.svg\"\n ></valtimo-no-results>\n}\n\n<valtimo-carbon-list\n *ngIf=\"{\n listConfig: listConfig$ | async,\n loading: loading$ | async,\n } as obs\"\n [class.iko-list--hidden]=\"hasSearchError\"\n [fields]=\"obs.listConfig?.fields\"\n [items]=\"obs.listConfig?.items\"\n [loading]=\"obs.loading\"\n [hideToolbar]=\"true\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n <valtimo-no-results\n title=\"{{ 'ikoManagement.search.noResultsTitle' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-no-result.svg\"\n description=\"{{ 'ikoManagement.search.noResultsDescription' | translate }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n", styles: [".iko-list--hidden{display:none}\n/*!\n * Copyright 2015-2026 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"] }]
1420
1477
  }], ctorParameters: () => [{ type: i2$2.BreadcrumbService }, { type: IkoApiService }, { type: i3.ActivatedRoute }, { type: i3.Router }], propDecorators: { ikoViewKey: [{
1421
1478
  type: Input
1422
1479
  }], searchParams: [{