@valtimo/task-management 13.36.1 → 13.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -83,10 +83,10 @@ class TaskManagementService {
|
|
|
83
83
|
setActiveTab(tab) {
|
|
84
84
|
this._activeTab$.next(tab);
|
|
85
85
|
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
87
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
87
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementService }); }
|
|
88
88
|
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementService, decorators: [{
|
|
90
90
|
type: Injectable
|
|
91
91
|
}] });
|
|
92
92
|
|
|
@@ -126,10 +126,10 @@ class TaskManagementApiService extends BaseApiService {
|
|
|
126
126
|
swapTaskListColumns(caseDefinitionKey, firstColumn, secondColumn) {
|
|
127
127
|
return this.httpClient.post(this.getApiUrl(`/management/v1/case/${caseDefinitionKey}/task-list-column`), { first: firstColumn.key, second: secondColumn.key });
|
|
128
128
|
}
|
|
129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
130
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
129
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementApiService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
130
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementApiService, providedIn: 'root' }); }
|
|
131
131
|
}
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementApiService, decorators: [{
|
|
133
133
|
type: Injectable,
|
|
134
134
|
args: [{
|
|
135
135
|
providedIn: 'root',
|
|
@@ -168,10 +168,10 @@ class TaskManagementSearchFieldsService extends BaseApiService {
|
|
|
168
168
|
orderTaskListSearchFields(searchFields) {
|
|
169
169
|
return this.httpClient.put(this.getApiUrl(`/v1/search/field/${this._caseDefinitionKey}/fields`), searchFields);
|
|
170
170
|
}
|
|
171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
172
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
171
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementSearchFieldsService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
172
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementSearchFieldsService, providedIn: 'root' }); }
|
|
173
173
|
}
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementSearchFieldsService, decorators: [{
|
|
175
175
|
type: Injectable,
|
|
176
176
|
args: [{
|
|
177
177
|
providedIn: 'root',
|
|
@@ -542,10 +542,10 @@ class TaskManagementColumnModalComponent {
|
|
|
542
542
|
}),
|
|
543
543
|
});
|
|
544
544
|
}
|
|
545
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
546
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: TaskManagementColumnModalComponent, isStandalone: true, selector: "valtimo-task-management-column-modal", inputs: { carbonTheme: "carbonTheme", taskListColumns: "taskListColumns", type: "type", show: "show", caseDefinitionKey: "caseDefinitionKey", selectedTaskListColumn: "selectedTaskListColumn" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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 enumInitialValues: enumInitialValues$ | async,\n enumValid: enumValid$ | async,\n yesNoInitialValues: yesNoInitialValues$ | async,\n viewTypeItems: viewTypeItems$ | async,\n sortItems: sortItems$ | async,\n displaySortable: displaySortable$ | async,\n } as obs\"\n>\n <cds-modal size=\"sm\" [open]=\"obs.show\" valtimoCdsModal (close)=\"closeModal()\">\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 <form cdsModalContent [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 cdsLayer 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 cdsLayer 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 <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey\"\n ></valtimo-value-path-selector>\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 cdsLayer\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 cdsLayer 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.enumInitialValues\"\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 [defaultValues]=\"obs.yesNoInitialValues\"\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\" *ngIf=\"obs.displaySortable\">\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\" *ngIf=\"obs.displaySortable\">\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\n formControlName=\"defaultSort\"\n [disabled]=\"obs.disabled\"\n cdsLayer\n *ngIf=\"obs.sortItems\"\n >\n <cds-dropdown-list [items]=\"obs.sortItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n\n <cds-modal-footer>\n <button (click)=\"closeModal()\" cdsButton=\"secondary\" [disabled]=\"obs.disabled\">\n {{ 'listColumn.close' | translate }}\n </button>\n\n <button\n (click)=\"save()\"\n cdsButton=\"primary\"\n [disabled]=\"obs.disabled || formGroup.invalid || (obs.showEnum && !obs.enumValid)\"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal>\n</ng-container>\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-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.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.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2$1.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$1.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2$1.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$1.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$1.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.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: ["addRowText", "addButtonType", "addRowTranslationKey", "arbitraryAmountTitles", "arbitraryValueAmount", "defaultValues", "deleteRowText", "deleteRowTranslationKey", "disabled", "dropdownColumnTitle", "dropdownItems", "dropdownWidth", "fullWidth", "hideAddButton", "hideDeleteButton", "initialAmountOfRows", "keyColumnTitle", "margin", "maxRows", "minimumAmountOfRows", "name", "required", "title", "titleTranslationKey", "tooltip", "type", "valueColumnTitle", "valuePathSelectorCaseDefinitionKey", "valuePathSelectorPrefixes", "valuePathSelectorShowCaseDefinitionSelector", "valuePathSelectorNotation", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
545
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementColumnModalComponent, deps: [{ token: i4.TranslateService }, { token: TaskManagementApiService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
546
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TaskManagementColumnModalComponent, isStandalone: true, selector: "valtimo-task-management-column-modal", inputs: { carbonTheme: "carbonTheme", taskListColumns: "taskListColumns", type: "type", show: "show", caseDefinitionKey: "caseDefinitionKey", selectedTaskListColumn: "selectedTaskListColumn" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<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 enumInitialValues: enumInitialValues$ | async,\n enumValid: enumValid$ | async,\n yesNoInitialValues: yesNoInitialValues$ | async,\n viewTypeItems: viewTypeItems$ | async,\n sortItems: sortItems$ | async,\n displaySortable: displaySortable$ | async,\n } as obs\"\n>\n <cds-modal size=\"sm\" [open]=\"obs.show\" valtimoCdsModal (close)=\"closeModal()\">\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 <form cdsModalContent [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 cdsLayer 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 cdsLayer 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 <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey\"\n ></valtimo-value-path-selector>\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 cdsLayer\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 cdsLayer 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.enumInitialValues\"\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 [defaultValues]=\"obs.yesNoInitialValues\"\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\" *ngIf=\"obs.displaySortable\">\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\" *ngIf=\"obs.displaySortable\">\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\n formControlName=\"defaultSort\"\n [disabled]=\"obs.disabled\"\n cdsLayer\n *ngIf=\"obs.sortItems\"\n >\n <cds-dropdown-list [items]=\"obs.sortItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n\n <cds-modal-footer>\n <button (click)=\"closeModal()\" cdsButton=\"secondary\" [disabled]=\"obs.disabled\">\n {{ 'listColumn.close' | translate }}\n </button>\n\n <button\n (click)=\"save()\"\n cdsButton=\"primary\"\n [disabled]=\"obs.disabled || formGroup.invalid || (obs.showEnum && !obs.enumValid)\"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal>\n</ng-container>\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-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.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.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2$1.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$1.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2$1.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$1.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$1.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.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: ["addRowText", "addButtonType", "addRowTranslationKey", "arbitraryAmountTitles", "arbitraryValueAmount", "defaultValues", "deleteRowText", "deleteRowTranslationKey", "disabled", "dropdownColumnTitle", "dropdownItems", "dropdownWidth", "fullWidth", "hideAddButton", "hideDeleteButton", "initialAmountOfRows", "keyColumnTitle", "margin", "maxRows", "minimumAmountOfRows", "name", "required", "title", "titleTranslationKey", "tooltip", "type", "valueColumnTitle", "valuePathSelectorCaseDefinitionKey", "valuePathSelectorPrefixes", "valuePathSelectorShowCaseDefinitionSelector", "valuePathSelectorNotation", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
547
547
|
}
|
|
548
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
548
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementColumnModalComponent, decorators: [{
|
|
549
549
|
type: Component,
|
|
550
550
|
args: [{ selector: 'valtimo-task-management-column-modal', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
551
551
|
CommonModule,
|
|
@@ -767,10 +767,10 @@ class TaskManagementColumnsComponent {
|
|
|
767
767
|
clearSelectedTaskListColumn() {
|
|
768
768
|
this.selectedTaskListColumn$.next(null);
|
|
769
769
|
}
|
|
770
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
771
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
770
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementColumnsComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: TaskManagementApiService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
771
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TaskManagementColumnsComponent, isStandalone: true, selector: "valtimo-task-management-columns", inputs: { carbonTheme: "carbonTheme" }, providers: [TaskManagementService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n taskListColumns: taskListColumns$ | async,\n cachedTaskListColumns: cachedTaskListColumns$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n loadingColumns: loadingColumns$ | async,\n modalType: modalType$ | async,\n showModal: showModal$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.taskListColumns\"\n [loading]=\"obs.loadingColumns\"\n [fields]=\"fields\"\n [header]=\"false\"\n [dragAndDrop]=\"true\"\n (rowClicked)=\"editColumn($event)\"\n (itemsReordered)=\"onItemsReordered($event, obs.caseDefinitionKey)\"\n >\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"addButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\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\n <valtimo-task-management-column-modal\n [taskListColumns]=\"obs.cachedTaskListColumns\"\n [type]=\"obs.modalType\"\n [show]=\"obs.showModal\"\n [caseDefinitionKey]=\"obs.caseDefinitionKey\"\n [selectedTaskListColumn]=\"selectedTaskListColumn$ | async\"\n (closeEvent)=\"onModalCloseEvent($event)\"\n ></valtimo-task-management-column-modal>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteColumnKey$ | async\"\n (confirmEvent)=\"deleteColumnConfirmation($event, obs.caseDefinitionKey)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button\n carbonToolbarContent\n cdsButton=\"primary\"\n [disabled]=\"disabled$ | async\"\n (click)=\"showModal('add')\"\n >\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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "skeletonRowCount", "actions", "actionItems", "showActionItems", "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", "caseDefinitionKey", "selectedTaskListColumn"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$1.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
772
|
}
|
|
773
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
773
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementColumnsComponent, decorators: [{
|
|
774
774
|
type: Component,
|
|
775
775
|
args: [{ selector: 'valtimo-task-management-columns', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
776
776
|
CommonModule,
|
|
@@ -1101,10 +1101,10 @@ class TaskManagementSearchFieldsModalComponent {
|
|
|
1101
1101
|
this.form.enable();
|
|
1102
1102
|
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
1103
1103
|
}
|
|
1104
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1105
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: TaskManagementSearchFieldsModalComponent, isStandalone: true, selector: "valtimo-task-management-search-fields-modal", inputs: { open: "open", caseDefinitionKey: "caseDefinitionKey", prefillData: "prefillData" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<cds-modal [open]=\"open\" showFooter=\"true\" (close)=\"onCancel()\">\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 <form\n cdsModalContent\n [formGroup]=\"form\"\n class=\"valtimo-task-management-search-fields-modal__content\"\n >\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\n data-testid=\"task-management-search-title\"\n cdsText\n type=\"text\"\n formControlName=\"title\"\n cdsLayer\n />\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\n cdsLayer\n data-testid=\"task-management-search-key\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n />\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 <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey$ | async\"\n ></valtimo-value-path-selector>\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\n cdsLayer\n data-testid=\"task-management-search-dataType\"\n formControlName=\"dataType\"\n >\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\n cdsLayer\n data-testid=\"task-management-search-matchType\"\n formControlName=\"matchType\"\n >\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\n cdsLayer\n data-testid=\"task-management-search-fieldType\"\n formControlName=\"fieldType\"\n >\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\n data-testid=\"task-management-search-dropdownDataProvider\"\n formControlName=\"dropdownDataProvider\"\n cdsLayer\n >\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.value' | translate }}\n\n <input\n data-testid=\"task-management-search-dropdownKey\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n cdsLayer\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'interface.display' | translate }}\n\n <input\n data-testid=\"task-management-search-dropdownValue\"\n cdsText\n type=\"text\"\n formControlName=\"value\"\n cdsLayer\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger\"\n data-testid=\"task-management-search-deleteEnum\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"removeDropdownValue($index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n data-testid=\"task-management-search-addDropdownValue\"\n cdsButton=\"primary\"\n (click)=\"addDropdownValue()\"\n >\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\n <cds-modal-footer>\n <button data-testid=\"task-management-search-cancel\" cdsButton=\"secondary\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n data-testid=\"task-management-search-save\"\n cdsButton=\"primary\"\n [disabled]=\"form.invalid\"\n (click)=\"onSave()\"\n >\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-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$1.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2$1.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$1.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i2$1.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$1.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", "skeletonRowCount", "actions", "actionItems", "showActionItems", "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", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementSearchFieldsModalComponent, deps: [{ token: i1$2.DocumentService }, { token: i2$1.IconService }, { token: i3.FormBuilder }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1105
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TaskManagementSearchFieldsModalComponent, isStandalone: true, selector: "valtimo-task-management-search-fields-modal", inputs: { open: "open", caseDefinitionKey: "caseDefinitionKey", prefillData: "prefillData" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<cds-modal [open]=\"open\" showFooter=\"true\" (close)=\"onCancel()\">\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 <form\n cdsModalContent\n [formGroup]=\"form\"\n class=\"valtimo-task-management-search-fields-modal__content\"\n >\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\n data-testid=\"task-management-search-title\"\n cdsText\n type=\"text\"\n formControlName=\"title\"\n cdsLayer\n />\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\n cdsLayer\n data-testid=\"task-management-search-key\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n />\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 <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey$ | async\"\n ></valtimo-value-path-selector>\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\n cdsLayer\n data-testid=\"task-management-search-dataType\"\n formControlName=\"dataType\"\n >\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\n cdsLayer\n data-testid=\"task-management-search-matchType\"\n formControlName=\"matchType\"\n >\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\n cdsLayer\n data-testid=\"task-management-search-fieldType\"\n formControlName=\"fieldType\"\n >\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\n data-testid=\"task-management-search-dropdownDataProvider\"\n formControlName=\"dropdownDataProvider\"\n cdsLayer\n >\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.value' | translate }}\n\n <input\n data-testid=\"task-management-search-dropdownKey\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n cdsLayer\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'interface.display' | translate }}\n\n <input\n data-testid=\"task-management-search-dropdownValue\"\n cdsText\n type=\"text\"\n formControlName=\"value\"\n cdsLayer\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger\"\n data-testid=\"task-management-search-deleteEnum\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"removeDropdownValue($index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n data-testid=\"task-management-search-addDropdownValue\"\n cdsButton=\"primary\"\n (click)=\"addDropdownValue()\"\n >\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\n <cds-modal-footer>\n <button data-testid=\"task-management-search-cancel\" cdsButton=\"secondary\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n data-testid=\"task-management-search-save\"\n cdsButton=\"primary\"\n [disabled]=\"form.invalid\"\n (click)=\"onSave()\"\n >\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-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$1.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2$1.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$1.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i2$1.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i2$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$1.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", "skeletonRowCount", "actions", "actionItems", "showActionItems", "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", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$1.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1106
1106
|
}
|
|
1107
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementSearchFieldsModalComponent, decorators: [{
|
|
1108
1108
|
type: Component,
|
|
1109
1109
|
args: [{ selector: 'valtimo-task-management-search-fields-modal', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1110
1110
|
CommonModule,
|
|
@@ -1278,10 +1278,10 @@ class TaskManagementSearchFieldsComponent {
|
|
|
1278
1278
|
return fieldType.toLowerCase();
|
|
1279
1279
|
}
|
|
1280
1280
|
}
|
|
1281
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1282
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
1281
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementSearchFieldsComponent, deps: [{ token: i1$2.DocumentService }, { token: i1$1.ActivatedRoute }, { token: TaskManagementSearchFieldsService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1282
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: TaskManagementSearchFieldsComponent, isStandalone: true, selector: "valtimo-task-management-search-fields", ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *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 [caseDefinitionKey]=\"caseDefinitionKey$ | 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.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", "skeletonRowCount", "actions", "actionItems", "showActionItems", "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$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$1.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", "caseDefinitionKey", "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 }); }
|
|
1283
1283
|
}
|
|
1284
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1284
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementSearchFieldsComponent, decorators: [{
|
|
1285
1285
|
type: Component,
|
|
1286
1286
|
args: [{ selector: 'valtimo-task-management-search-fields', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
1287
1287
|
CommonModule,
|
|
@@ -1318,10 +1318,10 @@ class TaskManagementDetailComponent {
|
|
|
1318
1318
|
setActiveTab(tab) {
|
|
1319
1319
|
this.taskManagementService.setActiveTab(tab);
|
|
1320
1320
|
}
|
|
1321
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1322
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1321
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementDetailComponent, deps: [{ token: TaskManagementService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1322
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TaskManagementDetailComponent, isStandalone: true, selector: "ng-component", providers: [TaskManagementService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (activeTab$ | async; as activeTab) {\n <cds-tabs type=\"contained\">\n <cds-tab\n [active]=\"activeTab === TaskManagementTab.COLUMNS\"\n [heading]=\"'taskManagement.columns' | translate\"\n (selected)=\"setActiveTab(TaskManagementTab.COLUMNS)\"\n >\n <valtimo-task-management-columns *ngIf=\"activeTab === TaskManagementTab.COLUMNS\">\n </valtimo-task-management-columns>\n </cds-tab>\n\n <cds-tab\n [active]=\"activeTab === TaskManagementTab.SEARCH_FIELDS\"\n [heading]=\"'taskManagement.searchFields' | translate\"\n (selected)=\"setActiveTab(TaskManagementTab.SEARCH_FIELDS)\"\n >\n <valtimo-task-management-search-fields *ngIf=\"activeTab === TaskManagementTab.SEARCH_FIELDS\">\n </valtimo-task-management-search-fields>\n </cds-tab>\n </cds-tabs>\n}\n", styles: ["::ng-deep .cds--tab-content{padding:0}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.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$1.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i2$1.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], 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 }); }
|
|
1323
1323
|
}
|
|
1324
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1324
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TaskManagementDetailComponent, decorators: [{
|
|
1325
1325
|
type: Component,
|
|
1326
1326
|
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
1327
1327
|
CommonModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-task-management.mjs","sources":["../../../../projects/valtimo/task-management/src/lib/models/task-management.model.ts","../../../../projects/valtimo/task-management/src/lib/models/index.ts","../../../../projects/valtimo/task-management/src/lib/services/task-management.service.ts","../../../../projects/valtimo/task-management/src/lib/services/task-management-api.service.ts","../../../../projects/valtimo/task-management/src/lib/services/task-management-search-fields.service.ts","../../../../projects/valtimo/task-management/src/lib/services/index.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-column-modal/task-management-column-modal.component.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-column-modal/task-management-column-modal.component.html","../../../../projects/valtimo/task-management/src/lib/components/task-management-columns/task-management-columns.component.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-columns/task-management-columns.component.html","../../../../projects/valtimo/task-management/src/lib/components/task-management-search-fields-modal/task-management-search-fields-modal.component.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-search-fields-modal/task-management-search-fields-modal.component.html","../../../../projects/valtimo/task-management/src/lib/components/task-management-search-fields/task-management-search-fields.component.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-search-fields/task-management-search-fields.component.html","../../../../projects/valtimo/task-management/src/lib/components/task-management-detail/task-management-detail.component.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-detail/task-management-detail.component.html","../../../../projects/valtimo/task-management/src/lib/components/index.ts","../../../../projects/valtimo/task-management/src/public_api.ts","../../../../projects/valtimo/task-management/src/valtimo-task-management.ts"],"sourcesContent":["/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nenum TaskManagementTab {\n COLUMNS = 'columns',\n SEARCH_FIELDS = 'searchFields',\n}\n\nexport {TaskManagementTab};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './task-management.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {TaskManagementTab} from '../models';\n\n@Injectable()\nexport class TaskManagementService {\n private readonly _activeTab$ = new BehaviorSubject<TaskManagementTab>(TaskManagementTab.COLUMNS);\n\n public get activeTab$(): Observable<TaskManagementTab> {\n return this._activeTab$.asObservable();\n }\n\n public setActiveTab(tab: TaskManagementTab): void {\n this._activeTab$.next(tab);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {TaskListColumn} from '@valtimo/task';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaskManagementApiService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getTaskListColumns(caseDefinitionKey: string): Observable<TaskListColumn[]> {\n return this.httpClient.get<TaskListColumn[]>(\n this.getApiUrl(`/management/v1/case/${caseDefinitionKey}/task-list-column`)\n );\n }\n\n public updateTaskListColumn(\n caseDefinitionKey: string,\n column: TaskListColumn\n ): Observable<TaskListColumn> {\n return this.httpClient.put<TaskListColumn>(\n this.getApiUrl(`/management/v1/case/${caseDefinitionKey}/task-list-column/${column.key}`),\n column\n );\n }\n\n public deleteTaskListColumn(\n caseDefinitionKey: string,\n columnKey: string\n ): Observable<TaskListColumn> {\n return this.httpClient.delete<TaskListColumn>(\n this.getApiUrl(`/management/v1/case/${caseDefinitionKey}/task-list-column/${columnKey}`)\n );\n }\n\n public updateTaskListColumnOrder(\n caseDefinitionKey: string,\n columnKeys: string[]\n ): Observable<TaskListColumn[]> {\n return this.httpClient.post<TaskListColumn[]>(\n this.getApiUrl(`/management/v2/case/${caseDefinitionKey}/task-list-column`),\n columnKeys\n );\n }\n\n public swapTaskListColumns(\n caseDefinitionKey: string,\n firstColumn: TaskListColumn,\n secondColumn: TaskListColumn\n ): Observable<TaskListColumn[]> {\n return this.httpClient.post<TaskListColumn[]>(\n this.getApiUrl(`/management/v1/case/${caseDefinitionKey}/task-list-column`),\n {first: firstColumn.key, second: secondColumn.key}\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {TaskListSearchField} from '@valtimo/task';\nimport {Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaskManagementSearchFieldsService extends BaseApiService {\n private _caseDefinitionKey: string;\n\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public setCaseDefinitionKey(caseDefinitionKey: string): void {\n this._caseDefinitionKey = caseDefinitionKey;\n }\n\n public getTaskListSearchFields(): Observable<TaskListSearchField[]> {\n return this.httpClient.get<TaskListSearchField[]>(\n this.getApiUrl(`/v1/search/field/TaskListSearchColumns/${this._caseDefinitionKey}`)\n );\n }\n\n public createTaskListSearchField(\n searchField: TaskListSearchField\n ): Observable<TaskListSearchField> {\n return this.httpClient.post<TaskListSearchField>(\n this.getApiUrl(`/v1/search/field/${this._caseDefinitionKey}`),\n {\n ...searchField,\n ownerType: 'TaskListSearchColumns',\n ownerId: this._caseDefinitionKey,\n }\n );\n }\n\n public updateTaskListSearchField(\n searchField: TaskListSearchField\n ): Observable<TaskListSearchField> {\n return this.httpClient.put<TaskListSearchField>(\n this.getApiUrl(`/v1/search/field/${this._caseDefinitionKey}/${searchField.key}`),\n {\n ...searchField,\n ownerType: 'TaskListSearchColumns',\n ownerId: this._caseDefinitionKey,\n }\n );\n }\n\n public deleteTaskListSearchField(searchFieldKey: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `/v1/search/field/TaskListSearchColumns/${this._caseDefinitionKey}/${searchFieldKey}`\n )\n );\n }\n\n public orderTaskListSearchFields(searchFields: TaskListSearchField[]): Observable<any[]> {\n return this.httpClient.put<any[]>(\n this.getApiUrl(`/v1/search/field/${this._caseDefinitionKey}/fields`),\n searchFields\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './task-management.service';\nexport * from './task-management-api.service';\nexport * from './task-management-search-fields.service';\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {\n CARBON_CONSTANTS,\n CARBON_THEME,\n CarbonListModule,\n CarbonMultiInputModule,\n MultiInputValues,\n TooltipIconModule,\n ValtimoCdsModalDirective,\n ValuePathSelectorComponent,\n ViewType,\n} from '@valtimo/components';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ButtonModule,\n CheckboxModule,\n DropdownModule,\n InputModule,\n LayerModule,\n ModalModule,\n TabsModule,\n} from 'carbon-components-angular';\nimport {TaskManagementApiService} from '../../services';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {BehaviorSubject, combineLatest, map, Observable, of, startWith, tap} from 'rxjs';\nimport {\n TaskListColumn,\n TaskListColumnDefaultSort,\n TaskListColumnEnum,\n TaskListColumnListItem,\n TaskListColumnModalCloseEvent,\n TaskListColumnModalType,\n} from '@valtimo/task';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {isEqual} from 'lodash';\n\n@Component({\n selector: 'valtimo-task-management-column-modal',\n templateUrl: './task-management-column-modal.component.html',\n styleUrls: ['./task-management-column-modal.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n TabsModule,\n FormsModule,\n ModalModule,\n CheckboxModule,\n DropdownModule,\n InputModule,\n ReactiveFormsModule,\n TooltipIconModule,\n CarbonMultiInputModule,\n ButtonModule,\n ValtimoCdsModalDirective,\n ValuePathSelectorComponent,\n LayerModule,\n ],\n})\nexport class TaskManagementColumnModalComponent {\n @Input() public carbonTheme: CARBON_THEME = CARBON_THEME.G10;\n @Input() public set taskListColumns(value: TaskListColumn[]) {\n if (value?.length > 0) {\n this._taskListColumns$.next(value);\n }\n }\n @Input() public set type(value: TaskListColumnModalType) {\n this.type$.next(value);\n }\n public get type(): TaskListColumnModalType {\n return this.type$.getValue();\n }\n @Input() public set show(showModal: boolean) {\n this.show$.next(showModal);\n if (showModal) this.enable();\n if (!showModal) this.resetFormAfterTimeout();\n }\n @Input() public caseDefinitionKey!: string;\n @Input() public set selectedTaskListColumn(column: TaskListColumn) {\n if (column) this.prefillForm(column);\n }\n @Output() closeEvent = new EventEmitter<TaskListColumnModalCloseEvent>();\n\n public readonly type$ = new BehaviorSubject<TaskListColumnModalType>('add');\n public readonly isAdd$ = this.type$.pipe(map(type => type === 'add'));\n public readonly isEdit$ = this.type$.pipe(\n map(type => type === 'edit'),\n tap(isEdit => {\n if (isEdit) {\n this.key?.disable();\n } else {\n this.key?.enable();\n }\n })\n );\n public readonly show$ = new BehaviorSubject<boolean>(false);\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private readonly _taskListColumns$ = new BehaviorSubject<TaskListColumn[]>([]);\n\n public get taskListColumns$(): Observable<TaskListColumn[]> {\n return this._taskListColumns$.pipe(\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n private readonly _INVALID_KEY = 'INVALID_KEY';\n\n private readonly DISPLAY_TYPES: Array<ViewType> = [\n ViewType.TEXT,\n ViewType.DATE,\n ViewType.BOOLEAN,\n ViewType.ENUM,\n ViewType.ARRAY_COUNT,\n ViewType.TAGS,\n ViewType.UNDERSCORES_TO_SPACES,\n ];\n\n private getInvalidListItem = (translateKey: string): TaskListColumnListItem => ({\n content: this.translateService.instant(translateKey),\n key: this._INVALID_KEY,\n selected: true,\n });\n\n private uniqueKeyValidator = (\n keyFormControl: AbstractControl<TaskListColumnListItem>\n ): {notUnique: boolean} | null => {\n const taskListColumns = this._taskListColumns$.getValue();\n\n return !taskListColumns?.find(\n column => column?.key?.trim()?.toLowerCase() === keyFormControl?.value?.trim()?.toLowerCase()\n )\n ? null\n : {notUnique: true};\n };\n\n private listItemValidator = (\n listItemControl: AbstractControl<TaskListColumnListItem>\n ): {invalidItem: boolean} | null =>\n listItemControl?.value?.key && listItemControl.value.key !== this._INVALID_KEY\n ? null\n : {invalidItem: true};\n\n public readonly formGroup = new FormGroup({\n title: new FormControl<string | null>(null),\n key: new FormControl<string | null>(null, [\n this.uniqueKeyValidator.bind(this),\n Validators.required,\n ]),\n path: new FormControl<string | null>(null, Validators.required),\n dateFormat: new FormControl<string | null>(null),\n displayType: new FormControl<TaskListColumnListItem>(\n this.getInvalidListItem(`listColumn.selectDefaultSort`),\n [Validators.required, this.listItemValidator.bind(this)]\n ),\n sortable: new FormControl<boolean>(false),\n defaultSort: new FormControl<TaskListColumnListItem>(\n this.getInvalidListItem(`listColumn.selectDefaultSort`),\n [Validators.required]\n ),\n });\n\n public get title(): AbstractControl<string | null> | null {\n return this.formGroup.get('title');\n }\n public get key(): AbstractControl<string | null> | null {\n return this.formGroup.get('key');\n }\n public get keyValue$(): Observable<string | null> {\n return this.key?.valueChanges.pipe(distinctUntilChanged()) ?? of(null);\n }\n public get path(): AbstractControl<string | null> | null {\n return this.formGroup.get('path');\n }\n public get dateFormat(): AbstractControl<string | null> | null {\n return this.formGroup.get('dateFormat');\n }\n public get displayType(): AbstractControl<TaskListColumnListItem | null> | null {\n return this.formGroup.get('displayType');\n }\n public get sortable(): AbstractControl<boolean | null> | null {\n return this.formGroup.get('sortable');\n }\n public get defaultSort(): AbstractControl<TaskListColumnListItem | null> | null {\n return this.formGroup.get('defaultSort');\n }\n\n private get _SORT_ASC_ITEM() {\n return {\n content: this.translateService.instant(`listColumn.sortableAsc`),\n key: 'ASC',\n } as TaskListColumnListItem;\n }\n private get _SORT_DESC_ITEM() {\n return {\n content: this.translateService.instant(`listColumn.sortableDesc`),\n key: 'DESC',\n } as TaskListColumnListItem;\n }\n public readonly sortItems$: Observable<Array<TaskListColumnListItem>> = combineLatest([\n this.defaultSort?.valueChanges || of(null),\n this.translateService.stream('key'),\n ]).pipe(\n map(([defaultSortItem]) =>\n [\n this.getInvalidListItem(`listColumn.selectDefaultSort`),\n this._SORT_ASC_ITEM,\n this._SORT_DESC_ITEM,\n ].map((item, index) => ({\n ...item,\n selected: defaultSortItem?.key === item?.key,\n }))\n )\n );\n\n public readonly viewTypeItems$: Observable<Array<TaskListColumnListItem>> = combineLatest([\n this.displayType?.valueChanges || of(null),\n this.translateService.stream('key'),\n ]).pipe(\n map(([displayTypeItem]) =>\n [\n {\n content: this.translateService.instant(`listColumnDisplayType.select`),\n key: this._INVALID_KEY,\n },\n ...this.DISPLAY_TYPES.map(type => this.getListItemFromViewType(type)),\n ].map((item, index) => ({\n ...item,\n selected: displayTypeItem?.key === item?.key,\n }))\n )\n );\n\n private _showDateFormat!: boolean;\n public readonly showDateFormat$ = this.formGroup.valueChanges.pipe(\n map(formValues => !!(formValues.displayType?.key === this.DISPLAY_TYPES[1])),\n tap(showDateFormat => (this._showDateFormat = showDateFormat))\n );\n\n private _showEnum!: boolean;\n public readonly showEnum$ = this.formGroup.valueChanges.pipe(\n map(formValues => !!(formValues.displayType?.key === ViewType.ENUM)),\n tap(showEnum => {\n this._showEnum = showEnum;\n if ((this._enumValues$.getValue() || []).length === 0) this.resetEnumValues();\n })\n );\n\n private _showYesNo!: boolean;\n public readonly showYesNo$ = this.formGroup.valueChanges.pipe(\n map(formValues => !!(formValues.displayType?.key === ViewType.BOOLEAN)),\n tap(showYesNo => {\n this._showYesNo = showYesNo;\n if ((this._yesNoValues$.getValue() || []).length === 0) this.resetYesNoValues();\n })\n );\n\n public readonly CARBON_THEME_WHITE = CARBON_THEME.WHITE;\n\n private static readonly SORTABLE_PATH_REGEX = /^(doc:|case:|task:)/;\n\n public readonly displaySortable$: Observable<boolean> = (\n this.path?.valueChanges ?? of(this.path?.value)\n ).pipe(\n startWith(this.path?.value),\n map(value =>\n TaskManagementColumnModalComponent.SORTABLE_PATH_REGEX.test(String(value ?? ''))\n ),\n tap(displaySortable => {\n this._displaySortable = displaySortable;\n if (!displaySortable) {\n const sortableValue = this.sortable?.value;\n const defaultSortKey = this.defaultSort?.value?.key;\n if (sortableValue || (defaultSortKey && defaultSortKey !== this._INVALID_KEY)) {\n this.sortable?.setValue(false, {emitEvent: false});\n this.defaultSort?.setValue(this.getInvalidListItem(`listColumn.selectDefaultSort`), {\n emitEvent: false,\n });\n }\n }\n })\n );\n\n private _displaySortable = true;\n\n public readonly disableDefaultSort$ = combineLatest([this.taskListColumns$, this.keyValue$]).pipe(\n map(([taskListColumns, keyValue]) => {\n const defaultSortColumn = taskListColumns.find(\n column =>\n column?.defaultSort === TaskListColumnDefaultSort.ASC ||\n column?.defaultSort === TaskListColumnDefaultSort.DESC\n );\n const defaultSortColumnExists = !!defaultSortColumn;\n const enabled = !defaultSortColumnExists || defaultSortColumn.key === keyValue;\n\n if (enabled) {\n this.defaultSort?.enable();\n } else {\n this.defaultSort?.disable();\n }\n\n return !enabled;\n })\n );\n\n private readonly _DEFAULT_ENUM_VALUES: MultiInputValues = [{key: '', value: ''}];\n\n private readonly _enumValues$ = new BehaviorSubject<MultiInputValues>(this._DEFAULT_ENUM_VALUES);\n\n public get enumValues$(): Observable<MultiInputValues> {\n return this._enumValues$.pipe(\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n public get enumValid$(): Observable<boolean> {\n return this.enumValues$.pipe(map(values => this.getValidEnumValues(values).length > 0));\n }\n\n private readonly _enumInitialValues$ = new BehaviorSubject<MultiInputValues>(\n this._DEFAULT_ENUM_VALUES\n );\n\n public get enumInitialValues$(): Observable<MultiInputValues> {\n return this._enumInitialValues$.pipe(\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n private readonly _yesNoValues$ = new BehaviorSubject<MultiInputValues>(this._DEFAULT_ENUM_VALUES);\n\n public get yesNoValues$(): Observable<MultiInputValues> {\n return this._yesNoValues$.pipe(\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n private readonly _yesNoInitialValues$ = new BehaviorSubject<MultiInputValues>(\n this._DEFAULT_ENUM_VALUES\n );\n\n public get yesNoInitialValues$(): Observable<MultiInputValues> {\n return this._yesNoInitialValues$.pipe(\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly taskManagementApiService: TaskManagementApiService\n ) {}\n\n public closeModal(): void {\n this.closeEvent.emit('close');\n }\n\n public save(): void {\n this.disable();\n\n this.taskManagementApiService\n .updateTaskListColumn(\n this.caseDefinitionKey,\n this.getTaskListColumnFromFormValue(this._showEnum, this._showDateFormat, this._showYesNo)\n )\n .subscribe({\n next: () => {\n this.closeModalAndRefresh();\n this.enableAfterTimeout();\n },\n error: () => {\n this.enable();\n },\n });\n }\n\n public enumValueChange(value: MultiInputValues): void {\n this._enumValues$.next(value);\n }\n\n public yesNoValueChange(value: MultiInputValues): void {\n this._yesNoValues$.next(value);\n }\n\n private resetEnumValues(): void {\n this._enumValues$.next(this._DEFAULT_ENUM_VALUES);\n this._enumInitialValues$.next(this._DEFAULT_ENUM_VALUES);\n }\n\n private resetYesNoValues(): void {\n this._yesNoValues$.next(this._DEFAULT_ENUM_VALUES);\n this._yesNoInitialValues$.next(this._DEFAULT_ENUM_VALUES);\n }\n\n private resetFormAfterTimeout(): void {\n setTimeout(() => {\n this.resetForm();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n private resetForm(): void {\n this.resetEnumValues();\n this.resetYesNoValues();\n this.formGroup.reset({\n title: null,\n key: null,\n dateFormat: null,\n displayType: this.getInvalidListItem('listColumnDisplayType.select'),\n sortable: false,\n defaultSort: this.getInvalidListItem(`listColumn.selectDefaultSort`),\n });\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enableAfterTimeout(): void {\n setTimeout(() => {\n this.enable();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private closeModalAndRefresh(): void {\n this.closeEvent.emit('refresh');\n }\n\n private getTaskListColumnFromFormValue(\n includeEnum: boolean,\n includeDateFormat: boolean,\n includeYesNo: boolean\n ): TaskListColumn {\n const validEnumValues = this.getValidEnumValues(this._enumValues$.getValue());\n const mappedEnumValues =\n validEnumValues && validEnumValues.length > 0 && this.mapEnumValues(validEnumValues);\n const validYesNoValues = this.getValidEnumValues(this._yesNoValues$.getValue());\n const mappedYesNoValues =\n validYesNoValues && validYesNoValues.length > 0 && this.mapEnumValues(validYesNoValues);\n\n const formValue = this.formGroup.getRawValue();\n const taskListColumn: TaskListColumn = {\n title: formValue?.title ?? '',\n key: formValue.key ?? '',\n path: formValue.path ?? '',\n displayType: {\n type: formValue?.displayType?.key ?? '',\n displayTypeParameters: {\n ...(!!includeDateFormat && {dateFormat: formValue.dateFormat ?? ''}),\n ...(includeEnum && mappedEnumValues && {enum: mappedEnumValues}),\n ...(includeYesNo && mappedYesNoValues && {enum: mappedYesNoValues}),\n },\n },\n sortable: this._displaySortable ? formValue.sortable ?? false : false,\n ...(this._displaySortable &&\n formValue?.defaultSort?.key !== this._INVALID_KEY && {\n defaultSort: formValue?.defaultSort?.key as TaskListColumnDefaultSort,\n }),\n };\n\n return taskListColumn;\n }\n\n private mapEnumValues(enumValues: MultiInputValues): TaskListColumnEnum {\n return enumValues.reduce((acc, curr) => ({...acc, [curr?.key ?? '']: curr.value}), {});\n }\n\n private getValidEnumValues(values: MultiInputValues): MultiInputValues {\n return (values || []).filter(value => value.value && value.key);\n }\n\n private getListItemFromViewType(viewType: ViewType | string): TaskListColumnListItem {\n return {\n content: this.translateService.instant(`listColumnDisplayType.${viewType}`),\n key: viewType,\n } as TaskListColumnListItem;\n }\n\n private getMultiInputValuesFromTaskListColumnEnum(\n taskListColumnEnum: TaskListColumnEnum\n ): MultiInputValues {\n return Object.keys(taskListColumnEnum).reduce(\n (acc, curr) => [...acc, {key: curr, value: taskListColumnEnum[curr]}],\n [] as MultiInputValues\n );\n }\n\n private prefillForm(column: TaskListColumn): void {\n if (\n column?.displayType?.type === ViewType.ENUM &&\n column?.displayType?.displayTypeParameters?.enum\n ) {\n const prefilledEnum = this.getMultiInputValuesFromTaskListColumnEnum(\n column.displayType.displayTypeParameters.enum\n );\n this._enumValues$.next(prefilledEnum);\n this._enumInitialValues$.next(prefilledEnum);\n }\n\n if (\n column?.displayType?.type === ViewType.BOOLEAN &&\n column?.displayType?.displayTypeParameters?.enum\n ) {\n const prefilledYesNo = this.getMultiInputValuesFromTaskListColumnEnum(\n column.displayType.displayTypeParameters.enum\n );\n this._yesNoValues$.next(prefilledYesNo);\n this._yesNoInitialValues$.next(prefilledYesNo);\n }\n\n this.formGroup.patchValue({\n key: column.key,\n path: column.path,\n sortable: column.sortable,\n displayType: this.getListItemFromViewType(column.displayType.type),\n ...(column.title && {title: column.title}),\n ...(!column.defaultSort && {\n defaultSort: this.getInvalidListItem(`listColumn.selectDefaultSort`),\n }),\n ...(column.defaultSort === 'ASC' && {defaultSort: this._SORT_ASC_ITEM}),\n ...(column.defaultSort === 'DESC' && {defaultSort: this._SORT_DESC_ITEM}),\n ...(column.displayType?.type === ViewType.DATE && {\n dateFormat: column.displayType?.displayTypeParameters?.dateFormat,\n }),\n });\n }\n}\n","<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\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 enumInitialValues: enumInitialValues$ | async,\n enumValid: enumValid$ | async,\n yesNoInitialValues: yesNoInitialValues$ | async,\n viewTypeItems: viewTypeItems$ | async,\n sortItems: sortItems$ | async,\n displaySortable: displaySortable$ | async,\n } as obs\"\n>\n <cds-modal size=\"sm\" [open]=\"obs.show\" valtimoCdsModal (close)=\"closeModal()\">\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 <form cdsModalContent [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 cdsLayer 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 cdsLayer 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 <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey\"\n ></valtimo-value-path-selector>\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 cdsLayer\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 cdsLayer 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.enumInitialValues\"\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 [defaultValues]=\"obs.yesNoInitialValues\"\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\" *ngIf=\"obs.displaySortable\">\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\" *ngIf=\"obs.displaySortable\">\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\n formControlName=\"defaultSort\"\n [disabled]=\"obs.disabled\"\n cdsLayer\n *ngIf=\"obs.sortItems\"\n >\n <cds-dropdown-list [items]=\"obs.sortItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n\n <cds-modal-footer>\n <button (click)=\"closeModal()\" cdsButton=\"secondary\" [disabled]=\"obs.disabled\">\n {{ 'listColumn.close' | translate }}\n </button>\n\n <button\n (click)=\"save()\"\n cdsButton=\"primary\"\n [disabled]=\"obs.disabled || formGroup.invalid || (obs.showEnum && !obs.enumValid)\"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ActionItem,\n CARBON_CONSTANTS,\n CARBON_THEME,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n MoveRowDirection,\n MoveRowEvent,\n} from '@valtimo/components';\nimport {CaseManagementParams, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {\n TaskListColumn,\n TaskListColumnDisplayTypeParameters,\n TaskListColumnModalCloseEvent,\n TaskListColumnModalType,\n} from '@valtimo/task';\nimport {ButtonModule, IconModule, TabsModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, map, Observable, Subject, switchMap, take, tap} from 'rxjs';\nimport {TaskManagementApiService, TaskManagementService} from '../../services';\nimport {TaskManagementColumnModalComponent} from '../task-management-column-modal/task-management-column-modal.component';\n\n@Component({\n selector: 'valtimo-task-management-columns',\n templateUrl: './task-management-columns.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n TabsModule,\n TaskManagementColumnModalComponent,\n ButtonModule,\n IconModule,\n ConfirmationModalModule,\n ],\n providers: [TaskManagementService],\n})\nexport class TaskManagementColumnsComponent {\n @Input() public carbonTheme: CARBON_THEME = CARBON_THEME.G10;\n\n private readonly _refreshColumns$ = new BehaviorSubject<null | 'noAnimation'>(null);\n\n public readonly caseDefinitionKey$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n map((params: CaseManagementParams | undefined) => (!params ? '' : params.caseDefinitionKey))\n );\n\n public readonly loadingColumns$ = new BehaviorSubject<boolean>(true);\n\n public readonly selectedTaskListColumn$ = new Subject<TaskListColumn | null>();\n\n public readonly cachedTaskListColumns$ = new BehaviorSubject<TaskListColumn[]>([]);\n\n public readonly taskListColumns$: Observable<TaskListColumn[]> = combineLatest([\n this.caseDefinitionKey$,\n this._refreshColumns$,\n this.translateService.stream('key'),\n ]).pipe(\n tap(([_, refresh]) => {\n if (refresh !== 'noAnimation') this.loadingColumns$.next(true);\n }),\n switchMap(([caseDefinitionKey]) =>\n this.taskManagementApiService.getTaskListColumns(caseDefinitionKey)\n ),\n tap(columns => {\n this.cachedTaskListColumns$.next(columns);\n }),\n map(columns =>\n columns.map(column => ({\n ...column,\n title: column.title || '-',\n sortable: column.sortable\n ? this.translateService.instant('listColumn.sortableYes')\n : this.translateService.instant('listColumn.sortableNo'),\n defaultSort:\n (column.defaultSort === 'ASC' &&\n this.translateService.instant('listColumn.sortableAsc')) ||\n (column.defaultSort === 'DESC' &&\n this.translateService.instant('listColumn.sortableDesc')) ||\n '-',\n displayType: this.translateService.instant(\n `listColumnDisplayType.${column?.displayType?.type}`\n ),\n displayTypeParameters: this.getDisplayTypeParametersView(\n column?.displayType?.displayTypeParameters\n ),\n }))\n ),\n tap(() => {\n this.enable();\n this.loadingColumns$.next(false);\n })\n );\n\n public readonly showDeleteModal$ = new Subject<boolean>();\n public readonly deleteColumnKey$ = new BehaviorSubject<string>('');\n\n public readonly disabled$ = new BehaviorSubject<boolean>(true);\n\n public readonly fields: Array<ColumnConfig> = [\n {\n viewType: 'string',\n sortable: false,\n key: 'title',\n label: 'listColumn.title',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'key',\n label: 'listColumn.key',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'path',\n label: 'listColumn.path',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'displayType',\n label: 'listColumn.displayType',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'displayTypeParameters',\n label: 'listColumn.displayTypeParameters',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'sortable',\n label: 'listColumn.sortable',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'defaultSort',\n label: 'listColumn.defaultSort',\n },\n ];\n\n public readonly actionItems: ActionItem[] = [\n {\n label: 'interface.edit',\n callback: this.editColumn.bind(this),\n },\n {\n label: 'interface.delete',\n callback: this.deleteColumn.bind(this),\n type: 'danger',\n },\n ];\n\n public readonly modalType$ = new Subject<TaskListColumnModalType>();\n public readonly showModal$ = new Subject<boolean>();\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly taskManagementApiService: TaskManagementApiService,\n private readonly translateService: TranslateService\n ) {}\n\n public refreshColumns(noAnimation = false): void {\n this._refreshColumns$.next(noAnimation ? 'noAnimation' : null);\n }\n\n public deleteColumn(taskListColumn: TaskListColumn): void {\n this.showDeleteModal$.next(true);\n this.deleteColumnKey$.next(taskListColumn.key);\n }\n\n public onItemsReordered(reorderedItems: TaskListColumn[], caseDefinitionKey: string): void {\n this.disable();\n\n this.taskManagementApiService\n .updateTaskListColumnOrder(\n caseDefinitionKey,\n reorderedItems.map((column: TaskListColumn) => column.key)\n )\n .subscribe({\n next: () => {\n this.refreshColumns(true);\n },\n error: () => this.enable(),\n });\n }\n\n public editColumn(columnItem: TaskListColumn): void {\n this.cachedTaskListColumns$.pipe(take(1)).subscribe(cachedTaskListColumns => {\n const selectedTaskListColumn = cachedTaskListColumns.find(\n column => column.key === columnItem.key\n );\n\n this.selectedTaskListColumn$.next(selectedTaskListColumn ?? null);\n this.showModal('edit');\n });\n }\n\n public showModal(type: TaskListColumnModalType): void {\n this.modalType$.next(type);\n this.showModal$.next(true);\n }\n\n public onModalCloseEvent(event: TaskListColumnModalCloseEvent): void {\n this.showModal$.next(false);\n\n if (event === 'refresh') {\n this.disable();\n this.refreshColumns();\n }\n\n setTimeout(() => {\n this.clearSelectedTaskListColumn();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public deleteColumnConfirmation(columnKey: string, caseDefinitionKey: string): void {\n this.disable();\n\n this.taskManagementApiService.deleteTaskListColumn(caseDefinitionKey, columnKey).subscribe({\n next: () => {\n this.refreshColumns(true);\n },\n error: () => this.enable(),\n });\n }\n\n private getDisplayTypeParametersView(\n displayTypeParameters: TaskListColumnDisplayTypeParameters | undefined\n ): string {\n if (!displayTypeParameters) return '-';\n\n if (displayTypeParameters?.dateFormat) {\n return displayTypeParameters.dateFormat;\n } else if (displayTypeParameters?.enum) {\n return Object.keys(displayTypeParameters.enum).reduce((acc, curr) => {\n const keyValuePairString = `${curr}: ${displayTypeParameters?.enum?.[curr]}`;\n\n if (!acc) return `${keyValuePairString}`;\n\n return `${acc}, ${keyValuePairString}`;\n }, '');\n }\n\n return '-';\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private clearSelectedTaskListColumn(): void {\n this.selectedTaskListColumn$.next(null);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n taskListColumns: taskListColumns$ | async,\n cachedTaskListColumns: cachedTaskListColumns$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n loadingColumns: loadingColumns$ | async,\n modalType: modalType$ | async,\n showModal: showModal$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.taskListColumns\"\n [loading]=\"obs.loadingColumns\"\n [fields]=\"fields\"\n [header]=\"false\"\n [dragAndDrop]=\"true\"\n (rowClicked)=\"editColumn($event)\"\n (itemsReordered)=\"onItemsReordered($event, obs.caseDefinitionKey)\"\n >\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"addButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\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\n <valtimo-task-management-column-modal\n [taskListColumns]=\"obs.cachedTaskListColumns\"\n [type]=\"obs.modalType\"\n [show]=\"obs.showModal\"\n [caseDefinitionKey]=\"obs.caseDefinitionKey\"\n [selectedTaskListColumn]=\"selectedTaskListColumn$ | async\"\n (closeEvent)=\"onModalCloseEvent($event)\"\n ></valtimo-task-management-column-modal>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteColumnKey$ | async\"\n (confirmEvent)=\"deleteColumnConfirmation($event, obs.caseDefinitionKey)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button\n carbonToolbarContent\n cdsButton=\"primary\"\n [disabled]=\"disabled$ | async\"\n (click)=\"showModal('add')\"\n >\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormArray,\n FormBuilder,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport {InformationFilled16, TrashCan16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n CARBON_CONSTANTS,\n CarbonListModule,\n ColumnConfig,\n InputLabelModule,\n ValuePathSelectorComponent,\n ValuePathSelectorPrefix,\n ViewType,\n} from '@valtimo/components';\nimport {DocumentService} from '@valtimo/document';\nimport {\n TaskListSearchDropdownDataProvider,\n TaskListSearchDropdownValue,\n TaskListSearchField,\n TaskListSearchFieldDataType,\n TaskListSearchFieldFieldType,\n TaskListSearchFieldMatchType,\n} from '@valtimo/task';\nimport {\n ButtonModule,\n DropdownModule,\n IconModule,\n IconService,\n InputModule,\n LayerModule,\n ListItem,\n ModalModule,\n} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n Observable,\n of,\n startWith,\n switchMap,\n} from 'rxjs';\n\n@Component({\n selector: 'valtimo-task-management-search-fields-modal',\n templateUrl: './task-management-search-fields-modal.component.html',\n styleUrl: './task-management-search-fields-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n ButtonModule,\n DropdownModule,\n InputModule,\n ModalModule,\n ReactiveFormsModule,\n IconModule,\n CarbonListModule,\n InputLabelModule,\n ValuePathSelectorComponent,\n LayerModule,\n ],\n})\nexport class TaskManagementSearchFieldsModalComponent implements OnInit {\n @Input({required: true}) open: boolean;\n\n public readonly caseDefinitionKey$ = new BehaviorSubject<string>('');\n @Input({required: true}) public set caseDefinitionKey(value: string) {\n this.caseDefinitionKey$.next(value);\n }\n\n private _prefillData: TaskListSearchField | null;\n @Input() public set prefillData(value: TaskListSearchField | null) {\n this._prefillData = value;\n this.setPrefilledForm(value);\n }\n public get prefillData(): TaskListSearchField | null {\n return this._prefillData;\n }\n @Output() closeEvent = new EventEmitter<Partial<TaskListSearchField> | null>();\n\n public readonly form = this.fb.group({\n key: this.fb.control<string>('', Validators.required),\n title: this.fb.control<string>('', Validators.required),\n path: this.fb.control<string>('', Validators.required),\n dataType: this.fb.control<ListItem | null>(null, Validators.required),\n matchType: this.fb.control<ListItem | null>(null, this.matchTypeValidator),\n fieldType: this.fb.control<ListItem | null>(null, Validators.required),\n dropdownDataProvider: this.fb.control<ListItem | null>(null),\n dropdownValues: this.fb.array<{key: string; value: string}>([]),\n });\n\n public get dataType(): AbstractControl<ListItem | null> | null {\n return this.form.get('dataType');\n }\n public get dataTypeValue$(): Observable<ListItem | null> {\n return this.dataType?.valueChanges.pipe(startWith(this.dataType.value)) ?? of(null);\n }\n\n public get matchType(): AbstractControl<ListItem | null> | null {\n return this.form.get('matchType');\n }\n public get matchTypeValue$(): Observable<ListItem | null> {\n return this.matchType?.valueChanges.pipe(startWith(this.matchType.value)) ?? of(null);\n }\n\n public get dropdownDataProvider(): AbstractControl<ListItem | null> | null {\n return this.form.get('dropdownDataProvider');\n }\n\n public get dropdownDataProviderValue$(): Observable<ListItem | null> {\n return (\n this.dropdownDataProvider?.valueChanges.pipe(startWith(this.dropdownDataProvider.value)) ??\n of(null)\n );\n }\n\n public get fieldType(): AbstractControl<ListItem | null> | null {\n return this.form.get('fieldType');\n }\n public get fieldTypeValue$(): Observable<ListItem | null> {\n return this.fieldType?.valueChanges.pipe(startWith(this.fieldType.value)) ?? of(null);\n }\n\n public readonly TaskListSearchFieldDataType = TaskListSearchFieldDataType;\n public readonly TaskListSearchFieldFieldType = TaskListSearchFieldFieldType;\n public readonly TaskListSearchDropdownDataProvider = TaskListSearchDropdownDataProvider;\n\n public get keyValue(): string | null {\n const controlValue = this.form.get('key')?.value;\n\n return !controlValue ? null : controlValue;\n }\n\n public get dataTypeValue(): string | null {\n const controlValue = this.form.get('dataType')?.value;\n this._dataTypeValue$.next(controlValue?.id);\n\n return !controlValue ? null : controlValue.id;\n }\n\n public get fieldTypeValue(): string | null {\n const controlValue = this.form.get('fieldType')?.value;\n\n return !controlValue ? null : controlValue.id;\n }\n\n public get dropdownDataProviderValue(): string | null {\n const controlValue = this.form.get('dropdownDataProvider')?.value;\n this._dropdownProviderValue$.next(controlValue?.id);\n\n return !controlValue ? null : controlValue.id;\n }\n\n public get dropdownValuesArray(): FormArray | null {\n const formArray = this.form.get('dropdownValues');\n\n return !formArray ? null : (formArray as FormArray);\n }\n\n public readonly DROPDOWN_FIELDS: ColumnConfig[] = [\n {\n key: 'key',\n label: 'searchFieldsOverview.key',\n viewType: ViewType.TEXT,\n },\n {\n key: 'value',\n label: 'searchFieldsOverview.text',\n viewType: ViewType.TEXT,\n },\n ];\n\n private readonly _dataTypeValue$ = new BehaviorSubject<\n TaskListSearchFieldDataType | null | undefined\n >(null);\n\n private readonly _dropdownProviderValue$ = new BehaviorSubject<\n TaskListSearchDropdownDataProvider | null | undefined\n >(null);\n public readonly dropdownReadonlyItems$ = this._dropdownProviderValue$.pipe(\n distinctUntilChanged(),\n filter(val => !!val && val === TaskListSearchDropdownDataProvider.JSON),\n switchMap((provider: TaskListSearchDropdownDataProvider | null | undefined) =>\n this.documentService.getDropdownData(\n provider ?? '',\n this.caseDefinitionKey$.getValue() ?? '',\n this.keyValue ?? ''\n )\n ),\n map(dropdownData =>\n dropdownData ? Object.entries(dropdownData).map(([key, value]) => ({key, value})) : []\n )\n );\n\n public readonly dataTypeItems$: Observable<ListItem[]> = combineLatest([\n this.dataTypeValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([dataTypeValue]) =>\n [\n {\n content: this.translateService.instant('searchFields.text'),\n id: TaskListSearchFieldDataType.TEXT,\n },\n {\n content: this.translateService.instant('searchFields.boolean'),\n id: TaskListSearchFieldDataType.BOOLEAN,\n },\n {\n content: this.translateService.instant('searchFields.date'),\n id: TaskListSearchFieldDataType.DATE,\n },\n {\n content: this.translateService.instant('searchFields.datetime'),\n id: TaskListSearchFieldDataType.DATETIME,\n },\n {\n content: this.translateService.instant('searchFields.number'),\n id: TaskListSearchFieldDataType.NUMBER,\n },\n {\n content: this.translateService.instant('searchFields.time'),\n id: TaskListSearchFieldDataType.TIME,\n },\n ].map(item => ({...item, selected: item.id === dataTypeValue?.id}))\n )\n );\n\n public readonly fieldTypeItems$: Observable<ListItem[]> = combineLatest([\n this._dataTypeValue$.pipe(distinctUntilChanged()),\n this.fieldTypeValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([dataTypeValue, fieldTypeValue]) =>\n [\n {\n content: this.translateService.instant('searchFieldsOverview.single'),\n id: TaskListSearchFieldFieldType.SINGLE,\n },\n {\n content: this.translateService.instant('searchFieldsOverview.range'),\n id: TaskListSearchFieldFieldType.RANGE,\n },\n ...(dataTypeValue === TaskListSearchFieldDataType.TEXT\n ? [\n {\n content: this.translateService.instant(\n 'searchFieldsOverview.single-select-dropdown'\n ),\n id: TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN,\n },\n {\n content: this.translateService.instant(\n 'searchFieldsOverview.multi-select-dropdown'\n ),\n id: TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN,\n },\n ]\n : []),\n ].map(item => ({...item, selected: item.id === fieldTypeValue?.id}))\n )\n );\n\n public readonly dataProviderItems$: Observable<ListItem[]> = this.translateService\n .stream('key')\n .pipe(\n switchMap(() => this.dropdownDataProviderValue$),\n map(dataProviderValue =>\n [\n {\n content: this.translateService.instant(\n 'searchFieldsOverview.dropdownDatabaseDataProvider'\n ),\n id: TaskListSearchDropdownDataProvider.DATABASE,\n },\n {\n content: this.translateService.instant(\n 'searchFieldsOverview.dropdownJsonFileDataProvider'\n ),\n id: TaskListSearchDropdownDataProvider.JSON,\n },\n ].map(item => ({...item, selected: item.id === dataProviderValue?.id}))\n )\n );\n\n public readonly matchTypeItems$: Observable<ListItem[]> = this.translateService\n .stream('key')\n .pipe(\n switchMap(() => this.matchTypeValue$),\n map(matchTypeValue =>\n [\n {\n content: this.translateService.instant('searchFieldsOverview.like'),\n id: TaskListSearchFieldMatchType.LIKE,\n },\n {\n content: this.translateService.instant('searchFieldsOverview.exact'),\n id: TaskListSearchFieldMatchType.EXACT,\n },\n ].map(item => ({...item, selected: item.id === matchTypeValue?.id}))\n )\n );\n\n public readonly ValuePathSelectorPrefix = ValuePathSelectorPrefix;\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly iconService: IconService,\n private readonly fb: FormBuilder,\n private readonly translateService: TranslateService\n ) {\n this.iconService.registerAll([TrashCan16, InformationFilled16]);\n }\n\n public ngOnInit(): void {\n this.form.setValidators([this.dropdownDataProviderValidator, this.dropdownValuesValidator]);\n }\n\n public addDropdownValue(prefillValue?: {key: string; value: string}): void {\n if (!this.dropdownValuesArray) return;\n\n this.dropdownValuesArray.push(\n this.fb.group({\n key: this.fb.control(prefillValue?.key ?? '', Validators.required),\n value: this.fb.control(prefillValue?.value ?? '', Validators.required),\n })\n );\n }\n\n public removeDropdownValue(index: number): void {\n if (!this.dropdownValuesArray) return;\n\n this.dropdownValuesArray.removeAt(index);\n }\n\n public onCancel(): void {\n this.closeEvent.emit(null);\n this.resetForm();\n }\n\n public onSave(): void {\n const groupValue = this.form.getRawValue();\n this.closeEvent.emit({\n ...(groupValue.title && {title: groupValue.title}),\n ...(groupValue.key && {key: groupValue.key}),\n ...(groupValue.path && {path: groupValue.path}),\n ...(groupValue.dataType?.content && {dataType: groupValue.dataType.id}),\n ...(groupValue.matchType?.content && {matchType: groupValue.matchType.id}),\n ...(groupValue.fieldType?.content && {fieldType: groupValue.fieldType.id}),\n ...(groupValue.dropdownDataProvider?.content && {\n dropdownDataProvider: groupValue.dropdownDataProvider.id,\n }),\n ...(groupValue.dropdownValues && {\n dropdownValues: groupValue.dropdownValues.reduce(\n (acc, curr) => ({...acc, ...(!!curr?.key && {[curr.key]: curr.value})}),\n {}\n ),\n }),\n });\n\n this.resetForm();\n }\n\n private setPrefilledForm(prefillData: TaskListSearchField | null): void {\n if (!prefillData) return;\n\n this.form.patchValue({\n ...prefillData,\n dataType: !prefillData.dataType\n ? null\n : {\n content: prefillData.dataType,\n id: prefillData.dataType,\n selected: true,\n },\n matchType: !prefillData.matchType\n ? null\n : {\n content: prefillData.matchType,\n id: prefillData.matchType,\n selected: true,\n },\n fieldType: !prefillData.fieldType\n ? null\n : {\n content: prefillData.fieldType,\n id: prefillData.fieldType,\n selected: true,\n },\n dropdownDataProvider: !prefillData.dropdownDataProvider\n ? null\n : {\n content: prefillData.dropdownDataProvider,\n id: prefillData.dropdownDataProvider,\n selected: true,\n },\n dropdownValues: [],\n });\n\n if (prefillData.dropdownDataProvider && prefillData.dropdownValues)\n this.setPrefilledDropdownValues(prefillData.dropdownValues);\n this.form.get('key')?.disable();\n }\n\n private setPrefilledDropdownValues(dropdownValue: TaskListSearchDropdownValue): void {\n if (!this.dropdownValuesArray || !this.dropdownDataProviderValue) return;\n\n Object.entries(dropdownValue).forEach(([key, value]) => {\n this.addDropdownValue({key, value});\n });\n }\n\n private matchTypeValidator(control: AbstractControl): null | {[key: string]: string} {\n const controlValue: ListItem | undefined = control.value;\n const dataTypeControlValue: ListItem | null | undefined =\n control.parent?.get('dataType')?.value;\n\n if (\n dataTypeControlValue?.id === TaskListSearchFieldDataType.TEXT &&\n (!controlValue || !controlValue.selected)\n )\n return {error: 'Match type not selected'};\n\n return null;\n }\n\n private dropdownDataProviderValidator(group: typeof this.form): ValidationErrors | null {\n const controlValue: ListItem | undefined | null = group.get('dropdownDataProvider')?.value;\n const fieldTypeControlValue: ListItem | null | undefined = group.get('fieldType')?.value;\n\n if (\n [\n TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN,\n TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN,\n ].includes(fieldTypeControlValue?.id) &&\n !controlValue\n )\n return {error: 'Dropdown source provider is not specified'};\n\n return null;\n }\n\n private dropdownValuesValidator(group: typeof this.form): ValidationErrors | null {\n const controlValue: ({key: string; value: string} | null)[] | undefined =\n group.get('dropdownValues')?.value;\n const fieldTypeControlValue = group.get('fieldType')?.value?.id;\n const dropdownProviderValue = group.get('dropdownDataProvider')?.value?.id;\n\n if (\n [\n TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN,\n TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN,\n ].includes(fieldTypeControlValue) &&\n (!controlValue || controlValue?.length === 0) &&\n dropdownProviderValue === TaskListSearchDropdownDataProvider.DATABASE\n )\n return {error: 'Dropdown source provider is not specified or is empty'};\n\n return null;\n }\n\n private resetForm(): void {\n setTimeout(() => {\n while (!!this.dropdownValuesArray?.length) {\n this.dropdownValuesArray.removeAt(0);\n }\n this.form.reset();\n this.form.enable();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<cds-modal [open]=\"open\" showFooter=\"true\" (close)=\"onCancel()\">\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 <form\n cdsModalContent\n [formGroup]=\"form\"\n class=\"valtimo-task-management-search-fields-modal__content\"\n >\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\n data-testid=\"task-management-search-title\"\n cdsText\n type=\"text\"\n formControlName=\"title\"\n cdsLayer\n />\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\n cdsLayer\n data-testid=\"task-management-search-key\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n />\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 <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey$ | async\"\n ></valtimo-value-path-selector>\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\n cdsLayer\n data-testid=\"task-management-search-dataType\"\n formControlName=\"dataType\"\n >\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\n cdsLayer\n data-testid=\"task-management-search-matchType\"\n formControlName=\"matchType\"\n >\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\n cdsLayer\n data-testid=\"task-management-search-fieldType\"\n formControlName=\"fieldType\"\n >\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\n data-testid=\"task-management-search-dropdownDataProvider\"\n formControlName=\"dropdownDataProvider\"\n cdsLayer\n >\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.value' | translate }}\n\n <input\n data-testid=\"task-management-search-dropdownKey\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n cdsLayer\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'interface.display' | translate }}\n\n <input\n data-testid=\"task-management-search-dropdownValue\"\n cdsText\n type=\"text\"\n formControlName=\"value\"\n cdsLayer\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger\"\n data-testid=\"task-management-search-deleteEnum\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"removeDropdownValue($index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n data-testid=\"task-management-search-addDropdownValue\"\n cdsButton=\"primary\"\n (click)=\"addDropdownValue()\"\n >\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\n <cds-modal-footer>\n <button data-testid=\"task-management-search-cancel\" cdsButton=\"secondary\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n data-testid=\"task-management-search-save\"\n cdsButton=\"primary\"\n [disabled]=\"form.invalid\"\n (click)=\"onSave()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {DocumentService} from '@valtimo/document';\nimport {\n TaskListSearchDropdownValue,\n TaskListSearchField,\n TaskListSearchFieldFieldType,\n} from '@valtimo/task';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n of,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {TaskManagementSearchFieldsService} from '../../services';\nimport {TaskManagementSearchFieldsModalComponent} from '../task-management-search-fields-modal/task-management-search-fields-modal.component';\nimport {CaseManagementParams, getCaseManagementRouteParams} from '@valtimo/shared';\n\n@Component({\n selector: 'valtimo-task-management-search-fields',\n templateUrl: 'task-management-search-fields.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n CarbonListModule,\n ButtonModule,\n IconModule,\n TaskManagementSearchFieldsModalComponent,\n ConfirmationModalModule,\n ],\n})\nexport class TaskManagementSearchFieldsComponent {\n public readonly caseDefinitionKey$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n map((params: CaseManagementParams | undefined) => (!params ? '' : params.caseDefinitionKey)),\n tap((caseDefinitionKey: string) =>\n this.searchFieldsService.setCaseDefinitionKey(caseDefinitionKey)\n )\n );\n\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n\n public readonly searchFields$: Observable<TaskListSearchField[]> = combineLatest([\n this.caseDefinitionKey$,\n this._refresh$,\n this.trasnlateService.stream('key'),\n ]).pipe(\n switchMap(() => this.searchFieldsService.getTaskListSearchFields()),\n map((searchFields: TaskListSearchField[]) => this.mapTranslations(searchFields))\n );\n\n public readonly fields$: Observable<ColumnConfig[]> = this.trasnlateService.stream('key').pipe(\n map(() => [\n {\n key: 'title',\n label: 'searchFieldsOverview.title',\n viewType: ViewType.TEXT,\n },\n {\n key: 'key',\n label: 'searchFieldsOverview.key',\n viewType: ViewType.TEXT,\n },\n {\n key: 'path',\n label: 'searchFieldsOverview.path',\n viewType: ViewType.TEXT,\n },\n {\n key: 'dataTypeTranslation',\n label: 'searchFieldsOverview.dataType',\n viewType: ViewType.TEXT,\n },\n {\n key: 'fieldTypeTranslation',\n label: 'searchFieldsOverview.fieldType',\n viewType: ViewType.TEXT,\n },\n ])\n );\n\n public readonly deleteModalOpen$ = new BehaviorSubject<boolean>(false);\n public readonly fieldModalOpen$ = new BehaviorSubject<boolean>(false);\n public readonly itemToDelete$ = new BehaviorSubject<TaskListSearchField | null>(null);\n public readonly prefillData$ = new BehaviorSubject<TaskListSearchField | null>(null);\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n label: 'interface.edit',\n callback: this.editField.bind(this),\n type: 'normal',\n },\n {\n label: 'interface.delete',\n callback: this.deleteField.bind(this),\n type: 'danger',\n },\n ];\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly route: ActivatedRoute,\n private readonly searchFieldsService: TaskManagementSearchFieldsService,\n private readonly trasnlateService: TranslateService\n ) {}\n\n public editField(item: TaskListSearchField): void {\n if (!!item.dropdownDataProvider) {\n this.documentService\n .getDropdownData(item.dropdownDataProvider, item.ownerId, item.key)\n .pipe(take(1))\n .subscribe(dropdownValues => {\n item.dropdownValues = dropdownValues as TaskListSearchDropdownValue;\n this.prefillData$.next(item);\n this.fieldModalOpen$.next(true);\n });\n\n return;\n }\n this.prefillData$.next(item);\n this.fieldModalOpen$.next(true);\n }\n\n public onItemsReordered(event): void {\n this.searchFieldsService\n .orderTaskListSearchFields(event)\n .pipe(take(1))\n .subscribe(() => this._refresh$.next(null));\n }\n\n public onAddButtonClick(): void {\n this.fieldModalOpen$.next(true);\n }\n\n public onCloseEvent(\n searchField: TaskListSearchField | null,\n prefillData: TaskListSearchField | null\n ): void {\n this.fieldModalOpen$.next(false);\n this.prefillData$.next(null);\n if (!searchField) return;\n\n const hasDropdownValues: boolean =\n searchField.fieldType === TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN ||\n searchField.fieldType === TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN;\n\n (!prefillData\n ? this.searchFieldsService.createTaskListSearchField(searchField)\n : this.searchFieldsService.updateTaskListSearchField(searchField)\n )\n .pipe(\n take(1),\n switchMap((field: TaskListSearchField) => {\n return hasDropdownValues\n ? this.documentService.postDropdownData(\n field.dropdownDataProvider ?? '',\n field.ownerId,\n field.key,\n searchField.dropdownValues ?? {}\n )\n : of(field);\n })\n )\n .subscribe(() => this._refresh$.next(null));\n }\n\n public onDeleteFieldConfirm(item: TaskListSearchField | null): void {\n if (!item) return;\n\n combineLatest([\n this.searchFieldsService.deleteTaskListSearchField(item.key),\n item.dropdownDataProvider\n ? this.documentService.deleteDropdownData(item.dropdownDataProvider, item.ownerId, item.key)\n : of(null),\n ])\n .pipe(take(1))\n .subscribe(() => this._refresh$.next(null));\n }\n\n private deleteField(item: TaskListSearchField): void {\n this.itemToDelete$.next(item);\n this.deleteModalOpen$.next(true);\n }\n\n private mapTranslations(\n searchFields: TaskListSearchField[]\n ): (TaskListSearchField & {dataTypeTranslation: string; fieldTypeTranslation: string})[] {\n return searchFields.map((searchField: TaskListSearchField) => ({\n ...searchField,\n dataTypeTranslation: this.trasnlateService.instant(\n `searchFields.${searchField.dataType.toLowerCase()}`\n ),\n fieldTypeTranslation: this.trasnlateService.instant(\n `searchFieldsOverview.${this.fieldTypeTranslation(searchField.fieldType)}`\n ),\n }));\n }\n\n private fieldTypeTranslation(fieldType: TaskListSearchFieldFieldType): string {\n switch (fieldType) {\n case TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN:\n return 'single-select-dropdown';\n case TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN:\n return 'multi-select-dropdown';\n default:\n return fieldType.toLowerCase();\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\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 [caseDefinitionKey]=\"caseDefinitionKey$ | 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","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CarbonListModule} from '@valtimo/components';\nimport {TabsModule} from 'carbon-components-angular';\nimport {TaskManagementTab} from '../../models';\nimport {TaskManagementService} from '../../services';\nimport {TaskManagementColumnsComponent} from '../task-management-columns/task-management-columns.component';\nimport {TaskManagementSearchFieldsComponent} from '../task-management-search-fields/task-management-search-fields.component';\n\n@Component({\n templateUrl: './task-management-detail.component.html',\n styleUrl: './task-management-detail.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n TabsModule,\n TaskManagementColumnsComponent,\n TaskManagementSearchFieldsComponent,\n ],\n providers: [TaskManagementService],\n})\nexport class TaskManagementDetailComponent {\n public readonly activeTab$ = this.taskManagementService.activeTab$;\n\n public readonly TaskManagementTab = TaskManagementTab;\n\n constructor(private readonly taskManagementService: TaskManagementService) {}\n\n public setActiveTab(tab: TaskManagementTab): void {\n this.taskManagementService.setActiveTab(tab);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (activeTab$ | async; as activeTab) {\n <cds-tabs type=\"contained\">\n <cds-tab\n [active]=\"activeTab === TaskManagementTab.COLUMNS\"\n [heading]=\"'taskManagement.columns' | translate\"\n (selected)=\"setActiveTab(TaskManagementTab.COLUMNS)\"\n >\n <valtimo-task-management-columns *ngIf=\"activeTab === TaskManagementTab.COLUMNS\">\n </valtimo-task-management-columns>\n </cds-tab>\n\n <cds-tab\n [active]=\"activeTab === TaskManagementTab.SEARCH_FIELDS\"\n [heading]=\"'taskManagement.searchFields' | translate\"\n (selected)=\"setActiveTab(TaskManagementTab.SEARCH_FIELDS)\"\n >\n <valtimo-task-management-search-fields *ngIf=\"activeTab === TaskManagementTab.SEARCH_FIELDS\">\n </valtimo-task-management-search-fields>\n </cds-tab>\n </cds-tabs>\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './task-management-column-modal/task-management-column-modal.component';\nexport * from './task-management-columns/task-management-columns.component';\nexport * from './task-management-detail/task-management-detail.component';\nexport * from './task-management-search-fields/task-management-search-fields.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of task\n */\n\nexport * from './lib/components';\nexport * from './lib/models';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2.TaskManagementApiService","i4","i5","i3","i6","distinctUntilChanged","i2","i3.TaskManagementSearchFieldsService","i7","i1.TaskManagementService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-task-management.mjs","sources":["../../../../projects/valtimo/task-management/src/lib/models/task-management.model.ts","../../../../projects/valtimo/task-management/src/lib/models/index.ts","../../../../projects/valtimo/task-management/src/lib/services/task-management.service.ts","../../../../projects/valtimo/task-management/src/lib/services/task-management-api.service.ts","../../../../projects/valtimo/task-management/src/lib/services/task-management-search-fields.service.ts","../../../../projects/valtimo/task-management/src/lib/services/index.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-column-modal/task-management-column-modal.component.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-column-modal/task-management-column-modal.component.html","../../../../projects/valtimo/task-management/src/lib/components/task-management-columns/task-management-columns.component.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-columns/task-management-columns.component.html","../../../../projects/valtimo/task-management/src/lib/components/task-management-search-fields-modal/task-management-search-fields-modal.component.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-search-fields-modal/task-management-search-fields-modal.component.html","../../../../projects/valtimo/task-management/src/lib/components/task-management-search-fields/task-management-search-fields.component.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-search-fields/task-management-search-fields.component.html","../../../../projects/valtimo/task-management/src/lib/components/task-management-detail/task-management-detail.component.ts","../../../../projects/valtimo/task-management/src/lib/components/task-management-detail/task-management-detail.component.html","../../../../projects/valtimo/task-management/src/lib/components/index.ts","../../../../projects/valtimo/task-management/src/public_api.ts","../../../../projects/valtimo/task-management/src/valtimo-task-management.ts"],"sourcesContent":["/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nenum TaskManagementTab {\n COLUMNS = 'columns',\n SEARCH_FIELDS = 'searchFields',\n}\n\nexport {TaskManagementTab};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './task-management.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {TaskManagementTab} from '../models';\n\n@Injectable()\nexport class TaskManagementService {\n private readonly _activeTab$ = new BehaviorSubject<TaskManagementTab>(TaskManagementTab.COLUMNS);\n\n public get activeTab$(): Observable<TaskManagementTab> {\n return this._activeTab$.asObservable();\n }\n\n public setActiveTab(tab: TaskManagementTab): void {\n this._activeTab$.next(tab);\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {HttpClient} from '@angular/common/http';\nimport {Observable} from 'rxjs';\nimport {TaskListColumn} from '@valtimo/task';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaskManagementApiService extends BaseApiService {\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public getTaskListColumns(caseDefinitionKey: string): Observable<TaskListColumn[]> {\n return this.httpClient.get<TaskListColumn[]>(\n this.getApiUrl(`/management/v1/case/${caseDefinitionKey}/task-list-column`)\n );\n }\n\n public updateTaskListColumn(\n caseDefinitionKey: string,\n column: TaskListColumn\n ): Observable<TaskListColumn> {\n return this.httpClient.put<TaskListColumn>(\n this.getApiUrl(`/management/v1/case/${caseDefinitionKey}/task-list-column/${column.key}`),\n column\n );\n }\n\n public deleteTaskListColumn(\n caseDefinitionKey: string,\n columnKey: string\n ): Observable<TaskListColumn> {\n return this.httpClient.delete<TaskListColumn>(\n this.getApiUrl(`/management/v1/case/${caseDefinitionKey}/task-list-column/${columnKey}`)\n );\n }\n\n public updateTaskListColumnOrder(\n caseDefinitionKey: string,\n columnKeys: string[]\n ): Observable<TaskListColumn[]> {\n return this.httpClient.post<TaskListColumn[]>(\n this.getApiUrl(`/management/v2/case/${caseDefinitionKey}/task-list-column`),\n columnKeys\n );\n }\n\n public swapTaskListColumns(\n caseDefinitionKey: string,\n firstColumn: TaskListColumn,\n secondColumn: TaskListColumn\n ): Observable<TaskListColumn[]> {\n return this.httpClient.post<TaskListColumn[]>(\n this.getApiUrl(`/management/v1/case/${caseDefinitionKey}/task-list-column`),\n {first: firstColumn.key, second: secondColumn.key}\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {BaseApiService, ConfigService} from '@valtimo/shared';\nimport {TaskListSearchField} from '@valtimo/task';\nimport {Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaskManagementSearchFieldsService extends BaseApiService {\n private _caseDefinitionKey: string;\n\n constructor(\n protected readonly httpClient: HttpClient,\n protected readonly configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n public setCaseDefinitionKey(caseDefinitionKey: string): void {\n this._caseDefinitionKey = caseDefinitionKey;\n }\n\n public getTaskListSearchFields(): Observable<TaskListSearchField[]> {\n return this.httpClient.get<TaskListSearchField[]>(\n this.getApiUrl(`/v1/search/field/TaskListSearchColumns/${this._caseDefinitionKey}`)\n );\n }\n\n public createTaskListSearchField(\n searchField: TaskListSearchField\n ): Observable<TaskListSearchField> {\n return this.httpClient.post<TaskListSearchField>(\n this.getApiUrl(`/v1/search/field/${this._caseDefinitionKey}`),\n {\n ...searchField,\n ownerType: 'TaskListSearchColumns',\n ownerId: this._caseDefinitionKey,\n }\n );\n }\n\n public updateTaskListSearchField(\n searchField: TaskListSearchField\n ): Observable<TaskListSearchField> {\n return this.httpClient.put<TaskListSearchField>(\n this.getApiUrl(`/v1/search/field/${this._caseDefinitionKey}/${searchField.key}`),\n {\n ...searchField,\n ownerType: 'TaskListSearchColumns',\n ownerId: this._caseDefinitionKey,\n }\n );\n }\n\n public deleteTaskListSearchField(searchFieldKey: string): Observable<void> {\n return this.httpClient.delete<void>(\n this.getApiUrl(\n `/v1/search/field/TaskListSearchColumns/${this._caseDefinitionKey}/${searchFieldKey}`\n )\n );\n }\n\n public orderTaskListSearchFields(searchFields: TaskListSearchField[]): Observable<any[]> {\n return this.httpClient.put<any[]>(\n this.getApiUrl(`/v1/search/field/${this._caseDefinitionKey}/fields`),\n searchFields\n );\n }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './task-management.service';\nexport * from './task-management-api.service';\nexport * from './task-management-search-fields.service';\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {\n CARBON_CONSTANTS,\n CARBON_THEME,\n CarbonListModule,\n CarbonMultiInputModule,\n MultiInputValues,\n TooltipIconModule,\n ValtimoCdsModalDirective,\n ValuePathSelectorComponent,\n ViewType,\n} from '@valtimo/components';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ButtonModule,\n CheckboxModule,\n DropdownModule,\n InputModule,\n LayerModule,\n ModalModule,\n TabsModule,\n} from 'carbon-components-angular';\nimport {TaskManagementApiService} from '../../services';\nimport {\n AbstractControl,\n FormControl,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {BehaviorSubject, combineLatest, map, Observable, of, startWith, tap} from 'rxjs';\nimport {\n TaskListColumn,\n TaskListColumnDefaultSort,\n TaskListColumnEnum,\n TaskListColumnListItem,\n TaskListColumnModalCloseEvent,\n TaskListColumnModalType,\n} from '@valtimo/task';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {isEqual} from 'lodash';\n\n@Component({\n selector: 'valtimo-task-management-column-modal',\n templateUrl: './task-management-column-modal.component.html',\n styleUrls: ['./task-management-column-modal.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n TabsModule,\n FormsModule,\n ModalModule,\n CheckboxModule,\n DropdownModule,\n InputModule,\n ReactiveFormsModule,\n TooltipIconModule,\n CarbonMultiInputModule,\n ButtonModule,\n ValtimoCdsModalDirective,\n ValuePathSelectorComponent,\n LayerModule,\n ],\n})\nexport class TaskManagementColumnModalComponent {\n @Input() public carbonTheme: CARBON_THEME = CARBON_THEME.G10;\n @Input() public set taskListColumns(value: TaskListColumn[]) {\n if (value?.length > 0) {\n this._taskListColumns$.next(value);\n }\n }\n @Input() public set type(value: TaskListColumnModalType) {\n this.type$.next(value);\n }\n public get type(): TaskListColumnModalType {\n return this.type$.getValue();\n }\n @Input() public set show(showModal: boolean) {\n this.show$.next(showModal);\n if (showModal) this.enable();\n if (!showModal) this.resetFormAfterTimeout();\n }\n @Input() public caseDefinitionKey!: string;\n @Input() public set selectedTaskListColumn(column: TaskListColumn) {\n if (column) this.prefillForm(column);\n }\n @Output() closeEvent = new EventEmitter<TaskListColumnModalCloseEvent>();\n\n public readonly type$ = new BehaviorSubject<TaskListColumnModalType>('add');\n public readonly isAdd$ = this.type$.pipe(map(type => type === 'add'));\n public readonly isEdit$ = this.type$.pipe(\n map(type => type === 'edit'),\n tap(isEdit => {\n if (isEdit) {\n this.key?.disable();\n } else {\n this.key?.enable();\n }\n })\n );\n public readonly show$ = new BehaviorSubject<boolean>(false);\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private readonly _taskListColumns$ = new BehaviorSubject<TaskListColumn[]>([]);\n\n public get taskListColumns$(): Observable<TaskListColumn[]> {\n return this._taskListColumns$.pipe(\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n private readonly _INVALID_KEY = 'INVALID_KEY';\n\n private readonly DISPLAY_TYPES: Array<ViewType> = [\n ViewType.TEXT,\n ViewType.DATE,\n ViewType.BOOLEAN,\n ViewType.ENUM,\n ViewType.ARRAY_COUNT,\n ViewType.TAGS,\n ViewType.UNDERSCORES_TO_SPACES,\n ];\n\n private getInvalidListItem = (translateKey: string): TaskListColumnListItem => ({\n content: this.translateService.instant(translateKey),\n key: this._INVALID_KEY,\n selected: true,\n });\n\n private uniqueKeyValidator = (\n keyFormControl: AbstractControl<TaskListColumnListItem>\n ): {notUnique: boolean} | null => {\n const taskListColumns = this._taskListColumns$.getValue();\n\n return !taskListColumns?.find(\n column => column?.key?.trim()?.toLowerCase() === keyFormControl?.value?.trim()?.toLowerCase()\n )\n ? null\n : {notUnique: true};\n };\n\n private listItemValidator = (\n listItemControl: AbstractControl<TaskListColumnListItem>\n ): {invalidItem: boolean} | null =>\n listItemControl?.value?.key && listItemControl.value.key !== this._INVALID_KEY\n ? null\n : {invalidItem: true};\n\n public readonly formGroup = new FormGroup({\n title: new FormControl<string | null>(null),\n key: new FormControl<string | null>(null, [\n this.uniqueKeyValidator.bind(this),\n Validators.required,\n ]),\n path: new FormControl<string | null>(null, Validators.required),\n dateFormat: new FormControl<string | null>(null),\n displayType: new FormControl<TaskListColumnListItem>(\n this.getInvalidListItem(`listColumn.selectDefaultSort`),\n [Validators.required, this.listItemValidator.bind(this)]\n ),\n sortable: new FormControl<boolean>(false),\n defaultSort: new FormControl<TaskListColumnListItem>(\n this.getInvalidListItem(`listColumn.selectDefaultSort`),\n [Validators.required]\n ),\n });\n\n public get title(): AbstractControl<string | null> | null {\n return this.formGroup.get('title');\n }\n public get key(): AbstractControl<string | null> | null {\n return this.formGroup.get('key');\n }\n public get keyValue$(): Observable<string | null> {\n return this.key?.valueChanges.pipe(distinctUntilChanged()) ?? of(null);\n }\n public get path(): AbstractControl<string | null> | null {\n return this.formGroup.get('path');\n }\n public get dateFormat(): AbstractControl<string | null> | null {\n return this.formGroup.get('dateFormat');\n }\n public get displayType(): AbstractControl<TaskListColumnListItem | null> | null {\n return this.formGroup.get('displayType');\n }\n public get sortable(): AbstractControl<boolean | null> | null {\n return this.formGroup.get('sortable');\n }\n public get defaultSort(): AbstractControl<TaskListColumnListItem | null> | null {\n return this.formGroup.get('defaultSort');\n }\n\n private get _SORT_ASC_ITEM() {\n return {\n content: this.translateService.instant(`listColumn.sortableAsc`),\n key: 'ASC',\n } as TaskListColumnListItem;\n }\n private get _SORT_DESC_ITEM() {\n return {\n content: this.translateService.instant(`listColumn.sortableDesc`),\n key: 'DESC',\n } as TaskListColumnListItem;\n }\n public readonly sortItems$: Observable<Array<TaskListColumnListItem>> = combineLatest([\n this.defaultSort?.valueChanges || of(null),\n this.translateService.stream('key'),\n ]).pipe(\n map(([defaultSortItem]) =>\n [\n this.getInvalidListItem(`listColumn.selectDefaultSort`),\n this._SORT_ASC_ITEM,\n this._SORT_DESC_ITEM,\n ].map((item, index) => ({\n ...item,\n selected: defaultSortItem?.key === item?.key,\n }))\n )\n );\n\n public readonly viewTypeItems$: Observable<Array<TaskListColumnListItem>> = combineLatest([\n this.displayType?.valueChanges || of(null),\n this.translateService.stream('key'),\n ]).pipe(\n map(([displayTypeItem]) =>\n [\n {\n content: this.translateService.instant(`listColumnDisplayType.select`),\n key: this._INVALID_KEY,\n },\n ...this.DISPLAY_TYPES.map(type => this.getListItemFromViewType(type)),\n ].map((item, index) => ({\n ...item,\n selected: displayTypeItem?.key === item?.key,\n }))\n )\n );\n\n private _showDateFormat!: boolean;\n public readonly showDateFormat$ = this.formGroup.valueChanges.pipe(\n map(formValues => !!(formValues.displayType?.key === this.DISPLAY_TYPES[1])),\n tap(showDateFormat => (this._showDateFormat = showDateFormat))\n );\n\n private _showEnum!: boolean;\n public readonly showEnum$ = this.formGroup.valueChanges.pipe(\n map(formValues => !!(formValues.displayType?.key === ViewType.ENUM)),\n tap(showEnum => {\n this._showEnum = showEnum;\n if ((this._enumValues$.getValue() || []).length === 0) this.resetEnumValues();\n })\n );\n\n private _showYesNo!: boolean;\n public readonly showYesNo$ = this.formGroup.valueChanges.pipe(\n map(formValues => !!(formValues.displayType?.key === ViewType.BOOLEAN)),\n tap(showYesNo => {\n this._showYesNo = showYesNo;\n if ((this._yesNoValues$.getValue() || []).length === 0) this.resetYesNoValues();\n })\n );\n\n public readonly CARBON_THEME_WHITE = CARBON_THEME.WHITE;\n\n private static readonly SORTABLE_PATH_REGEX = /^(doc:|case:|task:)/;\n\n public readonly displaySortable$: Observable<boolean> = (\n this.path?.valueChanges ?? of(this.path?.value)\n ).pipe(\n startWith(this.path?.value),\n map(value =>\n TaskManagementColumnModalComponent.SORTABLE_PATH_REGEX.test(String(value ?? ''))\n ),\n tap(displaySortable => {\n this._displaySortable = displaySortable;\n if (!displaySortable) {\n const sortableValue = this.sortable?.value;\n const defaultSortKey = this.defaultSort?.value?.key;\n if (sortableValue || (defaultSortKey && defaultSortKey !== this._INVALID_KEY)) {\n this.sortable?.setValue(false, {emitEvent: false});\n this.defaultSort?.setValue(this.getInvalidListItem(`listColumn.selectDefaultSort`), {\n emitEvent: false,\n });\n }\n }\n })\n );\n\n private _displaySortable = true;\n\n public readonly disableDefaultSort$ = combineLatest([this.taskListColumns$, this.keyValue$]).pipe(\n map(([taskListColumns, keyValue]) => {\n const defaultSortColumn = taskListColumns.find(\n column =>\n column?.defaultSort === TaskListColumnDefaultSort.ASC ||\n column?.defaultSort === TaskListColumnDefaultSort.DESC\n );\n const defaultSortColumnExists = !!defaultSortColumn;\n const enabled = !defaultSortColumnExists || defaultSortColumn.key === keyValue;\n\n if (enabled) {\n this.defaultSort?.enable();\n } else {\n this.defaultSort?.disable();\n }\n\n return !enabled;\n })\n );\n\n private readonly _DEFAULT_ENUM_VALUES: MultiInputValues = [{key: '', value: ''}];\n\n private readonly _enumValues$ = new BehaviorSubject<MultiInputValues>(this._DEFAULT_ENUM_VALUES);\n\n public get enumValues$(): Observable<MultiInputValues> {\n return this._enumValues$.pipe(\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n public get enumValid$(): Observable<boolean> {\n return this.enumValues$.pipe(map(values => this.getValidEnumValues(values).length > 0));\n }\n\n private readonly _enumInitialValues$ = new BehaviorSubject<MultiInputValues>(\n this._DEFAULT_ENUM_VALUES\n );\n\n public get enumInitialValues$(): Observable<MultiInputValues> {\n return this._enumInitialValues$.pipe(\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n private readonly _yesNoValues$ = new BehaviorSubject<MultiInputValues>(this._DEFAULT_ENUM_VALUES);\n\n public get yesNoValues$(): Observable<MultiInputValues> {\n return this._yesNoValues$.pipe(\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n private readonly _yesNoInitialValues$ = new BehaviorSubject<MultiInputValues>(\n this._DEFAULT_ENUM_VALUES\n );\n\n public get yesNoInitialValues$(): Observable<MultiInputValues> {\n return this._yesNoInitialValues$.pipe(\n distinctUntilChanged((previous, current) => isEqual(previous, current))\n );\n }\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly taskManagementApiService: TaskManagementApiService\n ) {}\n\n public closeModal(): void {\n this.closeEvent.emit('close');\n }\n\n public save(): void {\n this.disable();\n\n this.taskManagementApiService\n .updateTaskListColumn(\n this.caseDefinitionKey,\n this.getTaskListColumnFromFormValue(this._showEnum, this._showDateFormat, this._showYesNo)\n )\n .subscribe({\n next: () => {\n this.closeModalAndRefresh();\n this.enableAfterTimeout();\n },\n error: () => {\n this.enable();\n },\n });\n }\n\n public enumValueChange(value: MultiInputValues): void {\n this._enumValues$.next(value);\n }\n\n public yesNoValueChange(value: MultiInputValues): void {\n this._yesNoValues$.next(value);\n }\n\n private resetEnumValues(): void {\n this._enumValues$.next(this._DEFAULT_ENUM_VALUES);\n this._enumInitialValues$.next(this._DEFAULT_ENUM_VALUES);\n }\n\n private resetYesNoValues(): void {\n this._yesNoValues$.next(this._DEFAULT_ENUM_VALUES);\n this._yesNoInitialValues$.next(this._DEFAULT_ENUM_VALUES);\n }\n\n private resetFormAfterTimeout(): void {\n setTimeout(() => {\n this.resetForm();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n private resetForm(): void {\n this.resetEnumValues();\n this.resetYesNoValues();\n this.formGroup.reset({\n title: null,\n key: null,\n dateFormat: null,\n displayType: this.getInvalidListItem('listColumnDisplayType.select'),\n sortable: false,\n defaultSort: this.getInvalidListItem(`listColumn.selectDefaultSort`),\n });\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enableAfterTimeout(): void {\n setTimeout(() => {\n this.enable();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private closeModalAndRefresh(): void {\n this.closeEvent.emit('refresh');\n }\n\n private getTaskListColumnFromFormValue(\n includeEnum: boolean,\n includeDateFormat: boolean,\n includeYesNo: boolean\n ): TaskListColumn {\n const validEnumValues = this.getValidEnumValues(this._enumValues$.getValue());\n const mappedEnumValues =\n validEnumValues && validEnumValues.length > 0 && this.mapEnumValues(validEnumValues);\n const validYesNoValues = this.getValidEnumValues(this._yesNoValues$.getValue());\n const mappedYesNoValues =\n validYesNoValues && validYesNoValues.length > 0 && this.mapEnumValues(validYesNoValues);\n\n const formValue = this.formGroup.getRawValue();\n const taskListColumn: TaskListColumn = {\n title: formValue?.title ?? '',\n key: formValue.key ?? '',\n path: formValue.path ?? '',\n displayType: {\n type: formValue?.displayType?.key ?? '',\n displayTypeParameters: {\n ...(!!includeDateFormat && {dateFormat: formValue.dateFormat ?? ''}),\n ...(includeEnum && mappedEnumValues && {enum: mappedEnumValues}),\n ...(includeYesNo && mappedYesNoValues && {enum: mappedYesNoValues}),\n },\n },\n sortable: this._displaySortable ? formValue.sortable ?? false : false,\n ...(this._displaySortable &&\n formValue?.defaultSort?.key !== this._INVALID_KEY && {\n defaultSort: formValue?.defaultSort?.key as TaskListColumnDefaultSort,\n }),\n };\n\n return taskListColumn;\n }\n\n private mapEnumValues(enumValues: MultiInputValues): TaskListColumnEnum {\n return enumValues.reduce((acc, curr) => ({...acc, [curr?.key ?? '']: curr.value}), {});\n }\n\n private getValidEnumValues(values: MultiInputValues): MultiInputValues {\n return (values || []).filter(value => value.value && value.key);\n }\n\n private getListItemFromViewType(viewType: ViewType | string): TaskListColumnListItem {\n return {\n content: this.translateService.instant(`listColumnDisplayType.${viewType}`),\n key: viewType,\n } as TaskListColumnListItem;\n }\n\n private getMultiInputValuesFromTaskListColumnEnum(\n taskListColumnEnum: TaskListColumnEnum\n ): MultiInputValues {\n return Object.keys(taskListColumnEnum).reduce(\n (acc, curr) => [...acc, {key: curr, value: taskListColumnEnum[curr]}],\n [] as MultiInputValues\n );\n }\n\n private prefillForm(column: TaskListColumn): void {\n if (\n column?.displayType?.type === ViewType.ENUM &&\n column?.displayType?.displayTypeParameters?.enum\n ) {\n const prefilledEnum = this.getMultiInputValuesFromTaskListColumnEnum(\n column.displayType.displayTypeParameters.enum\n );\n this._enumValues$.next(prefilledEnum);\n this._enumInitialValues$.next(prefilledEnum);\n }\n\n if (\n column?.displayType?.type === ViewType.BOOLEAN &&\n column?.displayType?.displayTypeParameters?.enum\n ) {\n const prefilledYesNo = this.getMultiInputValuesFromTaskListColumnEnum(\n column.displayType.displayTypeParameters.enum\n );\n this._yesNoValues$.next(prefilledYesNo);\n this._yesNoInitialValues$.next(prefilledYesNo);\n }\n\n this.formGroup.patchValue({\n key: column.key,\n path: column.path,\n sortable: column.sortable,\n displayType: this.getListItemFromViewType(column.displayType.type),\n ...(column.title && {title: column.title}),\n ...(!column.defaultSort && {\n defaultSort: this.getInvalidListItem(`listColumn.selectDefaultSort`),\n }),\n ...(column.defaultSort === 'ASC' && {defaultSort: this._SORT_ASC_ITEM}),\n ...(column.defaultSort === 'DESC' && {defaultSort: this._SORT_DESC_ITEM}),\n ...(column.displayType?.type === ViewType.DATE && {\n dateFormat: column.displayType?.displayTypeParameters?.dateFormat,\n }),\n });\n }\n}\n","<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\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 enumInitialValues: enumInitialValues$ | async,\n enumValid: enumValid$ | async,\n yesNoInitialValues: yesNoInitialValues$ | async,\n viewTypeItems: viewTypeItems$ | async,\n sortItems: sortItems$ | async,\n displaySortable: displaySortable$ | async,\n } as obs\"\n>\n <cds-modal size=\"sm\" [open]=\"obs.show\" valtimoCdsModal (close)=\"closeModal()\">\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 <form cdsModalContent [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 cdsLayer 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 cdsLayer 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 <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey\"\n ></valtimo-value-path-selector>\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 cdsLayer\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 cdsLayer 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.enumInitialValues\"\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 [defaultValues]=\"obs.yesNoInitialValues\"\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\" *ngIf=\"obs.displaySortable\">\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\" *ngIf=\"obs.displaySortable\">\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\n formControlName=\"defaultSort\"\n [disabled]=\"obs.disabled\"\n cdsLayer\n *ngIf=\"obs.sortItems\"\n >\n <cds-dropdown-list [items]=\"obs.sortItems\"></cds-dropdown-list>\n </cds-dropdown>\n </cds-label>\n </div>\n </form>\n\n <cds-modal-footer>\n <button (click)=\"closeModal()\" cdsButton=\"secondary\" [disabled]=\"obs.disabled\">\n {{ 'listColumn.close' | translate }}\n </button>\n\n <button\n (click)=\"save()\"\n cdsButton=\"primary\"\n [disabled]=\"obs.disabled || formGroup.invalid || (obs.showEnum && !obs.enumValid)\"\n >\n {{ 'listColumn.save' | translate }}\n </button>\n </cds-modal-footer>\n </cds-modal>\n</ng-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ActionItem,\n CARBON_CONSTANTS,\n CARBON_THEME,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n MoveRowDirection,\n MoveRowEvent,\n} from '@valtimo/components';\nimport {CaseManagementParams, getCaseManagementRouteParams} from '@valtimo/shared';\nimport {\n TaskListColumn,\n TaskListColumnDisplayTypeParameters,\n TaskListColumnModalCloseEvent,\n TaskListColumnModalType,\n} from '@valtimo/task';\nimport {ButtonModule, IconModule, TabsModule} from 'carbon-components-angular';\nimport {BehaviorSubject, combineLatest, map, Observable, Subject, switchMap, take, tap} from 'rxjs';\nimport {TaskManagementApiService, TaskManagementService} from '../../services';\nimport {TaskManagementColumnModalComponent} from '../task-management-column-modal/task-management-column-modal.component';\n\n@Component({\n selector: 'valtimo-task-management-columns',\n templateUrl: './task-management-columns.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n TabsModule,\n TaskManagementColumnModalComponent,\n ButtonModule,\n IconModule,\n ConfirmationModalModule,\n ],\n providers: [TaskManagementService],\n})\nexport class TaskManagementColumnsComponent {\n @Input() public carbonTheme: CARBON_THEME = CARBON_THEME.G10;\n\n private readonly _refreshColumns$ = new BehaviorSubject<null | 'noAnimation'>(null);\n\n public readonly caseDefinitionKey$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n map((params: CaseManagementParams | undefined) => (!params ? '' : params.caseDefinitionKey))\n );\n\n public readonly loadingColumns$ = new BehaviorSubject<boolean>(true);\n\n public readonly selectedTaskListColumn$ = new Subject<TaskListColumn | null>();\n\n public readonly cachedTaskListColumns$ = new BehaviorSubject<TaskListColumn[]>([]);\n\n public readonly taskListColumns$: Observable<TaskListColumn[]> = combineLatest([\n this.caseDefinitionKey$,\n this._refreshColumns$,\n this.translateService.stream('key'),\n ]).pipe(\n tap(([_, refresh]) => {\n if (refresh !== 'noAnimation') this.loadingColumns$.next(true);\n }),\n switchMap(([caseDefinitionKey]) =>\n this.taskManagementApiService.getTaskListColumns(caseDefinitionKey)\n ),\n tap(columns => {\n this.cachedTaskListColumns$.next(columns);\n }),\n map(columns =>\n columns.map(column => ({\n ...column,\n title: column.title || '-',\n sortable: column.sortable\n ? this.translateService.instant('listColumn.sortableYes')\n : this.translateService.instant('listColumn.sortableNo'),\n defaultSort:\n (column.defaultSort === 'ASC' &&\n this.translateService.instant('listColumn.sortableAsc')) ||\n (column.defaultSort === 'DESC' &&\n this.translateService.instant('listColumn.sortableDesc')) ||\n '-',\n displayType: this.translateService.instant(\n `listColumnDisplayType.${column?.displayType?.type}`\n ),\n displayTypeParameters: this.getDisplayTypeParametersView(\n column?.displayType?.displayTypeParameters\n ),\n }))\n ),\n tap(() => {\n this.enable();\n this.loadingColumns$.next(false);\n })\n );\n\n public readonly showDeleteModal$ = new Subject<boolean>();\n public readonly deleteColumnKey$ = new BehaviorSubject<string>('');\n\n public readonly disabled$ = new BehaviorSubject<boolean>(true);\n\n public readonly fields: Array<ColumnConfig> = [\n {\n viewType: 'string',\n sortable: false,\n key: 'title',\n label: 'listColumn.title',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'key',\n label: 'listColumn.key',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'path',\n label: 'listColumn.path',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'displayType',\n label: 'listColumn.displayType',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'displayTypeParameters',\n label: 'listColumn.displayTypeParameters',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'sortable',\n label: 'listColumn.sortable',\n },\n {\n viewType: 'string',\n sortable: false,\n key: 'defaultSort',\n label: 'listColumn.defaultSort',\n },\n ];\n\n public readonly actionItems: ActionItem[] = [\n {\n label: 'interface.edit',\n callback: this.editColumn.bind(this),\n },\n {\n label: 'interface.delete',\n callback: this.deleteColumn.bind(this),\n type: 'danger',\n },\n ];\n\n public readonly modalType$ = new Subject<TaskListColumnModalType>();\n public readonly showModal$ = new Subject<boolean>();\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly taskManagementApiService: TaskManagementApiService,\n private readonly translateService: TranslateService\n ) {}\n\n public refreshColumns(noAnimation = false): void {\n this._refreshColumns$.next(noAnimation ? 'noAnimation' : null);\n }\n\n public deleteColumn(taskListColumn: TaskListColumn): void {\n this.showDeleteModal$.next(true);\n this.deleteColumnKey$.next(taskListColumn.key);\n }\n\n public onItemsReordered(reorderedItems: TaskListColumn[], caseDefinitionKey: string): void {\n this.disable();\n\n this.taskManagementApiService\n .updateTaskListColumnOrder(\n caseDefinitionKey,\n reorderedItems.map((column: TaskListColumn) => column.key)\n )\n .subscribe({\n next: () => {\n this.refreshColumns(true);\n },\n error: () => this.enable(),\n });\n }\n\n public editColumn(columnItem: TaskListColumn): void {\n this.cachedTaskListColumns$.pipe(take(1)).subscribe(cachedTaskListColumns => {\n const selectedTaskListColumn = cachedTaskListColumns.find(\n column => column.key === columnItem.key\n );\n\n this.selectedTaskListColumn$.next(selectedTaskListColumn ?? null);\n this.showModal('edit');\n });\n }\n\n public showModal(type: TaskListColumnModalType): void {\n this.modalType$.next(type);\n this.showModal$.next(true);\n }\n\n public onModalCloseEvent(event: TaskListColumnModalCloseEvent): void {\n this.showModal$.next(false);\n\n if (event === 'refresh') {\n this.disable();\n this.refreshColumns();\n }\n\n setTimeout(() => {\n this.clearSelectedTaskListColumn();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n\n public deleteColumnConfirmation(columnKey: string, caseDefinitionKey: string): void {\n this.disable();\n\n this.taskManagementApiService.deleteTaskListColumn(caseDefinitionKey, columnKey).subscribe({\n next: () => {\n this.refreshColumns(true);\n },\n error: () => this.enable(),\n });\n }\n\n private getDisplayTypeParametersView(\n displayTypeParameters: TaskListColumnDisplayTypeParameters | undefined\n ): string {\n if (!displayTypeParameters) return '-';\n\n if (displayTypeParameters?.dateFormat) {\n return displayTypeParameters.dateFormat;\n } else if (displayTypeParameters?.enum) {\n return Object.keys(displayTypeParameters.enum).reduce((acc, curr) => {\n const keyValuePairString = `${curr}: ${displayTypeParameters?.enum?.[curr]}`;\n\n if (!acc) return `${keyValuePairString}`;\n\n return `${acc}, ${keyValuePairString}`;\n }, '');\n }\n\n return '-';\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private clearSelectedTaskListColumn(): void {\n this.selectedTaskListColumn$.next(null);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n taskListColumns: taskListColumns$ | async,\n cachedTaskListColumns: cachedTaskListColumns$ | async,\n caseDefinitionKey: caseDefinitionKey$ | async,\n loadingColumns: loadingColumns$ | async,\n modalType: modalType$ | async,\n showModal: showModal$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [items]=\"obs.taskListColumns\"\n [loading]=\"obs.loadingColumns\"\n [fields]=\"fields\"\n [header]=\"false\"\n [dragAndDrop]=\"true\"\n (rowClicked)=\"editColumn($event)\"\n (itemsReordered)=\"onItemsReordered($event, obs.caseDefinitionKey)\"\n >\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"addButton\"></ng-container>\n\n <valtimo-no-results\n [action]=\"addButton\"\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\n <valtimo-task-management-column-modal\n [taskListColumns]=\"obs.cachedTaskListColumns\"\n [type]=\"obs.modalType\"\n [show]=\"obs.showModal\"\n [caseDefinitionKey]=\"obs.caseDefinitionKey\"\n [selectedTaskListColumn]=\"selectedTaskListColumn$ | async\"\n (closeEvent)=\"onModalCloseEvent($event)\"\n ></valtimo-task-management-column-modal>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteColumnKey$ | async\"\n (confirmEvent)=\"deleteColumnConfirmation($event, obs.caseDefinitionKey)\"\n confirmButtonTextTranslationKey=\"listColumn.deleteColumn\"\n titleTranslationKey=\"listColumn.deleteColumn\"\n contentTranslationKey=\"listColumn.deleteColumnConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-container>\n\n<ng-template #addButton>\n <button\n carbonToolbarContent\n cdsButton=\"primary\"\n [disabled]=\"disabled$ | async\"\n (click)=\"showModal('add')\"\n >\n {{ 'listColumn.addButtonText' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormArray,\n FormBuilder,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport {InformationFilled16, TrashCan16} from '@carbon/icons';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n CARBON_CONSTANTS,\n CarbonListModule,\n ColumnConfig,\n InputLabelModule,\n ValuePathSelectorComponent,\n ValuePathSelectorPrefix,\n ViewType,\n} from '@valtimo/components';\nimport {DocumentService} from '@valtimo/document';\nimport {\n TaskListSearchDropdownDataProvider,\n TaskListSearchDropdownValue,\n TaskListSearchField,\n TaskListSearchFieldDataType,\n TaskListSearchFieldFieldType,\n TaskListSearchFieldMatchType,\n} from '@valtimo/task';\nimport {\n ButtonModule,\n DropdownModule,\n IconModule,\n IconService,\n InputModule,\n LayerModule,\n ListItem,\n ModalModule,\n} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n Observable,\n of,\n startWith,\n switchMap,\n} from 'rxjs';\n\n@Component({\n selector: 'valtimo-task-management-search-fields-modal',\n templateUrl: './task-management-search-fields-modal.component.html',\n styleUrl: './task-management-search-fields-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n ButtonModule,\n DropdownModule,\n InputModule,\n ModalModule,\n ReactiveFormsModule,\n IconModule,\n CarbonListModule,\n InputLabelModule,\n ValuePathSelectorComponent,\n LayerModule,\n ],\n})\nexport class TaskManagementSearchFieldsModalComponent implements OnInit {\n @Input({required: true}) open: boolean;\n\n public readonly caseDefinitionKey$ = new BehaviorSubject<string>('');\n @Input({required: true}) public set caseDefinitionKey(value: string) {\n this.caseDefinitionKey$.next(value);\n }\n\n private _prefillData: TaskListSearchField | null;\n @Input() public set prefillData(value: TaskListSearchField | null) {\n this._prefillData = value;\n this.setPrefilledForm(value);\n }\n public get prefillData(): TaskListSearchField | null {\n return this._prefillData;\n }\n @Output() closeEvent = new EventEmitter<Partial<TaskListSearchField> | null>();\n\n public readonly form = this.fb.group({\n key: this.fb.control<string>('', Validators.required),\n title: this.fb.control<string>('', Validators.required),\n path: this.fb.control<string>('', Validators.required),\n dataType: this.fb.control<ListItem | null>(null, Validators.required),\n matchType: this.fb.control<ListItem | null>(null, this.matchTypeValidator),\n fieldType: this.fb.control<ListItem | null>(null, Validators.required),\n dropdownDataProvider: this.fb.control<ListItem | null>(null),\n dropdownValues: this.fb.array<{key: string; value: string}>([]),\n });\n\n public get dataType(): AbstractControl<ListItem | null> | null {\n return this.form.get('dataType');\n }\n public get dataTypeValue$(): Observable<ListItem | null> {\n return this.dataType?.valueChanges.pipe(startWith(this.dataType.value)) ?? of(null);\n }\n\n public get matchType(): AbstractControl<ListItem | null> | null {\n return this.form.get('matchType');\n }\n public get matchTypeValue$(): Observable<ListItem | null> {\n return this.matchType?.valueChanges.pipe(startWith(this.matchType.value)) ?? of(null);\n }\n\n public get dropdownDataProvider(): AbstractControl<ListItem | null> | null {\n return this.form.get('dropdownDataProvider');\n }\n\n public get dropdownDataProviderValue$(): Observable<ListItem | null> {\n return (\n this.dropdownDataProvider?.valueChanges.pipe(startWith(this.dropdownDataProvider.value)) ??\n of(null)\n );\n }\n\n public get fieldType(): AbstractControl<ListItem | null> | null {\n return this.form.get('fieldType');\n }\n public get fieldTypeValue$(): Observable<ListItem | null> {\n return this.fieldType?.valueChanges.pipe(startWith(this.fieldType.value)) ?? of(null);\n }\n\n public readonly TaskListSearchFieldDataType = TaskListSearchFieldDataType;\n public readonly TaskListSearchFieldFieldType = TaskListSearchFieldFieldType;\n public readonly TaskListSearchDropdownDataProvider = TaskListSearchDropdownDataProvider;\n\n public get keyValue(): string | null {\n const controlValue = this.form.get('key')?.value;\n\n return !controlValue ? null : controlValue;\n }\n\n public get dataTypeValue(): string | null {\n const controlValue = this.form.get('dataType')?.value;\n this._dataTypeValue$.next(controlValue?.id);\n\n return !controlValue ? null : controlValue.id;\n }\n\n public get fieldTypeValue(): string | null {\n const controlValue = this.form.get('fieldType')?.value;\n\n return !controlValue ? null : controlValue.id;\n }\n\n public get dropdownDataProviderValue(): string | null {\n const controlValue = this.form.get('dropdownDataProvider')?.value;\n this._dropdownProviderValue$.next(controlValue?.id);\n\n return !controlValue ? null : controlValue.id;\n }\n\n public get dropdownValuesArray(): FormArray | null {\n const formArray = this.form.get('dropdownValues');\n\n return !formArray ? null : (formArray as FormArray);\n }\n\n public readonly DROPDOWN_FIELDS: ColumnConfig[] = [\n {\n key: 'key',\n label: 'searchFieldsOverview.key',\n viewType: ViewType.TEXT,\n },\n {\n key: 'value',\n label: 'searchFieldsOverview.text',\n viewType: ViewType.TEXT,\n },\n ];\n\n private readonly _dataTypeValue$ = new BehaviorSubject<\n TaskListSearchFieldDataType | null | undefined\n >(null);\n\n private readonly _dropdownProviderValue$ = new BehaviorSubject<\n TaskListSearchDropdownDataProvider | null | undefined\n >(null);\n public readonly dropdownReadonlyItems$ = this._dropdownProviderValue$.pipe(\n distinctUntilChanged(),\n filter(val => !!val && val === TaskListSearchDropdownDataProvider.JSON),\n switchMap((provider: TaskListSearchDropdownDataProvider | null | undefined) =>\n this.documentService.getDropdownData(\n provider ?? '',\n this.caseDefinitionKey$.getValue() ?? '',\n this.keyValue ?? ''\n )\n ),\n map(dropdownData =>\n dropdownData ? Object.entries(dropdownData).map(([key, value]) => ({key, value})) : []\n )\n );\n\n public readonly dataTypeItems$: Observable<ListItem[]> = combineLatest([\n this.dataTypeValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([dataTypeValue]) =>\n [\n {\n content: this.translateService.instant('searchFields.text'),\n id: TaskListSearchFieldDataType.TEXT,\n },\n {\n content: this.translateService.instant('searchFields.boolean'),\n id: TaskListSearchFieldDataType.BOOLEAN,\n },\n {\n content: this.translateService.instant('searchFields.date'),\n id: TaskListSearchFieldDataType.DATE,\n },\n {\n content: this.translateService.instant('searchFields.datetime'),\n id: TaskListSearchFieldDataType.DATETIME,\n },\n {\n content: this.translateService.instant('searchFields.number'),\n id: TaskListSearchFieldDataType.NUMBER,\n },\n {\n content: this.translateService.instant('searchFields.time'),\n id: TaskListSearchFieldDataType.TIME,\n },\n ].map(item => ({...item, selected: item.id === dataTypeValue?.id}))\n )\n );\n\n public readonly fieldTypeItems$: Observable<ListItem[]> = combineLatest([\n this._dataTypeValue$.pipe(distinctUntilChanged()),\n this.fieldTypeValue$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([dataTypeValue, fieldTypeValue]) =>\n [\n {\n content: this.translateService.instant('searchFieldsOverview.single'),\n id: TaskListSearchFieldFieldType.SINGLE,\n },\n {\n content: this.translateService.instant('searchFieldsOverview.range'),\n id: TaskListSearchFieldFieldType.RANGE,\n },\n ...(dataTypeValue === TaskListSearchFieldDataType.TEXT\n ? [\n {\n content: this.translateService.instant(\n 'searchFieldsOverview.single-select-dropdown'\n ),\n id: TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN,\n },\n {\n content: this.translateService.instant(\n 'searchFieldsOverview.multi-select-dropdown'\n ),\n id: TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN,\n },\n ]\n : []),\n ].map(item => ({...item, selected: item.id === fieldTypeValue?.id}))\n )\n );\n\n public readonly dataProviderItems$: Observable<ListItem[]> = this.translateService\n .stream('key')\n .pipe(\n switchMap(() => this.dropdownDataProviderValue$),\n map(dataProviderValue =>\n [\n {\n content: this.translateService.instant(\n 'searchFieldsOverview.dropdownDatabaseDataProvider'\n ),\n id: TaskListSearchDropdownDataProvider.DATABASE,\n },\n {\n content: this.translateService.instant(\n 'searchFieldsOverview.dropdownJsonFileDataProvider'\n ),\n id: TaskListSearchDropdownDataProvider.JSON,\n },\n ].map(item => ({...item, selected: item.id === dataProviderValue?.id}))\n )\n );\n\n public readonly matchTypeItems$: Observable<ListItem[]> = this.translateService\n .stream('key')\n .pipe(\n switchMap(() => this.matchTypeValue$),\n map(matchTypeValue =>\n [\n {\n content: this.translateService.instant('searchFieldsOverview.like'),\n id: TaskListSearchFieldMatchType.LIKE,\n },\n {\n content: this.translateService.instant('searchFieldsOverview.exact'),\n id: TaskListSearchFieldMatchType.EXACT,\n },\n ].map(item => ({...item, selected: item.id === matchTypeValue?.id}))\n )\n );\n\n public readonly ValuePathSelectorPrefix = ValuePathSelectorPrefix;\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly iconService: IconService,\n private readonly fb: FormBuilder,\n private readonly translateService: TranslateService\n ) {\n this.iconService.registerAll([TrashCan16, InformationFilled16]);\n }\n\n public ngOnInit(): void {\n this.form.setValidators([this.dropdownDataProviderValidator, this.dropdownValuesValidator]);\n }\n\n public addDropdownValue(prefillValue?: {key: string; value: string}): void {\n if (!this.dropdownValuesArray) return;\n\n this.dropdownValuesArray.push(\n this.fb.group({\n key: this.fb.control(prefillValue?.key ?? '', Validators.required),\n value: this.fb.control(prefillValue?.value ?? '', Validators.required),\n })\n );\n }\n\n public removeDropdownValue(index: number): void {\n if (!this.dropdownValuesArray) return;\n\n this.dropdownValuesArray.removeAt(index);\n }\n\n public onCancel(): void {\n this.closeEvent.emit(null);\n this.resetForm();\n }\n\n public onSave(): void {\n const groupValue = this.form.getRawValue();\n this.closeEvent.emit({\n ...(groupValue.title && {title: groupValue.title}),\n ...(groupValue.key && {key: groupValue.key}),\n ...(groupValue.path && {path: groupValue.path}),\n ...(groupValue.dataType?.content && {dataType: groupValue.dataType.id}),\n ...(groupValue.matchType?.content && {matchType: groupValue.matchType.id}),\n ...(groupValue.fieldType?.content && {fieldType: groupValue.fieldType.id}),\n ...(groupValue.dropdownDataProvider?.content && {\n dropdownDataProvider: groupValue.dropdownDataProvider.id,\n }),\n ...(groupValue.dropdownValues && {\n dropdownValues: groupValue.dropdownValues.reduce(\n (acc, curr) => ({...acc, ...(!!curr?.key && {[curr.key]: curr.value})}),\n {}\n ),\n }),\n });\n\n this.resetForm();\n }\n\n private setPrefilledForm(prefillData: TaskListSearchField | null): void {\n if (!prefillData) return;\n\n this.form.patchValue({\n ...prefillData,\n dataType: !prefillData.dataType\n ? null\n : {\n content: prefillData.dataType,\n id: prefillData.dataType,\n selected: true,\n },\n matchType: !prefillData.matchType\n ? null\n : {\n content: prefillData.matchType,\n id: prefillData.matchType,\n selected: true,\n },\n fieldType: !prefillData.fieldType\n ? null\n : {\n content: prefillData.fieldType,\n id: prefillData.fieldType,\n selected: true,\n },\n dropdownDataProvider: !prefillData.dropdownDataProvider\n ? null\n : {\n content: prefillData.dropdownDataProvider,\n id: prefillData.dropdownDataProvider,\n selected: true,\n },\n dropdownValues: [],\n });\n\n if (prefillData.dropdownDataProvider && prefillData.dropdownValues)\n this.setPrefilledDropdownValues(prefillData.dropdownValues);\n this.form.get('key')?.disable();\n }\n\n private setPrefilledDropdownValues(dropdownValue: TaskListSearchDropdownValue): void {\n if (!this.dropdownValuesArray || !this.dropdownDataProviderValue) return;\n\n Object.entries(dropdownValue).forEach(([key, value]) => {\n this.addDropdownValue({key, value});\n });\n }\n\n private matchTypeValidator(control: AbstractControl): null | {[key: string]: string} {\n const controlValue: ListItem | undefined = control.value;\n const dataTypeControlValue: ListItem | null | undefined =\n control.parent?.get('dataType')?.value;\n\n if (\n dataTypeControlValue?.id === TaskListSearchFieldDataType.TEXT &&\n (!controlValue || !controlValue.selected)\n )\n return {error: 'Match type not selected'};\n\n return null;\n }\n\n private dropdownDataProviderValidator(group: typeof this.form): ValidationErrors | null {\n const controlValue: ListItem | undefined | null = group.get('dropdownDataProvider')?.value;\n const fieldTypeControlValue: ListItem | null | undefined = group.get('fieldType')?.value;\n\n if (\n [\n TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN,\n TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN,\n ].includes(fieldTypeControlValue?.id) &&\n !controlValue\n )\n return {error: 'Dropdown source provider is not specified'};\n\n return null;\n }\n\n private dropdownValuesValidator(group: typeof this.form): ValidationErrors | null {\n const controlValue: ({key: string; value: string} | null)[] | undefined =\n group.get('dropdownValues')?.value;\n const fieldTypeControlValue = group.get('fieldType')?.value?.id;\n const dropdownProviderValue = group.get('dropdownDataProvider')?.value?.id;\n\n if (\n [\n TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN,\n TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN,\n ].includes(fieldTypeControlValue) &&\n (!controlValue || controlValue?.length === 0) &&\n dropdownProviderValue === TaskListSearchDropdownDataProvider.DATABASE\n )\n return {error: 'Dropdown source provider is not specified or is empty'};\n\n return null;\n }\n\n private resetForm(): void {\n setTimeout(() => {\n while (!!this.dropdownValuesArray?.length) {\n this.dropdownValuesArray.removeAt(0);\n }\n this.form.reset();\n this.form.enable();\n }, CARBON_CONSTANTS.modalAnimationMs);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<cds-modal [open]=\"open\" showFooter=\"true\" (close)=\"onCancel()\">\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 <form\n cdsModalContent\n [formGroup]=\"form\"\n class=\"valtimo-task-management-search-fields-modal__content\"\n >\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\n data-testid=\"task-management-search-title\"\n cdsText\n type=\"text\"\n formControlName=\"title\"\n cdsLayer\n />\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\n cdsLayer\n data-testid=\"task-management-search-key\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n />\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 <valtimo-value-path-selector\n formControlName=\"path\"\n [caseDefinitionKey]=\"caseDefinitionKey$ | async\"\n ></valtimo-value-path-selector>\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\n cdsLayer\n data-testid=\"task-management-search-dataType\"\n formControlName=\"dataType\"\n >\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\n cdsLayer\n data-testid=\"task-management-search-matchType\"\n formControlName=\"matchType\"\n >\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\n cdsLayer\n data-testid=\"task-management-search-fieldType\"\n formControlName=\"fieldType\"\n >\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\n data-testid=\"task-management-search-dropdownDataProvider\"\n formControlName=\"dropdownDataProvider\"\n cdsLayer\n >\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.value' | translate }}\n\n <input\n data-testid=\"task-management-search-dropdownKey\"\n cdsText\n type=\"text\"\n formControlName=\"key\"\n cdsLayer\n />\n </cds-text-label>\n\n <cds-text-label>\n {{ 'interface.display' | translate }}\n\n <input\n data-testid=\"task-management-search-dropdownValue\"\n cdsText\n type=\"text\"\n formControlName=\"value\"\n cdsLayer\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger\"\n data-testid=\"task-management-search-deleteEnum\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n (click)=\"removeDropdownValue($index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n data-testid=\"task-management-search-addDropdownValue\"\n cdsButton=\"primary\"\n (click)=\"addDropdownValue()\"\n >\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\n <cds-modal-footer>\n <button data-testid=\"task-management-search-cancel\" cdsButton=\"secondary\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n data-testid=\"task-management-search-save\"\n cdsButton=\"primary\"\n [disabled]=\"form.invalid\"\n (click)=\"onSave()\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslateModule, TranslateService} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n ViewType,\n} from '@valtimo/components';\nimport {DocumentService} from '@valtimo/document';\nimport {\n TaskListSearchDropdownValue,\n TaskListSearchField,\n TaskListSearchFieldFieldType,\n} from '@valtimo/task';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n map,\n Observable,\n of,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport {TaskManagementSearchFieldsService} from '../../services';\nimport {TaskManagementSearchFieldsModalComponent} from '../task-management-search-fields-modal/task-management-search-fields-modal.component';\nimport {CaseManagementParams, getCaseManagementRouteParams} from '@valtimo/shared';\n\n@Component({\n selector: 'valtimo-task-management-search-fields',\n templateUrl: 'task-management-search-fields.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n CarbonListModule,\n ButtonModule,\n IconModule,\n TaskManagementSearchFieldsModalComponent,\n ConfirmationModalModule,\n ],\n})\nexport class TaskManagementSearchFieldsComponent {\n public readonly caseDefinitionKey$: Observable<string> = getCaseManagementRouteParams(\n this.route\n ).pipe(\n map((params: CaseManagementParams | undefined) => (!params ? '' : params.caseDefinitionKey)),\n tap((caseDefinitionKey: string) =>\n this.searchFieldsService.setCaseDefinitionKey(caseDefinitionKey)\n )\n );\n\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n\n public readonly searchFields$: Observable<TaskListSearchField[]> = combineLatest([\n this.caseDefinitionKey$,\n this._refresh$,\n this.trasnlateService.stream('key'),\n ]).pipe(\n switchMap(() => this.searchFieldsService.getTaskListSearchFields()),\n map((searchFields: TaskListSearchField[]) => this.mapTranslations(searchFields))\n );\n\n public readonly fields$: Observable<ColumnConfig[]> = this.trasnlateService.stream('key').pipe(\n map(() => [\n {\n key: 'title',\n label: 'searchFieldsOverview.title',\n viewType: ViewType.TEXT,\n },\n {\n key: 'key',\n label: 'searchFieldsOverview.key',\n viewType: ViewType.TEXT,\n },\n {\n key: 'path',\n label: 'searchFieldsOverview.path',\n viewType: ViewType.TEXT,\n },\n {\n key: 'dataTypeTranslation',\n label: 'searchFieldsOverview.dataType',\n viewType: ViewType.TEXT,\n },\n {\n key: 'fieldTypeTranslation',\n label: 'searchFieldsOverview.fieldType',\n viewType: ViewType.TEXT,\n },\n ])\n );\n\n public readonly deleteModalOpen$ = new BehaviorSubject<boolean>(false);\n public readonly fieldModalOpen$ = new BehaviorSubject<boolean>(false);\n public readonly itemToDelete$ = new BehaviorSubject<TaskListSearchField | null>(null);\n public readonly prefillData$ = new BehaviorSubject<TaskListSearchField | null>(null);\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n label: 'interface.edit',\n callback: this.editField.bind(this),\n type: 'normal',\n },\n {\n label: 'interface.delete',\n callback: this.deleteField.bind(this),\n type: 'danger',\n },\n ];\n\n constructor(\n private readonly documentService: DocumentService,\n private readonly route: ActivatedRoute,\n private readonly searchFieldsService: TaskManagementSearchFieldsService,\n private readonly trasnlateService: TranslateService\n ) {}\n\n public editField(item: TaskListSearchField): void {\n if (!!item.dropdownDataProvider) {\n this.documentService\n .getDropdownData(item.dropdownDataProvider, item.ownerId, item.key)\n .pipe(take(1))\n .subscribe(dropdownValues => {\n item.dropdownValues = dropdownValues as TaskListSearchDropdownValue;\n this.prefillData$.next(item);\n this.fieldModalOpen$.next(true);\n });\n\n return;\n }\n this.prefillData$.next(item);\n this.fieldModalOpen$.next(true);\n }\n\n public onItemsReordered(event): void {\n this.searchFieldsService\n .orderTaskListSearchFields(event)\n .pipe(take(1))\n .subscribe(() => this._refresh$.next(null));\n }\n\n public onAddButtonClick(): void {\n this.fieldModalOpen$.next(true);\n }\n\n public onCloseEvent(\n searchField: TaskListSearchField | null,\n prefillData: TaskListSearchField | null\n ): void {\n this.fieldModalOpen$.next(false);\n this.prefillData$.next(null);\n if (!searchField) return;\n\n const hasDropdownValues: boolean =\n searchField.fieldType === TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN ||\n searchField.fieldType === TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN;\n\n (!prefillData\n ? this.searchFieldsService.createTaskListSearchField(searchField)\n : this.searchFieldsService.updateTaskListSearchField(searchField)\n )\n .pipe(\n take(1),\n switchMap((field: TaskListSearchField) => {\n return hasDropdownValues\n ? this.documentService.postDropdownData(\n field.dropdownDataProvider ?? '',\n field.ownerId,\n field.key,\n searchField.dropdownValues ?? {}\n )\n : of(field);\n })\n )\n .subscribe(() => this._refresh$.next(null));\n }\n\n public onDeleteFieldConfirm(item: TaskListSearchField | null): void {\n if (!item) return;\n\n combineLatest([\n this.searchFieldsService.deleteTaskListSearchField(item.key),\n item.dropdownDataProvider\n ? this.documentService.deleteDropdownData(item.dropdownDataProvider, item.ownerId, item.key)\n : of(null),\n ])\n .pipe(take(1))\n .subscribe(() => this._refresh$.next(null));\n }\n\n private deleteField(item: TaskListSearchField): void {\n this.itemToDelete$.next(item);\n this.deleteModalOpen$.next(true);\n }\n\n private mapTranslations(\n searchFields: TaskListSearchField[]\n ): (TaskListSearchField & {dataTypeTranslation: string; fieldTypeTranslation: string})[] {\n return searchFields.map((searchField: TaskListSearchField) => ({\n ...searchField,\n dataTypeTranslation: this.trasnlateService.instant(\n `searchFields.${searchField.dataType.toLowerCase()}`\n ),\n fieldTypeTranslation: this.trasnlateService.instant(\n `searchFieldsOverview.${this.fieldTypeTranslation(searchField.fieldType)}`\n ),\n }));\n }\n\n private fieldTypeTranslation(fieldType: TaskListSearchFieldFieldType): string {\n switch (fieldType) {\n case TaskListSearchFieldFieldType.SINGLE_SELECT_DROPDOWN:\n return 'single-select-dropdown';\n case TaskListSearchFieldFieldType.MULTI_SELECT_DROPDOWN:\n return 'multi-select-dropdown';\n default:\n return fieldType.toLowerCase();\n }\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\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 [caseDefinitionKey]=\"caseDefinitionKey$ | 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","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {CarbonListModule} from '@valtimo/components';\nimport {TabsModule} from 'carbon-components-angular';\nimport {TaskManagementTab} from '../../models';\nimport {TaskManagementService} from '../../services';\nimport {TaskManagementColumnsComponent} from '../task-management-columns/task-management-columns.component';\nimport {TaskManagementSearchFieldsComponent} from '../task-management-search-fields/task-management-search-fields.component';\n\n@Component({\n templateUrl: './task-management-detail.component.html',\n styleUrl: './task-management-detail.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n CarbonListModule,\n TranslateModule,\n TabsModule,\n TaskManagementColumnsComponent,\n TaskManagementSearchFieldsComponent,\n ],\n providers: [TaskManagementService],\n})\nexport class TaskManagementDetailComponent {\n public readonly activeTab$ = this.taskManagementService.activeTab$;\n\n public readonly TaskManagementTab = TaskManagementTab;\n\n constructor(private readonly taskManagementService: TaskManagementService) {}\n\n public setActiveTab(tab: TaskManagementTab): void {\n this.taskManagementService.setActiveTab(tab);\n }\n}\n","<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@if (activeTab$ | async; as activeTab) {\n <cds-tabs type=\"contained\">\n <cds-tab\n [active]=\"activeTab === TaskManagementTab.COLUMNS\"\n [heading]=\"'taskManagement.columns' | translate\"\n (selected)=\"setActiveTab(TaskManagementTab.COLUMNS)\"\n >\n <valtimo-task-management-columns *ngIf=\"activeTab === TaskManagementTab.COLUMNS\">\n </valtimo-task-management-columns>\n </cds-tab>\n\n <cds-tab\n [active]=\"activeTab === TaskManagementTab.SEARCH_FIELDS\"\n [heading]=\"'taskManagement.searchFields' | translate\"\n (selected)=\"setActiveTab(TaskManagementTab.SEARCH_FIELDS)\"\n >\n <valtimo-task-management-search-fields *ngIf=\"activeTab === TaskManagementTab.SEARCH_FIELDS\">\n </valtimo-task-management-search-fields>\n </cds-tab>\n </cds-tabs>\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './task-management-column-modal/task-management-column-modal.component';\nexport * from './task-management-columns/task-management-columns.component';\nexport * from './task-management-detail/task-management-detail.component';\nexport * from './task-management-search-fields/task-management-search-fields.component';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of task\n */\n\nexport * from './lib/components';\nexport * from './lib/models';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2.TaskManagementApiService","i4","i5","i3","i6","distinctUntilChanged","i2","i3.TaskManagementSearchFieldsService","i7","i1.TaskManagementService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@valtimo/task-management",
|
|
3
3
|
"license": "EUPL-1.2",
|
|
4
|
-
"version": "13.
|
|
4
|
+
"version": "13.37.0",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/common": "19.2.
|
|
7
|
-
"@angular/core": "19.2.
|
|
6
|
+
"@angular/common": "19.2.25",
|
|
7
|
+
"@angular/core": "19.2.25"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"tslib": "2.8.1",
|
|
11
|
-
"lodash": "4.
|
|
11
|
+
"lodash": "4.18.1"
|
|
12
12
|
},
|
|
13
13
|
"module": "fesm2022/valtimo-task-management.mjs",
|
|
14
14
|
"typings": "index.d.ts",
|