@valtimo/case 13.42.0 → 13.44.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-case.mjs +28 -16
- package/fesm2022/valtimo-case.mjs.map +1 -1
- package/lib/components/case-detail/case-detail.component.d.ts.map +1 -1
- package/lib/components/case-detail/tab/notes/notes.component.d.ts.map +1 -1
- package/lib/models/case-inspection.models.d.ts +1 -24
- package/lib/models/case-inspection.models.d.ts.map +1 -1
- package/lib/services/case-list-orchestration.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1398,11 +1398,11 @@ class CaseDetailTabProgressComponent {
|
|
|
1398
1398
|
this._pendingSkip$.next(null);
|
|
1399
1399
|
}
|
|
1400
1400
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseDetailTabProgressComponent, deps: [{ token: i1$3.ActivatedRoute }, { token: i1$2.DocumentService }, { token: CaseProcessTimerService }, { token: i1.GlobalNotificationService }, { token: i4.TranslateService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1401
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: CaseDetailTabProgressComponent, isStandalone: false, selector: "valtimo-case-detail-tab-progress", 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<ng-container\n class=\"full-height-tab-content\"\n *ngIf=\"{\n processInstanceItems: processInstanceItems$ | async,\n selectedProcessInstance: selectedProcessInstance$ | async,\n canSkipTimer: canSkipTimer$ | async,\n skippableTimers: skippableTimers$ | async,\n diagramReloadToken: diagramReloadToken$ | async,\n } as obs\"\n>\n <span *ngIf=\"!obs.processInstanceItems.isLoading && !obs.processInstanceItems.value\">{{\n 'progress.noProcessDocumentInstances' | translate\n }}</span>\n\n <div class=\"process-info-row\">\n <cds-combo-box\n [dropUp]=\"false\"\n [appendInline]=\"true\"\n [disabled]=\"obs.processInstanceItems.isLoading\"\n [label]=\"'progress.process' | translate\"\n [placeholder]=\"'progress.process' | translate\"\n [items]=\"obs.processInstanceItems.value || []\"\n (selected)=\"loadProcessInstance($event)\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n <div>\n <v-input-label [title]=\"'progress.version' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"30\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.version }} ({{ 'progress.of' | translate }}\n {{ obs.selectedProcessInstance.value.latestVersion }})\n </span>\n </div>\n\n <div>\n <v-input-label [title]=\"'progress.startedBy' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedBy || ('progress.system' | translate) }}\n </span>\n </div>\n\n <div>\n <v-input-label [title]=\"'progress.startedOn' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedOn.toLocaleDateString() }}\n </span>\n </div>\n </div>\n\n <div>\n <valtimo-process-diagram\n *ngIf=\"!obs.selectedProcessInstance.isLoading\"\n [canSkipTimer]=\"obs.canSkipTimer || false\"\n [processInstanceId]=\"obs.selectedProcessInstance.value.id.processInstanceId\"\n [reloadToken]=\"obs.diagramReloadToken || 0\"\n [skipTimerLabel]=\"'progress.skipTimer.action' | translate\"\n [skippableTimers]=\"obs.skippableTimers || []\"\n (skipTimerEvent)=\"onRequestSkipTimer($event)\"\n ></valtimo-process-diagram>\n </div>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"progress.skipTimer.confirmButton\"\n titleTranslationKey=\"progress.skipTimer.confirmTitle\"\n [content]=\"'progress.skipTimer.confirmContent' | translate\"\n [showModalSubject$]=\"showSkipConfirm$\"\n (cancelEvent)=\"onCancelSkipTimer()\"\n (confirmEvent)=\"onConfirmSkipTimer()\"\n ></valtimo-confirmation-modal>\n</ng-container>\n", styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}.process-info-row{display:flex;gap:24px}.process-info-text{color:var(--v-color-black);font-size:var(--v-font-size-default)}
|
|
1401
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: CaseDetailTabProgressComponent, isStandalone: false, selector: "valtimo-case-detail-tab-progress", 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<ng-container\n class=\"full-height-tab-content\"\n *ngIf=\"{\n processInstanceItems: processInstanceItems$ | async,\n selectedProcessInstance: selectedProcessInstance$ | async,\n canSkipTimer: canSkipTimer$ | async,\n skippableTimers: skippableTimers$ | async,\n diagramReloadToken: diagramReloadToken$ | async,\n } as obs\"\n>\n <span *ngIf=\"!obs.processInstanceItems.isLoading && !obs.processInstanceItems.value\">{{\n 'progress.noProcessDocumentInstances' | translate\n }}</span>\n\n <div class=\"process-info-row\">\n <cds-combo-box\n [dropUp]=\"false\"\n [appendInline]=\"true\"\n [disabled]=\"obs.processInstanceItems.isLoading\"\n [label]=\"'progress.process' | translate\"\n [placeholder]=\"'progress.process' | translate\"\n [items]=\"obs.processInstanceItems.value || []\"\n (selected)=\"loadProcessInstance($event)\"\n class=\"process-select\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n <div>\n <v-input-label [title]=\"'progress.version' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"30\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.version }} ({{ 'progress.of' | translate }}\n {{ obs.selectedProcessInstance.value.latestVersion }})\n </span>\n </div>\n\n <div>\n <v-input-label [title]=\"'progress.startedBy' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedBy || ('progress.system' | translate) }}\n </span>\n </div>\n\n <div>\n <v-input-label [title]=\"'progress.startedOn' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedOn.toLocaleDateString() }}\n </span>\n </div>\n </div>\n\n <div>\n <valtimo-process-diagram\n *ngIf=\"!obs.selectedProcessInstance.isLoading\"\n [canSkipTimer]=\"obs.canSkipTimer || false\"\n [processInstanceId]=\"obs.selectedProcessInstance.value.id.processInstanceId\"\n [reloadToken]=\"obs.diagramReloadToken || 0\"\n [skipTimerLabel]=\"'progress.skipTimer.action' | translate\"\n [skippableTimers]=\"obs.skippableTimers || []\"\n (skipTimerEvent)=\"onRequestSkipTimer($event)\"\n ></valtimo-process-diagram>\n </div>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"progress.skipTimer.confirmButton\"\n titleTranslationKey=\"progress.skipTimer.confirmTitle\"\n [content]=\"'progress.skipTimer.confirmContent' | translate\"\n [showModalSubject$]=\"showSkipConfirm$\"\n (cancelEvent)=\"onCancelSkipTimer()\"\n (confirmEvent)=\"onConfirmSkipTimer()\"\n ></valtimo-confirmation-modal>\n</ng-container>\n", styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}.process-info-row{display:flex;gap:24px}.process-select{flex:1 1 auto;min-width:0}.process-select ::ng-deep .cds--list-box__menu-item__option{height:auto;overflow-wrap:anywhere;text-overflow:clip;white-space:normal}.process-info-text{display:flex;height:40px;align-items:center;color:var(--v-color-black);font-size:var(--v-font-size-default)}\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: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.ProcessDiagramComponent, selector: "valtimo-process-diagram", inputs: ["processDefinitionKey", "processInstanceId", "skippableTimers", "canSkipTimer", "skipTimerLabel", "reloadToken"], outputs: ["importDone", "skipTimerEvent"] }, { kind: "component", type: i2.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: i2.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: i4$1.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i4$1.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "labelId", "items", "type", "size", "itemValueKey", "label", "hideLabel", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled", "readonly", "fluid"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "component", type: i4$1.SkeletonText, selector: "cds-skeleton-text, ibm-skeleton-text", inputs: ["lines", "minLineWidth", "maxLineWidth"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
1402
1402
|
}
|
|
1403
1403
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseDetailTabProgressComponent, decorators: [{
|
|
1404
1404
|
type: Component,
|
|
1405
|
-
args: [{ standalone: false, selector: 'valtimo-case-detail-tab-progress', 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<ng-container\n class=\"full-height-tab-content\"\n *ngIf=\"{\n processInstanceItems: processInstanceItems$ | async,\n selectedProcessInstance: selectedProcessInstance$ | async,\n canSkipTimer: canSkipTimer$ | async,\n skippableTimers: skippableTimers$ | async,\n diagramReloadToken: diagramReloadToken$ | async,\n } as obs\"\n>\n <span *ngIf=\"!obs.processInstanceItems.isLoading && !obs.processInstanceItems.value\">{{\n 'progress.noProcessDocumentInstances' | translate\n }}</span>\n\n <div class=\"process-info-row\">\n <cds-combo-box\n [dropUp]=\"false\"\n [appendInline]=\"true\"\n [disabled]=\"obs.processInstanceItems.isLoading\"\n [label]=\"'progress.process' | translate\"\n [placeholder]=\"'progress.process' | translate\"\n [items]=\"obs.processInstanceItems.value || []\"\n (selected)=\"loadProcessInstance($event)\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n <div>\n <v-input-label [title]=\"'progress.version' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"30\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.version }} ({{ 'progress.of' | translate }}\n {{ obs.selectedProcessInstance.value.latestVersion }})\n </span>\n </div>\n\n <div>\n <v-input-label [title]=\"'progress.startedBy' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedBy || ('progress.system' | translate) }}\n </span>\n </div>\n\n <div>\n <v-input-label [title]=\"'progress.startedOn' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedOn.toLocaleDateString() }}\n </span>\n </div>\n </div>\n\n <div>\n <valtimo-process-diagram\n *ngIf=\"!obs.selectedProcessInstance.isLoading\"\n [canSkipTimer]=\"obs.canSkipTimer || false\"\n [processInstanceId]=\"obs.selectedProcessInstance.value.id.processInstanceId\"\n [reloadToken]=\"obs.diagramReloadToken || 0\"\n [skipTimerLabel]=\"'progress.skipTimer.action' | translate\"\n [skippableTimers]=\"obs.skippableTimers || []\"\n (skipTimerEvent)=\"onRequestSkipTimer($event)\"\n ></valtimo-process-diagram>\n </div>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"progress.skipTimer.confirmButton\"\n titleTranslationKey=\"progress.skipTimer.confirmTitle\"\n [content]=\"'progress.skipTimer.confirmContent' | translate\"\n [showModalSubject$]=\"showSkipConfirm$\"\n (cancelEvent)=\"onCancelSkipTimer()\"\n (confirmEvent)=\"onConfirmSkipTimer()\"\n ></valtimo-confirmation-modal>\n</ng-container>\n", styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}.process-info-row{display:flex;gap:24px}.process-info-text{color:var(--v-color-black);font-size:var(--v-font-size-default)}
|
|
1405
|
+
args: [{ standalone: false, selector: 'valtimo-case-detail-tab-progress', 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<ng-container\n class=\"full-height-tab-content\"\n *ngIf=\"{\n processInstanceItems: processInstanceItems$ | async,\n selectedProcessInstance: selectedProcessInstance$ | async,\n canSkipTimer: canSkipTimer$ | async,\n skippableTimers: skippableTimers$ | async,\n diagramReloadToken: diagramReloadToken$ | async,\n } as obs\"\n>\n <span *ngIf=\"!obs.processInstanceItems.isLoading && !obs.processInstanceItems.value\">{{\n 'progress.noProcessDocumentInstances' | translate\n }}</span>\n\n <div class=\"process-info-row\">\n <cds-combo-box\n [dropUp]=\"false\"\n [appendInline]=\"true\"\n [disabled]=\"obs.processInstanceItems.isLoading\"\n [label]=\"'progress.process' | translate\"\n [placeholder]=\"'progress.process' | translate\"\n [items]=\"obs.processInstanceItems.value || []\"\n (selected)=\"loadProcessInstance($event)\"\n class=\"process-select\"\n >\n <cds-dropdown-list></cds-dropdown-list>\n </cds-combo-box>\n <div>\n <v-input-label [title]=\"'progress.version' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"30\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.version }} ({{ 'progress.of' | translate }}\n {{ obs.selectedProcessInstance.value.latestVersion }})\n </span>\n </div>\n\n <div>\n <v-input-label [title]=\"'progress.startedBy' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedBy || ('progress.system' | translate) }}\n </span>\n </div>\n\n <div>\n <v-input-label [title]=\"'progress.startedOn' | translate\"></v-input-label>\n\n <cds-skeleton-text\n *ngIf=\"obs.selectedProcessInstance.isLoading\"\n [lines]=\"1\"\n [maxLineWidth]=\"50\"\n ></cds-skeleton-text>\n\n <span *ngIf=\"!obs.selectedProcessInstance.isLoading\" class=\"process-info-text\">\n {{ obs.selectedProcessInstance.value.startedOn.toLocaleDateString() }}\n </span>\n </div>\n </div>\n\n <div>\n <valtimo-process-diagram\n *ngIf=\"!obs.selectedProcessInstance.isLoading\"\n [canSkipTimer]=\"obs.canSkipTimer || false\"\n [processInstanceId]=\"obs.selectedProcessInstance.value.id.processInstanceId\"\n [reloadToken]=\"obs.diagramReloadToken || 0\"\n [skipTimerLabel]=\"'progress.skipTimer.action' | translate\"\n [skippableTimers]=\"obs.skippableTimers || []\"\n (skipTimerEvent)=\"onRequestSkipTimer($event)\"\n ></valtimo-process-diagram>\n </div>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"progress.skipTimer.confirmButton\"\n titleTranslationKey=\"progress.skipTimer.confirmTitle\"\n [content]=\"'progress.skipTimer.confirmContent' | translate\"\n [showModalSubject$]=\"showSkipConfirm$\"\n (cancelEvent)=\"onCancelSkipTimer()\"\n (confirmEvent)=\"onConfirmSkipTimer()\"\n ></valtimo-confirmation-modal>\n</ng-container>\n", styles: [".full-height-tab-content{height:calc(100vh - 380px);width:100%}.process-info-row{display:flex;gap:24px}.process-select{flex:1 1 auto;min-width:0}.process-select ::ng-deep .cds--list-box__menu-item__option{height:auto;overflow-wrap:anywhere;text-overflow:clip;white-space:normal}.process-info-text{display:flex;height:40px;align-items:center;color:var(--v-color-black);font-size:var(--v-font-size-default)}\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"] }]
|
|
1406
1406
|
}], ctorParameters: () => [{ type: i1$3.ActivatedRoute }, { type: i1$2.DocumentService }, { type: CaseProcessTimerService }, { type: i1.GlobalNotificationService }, { type: i4.TranslateService }, { type: i0.DestroyRef }] });
|
|
1407
1407
|
|
|
1408
1408
|
/*
|
|
@@ -1845,8 +1845,13 @@ class CaseDetailTabNotesComponent {
|
|
|
1845
1845
|
this.idToDelete$ = new BehaviorSubject(null);
|
|
1846
1846
|
this.documentId$ = this.route.params.pipe(map(params => params.documentId));
|
|
1847
1847
|
this.actions = [
|
|
1848
|
-
{ id: 'edit', label: '
|
|
1849
|
-
{
|
|
1848
|
+
{ id: 'edit', label: 'interface.edit', icon: 'mdi-pencil', callback: this.editNote.bind(this) },
|
|
1849
|
+
{
|
|
1850
|
+
id: 'delete',
|
|
1851
|
+
label: 'interface.delete',
|
|
1852
|
+
icon: 'mdi-delete',
|
|
1853
|
+
callback: this.deleteNote.bind(this),
|
|
1854
|
+
},
|
|
1850
1855
|
];
|
|
1851
1856
|
this.canAdd$ = this.documentId$.pipe(switchMap$1((identifier) => this.permissionService.requestPermission(CAN_ADD_NOTE_PERMISSION, {
|
|
1852
1857
|
resource: CASE_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocument,
|
|
@@ -4194,11 +4199,15 @@ class CaseListOrchestrationService {
|
|
|
4194
4199
|
this.hiddenColumns$ = this._refreshHiddenColumns$.pipe(switchMap(() => this.caseDefinitionKey$), switchMap((caseDefinitionKey) => caseDefinitionKey
|
|
4195
4200
|
? this.caseListHiddenColumnsService.getHiddenColumns(caseDefinitionKey)
|
|
4196
4201
|
: of([])));
|
|
4197
|
-
this.schema$ = this.listService.caseDefinitionKey$.pipe(filter(caseDefinitionKey => !!caseDefinitionKey), switchMap(
|
|
4198
|
-
|
|
4199
|
-
|
|
4202
|
+
this.schema$ = this.listService.caseDefinitionKey$.pipe(filter(caseDefinitionKey => !!caseDefinitionKey), switchMap((caseDefinitionKey) => forkJoin({
|
|
4203
|
+
documentDefinition: this.documentService.getDocumentDefinition(caseDefinitionKey),
|
|
4204
|
+
activeCaseDefinition: this.documentService.getActiveCaseDefinition(caseDefinitionKey),
|
|
4205
|
+
})), tap(({ documentDefinition, activeCaseDefinition }) => {
|
|
4206
|
+
const pageTitle = activeCaseDefinition?.name || documentDefinition?.schema?.title;
|
|
4207
|
+
if (pageTitle) {
|
|
4208
|
+
this.pageTitleService.setCustomPageTitle(pageTitle, true);
|
|
4200
4209
|
}
|
|
4201
|
-
}));
|
|
4210
|
+
}), map(({ documentDefinition }) => documentDefinition?.schema));
|
|
4202
4211
|
this.canCreateCase$ = this.caseDefinitionKey$.pipe(switchMap(caseDefinitionKey => caseDefinitionKey
|
|
4203
4212
|
? this.permissionService.requestPermission(CAN_CREATE_CASE_PERMISSION, {
|
|
4204
4213
|
resource: CASE_DETAIL_PERMISSION_RESOURCE.jsonSchemaDocumentDefinition,
|
|
@@ -5403,11 +5412,11 @@ class CaseSupportingProcessStartModalComponent {
|
|
|
5403
5412
|
this.modalOpen$.next(true);
|
|
5404
5413
|
}
|
|
5405
5414
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseSupportingProcessStartModalComponent, deps: [{ token: i1$3.Router }, { token: i2$1.ProcessService }, { token: i3$3.ProcessLinkService }, { token: i4.TranslateService }, { token: CaseDetailLayoutService }, { token: FORM_VIEW_MODEL_TOKEN, optional: true }, { token: FORM_CUSTOM_COMPONENT_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5406
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: CaseSupportingProcessStartModalComponent, isStandalone: false, selector: "valtimo-case-supporting-process-start-modal", inputs: { isAdmin: "isAdmin" }, outputs: { formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "startFormTemplate", first: true, predicate: ["startForm"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-
|
|
5415
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: CaseSupportingProcessStartModalComponent, isStandalone: false, selector: "valtimo-case-supporting-process-start-modal", inputs: { isAdmin: "isAdmin" }, outputs: { formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "formCustomComponentDynamicContainer", first: true, predicate: ["formCustomComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "startFormTemplate", first: true, predicate: ["startForm"], 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\n<cds-modal\n [open]=\"modalOpen$ | async\"\n valtimoCdsModal\n [size]=\"modalSize$ | async\"\n [minContentHeight]=\"480\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\" [cdsLayer]=\"1\"\n ><h3 cdsModalHeaderHeading>\n {{ modalTitle$ | async }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\">\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n\n @if (modalOpen$ | async) {\n <ng-container *ngTemplateOutlet=\"startForm\"></ng-container>\n }\n </section>\n</cds-modal>\n\n<ng-template #startForm>\n @if (isLoading$ | async) {\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n }\n\n @if (\n !(isLoading$ | async) &&\n (startProcessLinkType$ | async) === 'form' &&\n (formDefinition$ | async)\n ) {\n <valtimo-form-io\n #form\n [submission]=\"submission$ | async\"\n [form]=\"formDefinition$ | async\"\n [options]=\"options$ | async\"\n [errors]=\"formErrors$ | async\"\n (submit)=\"onSubmit($event)\"\n ></valtimo-form-io>\n }\n\n @if (\n !(isLoading$ | async) &&\n (startProcessLinkType$ | async) === 'form-flow' &&\n (formFlowInstanceId$ | async)\n ) {\n <valtimo-form-flow\n #formFlow\n [formFlowInstanceId]=\"formFlowInstanceId$ | async\"\n (formFlowComplete)=\"formSubmitted()\"\n ></valtimo-form-flow>\n }\n\n @if (\n !(isLoading$ | async) &&\n !(formDefinition$ | async) &&\n !(formFlowInstanceId$ | async) &&\n (startProcessLinkType$ | async) !== 'ui-component'\n ) {\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n isAdmin\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n }\n</ng-template>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"case.draftProcessConfirmation.confirm\"\n [showModalSubject$]=\"showDraftConfirmation$\"\n titleTranslationKey=\"case.draftProcessConfirmation.title\"\n contentTranslationKey=\"case.draftProcessConfirmation.content\"\n (confirmEvent)=\"onDraftConfirmationConfirm()\"\n (cancelEvent)=\"onDraftConfirmationCancel()\"\n>\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'case.draftProcessConfirmation.warningTitle' | translate,\n message: 'case.draftProcessConfirmation.warningDescription' | translate,\n showClose: false,\n lowContrast: true\n }\"\n ></cds-notification>\n</valtimo-confirmation-modal>\n", styles: ["#supportingProcessStartModal .formio-component-submit{text-align:right}.loading-container{width:100%;display:flex;justify-content:center}.full-width-notification{max-inline-size:100%;min-inline-size:100%}\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: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "errors", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i4$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i3$3.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete", "formFlowChange"] }, { kind: "component", type: i4$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i4$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "directive", type: i4$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i2.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: "directive", type: i2.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "directive", type: i4$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "component", type: i4$1.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
5407
5416
|
}
|
|
5408
5417
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseSupportingProcessStartModalComponent, decorators: [{
|
|
5409
5418
|
type: Component,
|
|
5410
|
-
args: [{ standalone: false, selector: 'valtimo-case-supporting-process-start-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-
|
|
5419
|
+
args: [{ standalone: false, selector: 'valtimo-case-supporting-process-start-modal', encapsulation: ViewEncapsulation.None, 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<cds-modal\n [open]=\"modalOpen$ | async\"\n valtimoCdsModal\n [size]=\"modalSize$ | async\"\n [minContentHeight]=\"480\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\" [cdsLayer]=\"1\"\n ><h3 cdsModalHeaderHeading>\n {{ modalTitle$ | async }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\">\n <ng-template #formViewModelComponent></ng-template>\n <ng-template #formCustomComponent></ng-template>\n\n @if (modalOpen$ | async) {\n <ng-container *ngTemplateOutlet=\"startForm\"></ng-container>\n }\n </section>\n</cds-modal>\n\n<ng-template #startForm>\n @if (isLoading$ | async) {\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n }\n\n @if (\n !(isLoading$ | async) &&\n (startProcessLinkType$ | async) === 'form' &&\n (formDefinition$ | async)\n ) {\n <valtimo-form-io\n #form\n [submission]=\"submission$ | async\"\n [form]=\"formDefinition$ | async\"\n [options]=\"options$ | async\"\n [errors]=\"formErrors$ | async\"\n (submit)=\"onSubmit($event)\"\n ></valtimo-form-io>\n }\n\n @if (\n !(isLoading$ | async) &&\n (startProcessLinkType$ | async) === 'form-flow' &&\n (formFlowInstanceId$ | async)\n ) {\n <valtimo-form-flow\n #formFlow\n [formFlowInstanceId]=\"formFlowInstanceId$ | async\"\n (formFlowComplete)=\"formSubmitted()\"\n ></valtimo-form-flow>\n }\n\n @if (\n !(isLoading$ | async) &&\n !(formDefinition$ | async) &&\n !(formFlowInstanceId$ | async) &&\n (startProcessLinkType$ | async) !== 'ui-component'\n ) {\n <div class=\"bg-warning text-black mb-0 p-3 text-center\">\n {{\n isAdmin\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n\n <div class=\"mb-0 mt-4 p-3 text-center\">\n <button\n class=\"btn btn-secondary btn-space\"\n type=\"button\"\n (click)=\"gotoFormLinkScreen()\"\n id=\"form-link-button\"\n >\n {{ 'formManagement.gotoProcessLinksButton' | translate }}\n </button>\n </div>\n }\n</ng-template>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"case.draftProcessConfirmation.confirm\"\n [showModalSubject$]=\"showDraftConfirmation$\"\n titleTranslationKey=\"case.draftProcessConfirmation.title\"\n contentTranslationKey=\"case.draftProcessConfirmation.content\"\n (confirmEvent)=\"onDraftConfirmationConfirm()\"\n (cancelEvent)=\"onDraftConfirmationCancel()\"\n>\n <cds-notification\n class=\"full-width-notification\"\n [notificationObj]=\"{\n type: 'warning',\n title: 'case.draftProcessConfirmation.warningTitle' | translate,\n message: 'case.draftProcessConfirmation.warningDescription' | translate,\n showClose: false,\n lowContrast: true\n }\"\n ></cds-notification>\n</valtimo-confirmation-modal>\n", styles: ["#supportingProcessStartModal .formio-component-submit{text-align:right}.loading-container{width:100%;display:flex;justify-content:center}.full-width-notification{max-inline-size:100%;min-inline-size:100%}\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"] }]
|
|
5411
5420
|
}], ctorParameters: () => [{ type: i1$3.Router }, { type: i2$1.ProcessService }, { type: i3$3.ProcessLinkService }, { type: i4.TranslateService }, { type: CaseDetailLayoutService }, { type: undefined, decorators: [{
|
|
5412
5421
|
type: Optional
|
|
5413
5422
|
}, {
|
|
@@ -5831,9 +5840,12 @@ class CaseDetailComponent {
|
|
|
5831
5840
|
this._activeTabName$.next(this._oldTabName);
|
|
5832
5841
|
}
|
|
5833
5842
|
initBreadcrumb() {
|
|
5834
|
-
|
|
5835
|
-
this.
|
|
5836
|
-
this.
|
|
5843
|
+
forkJoin({
|
|
5844
|
+
documentDefinition: this.documentService.getDocumentDefinition(this.caseDefinitionKey),
|
|
5845
|
+
activeCaseDefinition: this.documentService.getActiveCaseDefinition(this.caseDefinitionKey),
|
|
5846
|
+
}).subscribe(({ documentDefinition, activeCaseDefinition }) => {
|
|
5847
|
+
this.documentDefinitionTitle = activeCaseDefinition?.name || documentDefinition.schema.title;
|
|
5848
|
+
this.caseDefinitionVersionTag = documentDefinition.id.blueprintId.blueprintVersionTag;
|
|
5837
5849
|
this.setBreadcrumb();
|
|
5838
5850
|
});
|
|
5839
5851
|
}
|
|
@@ -5956,7 +5968,7 @@ class CaseDetailComponent {
|
|
|
5956
5968
|
}));
|
|
5957
5969
|
}
|
|
5958
5970
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseDetailComponent, deps: [{ token: i2.BreadcrumbService }, { token: i1$2.CaseStatusService }, { token: i2.CdsThemeService }, { token: i0.ComponentFactoryResolver }, { token: i1$2.DocumentService }, { token: CaseDetailLayoutService }, { token: CaseService }, { token: CaseTabService }, { token: i4$1.IconService }, { token: i5$4.KeycloakService }, { token: i1$4.NGXLogger }, { token: i1.GlobalNotificationService }, { token: i2.PageHeaderService }, { token: i2.PageTitleService }, { token: i2$2.PermissionService }, { token: i4.TranslateService }, { token: i0.Renderer2 }, { token: i1$3.ActivatedRoute }, { token: i1$3.Router }, { token: WidgetsService }, { token: i12.UserProviderService }, { token: i5.SseService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5959
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: CaseDetailComponent, isStandalone: false, selector: "ng-component", providers: [CaseTabService, CaseDetailLayoutService, ObserveSizeDirective], viewQueries: [{ propertyName: "supportingProcessStart", first: true, predicate: ["supportingProcessStartModal"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["tabContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "_tabContentContainer", first: true, predicate: ["tabContentContainer"], 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\n<div\n class=\"main-content\"\n [ngClass]=\"{'main-content--no-horizontal-overflow': $tabHorizontalOverflowDisabled()}\"\n>\n <div class=\"container-fluid\">\n <div\n class=\"main-content__header\"\n observeSize\n (heightChange)=\"onMainContentHeaderHeightChange($event)\"\n >\n <valtimo-case-detail-header-widget></valtimo-case-detail-header-widget>\n\n <ng-container *ngIf=\"caseTags$ | async as caseTags\">\n @if ((caseTags || []).length > 0) {\n <div class=\"spacing-case-tags\">\n @for (tag of caseTags; track tag) {\n <cds-tag size=\"sm\" [type]=\"tag.tagType\">\n {{ tag.title }}\n </cds-tag>\n }\n </div>\n }\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n\n <ng-template #tabs>\n <ng-container *ngIf=\"{activeTab: activeTab$ | async} as obs\">\n <cds-tabs *ngIf=\"tabLoader\" type=\"inline\" class=\"case-detail-tabs\">\n <cds-tab\n *ngFor=\"let tab of tabLoader.tabs\"\n [active]=\"tab.name === (activeTabName$ | async)\"\n heading=\"{{ tab | tabTranslate | async }}\"\n (selected)=\"onTabSelected(tab, obs.activeTab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n </ng-template>\n </div>\n\n <div\n *ngIf=\"{\n noTabsConfigured: noTabsConfigured$ | async,\n showTaskList: showTaskList$ | async,\n showNoAccess: showNoAccess$ | async,\n caseDetailLayout: caseDetailLayout$ | async,\n openTaskAndProcessLinkInModal: openTaskAndProcessLinkInModal$ | async,\n taskAndProcessLinkOpenedInPanel: taskAndProcessLinkOpenedInPanel$ | async,\n startFormPanel: startFormPanel$ | async,\n isDarkMode: isDarkMode$ | async,\n compactMode: compactMode$ | async,\n tabContentContainerMaxHeight: tabContentContainerMaxHeight$ | async,\n } as tabContentObs\"\n #tabContentContainer\n class=\"tab-content-container\"\n [ngClass]=\"{\n 'tab-content-container--dark': tabContentObs.isDarkMode,\n 'tab-content-container--compact': tabContentObs.compactMode,\n }\"\n [style.max-height]=\"tabContentObs.tabContentContainerMaxHeight\"\n [style.height]=\"tabContentObs.tabContentContainerMaxHeight\"\n >\n <as-split\n direction=\"horizontal\"\n [disabled]=\"!tabContentObs.caseDetailLayout.widthAdjustable\"\n [gutterSize]=\"CASE_DETAIL_GUTTER_SIZE\"\n [unit]=\"tabContentObs.caseDetailLayout.unit\"\n class=\"split-area\"\n >\n <as-split-area\n [size]=\"tabContentObs.caseDetailLayout.leftPanelWidth\"\n [minSize]=\"tabContentObs.caseDetailLayout.leftPanelMinWidth\"\n [maxSize]=\"tabContentObs.caseDetailLayout.leftPanelMaxWidth\"\n class=\"split-area__content\"\n >\n <div\n class=\"card-body bg-white p-5 position-relative tab-container\"\n [class.tab-container--compact]=\"compactMode$ | async\"\n >\n <div *ngIf=\"loadingTabs$ | async\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <valtimo-no-results\n *ngIf=\"tabContentObs.showNoAccess\"\n description=\"{{ 'case.noAccess.description' | translate }}\"\n title=\"{{ 'case.noAccess.title' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-not-authorised.svg\"\n >\n </valtimo-no-results>\n\n <valtimo-no-results\n *ngIf=\"tabContentObs.noTabsConfigured\"\n [description]=\"'case.tabs.noResultsDescription' | translate\"\n [title]=\"'case.tabs.noResults' | translate\"\n ></valtimo-no-results>\n\n <ng-template #tabContainer></ng-template>\n\n <div class=\"clearfix\"></div>\n </div>\n </as-split-area>\n\n <as-split-area\n *ngIf=\"tabContentObs.caseDetailLayout.showRightPanel\"\n [size]=\"tabContentObs.caseDetailLayout.rightPanelWidth\"\n [minSize]=\"tabContentObs.caseDetailLayout.rightPanelMinWidth\"\n [maxSize]=\"tabContentObs.caseDetailLayout.rightPanelMaxWidth\"\n >\n @if (tabContentObs.showTaskList) {\n <div class=\"task-panel\">\n @if (tabContentObs.startFormPanel) {\n <div class=\"start-form-panel\">\n <section class=\"start-form-panel__header\">\n <h4 class=\"start-form-panel__title\">{{ tabContentObs.startFormPanel.title }}</h4>\n\n <button cdsButton=\"ghost\" [iconOnly]=\"true\" (click)=\"onStartFormPanelClose()\">\n <svg cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </section>\n\n <section class=\"start-form-panel__body\">\n <ng-container\n *ngTemplateOutlet=\"tabContentObs.startFormPanel.template\"\n ></ng-container>\n </section>\n </div>\n } @else if (tabContentObs.taskAndProcessLinkOpenedInPanel) {\n <valtimo-case-detail-task-detail\n [taskAndProcessLink]=\"tabContentObs.taskAndProcessLinkOpenedInPanel\"\n (activeChange)=\"onActiveChangeEvent($event)\"\n (closeEvent)=\"onTaskDetailsClose()\"\n (formSubmit)=\"onFormSubmitEvent()\"\n (dueDateChanged)=\"onDueDateChanged()\"\n >\n </valtimo-case-detail-task-detail>\n } @else {\n <valtimo-case-detail-task-list\n [openTaskAndProcessLinkInModal]=\"tabContentObs.openTaskAndProcessLinkInModal\"\n (taskClickEvent)=\"onTaskClickEvent($event)\"\n (formSubmitEvent)=\"onFormSubmitEvent()\"\n ></valtimo-case-detail-task-list>\n }\n </div>\n }\n </as-split-area>\n </as-split>\n </div>\n </div>\n\n <valtimo-case-supporting-process-start-modal\n [isAdmin]=\"isAdmin$ | async\"\n (formSubmit)=\"onFormSubmitEvent()\"\n #supportingProcessStartModal\n ></valtimo-case-supporting-process-start-modal>\n</div>\n\n<ng-template\n #caseDetailHeader\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {canHaveAssignee: canHaveAssignee, document: document, canAssign: canAssign}\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template\n #caseDetailAssignee\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div *ngIf=\"canHaveAssignee && document\">\n <valtimo-assignment\n *ngIf=\"canAssignLoaded$ | async\"\n mode=\"case\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [assignedTeamKey]=\"document.assignedTeamKey\"\n [assignedTeamTitle]=\"document.assignedTeamTitle\"\n [hasPermission]=\"canAssign\"\n [candidateUsers$]=\"candidateUsers$\"\n [candidateTeams$]=\"candidateTeams$\"\n (assignmentChangedEvent)=\"onAssignmentChanged($event)\"\n (unassignedEvent)=\"onUnassigned()\"\n ></valtimo-assignment>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <v-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (selected)=\"claimAssignee()\"\n >\n {{ 'case.claimAssigneeCase' | translate }}\n </v-overflow-menu-option>\n</ng-template>\n\n<ng-template\n #unassignButton\n let-canAssign=\"canAssign\"\n let-canHaveAssignee=\"canHaveAssignee\"\n let-assigneeId=\"assigneeId\"\n>\n <v-overflow-menu-option\n *ngIf=\"canHaveAssignee && canAssign\"\n [disabled]=\"!assigneeId\"\n (selected)=\"unassignAssignee()\"\n >\n {{ 'assignDocument.remove' | translate }}\n </v-overflow-menu-option>\n</ng-template>\n\n<ng-template #deleteButton let-canDelete=\"canDelete\">\n <v-overflow-menu-option\n *ngIf=\"canDelete\"\n [disabled]=\"isDeleting$ | async\"\n (selected)=\"deleteDocument()\"\n type=\"danger\"\n >\n {{ 'case.delete.delete' | translate }}\n </v-overflow-menu-option>\n</ng-template>\n\n<ng-template #inspectButton let-canInspect=\"canInspect\">\n <v-overflow-menu-option *ngIf=\"canInspect\" (selected)=\"navigateToInspection()\">\n {{ 'case.inspection.openInspector' | translate }}\n </v-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"startableItems.length === 0\"\n [ngbTooltip]=\"startableItems.length === 0 ? 'No action' : null\"\n >\n {{ 'case.startSubProcess' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"chevron--down\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"case.delete.confirm\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"case.delete.description\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"case.delete.delete\"\n (confirmEvent)=\"onConfirmDelete()\"\n></valtimo-confirmation-modal>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"case-actions\"\n [ngClass]=\"{\n 'case-actions--compact': compactMode$ | async,\n 'case-actions--small-title': smallTitle$ | async,\n }\"\n *ngIf=\"{\n assigneeId: assigneeId$ | async,\n canAssign: canAssign$ | async,\n canClaim: canClaim$ | async,\n canHaveAssignee: canHaveAssignee$ | async,\n canDelete: canDelete$ | async,\n canInspect: canInspect$ | async,\n document: document$ | async,\n caseStatus: caseStatus$ | async,\n } as obs\"\n >\n <div class=\"case-status-assign-custom-title\" [ngClass]=\"{'--compact': compactMode$ | async}\">\n @if (obs.caseStatus) {\n <cds-tag size=\"sm\" [type]=\"obs.caseStatus.tagType\" [title]=\"obs.caseStatus.title\">{{\n obs.caseStatus.title\n }}</cds-tag>\n }\n\n <div [ngClass]=\"{'--compact': compactMode$ | async}\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {\n canHaveAssignee: obs.canHaveAssignee,\n document: obs.document,\n canAssign: obs.canAssign,\n }\n \"\n ></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"caseDetailHeader\"></ng-container>\n </div>\n\n <div class=\"buttons-container\">\n <v-overflow-menu\n *ngIf=\"obs.canHaveAssignee || obs.canDelete || obs.canInspect\"\n placement=\"bottom-end\"\n class=\"overflow-button assign-overflow\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n >\n <v-overflow-menu-trigger\n overflowTrigger\n [compact]=\"compactMode$ | async\"\n ></v-overflow-menu-trigger>\n\n <ng-container\n *ngTemplateOutlet=\"\n claimButton;\n context: {canClaim: obs.canClaim, canHaveAssignee: obs.canHaveAssignee}\n \"\n >\n </ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n unassignButton;\n context: {\n canAssign: obs.canAssign,\n canHaveAssignee: obs.canHaveAssignee,\n assigneeId: obs.assigneeId,\n }\n \"\n >\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"inspectButton; context: {canInspect: obs.canInspect}\">\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"deleteButton; context: {canDelete: obs.canDelete}\">\n </ng-container>\n </v-overflow-menu>\n\n <v-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [menuWidth]=\"dropdownWidth$ | async\"\n placement=\"bottom-end\"\n class=\"overflow-button case-detail-overflow\"\n >\n <ng-container overflowTrigger>\n <ng-container *ngTemplateOutlet=\"customStartTrigger\"></ng-container>\n </ng-container>\n <v-overflow-menu-option\n *ngFor=\"let startableItem of startableItems\"\n [attr.title]=\"startableItem.displayName\"\n (selected)=\"startItem(startableItem)\"\n >\n {{ startableItem.displayName }}\n </v-overflow-menu-option>\n </v-overflow-menu>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".main-content{overflow:hidden;padding-bottom:0}.main-content--no-horizontal-overflow{overflow-x:hidden}.tab-container{height:min-content;min-height:300px;overflow-y:auto;overflow-x:hidden}.tab-container:has(>.tab--no-margin){padding:0!important}.tab-container:has(>.tab--no-min-height){min-height:unset}.tab-container:has(>.tab--no-background){background:transparent!important}.tab-content-container{display:flex;gap:32px;overflow:auto;margin-bottom:16px}.loading-container{display:flex;justify-content:center;flex-direction:row}.case-detail-tabs{display:flex;margin-bottom:24px}.case-detail-tabs cds-tab{display:none!important}.buttons-container{display:flex;flex-direction:row;gap:8px;align-items:center}.case-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.case-actions--compact,.case-actions--small-title{padding-bottom:0;align-items:flex-start}.case-actions ::ng-deep .version-selection{width:160px}.case-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.case-status-assign-custom-title{display:flex;gap:16px;align-items:flex-end}.case-status-assign-custom-title .cds--tag{margin:0;overflow:hidden;text-overflow:ellipsis;line-height:24px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;max-width:100%}.case-status-assign-custom-title.--compact{align-items:center}.task-panel{width:100%;transition:height .15s ease-in-out}.start-form-panel{display:flex;flex-direction:column;width:100%;height:100%;background-color:var(--cds-layer);padding:8px 16px 16px}.start-form-panel__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.start-form-panel__title{margin:0;color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.start-form-panel__body{flex:1;overflow-y:auto}.split-area__content{height:100%!important}.split-area__content .tab-container{height:min-content!important;overflow:hidden!important}:host ::ng-deep .container-fluid{height:100%!important;width:100%!important;margin:0!important;padding:0!important}::ng-deep .tab-content-container .as-split-gutter{background-color:transparent!important;--_as-gutter-icon-disabled: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1' height='1'/%3E\");--_as-gutter-icon-horizontal: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABQJJREFUeF7dWll22zAMpNwzlM5xmpMlOVl6mzrKHexWm8UFy4xIp+/FP3mxQWAwWAiRGsJ3/gwhhJvt4CRCfgCtosYhDOHm4SlW7rZyq9t/R7GsZoYQDhCA89UIrzakKuQtpRTiHv03ycJB3t8KuU9AByNfw5dWJpj1h5YABmGRsvgufzsSG21NEwGWUrv5yiuZb31yMZoAAjBFPqBdor9G0vpwu2+PBgE6TK/q0pUxxiwZxnE0SefkE0sHWQUygGG3ll0c2tGNn+M0DiSfHDlHQBu2rffoWgBWPRHWIUreM654li5bMwDQBIhI9naHFgVQCSS2PHliWlLm0/YsMrcwK6ISp1QGANhzG7XFDj2gUFr8yzrkydOJ6CyACBB1lIWkbPyeQ2UQ2ZKxksCLft4EaWqB/AshHCdg0b/1gB7wJB1QBrQ0ml4E2MMyFgxJ6iABuEGdgCUeZVQm+fQ7fhfAsflzAKFLS1G2ptmMwUpDl1oyAGxo2fw2hHBzjpsm+XiO2TGQF1GWACJGfecAjHmgCTZum/lQfezQTZ3L7z+g3goc2xGtFT86A0qLh5pgjPF13aLmv9aHdYiVn8uMwFNixQlYqVuNvayK3sZxNElgHarlP6duo2bpOcbXWxheVhkTj7Tv4ATsTG/OL6CG8DZ+KCQMIcSf6HnAAo8hrAjGRpIblLxveDm8/q4YC6fT6flyufzWBhXGoTWd4QOUp6enX9fr9X2od6SFhJlTu4FBGZA5n+jbnddZjPG8nz8lo222ItHJEraRICAAMmG6rPGb2FTjedqHsET+4/Lbu+phHWLlJ/g+Cd4gpJDgp71HHzAHFCqOEFCSULjrNkaxw2rO/zidnv/MNY99WIcY+TKufibUmOcSEB5IxLTHXLal2FG4h83VPzET1h6wUxDP8fXfJW5V8xuQhqFwVtGNgDuQ6Yo367Pb9ixdjVckVE1QS/0ekZhybRw/zMZblkBpd1sMPIdJkAsClF2ghQQPYJYBQjp5BKCBEHD4JZDi6bED3AebRDFbAp58Ski3JrgphQcgozEwXZ2dBH3nZ2Bq5KcyahuEgO1wIWBnyIuoS5hA9pHIp01dnANSdlvKwXWocRC6Pw/U70MBozCQAWI5JKDF5wFrtk8uR6XKYQibnL9dr+/CjgA5v81AamMFByTTmOhQp56hPw5/vrrvx61euz2gZKfHgcj98bUkgjo/WJCxeMrJFyQgR8ocQcGnwqsJpgSK8pymTPeIThus4DKwBKWJFNsFklEcOT9ApyFADswAQJMiwkaUldeQ7ZTKDWf79tsSgIasDwGduro1CbY+hVqZgpJ1SA5L6bQHMJNjOy19MsCgBiNgV8DK+1GxSXoYAcMwhNttOedPIZTPAhm8bQ6Anx57ZMBGgfHuXs6yuEANBBtR/2bIjzkj8bAMSIYU+KLDaoKSU8KFCOP7LAsTcDTZ2jPAfrUWf3VGnwdo1pgF5xiz9yhazwOExwfv9suEm2XArJwNtSP/+AxgwlHL1iVwiAUdhEaAxhtLWGbZDEbPEiCyhHWIla93KO7AvMoAwre7bW5jxCAfwaHnoa4N3gVU5X2RthX0gdVNBPhDZnYgzMH7ImKbCOA8wnfsVO+jeUgIEHfYFUs7jHYNLN2YvJkBXwYaNuQIwnp2cgoCag3LN1Z2+EwfwCVPLPAOJ1n05oDt9x5oRR37Pb72s/e+kU81L/EXSRwjcUdkvjUAAAAASUVORK5CYII=)}::ng-deep .tab-content-container .as-split-gutter-icon{background-repeat:no-repeat;background-size:16px 16px}::ng-deep .tab-content-container--dark .as-split-gutter{--_as-gutter-icon-horizontal: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABPlJREFUeF7tm1tW3DAMhu2+krCmdmWlKytrIuGV9HjixDddfjkOtOd0XmAGWZfPsiw7g3fVyzvntvpD9H01+JIuwCamX5YKf9VfmCVaDze2S2fXIDG+CGC8YsrqMCvDFDmHZYCeI5gE6LietD2LlNb6uQAQTLWfCDTLmLpOIfoRvxEZydZn+pH7+vdlAEJyoIwIwDIrFtk7C2TyA/Po9gxY1zVWrN2haZq85FqS3zEF+YET3qi6rFzjfAR0yGkBwQA0wyFU75zf5MaOBYDoR2YGDigqY+U7HOKHlAsFiQOXqax+JYCYBGJr32ZAB+lEpxwc3i1nDcDWtBUYPjN8p35VBxf/4/MQUI7lqAGPzwjYBQDv3PQ0+Ue/CjV/sODp8+UiyNE7XLHO6EM+Dg4/ntBdAI69zdIqBlgTlDldADLN9a7R551cDot0kDPNbn40AIh6LSS4DS0Be9jJg7sAXPHJfBZojbXriMscGgDvvhUYmRGEes6iocJiyVejWdelYDPNk5cquhnAxVSAlgDZQG/7bUqKjvZEDqgdYwaAzQsrVQHowFkPqd5bA4LlO1ytp+zoFM0Ml2V5CYPmeX78lF7v67rla8B6GpynKZxnxBfmD03MvASCMe/9z+DRtm2/SAiZLXRGqcapbYTaICB/BHwggN1wbuzQSUHI3UQBHPqo+wPO/7dlefkWJ0PyR0ofEIAjg49Z8GOe51fOCAYgIcPkd2vLsnz33v+ubadJ0TZw8Fqcmnkk+CBjCahHXodQ49mhHGjUDJCDf37Vjmn54Sa4MuxGaL/weWzDdggJigjgDL7KpG3bxLTPmY/PALqa90JgAahpf/ohb8jjAfAlrQdCCSDG0gRPxCiHzf81XwKUVA1M7gDwbojbspsM4GZea3jov5cFp6cGoHYRFCWE5FthQwKAGCnLS9vD6UXwXbnIRpGUcsH3D6JxI2sADwFHwEnqAI4HKW0AB07ci6QDXgLHELUIghPxbxRBBukICDuAZMCaAbu8XnLf1K4wzBjdGYpzSUGI66ntBQg/8QzYB+PyyW18++sAEHvu8wSY02IbosyONaBTPj7XO6/F+SxVzgPKRooWlN7l0A0g+i0tGXrmvdu2D/qYTrBgO0GKG3ocRlrhB/jm6a13zR2i8GAk+BOOw/lmy95RMIlgAlAvh4ex5/ll5CUndYMkJfGNFyL84sCuoHa3tSVQW9HkGxjeueUNv6Krx7dbTO5R/J1FARSQ9X3d8gyh13RSZAYA9iOcmHkJWO1ZA+LkRdbaRAlO3wogKL/+/YDZl5cuFQogC/P4k/j+mx0AYVDyYVQGWDMPlbcDQDVHOREA1DmGDAgv7emA0bEofgmAmn3euXUpT3d9Z4G+4PRR+6PR9oigRqarPiT6ng4nBzRguCe0ZJEBatyqQGvkfw249VtiHTNSzdGZAddVESmW1YBDv5bSpoxBnOZkst7h6jISx5sCEltnJFp7KKkG3KNfPQvULluB2UMuR1zaBiXjB08+IJr4FQA9c3gDgNINKSDK4SCff67VjEsZEI+Cl3Scg3vwA4cU6uu0bRL3d4k3ZEDm3mAoY2YqdX7BvVsA2OJW9qlhUe+KQvObX1DYANS+2iIdHArR0bArgXfUBoAMoewopH9ROd3oBmcZiMkOANA3sXUq9mm5Pqrvq7IYXLo3Vs713ao7WRAZ8NULfTACRd0fdjtUcYyr1cIAAAAASUVORK5CYII=)}.spacing-case-tags{margin-bottom:8px}\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: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6$1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i4$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i4$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i4$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i2.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: i4$1.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i4$1.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "component", type: i2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i2.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i4$1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "component", type: i2.OverflowMenuComponent, selector: "v-overflow-menu", inputs: ["open", "placement", "menuWidth", "offsetX", "offsetY", "closeOnSelect", "useHostAsReference", "portalToBody"], outputs: ["openChange"] }, { kind: "component", type: i2.OverflowMenuOptionComponent, selector: "v-overflow-menu-option", inputs: ["disabled", "type", "testId", "optionId"], outputs: ["selected"] }, { kind: "component", type: i2.OverflowMenuTriggerComponent, selector: "v-overflow-menu-trigger", inputs: ["compact"] }, { kind: "component", type: CaseDetailTaskListComponent, selector: "valtimo-case-detail-task-list", inputs: ["openTaskAndProcessLinkInModal"], outputs: ["taskClickEvent", "formSubmitEvent"] }, { kind: "component", type: CaseDetailsTaskDetailComponent, selector: "valtimo-case-detail-task-detail", inputs: ["taskAndProcessLink"], outputs: ["closeEvent", "assignmentOfTaskChanged", "dueDateChanged", "activeChange", "formSubmit"] }, { kind: "component", type: i18.SplitComponent, selector: "as-split", inputs: ["gutterSize", "gutterStep", "disabled", "gutterClickDeltaPx", "direction", "dir", "unit", "gutterAriaLabel", "restrictMove", "useTransition", "gutterDblClickDuration"], outputs: ["gutterClick", "gutterDblClick", "dragStart", "dragEnd", "transitionEnd"], exportAs: ["asSplit"] }, { kind: "component", type: i18.SplitAreaComponent, selector: "as-split-area", inputs: ["size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { kind: "component", type: CaseDetailHeaderWidgetComponent, selector: "valtimo-case-detail-header-widget" }, { kind: "directive", type: i2.ObserveSizeDirective, selector: "[observeSize]", outputs: ["widthChange", "heightChange"] }, { kind: "component", type: i2.AssignmentComponent, selector: "valtimo-assignment", inputs: ["mode", "hasPermission", "assigneeId", "assigneeFullName", "assignedTeamKey", "assignedTeamTitle", "candidateUsers$", "candidateTeams$"], outputs: ["assignmentChangedEvent", "unassignedEvent"] }, { kind: "component", type: CaseSupportingProcessStartModalComponent, selector: "valtimo-case-supporting-process-start-modal", inputs: ["isAdmin"], outputs: ["formSubmit"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: TabTranslatePipe, name: "tabTranslate" }] }); }
|
|
5971
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: CaseDetailComponent, isStandalone: false, selector: "ng-component", providers: [CaseTabService, CaseDetailLayoutService, ObserveSizeDirective], viewQueries: [{ propertyName: "supportingProcessStart", first: true, predicate: ["supportingProcessStartModal"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["tabContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "_tabContentContainer", first: true, predicate: ["tabContentContainer"], 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\n<div\n class=\"main-content\"\n [ngClass]=\"{'main-content--no-horizontal-overflow': $tabHorizontalOverflowDisabled()}\"\n>\n <div class=\"container-fluid\">\n <div\n class=\"main-content__header\"\n observeSize\n (heightChange)=\"onMainContentHeaderHeightChange($event)\"\n >\n <valtimo-case-detail-header-widget></valtimo-case-detail-header-widget>\n\n <ng-container *ngIf=\"caseTags$ | async as caseTags\">\n @if ((caseTags || []).length > 0) {\n <div class=\"spacing-case-tags\">\n @for (tag of caseTags; track tag) {\n <cds-tag size=\"sm\" [type]=\"tag.tagType\">\n {{ tag.title }}\n </cds-tag>\n }\n </div>\n }\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n\n <ng-template #tabs>\n <ng-container *ngIf=\"{activeTab: activeTab$ | async} as obs\">\n <cds-tabs *ngIf=\"tabLoader\" type=\"inline\" class=\"case-detail-tabs\">\n <cds-tab\n *ngFor=\"let tab of tabLoader.tabs\"\n [active]=\"tab.name === (activeTabName$ | async)\"\n heading=\"{{ tab | tabTranslate | async }}\"\n (selected)=\"onTabSelected(tab, obs.activeTab)\"\n ></cds-tab>\n </cds-tabs>\n </ng-container>\n </ng-template>\n </div>\n\n <div\n *ngIf=\"{\n noTabsConfigured: noTabsConfigured$ | async,\n showTaskList: showTaskList$ | async,\n showNoAccess: showNoAccess$ | async,\n caseDetailLayout: caseDetailLayout$ | async,\n openTaskAndProcessLinkInModal: openTaskAndProcessLinkInModal$ | async,\n taskAndProcessLinkOpenedInPanel: taskAndProcessLinkOpenedInPanel$ | async,\n startFormPanel: startFormPanel$ | async,\n isDarkMode: isDarkMode$ | async,\n compactMode: compactMode$ | async,\n tabContentContainerMaxHeight: tabContentContainerMaxHeight$ | async,\n } as tabContentObs\"\n #tabContentContainer\n class=\"tab-content-container\"\n [ngClass]=\"{\n 'tab-content-container--dark': tabContentObs.isDarkMode,\n 'tab-content-container--compact': tabContentObs.compactMode,\n }\"\n [style.max-height]=\"tabContentObs.tabContentContainerMaxHeight\"\n [style.height]=\"tabContentObs.tabContentContainerMaxHeight\"\n >\n <as-split\n direction=\"horizontal\"\n [disabled]=\"!tabContentObs.caseDetailLayout.widthAdjustable\"\n [gutterSize]=\"CASE_DETAIL_GUTTER_SIZE\"\n [unit]=\"tabContentObs.caseDetailLayout.unit\"\n class=\"split-area\"\n >\n <as-split-area\n [size]=\"tabContentObs.caseDetailLayout.leftPanelWidth\"\n [minSize]=\"tabContentObs.caseDetailLayout.leftPanelMinWidth\"\n [maxSize]=\"tabContentObs.caseDetailLayout.leftPanelMaxWidth\"\n class=\"split-area__content\"\n >\n <div\n class=\"card-body bg-white p-5 position-relative tab-container\"\n [class.tab-container--compact]=\"compactMode$ | async\"\n >\n <div *ngIf=\"loadingTabs$ | async\" class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n\n <valtimo-no-results\n *ngIf=\"tabContentObs.showNoAccess\"\n description=\"{{ 'case.noAccess.description' | translate }}\"\n title=\"{{ 'case.noAccess.title' | translate }}\"\n illustration=\"valtimo-layout/img/emptystate-not-authorised.svg\"\n >\n </valtimo-no-results>\n\n <valtimo-no-results\n *ngIf=\"tabContentObs.noTabsConfigured\"\n [description]=\"'case.tabs.noResultsDescription' | translate\"\n [title]=\"'case.tabs.noResults' | translate\"\n ></valtimo-no-results>\n\n <ng-template #tabContainer></ng-template>\n\n <div class=\"clearfix\"></div>\n </div>\n </as-split-area>\n\n <as-split-area\n *ngIf=\"tabContentObs.caseDetailLayout.showRightPanel\"\n [size]=\"tabContentObs.caseDetailLayout.rightPanelWidth\"\n [minSize]=\"tabContentObs.caseDetailLayout.rightPanelMinWidth\"\n [maxSize]=\"tabContentObs.caseDetailLayout.rightPanelMaxWidth\"\n >\n @if (tabContentObs.showTaskList) {\n <div class=\"task-panel\">\n @if (tabContentObs.startFormPanel) {\n <div class=\"start-form-panel\">\n <section class=\"start-form-panel__header\">\n <h4 class=\"start-form-panel__title\">{{ tabContentObs.startFormPanel.title }}</h4>\n\n <button cdsButton=\"ghost\" [iconOnly]=\"true\" (click)=\"onStartFormPanelClose()\">\n <svg cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </section>\n\n <section class=\"start-form-panel__body\">\n <ng-container\n *ngTemplateOutlet=\"tabContentObs.startFormPanel.template\"\n ></ng-container>\n </section>\n </div>\n } @else if (tabContentObs.taskAndProcessLinkOpenedInPanel) {\n <valtimo-case-detail-task-detail\n [taskAndProcessLink]=\"tabContentObs.taskAndProcessLinkOpenedInPanel\"\n (activeChange)=\"onActiveChangeEvent($event)\"\n (closeEvent)=\"onTaskDetailsClose()\"\n (formSubmit)=\"onFormSubmitEvent()\"\n (dueDateChanged)=\"onDueDateChanged()\"\n >\n </valtimo-case-detail-task-detail>\n } @else {\n <valtimo-case-detail-task-list\n [openTaskAndProcessLinkInModal]=\"tabContentObs.openTaskAndProcessLinkInModal\"\n (taskClickEvent)=\"onTaskClickEvent($event)\"\n (formSubmitEvent)=\"onFormSubmitEvent()\"\n ></valtimo-case-detail-task-list>\n }\n </div>\n }\n </as-split-area>\n </as-split>\n </div>\n </div>\n\n <valtimo-case-supporting-process-start-modal\n [isAdmin]=\"isAdmin$ | async\"\n (formSubmit)=\"onFormSubmitEvent()\"\n #supportingProcessStartModal\n ></valtimo-case-supporting-process-start-modal>\n</div>\n\n<ng-template\n #caseDetailHeader\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {canHaveAssignee: canHaveAssignee, document: document, canAssign: canAssign}\n \"\n ></ng-container>\n</ng-template>\n\n<ng-template\n #caseDetailAssignee\n let-canHaveAssignee=\"canHaveAssignee\"\n let-document=\"document\"\n let-canAssign=\"canAssign\"\n>\n <div *ngIf=\"canHaveAssignee && document\">\n <valtimo-assignment\n *ngIf=\"canAssignLoaded$ | async\"\n mode=\"case\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [assignedTeamKey]=\"document.assignedTeamKey\"\n [assignedTeamTitle]=\"document.assignedTeamTitle\"\n [hasPermission]=\"canAssign\"\n [candidateUsers$]=\"candidateUsers$\"\n [candidateTeams$]=\"candidateTeams$\"\n (assignmentChangedEvent)=\"onAssignmentChanged($event)\"\n (unassignedEvent)=\"onUnassigned()\"\n ></valtimo-assignment>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <v-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (selected)=\"claimAssignee()\"\n >\n {{ 'case.claimAssigneeCase' | translate }}\n </v-overflow-menu-option>\n</ng-template>\n\n<ng-template\n #unassignButton\n let-canAssign=\"canAssign\"\n let-canHaveAssignee=\"canHaveAssignee\"\n let-assigneeId=\"assigneeId\"\n>\n <v-overflow-menu-option\n *ngIf=\"canHaveAssignee && canAssign\"\n [disabled]=\"!assigneeId\"\n (selected)=\"unassignAssignee()\"\n >\n {{ 'assignDocument.remove' | translate }}\n </v-overflow-menu-option>\n</ng-template>\n\n<ng-template #deleteButton let-canDelete=\"canDelete\">\n <v-overflow-menu-option\n *ngIf=\"canDelete\"\n [disabled]=\"isDeleting$ | async\"\n (selected)=\"deleteDocument()\"\n type=\"danger\"\n >\n {{ 'case.delete.delete' | translate }}\n </v-overflow-menu-option>\n</ng-template>\n\n<ng-template #inspectButton let-canInspect=\"canInspect\">\n <v-overflow-menu-option *ngIf=\"canInspect\" (selected)=\"navigateToInspection()\">\n {{ 'case.inspection.openInspector' | translate }}\n </v-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"startableItems.length === 0\"\n [ngbTooltip]=\"startableItems.length === 0 ? 'No action' : null\"\n >\n {{ 'case.startSubProcess' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"chevron--down\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"case.delete.confirm\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"case.delete.description\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"case.delete.delete\"\n (confirmEvent)=\"onConfirmDelete()\"\n></valtimo-confirmation-modal>\n\n<ng-container renderInPageHeader [fullWidth]=\"true\">\n <ng-template>\n <div\n class=\"case-actions\"\n [ngClass]=\"{\n 'case-actions--compact': compactMode$ | async,\n 'case-actions--small-title': smallTitle$ | async,\n }\"\n *ngIf=\"{\n assigneeId: assigneeId$ | async,\n canAssign: canAssign$ | async,\n canClaim: canClaim$ | async,\n canHaveAssignee: canHaveAssignee$ | async,\n canDelete: canDelete$ | async,\n canInspect: canInspect$ | async,\n document: document$ | async,\n caseStatus: caseStatus$ | async,\n } as obs\"\n >\n <div class=\"case-status-assign-custom-title\" [ngClass]=\"{'--compact': compactMode$ | async}\">\n @if (obs.caseStatus) {\n <cds-tag size=\"sm\" [type]=\"obs.caseStatus.tagType\" [title]=\"obs.caseStatus.title\">{{\n obs.caseStatus.title\n }}</cds-tag>\n }\n\n <div [ngClass]=\"{'--compact': compactMode$ | async}\">\n <ng-container\n *ngTemplateOutlet=\"\n caseDetailAssignee;\n context: {\n canHaveAssignee: obs.canHaveAssignee,\n document: obs.document,\n canAssign: obs.canAssign,\n }\n \"\n ></ng-container>\n </div>\n\n <ng-container *ngTemplateOutlet=\"caseDetailHeader\"></ng-container>\n </div>\n\n <div class=\"buttons-container\">\n <v-overflow-menu\n *ngIf=\"obs.canHaveAssignee || obs.canDelete || obs.canInspect\"\n placement=\"bottom-end\"\n class=\"overflow-button assign-overflow\"\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n >\n <v-overflow-menu-trigger\n overflowTrigger\n [compact]=\"compactMode$ | async\"\n ></v-overflow-menu-trigger>\n\n <ng-container\n *ngTemplateOutlet=\"\n claimButton;\n context: {canClaim: obs.canClaim, canHaveAssignee: obs.canHaveAssignee}\n \"\n >\n </ng-container>\n\n <ng-container\n *ngTemplateOutlet=\"\n unassignButton;\n context: {\n canAssign: obs.canAssign,\n canHaveAssignee: obs.canHaveAssignee,\n assigneeId: obs.assigneeId,\n }\n \"\n >\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"inspectButton; context: {canInspect: obs.canInspect}\">\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"deleteButton; context: {canDelete: obs.canDelete}\">\n </ng-container>\n </v-overflow-menu>\n\n <v-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [menuWidth]=\"dropdownWidth$ | async\"\n placement=\"bottom-end\"\n class=\"overflow-button case-detail-overflow\"\n >\n <ng-container overflowTrigger>\n <ng-container *ngTemplateOutlet=\"customStartTrigger\"></ng-container>\n </ng-container>\n <v-overflow-menu-option\n *ngFor=\"let startableItem of startableItems\"\n [attr.title]=\"startableItem.displayName\"\n (selected)=\"startItem(startableItem)\"\n >\n {{ startableItem.displayName }}\n </v-overflow-menu-option>\n </v-overflow-menu>\n </div>\n </div>\n </ng-template>\n</ng-container>\n", styles: [".main-content{overflow:hidden;padding-bottom:0}.main-content--no-horizontal-overflow{overflow-x:hidden}.tab-container{height:min-content;min-height:300px;overflow-y:auto;overflow-x:hidden}.tab-container:has(>.tab--no-margin){padding:0!important}.tab-container:has(>.tab--no-min-height){min-height:unset}.tab-container:has(>.tab--no-background){background:transparent!important}.tab-content-container{display:flex;gap:32px;overflow:auto;margin-bottom:16px}.loading-container{display:flex;justify-content:center;flex-direction:row}.case-detail-tabs{display:flex;margin-bottom:24px}.case-detail-tabs cds-tab{display:none!important}.buttons-container{display:flex;flex-direction:row;gap:8px;align-items:center}.case-actions{display:flex;width:100%;justify-content:space-between;align-items:flex-end;padding-bottom:4px}.case-actions--compact,.case-actions--small-title{padding-bottom:0;align-items:flex-start}.case-actions ::ng-deep .version-selection{width:160px}.case-actions ::ng-deep .version-selection .cds--list-box__selection{display:none}.case-status-assign-custom-title{display:flex;gap:16px;align-items:flex-end}.case-status-assign-custom-title .cds--tag{margin:0;overflow:hidden;text-overflow:ellipsis;line-height:24px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;max-width:100%}.case-status-assign-custom-title.--compact{align-items:center}.task-panel{width:100%;transition:height .15s ease-in-out}.start-form-panel{display:flex;flex-direction:column;width:100%;height:100%;background-color:var(--cds-layer);padding:8px 16px 16px}.start-form-panel__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.start-form-panel__title{margin:0;color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.start-form-panel__body{flex:1;overflow-y:auto}.split-area__content{height:100%!important}.split-area__content .tab-container{height:min-content!important;overflow:hidden!important}:host ::ng-deep .container-fluid{height:100%!important;width:100%!important;margin:0!important;padding:0!important}::ng-deep .tab-content-container .as-split-gutter{background-color:transparent!important;--_as-gutter-icon-disabled: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1' height='1'/%3E\");--_as-gutter-icon-horizontal: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABQJJREFUeF7dWll22zAMpNwzlM5xmpMlOVl6mzrKHexWm8UFy4xIp+/FP3mxQWAwWAiRGsJ3/gwhhJvt4CRCfgCtosYhDOHm4SlW7rZyq9t/R7GsZoYQDhCA89UIrzakKuQtpRTiHv03ycJB3t8KuU9AByNfw5dWJpj1h5YABmGRsvgufzsSG21NEwGWUrv5yiuZb31yMZoAAjBFPqBdor9G0vpwu2+PBgE6TK/q0pUxxiwZxnE0SefkE0sHWQUygGG3ll0c2tGNn+M0DiSfHDlHQBu2rffoWgBWPRHWIUreM654li5bMwDQBIhI9naHFgVQCSS2PHliWlLm0/YsMrcwK6ISp1QGANhzG7XFDj2gUFr8yzrkydOJ6CyACBB1lIWkbPyeQ2UQ2ZKxksCLft4EaWqB/AshHCdg0b/1gB7wJB1QBrQ0ml4E2MMyFgxJ6iABuEGdgCUeZVQm+fQ7fhfAsflzAKFLS1G2ptmMwUpDl1oyAGxo2fw2hHBzjpsm+XiO2TGQF1GWACJGfecAjHmgCTZum/lQfezQTZ3L7z+g3goc2xGtFT86A0qLh5pgjPF13aLmv9aHdYiVn8uMwFNixQlYqVuNvayK3sZxNElgHarlP6duo2bpOcbXWxheVhkTj7Tv4ATsTG/OL6CG8DZ+KCQMIcSf6HnAAo8hrAjGRpIblLxveDm8/q4YC6fT6flyufzWBhXGoTWd4QOUp6enX9fr9X2od6SFhJlTu4FBGZA5n+jbnddZjPG8nz8lo222ItHJEraRICAAMmG6rPGb2FTjedqHsET+4/Lbu+phHWLlJ/g+Cd4gpJDgp71HHzAHFCqOEFCSULjrNkaxw2rO/zidnv/MNY99WIcY+TKufibUmOcSEB5IxLTHXLal2FG4h83VPzET1h6wUxDP8fXfJW5V8xuQhqFwVtGNgDuQ6Yo367Pb9ixdjVckVE1QS/0ekZhybRw/zMZblkBpd1sMPIdJkAsClF2ghQQPYJYBQjp5BKCBEHD4JZDi6bED3AebRDFbAp58Ski3JrgphQcgozEwXZ2dBH3nZ2Bq5KcyahuEgO1wIWBnyIuoS5hA9pHIp01dnANSdlvKwXWocRC6Pw/U70MBozCQAWI5JKDF5wFrtk8uR6XKYQibnL9dr+/CjgA5v81AamMFByTTmOhQp56hPw5/vrrvx61euz2gZKfHgcj98bUkgjo/WJCxeMrJFyQgR8ocQcGnwqsJpgSK8pymTPeIThus4DKwBKWJFNsFklEcOT9ApyFADswAQJMiwkaUldeQ7ZTKDWf79tsSgIasDwGduro1CbY+hVqZgpJ1SA5L6bQHMJNjOy19MsCgBiNgV8DK+1GxSXoYAcMwhNttOedPIZTPAhm8bQ6Anx57ZMBGgfHuXs6yuEANBBtR/2bIjzkj8bAMSIYU+KLDaoKSU8KFCOP7LAsTcDTZ2jPAfrUWf3VGnwdo1pgF5xiz9yhazwOExwfv9suEm2XArJwNtSP/+AxgwlHL1iVwiAUdhEaAxhtLWGbZDEbPEiCyhHWIla93KO7AvMoAwre7bW5jxCAfwaHnoa4N3gVU5X2RthX0gdVNBPhDZnYgzMH7ImKbCOA8wnfsVO+jeUgIEHfYFUs7jHYNLN2YvJkBXwYaNuQIwnp2cgoCag3LN1Z2+EwfwCVPLPAOJ1n05oDt9x5oRR37Pb72s/e+kU81L/EXSRwjcUdkvjUAAAAASUVORK5CYII=)}::ng-deep .tab-content-container .as-split-gutter-icon{background-repeat:no-repeat;background-size:16px 16px}::ng-deep .tab-content-container--dark .as-split-gutter{--_as-gutter-icon-horizontal: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABPlJREFUeF7tm1tW3DAMhu2+krCmdmWlKytrIuGV9HjixDddfjkOtOd0XmAGWZfPsiw7g3fVyzvntvpD9H01+JIuwCamX5YKf9VfmCVaDze2S2fXIDG+CGC8YsrqMCvDFDmHZYCeI5gE6LietD2LlNb6uQAQTLWfCDTLmLpOIfoRvxEZydZn+pH7+vdlAEJyoIwIwDIrFtk7C2TyA/Po9gxY1zVWrN2haZq85FqS3zEF+YET3qi6rFzjfAR0yGkBwQA0wyFU75zf5MaOBYDoR2YGDigqY+U7HOKHlAsFiQOXqax+JYCYBGJr32ZAB+lEpxwc3i1nDcDWtBUYPjN8p35VBxf/4/MQUI7lqAGPzwjYBQDv3PQ0+Ue/CjV/sODp8+UiyNE7XLHO6EM+Dg4/ntBdAI69zdIqBlgTlDldADLN9a7R551cDot0kDPNbn40AIh6LSS4DS0Be9jJg7sAXPHJfBZojbXriMscGgDvvhUYmRGEes6iocJiyVejWdelYDPNk5cquhnAxVSAlgDZQG/7bUqKjvZEDqgdYwaAzQsrVQHowFkPqd5bA4LlO1ytp+zoFM0Ml2V5CYPmeX78lF7v67rla8B6GpynKZxnxBfmD03MvASCMe/9z+DRtm2/SAiZLXRGqcapbYTaICB/BHwggN1wbuzQSUHI3UQBHPqo+wPO/7dlefkWJ0PyR0ofEIAjg49Z8GOe51fOCAYgIcPkd2vLsnz33v+ubadJ0TZw8Fqcmnkk+CBjCahHXodQ49mhHGjUDJCDf37Vjmn54Sa4MuxGaL/weWzDdggJigjgDL7KpG3bxLTPmY/PALqa90JgAahpf/ohb8jjAfAlrQdCCSDG0gRPxCiHzf81XwKUVA1M7gDwbojbspsM4GZea3jov5cFp6cGoHYRFCWE5FthQwKAGCnLS9vD6UXwXbnIRpGUcsH3D6JxI2sADwFHwEnqAI4HKW0AB07ci6QDXgLHELUIghPxbxRBBukICDuAZMCaAbu8XnLf1K4wzBjdGYpzSUGI66ntBQg/8QzYB+PyyW18++sAEHvu8wSY02IbosyONaBTPj7XO6/F+SxVzgPKRooWlN7l0A0g+i0tGXrmvdu2D/qYTrBgO0GKG3ocRlrhB/jm6a13zR2i8GAk+BOOw/lmy95RMIlgAlAvh4ex5/ll5CUndYMkJfGNFyL84sCuoHa3tSVQW9HkGxjeueUNv6Krx7dbTO5R/J1FARSQ9X3d8gyh13RSZAYA9iOcmHkJWO1ZA+LkRdbaRAlO3wogKL/+/YDZl5cuFQogC/P4k/j+mx0AYVDyYVQGWDMPlbcDQDVHOREA1DmGDAgv7emA0bEofgmAmn3euXUpT3d9Z4G+4PRR+6PR9oigRqarPiT6ng4nBzRguCe0ZJEBatyqQGvkfw249VtiHTNSzdGZAddVESmW1YBDv5bSpoxBnOZkst7h6jISx5sCEltnJFp7KKkG3KNfPQvULluB2UMuR1zaBiXjB08+IJr4FQA9c3gDgNINKSDK4SCff67VjEsZEI+Cl3Scg3vwA4cU6uu0bRL3d4k3ZEDm3mAoY2YqdX7BvVsA2OJW9qlhUe+KQvObX1DYANS+2iIdHArR0bArgXfUBoAMoewopH9ROd3oBmcZiMkOANA3sXUq9mm5Pqrvq7IYXLo3Vs713ao7WRAZ8NULfTACRd0fdjtUcYyr1cIAAAAASUVORK5CYII=)}.spacing-case-tags{margin-bottom:8px}\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: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6$1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i4$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i4$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i4$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i2.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: i4$1.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i4$1.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "component", type: i2.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i2.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i4$1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "component", type: i2.OverflowMenuComponent, selector: "v-overflow-menu", inputs: ["open", "placement", "menuWidth", "offsetX", "offsetY", "closeOnSelect", "useHostAsReference", "portalToBody"], outputs: ["openChange"] }, { kind: "component", type: i2.OverflowMenuOptionComponent, selector: "v-overflow-menu-option", inputs: ["disabled", "type", "testId", "optionId"], outputs: ["selected"] }, { kind: "component", type: i2.OverflowMenuTriggerComponent, selector: "v-overflow-menu-trigger", inputs: ["compact", "label"] }, { kind: "component", type: CaseDetailTaskListComponent, selector: "valtimo-case-detail-task-list", inputs: ["openTaskAndProcessLinkInModal"], outputs: ["taskClickEvent", "formSubmitEvent"] }, { kind: "component", type: CaseDetailsTaskDetailComponent, selector: "valtimo-case-detail-task-detail", inputs: ["taskAndProcessLink"], outputs: ["closeEvent", "assignmentOfTaskChanged", "dueDateChanged", "activeChange", "formSubmit"] }, { kind: "component", type: i18.SplitComponent, selector: "as-split", inputs: ["gutterSize", "gutterStep", "disabled", "gutterClickDeltaPx", "direction", "dir", "unit", "gutterAriaLabel", "restrictMove", "useTransition", "gutterDblClickDuration"], outputs: ["gutterClick", "gutterDblClick", "dragStart", "dragEnd", "transitionEnd"], exportAs: ["asSplit"] }, { kind: "component", type: i18.SplitAreaComponent, selector: "as-split-area", inputs: ["size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { kind: "component", type: CaseDetailHeaderWidgetComponent, selector: "valtimo-case-detail-header-widget" }, { kind: "directive", type: i2.ObserveSizeDirective, selector: "[observeSize]", outputs: ["widthChange", "heightChange"] }, { kind: "component", type: i2.AssignmentComponent, selector: "valtimo-assignment", inputs: ["mode", "hasPermission", "assigneeId", "assigneeFullName", "assignedTeamKey", "assignedTeamTitle", "candidateUsers$", "candidateTeams$"], outputs: ["assignmentChangedEvent", "unassignedEvent"] }, { kind: "component", type: CaseSupportingProcessStartModalComponent, selector: "valtimo-case-supporting-process-start-modal", inputs: ["isAdmin"], outputs: ["formSubmit"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: TabTranslatePipe, name: "tabTranslate" }] }); }
|
|
5960
5972
|
}
|
|
5961
5973
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseDetailComponent, decorators: [{
|
|
5962
5974
|
type: Component,
|
|
@@ -7573,11 +7585,11 @@ class CaseInspectionMetadataTabComponent {
|
|
|
7573
7585
|
});
|
|
7574
7586
|
}
|
|
7575
7587
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseInspectionMetadataTabComponent, deps: [{ token: CaseInspectionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7576
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: CaseInspectionMetadataTabComponent, isStandalone: true, selector: "valtimo-case-inspection-metadata", inputs: { documentId: "documentId" }, usesOnChanges: 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\n<section class=\"case-inspection-metadata-tab\">\n <div *ngIf=\"$loading()\" class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n\n @if ($errorMessage(); as message) {\n <p class=\"case-inspection-metadata-tab__error\">{{ message }}</p>\n }\n\n <ng-container *ngIf=\"$document() as document\">\n <cds-structured-list class=\"case-inspection-metadata-tab__list\" [condensed]=\"true\">\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.documentId' | translate }}</cds-list-column>\n <cds-list-column\n ><code>{{ document.id }}</code></cds-list-column\n >\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.definitionName' | translate\n }}</cds-list-column>\n <cds-list-column>{{ document.definitionId?.name }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.sequence' | translate }}</cds-list-column>\n <cds-list-column>{{ document.sequence }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.version' | translate }}</cds-list-column>\n <cds-list-column>{{ document.version }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.createdBy' | translate }}</cds-list-column>\n <cds-list-column>{{ document.createdBy }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.createdOn' | translate }}</cds-list-column>\n <cds-list-column>{{ document.createdOn | date: 'medium' }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.modifiedOn' | translate }}</cds-list-column>\n <cds-list-column>{{ document.modifiedOn | date: 'medium' }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.assignee' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.assigneeFullName; else noAssignee\">\n {{ document.assigneeFullName }}\n </ng-container>\n\n <ng-template #noAssignee>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.unassigned' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.assignedTeam' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.assignedTeamTitle; else noTeam\">\n {{ document.assignedTeamTitle }}\n </ng-container>\n\n <ng-template #noTeam>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.unassigned' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.internalStatus' | translate\n }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.internalStatus; else noStatus\">\n {{ document.internalStatus }}\n </ng-container>\n\n <ng-template #noStatus>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noStatus' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.tags' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.caseTags?.length; else noTags\">\n <cds-tag\n *ngFor=\"let tag of document.caseTags\"\n [title]=\"tag.title\"\n size=\"sm\"\n type=\"cool-gray\"\n >\n {{ tag.title }}\n </cds-tag>\n </ng-container>\n\n <ng-template #noTags>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noTags' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.relations' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.relations?.length; else noRelations\">\n <ul>\n <li *ngFor=\"let relation of document.relations\">{{ relation }}</li>\n </ul>\n </ng-container>\n\n <ng-template #noRelations>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noRelations' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.relatedFiles' | translate }}</cds-list-column>\n <cds-list-column>{{ document.relatedFiles?.length || 0 }}</cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </ng-container>\n</section>\n", styles: [".case-inspection-metadata-tab{border-left:1px solid var(--cds-border-subtle);border-right:1px solid var(--cds-border-subtle)}.case-inspection-metadata-tab__list ul{margin:0;padding-left:var(--cds-spacing-06)}.case-inspection-metadata-tab__error{color:var(--cds-text-error)}.case-inspection-metadata-tab__empty{color:var(--cds-text-helper)}\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: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: StructuredListModule }, { kind: "component", type: i4$1.StructuredList, selector: "cds-structured-list, ibm-structured-list", inputs: ["selection", "flushed", "condensed", "name", "skeleton"], outputs: ["selected"] }, { kind: "component", type: i4$1.ListRow, selector: "cds-list-row, ibm-list-row", inputs: ["selected", "label", "value"], outputs: ["change"] }, { kind: "component", type: i4$1.ListColumn, selector: "cds-list-column, ibm-list-column", inputs: ["skeleton", "nowrap"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i4$1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i4$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7588
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: CaseInspectionMetadataTabComponent, isStandalone: true, selector: "valtimo-case-inspection-metadata", inputs: { documentId: "documentId" }, usesOnChanges: 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\n<section class=\"case-inspection-metadata-tab\">\n <div *ngIf=\"$loading()\" class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n\n @if ($errorMessage(); as message) {\n <p class=\"case-inspection-metadata-tab__error\">{{ message }}</p>\n }\n\n <ng-container *ngIf=\"$document() as document\">\n <cds-structured-list class=\"case-inspection-metadata-tab__list\" [condensed]=\"true\">\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.documentId' | translate }}</cds-list-column>\n <cds-list-column\n ><code>{{ document.id }}</code></cds-list-column\n >\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.definitionName' | translate\n }}</cds-list-column>\n <cds-list-column>{{ document.definitionId?.name }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.definitionKey' | translate\n }}</cds-list-column>\n <cds-list-column\n ><code>{{\n document.definitionId?.blueprintId?.blueprintKey || '-'\n }}</code></cds-list-column\n >\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.definitionVersionTag' | translate\n }}</cds-list-column>\n <cds-list-column>{{\n document.definitionId?.blueprintId?.blueprintVersionTag || '-'\n }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.sequence' | translate }}</cds-list-column>\n <cds-list-column>{{ document.sequence }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.version' | translate }}</cds-list-column>\n <cds-list-column>{{ document.version }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.createdBy' | translate }}</cds-list-column>\n <cds-list-column>{{ document.createdBy }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.createdOn' | translate }}</cds-list-column>\n <cds-list-column>{{ document.createdOn | date: 'medium' }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.modifiedOn' | translate }}</cds-list-column>\n <cds-list-column>{{ document.modifiedOn | date: 'medium' }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.assignee' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.assigneeFullName; else noAssignee\">\n {{ document.assigneeFullName }}\n </ng-container>\n\n <ng-template #noAssignee>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.unassigned' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.assignedTeam' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.assignedTeamTitle; else noTeam\">\n {{ document.assignedTeamTitle }}\n </ng-container>\n\n <ng-template #noTeam>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.unassigned' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.internalStatus' | translate\n }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.internalStatus; else noStatus\">\n {{ document.internalStatus }}\n </ng-container>\n\n <ng-template #noStatus>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noStatus' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.tags' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.caseTags?.length; else noTags\">\n <cds-tag\n *ngFor=\"let tag of document.caseTags\"\n [title]=\"tag.title\"\n size=\"sm\"\n type=\"cool-gray\"\n >\n {{ tag.title }}\n </cds-tag>\n </ng-container>\n\n <ng-template #noTags>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noTags' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.relations' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.relations?.length; else noRelations\">\n <ul>\n <li *ngFor=\"let relation of document.relations\">{{ relation }}</li>\n </ul>\n </ng-container>\n\n <ng-template #noRelations>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noRelations' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.relatedFiles' | translate }}</cds-list-column>\n <cds-list-column>{{ document.relatedFiles?.length || 0 }}</cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </ng-container>\n</section>\n", styles: [".case-inspection-metadata-tab{border-left:1px solid var(--cds-border-subtle);border-right:1px solid var(--cds-border-subtle)}.case-inspection-metadata-tab__list ul{margin:0;padding-left:var(--cds-spacing-06)}.case-inspection-metadata-tab__error{color:var(--cds-text-error)}.case-inspection-metadata-tab__empty{color:var(--cds-text-helper)}\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: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: StructuredListModule }, { kind: "component", type: i4$1.StructuredList, selector: "cds-structured-list, ibm-structured-list", inputs: ["selection", "flushed", "condensed", "name", "skeleton"], outputs: ["selected"] }, { kind: "component", type: i4$1.ListRow, selector: "cds-list-row, ibm-list-row", inputs: ["selected", "label", "value"], outputs: ["change"] }, { kind: "component", type: i4$1.ListColumn, selector: "cds-list-column, ibm-list-column", inputs: ["skeleton", "nowrap"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i4$1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: i4$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7577
7589
|
}
|
|
7578
7590
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CaseInspectionMetadataTabComponent, decorators: [{
|
|
7579
7591
|
type: Component,
|
|
7580
|
-
args: [{ standalone: true, selector: 'valtimo-case-inspection-metadata', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, TranslateModule, StructuredListModule, TagModule, LoadingModule], 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<section class=\"case-inspection-metadata-tab\">\n <div *ngIf=\"$loading()\" class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n\n @if ($errorMessage(); as message) {\n <p class=\"case-inspection-metadata-tab__error\">{{ message }}</p>\n }\n\n <ng-container *ngIf=\"$document() as document\">\n <cds-structured-list class=\"case-inspection-metadata-tab__list\" [condensed]=\"true\">\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.documentId' | translate }}</cds-list-column>\n <cds-list-column\n ><code>{{ document.id }}</code></cds-list-column\n >\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.definitionName' | translate\n }}</cds-list-column>\n <cds-list-column>{{ document.definitionId?.name }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.sequence' | translate }}</cds-list-column>\n <cds-list-column>{{ document.sequence }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.version' | translate }}</cds-list-column>\n <cds-list-column>{{ document.version }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.createdBy' | translate }}</cds-list-column>\n <cds-list-column>{{ document.createdBy }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.createdOn' | translate }}</cds-list-column>\n <cds-list-column>{{ document.createdOn | date: 'medium' }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.modifiedOn' | translate }}</cds-list-column>\n <cds-list-column>{{ document.modifiedOn | date: 'medium' }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.assignee' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.assigneeFullName; else noAssignee\">\n {{ document.assigneeFullName }}\n </ng-container>\n\n <ng-template #noAssignee>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.unassigned' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.assignedTeam' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.assignedTeamTitle; else noTeam\">\n {{ document.assignedTeamTitle }}\n </ng-container>\n\n <ng-template #noTeam>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.unassigned' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.internalStatus' | translate\n }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.internalStatus; else noStatus\">\n {{ document.internalStatus }}\n </ng-container>\n\n <ng-template #noStatus>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noStatus' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.tags' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.caseTags?.length; else noTags\">\n <cds-tag\n *ngFor=\"let tag of document.caseTags\"\n [title]=\"tag.title\"\n size=\"sm\"\n type=\"cool-gray\"\n >\n {{ tag.title }}\n </cds-tag>\n </ng-container>\n\n <ng-template #noTags>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noTags' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.relations' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.relations?.length; else noRelations\">\n <ul>\n <li *ngFor=\"let relation of document.relations\">{{ relation }}</li>\n </ul>\n </ng-container>\n\n <ng-template #noRelations>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noRelations' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.relatedFiles' | translate }}</cds-list-column>\n <cds-list-column>{{ document.relatedFiles?.length || 0 }}</cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </ng-container>\n</section>\n", styles: [".case-inspection-metadata-tab{border-left:1px solid var(--cds-border-subtle);border-right:1px solid var(--cds-border-subtle)}.case-inspection-metadata-tab__list ul{margin:0;padding-left:var(--cds-spacing-06)}.case-inspection-metadata-tab__error{color:var(--cds-text-error)}.case-inspection-metadata-tab__empty{color:var(--cds-text-helper)}\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"] }]
|
|
7592
|
+
args: [{ standalone: true, selector: 'valtimo-case-inspection-metadata', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, TranslateModule, StructuredListModule, TagModule, LoadingModule], 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<section class=\"case-inspection-metadata-tab\">\n <div *ngIf=\"$loading()\" class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n\n @if ($errorMessage(); as message) {\n <p class=\"case-inspection-metadata-tab__error\">{{ message }}</p>\n }\n\n <ng-container *ngIf=\"$document() as document\">\n <cds-structured-list class=\"case-inspection-metadata-tab__list\" [condensed]=\"true\">\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.documentId' | translate }}</cds-list-column>\n <cds-list-column\n ><code>{{ document.id }}</code></cds-list-column\n >\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.definitionName' | translate\n }}</cds-list-column>\n <cds-list-column>{{ document.definitionId?.name }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.definitionKey' | translate\n }}</cds-list-column>\n <cds-list-column\n ><code>{{\n document.definitionId?.blueprintId?.blueprintKey || '-'\n }}</code></cds-list-column\n >\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.definitionVersionTag' | translate\n }}</cds-list-column>\n <cds-list-column>{{\n document.definitionId?.blueprintId?.blueprintVersionTag || '-'\n }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.sequence' | translate }}</cds-list-column>\n <cds-list-column>{{ document.sequence }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.version' | translate }}</cds-list-column>\n <cds-list-column>{{ document.version }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.createdBy' | translate }}</cds-list-column>\n <cds-list-column>{{ document.createdBy }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.createdOn' | translate }}</cds-list-column>\n <cds-list-column>{{ document.createdOn | date: 'medium' }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.modifiedOn' | translate }}</cds-list-column>\n <cds-list-column>{{ document.modifiedOn | date: 'medium' }}</cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.assignee' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.assigneeFullName; else noAssignee\">\n {{ document.assigneeFullName }}\n </ng-container>\n\n <ng-template #noAssignee>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.unassigned' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.assignedTeam' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.assignedTeamTitle; else noTeam\">\n {{ document.assignedTeamTitle }}\n </ng-container>\n\n <ng-template #noTeam>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.unassigned' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{\n 'case.inspection.metadata.internalStatus' | translate\n }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.internalStatus; else noStatus\">\n {{ document.internalStatus }}\n </ng-container>\n\n <ng-template #noStatus>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noStatus' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.tags' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.caseTags?.length; else noTags\">\n <cds-tag\n *ngFor=\"let tag of document.caseTags\"\n [title]=\"tag.title\"\n size=\"sm\"\n type=\"cool-gray\"\n >\n {{ tag.title }}\n </cds-tag>\n </ng-container>\n\n <ng-template #noTags>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noTags' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.relations' | translate }}</cds-list-column>\n <cds-list-column>\n <ng-container *ngIf=\"document.relations?.length; else noRelations\">\n <ul>\n <li *ngFor=\"let relation of document.relations\">{{ relation }}</li>\n </ul>\n </ng-container>\n\n <ng-template #noRelations>\n <span class=\"case-inspection-metadata-tab__empty\">\n {{ 'case.inspection.metadata.noRelations' | translate }}\n </span>\n </ng-template>\n </cds-list-column>\n </cds-list-row>\n\n <cds-list-row>\n <cds-list-column>{{ 'case.inspection.metadata.relatedFiles' | translate }}</cds-list-column>\n <cds-list-column>{{ document.relatedFiles?.length || 0 }}</cds-list-column>\n </cds-list-row>\n </cds-structured-list>\n </ng-container>\n</section>\n", styles: [".case-inspection-metadata-tab{border-left:1px solid var(--cds-border-subtle);border-right:1px solid var(--cds-border-subtle)}.case-inspection-metadata-tab__list ul{margin:0;padding-left:var(--cds-spacing-06)}.case-inspection-metadata-tab__error{color:var(--cds-text-error)}.case-inspection-metadata-tab__empty{color:var(--cds-text-helper)}\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"] }]
|
|
7581
7593
|
}], ctorParameters: () => [{ type: CaseInspectionService }], propDecorators: { documentId: [{
|
|
7582
7594
|
type: Input
|
|
7583
7595
|
}] } });
|