@valtimo/task-management 12.0.0 → 12.1.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.
Files changed (26) hide show
  1. package/esm2022/lib/components/index.mjs +2 -1
  2. package/esm2022/lib/components/task-management/task-management.component.mjs +2 -2
  3. package/esm2022/lib/components/task-management-columns/task-management-columns.component.mjs +2 -2
  4. package/esm2022/lib/components/task-management-detail/task-management-detail.component.mjs +21 -17
  5. package/esm2022/lib/components/task-management-search-fields/task-management-search-fields.component.mjs +176 -0
  6. package/esm2022/lib/components/task-management-search-fields-modal/task-management-search-fields-modal.component.mjs +354 -0
  7. package/esm2022/lib/models/task-management.model.mjs +3 -2
  8. package/esm2022/lib/services/index.mjs +2 -1
  9. package/esm2022/lib/services/task-management-search-fields.service.mjs +47 -0
  10. package/fesm2022/valtimo-task-management.mjs +574 -30
  11. package/fesm2022/valtimo-task-management.mjs.map +1 -1
  12. package/lib/components/index.d.ts +1 -0
  13. package/lib/components/index.d.ts.map +1 -1
  14. package/lib/components/task-management-detail/task-management-detail.component.d.ts +7 -5
  15. package/lib/components/task-management-detail/task-management-detail.component.d.ts.map +1 -1
  16. package/lib/components/task-management-search-fields/task-management-search-fields.component.d.ts +35 -0
  17. package/lib/components/task-management-search-fields/task-management-search-fields.component.d.ts.map +1 -0
  18. package/lib/components/task-management-search-fields-modal/task-management-search-fields-modal.component.d.ts +79 -0
  19. package/lib/components/task-management-search-fields-modal/task-management-search-fields-modal.component.d.ts.map +1 -0
  20. package/lib/models/task-management.model.d.ts +2 -1
  21. package/lib/models/task-management.model.d.ts.map +1 -1
  22. package/lib/services/index.d.ts +1 -0
  23. package/lib/services/index.d.ts.map +1 -1
  24. package/lib/services/task-management-search-fields.service.d.ts +20 -0
  25. package/lib/services/task-management-search-fields.service.d.ts.map +1 -0
  26. package/package.json +1 -1
@@ -1,26 +1,27 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, ChangeDetectionStrategy, Injectable, EventEmitter, Input, Output, ViewEncapsulation, NgModule } from '@angular/core';
3
3
  import * as i6 from '@valtimo/components';
4
- import { ViewType, CarbonListModule, CARBON_THEME, CARBON_CONSTANTS, TooltipIconModule, CarbonMultiInputModule, ValtimoCdsModalDirectiveModule, MoveRowDirection, ConfirmationModalModule } from '@valtimo/components';
5
- import { BehaviorSubject, switchMap, map, tap, combineLatest, of, filter, Subject, take } from 'rxjs';
4
+ import { ViewType, CarbonListModule, CARBON_THEME, CARBON_CONSTANTS, TooltipIconModule, CarbonMultiInputModule, ValtimoCdsModalDirectiveModule, MoveRowDirection, ConfirmationModalModule, InputLabelModule } from '@valtimo/components';
5
+ import { BehaviorSubject, switchMap, map, tap, combineLatest, of, filter, Subject, take, startWith, distinctUntilChanged as distinctUntilChanged$1 } from 'rxjs';
6
6
  import moment from 'moment/moment';
7
7
  import * as i3 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
- import * as i1$2 from '@ngx-translate/core';
9
+ import * as i4 from '@ngx-translate/core';
10
10
  import { TranslateModule } from '@ngx-translate/core';
11
11
  import * as i1 from '@valtimo/document';
12
- import * as i1$1 from '@angular/router';
12
+ import * as i2 from '@angular/router';
13
13
  import { RouterModule } from '@angular/router';
14
- import * as i5 from 'carbon-components-angular';
14
+ import * as i2$2 from 'carbon-components-angular';
15
15
  import { TabsModule, ModalModule, CheckboxModule, DropdownModule, InputModule, ButtonModule, IconModule } from 'carbon-components-angular';
16
- import * as i2 from '@valtimo/config';
16
+ import * as i2$1 from '@valtimo/config';
17
17
  import { BaseApiService, ROLE_ADMIN } from '@valtimo/config';
18
- import * as i1$3 from '@angular/common/http';
19
- import * as i4 from '@angular/forms';
18
+ import * as i1$1 from '@angular/common/http';
19
+ import * as i3$1 from '@angular/forms';
20
20
  import { FormGroup, FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
21
- import { TaskListColumnDefaultSort } from '@valtimo/task';
21
+ import { TaskListColumnDefaultSort, TaskListSearchFieldDataType, TaskListSearchFieldFieldType, TaskListSearchDropdownDataProvider, TaskListSearchFieldMatchType } from '@valtimo/task';
22
22
  import { distinctUntilChanged } from 'rxjs/operators';
23
23
  import { isEqual } from 'lodash';
24
+ import { TrashCan16, InformationFilled16 } from '@carbon/icons';
24
25
  import { AuthGuardService } from '@valtimo/security';
25
26
 
26
27
  /*
@@ -76,13 +77,13 @@ class TaskManagementComponent {
76
77
  redirectToDetails(documentDefinition) {
77
78
  this.router.navigate(['/task-management/dossier', documentDefinition.id.name]);
78
79
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementComponent, deps: [{ token: i1.DocumentService }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementComponent, isStandalone: true, selector: "ng-component", 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<valtimo-carbon-list\n *ngIf=\"dossiers$ | async as dossiers; else loading\"\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n [hideToolbar]=\"true\"\n>\n <valtimo-no-results\n [description]=\"'dossierManagement.noResults.description' | translate\"\n [title]=\"'dossierManagement.noResults.title' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #loading>\n <valtimo-carbon-list loading=\"true\"></valtimo-carbon-list>\n</ng-template>\n", styles: ["/*!\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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementComponent, deps: [{ token: i1.DocumentService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementComponent, isStandalone: true, selector: "ng-component", 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<valtimo-carbon-list\n *ngIf=\"dossiers$ | async as dossiers; else loading\"\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n [hideToolbar]=\"true\"\n>\n <valtimo-no-results\n [description]=\"'dossierManagement.noResults.description' | translate\"\n [title]=\"'dossierManagement.noResults.title' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #loading>\n <valtimo-carbon-list loading=\"true\"></valtimo-carbon-list>\n</ng-template>\n", styles: ["/*!\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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
82
  }
82
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementComponent, decorators: [{
83
84
  type: Component,
84
85
  args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, CarbonListModule, TranslateModule], 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<valtimo-carbon-list\n *ngIf=\"dossiers$ | async as dossiers; else loading\"\n [items]=\"dossiers\"\n [fields]=\"dossierFields\"\n [pagination]=\"pagination\"\n paginationIdentifier=\"dossierManagementList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n [hideToolbar]=\"true\"\n>\n <valtimo-no-results\n [description]=\"'dossierManagement.noResults.description' | translate\"\n [title]=\"'dossierManagement.noResults.title' | translate\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #loading>\n <valtimo-carbon-list loading=\"true\"></valtimo-carbon-list>\n</ng-template>\n", styles: ["/*!\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"] }]
85
- }], ctorParameters: () => [{ type: i1.DocumentService }, { type: i1$1.Router }] });
86
+ }], ctorParameters: () => [{ type: i1.DocumentService }, { type: i2.Router }] });
86
87
 
87
88
  /*
88
89
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -117,7 +118,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
117
118
  */
118
119
  var TaskManagementTab;
119
120
  (function (TaskManagementTab) {
120
- TaskManagementTab[TaskManagementTab["COLUMNS"] = 0] = "COLUMNS";
121
+ TaskManagementTab["COLUMNS"] = "columns";
122
+ TaskManagementTab["SEARCH_FIELDS"] = "searchFields";
121
123
  })(TaskManagementTab || (TaskManagementTab = {}));
122
124
 
123
125
  /*
@@ -201,7 +203,7 @@ class TaskManagementApiService extends BaseApiService {
201
203
  swapTaskListColumns(caseDefinitionName, firstColumn, secondColumn) {
202
204
  return this.httpClient.post(this.getApiUrl(`/management/v1/case/${caseDefinitionName}/task-list-column`), { first: firstColumn.key, second: secondColumn.key });
203
205
  }
204
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementApiService, deps: [{ token: i1$3.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
206
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementApiService, deps: [{ token: i1$1.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
205
207
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementApiService, providedIn: 'root' }); }
206
208
  }
207
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementApiService, decorators: [{
@@ -209,7 +211,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
209
211
  args: [{
210
212
  providedIn: 'root',
211
213
  }]
212
- }], ctorParameters: () => [{ type: i1$3.HttpClient }, { type: i2.ConfigService }] });
214
+ }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i2$1.ConfigService }] });
215
+
216
+ class TaskManagementSearchFieldsService extends BaseApiService {
217
+ constructor(httpClient, configService) {
218
+ super(httpClient, configService);
219
+ this.httpClient = httpClient;
220
+ this.configService = configService;
221
+ }
222
+ setDocumentDefinitionName(documentDefinitionName) {
223
+ this._documentDefinitionName = documentDefinitionName;
224
+ }
225
+ getTaskListSearchFields() {
226
+ return this.httpClient.get(this.getApiUrl(`/v1/search/field/TaskListSearchColumns/${this._documentDefinitionName}`));
227
+ }
228
+ createTaskListSearchField(searchField) {
229
+ return this.httpClient.post(this.getApiUrl(`/v1/search/field/${this._documentDefinitionName}`), {
230
+ ...searchField,
231
+ ownerType: 'TaskListSearchColumns',
232
+ ownerId: this._documentDefinitionName,
233
+ });
234
+ }
235
+ updateTaskListSearchField(searchField) {
236
+ return this.httpClient.put(this.getApiUrl(`/v1/search/field/${this._documentDefinitionName}/${searchField.key}`), {
237
+ ...searchField,
238
+ ownerType: 'TaskListSearchColumns',
239
+ ownerId: this._documentDefinitionName,
240
+ });
241
+ }
242
+ deleteTaskListSearchField(searchFieldKey) {
243
+ return this.httpClient.delete(this.getApiUrl(`/v1/search/field/TaskListSearchColumns/${this._documentDefinitionName}/${searchFieldKey}`));
244
+ }
245
+ orderTaskListSearchFields(searchFields) {
246
+ return this.httpClient.put(this.getApiUrl(`/v1/search/field/${this._documentDefinitionName}/fields`), searchFields);
247
+ }
248
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementSearchFieldsService, deps: [{ token: i1$1.HttpClient }, { token: i2$1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
249
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementSearchFieldsService, providedIn: 'root' }); }
250
+ }
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementSearchFieldsService, decorators: [{
252
+ type: Injectable,
253
+ args: [{
254
+ providedIn: 'root',
255
+ }]
256
+ }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: i2$1.ConfigService }] });
213
257
 
214
258
  /*
215
259
  * Copyright 2015-2024 Ritense BV, the Netherlands.
@@ -546,8 +590,8 @@ class TaskManagementColumnModalComponent {
546
590
  }),
547
591
  });
548
592
  }
549
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementColumnModalComponent, deps: [{ token: i1$2.TranslateService }, { token: TaskManagementApiService }], target: i0.ɵɵFactoryTarget.Component }); }
550
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementColumnModalComponent, isStandalone: true, selector: "valtimo-task-management-column-modal", inputs: { carbonTheme: "carbonTheme", taskListColumns: "taskListColumns", type: "type", show: "show", documentDefinitionName: "documentDefinitionName", selectedTaskListColumn: "selectedTaskListColumn" }, outputs: { closeEvent: "closeEvent" }, 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 show: show$ | async,\n type: type$ | async,\n isAdd: isAdd$ | async,\n isEdit: isEdit$ | async,\n disabled: disabled$ | async,\n showDateFormat: showDateFormat$ | async,\n showEnum: showEnum$ | async,\n showYesNo: showYesNo$ | async,\n disableDefaultSort: disableDefaultSort$ | async,\n enumValues: enumValues$ | async,\n enumValid: enumValid$ | async,\n yesNoValues: yesNoValues$ | async,\n viewTypeItems: viewTypeItems$ | async,\n sortItems: sortItems$ | async\n } as obs\"\n>\n <cds-modal size=\"sm\" [open]=\"obs.show\" valtimoCdsModal>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n obs.type === 'add'\n ? ('listColumn.addButtonText' | translate)\n : ('listColumn.editColumnTitle' | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"form; context: {obs: obs}\"></ng-container>\n </section>\n\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {obs: obs}\"> </ng-container>\n </cds-modal>\n</ng-container>\n\n<ng-template #form let-obs=\"obs\">\n <form [formGroup]=\"formGroup\" class=\"list-column-form\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.titleTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.titleTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"title\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [invalid]=\"key?.touched && key?.invalid\"\n [disabled]=\"obs.disabled || obs.isEdit\"\n [invalidText]=\"'listColumn.uniqueKeyWarning' | translate\"\n >\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.key' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.keyTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"key\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.path' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.pathTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"path\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.displayType' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.displayTypeTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <cds-dropdown\n *ngIf=\"obs.viewTypeItems\"\n formControlName=\"displayType\"\n [disabled]=\"obs.disabled\"\n >\n <cds-dropdown-list [items]=\"obs.viewTypeItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showDateFormat\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.dateFormat' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.dateFormatTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"dateFormat\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showEnum\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.enumTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.enumTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <valtimo-carbon-multi-input\n *ngIf=\"obs.showEnum\"\n [fullWidth]=\"true\"\n [carbonTheme]=\"CARBON_THEME_WHITE\"\n [defaultValues]=\"obs.enumValues\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showYesNo\" [ngClass]=\"'no-margin'\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.enumTitleOptional' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.enumTooltipOptional' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <valtimo-carbon-multi-input\n *ngIf=\"obs.showYesNo\"\n [fullWidth]=\"true\"\n [carbonTheme]=\"CARBON_THEME_WHITE\"\n [defaultValues]=\"obs.yesNoValues\"\n type=\"keyValue\"\n [hideAddButton]=\"true\"\n [hideDeleteButton]=\"true\"\n [maxRows]=\"1\"\n [keyColumnTitle]=\"'viewTypeConverter.Yes' | translate\"\n [valueColumnTitle]=\"'viewTypeConverter.No' | translate\"\n (valueChange)=\"yesNoValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-checkbox formControlName=\"sortable\" [disabled]=\"obs.disabled\"\n >{{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled || obs.disableDefaultSort\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.defaultSortTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.defaultSortTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <cds-dropdown formControlName=\"defaultSort\" [disabled]=\"obs.disabled\" *ngIf=\"obs.sortItems\">\n <cds-dropdown-list [items]=\"obs.sortItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #modalFooter let-obs=\"obs\">\n <cds-modal-footer>\n <ng-container>\n <button\n (click)=\"closeModal()\"\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'listColumn.close' | translate }}\n </button>\n\n <button\n (click)=\"save()\"\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"!obs.valid\"\n [disabled]=\"obs.disabled || formGroup?.invalid || (obs.showEnum && !obs.enumValid)\"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n", styles: [".cds--text-input__field-wrapper cds-label{width:100%}.cds--text-input__field-wrapper ::ng-deep .cds--label{width:100%}.cds--text-input__field-wrapper:not(:last-child){margin-bottom:16px}.label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:8px}.list-column-form{margin-bottom:16px}.no-margin{margin-bottom:0!important}\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: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TabsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i5.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i5.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i5.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i5.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i5.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i5.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i5.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i5.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i5.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i5.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TooltipIconModule }, { kind: "component", type: i6.TooltipIconComponent, selector: "v-tooltip-icon", inputs: ["tooltip", "disabled"] }, { kind: "ngmodule", type: CarbonMultiInputModule }, { kind: "component", type: i6.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ValtimoCdsModalDirectiveModule }, { kind: "directive", type: i6.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
593
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementColumnModalComponent, deps: [{ token: i4.TranslateService }, { token: TaskManagementApiService }], target: i0.ɵɵFactoryTarget.Component }); }
594
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementColumnModalComponent, isStandalone: true, selector: "valtimo-task-management-column-modal", inputs: { carbonTheme: "carbonTheme", taskListColumns: "taskListColumns", type: "type", show: "show", documentDefinitionName: "documentDefinitionName", selectedTaskListColumn: "selectedTaskListColumn" }, outputs: { closeEvent: "closeEvent" }, 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 show: show$ | async,\n type: type$ | async,\n isAdd: isAdd$ | async,\n isEdit: isEdit$ | async,\n disabled: disabled$ | async,\n showDateFormat: showDateFormat$ | async,\n showEnum: showEnum$ | async,\n showYesNo: showYesNo$ | async,\n disableDefaultSort: disableDefaultSort$ | async,\n enumValues: enumValues$ | async,\n enumValid: enumValid$ | async,\n yesNoValues: yesNoValues$ | async,\n viewTypeItems: viewTypeItems$ | async,\n sortItems: sortItems$ | async\n } as obs\"\n>\n <cds-modal size=\"sm\" [open]=\"obs.show\" valtimoCdsModal>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n obs.type === 'add'\n ? ('listColumn.addButtonText' | translate)\n : ('listColumn.editColumnTitle' | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"form; context: {obs: obs}\"></ng-container>\n </section>\n\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {obs: obs}\"> </ng-container>\n </cds-modal>\n</ng-container>\n\n<ng-template #form let-obs=\"obs\">\n <form [formGroup]=\"formGroup\" class=\"list-column-form\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.titleTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.titleTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"title\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [invalid]=\"key?.touched && key?.invalid\"\n [disabled]=\"obs.disabled || obs.isEdit\"\n [invalidText]=\"'listColumn.uniqueKeyWarning' | translate\"\n >\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.key' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.keyTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"key\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.path' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.pathTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"path\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.displayType' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.displayTypeTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <cds-dropdown\n *ngIf=\"obs.viewTypeItems\"\n formControlName=\"displayType\"\n [disabled]=\"obs.disabled\"\n >\n <cds-dropdown-list [items]=\"obs.viewTypeItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showDateFormat\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.dateFormat' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.dateFormatTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"dateFormat\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showEnum\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.enumTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.enumTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <valtimo-carbon-multi-input\n *ngIf=\"obs.showEnum\"\n [fullWidth]=\"true\"\n [carbonTheme]=\"CARBON_THEME_WHITE\"\n [defaultValues]=\"obs.enumValues\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showYesNo\" [ngClass]=\"'no-margin'\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.enumTitleOptional' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.enumTooltipOptional' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <valtimo-carbon-multi-input\n *ngIf=\"obs.showYesNo\"\n [fullWidth]=\"true\"\n [carbonTheme]=\"CARBON_THEME_WHITE\"\n [defaultValues]=\"obs.yesNoValues\"\n type=\"keyValue\"\n [hideAddButton]=\"true\"\n [hideDeleteButton]=\"true\"\n [maxRows]=\"1\"\n [keyColumnTitle]=\"'viewTypeConverter.Yes' | translate\"\n [valueColumnTitle]=\"'viewTypeConverter.No' | translate\"\n (valueChange)=\"yesNoValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-checkbox formControlName=\"sortable\" [disabled]=\"obs.disabled\"\n >{{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled || obs.disableDefaultSort\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.defaultSortTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.defaultSortTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <cds-dropdown formControlName=\"defaultSort\" [disabled]=\"obs.disabled\" *ngIf=\"obs.sortItems\">\n <cds-dropdown-list [items]=\"obs.sortItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #modalFooter let-obs=\"obs\">\n <cds-modal-footer>\n <ng-container>\n <button\n (click)=\"closeModal()\"\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'listColumn.close' | translate }}\n </button>\n\n <button\n (click)=\"save()\"\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"!obs.valid\"\n [disabled]=\"obs.disabled || formGroup?.invalid || (obs.showEnum && !obs.enumValid)\"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n", styles: [".cds--text-input__field-wrapper cds-label{width:100%}.cds--text-input__field-wrapper ::ng-deep .cds--label{width:100%}.cds--text-input__field-wrapper:not(:last-child){margin-bottom:16px}.label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:8px}.list-column-form{margin-bottom:16px}.no-margin{margin-bottom:0!important}\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: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TabsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$2.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$2.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$2.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$2.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$2.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2$2.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$2.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2$2.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i2$2.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$2.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TooltipIconModule }, { kind: "component", type: i6.TooltipIconComponent, selector: "v-tooltip-icon", inputs: ["tooltip", "disabled"] }, { kind: "ngmodule", type: CarbonMultiInputModule }, { kind: "component", type: i6.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: ValtimoCdsModalDirectiveModule }, { kind: "directive", type: i6.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
551
595
  }
552
596
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementColumnModalComponent, decorators: [{
553
597
  type: Component,
@@ -567,7 +611,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
567
611
  ButtonModule,
568
612
  ValtimoCdsModalDirectiveModule,
569
613
  ], 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 show: show$ | async,\n type: type$ | async,\n isAdd: isAdd$ | async,\n isEdit: isEdit$ | async,\n disabled: disabled$ | async,\n showDateFormat: showDateFormat$ | async,\n showEnum: showEnum$ | async,\n showYesNo: showYesNo$ | async,\n disableDefaultSort: disableDefaultSort$ | async,\n enumValues: enumValues$ | async,\n enumValid: enumValid$ | async,\n yesNoValues: yesNoValues$ | async,\n viewTypeItems: viewTypeItems$ | async,\n sortItems: sortItems$ | async\n } as obs\"\n>\n <cds-modal size=\"sm\" [open]=\"obs.show\" valtimoCdsModal>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n obs.type === 'add'\n ? ('listColumn.addButtonText' | translate)\n : ('listColumn.editColumnTitle' | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"form; context: {obs: obs}\"></ng-container>\n </section>\n\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {obs: obs}\"> </ng-container>\n </cds-modal>\n</ng-container>\n\n<ng-template #form let-obs=\"obs\">\n <form [formGroup]=\"formGroup\" class=\"list-column-form\">\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.titleTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.titleTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"title\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label\n [invalid]=\"key?.touched && key?.invalid\"\n [disabled]=\"obs.disabled || obs.isEdit\"\n [invalidText]=\"'listColumn.uniqueKeyWarning' | translate\"\n >\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.key' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.keyTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"key\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.path' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.pathTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"path\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.displayType' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.displayTypeTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <cds-dropdown\n *ngIf=\"obs.viewTypeItems\"\n formControlName=\"displayType\"\n [disabled]=\"obs.disabled\"\n >\n <cds-dropdown-list [items]=\"obs.viewTypeItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showDateFormat\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip\">\n {{ 'listColumn.dateFormat' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.dateFormatTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <input cdsText formControlName=\"dateFormat\" />\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showEnum\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.enumTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.enumTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <valtimo-carbon-multi-input\n *ngIf=\"obs.showEnum\"\n [fullWidth]=\"true\"\n [carbonTheme]=\"CARBON_THEME_WHITE\"\n [defaultValues]=\"obs.enumValues\"\n type=\"keyValue\"\n (valueChange)=\"enumValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\" *ngIf=\"obs.showYesNo\" [ngClass]=\"'no-margin'\">\n <cds-label [disabled]=\"obs.disabled\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.enumTitleOptional' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.enumTooltipOptional' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <valtimo-carbon-multi-input\n *ngIf=\"obs.showYesNo\"\n [fullWidth]=\"true\"\n [carbonTheme]=\"CARBON_THEME_WHITE\"\n [defaultValues]=\"obs.yesNoValues\"\n type=\"keyValue\"\n [hideAddButton]=\"true\"\n [hideDeleteButton]=\"true\"\n [maxRows]=\"1\"\n [keyColumnTitle]=\"'viewTypeConverter.Yes' | translate\"\n [valueColumnTitle]=\"'viewTypeConverter.No' | translate\"\n (valueChange)=\"yesNoValueChange($event)\"\n ></valtimo-carbon-multi-input>\n </cds-label>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-checkbox formControlName=\"sortable\" [disabled]=\"obs.disabled\"\n >{{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n </div>\n\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"obs.disabled || obs.disableDefaultSort\">\n <span class=\"label-with-tooltip select-label\">\n {{ 'listColumn.defaultSortTitle' | translate }}\n\n <v-tooltip-icon\n [tooltip]=\"'listColumn.defaultSortTooltip' | translate\"\n [disabled]=\"obs.disabled\"\n ></v-tooltip-icon>\n </span>\n\n <cds-dropdown formControlName=\"defaultSort\" [disabled]=\"obs.disabled\" *ngIf=\"obs.sortItems\">\n <cds-dropdown-list [items]=\"obs.sortItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #modalFooter let-obs=\"obs\">\n <cds-modal-footer>\n <ng-container>\n <button\n (click)=\"closeModal()\"\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"obs.disabled\"\n >\n {{ 'listColumn.close' | translate }}\n </button>\n\n <button\n (click)=\"save()\"\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n [disabled]=\"!obs.valid\"\n [disabled]=\"obs.disabled || formGroup?.invalid || (obs.showEnum && !obs.enumValid)\"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n", styles: [".cds--text-input__field-wrapper cds-label{width:100%}.cds--text-input__field-wrapper ::ng-deep .cds--label{width:100%}.cds--text-input__field-wrapper:not(:last-child){margin-bottom:16px}.label-with-tooltip{display:flex;align-items:center}.select-label{padding-bottom:8px}.list-column-form{margin-bottom:16px}.no-margin{margin-bottom:0!important}\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"] }]
570
- }], ctorParameters: () => [{ type: i1$2.TranslateService }, { type: TaskManagementApiService }], propDecorators: { carbonTheme: [{
614
+ }], ctorParameters: () => [{ type: i4.TranslateService }, { type: TaskManagementApiService }], propDecorators: { carbonTheme: [{
571
615
  type: Input
572
616
  }], taskListColumns: [{
573
617
  type: Input
@@ -767,8 +811,8 @@ class TaskManagementColumnsComponent {
767
811
  clearSelectedTaskListColumn() {
768
812
  this.selectedTaskListColumn$.next(null);
769
813
  }
770
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementColumnsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: TaskManagementApiService }, { token: i1$2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
771
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementColumnsComponent, isStandalone: true, selector: "valtimo-task-management-columns", inputs: { carbonTheme: "carbonTheme" }, providers: [TaskManagementService], 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 taskListColumns: taskListColumns$ | async,\n cachedTaskListColumns: cachedTaskListColumns$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loadingColumns: loadingColumns$ | async,\n modalType: modalType$ | async,\n showModal: showModal$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n\n <valtimo-task-management-column-modal\n [taskListColumns]=\"obs.cachedTaskListColumns\"\n [type]=\"obs.modalType\"\n [show]=\"obs.showModal\"\n [documentDefinitionName]=\"obs.documentDefinitionName\"\n [selectedTaskListColumn]=\"selectedTaskListColumn$ | async\"\n (closeEvent)=\"onModalCloseEvent($event)\"\n ></valtimo-task-management-column-modal>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n (confirmEvent)=\"deleteRowConfirmation($event, obs.documentDefinitionName)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.taskListColumns\"\n [loading]=\"obs.loadingColumns\"\n [fields]=\"fields\"\n [header]=\"false\"\n [movingRowsEnabled]=\"true\"\n (rowClicked)=\"columnRowClicked($event)\"\n (moveRow)=\"onMoveRowClick($event, obs.documentDefinitionName)\"\n >\n <ng-container\n carbonToolbarContent\n *ngTemplateOutlet=\"buttons; context: {obs: obs}\"\n ></ng-container>\n\n <valtimo-no-results\n [title]=\"'listColumn.noConfigWarningTitle' | translate\"\n [description]=\"'listColumn.noConfigWarning' | translate\"\n illustration=\"valtimo-layout/img/emptystate-empty.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #buttons let-obs=\"obs\">\n <button cdsButton=\"primary\" (click)=\"showModal('add')\" [disabled]=\"obs.disabled\">\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: TaskManagementColumnModalComponent, selector: "valtimo-task-management-column-modal", inputs: ["carbonTheme", "taskListColumns", "type", "show", "documentDefinitionName", "selectedTaskListColumn"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i6.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
814
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementColumnsComponent, deps: [{ token: i2.ActivatedRoute }, { token: TaskManagementApiService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
815
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementColumnsComponent, isStandalone: true, selector: "valtimo-task-management-columns", inputs: { carbonTheme: "carbonTheme" }, providers: [TaskManagementService], 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 taskListColumns: taskListColumns$ | async,\n cachedTaskListColumns: cachedTaskListColumns$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loadingColumns: loadingColumns$ | async,\n modalType: modalType$ | async,\n showModal: showModal$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n\n <valtimo-task-management-column-modal\n [taskListColumns]=\"obs.cachedTaskListColumns\"\n [type]=\"obs.modalType\"\n [show]=\"obs.showModal\"\n [documentDefinitionName]=\"obs.documentDefinitionName\"\n [selectedTaskListColumn]=\"selectedTaskListColumn$ | async\"\n (closeEvent)=\"onModalCloseEvent($event)\"\n ></valtimo-task-management-column-modal>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n (confirmEvent)=\"deleteRowConfirmation($event, obs.documentDefinitionName)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.taskListColumns\"\n [loading]=\"obs.loadingColumns\"\n [fields]=\"fields\"\n [header]=\"false\"\n [movingRowsEnabled]=\"true\"\n (rowClicked)=\"columnRowClicked($event)\"\n (moveRow)=\"onMoveRowClick($event, obs.documentDefinitionName)\"\n >\n <ng-container\n carbonToolbarContent\n *ngTemplateOutlet=\"buttons; context: {obs: obs}\"\n ></ng-container>\n\n <valtimo-no-results\n [title]=\"'listColumn.noConfigWarningTitle' | translate\"\n [description]=\"'listColumn.noConfigWarning' | translate\"\n illustration=\"valtimo-layout/img/emptystate-empty.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #buttons let-obs=\"obs\">\n <button cdsButton=\"primary\" (click)=\"showModal('add')\" [disabled]=\"obs.disabled\">\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: TaskManagementColumnModalComponent, selector: "valtimo-task-management-column-modal", inputs: ["carbonTheme", "taskListColumns", "type", "show", "documentDefinitionName", "selectedTaskListColumn"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i6.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
772
816
  }
773
817
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementColumnsComponent, decorators: [{
774
818
  type: Component,
@@ -782,7 +826,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
782
826
  IconModule,
783
827
  ConfirmationModalModule,
784
828
  ], providers: [TaskManagementService], 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 taskListColumns: taskListColumns$ | async,\n cachedTaskListColumns: cachedTaskListColumns$ | async,\n documentDefinitionName: documentDefinitionName$ | async,\n loadingColumns: loadingColumns$ | async,\n modalType: modalType$ | async,\n showModal: showModal$ | async,\n disabled: disabled$ | async\n } as obs\"\n>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n\n <valtimo-task-management-column-modal\n [taskListColumns]=\"obs.cachedTaskListColumns\"\n [type]=\"obs.modalType\"\n [show]=\"obs.showModal\"\n [documentDefinitionName]=\"obs.documentDefinitionName\"\n [selectedTaskListColumn]=\"selectedTaskListColumn$ | async\"\n (closeEvent)=\"onModalCloseEvent($event)\"\n ></valtimo-task-management-column-modal>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n (confirmEvent)=\"deleteRowConfirmation($event, obs.documentDefinitionName)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.taskListColumns\"\n [loading]=\"obs.loadingColumns\"\n [fields]=\"fields\"\n [header]=\"false\"\n [movingRowsEnabled]=\"true\"\n (rowClicked)=\"columnRowClicked($event)\"\n (moveRow)=\"onMoveRowClick($event, obs.documentDefinitionName)\"\n >\n <ng-container\n carbonToolbarContent\n *ngTemplateOutlet=\"buttons; context: {obs: obs}\"\n ></ng-container>\n\n <valtimo-no-results\n [title]=\"'listColumn.noConfigWarningTitle' | translate\"\n [description]=\"'listColumn.noConfigWarning' | translate\"\n illustration=\"valtimo-layout/img/emptystate-empty.svg\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #buttons let-obs=\"obs\">\n <button cdsButton=\"primary\" (click)=\"showModal('add')\" [disabled]=\"obs.disabled\">\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n" }]
785
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: TaskManagementApiService }, { type: i1$2.TranslateService }], propDecorators: { carbonTheme: [{
829
+ }], ctorParameters: () => [{ type: i2.ActivatedRoute }, { type: TaskManagementApiService }, { type: i4.TranslateService }], propDecorators: { carbonTheme: [{
786
830
  type: Input
787
831
  }] } });
788
832
 
@@ -817,14 +861,513 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
817
861
  * See the License for the specific language governing permissions and
818
862
  * limitations under the License.
819
863
  */
820
- class TaskManagementDetailComponent {
821
- constructor(route, documentService, pageTitleService, taskManagementService) {
864
+ class TaskManagementSearchFieldsModalComponent {
865
+ set prefillData(value) {
866
+ this._prefillData = value;
867
+ this.setPrefilledForm(value);
868
+ }
869
+ get prefillData() {
870
+ return this._prefillData;
871
+ }
872
+ get dataType() {
873
+ return this.form.get('dataType');
874
+ }
875
+ get dataTypeValue$() {
876
+ return this.dataType.valueChanges.pipe(startWith(this.dataType.value));
877
+ }
878
+ get matchType() {
879
+ return this.form.get('matchType');
880
+ }
881
+ get matchTypeValue$() {
882
+ return this.matchType.valueChanges.pipe(startWith(this.matchType.value));
883
+ }
884
+ get dropdownDataProvider() {
885
+ return this.form.get('dropdownDataProvider');
886
+ }
887
+ get dropdownDataProviderValue$() {
888
+ return this.dropdownDataProvider.valueChanges.pipe(startWith(this.dropdownDataProvider.value));
889
+ }
890
+ get fieldType() {
891
+ return this.form.get('fieldType');
892
+ }
893
+ get fieldTypeValue$() {
894
+ return this.fieldType.valueChanges.pipe(startWith(this.fieldType.value));
895
+ }
896
+ get keyValue() {
897
+ const controlValue = this.form.get('key')?.value;
898
+ return !controlValue ? null : controlValue;
899
+ }
900
+ get dataTypeValue() {
901
+ const controlValue = this.form.get('dataType')?.value;
902
+ this._dataTypeValue$.next(controlValue?.id);
903
+ return !controlValue ? null : controlValue.id;
904
+ }
905
+ get fieldTypeValue() {
906
+ const controlValue = this.form.get('fieldType')?.value;
907
+ return !controlValue ? null : controlValue.id;
908
+ }
909
+ get dropdownDataProviderValue() {
910
+ const controlValue = this.form.get('dropdownDataProvider')?.value;
911
+ this._dropdownProviderValue$.next(controlValue?.id);
912
+ return !controlValue ? null : controlValue.id;
913
+ }
914
+ get dropdownValuesArray() {
915
+ const formArray = this.form.get('dropdownValues');
916
+ return !formArray ? null : formArray;
917
+ }
918
+ constructor(documentService, iconService, fb, translateService) {
919
+ this.documentService = documentService;
920
+ this.iconService = iconService;
921
+ this.fb = fb;
922
+ this.translateService = translateService;
923
+ this.closeEvent = new EventEmitter();
924
+ this.form = this.fb.group({
925
+ key: this.fb.control('', Validators.required),
926
+ title: this.fb.control('', Validators.required),
927
+ path: this.fb.control('', Validators.required),
928
+ dataType: this.fb.control(null, Validators.required),
929
+ matchType: this.fb.control(null, this.matchTypeValidator),
930
+ fieldType: this.fb.control(null, Validators.required),
931
+ dropdownDataProvider: this.fb.control(null),
932
+ dropdownValues: this.fb.array([]),
933
+ });
934
+ this.TaskListSearchFieldDataType = TaskListSearchFieldDataType;
935
+ this.TaskListSearchFieldFieldType = TaskListSearchFieldFieldType;
936
+ this.TaskListSearchDropdownDataProvider = TaskListSearchDropdownDataProvider;
937
+ this.DROPDOWN_FIELDS = [
938
+ {
939
+ key: 'key',
940
+ label: 'searchFieldsOverview.key',
941
+ viewType: ViewType.TEXT,
942
+ },
943
+ {
944
+ key: 'value',
945
+ label: 'searchFieldsOverview.text',
946
+ viewType: ViewType.TEXT,
947
+ },
948
+ ];
949
+ this._dataTypeValue$ = new BehaviorSubject(null);
950
+ this._dropdownProviderValue$ = new BehaviorSubject(null);
951
+ this.dropdownReadonlyItems$ = this._dropdownProviderValue$.pipe(distinctUntilChanged$1(), filter(val => !!val && val === TaskListSearchDropdownDataProvider.JSON), switchMap((provider) => this.documentService.getDropdownData(provider ?? '', this.documentDefinitionName ?? '', this.keyValue ?? '')), map(dropdownData => dropdownData ? Object.entries(dropdownData).map(([key, value]) => ({ key, value })) : []));
952
+ this.dataTypeItems$ = combineLatest([
953
+ this.dataTypeValue$,
954
+ this.translateService.stream('key'),
955
+ ]).pipe(map(([dataTypeValue]) => [
956
+ {
957
+ content: this.translateService.instant('searchFields.text'),
958
+ id: TaskListSearchFieldDataType.TEXT,
959
+ },
960
+ {
961
+ content: this.translateService.instant('searchFields.boolean'),
962
+ id: TaskListSearchFieldDataType.BOOLEAN,
963
+ },
964
+ {
965
+ content: this.translateService.instant('searchFields.date'),
966
+ id: TaskListSearchFieldDataType.DATE,
967
+ },
968
+ {
969
+ content: this.translateService.instant('searchFields.datetime'),
970
+ id: TaskListSearchFieldDataType.DATETIME,
971
+ },
972
+ {
973
+ content: this.translateService.instant('searchFields.number'),
974
+ id: TaskListSearchFieldDataType.NUMBER,
975
+ },
976
+ {
977
+ content: this.translateService.instant('searchFields.time'),
978
+ id: TaskListSearchFieldDataType.TIME,
979
+ },
980
+ ].map(item => ({ ...item, selected: item.id === dataTypeValue?.id }))));
981
+ this.fieldTypeItems$ = combineLatest([
982
+ this._dataTypeValue$.pipe(distinctUntilChanged$1()),
983
+ this.fieldTypeValue$,
984
+ this.translateService.stream('key'),
985
+ ]).pipe(map(([dataTypeValue, fieldTypeValue]) => [
986
+ {
987
+ content: this.translateService.instant('searchFieldsOverview.single'),
988
+ id: TaskListSearchFieldFieldType.SINGLE,
989
+ },
990
+ {
991
+ content: this.translateService.instant('searchFieldsOverview.range'),
992
+ id: TaskListSearchFieldFieldType.RANGE,
993
+ },
994
+ ...(dataTypeValue === TaskListSearchFieldDataType.TEXT
995
+ ? [
996
+ {
997
+ content: this.translateService.instant('searchFieldsOverview.single-select-dropdown'),
998
+ id: TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN,
999
+ },
1000
+ {
1001
+ content: this.translateService.instant('searchFieldsOverview.multi-select-dropdown'),
1002
+ id: TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN,
1003
+ },
1004
+ ]
1005
+ : []),
1006
+ ].map(item => ({ ...item, selected: item.id === fieldTypeValue?.id }))));
1007
+ this.dataProviderItems$ = this.translateService
1008
+ .stream('key')
1009
+ .pipe(switchMap(() => this.dropdownDataProviderValue$), map(dataProviderValue => [
1010
+ {
1011
+ content: this.translateService.instant('searchFieldsOverview.dropdownDatabaseDataProvider'),
1012
+ id: TaskListSearchDropdownDataProvider.DATABASE,
1013
+ },
1014
+ {
1015
+ content: this.translateService.instant('searchFieldsOverview.dropdownJsonFileDataProvider'),
1016
+ id: TaskListSearchDropdownDataProvider.JSON,
1017
+ },
1018
+ ].map(item => ({ ...item, selected: item.id === dataProviderValue?.id }))));
1019
+ this.matchTypeItems$ = this.translateService
1020
+ .stream('key')
1021
+ .pipe(switchMap(() => this.matchTypeValue$), map(matchTypeValue => [
1022
+ {
1023
+ content: this.translateService.instant('searchFieldsOverview.like'),
1024
+ id: TaskListSearchFieldMatchType.LIKE,
1025
+ },
1026
+ {
1027
+ content: this.translateService.instant('searchFieldsOverview.exact'),
1028
+ id: TaskListSearchFieldMatchType.EXACT,
1029
+ },
1030
+ ].map(item => ({ ...item, selected: item.id === matchTypeValue?.id }))));
1031
+ this.iconService.registerAll([TrashCan16, InformationFilled16]);
1032
+ }
1033
+ ngOnInit() {
1034
+ this.form.setValidators([this.dropdownDataProviderValidator, this.dropdownValuesValidator]);
1035
+ }
1036
+ addDropdownValue(prefillValue) {
1037
+ if (!this.dropdownValuesArray)
1038
+ return;
1039
+ this.dropdownValuesArray.push(this.fb.group({
1040
+ key: this.fb.control(prefillValue?.key ?? '', Validators.required),
1041
+ value: this.fb.control(prefillValue?.value ?? '', Validators.required),
1042
+ }));
1043
+ }
1044
+ removeDropdownValue(index) {
1045
+ if (!this.dropdownValuesArray)
1046
+ return;
1047
+ this.dropdownValuesArray.removeAt(index);
1048
+ }
1049
+ onCancel() {
1050
+ this.closeEvent.emit(null);
1051
+ this.resetForm();
1052
+ }
1053
+ onSave() {
1054
+ const groupValue = this.form.getRawValue();
1055
+ this.closeEvent.emit({
1056
+ ...(groupValue.title && { title: groupValue.title }),
1057
+ ...(groupValue.key && { key: groupValue.key }),
1058
+ ...(groupValue.path && { path: groupValue.path }),
1059
+ ...(groupValue.dataType?.content && { dataType: groupValue.dataType.id }),
1060
+ ...(groupValue.matchType?.content && { matchType: groupValue.matchType.id }),
1061
+ ...(groupValue.fieldType?.content && { fieldType: groupValue.fieldType.id }),
1062
+ ...(groupValue.dropdownDataProvider?.content && {
1063
+ dropdownDataProvider: groupValue.dropdownDataProvider.id,
1064
+ }),
1065
+ ...(groupValue.dropdownValues && {
1066
+ dropdownValues: groupValue.dropdownValues.reduce((acc, curr) => ({ ...acc, ...(!!curr?.key && { [curr.key]: curr.value }) }), {}),
1067
+ }),
1068
+ });
1069
+ this.resetForm();
1070
+ }
1071
+ setPrefilledForm(prefillData) {
1072
+ if (!prefillData)
1073
+ return;
1074
+ this.form.patchValue({
1075
+ ...prefillData,
1076
+ dataType: !prefillData.dataType
1077
+ ? null
1078
+ : {
1079
+ content: prefillData.dataType,
1080
+ id: prefillData.dataType,
1081
+ selected: true,
1082
+ },
1083
+ matchType: !prefillData.matchType
1084
+ ? null
1085
+ : {
1086
+ content: prefillData.matchType,
1087
+ id: prefillData.matchType,
1088
+ selected: true,
1089
+ },
1090
+ fieldType: !prefillData.fieldType
1091
+ ? null
1092
+ : {
1093
+ content: prefillData.fieldType,
1094
+ id: prefillData.fieldType,
1095
+ selected: true,
1096
+ },
1097
+ dropdownDataProvider: !prefillData.dropdownDataProvider
1098
+ ? null
1099
+ : {
1100
+ content: prefillData.dropdownDataProvider,
1101
+ id: prefillData.dropdownDataProvider,
1102
+ selected: true,
1103
+ },
1104
+ dropdownValues: [],
1105
+ });
1106
+ if (prefillData.dropdownDataProvider && prefillData.dropdownValues)
1107
+ this.setPrefilledDropdownValues(prefillData.dropdownValues);
1108
+ this.form.get('key')?.disable();
1109
+ }
1110
+ setPrefilledDropdownValues(dropdownValue) {
1111
+ if (!this.dropdownValuesArray || !this.dropdownDataProviderValue)
1112
+ return;
1113
+ Object.entries(dropdownValue).forEach(([key, value]) => {
1114
+ this.addDropdownValue({ key, value });
1115
+ });
1116
+ }
1117
+ matchTypeValidator(control) {
1118
+ const controlValue = control.value;
1119
+ const dataTypeControlValue = control.parent?.get('dataType')?.value;
1120
+ if (dataTypeControlValue?.id === TaskListSearchFieldDataType.TEXT &&
1121
+ (!controlValue || !controlValue.selected))
1122
+ return { error: 'Match type not selected' };
1123
+ return null;
1124
+ }
1125
+ dropdownDataProviderValidator(group) {
1126
+ const controlValue = group.get('dropdownDataProvider')?.value;
1127
+ const fieldTypeControlValue = group.get('fieldType')?.value;
1128
+ if ([
1129
+ TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN,
1130
+ TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN,
1131
+ ].includes(fieldTypeControlValue?.id) &&
1132
+ !controlValue)
1133
+ return { error: 'Dropdown source provider is not specified' };
1134
+ return null;
1135
+ }
1136
+ dropdownValuesValidator(group) {
1137
+ const controlValue = group.get('dropdownValues')?.value;
1138
+ const fieldTypeControlValue = group.get('fieldType')?.value?.id;
1139
+ const dropdownProviderValue = group.get('dropdownDataProvider')?.value?.id;
1140
+ if ([
1141
+ TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN,
1142
+ TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN,
1143
+ ].includes(fieldTypeControlValue) &&
1144
+ (!controlValue || controlValue?.length === 0) &&
1145
+ dropdownProviderValue === TaskListSearchDropdownDataProvider.DATABASE)
1146
+ return { error: 'Dropdown source provider is not specified or is empty' };
1147
+ return null;
1148
+ }
1149
+ resetForm() {
1150
+ setTimeout(() => {
1151
+ while (!!this.dropdownValuesArray?.length) {
1152
+ this.dropdownValuesArray.removeAt(0);
1153
+ }
1154
+ this.form.reset();
1155
+ this.form.enable();
1156
+ }, CARBON_CONSTANTS.modalAnimationMs);
1157
+ }
1158
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementSearchFieldsModalComponent, deps: [{ token: i1.DocumentService }, { token: i2$2.IconService }, { token: i3$1.FormBuilder }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
1159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TaskManagementSearchFieldsModalComponent, isStandalone: true, selector: "valtimo-task-management-search-fields-modal", inputs: { open: "open", documentDefinitionName: "documentDefinitionName", prefillData: "prefillData" }, outputs: { closeEvent: "closeEvent" }, 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<cds-modal [open]=\"open\" showFooter=\"true\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ (!prefillData ? 'searchFieldsOverview.add' : 'searchFieldsOverview.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\" class=\"valtimo-task-management-search-fields-modal__content\">\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.title' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.title' | translate\"\n >\n </v-input-label>\n\n <input cdsText type=\"text\" formControlName=\"title\" />\n </div>\n\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.key' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.key' | translate\"\n >\n </v-input-label>\n\n <input cdsText type=\"text\" formControlName=\"key\" />\n </div>\n\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.path' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.path' | translate\"\n >\n </v-input-label>\n\n <input cdsText type=\"text\" formControlName=\"path\" />\n </div>\n\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dataType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dataType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown formControlName=\"dataType\">\n <cds-dropdown-list [items]=\"dataTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (dataTypeValue === TaskListSearchFieldDataType.TEXT) {\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.matchType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.matchType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown formControlName=\"matchType\">\n <cds-dropdown-list [items]=\"matchTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n }\n\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.fieldType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.fieldType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown formControlName=\"fieldType\">\n <cds-dropdown-list [items]=\"fieldTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (\n dataTypeValue === TaskListSearchFieldDataType.TEXT &&\n (fieldTypeValue === TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN ||\n fieldTypeValue === TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN)\n ) {\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dropdownDataProvider' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownDataProvider' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown formControlName=\"dropdownDataProvider\">\n <cds-dropdown-list [items]=\"dataProviderItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (dropdownDataProviderValue === TaskListSearchDropdownDataProvider.DATABASE) {\n <div\n class=\"valtimo-task-management-search-fields-modal__list\"\n formArrayName=\"dropdownValues\"\n >\n <v-input-label\n [title]=\"'searchFieldsOverview.dropdownListValues' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownListValues' | translate\"\n [noMargin]=\"true\"\n >\n </v-input-label>\n\n @for (dropdownValue of dropdownValuesArray?.controls; track $index) {\n <form\n [formGroup]=\"dropdownValue\"\n class=\"valtimo-task-management-search-fields-modal__dropdown-values\"\n >\n <cds-text-label>\n {{ 'interface.key' | translate }}\n\n <input cdsText type=\"text\" formControlName=\"key\" />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'interface.value' | translate }}\n\n <input cdsText type=\"text\" formControlName=\"value\" />\n </cds-text-label>\n\n <button\n cdsButton=\"danger\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"removeDropdownValue($index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button cdsButton=\"primary\" (click)=\"addDropdownValue()\">\n {{ 'interface.addRow' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n } @else if (dropdownDataProviderValue === TaskListSearchDropdownDataProvider.JSON) {\n <valtimo-carbon-list\n [header]=\"false\"\n [hideToolbar]=\"true\"\n [fields]=\"DROPDOWN_FIELDS\"\n [items]=\"dropdownReadonlyItems$ | async\"\n ></valtimo-carbon-list>\n }\n }\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"form.invalid\" (click)=\"onSave()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-task-management-search-fields-modal__content,.valtimo-task-management-search-fields-modal__dropdown-values{display:flex;gap:16px}.valtimo-task-management-search-fields-modal__content{flex-direction:column}.valtimo-task-management-search-fields-modal__dropdown-values{align-items:flex-end;gap:16px}.valtimo-task-management-search-fields-modal__label{display:flex;gap:4px}.valtimo-task-management-search-fields-modal__list{display:flex;flex-direction:column;gap:16px}\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: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$2.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2$2.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i2$2.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$2.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$2.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$2.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$2.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$2.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$2.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i6.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1160
+ }
1161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementSearchFieldsModalComponent, decorators: [{
1162
+ type: Component,
1163
+ args: [{ selector: 'valtimo-task-management-search-fields-modal', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
1164
+ CommonModule,
1165
+ TranslateModule,
1166
+ ButtonModule,
1167
+ DropdownModule,
1168
+ InputModule,
1169
+ ModalModule,
1170
+ ReactiveFormsModule,
1171
+ IconModule,
1172
+ CarbonListModule,
1173
+ InputLabelModule,
1174
+ ], 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<cds-modal [open]=\"open\" showFooter=\"true\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ (!prefillData ? 'searchFieldsOverview.add' : 'searchFieldsOverview.edit') | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\" class=\"valtimo-task-management-search-fields-modal__content\">\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.title' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.title' | translate\"\n >\n </v-input-label>\n\n <input cdsText type=\"text\" formControlName=\"title\" />\n </div>\n\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.key' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.key' | translate\"\n >\n </v-input-label>\n\n <input cdsText type=\"text\" formControlName=\"key\" />\n </div>\n\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.path' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.path' | translate\"\n >\n </v-input-label>\n\n <input cdsText type=\"text\" formControlName=\"path\" />\n </div>\n\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dataType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dataType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown formControlName=\"dataType\">\n <cds-dropdown-list [items]=\"dataTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (dataTypeValue === TaskListSearchFieldDataType.TEXT) {\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.matchType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.matchType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown formControlName=\"matchType\">\n <cds-dropdown-list [items]=\"matchTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n }\n\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.fieldType' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.fieldType' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown formControlName=\"fieldType\">\n <cds-dropdown-list [items]=\"fieldTypeItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (\n dataTypeValue === TaskListSearchFieldDataType.TEXT &&\n (fieldTypeValue === TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN ||\n fieldTypeValue === TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN)\n ) {\n <div class=\"valtimo-task-management-search-fields-modal__input\">\n <v-input-label\n [title]=\"'searchFieldsOverview.dropdownDataProvider' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownDataProvider' | translate\"\n >\n </v-input-label>\n\n <cds-dropdown formControlName=\"dropdownDataProvider\">\n <cds-dropdown-list [items]=\"dataProviderItems$ | async\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n @if (dropdownDataProviderValue === TaskListSearchDropdownDataProvider.DATABASE) {\n <div\n class=\"valtimo-task-management-search-fields-modal__list\"\n formArrayName=\"dropdownValues\"\n >\n <v-input-label\n [title]=\"'searchFieldsOverview.dropdownListValues' | translate\"\n [tooltip]=\"'searchFieldsOverviewTooltips.dropdownListValues' | translate\"\n [noMargin]=\"true\"\n >\n </v-input-label>\n\n @for (dropdownValue of dropdownValuesArray?.controls; track $index) {\n <form\n [formGroup]=\"dropdownValue\"\n class=\"valtimo-task-management-search-fields-modal__dropdown-values\"\n >\n <cds-text-label>\n {{ 'interface.key' | translate }}\n\n <input cdsText type=\"text\" formControlName=\"key\" />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'interface.value' | translate }}\n\n <input cdsText type=\"text\" formControlName=\"value\" />\n </cds-text-label>\n\n <button\n cdsButton=\"danger\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"removeDropdownValue($index)\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button cdsButton=\"primary\" (click)=\"addDropdownValue()\">\n {{ 'interface.addRow' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n } @else if (dropdownDataProviderValue === TaskListSearchDropdownDataProvider.JSON) {\n <valtimo-carbon-list\n [header]=\"false\"\n [hideToolbar]=\"true\"\n [fields]=\"DROPDOWN_FIELDS\"\n [items]=\"dropdownReadonlyItems$ | async\"\n ></valtimo-carbon-list>\n }\n }\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"form.invalid\" (click)=\"onSave()\">\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-task-management-search-fields-modal__content,.valtimo-task-management-search-fields-modal__dropdown-values{display:flex;gap:16px}.valtimo-task-management-search-fields-modal__content{flex-direction:column}.valtimo-task-management-search-fields-modal__dropdown-values{align-items:flex-end;gap:16px}.valtimo-task-management-search-fields-modal__label{display:flex;gap:4px}.valtimo-task-management-search-fields-modal__list{display:flex;flex-direction:column;gap:16px}\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"] }]
1175
+ }], ctorParameters: () => [{ type: i1.DocumentService }, { type: i2$2.IconService }, { type: i3$1.FormBuilder }, { type: i4.TranslateService }], propDecorators: { open: [{
1176
+ type: Input,
1177
+ args: [{ required: true }]
1178
+ }], documentDefinitionName: [{
1179
+ type: Input,
1180
+ args: [{ required: true }]
1181
+ }], prefillData: [{
1182
+ type: Input
1183
+ }], closeEvent: [{
1184
+ type: Output
1185
+ }] } });
1186
+
1187
+ /*
1188
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
1189
+ *
1190
+ * Licensed under EUPL, Version 1.2 (the "License");
1191
+ * you may not use this file except in compliance with the License.
1192
+ * You may obtain a copy of the License at
1193
+ *
1194
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1195
+ *
1196
+ * Unless required by applicable law or agreed to in writing, software
1197
+ * distributed under the License is distributed on an "AS IS" basis,
1198
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1199
+ * See the License for the specific language governing permissions and
1200
+ * limitations under the License.
1201
+ */
1202
+ class TaskManagementSearchFieldsComponent {
1203
+ constructor(documentService, route, searchFieldsService, trasnlateService) {
1204
+ this.documentService = documentService;
822
1205
  this.route = route;
1206
+ this.searchFieldsService = searchFieldsService;
1207
+ this.trasnlateService = trasnlateService;
1208
+ this.documentDefinitionName$ = this.route.params.pipe(map(params => params.name || ''), filter(docDefName => !!docDefName), tap((docDefName) => this.searchFieldsService.setDocumentDefinitionName(docDefName)));
1209
+ this._refresh$ = new BehaviorSubject(null);
1210
+ this.searchFields$ = combineLatest([
1211
+ this.documentDefinitionName$,
1212
+ this._refresh$,
1213
+ this.trasnlateService.stream('key'),
1214
+ ]).pipe(switchMap(() => this.searchFieldsService.getTaskListSearchFields()), map((searchFields) => this.mapTranslations(searchFields)));
1215
+ this.fields$ = this.trasnlateService.stream('key').pipe(map(() => [
1216
+ {
1217
+ key: 'title',
1218
+ label: 'searchFieldsOverview.title',
1219
+ viewType: ViewType.TEXT,
1220
+ },
1221
+ {
1222
+ key: 'key',
1223
+ label: 'searchFieldsOverview.key',
1224
+ viewType: ViewType.TEXT,
1225
+ },
1226
+ {
1227
+ key: 'path',
1228
+ label: 'searchFieldsOverview.path',
1229
+ viewType: ViewType.TEXT,
1230
+ },
1231
+ {
1232
+ key: 'dataTypeTranslation',
1233
+ label: 'searchFieldsOverview.dataType',
1234
+ viewType: ViewType.TEXT,
1235
+ },
1236
+ {
1237
+ key: 'fieldTypeTranslation',
1238
+ label: 'searchFieldsOverview.fieldType',
1239
+ viewType: ViewType.TEXT,
1240
+ },
1241
+ ]));
1242
+ this.deleteModalOpen$ = new BehaviorSubject(false);
1243
+ this.fieldModalOpen$ = new BehaviorSubject(false);
1244
+ this.itemToDelete$ = new BehaviorSubject(null);
1245
+ this.prefillData$ = new BehaviorSubject(null);
1246
+ this.ACTION_ITEMS = [
1247
+ {
1248
+ label: 'interface.edit',
1249
+ callback: this.editField.bind(this),
1250
+ type: 'normal',
1251
+ },
1252
+ {
1253
+ label: 'interface.delete',
1254
+ callback: this.deleteField.bind(this),
1255
+ type: 'danger',
1256
+ },
1257
+ ];
1258
+ }
1259
+ editField(item) {
1260
+ if (!!item.dropdownDataProvider) {
1261
+ this.documentService
1262
+ .getDropdownData(item.dropdownDataProvider, item.ownerId, item.key)
1263
+ .pipe(take(1))
1264
+ .subscribe(dropdownValues => {
1265
+ item.dropdownValues = dropdownValues;
1266
+ this.prefillData$.next(item);
1267
+ this.fieldModalOpen$.next(true);
1268
+ });
1269
+ return;
1270
+ }
1271
+ this.prefillData$.next(item);
1272
+ this.fieldModalOpen$.next(true);
1273
+ }
1274
+ onItemsReordered(event) {
1275
+ this.searchFieldsService
1276
+ .orderTaskListSearchFields(event)
1277
+ .pipe(take(1))
1278
+ .subscribe(() => this._refresh$.next(null));
1279
+ }
1280
+ onAddButtonClick() {
1281
+ this.fieldModalOpen$.next(true);
1282
+ }
1283
+ onCloseEvent(searchField, prefillData) {
1284
+ this.fieldModalOpen$.next(false);
1285
+ this.prefillData$.next(null);
1286
+ if (!searchField)
1287
+ return;
1288
+ const hasDropdownValues = searchField.fieldType === TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN ||
1289
+ searchField.fieldType === TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN;
1290
+ (!prefillData
1291
+ ? this.searchFieldsService.createTaskListSearchField(searchField)
1292
+ : this.searchFieldsService.updateTaskListSearchField(searchField))
1293
+ .pipe(take(1), switchMap((field) => {
1294
+ return hasDropdownValues
1295
+ ? this.documentService.postDropdownData(field.dropdownDataProvider ?? '', field.ownerId, field.key, searchField.dropdownValues ?? {})
1296
+ : of(field);
1297
+ }))
1298
+ .subscribe(() => this._refresh$.next(null));
1299
+ }
1300
+ onDeleteFieldConfirm(item) {
1301
+ if (!item)
1302
+ return;
1303
+ this.searchFieldsService
1304
+ .deleteTaskListSearchField(item.key)
1305
+ .pipe(take(1), switchMap(() => item.dropdownDataProvider
1306
+ ? this.documentService.deleteDropdownData(item.dropdownDataProvider, item.ownerId, item.key)
1307
+ : of()))
1308
+ .subscribe(() => this._refresh$.next(null));
1309
+ }
1310
+ deleteField(item) {
1311
+ this.itemToDelete$.next(item);
1312
+ this.deleteModalOpen$.next(true);
1313
+ }
1314
+ mapTranslations(searchFields) {
1315
+ return searchFields.map((searchField) => ({
1316
+ ...searchField,
1317
+ dataTypeTranslation: this.trasnlateService.instant(`searchFields.${searchField.dataType.toLowerCase()}`),
1318
+ fieldTypeTranslation: this.trasnlateService.instant(`searchFieldsOverview.${this.fieldTypeTranslation(searchField.fieldType)}`),
1319
+ }));
1320
+ }
1321
+ fieldTypeTranslation(fieldType) {
1322
+ switch (fieldType) {
1323
+ case TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN:
1324
+ return 'single-select-dropdown';
1325
+ case TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN:
1326
+ return 'multi-select-dropdown';
1327
+ default:
1328
+ return fieldType.toLowerCase();
1329
+ }
1330
+ }
1331
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementSearchFieldsComponent, deps: [{ token: i1.DocumentService }, { token: i2.ActivatedRoute }, { token: TaskManagementSearchFieldsService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
1332
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementSearchFieldsComponent, isStandalone: true, selector: "valtimo-task-management-search-fields", 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 fieldModalOpen: fieldModalOpen$ | async,\n fields: fields$ | async,\n itemToDelete: itemToDelete$ | async,\n prefillData: prefillData$ | async,\n searchFields: searchFields$ | async\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"obs.fields\"\n [items]=\"obs.searchFields\"\n [dragAndDrop]=\"true\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"editField($event)\"\n >\n <ng-container carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\n [description]=\"'searchFieldsOverview.noSearchfieldsDescription' | translate\"\n [title]=\"'searchFieldsOverview.noSearchfieldsTitle' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-task-management-search-fields-modal\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n [open]=\"obs.fieldModalOpen\"\n [prefillData]=\"obs.prefillData\"\n (closeEvent)=\"onCloseEvent($event, obs.prefillData)\"\n ></valtimo-task-management-search-fields-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"searchFieldsOverview.deleteSearchFieldConfirmation\"\n [outputOnConfirm]=\"obs.itemToDelete\"\n [showModalSubject$]=\"deleteModalOpen$\"\n titleTranslationKey=\"searchFieldsOverview.deleteSearchField\"\n (confirmEvent)=\"onDeleteFieldConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button cdsButton=\"primary\" (click)=\"onAddButtonClick()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'searchFieldsOverview.add' | translate }}\n </button>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: TaskManagementSearchFieldsModalComponent, selector: "valtimo-task-management-search-fields-modal", inputs: ["open", "documentDefinitionName", "prefillData"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i6.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1333
+ }
1334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementSearchFieldsComponent, decorators: [{
1335
+ type: Component,
1336
+ args: [{ selector: 'valtimo-task-management-search-fields', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
1337
+ CommonModule,
1338
+ TranslateModule,
1339
+ CarbonListModule,
1340
+ ButtonModule,
1341
+ IconModule,
1342
+ TaskManagementSearchFieldsModalComponent,
1343
+ ConfirmationModalModule,
1344
+ ], 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 fieldModalOpen: fieldModalOpen$ | async,\n fields: fields$ | async,\n itemToDelete: itemToDelete$ | async,\n prefillData: prefillData$ | async,\n searchFields: searchFields$ | async\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"ACTION_ITEMS\"\n [fields]=\"obs.fields\"\n [items]=\"obs.searchFields\"\n [dragAndDrop]=\"true\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"editField($event)\"\n >\n <ng-container carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\n [description]=\"'searchFieldsOverview.noSearchfieldsDescription' | translate\"\n [title]=\"'searchFieldsOverview.noSearchfieldsTitle' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n\n <valtimo-task-management-search-fields-modal\n [documentDefinitionName]=\"documentDefinitionName$ | async\"\n [open]=\"obs.fieldModalOpen\"\n [prefillData]=\"obs.prefillData\"\n (closeEvent)=\"onCloseEvent($event, obs.prefillData)\"\n ></valtimo-task-management-search-fields-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"searchFieldsOverview.deleteSearchFieldConfirmation\"\n [outputOnConfirm]=\"obs.itemToDelete\"\n [showModalSubject$]=\"deleteModalOpen$\"\n titleTranslationKey=\"searchFieldsOverview.deleteSearchField\"\n (confirmEvent)=\"onDeleteFieldConfirm($event)\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button cdsButton=\"primary\" (click)=\"onAddButtonClick()\">\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n\n {{ 'searchFieldsOverview.add' | translate }}\n </button>\n</ng-template>\n" }]
1345
+ }], ctorParameters: () => [{ type: i1.DocumentService }, { type: i2.ActivatedRoute }, { type: TaskManagementSearchFieldsService }, { type: i4.TranslateService }] });
1346
+
1347
+ /*
1348
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
1349
+ *
1350
+ * Licensed under EUPL, Version 1.2 (the "License");
1351
+ * you may not use this file except in compliance with the License.
1352
+ * You may obtain a copy of the License at
1353
+ *
1354
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
1355
+ *
1356
+ * Unless required by applicable law or agreed to in writing, software
1357
+ * distributed under the License is distributed on an "AS IS" basis,
1358
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1359
+ * See the License for the specific language governing permissions and
1360
+ * limitations under the License.
1361
+ */
1362
+ class TaskManagementDetailComponent {
1363
+ constructor(configService, documentService, pageTitleService, route, taskManagementService) {
1364
+ this.configService = configService;
823
1365
  this.documentService = documentService;
824
1366
  this.pageTitleService = pageTitleService;
1367
+ this.route = route;
825
1368
  this.taskManagementService = taskManagementService;
826
1369
  this.carbonTheme = CARBON_THEME.G10;
827
- this.setDocumentDefinitionName$ = this.route.params.pipe(map(params => params.name || ''), filter(docDefName => !!docDefName), switchMap(documentDefinitionName => this.documentService.getDocumentDefinition(documentDefinitionName)), tap(documentDefinition => {
1370
+ this.setDocumentDefinitionName$ = this.route.params.pipe(map(params => params.name || ''), filter(docDefName => !!docDefName), switchMap(documentDefinitionName => this.documentService.getDocumentDefinitionForManagement(documentDefinitionName)), tap(documentDefinition => {
828
1371
  this.pageTitleService.setCustomPageTitle(documentDefinition?.schema?.title || '-');
829
1372
  }));
830
1373
  this.activeTab$ = this.taskManagementService.activeTab$;
@@ -833,8 +1376,8 @@ class TaskManagementDetailComponent {
833
1376
  setActiveTab(tab) {
834
1377
  this.taskManagementService.setActiveTab(tab);
835
1378
  }
836
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementDetailComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1.DocumentService }, { token: i6.PageTitleService }, { token: TaskManagementService }], target: i0.ɵɵFactoryTarget.Component }); }
837
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementDetailComponent, isStandalone: true, selector: "ng-component", inputs: { carbonTheme: "carbonTheme" }, providers: [TaskManagementService], 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<div\n *ngIf=\"{\n documentDefinitionName: setDocumentDefinitionName$ | async,\n activeTab: activeTab$ | async\n } as obs\"\n class=\"task-management-detail\"\n>\n <ng-container *ngIf=\"{columns: obs.activeTab === TAB_ENUM.COLUMNS} as activeTab\">\n <cds-tabs class=\"dossier-management-tabs\" type=\"contained\">\n <cds-tab\n [active]=\"activeTab.columns\"\n [heading]=\"'taskManagement.columns' | translate\"\n (selected)=\"setActiveTab(TAB_ENUM.COLUMNS)\"\n ></cds-tab>\n </cds-tabs>\n\n <valtimo-task-management-columns *ngIf=\"activeTab.columns\"> </valtimo-task-management-columns>\n </ng-container>\n</div>\n", styles: [".task-management-detail .cds--tab-content{display:none}\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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i5.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i5.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: TaskManagementColumnsComponent, selector: "valtimo-task-management-columns", inputs: ["carbonTheme"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1379
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementDetailComponent, deps: [{ token: i2$1.ConfigService }, { token: i1.DocumentService }, { token: i6.PageTitleService }, { token: i2.ActivatedRoute }, { token: TaskManagementService }], target: i0.ɵɵFactoryTarget.Component }); }
1380
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TaskManagementDetailComponent, isStandalone: true, selector: "ng-component", inputs: { carbonTheme: "carbonTheme" }, providers: [TaskManagementService], 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<div\n *ngIf=\"{\n activeTab: activeTab$ | async,\n documentDefinitionName: setDocumentDefinitionName$ | async,\n } as obs\"\n class=\"task-management-detail\"\n>\n <cds-tabs class=\"dossier-management-tabs\" type=\"contained\">\n <cds-tab\n [active]=\"obs.activeTab === TAB_ENUM.COLUMNS\"\n [heading]=\"'taskManagement.columns' | translate\"\n (selected)=\"setActiveTab(TAB_ENUM.COLUMNS)\"\n >\n <valtimo-task-management-columns> </valtimo-task-management-columns>\n </cds-tab>\n\n <cds-tab\n [active]=\"obs.activeTab === TAB_ENUM.SEARCH_FIELDS\"\n [heading]=\"'taskManagement.searchFields' | translate\"\n (selected)=\"setActiveTab(TAB_ENUM.SEARCH_FIELDS)\"\n >\n <valtimo-task-management-search-fields> </valtimo-task-management-search-fields>\n </cds-tab>\n \n </cds-tabs>\n</div>\n", styles: [".task-management-detail .cds--tab-content{padding:0}\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: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i2$2.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i2$2.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive"], outputs: ["selected"] }, { kind: "component", type: TaskManagementColumnsComponent, selector: "valtimo-task-management-columns", inputs: ["carbonTheme"] }, { kind: "component", type: TaskManagementSearchFieldsComponent, selector: "valtimo-task-management-search-fields" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
838
1381
  }
839
1382
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementDetailComponent, decorators: [{
840
1383
  type: Component,
@@ -844,8 +1387,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
844
1387
  TranslateModule,
845
1388
  TabsModule,
846
1389
  TaskManagementColumnsComponent,
847
- ], providers: [TaskManagementService], 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<div\n *ngIf=\"{\n documentDefinitionName: setDocumentDefinitionName$ | async,\n activeTab: activeTab$ | async\n } as obs\"\n class=\"task-management-detail\"\n>\n <ng-container *ngIf=\"{columns: obs.activeTab === TAB_ENUM.COLUMNS} as activeTab\">\n <cds-tabs class=\"dossier-management-tabs\" type=\"contained\">\n <cds-tab\n [active]=\"activeTab.columns\"\n [heading]=\"'taskManagement.columns' | translate\"\n (selected)=\"setActiveTab(TAB_ENUM.COLUMNS)\"\n ></cds-tab>\n </cds-tabs>\n\n <valtimo-task-management-columns *ngIf=\"activeTab.columns\"> </valtimo-task-management-columns>\n </ng-container>\n</div>\n", styles: [".task-management-detail .cds--tab-content{display:none}\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"] }]
848
- }], ctorParameters: () => [{ type: i1$1.ActivatedRoute }, { type: i1.DocumentService }, { type: i6.PageTitleService }, { type: TaskManagementService }], propDecorators: { carbonTheme: [{
1390
+ TaskManagementSearchFieldsComponent,
1391
+ ], providers: [TaskManagementService], 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<div\n *ngIf=\"{\n activeTab: activeTab$ | async,\n documentDefinitionName: setDocumentDefinitionName$ | async,\n } as obs\"\n class=\"task-management-detail\"\n>\n <cds-tabs class=\"dossier-management-tabs\" type=\"contained\">\n <cds-tab\n [active]=\"obs.activeTab === TAB_ENUM.COLUMNS\"\n [heading]=\"'taskManagement.columns' | translate\"\n (selected)=\"setActiveTab(TAB_ENUM.COLUMNS)\"\n >\n <valtimo-task-management-columns> </valtimo-task-management-columns>\n </cds-tab>\n\n <cds-tab\n [active]=\"obs.activeTab === TAB_ENUM.SEARCH_FIELDS\"\n [heading]=\"'taskManagement.searchFields' | translate\"\n (selected)=\"setActiveTab(TAB_ENUM.SEARCH_FIELDS)\"\n >\n <valtimo-task-management-search-fields> </valtimo-task-management-search-fields>\n </cds-tab>\n \n </cds-tabs>\n</div>\n", styles: [".task-management-detail .cds--tab-content{padding:0}\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"] }]
1392
+ }], ctorParameters: () => [{ type: i2$1.ConfigService }, { type: i1.DocumentService }, { type: i6.PageTitleService }, { type: i2.ActivatedRoute }, { type: TaskManagementService }], propDecorators: { carbonTheme: [{
849
1393
  type: Input
850
1394
  }] } });
851
1395
 
@@ -928,7 +1472,7 @@ const routes = [
928
1472
  ];
929
1473
  class TaskManagementRoutingModule {
930
1474
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
931
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementRoutingModule, imports: [CommonModule, i1$1.RouterModule], exports: [RouterModule] }); }
1475
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementRoutingModule, imports: [CommonModule, i2.RouterModule], exports: [RouterModule] }); }
932
1476
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
933
1477
  }
934
1478
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TaskManagementRoutingModule, decorators: [{
@@ -989,5 +1533,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
989
1533
  * Generated bundle index. Do not edit.
990
1534
  */
991
1535
 
992
- export { TaskManagementApiService, TaskManagementColumnModalComponent, TaskManagementColumnsComponent, TaskManagementComponent, TaskManagementDetailComponent, TaskManagementModule, TaskManagementService, TaskManagementTab };
1536
+ export { TaskManagementApiService, TaskManagementColumnModalComponent, TaskManagementColumnsComponent, TaskManagementComponent, TaskManagementDetailComponent, TaskManagementModule, TaskManagementSearchFieldsComponent, TaskManagementSearchFieldsService, TaskManagementService, TaskManagementTab };
993
1537
  //# sourceMappingURL=valtimo-task-management.mjs.map