@valtimo/zgw 13.52.0 → 13.54.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/valtimo-zgw.mjs +91 -11
- package/fesm2022/valtimo-zgw.mjs.map +1 -1
- package/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.d.ts +6 -2
- package/lib/modules/documenten-api/components/documenten-api-documents/documenten-api-documents.component.d.ts.map +1 -1
- package/lib/modules/documenten-api/models/document-action-item.model.d.ts +12 -0
- package/lib/modules/documenten-api/models/document-action-item.model.d.ts.map +1 -0
- package/lib/modules/documenten-api/models/index.d.ts +1 -0
- package/lib/modules/documenten-api/models/index.d.ts.map +1 -1
- package/lib/modules/documenten-api/services/documenten-api-preview.service.d.ts.map +1 -1
- package/package.json +1 -1
package/fesm2022/valtimo-zgw.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i4 from '@angular/common';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Injectable, EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ViewChild, signal, HostListener, NgModule, ViewContainerRef, computed } from '@angular/core';
|
|
4
|
+
import { Injectable, EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ViewChild, InjectionToken, signal, Optional, Inject, HostListener, NgModule, ViewContainerRef, computed } from '@angular/core';
|
|
5
5
|
import * as i5 from '@ngx-translate/core';
|
|
6
6
|
import { TranslateModule } from '@ngx-translate/core';
|
|
7
7
|
import { CaseManagementDraftWarningComponent } from '@valtimo/case-management';
|
|
@@ -9,14 +9,14 @@ import * as i2 from '@valtimo/shared';
|
|
|
9
9
|
import { BaseApiService, InterceptorSkipHeader, getCaseManagementRouteParams, UploadProvider, ROLE_ADMIN, zgwFeaturesGuard, ConfigService, CASE_MANAGEMENT_TAB_TOKEN, ZGW_OBJECT_TYPE_COMPONENT_TOKEN, ZGW_DOCUMENTEN_API_DOCUMENTS_COMPONENT_TOKEN, CASE_CONFIGURATION_EXTENSIONS_TOKEN } from '@valtimo/shared';
|
|
10
10
|
import * as i6 from 'carbon-components-angular';
|
|
11
11
|
import { ModalModule, InputModule, ButtonModule, DropdownModule, RadioModule, NotificationModule, LayerModule, TagModule, IconModule, DatePickerInputModule, DatePickerModule, ComboBoxModule, TooltipModule, ToggleModule, LoadingModule, ToggletipModule, CheckboxModule, TilesModule, SelectModule as SelectModule$1, TabsModule, AccordionModule, StructuredListModule } from 'carbon-components-angular';
|
|
12
|
-
import {
|
|
12
|
+
import { BehaviorSubject, combineLatest, map, Subscription, switchMap, filter, tap, startWith, debounceTime, Subject, take as take$1, of, catchError, from, ReplaySubject, throwError, finalize, EMPTY, distinctUntilChanged, forkJoin } from 'rxjs';
|
|
13
13
|
import * as i1$1 from '@angular/forms';
|
|
14
14
|
import { Validators, ReactiveFormsModule, FormGroup, FormControl, FormsModule } from '@angular/forms';
|
|
15
15
|
import * as i3 from '@valtimo/components';
|
|
16
16
|
import { CARBON_CONSTANTS, ValtimoCdsModalDirective, ViewType, CarbonListModule, ConfirmationModalModule, InputLabelModule, InputModule as InputModule$1, SelectModule, VModalModule, DEFAULT_PAGINATION, DEFAULT_PAGINATOR_CONFIG, OverflowMenuComponent, CarbonListComponent, registerCustomFormioComponent, ParagraphModule, TableModule, FormIoModule, FormModule, SpinnerModule, RenderInBodyComponent, MuuriDirectiveModule, JsonEditorComponent, DropzoneModule, FileSizeModule } from '@valtimo/components';
|
|
17
17
|
import * as i1 from '@angular/common/http';
|
|
18
18
|
import { HttpParams } from '@angular/common/http';
|
|
19
|
-
import { take, tap as tap$1, map as map$1, filter as filter$1, switchMap as switchMap$1, catchError as catchError$1, shareReplay } from 'rxjs/operators';
|
|
19
|
+
import { take, tap as tap$1, map as map$1, filter as filter$1, switchMap as switchMap$1, catchError as catchError$1, shareReplay, retry } from 'rxjs/operators';
|
|
20
20
|
import * as i1$2 from '@angular/router';
|
|
21
21
|
import { RouterModule } from '@angular/router';
|
|
22
22
|
import { TrashCan16, Filter16, TagGroup16, Upload16, Edit16, WarningFilled16, Save16, Copy16, Launch16, WarningAltFilled16 } from '@carbon/icons';
|
|
@@ -257,8 +257,7 @@ class DocumentenApiPreviewService extends BaseApiService {
|
|
|
257
257
|
}
|
|
258
258
|
canGeneratePreview(documentenApiPluginConfigurationId) {
|
|
259
259
|
return this.httpClient
|
|
260
|
-
.get(this.getApiUrl(`v1/documenten-api-preview/configuration-exists/${documentenApiPluginConfigurationId}`), { headers: InterceptorSkipHeader })
|
|
261
|
-
.pipe(catchError(() => of(false)));
|
|
260
|
+
.get(this.getApiUrl(`v1/documenten-api-preview/configuration-exists/${documentenApiPluginConfigurationId}`), { headers: InterceptorSkipHeader });
|
|
262
261
|
}
|
|
263
262
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: DocumentenApiPreviewService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
264
263
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: DocumentenApiPreviewService, providedIn: 'root' }); }
|
|
@@ -817,6 +816,31 @@ const COLUMN_VIEW_TYPES = {
|
|
|
817
816
|
* limitations under the License.
|
|
818
817
|
*/
|
|
819
818
|
|
|
819
|
+
/*
|
|
820
|
+
* Copyright 2015-2026 Ritense BV, the Netherlands.
|
|
821
|
+
*
|
|
822
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
823
|
+
* you may not use this file except in compliance with the License.
|
|
824
|
+
* You may obtain a copy of the License at
|
|
825
|
+
*
|
|
826
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
827
|
+
*
|
|
828
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
829
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
830
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
831
|
+
* See the License for the specific language governing permissions and
|
|
832
|
+
* limitations under the License.
|
|
833
|
+
*/
|
|
834
|
+
/**
|
|
835
|
+
* Multi-provider token that external plugins use to contribute their own overflow-menu action
|
|
836
|
+
* (e.g. an "edit content" action backed by a document-editing plugin) to the case document list,
|
|
837
|
+
* without the list itself depending on which plugins are installed. Each provider entry
|
|
838
|
+
* (`{provide: DOCUMENT_ACTION_ITEM_TOKEN, useValue: ..., multi: true}`) contributes one ActionItem;
|
|
839
|
+
* the documents component merges all contributed items into its own fixed action list. The item's
|
|
840
|
+
* callback/disabled$/hidden$ receive the row's `DocumentenApiRelatedFile`.
|
|
841
|
+
*/
|
|
842
|
+
const DOCUMENT_ACTION_ITEM_TOKEN = new InjectionToken('DOCUMENT_ACTION_ITEM_TOKEN');
|
|
843
|
+
|
|
820
844
|
/*
|
|
821
845
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
822
846
|
*
|
|
@@ -1676,11 +1700,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
1676
1700
|
* See the License for the specific language governing permissions and
|
|
1677
1701
|
* limitations under the License.
|
|
1678
1702
|
*/
|
|
1703
|
+
const PREVIEW_CHECK_RETRY_COUNT = 3;
|
|
1704
|
+
const PREVIEW_CHECK_RETRY_DELAY_MS = 2000;
|
|
1679
1705
|
class CaseDetailTabDocumentenApiDocumentsComponent {
|
|
1680
1706
|
get filePermissions() {
|
|
1681
1707
|
return this.filePermissions$.getValue();
|
|
1682
1708
|
}
|
|
1683
|
-
constructor(configService, documentenApiColumnService, documentenApiDocumentService, documentenApiPreviewService, documentenApiVersionService, documentService, downloadService, iconService, permissionService, route, router, translateService, uploadProviderService, userProviderService) {
|
|
1709
|
+
constructor(configService, documentenApiColumnService, documentenApiDocumentService, documentenApiPreviewService, documentenApiVersionService, documentService, downloadService, iconService, permissionService, route, router, translateService, uploadProviderService, userProviderService, pluginDocumentActionItems) {
|
|
1684
1710
|
this.configService = configService;
|
|
1685
1711
|
this.documentenApiColumnService = documentenApiColumnService;
|
|
1686
1712
|
this.documentenApiDocumentService = documentenApiDocumentService;
|
|
@@ -1695,6 +1721,7 @@ class CaseDetailTabDocumentenApiDocumentsComponent {
|
|
|
1695
1721
|
this.translateService = translateService;
|
|
1696
1722
|
this.uploadProviderService = uploadProviderService;
|
|
1697
1723
|
this.userProviderService = userProviderService;
|
|
1724
|
+
this.pluginDocumentActionItems = pluginDocumentActionItems;
|
|
1698
1725
|
this._caseDefinitionKey$ = this.route.params.pipe(map$1(params => params?.caseDefinitionKey ?? ''), filter$1((caseDefinitionKey) => !!caseDefinitionKey));
|
|
1699
1726
|
this._caseSettings$ = this._caseDefinitionKey$.pipe(switchMap$1((caseDefinitionKey) => this.documentService.getCaseSettings(caseDefinitionKey)));
|
|
1700
1727
|
this.supportedDocumentenApiFeatures$ = new BehaviorSubject(null);
|
|
@@ -1727,6 +1754,7 @@ class CaseDetailTabDocumentenApiDocumentsComponent {
|
|
|
1727
1754
|
label: 'document.preview',
|
|
1728
1755
|
callback: this.onPreviewActionClick.bind(this),
|
|
1729
1756
|
disabled$: this.previewDisabled.bind(this),
|
|
1757
|
+
hidden$: this.previewHidden.bind(this),
|
|
1730
1758
|
type: 'normal',
|
|
1731
1759
|
},
|
|
1732
1760
|
{
|
|
@@ -1838,8 +1866,24 @@ class CaseDetailTabDocumentenApiDocumentsComponent {
|
|
|
1838
1866
|
identifier: documentId,
|
|
1839
1867
|
})));
|
|
1840
1868
|
this._subscriptions = new Subscription();
|
|
1869
|
+
// The document list of a case (zaak) can contain documents from different Documenten APIs, so
|
|
1870
|
+
// checking if the preview feature is supported needs to be done per each file's
|
|
1871
|
+
// pluginConfigurationId - this cache just makes sure that, for a given configId, the
|
|
1872
|
+
// "is preview supported" HTTP check fires once and is shared by every row (and by both the
|
|
1873
|
+
// disabled$ and hidden$ callbacks) instead of once per row per callback.
|
|
1874
|
+
//
|
|
1875
|
+
// A confirmed "unsupported" response (no preview plugin configured for this Documenten API) is
|
|
1876
|
+
// kept distinct from a failed check (network error, backend down, ...): collapsing both into one
|
|
1877
|
+
// boolean would silently hide "Preview" on a transient failure, with no way for an
|
|
1878
|
+
// already-rendered row to recover other than an unrelated table refetch.
|
|
1879
|
+
this.canGeneratePreviewCache = new Map();
|
|
1841
1880
|
this.iconService.register(Filter16);
|
|
1842
1881
|
this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;
|
|
1882
|
+
// Plugins (e.g. a document-editing plugin) contribute their own row action through the
|
|
1883
|
+
// DOCUMENT_ACTION_ITEM_TOKEN multi-provider token instead of this component knowing about them.
|
|
1884
|
+
if (this.pluginDocumentActionItems) {
|
|
1885
|
+
this.actionItems = [...this.actionItems, ...this.pluginDocumentActionItems];
|
|
1886
|
+
}
|
|
1843
1887
|
}
|
|
1844
1888
|
ngOnInit() {
|
|
1845
1889
|
this.setInitialParams();
|
|
@@ -2033,11 +2077,42 @@ class CaseDetailTabDocumentenApiDocumentsComponent {
|
|
|
2033
2077
|
refetchDocuments() {
|
|
2034
2078
|
this._refetch$.next(null);
|
|
2035
2079
|
}
|
|
2080
|
+
previewSupportStatus$(pluginConfigurationId) {
|
|
2081
|
+
if (!this.canGeneratePreviewCache.has(pluginConfigurationId)) {
|
|
2082
|
+
this.canGeneratePreviewCache.set(pluginConfigurationId, this.documentenApiPreviewService
|
|
2083
|
+
.canGeneratePreview(pluginConfigurationId)
|
|
2084
|
+
.pipe(map$1((supported) => (supported ? 'supported' : 'unsupported')),
|
|
2085
|
+
// A 404 means the documenten-api-preview module isn't deployed on this Valtimo
|
|
2086
|
+
// instance at all, which is itself a confirmed "no preview available" - not a
|
|
2087
|
+
// transient failure, so it shouldn't go through the retry path below.
|
|
2088
|
+
catchError$1((error) => error.status === 404
|
|
2089
|
+
? of('unsupported')
|
|
2090
|
+
: throwError(() => error)),
|
|
2091
|
+
// Retry transient failures a few times before giving up, so a brief blip resolves
|
|
2092
|
+
// silently for rows that are already subscribed instead of immediately reading as
|
|
2093
|
+
// "unsupported".
|
|
2094
|
+
retry({ count: PREVIEW_CHECK_RETRY_COUNT, delay: PREVIEW_CHECK_RETRY_DELAY_MS }), catchError$1(() => {
|
|
2095
|
+
// Don't cache a failure as "unsupported" - evict so a later row render (e.g. once
|
|
2096
|
+
// the backend recovers) checks again instead of permanently treating this
|
|
2097
|
+
// Documenten API as having no preview plugin configured.
|
|
2098
|
+
this.canGeneratePreviewCache.delete(pluginConfigurationId);
|
|
2099
|
+
return of('error');
|
|
2100
|
+
}), shareReplay(1)));
|
|
2101
|
+
}
|
|
2102
|
+
return this.canGeneratePreviewCache.get(pluginConfigurationId);
|
|
2103
|
+
}
|
|
2104
|
+
// Only hidden on a confirmed "unsupported" response. On 'error' the action stays visible (and,
|
|
2105
|
+
// if the user is otherwise allowed to view the document, enabled) so the user has a way to
|
|
2106
|
+
// retry: clicking it attempts the real preview, which is its own, immediate signal of whether it
|
|
2107
|
+
// actually works.
|
|
2108
|
+
previewHidden(file) {
|
|
2109
|
+
return this.previewSupportStatus$(file?.pluginConfigurationId).pipe(map$1(status => status === 'unsupported'));
|
|
2110
|
+
}
|
|
2036
2111
|
previewDisabled(file) {
|
|
2037
2112
|
return combineLatest([
|
|
2038
|
-
this.
|
|
2113
|
+
this.previewSupportStatus$(file?.pluginConfigurationId),
|
|
2039
2114
|
this.filePermissions$,
|
|
2040
|
-
]).pipe(map$1(([
|
|
2115
|
+
]).pipe(map$1(([status, permissions]) => status === 'unsupported' || !permissions[file.fileId]?.canView));
|
|
2041
2116
|
}
|
|
2042
2117
|
downloadDisabled(file) {
|
|
2043
2118
|
return this.filePermissions$.pipe(map$1(permissions => !permissions[file.fileId]?.canView));
|
|
@@ -2124,7 +2199,7 @@ class CaseDetailTabDocumentenApiDocumentsComponent {
|
|
|
2124
2199
|
return this.permissionService.requestPermission(permissionRequest, context);
|
|
2125
2200
|
}));
|
|
2126
2201
|
}
|
|
2127
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseDetailTabDocumentenApiDocumentsComponent, deps: [{ token: i2.ConfigService }, { token: DocumentenApiColumnService }, { token: DocumentenApiDocumentService }, { token: DocumentenApiPreviewService }, { token: DocumentenApiVersionService }, { token: i4$1.DocumentService }, { token: i4$2.DownloadService }, { token: i6.IconService }, { token: i6$1.PermissionService }, { token: i1$2.ActivatedRoute }, { token: i1$2.Router }, { token: i5.TranslateService }, { token: i4$2.UploadProviderService }, { token: i9.UserProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2202
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseDetailTabDocumentenApiDocumentsComponent, deps: [{ token: i2.ConfigService }, { token: DocumentenApiColumnService }, { token: DocumentenApiDocumentService }, { token: DocumentenApiPreviewService }, { token: DocumentenApiVersionService }, { token: i4$1.DocumentService }, { token: i4$2.DownloadService }, { token: i6.IconService }, { token: i6$1.PermissionService }, { token: i1$2.ActivatedRoute }, { token: i1$2.Router }, { token: i5.TranslateService }, { token: i4$2.UploadProviderService }, { token: i9.UserProviderService }, { token: DOCUMENT_ACTION_ITEM_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2128
2203
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: CaseDetailTabDocumentenApiDocumentsComponent, isStandalone: true, selector: "valtimo-case-detail-tab-documenten-api-documents", viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "translationTemplate", first: true, predicate: ["translationTemplate"], descendants: true }], 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<div\n class=\"carbon-document-table-wrapper\"\n *ngIf=\"{\n loading: loading$ | async,\n fieldsLoading: fieldsLoading$ | async,\n uploading: uploading$ | async,\n relatedFiles: relatedFiles$ | async,\n fields: fields$ | async,\n supportedDocumentenApiFeatures: supportedDocumentenApiFeatures$ | async,\n pagination: pagination$ | async,\n sortState: sortState$ | async,\n uploadFields: uploadFields$ | async,\n defaultValues: defaultValues$ | async,\n hideFields: hideFields$ | async,\n } as obs\"\n>\n @if ((!obs.fieldsLoading && obs.fields.length) || obs.fieldsLoading) {\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.relatedFiles\"\n [fields]=\"obs.fields\"\n [initialSortState]=\"obs.sortState\"\n [loading]=\"obs.loading\"\n [pagination]=\"obs.pagination\"\n [paginatorConfig]=\"paginatorConfig\"\n paginationIdentifier=\"documentenApi\"\n (rowClicked)=\"onRowClick($event)\"\n (sortChanged)=\"\n obs?.supportedDocumentenApiFeatures?.supportsSortableColumns && onSortChanged($event)\n \"\n (paginationClicked)=\"onPaginationClicked($event)\"\n (paginationSet)=\"onPaginationSet($event)\"\n hideColumnHeader\n >\n <div carbonToolbarContent>\n <input\n [accept]=\"acceptedFiles\"\n (change)=\"onFileSelected($event)\"\n hidden\n type=\"file\"\n #fileInput\n />\n\n <v-overflow-menu\n *ngIf=\"obs?.supportedDocumentenApiFeatures?.supportsFilterableColumns\"\n placement=\"bottom-end\"\n [closeOnSelect]=\"false\"\n [portalToBody]=\"true\"\n >\n <button overflowTrigger cdsButton=\"ghost\">\n <svg cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n\n <div overflowPane>\n <ng-container *ngTemplateOutlet=\"overflowFilter\"></ng-container>\n </div>\n </v-overflow-menu>\n\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"noResults\"></ng-container>\n </valtimo-carbon-list>\n } @else {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n }\n\n <valtimo-documenten-api-metadata-modal\n [defaultValues]=\"obs.defaultValues\"\n [disableAuthor]=\"obs.uploadFields?.auteur?.readonly\"\n [disableConfidentialityLevel]=\"obs.uploadFields?.vertrouwelijkheidaanduiding?.readonly\"\n [disableCreationDate]=\"obs.uploadFields?.creatiedatum?.readonly\"\n [disableDescription]=\"obs.uploadFields?.beschrijving?.readonly\"\n [disableDocumentTitle]=\"obs.uploadFields?.titel?.readonly\"\n [disableDocumentType]=\"obs.uploadFields?.informatieobjecttype?.readonly\"\n [disableFilename]=\"obs.uploadFields?.bestandsnaam?.readonly\"\n [disableLanguage]=\"obs.uploadFields?.taal?.readonly\"\n [disableStatus]=\"obs.uploadFields?.status?.readonly\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hideFields]=\"obs.hideFields\"\n [isEditMode]=\"isEditMode$ | async\"\n [open]=\"showUploadModal$ | async\"\n [supportsTrefwoorden]=\"obs?.supportedDocumentenApiFeatures?.supportsTrefwoorden\"\n [uploadError]=\"uploadError()\"\n [uploading]=\"obs.uploading\"\n (metadata)=\"metadataSet($event)\"\n (modalClose)=\"closeMetadataModal()\"\n (uploadErrorDismiss)=\"uploadError.set(null)\"\n ></valtimo-documenten-api-metadata-modal>\n\n <valtimo-documenten-api-preview-modal\n [showModalSubject$]=\"showPreviewModal$\"\n [relatedFile$]=\"documentToPreview$\"\n [caseDocumentId$]=\"documentId$\"\n (modalClose)=\"closePreviewModal()\"\n ></valtimo-documenten-api-preview-modal>\n</div>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dashboardManagement.deleteModal.confirm\"\n contentTranslationKey=\"case.documenten.deleteConfirmationModal.content\"\n confirmButtonType=\"danger\"\n titleTranslationKey=\"case.documenten.deleteConfirmationModal.title\"\n [showModalSubject$]=\"showDeleteConfirmationModal$\"\n (confirmEvent)=\"deleteDocument()\"\n>\n</valtimo-confirmation-modal>\n\n<ng-template #noResults>\n @if ((filter$ | async | keyvalue)?.length) {\n <valtimo-no-results\n [action]=\"resetFilterButton\"\n [description]=\"'zgw.documents.noResults.filterDescription' | translate\"\n [title]=\"'zgw.documents.noResults.filterTitle' | translate\"\n ></valtimo-no-results>\n } @else if (showZaakLinkWarning && isAdmin) {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'case.documenten.noZaakFound' | translate\"\n [title]=\"'case.documenten.noZaakFoundTitle' | translate\"\n ></valtimo-no-results>\n } @else {\n <valtimo-no-results\n [action]=\"uploadButton\"\n [description]=\"'case.documenten.noFiles' | translate\"\n [title]=\"'case.documenten.noFilesTitle' | translate\"\n ></valtimo-no-results>\n }\n</ng-template>\n\n<ng-template #overflowFilter>\n <valtimo-case-detail-tab-documenten-api-filter\n [prefillFilter]=\"filter$ | async\"\n (filterEvent)=\"onFilterEvent($event)\"\n ></valtimo-case-detail-tab-documenten-api-filter>\n</ng-template>\n\n<ng-template #resetFilterButton>\n <button cdsButton=\"primary\" (click)=\"onFilterEvent(null)\">\n {{ 'Reset filter' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #uploadButton let-disabled=\"disabled\">\n <button\n [disabled]=\"\n (uploadProcessLinkedSet && !uploadProcessLinked) ||\n showZaakLinkWarning ||\n disabled ||\n (canCreateResource$ | async) === false\n \"\n [vTooltip]=\"getUploadButtonTooltip() | translate\"\n (click)=\"onUploadButtonClick()\"\n cdsButton=\"primary\"\n >\n {{ 'Upload' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #translationTemplate let-data=\"data\">\n @if (data.item[data.key]) {\n {{ 'document.' + data.item[data.key] | translate }}\n } @else {\n -\n }\n</ng-template>\n\n<ng-template #navigateToCaseAdminButton>\n <button (click)=\"onNavigateToCaseAdminClick()\" cdsButton=\"primary\">\n {{ 'case.documenten.navigateToCaseAdmin' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"settings\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: [".hidden{display:none}.loading-container{padding:var(--cds-grid-margin);display:flex;align-items:center;justify-content:center}.carbon-document-table-wrapper{margin:0}.documenten-api-documents-filesize-template{text-align:right}\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: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3.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: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "component", type: DocumentenApiMetadataModalComponent, selector: "valtimo-documenten-api-metadata-modal", inputs: ["disabled$", "file$", "hideFields", "defaultValues", "disableAuthor", "disableConfidentialityLevel", "disableDescription", "disableDocumentTitle", "disableDocumentType", "disableFilename", "disableLanguage", "disableStatus", "supportsTrefwoorden", "disableCreationDate", "isEditMode", "uploadError", "uploading", "open"], outputs: ["metadata", "modalClose", "uploadErrorDismiss"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i6.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: DocumentenApiFilterComponent, selector: "valtimo-case-detail-tab-documenten-api-filter", outputs: ["filterEvent"] }, { kind: "component", type: OverflowMenuComponent, selector: "v-overflow-menu", inputs: ["open", "placement", "menuWidth", "offsetX", "offsetY", "closeOnSelect", "useHostAsReference", "portalToBody"], outputs: ["openChange"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i3.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: DocumentenApiPreviewModalComponent, selector: "valtimo-documenten-api-preview-modal", inputs: ["caseDefinitionKey", "caseDocumentId$", "showModalSubject$", "relatedFile$"], outputs: ["modalClose"] }] }); }
|
|
2129
2204
|
}
|
|
2130
2205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseDetailTabDocumentenApiDocumentsComponent, decorators: [{
|
|
@@ -2141,7 +2216,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
2141
2216
|
ConfirmationModalModule,
|
|
2142
2217
|
DocumentenApiPreviewModalComponent,
|
|
2143
2218
|
], 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<div\n class=\"carbon-document-table-wrapper\"\n *ngIf=\"{\n loading: loading$ | async,\n fieldsLoading: fieldsLoading$ | async,\n uploading: uploading$ | async,\n relatedFiles: relatedFiles$ | async,\n fields: fields$ | async,\n supportedDocumentenApiFeatures: supportedDocumentenApiFeatures$ | async,\n pagination: pagination$ | async,\n sortState: sortState$ | async,\n uploadFields: uploadFields$ | async,\n defaultValues: defaultValues$ | async,\n hideFields: hideFields$ | async,\n } as obs\"\n>\n @if ((!obs.fieldsLoading && obs.fields.length) || obs.fieldsLoading) {\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.relatedFiles\"\n [fields]=\"obs.fields\"\n [initialSortState]=\"obs.sortState\"\n [loading]=\"obs.loading\"\n [pagination]=\"obs.pagination\"\n [paginatorConfig]=\"paginatorConfig\"\n paginationIdentifier=\"documentenApi\"\n (rowClicked)=\"onRowClick($event)\"\n (sortChanged)=\"\n obs?.supportedDocumentenApiFeatures?.supportsSortableColumns && onSortChanged($event)\n \"\n (paginationClicked)=\"onPaginationClicked($event)\"\n (paginationSet)=\"onPaginationSet($event)\"\n hideColumnHeader\n >\n <div carbonToolbarContent>\n <input\n [accept]=\"acceptedFiles\"\n (change)=\"onFileSelected($event)\"\n hidden\n type=\"file\"\n #fileInput\n />\n\n <v-overflow-menu\n *ngIf=\"obs?.supportedDocumentenApiFeatures?.supportsFilterableColumns\"\n placement=\"bottom-end\"\n [closeOnSelect]=\"false\"\n [portalToBody]=\"true\"\n >\n <button overflowTrigger cdsButton=\"ghost\">\n <svg cdsIcon=\"filter\" size=\"16\"></svg>\n </button>\n\n <div overflowPane>\n <ng-container *ngTemplateOutlet=\"overflowFilter\"></ng-container>\n </div>\n </v-overflow-menu>\n\n <ng-container *ngTemplateOutlet=\"uploadButton\"></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"noResults\"></ng-container>\n </valtimo-carbon-list>\n } @else {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'zgw.documents.noColumns.description' | translate\"\n [title]=\"'zgw.documents.noColumns.title' | translate\"\n ></valtimo-no-results>\n }\n\n <valtimo-documenten-api-metadata-modal\n [defaultValues]=\"obs.defaultValues\"\n [disableAuthor]=\"obs.uploadFields?.auteur?.readonly\"\n [disableConfidentialityLevel]=\"obs.uploadFields?.vertrouwelijkheidaanduiding?.readonly\"\n [disableCreationDate]=\"obs.uploadFields?.creatiedatum?.readonly\"\n [disableDescription]=\"obs.uploadFields?.beschrijving?.readonly\"\n [disableDocumentTitle]=\"obs.uploadFields?.titel?.readonly\"\n [disableDocumentType]=\"obs.uploadFields?.informatieobjecttype?.readonly\"\n [disableFilename]=\"obs.uploadFields?.bestandsnaam?.readonly\"\n [disableLanguage]=\"obs.uploadFields?.taal?.readonly\"\n [disableStatus]=\"obs.uploadFields?.status?.readonly\"\n [disabled$]=\"modalDisabled$\"\n [file$]=\"fileToBeUploaded$\"\n [hideFields]=\"obs.hideFields\"\n [isEditMode]=\"isEditMode$ | async\"\n [open]=\"showUploadModal$ | async\"\n [supportsTrefwoorden]=\"obs?.supportedDocumentenApiFeatures?.supportsTrefwoorden\"\n [uploadError]=\"uploadError()\"\n [uploading]=\"obs.uploading\"\n (metadata)=\"metadataSet($event)\"\n (modalClose)=\"closeMetadataModal()\"\n (uploadErrorDismiss)=\"uploadError.set(null)\"\n ></valtimo-documenten-api-metadata-modal>\n\n <valtimo-documenten-api-preview-modal\n [showModalSubject$]=\"showPreviewModal$\"\n [relatedFile$]=\"documentToPreview$\"\n [caseDocumentId$]=\"documentId$\"\n (modalClose)=\"closePreviewModal()\"\n ></valtimo-documenten-api-preview-modal>\n</div>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dashboardManagement.deleteModal.confirm\"\n contentTranslationKey=\"case.documenten.deleteConfirmationModal.content\"\n confirmButtonType=\"danger\"\n titleTranslationKey=\"case.documenten.deleteConfirmationModal.title\"\n [showModalSubject$]=\"showDeleteConfirmationModal$\"\n (confirmEvent)=\"deleteDocument()\"\n>\n</valtimo-confirmation-modal>\n\n<ng-template #noResults>\n @if ((filter$ | async | keyvalue)?.length) {\n <valtimo-no-results\n [action]=\"resetFilterButton\"\n [description]=\"'zgw.documents.noResults.filterDescription' | translate\"\n [title]=\"'zgw.documents.noResults.filterTitle' | translate\"\n ></valtimo-no-results>\n } @else if (showZaakLinkWarning && isAdmin) {\n <valtimo-no-results\n [action]=\"navigateToCaseAdminButton\"\n [description]=\"'case.documenten.noZaakFound' | translate\"\n [title]=\"'case.documenten.noZaakFoundTitle' | translate\"\n ></valtimo-no-results>\n } @else {\n <valtimo-no-results\n [action]=\"uploadButton\"\n [description]=\"'case.documenten.noFiles' | translate\"\n [title]=\"'case.documenten.noFilesTitle' | translate\"\n ></valtimo-no-results>\n }\n</ng-template>\n\n<ng-template #overflowFilter>\n <valtimo-case-detail-tab-documenten-api-filter\n [prefillFilter]=\"filter$ | async\"\n (filterEvent)=\"onFilterEvent($event)\"\n ></valtimo-case-detail-tab-documenten-api-filter>\n</ng-template>\n\n<ng-template #resetFilterButton>\n <button cdsButton=\"primary\" (click)=\"onFilterEvent(null)\">\n {{ 'Reset filter' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #uploadButton let-disabled=\"disabled\">\n <button\n [disabled]=\"\n (uploadProcessLinkedSet && !uploadProcessLinked) ||\n showZaakLinkWarning ||\n disabled ||\n (canCreateResource$ | async) === false\n \"\n [vTooltip]=\"getUploadButtonTooltip() | translate\"\n (click)=\"onUploadButtonClick()\"\n cdsButton=\"primary\"\n >\n {{ 'Upload' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"upload\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #translationTemplate let-data=\"data\">\n @if (data.item[data.key]) {\n {{ 'document.' + data.item[data.key] | translate }}\n } @else {\n -\n }\n</ng-template>\n\n<ng-template #navigateToCaseAdminButton>\n <button (click)=\"onNavigateToCaseAdminClick()\" cdsButton=\"primary\">\n {{ 'case.documenten.navigateToCaseAdmin' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"settings\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: [".hidden{display:none}.loading-container{padding:var(--cds-grid-margin);display:flex;align-items:center;justify-content:center}.carbon-document-table-wrapper{margin:0}.documenten-api-documents-filesize-template{text-align:right}\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"] }]
|
|
2144
|
-
}], ctorParameters: () => [{ type: i2.ConfigService }, { type: DocumentenApiColumnService }, { type: DocumentenApiDocumentService }, { type: DocumentenApiPreviewService }, { type: DocumentenApiVersionService }, { type: i4$1.DocumentService }, { type: i4$2.DownloadService }, { type: i6.IconService }, { type: i6$1.PermissionService }, { type: i1$2.ActivatedRoute }, { type: i1$2.Router }, { type: i5.TranslateService }, { type: i4$2.UploadProviderService }, { type: i9.UserProviderService }
|
|
2219
|
+
}], ctorParameters: () => [{ type: i2.ConfigService }, { type: DocumentenApiColumnService }, { type: DocumentenApiDocumentService }, { type: DocumentenApiPreviewService }, { type: DocumentenApiVersionService }, { type: i4$1.DocumentService }, { type: i4$2.DownloadService }, { type: i6.IconService }, { type: i6$1.PermissionService }, { type: i1$2.ActivatedRoute }, { type: i1$2.Router }, { type: i5.TranslateService }, { type: i4$2.UploadProviderService }, { type: i9.UserProviderService }, { type: undefined, decorators: [{
|
|
2220
|
+
type: Optional
|
|
2221
|
+
}, {
|
|
2222
|
+
type: Inject,
|
|
2223
|
+
args: [DOCUMENT_ACTION_ITEM_TOKEN]
|
|
2224
|
+
}] }], propDecorators: { fileInput: [{
|
|
2145
2225
|
type: ViewChild,
|
|
2146
2226
|
args: ['fileInput']
|
|
2147
2227
|
}], translationTemplate: [{
|
|
@@ -5771,5 +5851,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
5771
5851
|
* Generated bundle index. Do not edit.
|
|
5772
5852
|
*/
|
|
5773
5853
|
|
|
5774
|
-
export { COLUMN_VIEW_TYPES, CONFIDENTIALITY_LEVELS, CaseDetailTabDocumentenApiDocumentsComponent, CaseDetailTabObjectTypeComponent, CaseDetailTabZaakobjectenComponent, CaseManagementLinkProcessComponent, CaseManagementZgwComponent, CaseManagementZgwService, CaseZakenApiSyncComponent, CaseZakenApiSyncService, DOCUMENTEN_COLUMN_KEYS, DocumentObjectenApiSyncComponent, DocumentObjectenApiSyncService, DocumentenApiColumnModalComponent, DocumentenApiColumnService, DocumentenApiColumnsComponent, DocumentenApiDocumentService, DocumentenApiFilterComponent, DocumentenApiLinkProcessService, DocumentenApiMetadataModalComponent, DocumentenApiPreviewModalComponent, DocumentenApiPreviewService, DocumentenApiTagModalComponent, DocumentenApiTagService, DocumentenApiTagsComponent, DocumentenApiUploadFieldModalComponent, DocumentenApiUploadFieldsComponent, DocumentenApiUploaderComponent, DocumentenApiVersionComponent, DocumentenApiVersionService, FailedNotificationDetailComponent, FailedNotificationsPageComponent, FailedNotificationsService, LANGUAGE_ITEMS, NotificatiesApiInboundEventStatus, NotificatiesApiRoutingModule, STATUS_ITEMS, ZGW_CASE_SYNC_TEST_IDS, ZGW_CASE_TYPE_LINK_TEST_IDS, ZGW_DOCUMENT_COLUMNS_TEST_IDS, ZGW_KEYWORDS_TEST_IDS, ZGW_LINK_UPLOAD_PROCESS_TEST_IDS, ZGW_UPLOAD_FIELDS_TEST_IDS, ZaakobjectenService, ZakenApiZaaktypeLinkComponent, ZakenApiZaaktypeLinkService, ZgwModule, ZgwTabEnum, customDocumentApiUploaderType, documentenApiUploaderEditForm, registerDocumentenApiFormioUploadComponent };
|
|
5854
|
+
export { COLUMN_VIEW_TYPES, CONFIDENTIALITY_LEVELS, CaseDetailTabDocumentenApiDocumentsComponent, CaseDetailTabObjectTypeComponent, CaseDetailTabZaakobjectenComponent, CaseManagementLinkProcessComponent, CaseManagementZgwComponent, CaseManagementZgwService, CaseZakenApiSyncComponent, CaseZakenApiSyncService, DOCUMENTEN_COLUMN_KEYS, DOCUMENT_ACTION_ITEM_TOKEN, DocumentObjectenApiSyncComponent, DocumentObjectenApiSyncService, DocumentenApiColumnModalComponent, DocumentenApiColumnService, DocumentenApiColumnsComponent, DocumentenApiDocumentService, DocumentenApiFilterComponent, DocumentenApiLinkProcessService, DocumentenApiMetadataModalComponent, DocumentenApiPreviewModalComponent, DocumentenApiPreviewService, DocumentenApiTagModalComponent, DocumentenApiTagService, DocumentenApiTagsComponent, DocumentenApiUploadFieldModalComponent, DocumentenApiUploadFieldsComponent, DocumentenApiUploaderComponent, DocumentenApiVersionComponent, DocumentenApiVersionService, FailedNotificationDetailComponent, FailedNotificationsPageComponent, FailedNotificationsService, LANGUAGE_ITEMS, NotificatiesApiInboundEventStatus, NotificatiesApiRoutingModule, STATUS_ITEMS, ZGW_CASE_SYNC_TEST_IDS, ZGW_CASE_TYPE_LINK_TEST_IDS, ZGW_DOCUMENT_COLUMNS_TEST_IDS, ZGW_KEYWORDS_TEST_IDS, ZGW_LINK_UPLOAD_PROCESS_TEST_IDS, ZGW_UPLOAD_FIELDS_TEST_IDS, ZaakobjectenService, ZakenApiZaaktypeLinkComponent, ZakenApiZaaktypeLinkService, ZgwModule, ZgwTabEnum, customDocumentApiUploaderType, documentenApiUploaderEditForm, registerDocumentenApiFormioUploadComponent };
|
|
5775
5855
|
//# sourceMappingURL=valtimo-zgw.mjs.map
|