@valtimo/zgw 12.17.1 → 12.19.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 (36) hide show
  1. package/esm2022/lib/modules/index.mjs +2 -1
  2. package/esm2022/lib/modules/notificaties-api/components/failed-notification-detail/failed-notification-detail.component.mjs +85 -0
  3. package/esm2022/lib/modules/notificaties-api/components/failed-notifications-page/failed-notifications-page.component.mjs +123 -0
  4. package/esm2022/lib/modules/notificaties-api/components/index.mjs +3 -0
  5. package/esm2022/lib/modules/notificaties-api/index.mjs +5 -0
  6. package/esm2022/lib/modules/notificaties-api/models/failed-notification.model.mjs +23 -0
  7. package/esm2022/lib/modules/notificaties-api/models/index.mjs +2 -0
  8. package/esm2022/lib/modules/notificaties-api/notificaties-api-routing.module.mjs +47 -0
  9. package/esm2022/lib/modules/notificaties-api/services/failed-notifications.service.mjs +56 -0
  10. package/esm2022/lib/modules/notificaties-api/services/index.mjs +2 -0
  11. package/esm2022/lib/zgw.module.mjs +7 -4
  12. package/fesm2022/valtimo-zgw.mjs +306 -8
  13. package/fesm2022/valtimo-zgw.mjs.map +1 -1
  14. package/lib/modules/index.d.ts +1 -0
  15. package/lib/modules/index.d.ts.map +1 -1
  16. package/lib/modules/notificaties-api/components/failed-notification-detail/failed-notification-detail.component.d.ts +17 -0
  17. package/lib/modules/notificaties-api/components/failed-notification-detail/failed-notification-detail.component.d.ts.map +1 -0
  18. package/lib/modules/notificaties-api/components/failed-notifications-page/failed-notifications-page.component.d.ts +32 -0
  19. package/lib/modules/notificaties-api/components/failed-notifications-page/failed-notifications-page.component.d.ts.map +1 -0
  20. package/lib/modules/notificaties-api/components/index.d.ts +3 -0
  21. package/lib/modules/notificaties-api/components/index.d.ts.map +1 -0
  22. package/lib/modules/notificaties-api/index.d.ts +5 -0
  23. package/lib/modules/notificaties-api/index.d.ts.map +1 -0
  24. package/lib/modules/notificaties-api/models/failed-notification.model.d.ts +22 -0
  25. package/lib/modules/notificaties-api/models/failed-notification.model.d.ts.map +1 -0
  26. package/lib/modules/notificaties-api/models/index.d.ts +2 -0
  27. package/lib/modules/notificaties-api/models/index.d.ts.map +1 -0
  28. package/lib/modules/notificaties-api/notificaties-api-routing.module.d.ts +9 -0
  29. package/lib/modules/notificaties-api/notificaties-api-routing.module.d.ts.map +1 -0
  30. package/lib/modules/notificaties-api/services/failed-notifications.service.d.ts +16 -0
  31. package/lib/modules/notificaties-api/services/failed-notifications.service.d.ts.map +1 -0
  32. package/lib/modules/notificaties-api/services/index.d.ts +2 -0
  33. package/lib/modules/notificaties-api/services/index.d.ts.map +1 -0
  34. package/lib/zgw.module.d.ts +2 -1
  35. package/lib/zgw.module.d.ts.map +1 -1
  36. package/package.json +1 -1
@@ -8,11 +8,11 @@ import * as i4 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
9
  import * as i1$1 from '@angular/forms';
10
10
  import { Validators, ReactiveFormsModule, FormsModule, FormGroup, FormControl } from '@angular/forms';
11
- import { BehaviorSubject, combineLatest, map, Subscription, switchMap, filter, tap, startWith, debounceTime, Subject, take, of, from, ReplaySubject, EMPTY, distinctUntilChanged } from 'rxjs';
11
+ import { BehaviorSubject, combineLatest, map, Subscription, switchMap, filter, tap, startWith, debounceTime, Subject, take, of, from, ReplaySubject, EMPTY, finalize, distinctUntilChanged } from 'rxjs';
12
12
  import * as i3$1 from '@valtimo/components';
13
13
  import { CARBON_CONSTANTS, ViewType, CarbonListModule, ConfirmationModalModule, InputLabelModule, InputModule as InputModule$1, SelectModule, VModalModule, DEFAULT_PAGINATION, DEFAULT_PAGINATOR_CONFIG, ParagraphModule, CarbonListComponent, createCustomFormioComponent, registerCustomFormioComponentWithClass, TableModule, TitleModule, FormIoModule, TimelineItemImpl, ModalModule as ModalModule$1, SpinnerModule, TimelineModule, WidgetModule, ListModule, FilterSidebarModule, PageModule, FormModule, ValtimoCdsModalDirectiveModule, DropzoneModule, FileSizeModule } from '@valtimo/components';
14
14
  import * as i2 from '@valtimo/config';
15
- import { BaseApiService, UploadProvider, ROLE_USER, CASE_MANAGEMENT_TAB_TOKEN, ZGW_OBJECT_TYPE_COMPONENT_TOKEN, ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN, ZGW_CASE_CONFIGURATION_EXTENSIONS_TOKEN } from '@valtimo/config';
15
+ import { BaseApiService, UploadProvider, ROLE_USER, ROLE_ADMIN, CASE_MANAGEMENT_TAB_TOKEN, ZGW_OBJECT_TYPE_COMPONENT_TOKEN, ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN, ZGW_CASE_CONFIGURATION_EXTENSIONS_TOKEN } from '@valtimo/config';
16
16
  import * as i1 from '@angular/common/http';
17
17
  import { HttpParams } from '@angular/common/http';
18
18
  import * as i1$2 from '@angular/router';
@@ -4235,7 +4235,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
4235
4235
  * See the License for the specific language governing permissions and
4236
4236
  * limitations under the License.
4237
4237
  */
4238
- const routes = [
4238
+ const routes$1 = [
4239
4239
  {
4240
4240
  path: 'klanten',
4241
4241
  component: CustomerListComponent,
@@ -4252,12 +4252,12 @@ const routes = [
4252
4252
  class CustomerRoutingModule {
4253
4253
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
4254
4254
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: CustomerRoutingModule, imports: [CommonModule, i1$2.RouterModule], exports: [RouterModule] }); }
4255
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
4255
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerRoutingModule, imports: [CommonModule, RouterModule.forChild(routes$1), RouterModule] }); }
4256
4256
  }
4257
4257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomerRoutingModule, decorators: [{
4258
4258
  type: NgModule,
4259
4259
  args: [{
4260
- imports: [CommonModule, RouterModule.forChild(routes)],
4260
+ imports: [CommonModule, RouterModule.forChild(routes$1)],
4261
4261
  exports: [RouterModule],
4262
4262
  }]
4263
4263
  }] });
@@ -4830,6 +4830,301 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
4830
4830
  * limitations under the License.
4831
4831
  */
4832
4832
 
4833
+ /*
4834
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
4835
+ *
4836
+ * Licensed under EUPL, Version 1.2 (the "License");
4837
+ * you may not use this file except in compliance with the License.
4838
+ * You may obtain a copy of the License at
4839
+ *
4840
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
4841
+ *
4842
+ * Unless required by applicable law or agreed to in writing, software
4843
+ * distributed under the License is distributed on an "AS IS" basis,
4844
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4845
+ * See the License for the specific language governing permissions and
4846
+ * limitations under the License.
4847
+ */
4848
+ class FailedNotificationDetailComponent {
4849
+ constructor() {
4850
+ this.open = false;
4851
+ this.notification = null;
4852
+ this.retryInProgress = false;
4853
+ this.closeModalEvent = new EventEmitter();
4854
+ this.retryEvent = new EventEmitter();
4855
+ }
4856
+ onClose() {
4857
+ this.closeModalEvent.emit();
4858
+ }
4859
+ onRetry() {
4860
+ if (!this.retryInProgress)
4861
+ this.retryEvent.emit();
4862
+ }
4863
+ get formattedPayload() {
4864
+ if (!this.notification?.payload)
4865
+ return '';
4866
+ try {
4867
+ return JSON.stringify(JSON.parse(this.notification.payload), null, 2);
4868
+ }
4869
+ catch (error) {
4870
+ return this.notification.payload;
4871
+ }
4872
+ }
4873
+ formatDateValue(value) {
4874
+ if (!value)
4875
+ return '-';
4876
+ try {
4877
+ return moment(value).locale(localStorage.getItem('langKey') ?? 'nl').format('DD-MM-YYYY, HH:mm:ss');
4878
+ }
4879
+ catch (error) {
4880
+ return value;
4881
+ }
4882
+ }
4883
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FailedNotificationDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4884
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FailedNotificationDetailComponent, isStandalone: true, selector: "valtimo-notificaties-api-failed-notification-detail", inputs: { open: "open", notification: "notification", retryInProgress: "retryInProgress" }, outputs: { closeModalEvent: "closeModalEvent", retryEvent: "retryEvent" }, ngImport: i0, template: "<cds-modal [open]=\"open\" size=\"lg\" valtimoCdsModal>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onClose()\">\n {{ 'zgw.notifications.failed.detail.title' | translate }}\n </cds-modal-header>\n\n <section cdsModalContent class=\"failed-notification-detail__content\">\n <h4 class=\"detail-heading\">\n {{ 'zgw.notifications.failed.detail.metadataTitle' | translate }}\n </h4>\n\n <dl class=\"detail-metadata\">\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.status' | translate }}</dt>\n <dd>{{ notification?.status || '-' }}</dd>\n </div>\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.pendingRetries' | translate }}</dt>\n <dd>{{ notification?.pendingRetries ?? '-' }}</dd>\n </div>\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.receivedAt' | translate }}</dt>\n <dd>{{ formatDateValue(notification?.receivedAt) }}</dd>\n </div>\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.lastProcessedAt' | translate }}</dt>\n <dd>{{ formatDateValue(notification?.lastProcessedAt) }}</dd>\n </div>\n </dl>\n\n <h4 class=\"detail-heading\">\n {{ 'zgw.notifications.failed.detail.payloadTitle' | translate }}\n </h4>\n <div class=\"detail-block\" *ngIf=\"formattedPayload; else noPayload\">\n <pre class=\"detail-pre\">{{ formattedPayload }}</pre>\n </div>\n <ng-template #noPayload>\n <div class=\"detail-block detail-block--empty\">\n {{ 'zgw.notifications.failed.detail.noPayload' | translate }}\n </div>\n </ng-template>\n\n <h4 class=\"detail-heading\">\n {{ 'zgw.notifications.failed.detail.errorTitle' | translate }}\n </h4>\n <div class=\"detail-block\" *ngIf=\"notification?.lastErrorMessage; else noError\">\n <pre class=\"detail-pre\">{{ notification?.lastErrorMessage }}</pre>\n </div>\n <ng-template #noError>\n <div class=\"detail-block detail-block--empty\">\n {{ 'zgw.notifications.failed.detail.noError' | translate }}\n </div>\n </ng-template>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" type=\"button\" (click)=\"onClose()\">\n {{ 'interface.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n type=\"button\"\n (click)=\"onRetry()\"\n [disabled]=\"retryInProgress || !notification\"\n >\n {{ 'zgw.notifications.failed.detail.retry' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".failed-notification-detail__content{padding:32px}.detail-heading{padding-top:24px;padding-bottom:12px;color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.detail-metadata{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 24px;margin:0}.detail-metadata div{background-color:var(--cds-layer-01);border-radius:4px;padding:12px}.detail-metadata dt{color:var(--cds-text-secondary)}.detail-metadata dd{color:var(--cds-text-primary);word-break:break-word}.detail-block{background-color:var(--cds-layer-01);border-radius:4px;padding:16px;color:var(--cds-text-primary);max-height:none;overflow:visible}.detail-block--empty{color:var(--cds-text-disabled);font-style:italic}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i6.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i6.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i6.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i6.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ValtimoCdsModalDirectiveModule }, { kind: "directive", type: i3$1.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4885
+ }
4886
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FailedNotificationDetailComponent, decorators: [{
4887
+ type: Component,
4888
+ args: [{ selector: 'valtimo-notificaties-api-failed-notification-detail', standalone: true, imports: [
4889
+ CommonModule,
4890
+ TranslateModule,
4891
+ ModalModule,
4892
+ ButtonModule,
4893
+ ValtimoCdsModalDirectiveModule,
4894
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cds-modal [open]=\"open\" size=\"lg\" valtimoCdsModal>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onClose()\">\n {{ 'zgw.notifications.failed.detail.title' | translate }}\n </cds-modal-header>\n\n <section cdsModalContent class=\"failed-notification-detail__content\">\n <h4 class=\"detail-heading\">\n {{ 'zgw.notifications.failed.detail.metadataTitle' | translate }}\n </h4>\n\n <dl class=\"detail-metadata\">\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.status' | translate }}</dt>\n <dd>{{ notification?.status || '-' }}</dd>\n </div>\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.pendingRetries' | translate }}</dt>\n <dd>{{ notification?.pendingRetries ?? '-' }}</dd>\n </div>\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.receivedAt' | translate }}</dt>\n <dd>{{ formatDateValue(notification?.receivedAt) }}</dd>\n </div>\n <div>\n <dt>{{ 'zgw.notifications.failed.detail.lastProcessedAt' | translate }}</dt>\n <dd>{{ formatDateValue(notification?.lastProcessedAt) }}</dd>\n </div>\n </dl>\n\n <h4 class=\"detail-heading\">\n {{ 'zgw.notifications.failed.detail.payloadTitle' | translate }}\n </h4>\n <div class=\"detail-block\" *ngIf=\"formattedPayload; else noPayload\">\n <pre class=\"detail-pre\">{{ formattedPayload }}</pre>\n </div>\n <ng-template #noPayload>\n <div class=\"detail-block detail-block--empty\">\n {{ 'zgw.notifications.failed.detail.noPayload' | translate }}\n </div>\n </ng-template>\n\n <h4 class=\"detail-heading\">\n {{ 'zgw.notifications.failed.detail.errorTitle' | translate }}\n </h4>\n <div class=\"detail-block\" *ngIf=\"notification?.lastErrorMessage; else noError\">\n <pre class=\"detail-pre\">{{ notification?.lastErrorMessage }}</pre>\n </div>\n <ng-template #noError>\n <div class=\"detail-block detail-block--empty\">\n {{ 'zgw.notifications.failed.detail.noError' | translate }}\n </div>\n </ng-template>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" type=\"button\" (click)=\"onClose()\">\n {{ 'interface.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n type=\"button\"\n (click)=\"onRetry()\"\n [disabled]=\"retryInProgress || !notification\"\n >\n {{ 'zgw.notifications.failed.detail.retry' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".failed-notification-detail__content{padding:32px}.detail-heading{padding-top:24px;padding-bottom:12px;color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.detail-metadata{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 24px;margin:0}.detail-metadata div{background-color:var(--cds-layer-01);border-radius:4px;padding:12px}.detail-metadata dt{color:var(--cds-text-secondary)}.detail-metadata dd{color:var(--cds-text-primary);word-break:break-word}.detail-block{background-color:var(--cds-layer-01);border-radius:4px;padding:16px;color:var(--cds-text-primary);max-height:none;overflow:visible}.detail-block--empty{color:var(--cds-text-disabled);font-style:italic}\n"] }]
4895
+ }], propDecorators: { open: [{
4896
+ type: Input
4897
+ }], notification: [{
4898
+ type: Input
4899
+ }], retryInProgress: [{
4900
+ type: Input
4901
+ }], closeModalEvent: [{
4902
+ type: Output
4903
+ }], retryEvent: [{
4904
+ type: Output
4905
+ }] } });
4906
+
4907
+ /*
4908
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
4909
+ *
4910
+ * Licensed under EUPL, Version 1.2 (the "License");
4911
+ * you may not use this file except in compliance with the License.
4912
+ * You may obtain a copy of the License at
4913
+ *
4914
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
4915
+ *
4916
+ * Unless required by applicable law or agreed to in writing, software
4917
+ * distributed under the License is distributed on an "AS IS" basis,
4918
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4919
+ * See the License for the specific language governing permissions and
4920
+ * limitations under the License.
4921
+ */
4922
+ class FailedNotificationsService extends BaseApiService {
4923
+ constructor(httpClient, configService) {
4924
+ super(httpClient, configService);
4925
+ this.httpClient = httpClient;
4926
+ this.configService = configService;
4927
+ }
4928
+ getFailedNotifications(request) {
4929
+ const params = new HttpParams({
4930
+ fromObject: {
4931
+ page: request.page,
4932
+ size: request.size,
4933
+ ...(request.sort ? { sort: request.sort } : {}),
4934
+ },
4935
+ });
4936
+ return this.httpClient.get(this.getApiUrl('management/v1/notificatiesapi/inbound-events/failed'), { params });
4937
+ }
4938
+ retryFailedNotification(id) {
4939
+ return this.httpClient.post(this.getApiUrl(`management/v1/notificatiesapi/inbound-events/${id}/retry`), {});
4940
+ }
4941
+ getFailedNotificationCount() {
4942
+ return this.httpClient
4943
+ .get(this.getApiUrl('management/v1/notificatiesapi/inbound-events/failed/count'))
4944
+ .pipe(map(response => response.count ?? 0));
4945
+ }
4946
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FailedNotificationsService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4947
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FailedNotificationsService, providedIn: 'root' }); }
4948
+ }
4949
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FailedNotificationsService, decorators: [{
4950
+ type: Injectable,
4951
+ args: [{
4952
+ providedIn: 'root',
4953
+ }]
4954
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
4955
+
4956
+ /*
4957
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
4958
+ *
4959
+ * Licensed under EUPL, Version 1.2 (the "License");
4960
+ * you may not use this file except in compliance with the License.
4961
+ * You may obtain a copy of the License at
4962
+ *
4963
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
4964
+ *
4965
+ * Unless required by applicable law or agreed to in writing, software
4966
+ * distributed under the License is distributed on an "AS IS" BASIS,
4967
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4968
+ * See the License for the specific language governing permissions and
4969
+ * limitations under the License.
4970
+ */
4971
+ class FailedNotificationsPageComponent {
4972
+ constructor(failedNotificationsService, toastrService, translateService) {
4973
+ this.failedNotificationsService = failedNotificationsService;
4974
+ this.toastrService = toastrService;
4975
+ this.translateService = translateService;
4976
+ this._DEFAULT_SORT = 'receivedAt,desc';
4977
+ this.loading$ = new BehaviorSubject(false);
4978
+ this.pagination$ = new BehaviorSubject({ ...DEFAULT_PAGINATION });
4979
+ this.retryInProgress$ = new BehaviorSubject(false);
4980
+ this.selectedNotification$ = new BehaviorSubject(null);
4981
+ this._pageRequest$ = new BehaviorSubject({
4982
+ page: 0,
4983
+ size: DEFAULT_PAGINATION.size,
4984
+ sort: this._DEFAULT_SORT,
4985
+ });
4986
+ this.notifications$ = this._pageRequest$.pipe(tap(() => this.loading$.next(true)), switchMap(request => this.failedNotificationsService.getFailedNotifications(request).pipe(tap(page => {
4987
+ this.pagination$.next({
4988
+ ...this.pagination$.getValue(),
4989
+ page: request.page + 1,
4990
+ size: request.size,
4991
+ collectionSize: page.totalElements,
4992
+ });
4993
+ }), map(page => page.content), finalize(() => this.loading$.next(false)))));
4994
+ this.FIELDS = [
4995
+ {
4996
+ key: 'receivedAt',
4997
+ label: 'zgw.notifications.failed.columns.receivedAt',
4998
+ viewType: ViewType.DATE_TIME,
4999
+ },
5000
+ {
5001
+ key: 'pendingRetries',
5002
+ label: 'zgw.notifications.failed.columns.pendingRetries',
5003
+ viewType: ViewType.NUMBER,
5004
+ },
5005
+ {
5006
+ key: 'lastProcessedAt',
5007
+ label: 'zgw.notifications.failed.columns.lastProcessedAt',
5008
+ viewType: ViewType.DATE_TIME,
5009
+ },
5010
+ {
5011
+ key: 'lastErrorMessage',
5012
+ label: 'zgw.notifications.failed.columns.lastErrorMessage',
5013
+ viewType: ViewType.TEXT,
5014
+ tooltipCharLimit: 160,
5015
+ },
5016
+ ];
5017
+ }
5018
+ onPaginationClicked(page) {
5019
+ const current = this._pageRequest$.getValue();
5020
+ this._pageRequest$.next({ ...current, page: Math.max(0, page - 1) });
5021
+ }
5022
+ onPaginationSet(size) {
5023
+ const current = this._pageRequest$.getValue();
5024
+ const updated = {
5025
+ ...current,
5026
+ size,
5027
+ page: 0,
5028
+ };
5029
+ this._pageRequest$.next(updated);
5030
+ }
5031
+ onRowClicked(row) {
5032
+ const { ctrlClick: _ctrl, tags: _tags, ...notification } = row;
5033
+ this.selectedNotification$.next(notification);
5034
+ }
5035
+ onCloseModal() {
5036
+ this.selectedNotification$.next(null);
5037
+ }
5038
+ onRetry() {
5039
+ const notification = this.selectedNotification$.getValue();
5040
+ if (!notification)
5041
+ return;
5042
+ this.retryInProgress$.next(true);
5043
+ this.failedNotificationsService
5044
+ .retryFailedNotification(notification.id)
5045
+ .pipe(finalize(() => this.retryInProgress$.next(false)))
5046
+ .subscribe({
5047
+ next: () => {
5048
+ const message = this.translateService.instant('zgw.notifications.failed.retrySuccess');
5049
+ this.toastrService.success(message);
5050
+ this.selectedNotification$.next(null);
5051
+ this._pageRequest$.next({ ...this._pageRequest$.getValue() });
5052
+ },
5053
+ error: () => {
5054
+ const message = this.translateService.instant('zgw.notifications.failed.retryError');
5055
+ this.toastrService.error(message);
5056
+ },
5057
+ });
5058
+ }
5059
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FailedNotificationsPageComponent, deps: [{ token: FailedNotificationsService }, { token: i4$1.ToastrService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
5060
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FailedNotificationsPageComponent, isStandalone: true, selector: "valtimo-notificaties-api-failed-notifications-page", ngImport: i0, template: "<div class=\"failed-notifications-page\">\n <valtimo-carbon-list\n *ngIf=\"{items: notifications$ | async} as obs\"\n [items]=\"obs.items || []\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n [pagination]=\"pagination$ | async\"\n paginationIdentifier=\"zgw-notificaties-api-failed\"\n (paginationClicked)=\"onPaginationClicked($event)\"\n (paginationSet)=\"onPaginationSet($event)\"\n (rowClicked)=\"onRowClicked($event)\"\n >\n <valtimo-no-results\n [title]=\"'zgw.notifications.failed.noResults.title' | translate\"\n [description]=\"'zgw.notifications.failed.noResults.description' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-notificaties-api-failed-notification-detail\n [open]=\"(selectedNotification$ | async) !== null\"\n [notification]=\"selectedNotification$ | async\"\n [retryInProgress]=\"retryInProgress$ | async\"\n (closeModalEvent)=\"onCloseModal()\"\n (retryEvent)=\"onRetry()\"\n ></valtimo-notificaties-api-failed-notification-detail>\n</div>\n", styles: [""], 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: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3$1.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i3$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "component", type: FailedNotificationDetailComponent, selector: "valtimo-notificaties-api-failed-notification-detail", inputs: ["open", "notification", "retryInProgress"], outputs: ["closeModalEvent", "retryEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5061
+ }
5062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FailedNotificationsPageComponent, decorators: [{
5063
+ type: Component,
5064
+ args: [{ selector: 'valtimo-notificaties-api-failed-notifications-page', standalone: true, imports: [CommonModule, TranslateModule, CarbonListModule, FailedNotificationDetailComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"failed-notifications-page\">\n <valtimo-carbon-list\n *ngIf=\"{items: notifications$ | async} as obs\"\n [items]=\"obs.items || []\"\n [fields]=\"FIELDS\"\n [loading]=\"loading$ | async\"\n [pagination]=\"pagination$ | async\"\n paginationIdentifier=\"zgw-notificaties-api-failed\"\n (paginationClicked)=\"onPaginationClicked($event)\"\n (paginationSet)=\"onPaginationSet($event)\"\n (rowClicked)=\"onRowClicked($event)\"\n >\n <valtimo-no-results\n [title]=\"'zgw.notifications.failed.noResults.title' | translate\"\n [description]=\"'zgw.notifications.failed.noResults.description' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-notificaties-api-failed-notification-detail\n [open]=\"(selectedNotification$ | async) !== null\"\n [notification]=\"selectedNotification$ | async\"\n [retryInProgress]=\"retryInProgress$ | async\"\n (closeModalEvent)=\"onCloseModal()\"\n (retryEvent)=\"onRetry()\"\n ></valtimo-notificaties-api-failed-notification-detail>\n</div>\n" }]
5065
+ }], ctorParameters: () => [{ type: FailedNotificationsService }, { type: i4$1.ToastrService }, { type: i3.TranslateService }] });
5066
+
5067
+ /*
5068
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
5069
+ *
5070
+ * Licensed under EUPL, Version 1.2 (the "License");
5071
+ * you may not use this file except in compliance with the License.
5072
+ * You may obtain a copy of the License at
5073
+ *
5074
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
5075
+ *
5076
+ * Unless required by applicable law or agreed to in writing, software
5077
+ * distributed under the License is distributed on an "AS IS" basis,
5078
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5079
+ * See the License for the specific language governing permissions and
5080
+ * limitations under the License.
5081
+ */
5082
+ var NotificatiesApiInboundEventStatus;
5083
+ (function (NotificatiesApiInboundEventStatus) {
5084
+ NotificatiesApiInboundEventStatus["RECEIVED"] = "RECEIVED";
5085
+ NotificatiesApiInboundEventStatus["PROCESSED"] = "PROCESSED";
5086
+ NotificatiesApiInboundEventStatus["FAILED"] = "FAILED";
5087
+ })(NotificatiesApiInboundEventStatus || (NotificatiesApiInboundEventStatus = {}));
5088
+
5089
+ /*
5090
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
5091
+ *
5092
+ * Licensed under EUPL, Version 1.2 (the "License");
5093
+ * you may not use this file except in compliance with the License.
5094
+ * You may obtain a copy of the License at
5095
+ *
5096
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
5097
+ *
5098
+ * Unless required by applicable law or agreed to in writing, software
5099
+ * distributed under the License is distributed on an "AS IS" BASIS,
5100
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5101
+ * See the License for the specific language governing permissions and
5102
+ * limitations under the License.
5103
+ */
5104
+ const routes = [
5105
+ {
5106
+ path: 'notifications-api/notifications/failed',
5107
+ component: FailedNotificationsPageComponent,
5108
+ canActivate: [AuthGuardService],
5109
+ data: {
5110
+ title: 'zgw.notifications.failed.pageTitle',
5111
+ roles: [ROLE_ADMIN],
5112
+ },
5113
+ },
5114
+ ];
5115
+ class NotificatiesApiRoutingModule {
5116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificatiesApiRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5117
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NotificatiesApiRoutingModule, imports: [CommonModule, i1$2.RouterModule], exports: [RouterModule] }); }
5118
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificatiesApiRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
5119
+ }
5120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotificatiesApiRoutingModule, decorators: [{
5121
+ type: NgModule,
5122
+ args: [{
5123
+ imports: [CommonModule, RouterModule.forChild(routes)],
5124
+ exports: [RouterModule],
5125
+ }]
5126
+ }] });
5127
+
4833
5128
  /*
4834
5129
  * Copyright 2015-2024 Ritense BV, the Netherlands.
4835
5130
  *
@@ -5020,7 +5315,8 @@ class ZgwModule {
5020
5315
  ResourceModule,
5021
5316
  RouterModule,
5022
5317
  DocumentenApiMetadataModalComponent,
5023
- CustomerModule], exports: [DocumentenApiUploaderComponent] }); }
5318
+ CustomerModule,
5319
+ NotificatiesApiRoutingModule], exports: [DocumentenApiUploaderComponent] }); }
5024
5320
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ZgwModule, providers: [
5025
5321
  {
5026
5322
  provide: CASE_MANAGEMENT_TAB_TOKEN,
@@ -5056,7 +5352,8 @@ class ZgwModule {
5056
5352
  ResourceModule,
5057
5353
  RouterModule,
5058
5354
  DocumentenApiMetadataModalComponent,
5059
- CustomerModule] }); }
5355
+ CustomerModule,
5356
+ NotificatiesApiRoutingModule] }); }
5060
5357
  }
5061
5358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ZgwModule, decorators: [{
5062
5359
  type: NgModule,
@@ -5072,6 +5369,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
5072
5369
  RouterModule,
5073
5370
  DocumentenApiMetadataModalComponent,
5074
5371
  CustomerModule,
5372
+ NotificatiesApiRoutingModule,
5075
5373
  ],
5076
5374
  declarations: [DocumentenApiUploaderComponent],
5077
5375
  exports: [DocumentenApiUploaderComponent],
@@ -5128,5 +5426,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
5128
5426
  * Generated bundle index. Do not edit.
5129
5427
  */
5130
5428
 
5131
- export { COLUMN_VIEW_TYPES, CONFIDENTIALITY_LEVELS, CasesListComponent, ContactMomentService, CustomerListComponent, CustomerModule, CustomerService, DOCUMENTEN_COLUMN_KEYS, DocumentObjectenApiSyncComponent, DocumentObjectenApiSyncService, DocumentenApiColumnModalComponent, DocumentenApiColumnService, DocumentenApiColumnsComponent, DocumentenApiDocumentService, DocumentenApiFilterComponent, DocumentenApiLinkProcessService, DocumentenApiMetadataModalComponent, DocumentenApiTagModalComponent, DocumentenApiTagService, DocumentenApiTagsComponent, DocumentenApiUploadFieldModalComponent, DocumentenApiUploadFieldsComponent, DocumentenApiUploaderComponent, DocumentenApiVersionComponent, DocumentenApiVersionService, DossierDetailTabContactMomentsComponent, DossierDetailTabDocumentenApiDocumentsComponent, DossierDetailTabObjectTypeComponent, DossierDetailTabZaakobjectenComponent, DossierManagementLinkProcessComponent, DossierManagementZgwComponent, DossierManagementZgwService, LANGUAGE_ITEMS, STATUS_ITEMS, ZaakobjectenService, ZakenApiZaaktypeLinkComponent, ZakenApiZaaktypeLinkService, ZgwModule, ZgwTabEnum, customDocumentApiUploaderType, documentenApiUploaderEditForm, registerDocumentenApiFormioUploadComponent };
5429
+ export { COLUMN_VIEW_TYPES, CONFIDENTIALITY_LEVELS, CasesListComponent, ContactMomentService, CustomerListComponent, CustomerModule, CustomerService, DOCUMENTEN_COLUMN_KEYS, DocumentObjectenApiSyncComponent, DocumentObjectenApiSyncService, DocumentenApiColumnModalComponent, DocumentenApiColumnService, DocumentenApiColumnsComponent, DocumentenApiDocumentService, DocumentenApiFilterComponent, DocumentenApiLinkProcessService, DocumentenApiMetadataModalComponent, DocumentenApiTagModalComponent, DocumentenApiTagService, DocumentenApiTagsComponent, DocumentenApiUploadFieldModalComponent, DocumentenApiUploadFieldsComponent, DocumentenApiUploaderComponent, DocumentenApiVersionComponent, DocumentenApiVersionService, DossierDetailTabContactMomentsComponent, DossierDetailTabDocumentenApiDocumentsComponent, DossierDetailTabObjectTypeComponent, DossierDetailTabZaakobjectenComponent, DossierManagementLinkProcessComponent, DossierManagementZgwComponent, DossierManagementZgwService, FailedNotificationDetailComponent, FailedNotificationsPageComponent, FailedNotificationsService, LANGUAGE_ITEMS, NotificatiesApiInboundEventStatus, NotificatiesApiRoutingModule, STATUS_ITEMS, ZaakobjectenService, ZakenApiZaaktypeLinkComponent, ZakenApiZaaktypeLinkService, ZgwModule, ZgwTabEnum, customDocumentApiUploaderType, documentenApiUploaderEditForm, registerDocumentenApiFormioUploadComponent };
5132
5430
  //# sourceMappingURL=valtimo-zgw.mjs.map