@valtimo/case 13.4.0 → 13.5.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 +24 -87
- package/fesm2022/valtimo-case.mjs.map +1 -1
- package/lib/case-routing.module.d.ts.map +1 -1
- package/lib/components/case-detail/case-detail.component.d.ts +2 -2
- package/lib/components/case-detail/case-detail.component.d.ts.map +1 -1
- package/lib/components/case-detail/tab/widgets/components/collection/case-widget-collection.component.d.ts +2 -3
- package/lib/components/case-detail/tab/widgets/components/collection/case-widget-collection.component.d.ts.map +1 -1
- package/lib/components/case-detail/tab/widgets/widgets.component.d.ts +2 -3
- package/lib/components/case-detail/tab/widgets/widgets.component.d.ts.map +1 -1
- package/lib/components/case-list/case-list.component.d.ts.map +1 -1
- package/lib/models/case-widget.model.d.ts +3 -71
- package/lib/models/case-widget.model.d.ts.map +1 -1
- package/lib/models/index.d.ts +1 -3
- package/lib/models/index.d.ts.map +1 -1
- package/lib/services/case-widgets-api.service.d.ts +2 -2
- package/lib/services/case-widgets-api.service.d.ts.map +1 -1
- package/package.json +1 -1
- package/lib/models/case-widget-content.model.d.ts +0 -52
- package/lib/models/case-widget-content.model.d.ts.map +0 -1
- package/lib/models/case-widget-display.model.d.ts +0 -62
- package/lib/models/case-widget-display.model.d.ts.map +0 -1
|
@@ -15,7 +15,7 @@ import * as i1$2 from '@angular/router';
|
|
|
15
15
|
import { NavigationStart, RouterModule } from '@angular/router';
|
|
16
16
|
import * as i1$3 from 'ngx-logger';
|
|
17
17
|
import * as i2$1 from '@valtimo/components';
|
|
18
|
-
import { FormioOptionsImpl, TimelineItemImpl, CASES_WITHOUT_STATUS_KEY, CarbonListModule, EllipsisPipe, FormIoModule, WidgetModule, CurrentCarbonTheme, CARBON_THEME,
|
|
18
|
+
import { FormioOptionsImpl, TimelineItemImpl, CASES_WITHOUT_STATUS_KEY, CarbonListModule, EllipsisPipe, FormIoModule, WidgetModule, CurrentCarbonTheme, CARBON_THEME, ObserveSizeDirective, ValtimoCdsModalDirective, RenderInBodyComponent, ViewType, QUICK_SEARCH_SERVICE, CarbonListComponent, BpmnJsDiagramModule, TimelineModule, CamundaFormModule, FilterSidebarModule, DataListModule, ModalModule as ModalModule$1, SpinnerModule, UploaderModule, DropzoneModule, SelectModule, InputLabelModule, ParagraphModule, TableModule, VModalModule, SearchableDropdownSelectModule, SearchFieldsModule, InputModule as InputModule$1, FormModule as FormModule$1, ConfirmationModalModule, IsArrayPipe, StatusSelectorComponent, RenderInPageHeaderDirective, ValtimoCdsOverflowButtonDirective, CaseTagsSelectorComponent, ListColumnViewComponent, QuickSearchComponent } from '@valtimo/components';
|
|
19
19
|
export { CASES_WITHOUT_STATUS_KEY } from '@valtimo/components';
|
|
20
20
|
import moment from 'moment';
|
|
21
21
|
import { catchError, switchMap as switchMap$1, map as map$1, tap as tap$1, take as take$1 } from 'rxjs/operators';
|
|
@@ -780,75 +780,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
780
780
|
* limitations under the License.
|
|
781
781
|
*/
|
|
782
782
|
|
|
783
|
-
/*
|
|
784
|
-
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
785
|
-
*
|
|
786
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
787
|
-
* you may not use this file except in compliance with the License.
|
|
788
|
-
* You may obtain a copy of the License at
|
|
789
|
-
*
|
|
790
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
791
|
-
*
|
|
792
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
793
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
794
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
795
|
-
* See the License for the specific language governing permissions and
|
|
796
|
-
* limitations under the License.
|
|
797
|
-
*/
|
|
798
|
-
|
|
799
|
-
/*
|
|
800
|
-
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
801
|
-
*
|
|
802
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
803
|
-
* you may not use this file except in compliance with the License.
|
|
804
|
-
* You may obtain a copy of the License at
|
|
805
|
-
*
|
|
806
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
807
|
-
*
|
|
808
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
809
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
810
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
811
|
-
* See the License for the specific language governing permissions and
|
|
812
|
-
* limitations under the License.
|
|
813
|
-
*/
|
|
814
|
-
var CaseWidgetDisplayTypeKey;
|
|
815
|
-
(function (CaseWidgetDisplayTypeKey) {
|
|
816
|
-
CaseWidgetDisplayTypeKey["TEXT"] = "text";
|
|
817
|
-
CaseWidgetDisplayTypeKey["BOOLEAN"] = "boolean";
|
|
818
|
-
CaseWidgetDisplayTypeKey["CURRENCY"] = "currency";
|
|
819
|
-
CaseWidgetDisplayTypeKey["DATE"] = "date";
|
|
820
|
-
CaseWidgetDisplayTypeKey["DATE_TIME"] = "datetime";
|
|
821
|
-
CaseWidgetDisplayTypeKey["ENUM"] = "enum";
|
|
822
|
-
CaseWidgetDisplayTypeKey["NUMBER"] = "number";
|
|
823
|
-
CaseWidgetDisplayTypeKey["PERCENT"] = "percent";
|
|
824
|
-
CaseWidgetDisplayTypeKey["LINK"] = "link";
|
|
825
|
-
})(CaseWidgetDisplayTypeKey || (CaseWidgetDisplayTypeKey = {}));
|
|
826
|
-
|
|
827
|
-
/*
|
|
828
|
-
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
829
|
-
*
|
|
830
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
831
|
-
* you may not use this file except in compliance with the License.
|
|
832
|
-
* You may obtain a copy of the License at
|
|
833
|
-
*
|
|
834
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
835
|
-
*
|
|
836
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
837
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
838
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
839
|
-
* See the License for the specific language governing permissions and
|
|
840
|
-
* limitations under the License.
|
|
841
|
-
*/
|
|
842
|
-
var CaseWidgetType;
|
|
843
|
-
(function (CaseWidgetType) {
|
|
844
|
-
CaseWidgetType["FIELDS"] = "fields";
|
|
845
|
-
CaseWidgetType["TABLE"] = "table";
|
|
846
|
-
CaseWidgetType["CUSTOM"] = "custom";
|
|
847
|
-
CaseWidgetType["COLLECTION"] = "collection";
|
|
848
|
-
CaseWidgetType["FORMIO"] = "formio";
|
|
849
|
-
CaseWidgetType["DIVIDER"] = "divider";
|
|
850
|
-
})(CaseWidgetType || (CaseWidgetType = {}));
|
|
851
|
-
|
|
852
783
|
/*
|
|
853
784
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
854
785
|
*
|
|
@@ -2590,7 +2521,7 @@ class CaseWidgetCollectionComponent extends WidgetProcess {
|
|
|
2590
2521
|
this._queryParams$.next(`page=${event.currentPage - 1}&size=${event.pageLength}`);
|
|
2591
2522
|
}
|
|
2592
2523
|
onProcessStartClick(process) {
|
|
2593
|
-
this.widgetsService.startProcess(process.processDefinitionKey);
|
|
2524
|
+
this.widgetsService.startProcess(process.processDefinitionKey ?? '');
|
|
2594
2525
|
}
|
|
2595
2526
|
getPageSizeParam(widgetConfiguration) {
|
|
2596
2527
|
return `size=${widgetConfiguration.properties.defaultPageSize}`;
|
|
@@ -2658,7 +2589,7 @@ class CaseDetailWidgetsComponent {
|
|
|
2658
2589
|
]).pipe(switchMap(([documentId, tabKey, documentUpdatedEvent]) => {
|
|
2659
2590
|
return this.filterDuplicateConfigurations(this.widgetsApiService.getWidgetTabConfiguration(documentId, tabKey), documentUpdatedEvent);
|
|
2660
2591
|
}), shareReplay({ bufferSize: 1, refCount: true }));
|
|
2661
|
-
this.widgetGroups$ = this._widgetConfiguration$.pipe(map(
|
|
2592
|
+
this.widgetGroups$ = this._widgetConfiguration$.pipe(map(widgets => this.toCaseWidgetGroups(widgets)));
|
|
2662
2593
|
this.widgetComponentMap = {
|
|
2663
2594
|
[WidgetType.FIELDS]: CaseWidgetFieldComponent,
|
|
2664
2595
|
[WidgetType.CUSTOM]: CaseWidgetCustomComponent,
|
|
@@ -2676,7 +2607,7 @@ class CaseDetailWidgetsComponent {
|
|
|
2676
2607
|
}
|
|
2677
2608
|
toCaseWidgetGroups(widgets) {
|
|
2678
2609
|
const groups = widgets.reduce((acc, widget) => {
|
|
2679
|
-
if (widget.type ===
|
|
2610
|
+
if (widget.type === WidgetType.DIVIDER) {
|
|
2680
2611
|
acc.push({ divider: widget, widgets: [] });
|
|
2681
2612
|
}
|
|
2682
2613
|
else {
|
|
@@ -3040,7 +2971,9 @@ class CaseWidgetsApiService extends BaseApiService {
|
|
|
3040
2971
|
this.configService = configService;
|
|
3041
2972
|
}
|
|
3042
2973
|
getWidgetTabConfiguration(documentId, tabKey) {
|
|
3043
|
-
return this.httpClient
|
|
2974
|
+
return this.httpClient
|
|
2975
|
+
.get(this.getApiUrl(`v1/document/${documentId}/widget-tab/${tabKey}`))
|
|
2976
|
+
.pipe(map((res) => res.widgets));
|
|
3044
2977
|
}
|
|
3045
2978
|
getWidgetData(documentId, tabKey, widgetKey, queryParams) {
|
|
3046
2979
|
return this.httpClient.get(this.getApiUrl(!queryParams
|
|
@@ -4224,12 +4157,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
4224
4157
|
* See the License for the specific language governing permissions and
|
|
4225
4158
|
* limitations under the License.
|
|
4226
4159
|
*/
|
|
4227
|
-
class CaseDetailComponent
|
|
4160
|
+
class CaseDetailComponent {
|
|
4228
4161
|
get activeTabName$() {
|
|
4229
4162
|
return combineLatest([this.route.paramMap, this._activeTabName$]).pipe(map(([paramMap, activeTabName]) => !activeTabName ? (paramMap.get('tab') ?? null) : activeTabName));
|
|
4230
4163
|
}
|
|
4231
4164
|
constructor(breadcrumbService, caseStatusService, cdsThemeService, componentFactoryResolver, documentService, caseDetailLayoutService, caseService, caseTabService, iconService, keyCloakService, logger, notificationService, pageHeaderService, pageTitleService, permissionService, translateService, renderer, route, router, widgetsService, userProviderService, htmlDocument) {
|
|
4232
|
-
super();
|
|
4233
4165
|
this.breadcrumbService = breadcrumbService;
|
|
4234
4166
|
this.caseStatusService = caseStatusService;
|
|
4235
4167
|
this.cdsThemeService = cdsThemeService;
|
|
@@ -4468,12 +4400,14 @@ class CaseDetailComponent extends PendingChangesComponent {
|
|
|
4468
4400
|
this._oldTabName = activeTab.name;
|
|
4469
4401
|
this._pendingTab = tab;
|
|
4470
4402
|
this._activeTabName$.next(tab.name);
|
|
4471
|
-
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4403
|
+
// to do: re-introduce when pending changes is implemented again
|
|
4404
|
+
// this.pendingChanges =
|
|
4405
|
+
// tab.contentKey === 'summary' ? false : !tab.showTasks && this._activeChange;
|
|
4406
|
+
//
|
|
4407
|
+
// if (this.pendingChanges) {
|
|
4408
|
+
// this.tabLoader.replaceUrlState(tab);
|
|
4409
|
+
// return;
|
|
4410
|
+
// }
|
|
4477
4411
|
if (!tab.showTasks)
|
|
4478
4412
|
this.openTaskAndProcessLinkInModal$.next(null);
|
|
4479
4413
|
this.tabLoader.load(tab);
|
|
@@ -4614,11 +4548,11 @@ class CaseDetailComponent extends PendingChangesComponent {
|
|
|
4614
4548
|
}));
|
|
4615
4549
|
}
|
|
4616
4550
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CaseDetailComponent, deps: [{ token: i2$1.BreadcrumbService }, { token: i2.CaseStatusService }, { token: i2$1.CdsThemeService }, { token: i0.ComponentFactoryResolver }, { token: i2.DocumentService }, { token: CaseDetailLayoutService }, { token: CaseService }, { token: CaseTabService }, { token: i4$1.IconService }, { token: i5$2.KeycloakService }, { token: i1$3.NGXLogger }, { token: i1.GlobalNotificationService }, { token: i2$1.PageHeaderService }, { token: i2$1.PageTitleService }, { token: i2$3.PermissionService }, { token: i4.TranslateService }, { token: i0.Renderer2 }, { token: i1$2.ActivatedRoute }, { token: i1$2.Router }, { token: WidgetsService }, { token: i12.UserProviderService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4617
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", 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 }], usesInheritance: true, 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<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 } as tabContentObs\"\n #tabContentContainer\n class=\"tab-content-container\"\n [ngClass]=\"{\n 'tab-content-container--dark': isDarkMode$ | async,\n 'tab-content-container--compact': compactMode$ | async,\n }\"\n [style.max-height]=\"tabContentContainerMaxHeight$ | async\"\n >\n <as-split\n direction=\"horizontal\"\n [disabled]=\"!tabContentObs.caseDetailLayout.widthAdjustable\"\n [gutterSize]=\"CASE_DETAIL_GUTTER_SIZE\"\n [unit]=\"tabContentObs.caseDetailLayout.unit\"\n >\n <as-split-area\n [size]=\"tabContentObs.caseDetailLayout.leftPanelWidth\"\n [minSize]=\"tabContentObs.caseDetailLayout.leftPanelMinWidth\"\n [maxSize]=\"tabContentObs.caseDetailLayout.leftPanelMaxWidth\"\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.taskAndProcessLinkOpenedInPanel) {\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\n @if (tabContentObs.taskAndProcessLinkOpenedInPanel) {\n <valtimo-case-detail-task-detail\n [taskAndProcessLink]=\"tabContentObs.taskAndProcessLinkOpenedInPanel\"\n (activeChange)=\"onActiveChangeEvent($event)\"\n (closeEvent)=\"onTaskDetailsClose()\"\n (formSubmit)=\"onFormSubmitEvent()\"\n >\n </valtimo-case-detail-task-detail>\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-case-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-case-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <cds-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n >\n {{ 'case.claimAssigneeCase' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #unassignButton let-canHaveAssignee=\"canHaveAssignee\" let-assigneeId=\"assigneeId\">\n <cds-overflow-menu-option\n *ngIf=\"canHaveAssignee\"\n [disabled]=\"!assigneeId\"\n (selected)=\"unassignAssignee()\"\n >\n {{ 'assignDocument.remove' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #deleteButton let-canDelete=\"canDelete\">\n <cds-overflow-menu-option\n *ngIf=\"canDelete\"\n [disabled]=\"isDeleting$ | async\"\n (click)=\"deleteDocument()\"\n type=\"danger\"\n >\n {{ 'case.delete.delete' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"processDefinitionCaseDefinitions.length === 0\"\n [ngbTooltip]=\"processDefinitionCaseDefinitions.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 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 <cds-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"obs.canHaveAssignee || obs.canDelete\"\n flip=\"true\"\n [offset]=\"(compactMode$ | async) ? {y: 48, x: -4} : {y: 48, x: 4}\"\n class=\"overflow-button assign-overflow\"\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: {canHaveAssignee: obs.canHaveAssignee, assigneeId: obs.assigneeId}\n \"\n >\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"deleteButton; context: {canDelete: obs.canDelete}\">\n </ng-container>\n </cds-overflow-menu>\n\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [width]=\"dropdownWidth$ | async\"\n [customTrigger]=\"customStartTrigger\"\n [offset]=\"{y: 48, x: 35}\"\n class=\"overflow-button case-detail-overflow\"\n >\n <cds-overflow-menu-option\n *ngFor=\"let processDefinitionCaseDefinition of processDefinitionCaseDefinitions\"\n [attr.title]=\"processDefinitionCaseDefinition.displayName\"\n (click)=\"startProcess(processDefinitionCaseDefinition)\"\n >\n {{ processDefinitionCaseDefinition.displayName }}\n </cds-overflow-menu-option>\n </cds-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}.cds--overflow-menu-options{margin-top:32px}.assign-overflow{margin-right:8px}.buttons-container{display:flex;flex-direction:row}.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}: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-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.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$1.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$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i2$1.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i4$1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "component", type: i4$1.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "description", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i4$1.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i2$1.ValtimoCdsOverflowButtonDirective, selector: "[valtimoCdsOverflowButton]", inputs: ["width"] }, { 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", "activeChange", "formSubmit"] }, { kind: "component", type: i17.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: i17.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$1.ObserveSizeDirective, selector: "[observeSize]", outputs: ["widthChange", "heightChange"] }, { kind: "component", type: CaseSupportingProcessStartModalComponent, selector: "valtimo-case-supporting-process-start-modal", inputs: ["isAdmin"], outputs: ["formSubmit"] }, { kind: "component", type: CaseAssignUserComponent, selector: "valtimo-case-assign-user", inputs: ["documentId", "assigneeId", "assigneeFullName", "hasPermission"], outputs: ["assignmentOfDocumentChanged"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: TabTranslatePipe, name: "tabTranslate" }] }); }
|
|
4551
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", 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-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<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 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.taskAndProcessLinkOpenedInPanel) {\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\n @if (tabContentObs.taskAndProcessLinkOpenedInPanel) {\n <valtimo-case-detail-task-detail\n [taskAndProcessLink]=\"tabContentObs.taskAndProcessLinkOpenedInPanel\"\n (activeChange)=\"onActiveChangeEvent($event)\"\n (closeEvent)=\"onTaskDetailsClose()\"\n (formSubmit)=\"onFormSubmitEvent()\"\n >\n </valtimo-case-detail-task-detail>\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-case-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-case-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <cds-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n >\n {{ 'case.claimAssigneeCase' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #unassignButton let-canHaveAssignee=\"canHaveAssignee\" let-assigneeId=\"assigneeId\">\n <cds-overflow-menu-option\n *ngIf=\"canHaveAssignee\"\n [disabled]=\"!assigneeId\"\n (selected)=\"unassignAssignee()\"\n >\n {{ 'assignDocument.remove' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #deleteButton let-canDelete=\"canDelete\">\n <cds-overflow-menu-option\n *ngIf=\"canDelete\"\n [disabled]=\"isDeleting$ | async\"\n (click)=\"deleteDocument()\"\n type=\"danger\"\n >\n {{ 'case.delete.delete' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"processDefinitionCaseDefinitions.length === 0\"\n [ngbTooltip]=\"processDefinitionCaseDefinitions.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 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 <cds-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"obs.canHaveAssignee || obs.canDelete\"\n flip=\"true\"\n [offset]=\"(compactMode$ | async) ? {y: 48, x: -4} : {y: 48, x: 4}\"\n class=\"overflow-button assign-overflow\"\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: {canHaveAssignee: obs.canHaveAssignee, assigneeId: obs.assigneeId}\n \"\n >\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"deleteButton; context: {canDelete: obs.canDelete}\">\n </ng-container>\n </cds-overflow-menu>\n\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [width]=\"dropdownWidth$ | async\"\n [customTrigger]=\"customStartTrigger\"\n [offset]=\"{y: 48, x: 35}\"\n class=\"overflow-button case-detail-overflow\"\n >\n <cds-overflow-menu-option\n *ngFor=\"let processDefinitionCaseDefinition of processDefinitionCaseDefinitions\"\n [attr.title]=\"processDefinitionCaseDefinition.displayName\"\n (click)=\"startProcess(processDefinitionCaseDefinition)\"\n >\n {{ processDefinitionCaseDefinition.displayName }}\n </cds-overflow-menu-option>\n </cds-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}.cds--overflow-menu-options{margin-top:32px}.assign-overflow{margin-right:8px}.buttons-container{display:flex;flex-direction:row}.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}.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-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.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$1.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$1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i2$1.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i4$1.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "component", type: i4$1.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "description", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i4$1.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i2$1.ValtimoCdsOverflowButtonDirective, selector: "[valtimoCdsOverflowButton]", inputs: ["width"] }, { 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", "activeChange", "formSubmit"] }, { kind: "component", type: i17.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: i17.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$1.ObserveSizeDirective, selector: "[observeSize]", outputs: ["widthChange", "heightChange"] }, { kind: "component", type: CaseSupportingProcessStartModalComponent, selector: "valtimo-case-supporting-process-start-modal", inputs: ["isAdmin"], outputs: ["formSubmit"] }, { kind: "component", type: CaseAssignUserComponent, selector: "valtimo-case-assign-user", inputs: ["documentId", "assigneeId", "assigneeFullName", "hasPermission"], outputs: ["assignmentOfDocumentChanged"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: TabTranslatePipe, name: "tabTranslate" }] }); }
|
|
4618
4552
|
}
|
|
4619
4553
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CaseDetailComponent, decorators: [{
|
|
4620
4554
|
type: Component,
|
|
4621
|
-
args: [{ standalone: false, providers: [CaseTabService, CaseDetailLayoutService, ObserveSizeDirective], 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<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 } as tabContentObs\"\n #tabContentContainer\n class=\"tab-content-container\"\n [ngClass]=\"{\n 'tab-content-container--dark': isDarkMode$ | async,\n 'tab-content-container--compact': compactMode$ | async,\n }\"\n [style.max-height]=\"tabContentContainerMaxHeight$ | async\"\n >\n <as-split\n direction=\"horizontal\"\n [disabled]=\"!tabContentObs.caseDetailLayout.widthAdjustable\"\n [gutterSize]=\"CASE_DETAIL_GUTTER_SIZE\"\n [unit]=\"tabContentObs.caseDetailLayout.unit\"\n >\n <as-split-area\n [size]=\"tabContentObs.caseDetailLayout.leftPanelWidth\"\n [minSize]=\"tabContentObs.caseDetailLayout.leftPanelMinWidth\"\n [maxSize]=\"tabContentObs.caseDetailLayout.leftPanelMaxWidth\"\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.taskAndProcessLinkOpenedInPanel) {\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\n @if (tabContentObs.taskAndProcessLinkOpenedInPanel) {\n <valtimo-case-detail-task-detail\n [taskAndProcessLink]=\"tabContentObs.taskAndProcessLinkOpenedInPanel\"\n (activeChange)=\"onActiveChangeEvent($event)\"\n (closeEvent)=\"onTaskDetailsClose()\"\n (formSubmit)=\"onFormSubmitEvent()\"\n >\n </valtimo-case-detail-task-detail>\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-case-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-case-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <cds-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n >\n {{ 'case.claimAssigneeCase' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #unassignButton let-canHaveAssignee=\"canHaveAssignee\" let-assigneeId=\"assigneeId\">\n <cds-overflow-menu-option\n *ngIf=\"canHaveAssignee\"\n [disabled]=\"!assigneeId\"\n (selected)=\"unassignAssignee()\"\n >\n {{ 'assignDocument.remove' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #deleteButton let-canDelete=\"canDelete\">\n <cds-overflow-menu-option\n *ngIf=\"canDelete\"\n [disabled]=\"isDeleting$ | async\"\n (click)=\"deleteDocument()\"\n type=\"danger\"\n >\n {{ 'case.delete.delete' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"processDefinitionCaseDefinitions.length === 0\"\n [ngbTooltip]=\"processDefinitionCaseDefinitions.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 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 <cds-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"obs.canHaveAssignee || obs.canDelete\"\n flip=\"true\"\n [offset]=\"(compactMode$ | async) ? {y: 48, x: -4} : {y: 48, x: 4}\"\n class=\"overflow-button assign-overflow\"\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: {canHaveAssignee: obs.canHaveAssignee, assigneeId: obs.assigneeId}\n \"\n >\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"deleteButton; context: {canDelete: obs.canDelete}\">\n </ng-container>\n </cds-overflow-menu>\n\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [width]=\"dropdownWidth$ | async\"\n [customTrigger]=\"customStartTrigger\"\n [offset]=\"{y: 48, x: 35}\"\n class=\"overflow-button case-detail-overflow\"\n >\n <cds-overflow-menu-option\n *ngFor=\"let processDefinitionCaseDefinition of processDefinitionCaseDefinitions\"\n [attr.title]=\"processDefinitionCaseDefinition.displayName\"\n (click)=\"startProcess(processDefinitionCaseDefinition)\"\n >\n {{ processDefinitionCaseDefinition.displayName }}\n </cds-overflow-menu-option>\n </cds-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}.cds--overflow-menu-options{margin-top:32px}.assign-overflow{margin-right:8px}.buttons-container{display:flex;flex-direction:row}.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}: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-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"] }]
|
|
4555
|
+
args: [{ standalone: false, providers: [CaseTabService, CaseDetailLayoutService, ObserveSizeDirective], 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<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 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.taskAndProcessLinkOpenedInPanel) {\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\n @if (tabContentObs.taskAndProcessLinkOpenedInPanel) {\n <valtimo-case-detail-task-detail\n [taskAndProcessLink]=\"tabContentObs.taskAndProcessLinkOpenedInPanel\"\n (activeChange)=\"onActiveChangeEvent($event)\"\n (closeEvent)=\"onTaskDetailsClose()\"\n (formSubmit)=\"onFormSubmitEvent()\"\n >\n </valtimo-case-detail-task-detail>\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-case-assign-user\n *ngIf=\"canAssignLoaded$ | async\"\n [assigneeFullName]=\"document?.assigneeFullName\"\n [assigneeId]=\"document.assigneeId\"\n [documentId]=\"document.id\"\n [hasPermission]=\"canAssign\"\n (assignmentOfDocumentChanged)=\"assignmentOfDocumentChanged()\"\n ></valtimo-case-assign-user>\n </div>\n</ng-template>\n\n<ng-template #claimButton let-canClaim=\"canClaim\" let-canHaveAssignee=\"canHaveAssignee\">\n <cds-overflow-menu-option\n *ngIf=\"canClaim && canHaveAssignee\"\n [disabled]=\"(isAssigning$ | async) || (isAssignedToCurrentUser$ | async)\"\n (click)=\"claimAssignee()\"\n >\n {{ 'case.claimAssigneeCase' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #unassignButton let-canHaveAssignee=\"canHaveAssignee\" let-assigneeId=\"assigneeId\">\n <cds-overflow-menu-option\n *ngIf=\"canHaveAssignee\"\n [disabled]=\"!assigneeId\"\n (selected)=\"unassignAssignee()\"\n >\n {{ 'assignDocument.remove' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #deleteButton let-canDelete=\"canDelete\">\n <cds-overflow-menu-option\n *ngIf=\"canDelete\"\n [disabled]=\"isDeleting$ | async\"\n (click)=\"deleteDocument()\"\n type=\"danger\"\n >\n {{ 'case.delete.delete' | translate }}\n </cds-overflow-menu-option>\n</ng-template>\n\n<ng-template #customStartTrigger>\n <button\n [size]=\"(compactMode$ | async) ? 'sm' : 'lg'\"\n cdsButton=\"primary\"\n [disabled]=\"processDefinitionCaseDefinitions.length === 0\"\n [ngbTooltip]=\"processDefinitionCaseDefinitions.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 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 <cds-overflow-menu\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n *ngIf=\"obs.canHaveAssignee || obs.canDelete\"\n flip=\"true\"\n [offset]=\"(compactMode$ | async) ? {y: 48, x: -4} : {y: 48, x: 4}\"\n class=\"overflow-button assign-overflow\"\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: {canHaveAssignee: obs.canHaveAssignee, assigneeId: obs.assigneeId}\n \"\n >\n </ng-container>\n\n <ng-container *ngTemplateOutlet=\"deleteButton; context: {canDelete: obs.canDelete}\">\n </ng-container>\n </cds-overflow-menu>\n\n <cds-overflow-menu\n valtimoCdsOverflowButton\n [ngClass]=\"{'--compact': compactMode$ | async}\"\n [width]=\"dropdownWidth$ | async\"\n [customTrigger]=\"customStartTrigger\"\n [offset]=\"{y: 48, x: 35}\"\n class=\"overflow-button case-detail-overflow\"\n >\n <cds-overflow-menu-option\n *ngFor=\"let processDefinitionCaseDefinition of processDefinitionCaseDefinitions\"\n [attr.title]=\"processDefinitionCaseDefinition.displayName\"\n (click)=\"startProcess(processDefinitionCaseDefinition)\"\n >\n {{ processDefinitionCaseDefinition.displayName }}\n </cds-overflow-menu-option>\n </cds-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}.cds--overflow-menu-options{margin-top:32px}.assign-overflow{margin-right:8px}.buttons-container{display:flex;flex-direction:row}.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}.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-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"] }]
|
|
4622
4556
|
}], ctorParameters: () => [{ type: i2$1.BreadcrumbService }, { type: i2.CaseStatusService }, { type: i2$1.CdsThemeService }, { type: i0.ComponentFactoryResolver }, { type: i2.DocumentService }, { type: CaseDetailLayoutService }, { type: CaseService }, { type: CaseTabService }, { type: i4$1.IconService }, { type: i5$2.KeycloakService }, { type: i1$3.NGXLogger }, { type: i1.GlobalNotificationService }, { type: i2$1.PageHeaderService }, { type: i2$1.PageTitleService }, { type: i2$3.PermissionService }, { type: i4.TranslateService }, { type: i0.Renderer2 }, { type: i1$2.ActivatedRoute }, { type: i1$2.Router }, { type: WidgetsService }, { type: i12.UserProviderService }, { type: Document, decorators: [{
|
|
4623
4557
|
type: Inject,
|
|
4624
4558
|
args: [DOCUMENT]
|
|
@@ -5226,7 +5160,9 @@ class CaseListComponent {
|
|
|
5226
5160
|
forceRefresh: currForceRefresh,
|
|
5227
5161
|
})), switchMap(([documentSearchRequest, assigneeFilter, searchValues, selectedStatuses, selectedCaseTagKeys, _, hasApiColumnConfig, allStatuses,]) => {
|
|
5228
5162
|
const obsApi = of(hasApiColumnConfig);
|
|
5229
|
-
const statusKeys =
|
|
5163
|
+
const statusKeys = allStatuses.length === 1
|
|
5164
|
+
? []
|
|
5165
|
+
: selectedStatuses.map((statusKey) => statusKey === CASES_WITHOUT_STATUS_KEY ? null : statusKey);
|
|
5230
5166
|
if ((Object.keys(searchValues) || []).length > 0) {
|
|
5231
5167
|
return forkJoin({
|
|
5232
5168
|
documents: !hasApiColumnConfig
|
|
@@ -5688,7 +5624,8 @@ const routes = [
|
|
|
5688
5624
|
path: 'cases/:caseDefinitionKey/document/:documentId/:tab',
|
|
5689
5625
|
component: CaseDetailComponent,
|
|
5690
5626
|
canActivate: [AuthGuardService],
|
|
5691
|
-
|
|
5627
|
+
//TODO: Re-enable when pending changes is fixed
|
|
5628
|
+
// canDeactivate: [pendingChangesGuard],
|
|
5692
5629
|
data: {
|
|
5693
5630
|
title: 'Case details',
|
|
5694
5631
|
parentPath: 'cases/:caseDefinitionKey',
|
|
@@ -6092,5 +6029,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
6092
6029
|
* Generated bundle index. Do not edit.
|
|
6093
6030
|
*/
|
|
6094
6031
|
|
|
6095
|
-
export { ApiTabType, CASE_DETAIL_DEFAULT_DISPLAY_SIZE, CASE_DETAIL_DEFAULT_DISPLAY_TYPE, CASE_DETAIL_GUTTER_SIZE, CASE_DETAIL_LEFT_PANEL_MIN_WIDTH, CASE_DETAIL_RIGHT_PANEL_MIN_WIDTHS, CASE_DETAIL_START_PROCESS_DROPDOWN_WIDTH, CASE_DETAIL_TASK_LIST_WIDTH, CASE_LIST_NO_RESULTS_MESSAGE, CASE_LIST_TABLE_TRANSLATIONS, CASE_TAB_TOKEN, CASE_WITHOUT_STATUS_STATUS, CaseBulkAssignModalComponent, CaseBulkAssignService, CaseColumnService, CaseDetailComponent, CaseDetailLayoutService, CaseDetailTabAuditComponent, CaseDetailTabDocumentsComponent, CaseDetailTabNotesComponent, CaseDetailTabProgressComponent, CaseDetailTabSummaryComponent, CaseExportService, CaseHeaderWidgetApiService, CaseListActionsComponent, CaseListAssigneeService, CaseListCaseTagService, CaseListComponent, CaseListHiddenColumnsService, CaseListPaginationService, CaseListQuickSearchService, CaseListSearchService, CaseListService, CaseListStatusService, CaseMenuService, CaseModule, CaseParameterService, CaseProcessStartModalComponent, CaseService, CaseTabApiService, CaseTabService,
|
|
6032
|
+
export { ApiTabType, CASE_DETAIL_DEFAULT_DISPLAY_SIZE, CASE_DETAIL_DEFAULT_DISPLAY_TYPE, CASE_DETAIL_GUTTER_SIZE, CASE_DETAIL_LEFT_PANEL_MIN_WIDTH, CASE_DETAIL_RIGHT_PANEL_MIN_WIDTHS, CASE_DETAIL_START_PROCESS_DROPDOWN_WIDTH, CASE_DETAIL_TASK_LIST_WIDTH, CASE_LIST_NO_RESULTS_MESSAGE, CASE_LIST_TABLE_TRANSLATIONS, CASE_TAB_TOKEN, CASE_WITHOUT_STATUS_STATUS, CaseBulkAssignModalComponent, CaseBulkAssignService, CaseColumnService, CaseDetailComponent, CaseDetailLayoutService, CaseDetailTabAuditComponent, CaseDetailTabDocumentsComponent, CaseDetailTabNotesComponent, CaseDetailTabProgressComponent, CaseDetailTabSummaryComponent, CaseExportService, CaseHeaderWidgetApiService, CaseListActionsComponent, CaseListAssigneeService, CaseListCaseTagService, CaseListComponent, CaseListHiddenColumnsService, CaseListPaginationService, CaseListQuickSearchService, CaseListSearchService, CaseListService, CaseListStatusService, CaseMenuService, CaseModule, CaseParameterService, CaseProcessStartModalComponent, CaseService, CaseTabApiService, CaseTabService, CaseWidgetsApiService, DEFAULT_CASE_LIST_TABS, DEFAULT_TABS, DEFAULT_TAB_COMPONENTS, DefaultTabs, StartModalService, TAB_MAP, TabImpl, TabLoaderImpl, WIDGET_HEIGHT_1X, WIDGET_WIDTH_1X };
|
|
6096
6033
|
//# sourceMappingURL=valtimo-case.mjs.map
|