@valtimo/task 12.5.1 → 12.6.1
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/esm2022/lib/components/assign-user-to-task/assign-user-to-task.component.mjs +3 -3
- package/esm2022/lib/components/task-detail-content/task-detail-content.component.mjs +70 -46
- package/esm2022/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.mjs +29 -5
- package/esm2022/lib/components/task-detail-modal/task-detail-modal.component.mjs +18 -3
- package/esm2022/lib/models/task.model.mjs +1 -1
- package/esm2022/lib/services/task-intermediate-save.service.mjs +6 -4
- package/esm2022/lib/services/task.service.mjs +1 -1
- package/esm2022/lib/task.module.mjs +2 -2
- package/fesm2022/valtimo-task.mjs +121 -56
- package/fesm2022/valtimo-task.mjs.map +1 -1
- package/lib/components/task-detail-content/task-detail-content.component.d.ts +5 -2
- package/lib/components/task-detail-content/task-detail-content.component.d.ts.map +1 -1
- package/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.d.ts +4 -1
- package/lib/components/task-detail-intermediate-save/task-detail-intermediate-save.component.d.ts.map +1 -1
- package/lib/components/task-detail-modal/task-detail-modal.component.d.ts +6 -1
- package/lib/components/task-detail-modal/task-detail-modal.component.d.ts.map +1 -1
- package/lib/models/task.model.d.ts +1 -17
- package/lib/models/task.model.d.ts.map +1 -1
- package/lib/services/task-intermediate-save.service.d.ts +1 -1
- package/lib/services/task-intermediate-save.service.d.ts.map +1 -1
- package/lib/services/task.service.d.ts +2 -1
- package/lib/services/task.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, EventEmitter, Component, Input, Output, ViewContainerRef, ChangeDetectionStrategy, Optional, Inject, ViewChild, signal, ViewEncapsulation, HostListener, NgModule } from '@angular/core';
|
|
3
3
|
import * as i9 from '@valtimo/components';
|
|
4
4
|
import { ViewType, SearchableDropdownSelectModule, FormioOptionsImpl, FormIoModule, ConfirmationModalModule, TooltipModule, CarbonListModule, PageHeaderModule, WidgetModule, SpinnerModule, CamundaFormModule, RenderInPageHeaderDirectiveModule, SearchFieldsModule } from '@valtimo/components';
|
|
5
|
-
import { BehaviorSubject, combineLatest, tap, filter, switchMap, of, map as map$1, Subscription, take as take$1, distinctUntilChanged, Subject } from 'rxjs';
|
|
5
|
+
import { BehaviorSubject, combineLatest, tap, filter, switchMap, of, map as map$1, catchError, Subscription, take as take$1, distinctUntilChanged, Subject } from 'rxjs';
|
|
6
6
|
import * as i6 from '@angular/common';
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
|
8
8
|
import * as i3 from '@ngx-translate/core';
|
|
@@ -713,12 +713,14 @@ class TaskIntermediateSaveService extends BaseApiService {
|
|
|
713
713
|
this._formIoFormData$ = new BehaviorSubject({});
|
|
714
714
|
}
|
|
715
715
|
getIntermediateSubmission(taskInstanceId) {
|
|
716
|
-
return this.httpClient
|
|
716
|
+
return this.httpClient
|
|
717
|
+
.get(this.getApiUrl('/v1/form/intermediate/submission'), {
|
|
717
718
|
params: {
|
|
718
719
|
taskInstanceId,
|
|
719
720
|
},
|
|
720
721
|
headers: new HttpHeaders().set(InterceptorSkip, '404'),
|
|
721
|
-
})
|
|
722
|
+
})
|
|
723
|
+
.pipe(catchError(() => of(null)));
|
|
722
724
|
}
|
|
723
725
|
storeIntermediateSubmission(request) {
|
|
724
726
|
return this.httpClient.post(this.getApiUrl('/v1/form/intermediate/submission'), request, {
|
|
@@ -864,11 +866,11 @@ class AssignUserToTaskComponent {
|
|
|
864
866
|
this.disabled$.next(true);
|
|
865
867
|
}
|
|
866
868
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssignUserToTaskComponent, deps: [{ token: TaskService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
867
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AssignUserToTaskComponent, isStandalone: true, selector: "valtimo-assign-user-to-task", inputs: { taskId: "taskId", assigneeId: "assigneeId" }, outputs: { assignmentOfTaskChanged: "assignmentOfTaskChanged" }, usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async,\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <valtimo-searchable-dropdown-select\n *ngIf=\"obs.candidateUsers; else loading\"\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignTask.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [disabled]=\"obs.disabled\"\n [selectedText]=\"'assignTask.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignTask.remove' | translate\"\n [hasSelection]=\"userIdToAssign === obs.idOnServer && obs.idOnServer !== null\"\n [width]=\"250\"\n (itemSelected)=\"assignTask($event)\"\n (clearSelection)=\"unassignTask()\"\n >\n </valtimo-searchable-dropdown-select>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignTask.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n", styles: [".container-fluid{color:#959595}i{font-size:13px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SearchableDropdownSelectModule }, { kind: "component", type: i9.SearchableDropdownSelectComponent, selector: "valtimo-searchable-dropdown-select", inputs: ["style", "items", "buttonText", "searchText", "noResultsText", "disabled", "selectedText", "selectedTextValue", "clearSelectionButtonTitle", "hasSelection", "width", "hasPermission", "showClearSelection"], outputs: ["itemSelected", "clearSelection"] }] }); }
|
|
869
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AssignUserToTaskComponent, isStandalone: true, selector: "valtimo-assign-user-to-task", inputs: { taskId: "taskId", assigneeId: "assigneeId" }, outputs: { assignmentOfTaskChanged: "assignmentOfTaskChanged" }, usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async,\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <valtimo-searchable-dropdown-select\n *ngIf=\"obs.candidateUsers; else loading\"\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignTask.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [disabled]=\"obs.disabled\"\n [selectedText]=\"'assignTask.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignTask.remove' | translate\"\n [hasSelection]=\"userIdToAssign === obs.idOnServer && obs.idOnServer !== null\"\n [width]=\"250\"\n (itemSelected)=\"assignTask($event)\"\n (clearSelection)=\"unassignTask()\"\n >\n </valtimo-searchable-dropdown-select>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignTask.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n", styles: [".container-fluid{color:#959595;padding:0;margin:0}i{font-size:13px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SearchableDropdownSelectModule }, { kind: "component", type: i9.SearchableDropdownSelectComponent, selector: "valtimo-searchable-dropdown-select", inputs: ["style", "items", "buttonText", "searchText", "noResultsText", "disabled", "selectedText", "selectedTextValue", "clearSelectionButtonTitle", "hasSelection", "width", "hasPermission", "showClearSelection"], outputs: ["itemSelected", "clearSelection"] }] }); }
|
|
868
870
|
}
|
|
869
871
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AssignUserToTaskComponent, decorators: [{
|
|
870
872
|
type: Component,
|
|
871
|
-
args: [{ selector: 'valtimo-assign-user-to-task', standalone: true, imports: [CommonModule, TranslateModule, SearchableDropdownSelectModule], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async,\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <valtimo-searchable-dropdown-select\n *ngIf=\"obs.candidateUsers; else loading\"\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignTask.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [disabled]=\"obs.disabled\"\n [selectedText]=\"'assignTask.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignTask.remove' | translate\"\n [hasSelection]=\"userIdToAssign === obs.idOnServer && obs.idOnServer !== null\"\n [width]=\"250\"\n (itemSelected)=\"assignTask($event)\"\n (clearSelection)=\"unassignTask()\"\n >\n </valtimo-searchable-dropdown-select>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignTask.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n", styles: [".container-fluid{color:#959595}i{font-size:13px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
873
|
+
args: [{ selector: 'valtimo-assign-user-to-task', standalone: true, imports: [CommonModule, TranslateModule, SearchableDropdownSelectModule], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n candidateUsers: candidateUsersForTask$ | async,\n disabled: disabled$ | async,\n idOnServer: assignedIdOnServer$ | async,\n } as obs\"\n>\n <div class=\"container-fluid\">\n <div class=\"mt-2 mb-2\">\n <div class=\"col-12 pl-0 d-flex flex-row align-items-center\">\n <valtimo-searchable-dropdown-select\n *ngIf=\"obs.candidateUsers; else loading\"\n [style]=\"'underlinedText'\"\n [items]=\"mapUsersForDropdown(obs.candidateUsers)\"\n [buttonText]=\"'assignTask.header' | translate\"\n [searchText]=\"'interface.typeToSearch' | translate\"\n [noResultsText]=\"'interface.noSearchResults' | translate\"\n [disabled]=\"obs.disabled\"\n [selectedText]=\"'assignTask.assignedTo' | translate\"\n [selectedTextValue]=\"assignedUserFullName$ | async\"\n [clearSelectionButtonTitle]=\"'assignTask.remove' | translate\"\n [hasSelection]=\"userIdToAssign === obs.idOnServer && obs.idOnServer !== null\"\n [width]=\"250\"\n (itemSelected)=\"assignTask($event)\"\n (clearSelection)=\"unassignTask()\"\n >\n </valtimo-searchable-dropdown-select>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template #loading>\n <h5>\n <b>{{ 'assignTask.fetchingUsers' | translate }}</b>\n </h5>\n</ng-template>\n", styles: [".container-fluid{color:#959595;padding:0;margin:0}i{font-size:13px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
872
874
|
}], ctorParameters: () => [{ type: TaskService }], propDecorators: { taskId: [{
|
|
873
875
|
type: Input
|
|
874
876
|
}], assigneeId: [{
|
|
@@ -936,6 +938,16 @@ class TaskDetailContentComponent {
|
|
|
936
938
|
return;
|
|
937
939
|
this.loadTaskDetails(value);
|
|
938
940
|
}
|
|
941
|
+
set taskAndProcessLink(value) {
|
|
942
|
+
if (!value)
|
|
943
|
+
return;
|
|
944
|
+
this.loadTaskDetails(value.task, value.processLinkActivityResult);
|
|
945
|
+
}
|
|
946
|
+
set modalClosed(_) {
|
|
947
|
+
// save form flow data on modal closed
|
|
948
|
+
if (this.formFlow)
|
|
949
|
+
this.formFlow.saveData();
|
|
950
|
+
}
|
|
939
951
|
constructor(configService, documentService, iconService, logger, modalService, permissionService, processLinkService, router, stateService, taskIntermediateSaveService, taskService, toastr, translateService, formViewModel, urlResolverService) {
|
|
940
952
|
this.configService = configService;
|
|
941
953
|
this.documentService = documentService;
|
|
@@ -1036,15 +1048,20 @@ class TaskDetailContentComponent {
|
|
|
1036
1048
|
onFormFlowChangeEvent() {
|
|
1037
1049
|
this.activeChange.emit(true);
|
|
1038
1050
|
}
|
|
1039
|
-
loadTaskDetails(task) {
|
|
1051
|
+
loadTaskDetails(task, processLink) {
|
|
1040
1052
|
this.resetTaskProcessLinkType();
|
|
1041
1053
|
this.resetFormDefinition();
|
|
1042
|
-
this.
|
|
1054
|
+
this.taskInstanceId$.next(task.id);
|
|
1055
|
+
if (!processLink) {
|
|
1056
|
+
this.getTaskProcessLink(task.id);
|
|
1057
|
+
}
|
|
1058
|
+
else {
|
|
1059
|
+
this.setTaskProcessLink(processLink);
|
|
1060
|
+
}
|
|
1043
1061
|
this.setDocumentDefinitionNameInService(task);
|
|
1044
1062
|
const documentId = task.businessKey;
|
|
1045
1063
|
this.stateService.setDocumentId(documentId);
|
|
1046
1064
|
this.task$.next(task);
|
|
1047
|
-
this.taskInstanceId$.next(task.id);
|
|
1048
1065
|
this.page$.next({
|
|
1049
1066
|
title: task.name,
|
|
1050
1067
|
subtitle: `${this.translateService.instant('taskDetail.taskCreated')} ${task.created}`,
|
|
@@ -1052,10 +1069,12 @@ class TaskDetailContentComponent {
|
|
|
1052
1069
|
}
|
|
1053
1070
|
getCurrentProgress(formViewModelComponentRef) {
|
|
1054
1071
|
this.taskInstanceId$
|
|
1055
|
-
.pipe(take$1(1), switchMap((taskInstanceId) => this.taskIntermediateSaveService.getIntermediateSubmission(taskInstanceId ?? '')))
|
|
1072
|
+
.pipe(filter(value => !!value), take$1(1), switchMap((taskInstanceId) => this.taskIntermediateSaveService.getIntermediateSubmission(taskInstanceId ?? '')))
|
|
1056
1073
|
.subscribe({
|
|
1057
1074
|
next: (intermediateSubmission) => {
|
|
1058
|
-
this.taskIntermediateSaveService.setSubmission({
|
|
1075
|
+
this.taskIntermediateSaveService.setSubmission({
|
|
1076
|
+
data: intermediateSubmission?.submission || {},
|
|
1077
|
+
});
|
|
1059
1078
|
if (formViewModelComponentRef) {
|
|
1060
1079
|
formViewModelComponentRef.instance.submission = {
|
|
1061
1080
|
data: intermediateSubmission.submission,
|
|
@@ -1067,50 +1086,53 @@ class TaskDetailContentComponent {
|
|
|
1067
1086
|
getTaskProcessLink(taskId) {
|
|
1068
1087
|
this.taskService.getTaskProcessLink(taskId).subscribe({
|
|
1069
1088
|
next: res => {
|
|
1070
|
-
|
|
1071
|
-
switch (res?.type) {
|
|
1072
|
-
case 'form':
|
|
1073
|
-
this._taskProcessLinkType$.next('form');
|
|
1074
|
-
this._processLinkId$.next(res.processLinkId);
|
|
1075
|
-
if (this.intermediateSaveEnabled)
|
|
1076
|
-
this.getCurrentProgress();
|
|
1077
|
-
this.setFormDefinition(res.properties.prefilledForm);
|
|
1078
|
-
break;
|
|
1079
|
-
case 'form-flow':
|
|
1080
|
-
this._taskProcessLinkType$.next('form-flow');
|
|
1081
|
-
this.formFlowInstanceId$.next(res.properties.formFlowInstanceId ?? '');
|
|
1082
|
-
break;
|
|
1083
|
-
case 'form-view-model':
|
|
1084
|
-
this._taskProcessLinkType$.next('form-view-model');
|
|
1085
|
-
this._processLinkId$.next(res.processLinkId);
|
|
1086
|
-
this.formDefinition$.next(res.properties.formDefinition);
|
|
1087
|
-
this.formName$.next(res.properties.formName ?? '');
|
|
1088
|
-
this.setFormViewModelComponent();
|
|
1089
|
-
break;
|
|
1090
|
-
case 'url':
|
|
1091
|
-
this._taskProcessLinkType$.next('url');
|
|
1092
|
-
this._processLinkId$.next(res.processLinkId);
|
|
1093
|
-
combineLatest([this.processLinkService.getVariables(), this.task$])
|
|
1094
|
-
.pipe(take$1(1))
|
|
1095
|
-
.subscribe(([variables, task]) => {
|
|
1096
|
-
let url = this.urlResolverService.resolveUrlVariables(res.properties.url, variables.variables);
|
|
1097
|
-
window.open(url, '_blank').focus();
|
|
1098
|
-
this.processLinkService
|
|
1099
|
-
.submitURLProcessLink(res.processLinkId, task.businessKey, task.id)
|
|
1100
|
-
.subscribe(() => {
|
|
1101
|
-
this.completeTask(task);
|
|
1102
|
-
});
|
|
1103
|
-
});
|
|
1104
|
-
break;
|
|
1105
|
-
}
|
|
1106
|
-
this.loading$.next(false);
|
|
1107
|
-
}
|
|
1089
|
+
this.setTaskProcessLink(res);
|
|
1108
1090
|
},
|
|
1109
1091
|
error: _ => {
|
|
1110
1092
|
this.loading$.next(false);
|
|
1111
1093
|
},
|
|
1112
1094
|
});
|
|
1113
1095
|
}
|
|
1096
|
+
setTaskProcessLink(processLinkResult) {
|
|
1097
|
+
if (processLinkResult !== null) {
|
|
1098
|
+
switch (processLinkResult?.type) {
|
|
1099
|
+
case 'form':
|
|
1100
|
+
this._taskProcessLinkType$.next('form');
|
|
1101
|
+
this._processLinkId$.next(processLinkResult.processLinkId);
|
|
1102
|
+
if (this.intermediateSaveEnabled)
|
|
1103
|
+
this.getCurrentProgress();
|
|
1104
|
+
this.setFormDefinition(processLinkResult.properties.prefilledForm);
|
|
1105
|
+
break;
|
|
1106
|
+
case 'form-flow':
|
|
1107
|
+
this._taskProcessLinkType$.next('form-flow');
|
|
1108
|
+
this.formFlowInstanceId$.next(processLinkResult.properties.formFlowInstanceId ?? '');
|
|
1109
|
+
break;
|
|
1110
|
+
case 'form-view-model':
|
|
1111
|
+
this._taskProcessLinkType$.next('form-view-model');
|
|
1112
|
+
this._processLinkId$.next(processLinkResult.processLinkId);
|
|
1113
|
+
this.formDefinition$.next(processLinkResult.properties.formDefinition);
|
|
1114
|
+
this.formName$.next(processLinkResult.properties.formName ?? '');
|
|
1115
|
+
this.setFormViewModelComponent();
|
|
1116
|
+
break;
|
|
1117
|
+
case 'url':
|
|
1118
|
+
this._taskProcessLinkType$.next('url');
|
|
1119
|
+
this._processLinkId$.next(processLinkResult.processLinkId);
|
|
1120
|
+
combineLatest([this.processLinkService.getVariables(), this.task$])
|
|
1121
|
+
.pipe(take$1(1))
|
|
1122
|
+
.subscribe(([variables, task]) => {
|
|
1123
|
+
let url = this.urlResolverService.resolveUrlVariables(processLinkResult.properties.url, variables.variables);
|
|
1124
|
+
window.open(url, '_blank').focus();
|
|
1125
|
+
this.processLinkService
|
|
1126
|
+
.submitURLProcessLink(processLinkResult.processLinkId, task.businessKey, task.id)
|
|
1127
|
+
.subscribe(() => {
|
|
1128
|
+
this.completeTask(task);
|
|
1129
|
+
});
|
|
1130
|
+
});
|
|
1131
|
+
break;
|
|
1132
|
+
}
|
|
1133
|
+
this.loading$.next(false);
|
|
1134
|
+
}
|
|
1135
|
+
}
|
|
1114
1136
|
openPermissionSubscription() {
|
|
1115
1137
|
this._subscriptions.add(this.task$.subscribe(task => {
|
|
1116
1138
|
if (task) {
|
|
@@ -1178,7 +1200,7 @@ class TaskDetailContentComponent {
|
|
|
1178
1200
|
});
|
|
1179
1201
|
}
|
|
1180
1202
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailContentComponent, deps: [{ token: i1$1.ConfigService }, { token: i2.DocumentService }, { token: i12.IconService }, { token: i4.NGXLogger }, { token: i9.ValtimoModalService }, { token: i3$1.PermissionService }, { token: i7.ProcessLinkService }, { token: i1$2.Router }, { token: i9.FormIoStateService }, { token: TaskIntermediateSaveService }, { token: TaskService }, { token: i10.ToastrService }, { token: i3.TranslateService }, { token: FORM_VIEW_MODEL_TOKEN, optional: true }, { token: i7.UrlResolverService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1181
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskDetailContentComponent, isStandalone: true, selector: "valtimo-task-detail-content", inputs: { task: "task" }, outputs: { closeModalEvent: "closeModalEvent", formSubmit: "formSubmit", activeChange: "activeChange" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "formFlow", first: true, predicate: ["formFlow"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n page: page$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n>\n <valtimo-form-io\n #form\n *ngIf=\"obs.formDefinition && obs.processLinkIsForm\"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <div *ngIf=\"obs.loading\" class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n\n <div\n *ngIf=\"\n obs.loading === false && !obs.formDefinition && !obs.formFlowInstanceId && !obs.errorMessage\n \"\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n >\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n\n <div *ngIf=\"obs.errorMessage\" class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n\n <div class=\"m-2\">\n <ng-template #formViewModelComponent></ng-template>\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i9.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ProcessLinkModule }, { kind: "component", type: i7.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete", "formFlowChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TaskDetailContentComponent, isStandalone: true, selector: "valtimo-task-detail-content", inputs: { task: "task", taskAndProcessLink: "taskAndProcessLink", modalClosed: "modalClosed" }, outputs: { closeModalEvent: "closeModalEvent", formSubmit: "formSubmit", activeChange: "activeChange" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true }, { propertyName: "formViewModelDynamicContainer", first: true, predicate: ["formViewModelComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "formFlow", first: true, predicate: ["formFlow"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n page: page$ | async,\n task: task$ | async,\n taskId: taskInstanceId$ | async,\n formDefinition: formDefinition$ | async,\n formDefinitionId: formDefinitionId$ | async,\n formName: formName$ | async,\n formIoFormData: formIoFormData$ | async,\n submission: submission$ | async,\n processLinkIsForm: processLinkIsForm$ | async,\n processLinkIsFormViewModel: processLinkIsFormViewModel$ | async,\n formioOptions: formioOptions$ | async,\n processLinkIsFormFlow: processLinkIsFormFlow$ | async,\n formFlowInstanceId: formFlowInstanceId$ | async,\n errorMessage: errorMessage$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n>\n <valtimo-form-io\n #form\n *ngIf=\"obs.formDefinition && obs.processLinkIsForm\"\n [form]=\"obs.formDefinition\"\n [submission]=\"obs.submission\"\n (submit)=\"onSubmit($event)\"\n (change)=\"onChange($event)\"\n [options]=\"obs.formioOptions\"\n ></valtimo-form-io>\n\n <valtimo-form-flow\n #formFlow\n *ngIf=\"obs.processLinkIsFormFlow\"\n [formIoFormData]=\"formIoFormData$\"\n [formFlowInstanceId]=\"obs.formFlowInstanceId\"\n (formFlowComplete)=\"completeTask(obs.task)\"\n (formFlowChange)=\"onFormFlowChangeEvent()\"\n ></valtimo-form-flow>\n\n <div *ngIf=\"obs.loading\" class=\"text-black mb-0 p-3 text-center\">\n {{ 'formManagement.loading' | translate }}\n </div>\n\n <div\n *ngIf=\"\n obs.loading === false && !obs.formDefinition && !obs.formFlowInstanceId && !obs.errorMessage\n \"\n class=\"bg-warning text-black mb-0 p-3 text-center\"\n >\n {{\n (isAdmin$ | async)\n ? ('formManagement.noFormDefinitionFoundAdmin' | translate)\n : ('formManagement.noFormDefinitionFoundUser' | translate)\n }}\n </div>\n\n <div *ngIf=\"obs.errorMessage\" class=\"bg-danger text-black mb-0 p-3 text-center\">\n {{ obs.errorMessage }}\n </div>\n\n <div class=\"m-2\">\n <ng-template #formViewModelComponent></ng-template>\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i9.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ProcessLinkModule }, { kind: "component", type: i7.FormFlowComponent, selector: "valtimo-form-flow", inputs: ["formIoFormData", "formFlowInstanceId"], outputs: ["formFlowComplete", "formFlowChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1182
1204
|
}
|
|
1183
1205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailContentComponent, decorators: [{
|
|
1184
1206
|
type: Component,
|
|
@@ -1199,6 +1221,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1199
1221
|
args: ['formFlow']
|
|
1200
1222
|
}], task: [{
|
|
1201
1223
|
type: Input
|
|
1224
|
+
}], taskAndProcessLink: [{
|
|
1225
|
+
type: Input
|
|
1226
|
+
}], modalClosed: [{
|
|
1227
|
+
type: Input
|
|
1202
1228
|
}], closeModalEvent: [{
|
|
1203
1229
|
type: Output
|
|
1204
1230
|
}], formSubmit: [{
|
|
@@ -1230,8 +1256,7 @@ class TaskDetailIntermediateSaveComponent {
|
|
|
1230
1256
|
.getTaskProcessLink(value.id)
|
|
1231
1257
|
.pipe(take$1(1))
|
|
1232
1258
|
.subscribe(res => {
|
|
1233
|
-
|
|
1234
|
-
this.formFlowInstanceId$.next(res.properties.formFlowInstanceId);
|
|
1259
|
+
this.setFormFlow(res);
|
|
1235
1260
|
});
|
|
1236
1261
|
this.taskValue.set(value);
|
|
1237
1262
|
this.page.set({
|
|
@@ -1240,6 +1265,17 @@ class TaskDetailIntermediateSaveComponent {
|
|
|
1240
1265
|
});
|
|
1241
1266
|
this.getCurrentProgress(value);
|
|
1242
1267
|
}
|
|
1268
|
+
set taskAndProcessLink(value) {
|
|
1269
|
+
if (!value)
|
|
1270
|
+
return;
|
|
1271
|
+
this.setFormFlow(value.processLinkActivityResult);
|
|
1272
|
+
this.taskValue.set(value.task);
|
|
1273
|
+
this.page.set({
|
|
1274
|
+
title: value?.task.name,
|
|
1275
|
+
subtitle: `${this.translateService.instant('taskDetail.taskCreated')} ${value?.task.created}`,
|
|
1276
|
+
});
|
|
1277
|
+
this.getCurrentProgress(value.task);
|
|
1278
|
+
}
|
|
1243
1279
|
constructor(configService, iconService, translateService, taskIntermediateSaveService, taskService, toastr) {
|
|
1244
1280
|
this.configService = configService;
|
|
1245
1281
|
this.iconService = iconService;
|
|
@@ -1298,6 +1334,11 @@ class TaskDetailIntermediateSaveComponent {
|
|
|
1298
1334
|
this.currentIntermediateSaveEvent.emit(this.currentIntermediateSave);
|
|
1299
1335
|
});
|
|
1300
1336
|
}
|
|
1337
|
+
setFormFlow(processLink) {
|
|
1338
|
+
if (processLink !== null && processLink.type === 'form-flow') {
|
|
1339
|
+
this.formFlowInstanceId$.next(processLink.properties.formFlowInstanceId);
|
|
1340
|
+
}
|
|
1341
|
+
}
|
|
1301
1342
|
formatIntermediateSubmission(intermediateSubmission) {
|
|
1302
1343
|
intermediateSubmission.createdOn = moment(intermediateSubmission.createdOn).format('DD MMM YYYY HH:mm');
|
|
1303
1344
|
if (intermediateSubmission.editedOn) {
|
|
@@ -1310,11 +1351,18 @@ class TaskDetailIntermediateSaveComponent {
|
|
|
1310
1351
|
.getIntermediateSubmission(task.id ?? '')
|
|
1311
1352
|
.pipe(take$1(1))
|
|
1312
1353
|
.subscribe(intermediateSave => {
|
|
1313
|
-
|
|
1354
|
+
if (intermediateSave !== null) {
|
|
1355
|
+
this.currentIntermediateSave = this.formatIntermediateSubmission(intermediateSave);
|
|
1356
|
+
}
|
|
1357
|
+
else {
|
|
1358
|
+
this.currentIntermediateSave = null;
|
|
1359
|
+
this.taskIntermediateSaveService.setSubmission({});
|
|
1360
|
+
}
|
|
1361
|
+
this.currentIntermediateSaveEvent.emit(this.currentIntermediateSave);
|
|
1314
1362
|
});
|
|
1315
1363
|
}
|
|
1316
1364
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailIntermediateSaveComponent, deps: [{ token: i1$1.ConfigService }, { token: i12.IconService }, { token: i3.TranslateService }, { token: TaskIntermediateSaveService }, { token: TaskService }, { token: i10.ToastrService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1317
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TaskDetailIntermediateSaveComponent, isStandalone: true, selector: "valtimo-task-detail-intermediate-save", inputs: { task: "task" }, outputs: { currentIntermediateSaveEvent: "currentIntermediateSaveEvent", showModalEvent: "showModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (intermediateSaveEnabled && (formFlowInstanceId$ | async) === undefined) {\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"save\"\n [vTooltip]=\"'formManagement.intermediateSave.save' | translate\"\n (click)=\"saveCurrentProgress()\"\n ></button>\n\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"recently-viewed\"\n [disabled]=\"!currentIntermediateSave\"\n [vTooltip]=\"'formManagement.intermediateSave.clear' | translate\"\n (click)=\"revertSaveClick()\"\n ></button>\n}\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i12.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i9.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: "ngmodule", type: IconModule }, { kind: "directive", type: i12.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ModalModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.TooltipDirective, selector: "[vTooltip]", inputs: ["vTooltip", "onBottom", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1365
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TaskDetailIntermediateSaveComponent, isStandalone: true, selector: "valtimo-task-detail-intermediate-save", inputs: { task: "task", taskAndProcessLink: "taskAndProcessLink" }, outputs: { currentIntermediateSaveEvent: "currentIntermediateSaveEvent", showModalEvent: "showModalEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (intermediateSaveEnabled && (formFlowInstanceId$ | async) === undefined) {\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"save\"\n [vTooltip]=\"'formManagement.intermediateSave.save' | translate\"\n (click)=\"saveCurrentProgress()\"\n ></button>\n\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"recently-viewed\"\n [disabled]=\"!currentIntermediateSave\"\n [vTooltip]=\"'formManagement.intermediateSave.clear' | translate\"\n (click)=\"revertSaveClick()\"\n ></button>\n}\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i12.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i9.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: "ngmodule", type: IconModule }, { kind: "directive", type: i12.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ModalModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.TooltipDirective, selector: "[vTooltip]", inputs: ["vTooltip", "onBottom", "tooltipDisabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1318
1366
|
}
|
|
1319
1367
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailIntermediateSaveComponent, decorators: [{
|
|
1320
1368
|
type: Component,
|
|
@@ -1329,6 +1377,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
1329
1377
|
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (intermediateSaveEnabled && (formFlowInstanceId$ | async) === undefined) {\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"save\"\n [vTooltip]=\"'formManagement.intermediateSave.save' | translate\"\n (click)=\"saveCurrentProgress()\"\n ></button>\n\n <button\n cdsButton=\"ghost\"\n iconOnly=\"true\"\n cdsIcon=\"recently-viewed\"\n [disabled]=\"!currentIntermediateSave\"\n [vTooltip]=\"'formManagement.intermediateSave.clear' | translate\"\n (click)=\"revertSaveClick()\"\n ></button>\n}\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n" }]
|
|
1330
1378
|
}], ctorParameters: () => [{ type: i1$1.ConfigService }, { type: i12.IconService }, { type: i3.TranslateService }, { type: TaskIntermediateSaveService }, { type: TaskService }, { type: i10.ToastrService }], propDecorators: { task: [{
|
|
1331
1379
|
type: Input
|
|
1380
|
+
}], taskAndProcessLink: [{
|
|
1381
|
+
type: Input
|
|
1332
1382
|
}], currentIntermediateSaveEvent: [{
|
|
1333
1383
|
type: Output
|
|
1334
1384
|
}], showModalEvent: [{
|
|
@@ -1365,12 +1415,16 @@ class TaskDetailModalComponent {
|
|
|
1365
1415
|
this.formSubmit = new EventEmitter();
|
|
1366
1416
|
this.assignmentOfTaskChanged = new EventEmitter();
|
|
1367
1417
|
this.currentIntermediateSave$ = new BehaviorSubject(null);
|
|
1418
|
+
this.processLinkPreloaded$ = new BehaviorSubject(false);
|
|
1368
1419
|
this.task$ = new BehaviorSubject(null);
|
|
1420
|
+
this.taskAndProcessLink$ = new BehaviorSubject(null);
|
|
1421
|
+
this.task = new BehaviorSubject(null);
|
|
1369
1422
|
this.submission$ = new BehaviorSubject({});
|
|
1370
1423
|
this.page$ = new BehaviorSubject(null);
|
|
1371
1424
|
this.showConfirmationModal$ = new BehaviorSubject(false);
|
|
1372
1425
|
this.size$ = new BehaviorSubject('md');
|
|
1373
1426
|
this.canAssignUserToTask$ = new BehaviorSubject(false);
|
|
1427
|
+
this.modalCloseEvent$ = new BehaviorSubject(false);
|
|
1374
1428
|
this._subscriptions = new Subscription();
|
|
1375
1429
|
}
|
|
1376
1430
|
ngOnInit() {
|
|
@@ -1403,6 +1457,16 @@ class TaskDetailModalComponent {
|
|
|
1403
1457
|
});
|
|
1404
1458
|
this.openModal();
|
|
1405
1459
|
}
|
|
1460
|
+
openTaskAndProcessLinkDetails(taskWithProcessLink) {
|
|
1461
|
+
this.processLinkPreloaded$.next(true);
|
|
1462
|
+
this.taskAndProcessLink$.next(taskWithProcessLink);
|
|
1463
|
+
this.task$.next({ ...taskWithProcessLink.task });
|
|
1464
|
+
this.page$.next({
|
|
1465
|
+
title: taskWithProcessLink.task?.name,
|
|
1466
|
+
subtitle: `${this.translateService.instant('taskDetail.taskCreated')} ${taskWithProcessLink.task?.created}`,
|
|
1467
|
+
});
|
|
1468
|
+
this.openModal();
|
|
1469
|
+
}
|
|
1406
1470
|
gotoProcessLinkScreen() {
|
|
1407
1471
|
this.closeModal();
|
|
1408
1472
|
this.router.navigate(['process-links']);
|
|
@@ -1419,16 +1483,17 @@ class TaskDetailModalComponent {
|
|
|
1419
1483
|
closeModal() {
|
|
1420
1484
|
this._modal.open = false;
|
|
1421
1485
|
this.taskIntermediateSaveService.setSubmission({});
|
|
1486
|
+
this.modalCloseEvent$.next(!this.modalCloseEvent$.getValue());
|
|
1422
1487
|
}
|
|
1423
1488
|
openModal() {
|
|
1424
1489
|
this._modal.open = true;
|
|
1425
1490
|
}
|
|
1426
1491
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailModalComponent, deps: [{ token: i1$2.Router }, { token: i3.TranslateService }, { token: i3$1.PermissionService }, { token: i4.NGXLogger }, { token: TaskIntermediateSaveService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1427
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1492
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: TaskDetailModalComponent, selector: "valtimo-task-detail-modal", inputs: { modalSize: "modalSize" }, outputs: { formSubmit: "formSubmit", assignmentOfTaskChanged: "assignmentOfTaskChanged" }, viewQueries: [{ propertyName: "_modal", first: true, predicate: ["taskDetailModal"], descendants: true }, { propertyName: "_intermediateSaveComponent", first: true, predicate: TaskDetailIntermediateSaveComponent, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal #taskDetailModal id=\"taskDetailModal\" [size]=\"size$ | async\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <div class=\"title-container\">\n <p class=\"cds--modal-header__heading cds--type-beta\">{{ (page$ | async)?.title }}</p>\n\n <p class=\"cds--modal-header__label cds--type-delta\">{{ (page$ | async)?.subtitle }}</p>\n\n <p\n class=\"cds--modal-header__label cds--type-delta\"\n *ngIf=\"currentIntermediateSave$ | async as currentIntermediateSave\"\n >\n {{ 'formManagement.intermediateSave.lastSavedBy' | translate }}:\n\n {{\n currentIntermediateSave?.editedBy\n ? currentIntermediateSave?.editedBy\n : currentIntermediateSave.createdBy\n }}\n\n {{ 'formManagement.intermediateSave.on' | translate }}:\n\n {{\n currentIntermediateSave?.editedOn\n ? currentIntermediateSave?.editedOn\n : currentIntermediateSave.createdOn\n }}\n </p>\n\n <ng-container *ngTemplateOutlet=\"assignUserToTask\"></ng-container>\n </div>\n\n @if (processLinkPreloaded$ | async) {\n <valtimo-task-detail-intermediate-save\n class=\"save-buttons-margin\"\n [taskAndProcessLink]=\"taskAndProcessLink$ | async\"\n (currentIntermediateSaveEvent)=\"onCurrentIntermediateSaveEvent($event)\"\n (showModalEvent)=\"onShowModalEvent()\"\n ></valtimo-task-detail-intermediate-save>\n } @else {\n <valtimo-task-detail-intermediate-save\n class=\"save-buttons-margin\"\n [task]=\"task$ | async\"\n (currentIntermediateSaveEvent)=\"onCurrentIntermediateSaveEvent($event)\"\n (showModalEvent)=\"onShowModalEvent()\"\n ></valtimo-task-detail-intermediate-save>\n }\n </cds-modal-header>\n\n <div body class=\"cds--modal-content pb-1\">\n @if (processLinkPreloaded$ | async) {\n <valtimo-task-detail-content\n [taskAndProcessLink]=\"taskAndProcessLink$ | async\"\n [modalClosed]=\"modalCloseEvent$ | async\"\n (formSubmit)=\"onFormSubmit()\"\n (closeModalEvent)=\"closeModal()\"\n ></valtimo-task-detail-content>\n } @else {\n <valtimo-task-detail-content\n [task]=\"task$ | async\"\n [modalClosed]=\"modalCloseEvent$ | async\"\n (formSubmit)=\"onFormSubmit()\"\n (closeModalEvent)=\"closeModal()\"\n ></valtimo-task-detail-content>\n }\n </div>\n</cds-modal>\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n\n<ng-template #assignUserToTask>\n <ng-container\n *ngIf=\"{\n task: task$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n >\n <valtimo-assign-user-to-task\n *ngIf=\"obs.task && obs.canAssignUserToTask && assignmentOfTaskChanged\"\n [taskId]=\"obs.task.id\"\n [assigneeId]=\"obs.task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n </ng-container>\n</ng-template>\n", styles: ["#taskDetailModal .formio-component-submit{text-align:right}cds-modal-header .cds--modal-header{display:flex;justify-content:space-between}.save-buttons-margin{margin-top:-15px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i12.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i12.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.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: AssignUserToTaskComponent, selector: "valtimo-assign-user-to-task", inputs: ["taskId", "assigneeId"], outputs: ["assignmentOfTaskChanged"] }, { kind: "component", type: TaskDetailContentComponent, selector: "valtimo-task-detail-content", inputs: ["task", "taskAndProcessLink", "modalClosed"], outputs: ["closeModalEvent", "formSubmit", "activeChange"] }, { kind: "component", type: TaskDetailIntermediateSaveComponent, selector: "valtimo-task-detail-intermediate-save", inputs: ["task", "taskAndProcessLink"], outputs: ["currentIntermediateSaveEvent", "showModalEvent"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1428
1493
|
}
|
|
1429
1494
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskDetailModalComponent, decorators: [{
|
|
1430
1495
|
type: Component,
|
|
1431
|
-
args: [{ selector: 'valtimo-task-detail-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal #taskDetailModal id=\"taskDetailModal\" [size]=\"size$ | async\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <div class=\"title-container\">\n <p class=\"cds--modal-header__heading cds--type-beta\">{{ (page$ | async)?.title }}</p>\n\n <p class=\"cds--modal-header__label cds--type-delta\">{{ (page$ | async)?.subtitle }}</p>\n\n <p\n class=\"cds--modal-header__label cds--type-delta\"\n *ngIf=\"currentIntermediateSave$ | async as currentIntermediateSave\"\n >\n {{ 'formManagement.intermediateSave.lastSavedBy' | translate }}:\n\n {{\n currentIntermediateSave?.editedBy\n ? currentIntermediateSave?.editedBy\n : currentIntermediateSave.createdBy\n }}\n\n {{ 'formManagement.intermediateSave.on' | translate }}:\n\n {{\n currentIntermediateSave?.editedOn\n ? currentIntermediateSave?.editedOn\n : currentIntermediateSave.createdOn\n }}\n </p>\n\n <ng-container *ngTemplateOutlet=\"assignUserToTask\"></ng-container>\n </div>\n\n <valtimo-task-detail-intermediate-save\n class=\"save-buttons-margin\"\n
|
|
1496
|
+
args: [{ selector: 'valtimo-task-detail-modal', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal #taskDetailModal id=\"taskDetailModal\" [size]=\"size$ | async\">\n <cds-modal-header (closeSelect)=\"closeModal()\">\n <div class=\"title-container\">\n <p class=\"cds--modal-header__heading cds--type-beta\">{{ (page$ | async)?.title }}</p>\n\n <p class=\"cds--modal-header__label cds--type-delta\">{{ (page$ | async)?.subtitle }}</p>\n\n <p\n class=\"cds--modal-header__label cds--type-delta\"\n *ngIf=\"currentIntermediateSave$ | async as currentIntermediateSave\"\n >\n {{ 'formManagement.intermediateSave.lastSavedBy' | translate }}:\n\n {{\n currentIntermediateSave?.editedBy\n ? currentIntermediateSave?.editedBy\n : currentIntermediateSave.createdBy\n }}\n\n {{ 'formManagement.intermediateSave.on' | translate }}:\n\n {{\n currentIntermediateSave?.editedOn\n ? currentIntermediateSave?.editedOn\n : currentIntermediateSave.createdOn\n }}\n </p>\n\n <ng-container *ngTemplateOutlet=\"assignUserToTask\"></ng-container>\n </div>\n\n @if (processLinkPreloaded$ | async) {\n <valtimo-task-detail-intermediate-save\n class=\"save-buttons-margin\"\n [taskAndProcessLink]=\"taskAndProcessLink$ | async\"\n (currentIntermediateSaveEvent)=\"onCurrentIntermediateSaveEvent($event)\"\n (showModalEvent)=\"onShowModalEvent()\"\n ></valtimo-task-detail-intermediate-save>\n } @else {\n <valtimo-task-detail-intermediate-save\n class=\"save-buttons-margin\"\n [task]=\"task$ | async\"\n (currentIntermediateSaveEvent)=\"onCurrentIntermediateSaveEvent($event)\"\n (showModalEvent)=\"onShowModalEvent()\"\n ></valtimo-task-detail-intermediate-save>\n }\n </cds-modal-header>\n\n <div body class=\"cds--modal-content pb-1\">\n @if (processLinkPreloaded$ | async) {\n <valtimo-task-detail-content\n [taskAndProcessLink]=\"taskAndProcessLink$ | async\"\n [modalClosed]=\"modalCloseEvent$ | async\"\n (formSubmit)=\"onFormSubmit()\"\n (closeModalEvent)=\"closeModal()\"\n ></valtimo-task-detail-content>\n } @else {\n <valtimo-task-detail-content\n [task]=\"task$ | async\"\n [modalClosed]=\"modalCloseEvent$ | async\"\n (formSubmit)=\"onFormSubmit()\"\n (closeModalEvent)=\"closeModal()\"\n ></valtimo-task-detail-content>\n }\n </div>\n</cds-modal>\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showConfirmationModal$\"\n (confirmEvent)=\"clearCurrentProgress()\"\n (cancelEvent)=\"showConfirmationModal$.next(false)\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.confirm\"\n titleTranslationKey=\"formManagement.intermediateSave.clear\"\n contentTranslationKey=\"formManagement.intermediateSave.clearConfirm\"\n></valtimo-confirmation-modal>\n\n<ng-template #assignUserToTask>\n <ng-container\n *ngIf=\"{\n task: task$ | async,\n canAssignUserToTask: canAssignUserToTask$ | async,\n } as obs\"\n >\n <valtimo-assign-user-to-task\n *ngIf=\"obs.task && obs.canAssignUserToTask && assignmentOfTaskChanged\"\n [taskId]=\"obs.task.id\"\n [assigneeId]=\"obs.task.assignee\"\n (assignmentOfTaskChanged)=\"assignmentOfTaskChanged.emit()\"\n ></valtimo-assign-user-to-task>\n </ng-container>\n</ng-template>\n", styles: ["#taskDetailModal .formio-component-submit{text-align:right}cds-modal-header .cds--modal-header{display:flex;justify-content:space-between}.save-buttons-margin{margin-top:-15px}\n/*!\n * Copyright 2015-2024 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"] }]
|
|
1432
1497
|
}], ctorParameters: () => [{ type: i1$2.Router }, { type: i3.TranslateService }, { type: i3$1.PermissionService }, { type: i4.NGXLogger }, { type: TaskIntermediateSaveService }], propDecorators: { _modal: [{
|
|
1433
1498
|
type: ViewChild,
|
|
1434
1499
|
args: ['taskDetailModal']
|
|
@@ -2106,7 +2171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2106
2171
|
TaskDetailContentComponent,
|
|
2107
2172
|
TaskDetailIntermediateSaveComponent,
|
|
2108
2173
|
],
|
|
2109
|
-
exports: [TaskListComponent, TaskDetailModalComponent]
|
|
2174
|
+
exports: [TaskListComponent, TaskDetailModalComponent],
|
|
2110
2175
|
}]
|
|
2111
2176
|
}] });
|
|
2112
2177
|
|