@valtimo/layout 13.24.1 → 13.25.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.
Files changed (23) hide show
  1. package/fesm2022/valtimo-layout.mjs +97 -20
  2. package/fesm2022/valtimo-layout.mjs.map +1 -1
  3. package/lib/components/widget-management/management-content/fields/column/widget-management-fields-column.component.d.ts +6 -0
  4. package/lib/components/widget-management/management-content/fields/column/widget-management-fields-column.component.d.ts.map +1 -1
  5. package/lib/components/widget-management/management-content/fields/widget-management-fields.component.d.ts +6 -0
  6. package/lib/components/widget-management/management-content/fields/widget-management-fields.component.d.ts.map +1 -1
  7. package/lib/components/widget-management/management-divider-modal/widget-management-divider-modal.component.d.ts +5 -0
  8. package/lib/components/widget-management/management-divider-modal/widget-management-divider-modal.component.d.ts.map +1 -1
  9. package/lib/components/widget-management/management-editor/widget-management-editor.component.d.ts +4 -0
  10. package/lib/components/widget-management/management-editor/widget-management-editor.component.d.ts.map +1 -1
  11. package/lib/components/widget-management/management-wizard/steps/widget-wizard-density-step/widget-wizard-density-step.component.d.ts +4 -0
  12. package/lib/components/widget-management/management-wizard/steps/widget-wizard-density-step/widget-wizard-density-step.component.d.ts.map +1 -1
  13. package/lib/components/widget-management/management-wizard/steps/widget-wizard-type-step/widget-wizard-type-step.component.d.ts +9 -0
  14. package/lib/components/widget-management/management-wizard/steps/widget-wizard-type-step/widget-wizard-type-step.component.d.ts.map +1 -1
  15. package/lib/components/widget-management/management-wizard/steps/widget-wizard-width-step/widget-wizard-width-step.component.d.ts +6 -0
  16. package/lib/components/widget-management/management-wizard/steps/widget-wizard-width-step/widget-wizard-width-step.component.d.ts.map +1 -1
  17. package/lib/components/widget-management/management-wizard/widget-management-wizard.component.d.ts +6 -0
  18. package/lib/components/widget-management/management-wizard/widget-management-wizard.component.d.ts.map +1 -1
  19. package/lib/constants/index.d.ts +1 -0
  20. package/lib/constants/index.d.ts.map +1 -1
  21. package/lib/constants/layout.test-ids.d.ts +54 -0
  22. package/lib/constants/layout.test-ids.d.ts.map +1 -0
  23. package/package.json +1 -1
@@ -11,7 +11,6 @@ import { ViewType, CarbonListModule, EllipsisPipe, MdiIconViewerComponent, FormI
11
11
  import * as i3 from 'carbon-components-angular';
12
12
  import { ButtonModule, InputModule, LayerModule, SkeletonModule, PaginationModel, PaginationModule, TilesModule, IconModule, TimePickerModule, MenuButtonModule, ContextMenuModule, LoadingModule, ModalModule, TooltipModule, ComboBoxModule, DropdownModule, StructuredListModule, ToggleModule, AccordionModule, ProgressIndicatorModule, TabsModule, CheckboxModule, TagModule, Tab, SelectModule as SelectModule$1, PlaceholderModule } from 'carbon-components-angular';
13
13
  import { Subscription, BehaviorSubject, combineLatest, map, tap, switchMap, take, filter as filter$1, Subject, debounceTime, of, startWith, merge, delay } from 'rxjs';
14
- import { TrashCan16, Filter16, Link16, Edit16, ArrowUp16, ArrowDown16, DragVertical16 } from '@carbon/icons';
15
14
  import * as i2 from '@angular/router';
16
15
  import { NavigationEnd, RouterModule } from '@angular/router';
17
16
  import { filter, catchError } from 'rxjs/operators';
@@ -20,6 +19,7 @@ import { getCaseManagementRouteParams, GlobalNotificationComponent, ROLE_ADMIN }
20
19
  import { isEqual, cloneDeep } from 'lodash';
21
20
  import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
22
21
  import * as i1$2 from '@valtimo/form';
22
+ import { TrashCan16, Filter16, Link16, Edit16, ArrowUp16, ArrowDown16, DragVertical16 } from '@carbon/icons';
23
23
  import * as i2$3 from '@angular/common/http';
24
24
  import { HttpParams } from '@angular/common/http';
25
25
  import * as i2$2 from '@valtimo/document';
@@ -199,6 +199,75 @@ const WidgetTypeTags = {
199
199
  */
200
200
  const CUSTOM_WIDGET_TOKEN = new InjectionToken('Specify a component to display per configured custom widget component key.');
201
201
 
202
+ /*
203
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
204
+ *
205
+ * Licensed under EUPL, Version 1.2 (the "License");
206
+ * you may not use this file except in compliance with the License.
207
+ * You may obtain a copy of the License at
208
+ *
209
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
210
+ *
211
+ * Unless required by applicable law or agreed to in writing, software
212
+ * distributed under the License is distributed on an "AS IS" basis,
213
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
214
+ * See the License for the specific language governing permissions and
215
+ * limitations under the License.
216
+ */
217
+ const WIDGET_EDITOR_TEST_IDS = {
218
+ addWidgetButton: 'widgetEditorAddWidgetButton',
219
+ addDividerButton: 'widgetEditorAddDividerButton',
220
+ };
221
+ const WIDGET_WIZARD_TEST_IDS = {
222
+ nextButton: 'widgetWizardNextButton',
223
+ saveButton: 'widgetWizardSaveButton',
224
+ cancelButton: 'widgetWizardCancelButton',
225
+ backButton: 'widgetWizardBackButton',
226
+ };
227
+ const WIDGET_WIZARD_TYPE_TEST_IDS = {
228
+ tileFields: 'widgetWizardTypeTile-fields',
229
+ tileCustom: 'widgetWizardTypeTile-custom',
230
+ tileFormio: 'widgetWizardTypeTile-formio',
231
+ tileTable: 'widgetWizardTypeTile-table',
232
+ tileInteractiveTable: 'widgetWizardTypeTile-interactive-table',
233
+ tileCollection: 'widgetWizardTypeTile-collection',
234
+ tileMap: 'widgetWizardTypeTile-map',
235
+ };
236
+ const WIDGET_WIZARD_WIDTH_TEST_IDS = {
237
+ tileSmall: 'widgetWizardWidthTile-small',
238
+ tileMedium: 'widgetWizardWidthTile-medium',
239
+ tileLarge: 'widgetWizardWidthTile-large',
240
+ tileXtraLarge: 'widgetWizardWidthTile-xtraLarge',
241
+ };
242
+ const WIDGET_WIZARD_DENSITY_TEST_IDS = {
243
+ tileDefault: 'widgetWizardDensityTile-default',
244
+ tileCompact: 'widgetWizardDensityTile-compact',
245
+ };
246
+ const WIDGET_WIZARD_APPEARANCE_TEST_IDS = {
247
+ tileWhite: 'widgetWizardAppearanceTile-WHITE',
248
+ tileBlue: 'widgetWizardAppearanceTile-BLUE',
249
+ tileGreen: 'widgetWizardAppearanceTile-GREEN',
250
+ tileYellow: 'widgetWizardAppearanceTile-YELLOW',
251
+ tileOrange: 'widgetWizardAppearanceTile-ORANGE',
252
+ tileRed: 'widgetWizardAppearanceTile-RED',
253
+ tileBrown: 'widgetWizardAppearanceTile-BROWN',
254
+ tileTurquoise: 'widgetWizardAppearanceTile-TURQOISE',
255
+ tilePurple: 'widgetWizardAppearanceTile-PURPLE',
256
+ tilePeriwinkle: 'widgetWizardAppearanceTile-PERIWINKLE',
257
+ tileHighContrast: 'widgetWizardAppearanceTile-HIGHCONTRAST',
258
+ };
259
+ const WIDGET_DIVIDER_MODAL_TEST_IDS = {
260
+ titleInput: 'widgetDividerModalTitleInput',
261
+ createButton: 'widgetDividerModalCreateButton',
262
+ cancelButton: 'widgetDividerModalCancelButton',
263
+ };
264
+ const WIDGET_CONTENT_FIELDS_TEST_IDS = {
265
+ widgetTitleInput: 'widgetContentFieldsWidgetTitle',
266
+ fieldTitleInput: 'widgetContentFieldsFieldTitle',
267
+ displayTypeDropdown: 'widgetContentFieldsDisplayType',
268
+ valuePathSelector: 'widgetContentFieldsValuePath',
269
+ };
270
+
202
271
  /*
203
272
  * Copyright 2015-2025 Ritense BV, the Netherlands.
204
273
  *
@@ -2342,6 +2411,7 @@ class WidgetManagementDividerModalComponent {
2342
2411
  constructor(fb, iconService) {
2343
2412
  this.fb = fb;
2344
2413
  this.iconService = iconService;
2414
+ this.testIds = WIDGET_DIVIDER_MODAL_TEST_IDS;
2345
2415
  this._open = false;
2346
2416
  this.usedKeys = [];
2347
2417
  this.dividerForm = this.fb.group({
@@ -2394,7 +2464,7 @@ class WidgetManagementDividerModalComponent {
2394
2464
  }
2395
2465
  }
2396
2466
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetManagementDividerModalComponent, deps: [{ token: i1$3.FormBuilder }, { token: i3.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
2397
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: WidgetManagementDividerModalComponent, isStandalone: true, selector: "valtimo-widget-management-divider-modal", inputs: { modalMode: "modalMode", open: "open", widgets: "widgets", usedKeys: "usedKeys", 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\n<cds-modal valtimoCdsModal showFooter=\"true\" [open]=\"open\" (close)=\"onCloseModal()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'widgetTabManagement.list.dividerModal.' + modalMode + 'DividerTitle' | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"dividerForm\" cdsModalContent>\n <cds-label>\n {{ 'widgetTabManagement.list.dividerModal.dividerTitleLabel' | translate }}\n\n <input\n class=\"title-input\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{\n 'widgetTabManagement.list.dividerModal.dividerTitlePlaceholder' | translate\n }}\"\n [cdsLayer]=\"1\"\n [attr.modal-primary-focus]=\"true\"\n (keyup)=\"onFocusOut()\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n labelTranslationKey=\"widgetTabManagement.list.dividerModal.dividerKeyLabel\"\n placeholderTranslationKey=\"widgetTabManagement.list.dividerModal.dividerKeyPlaceholder\"\n >\n </valtimo-auto-key-input>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onCloseModal()\">\n {{ 'caseManagement.allVersionsModal.closeButton' | translate }}\n </button>\n\n <button [disabled]=\"!dividerForm.valid\" cdsButton=\"primary\" (click)=\"onCloseModal(true)\">\n {{ buttonLabel | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".divider-key-wrapper{display:flex;flex:1 1 auto;inline-size:100%}.title-input{margin-bottom:32px}\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: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "component", type: AutoKeyInputComponent, selector: "valtimo-auto-key-input", inputs: ["labelTranslationKey", "placeholderTranslationKey", "mode", "usedKeys", "sourceText"] }] }); }
2467
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: WidgetManagementDividerModalComponent, isStandalone: true, selector: "valtimo-widget-management-divider-modal", inputs: { modalMode: "modalMode", open: "open", widgets: "widgets", usedKeys: "usedKeys", 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\n<cds-modal valtimoCdsModal showFooter=\"true\" [open]=\"open\" (close)=\"onCloseModal()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'widgetTabManagement.list.dividerModal.' + modalMode + 'DividerTitle' | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"dividerForm\" cdsModalContent>\n <cds-label>\n {{ 'widgetTabManagement.list.dividerModal.dividerTitleLabel' | translate }}\n\n <input\n class=\"title-input\"\n formControlName=\"title\"\n cdsText\n [attr.data-test-id]=\"testIds.titleInput\"\n placeholder=\"{{\n 'widgetTabManagement.list.dividerModal.dividerTitlePlaceholder' | translate\n }}\"\n [cdsLayer]=\"1\"\n [attr.modal-primary-focus]=\"true\"\n (keyup)=\"onFocusOut()\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n labelTranslationKey=\"widgetTabManagement.list.dividerModal.dividerKeyLabel\"\n placeholderTranslationKey=\"widgetTabManagement.list.dividerModal.dividerKeyPlaceholder\"\n >\n </valtimo-auto-key-input>\n </form>\n\n <cds-modal-footer>\n <button [attr.data-test-id]=\"testIds.cancelButton\" cdsButton=\"secondary\" (click)=\"onCloseModal()\">\n {{ 'caseManagement.allVersionsModal.closeButton' | translate }}\n </button>\n\n <button [attr.data-test-id]=\"testIds.createButton\" [disabled]=\"!dividerForm.valid\" cdsButton=\"primary\" (click)=\"onCloseModal(true)\">\n {{ buttonLabel | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".divider-key-wrapper{display:flex;flex:1 1 auto;inline-size:100%}.title-input{margin-bottom:32px}\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: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "component", type: AutoKeyInputComponent, selector: "valtimo-auto-key-input", inputs: ["labelTranslationKey", "placeholderTranslationKey", "mode", "usedKeys", "sourceText"] }] }); }
2398
2468
  }
2399
2469
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetManagementDividerModalComponent, decorators: [{
2400
2470
  type: Component,
@@ -2409,7 +2479,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2409
2479
  ReactiveFormsModule,
2410
2480
  LayerModule,
2411
2481
  AutoKeyInputComponent,
2412
- ], 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<cds-modal valtimoCdsModal showFooter=\"true\" [open]=\"open\" (close)=\"onCloseModal()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'widgetTabManagement.list.dividerModal.' + modalMode + 'DividerTitle' | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"dividerForm\" cdsModalContent>\n <cds-label>\n {{ 'widgetTabManagement.list.dividerModal.dividerTitleLabel' | translate }}\n\n <input\n class=\"title-input\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{\n 'widgetTabManagement.list.dividerModal.dividerTitlePlaceholder' | translate\n }}\"\n [cdsLayer]=\"1\"\n [attr.modal-primary-focus]=\"true\"\n (keyup)=\"onFocusOut()\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n labelTranslationKey=\"widgetTabManagement.list.dividerModal.dividerKeyLabel\"\n placeholderTranslationKey=\"widgetTabManagement.list.dividerModal.dividerKeyPlaceholder\"\n >\n </valtimo-auto-key-input>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onCloseModal()\">\n {{ 'caseManagement.allVersionsModal.closeButton' | translate }}\n </button>\n\n <button [disabled]=\"!dividerForm.valid\" cdsButton=\"primary\" (click)=\"onCloseModal(true)\">\n {{ buttonLabel | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".divider-key-wrapper{display:flex;flex:1 1 auto;inline-size:100%}.title-input{margin-bottom:32px}\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"] }]
2482
+ ], 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<cds-modal valtimoCdsModal showFooter=\"true\" [open]=\"open\" (close)=\"onCloseModal()\">\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'widgetTabManagement.list.dividerModal.' + modalMode + 'DividerTitle' | translate }}\n </h3>\n </cds-modal-header>\n\n <form [formGroup]=\"dividerForm\" cdsModalContent>\n <cds-label>\n {{ 'widgetTabManagement.list.dividerModal.dividerTitleLabel' | translate }}\n\n <input\n class=\"title-input\"\n formControlName=\"title\"\n cdsText\n [attr.data-test-id]=\"testIds.titleInput\"\n placeholder=\"{{\n 'widgetTabManagement.list.dividerModal.dividerTitlePlaceholder' | translate\n }}\"\n [cdsLayer]=\"1\"\n [attr.modal-primary-focus]=\"true\"\n (keyup)=\"onFocusOut()\"\n />\n </cds-label>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n labelTranslationKey=\"widgetTabManagement.list.dividerModal.dividerKeyLabel\"\n placeholderTranslationKey=\"widgetTabManagement.list.dividerModal.dividerKeyPlaceholder\"\n >\n </valtimo-auto-key-input>\n </form>\n\n <cds-modal-footer>\n <button [attr.data-test-id]=\"testIds.cancelButton\" cdsButton=\"secondary\" (click)=\"onCloseModal()\">\n {{ 'caseManagement.allVersionsModal.closeButton' | translate }}\n </button>\n\n <button [attr.data-test-id]=\"testIds.createButton\" [disabled]=\"!dividerForm.valid\" cdsButton=\"primary\" (click)=\"onCloseModal(true)\">\n {{ buttonLabel | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".divider-key-wrapper{display:flex;flex:1 1 auto;inline-size:100%}.title-input{margin-bottom:32px}\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"] }]
2413
2483
  }], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: i3.IconService }], propDecorators: { modalMode: [{
2414
2484
  type: Input
2415
2485
  }], open: [{
@@ -2861,6 +2931,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2861
2931
  class WidgetWizardDensityStepComponent {
2862
2932
  constructor(widgetWizardService) {
2863
2933
  this.widgetWizardService = widgetWizardService;
2934
+ this.testIds = WIDGET_WIZARD_DENSITY_TEST_IDS;
2864
2935
  this.WidgetDensity = WidgetDensity;
2865
2936
  this.$widgetDensity = this.widgetWizardService.$widgetDensity;
2866
2937
  }
@@ -2868,11 +2939,11 @@ class WidgetWizardDensityStepComponent {
2868
2939
  this.widgetWizardService.$widgetDensity.set(event.value);
2869
2940
  }
2870
2941
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetWizardDensityStepComponent, deps: [{ token: WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
2871
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: WidgetWizardDensityStepComponent, isStandalone: true, selector: "ng-component", 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"WidgetDensity.DEFAULT\"\n [selected]=\"$widgetDensity() === WidgetDensity.DEFAULT\"\n >\n <h3>{{ 'widgetTabManagement.density.default.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.density.default.description' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/density/default.svg\"\n [alt]=\"'widgetTabManagement.density.default.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"WidgetDensity.COMPACT\"\n [selected]=\"$widgetDensity() === WidgetDensity.COMPACT\"\n >\n <h3>{{ 'widgetTabManagement.density.compact.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.density.compact.description' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/density/compact.svg\"\n [alt]=\"'widgetTabManagement.density.compact.title' | translate\"\n />\n </cds-selection-tile>\n</cds-tile-group>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i3.SelectionTile, selector: "cds-selection-tile, ibm-selection-tile", inputs: ["theme", "id", "selected", "value", "disabled"], outputs: ["change"] }, { kind: "component", type: i3.TileGroup, selector: "cds-tile-group, ibm-tile-group", inputs: ["name", "multiple", "legend"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2942
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: WidgetWizardDensityStepComponent, isStandalone: true, selector: "ng-component", 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileDefault\"\n [value]=\"WidgetDensity.DEFAULT\"\n [selected]=\"$widgetDensity() === WidgetDensity.DEFAULT\"\n >\n <h3>{{ 'widgetTabManagement.density.default.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.density.default.description' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/density/default.svg\"\n [alt]=\"'widgetTabManagement.density.default.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileCompact\"\n [value]=\"WidgetDensity.COMPACT\"\n [selected]=\"$widgetDensity() === WidgetDensity.COMPACT\"\n >\n <h3>{{ 'widgetTabManagement.density.compact.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.density.compact.description' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/density/compact.svg\"\n [alt]=\"'widgetTabManagement.density.compact.title' | translate\"\n />\n </cds-selection-tile>\n</cds-tile-group>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i3.SelectionTile, selector: "cds-selection-tile, ibm-selection-tile", inputs: ["theme", "id", "selected", "value", "disabled"], outputs: ["change"] }, { kind: "component", type: i3.TileGroup, selector: "cds-tile-group, ibm-tile-group", inputs: ["name", "multiple", "legend"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2872
2943
  }
2873
2944
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetWizardDensityStepComponent, decorators: [{
2874
2945
  type: Component,
2875
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule, TilesModule], 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"WidgetDensity.DEFAULT\"\n [selected]=\"$widgetDensity() === WidgetDensity.DEFAULT\"\n >\n <h3>{{ 'widgetTabManagement.density.default.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.density.default.description' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/density/default.svg\"\n [alt]=\"'widgetTabManagement.density.default.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"WidgetDensity.COMPACT\"\n [selected]=\"$widgetDensity() === WidgetDensity.COMPACT\"\n >\n <h3>{{ 'widgetTabManagement.density.compact.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.density.compact.description' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/density/compact.svg\"\n [alt]=\"'widgetTabManagement.density.compact.title' | translate\"\n />\n </cds-selection-tile>\n</cds-tile-group>\n" }]
2946
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule, TilesModule], 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileDefault\"\n [value]=\"WidgetDensity.DEFAULT\"\n [selected]=\"$widgetDensity() === WidgetDensity.DEFAULT\"\n >\n <h3>{{ 'widgetTabManagement.density.default.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.density.default.description' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/density/default.svg\"\n [alt]=\"'widgetTabManagement.density.default.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileCompact\"\n [value]=\"WidgetDensity.COMPACT\"\n [selected]=\"$widgetDensity() === WidgetDensity.COMPACT\"\n >\n <h3>{{ 'widgetTabManagement.density.compact.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.density.compact.description' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/density/compact.svg\"\n [alt]=\"'widgetTabManagement.density.compact.title' | translate\"\n />\n </cds-selection-tile>\n</cds-tile-group>\n" }]
2876
2947
  }], ctorParameters: () => [{ type: WidgetWizardService }] });
2877
2948
 
2878
2949
  /*
@@ -2991,11 +3062,11 @@ class WidgetWizardAppearanceStepComponent {
2991
3062
  this.widgetWizardService.$widgetColor.set(event.value);
2992
3063
  }
2993
3064
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetWizardAppearanceStepComponent, deps: [{ token: WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
2994
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WidgetWizardAppearanceStepComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onColorSelected($event)\"\n class=\"valtimo-widget-wizard-step__content widget-appearance__color-grid\"\n>\n @for (colorTile of colorTiles; track colorTile.color) {\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile widget-appearance__color-tile\"\n [value]=\"colorTile.color\"\n [selected]=\"colorTile.color === $widgetColor()\"\n >\n <h3 class=\"valtimo-widget-wizard-step__tile-title\">\n {{ colorTile.labelKey | translate }}\n </h3>\n\n <img [src]=\"colorTile.illustration\" [alt]=\"colorTile.labelKey | translate\" />\n </cds-selection-tile>\n }\n</cds-tile-group>\n", styles: [":host{display:block}.widget-appearance__color-grid fieldset{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.widget-appearance__color-tile .cds--tile-content{align-items:center;text-align:center}.widget-appearance__color-tile img{width:100%;max-width:200px;align-self:center}\n/*!\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i3.SelectionTile, selector: "cds-selection-tile, ibm-selection-tile", inputs: ["theme", "id", "selected", "value", "disabled"], outputs: ["change"] }, { kind: "component", type: i3.TileGroup, selector: "cds-tile-group, ibm-tile-group", inputs: ["name", "multiple", "legend"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3065
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WidgetWizardAppearanceStepComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onColorSelected($event)\"\n class=\"valtimo-widget-wizard-step__content widget-appearance__color-grid\"\n>\n @for (colorTile of colorTiles; track colorTile.color) {\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile widget-appearance__color-tile\"\n [attr.data-test-id]=\"'widgetWizardAppearanceTile-' + colorTile.color\"\n [value]=\"colorTile.color\"\n [selected]=\"colorTile.color === $widgetColor()\"\n >\n <h3 class=\"valtimo-widget-wizard-step__tile-title\">\n {{ colorTile.labelKey | translate }}\n </h3>\n\n <img [src]=\"colorTile.illustration\" [alt]=\"colorTile.labelKey | translate\" />\n </cds-selection-tile>\n }\n</cds-tile-group>\n", styles: [":host{display:block}.widget-appearance__color-grid fieldset{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.widget-appearance__color-tile .cds--tile-content{align-items:center;text-align:center}.widget-appearance__color-tile img{width:100%;max-width:200px;align-self:center}\n/*!\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i3.SelectionTile, selector: "cds-selection-tile, ibm-selection-tile", inputs: ["theme", "id", "selected", "value", "disabled"], outputs: ["change"] }, { kind: "component", type: i3.TileGroup, selector: "cds-tile-group, ibm-tile-group", inputs: ["name", "multiple", "legend"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2995
3066
  }
2996
3067
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetWizardAppearanceStepComponent, decorators: [{
2997
3068
  type: Component,
2998
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule, TilesModule], template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onColorSelected($event)\"\n class=\"valtimo-widget-wizard-step__content widget-appearance__color-grid\"\n>\n @for (colorTile of colorTiles; track colorTile.color) {\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile widget-appearance__color-tile\"\n [value]=\"colorTile.color\"\n [selected]=\"colorTile.color === $widgetColor()\"\n >\n <h3 class=\"valtimo-widget-wizard-step__tile-title\">\n {{ colorTile.labelKey | translate }}\n </h3>\n\n <img [src]=\"colorTile.illustration\" [alt]=\"colorTile.labelKey | translate\" />\n </cds-selection-tile>\n }\n</cds-tile-group>\n", styles: [":host{display:block}.widget-appearance__color-grid fieldset{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.widget-appearance__color-tile .cds--tile-content{align-items:center;text-align:center}.widget-appearance__color-tile img{width:100%;max-width:200px;align-self:center}\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"] }]
3069
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule, TilesModule], template: "<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onColorSelected($event)\"\n class=\"valtimo-widget-wizard-step__content widget-appearance__color-grid\"\n>\n @for (colorTile of colorTiles; track colorTile.color) {\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile widget-appearance__color-tile\"\n [attr.data-test-id]=\"'widgetWizardAppearanceTile-' + colorTile.color\"\n [value]=\"colorTile.color\"\n [selected]=\"colorTile.color === $widgetColor()\"\n >\n <h3 class=\"valtimo-widget-wizard-step__tile-title\">\n {{ colorTile.labelKey | translate }}\n </h3>\n\n <img [src]=\"colorTile.illustration\" [alt]=\"colorTile.labelKey | translate\" />\n </cds-selection-tile>\n }\n</cds-tile-group>\n", styles: [":host{display:block}.widget-appearance__color-grid fieldset{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.widget-appearance__color-tile .cds--tile-content{align-items:center;text-align:center}.widget-appearance__color-tile img{width:100%;max-width:200px;align-self:center}\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"] }]
2999
3070
  }], ctorParameters: () => [{ type: WidgetWizardService }] });
3000
3071
 
3001
3072
  /*
@@ -3016,6 +3087,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3016
3087
  class WidgetWizardTypeStepComponent {
3017
3088
  constructor(widgetWizardService) {
3018
3089
  this.widgetWizardService = widgetWizardService;
3090
+ this.typeTestIds = WIDGET_WIZARD_TYPE_TEST_IDS;
3019
3091
  this.$availableWidgetTypes = computed(() => {
3020
3092
  const availableTypes = this.widgetWizardService.$availableWidgetTypes();
3021
3093
  return !availableTypes
@@ -3032,11 +3104,11 @@ class WidgetWizardTypeStepComponent {
3032
3104
  this.widgetWizardService.$selectedWidget.set(event.value);
3033
3105
  }
3034
3106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetWizardTypeStepComponent, deps: [{ token: WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
3035
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WidgetWizardTypeStepComponent, isStandalone: true, selector: "ng-component", 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n @for (widgetType of $availableWidgetTypes(); track widgetType.titleKey) {\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"widgetType\"\n [selected]=\"widgetType.type === $selectedWidget()?.type\"\n >\n <h3 class=\"valtimo-widget-wizard-step__tile-title\">{{ widgetType.titleKey | translate }}</h3>\n\n <span>{{ widgetType.descriptionKey | translate }}</span>\n\n <img [src]=\"widgetType.illustrationUrl\" [alt]=\"widgetType.titleKey | translate\" />\n </cds-selection-tile>\n }\n</cds-tile-group>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i3.SelectionTile, selector: "cds-selection-tile, ibm-selection-tile", inputs: ["theme", "id", "selected", "value", "disabled"], outputs: ["change"] }, { kind: "component", type: i3.TileGroup, selector: "cds-tile-group, ibm-tile-group", inputs: ["name", "multiple", "legend"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WidgetWizardTypeStepComponent, isStandalone: true, selector: "ng-component", 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n @for (widgetType of $availableWidgetTypes(); track widgetType.titleKey) {\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"'widgetWizardTypeTile-' + widgetType.type\"\n [value]=\"widgetType\"\n [selected]=\"widgetType.type === $selectedWidget()?.type\"\n >\n <h3 class=\"valtimo-widget-wizard-step__tile-title\">{{ widgetType.titleKey | translate }}</h3>\n\n <span>{{ widgetType.descriptionKey | translate }}</span>\n\n <img [src]=\"widgetType.illustrationUrl\" [alt]=\"widgetType.titleKey | translate\" />\n </cds-selection-tile>\n }\n</cds-tile-group>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i3.SelectionTile, selector: "cds-selection-tile, ibm-selection-tile", inputs: ["theme", "id", "selected", "value", "disabled"], outputs: ["change"] }, { kind: "component", type: i3.TileGroup, selector: "cds-tile-group, ibm-tile-group", inputs: ["name", "multiple", "legend"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3036
3108
  }
3037
3109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetWizardTypeStepComponent, decorators: [{
3038
3110
  type: Component,
3039
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, TranslateModule, TilesModule], 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n @for (widgetType of $availableWidgetTypes(); track widgetType.titleKey) {\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"widgetType\"\n [selected]=\"widgetType.type === $selectedWidget()?.type\"\n >\n <h3 class=\"valtimo-widget-wizard-step__tile-title\">{{ widgetType.titleKey | translate }}</h3>\n\n <span>{{ widgetType.descriptionKey | translate }}</span>\n\n <img [src]=\"widgetType.illustrationUrl\" [alt]=\"widgetType.titleKey | translate\" />\n </cds-selection-tile>\n }\n</cds-tile-group>\n" }]
3111
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, TranslateModule, TilesModule], 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n @for (widgetType of $availableWidgetTypes(); track widgetType.titleKey) {\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"'widgetWizardTypeTile-' + widgetType.type\"\n [value]=\"widgetType\"\n [selected]=\"widgetType.type === $selectedWidget()?.type\"\n >\n <h3 class=\"valtimo-widget-wizard-step__tile-title\">{{ widgetType.titleKey | translate }}</h3>\n\n <span>{{ widgetType.descriptionKey | translate }}</span>\n\n <img [src]=\"widgetType.illustrationUrl\" [alt]=\"widgetType.titleKey | translate\" />\n </cds-selection-tile>\n }\n</cds-tile-group>\n" }]
3040
3112
  }], ctorParameters: () => [{ type: WidgetWizardService }] });
3041
3113
 
3042
3114
  /*
@@ -3057,6 +3129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3057
3129
  class WidgetWizardWidthStepComponent {
3058
3130
  constructor(widgetWizardService) {
3059
3131
  this.widgetWizardService = widgetWizardService;
3132
+ this.testIds = WIDGET_WIZARD_WIDTH_TEST_IDS;
3060
3133
  this.$fieldsColumnsLength = computed(() => this.widgetWizardService.$selectedWidget()?.type === WidgetType.FIELDS
3061
3134
  ? (this.widgetWizardService.$widgetContent()?.['columns']?.length ?? 0)
3062
3135
  : 0);
@@ -3066,11 +3139,11 @@ class WidgetWizardWidthStepComponent {
3066
3139
  this.widgetWizardService.$widgetWidth.set(event.value);
3067
3140
  }
3068
3141
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetWizardWidthStepComponent, deps: [{ token: WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
3069
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: WidgetWizardWidthStepComponent, isStandalone: true, selector: "ng-component", 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"1\"\n [selected]=\"$widgetWidth() === 1\"\n [disabled]=\"$fieldsColumnsLength() > 1\"\n >\n <h3>{{ 'widgetTabManagement.width.small.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.small.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/quarter.svg\"\n [alt]=\"'widgetTabManagement.width.small.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"2\"\n [selected]=\"$widgetWidth() === 2\"\n [disabled]=\"$fieldsColumnsLength() > 2\"\n >\n <h3>{{ 'widgetTabManagement.width.medium.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.medium.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/half.svg\"\n [alt]=\"'widgetTabManagement.width.medium.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"3\"\n [selected]=\"$widgetWidth() === 3\"\n [disabled]=\"$fieldsColumnsLength() > 3\"\n >\n <h3>{{ 'widgetTabManagement.width.large.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.large.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/three-quarters.svg\"\n [alt]=\"'widgetTabManagement.width.large.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"4\"\n [selected]=\"$widgetWidth() === 4\"\n >\n <h3>{{ 'widgetTabManagement.width.xtraLarge.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.xtraLarge.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/full-width.svg\"\n [alt]=\"'widgetTabManagement.width.xtraLarge.title' | translate\"\n />\n </cds-selection-tile>\n</cds-tile-group>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i3.SelectionTile, selector: "cds-selection-tile, ibm-selection-tile", inputs: ["theme", "id", "selected", "value", "disabled"], outputs: ["change"] }, { kind: "component", type: i3.TileGroup, selector: "cds-tile-group, ibm-tile-group", inputs: ["name", "multiple", "legend"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: WidgetWizardWidthStepComponent, isStandalone: true, selector: "ng-component", 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileSmall\"\n [value]=\"1\"\n [selected]=\"$widgetWidth() === 1\"\n [disabled]=\"$fieldsColumnsLength() > 1\"\n >\n <h3>{{ 'widgetTabManagement.width.small.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.small.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/quarter.svg\"\n [alt]=\"'widgetTabManagement.width.small.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileMedium\"\n [value]=\"2\"\n [selected]=\"$widgetWidth() === 2\"\n [disabled]=\"$fieldsColumnsLength() > 2\"\n >\n <h3>{{ 'widgetTabManagement.width.medium.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.medium.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/half.svg\"\n [alt]=\"'widgetTabManagement.width.medium.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileLarge\"\n [value]=\"3\"\n [selected]=\"$widgetWidth() === 3\"\n [disabled]=\"$fieldsColumnsLength() > 3\"\n >\n <h3>{{ 'widgetTabManagement.width.large.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.large.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/three-quarters.svg\"\n [alt]=\"'widgetTabManagement.width.large.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileXtraLarge\"\n [value]=\"4\"\n [selected]=\"$widgetWidth() === 4\"\n >\n <h3>{{ 'widgetTabManagement.width.xtraLarge.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.xtraLarge.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/full-width.svg\"\n [alt]=\"'widgetTabManagement.width.xtraLarge.title' | translate\"\n />\n </cds-selection-tile>\n</cds-tile-group>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i3.SelectionTile, selector: "cds-selection-tile, ibm-selection-tile", inputs: ["theme", "id", "selected", "value", "disabled"], outputs: ["change"] }, { kind: "component", type: i3.TileGroup, selector: "cds-tile-group, ibm-tile-group", inputs: ["name", "multiple", "legend"], outputs: ["selected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3070
3143
  }
3071
3144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetWizardWidthStepComponent, decorators: [{
3072
3145
  type: Component,
3073
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule, TilesModule], 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"1\"\n [selected]=\"$widgetWidth() === 1\"\n [disabled]=\"$fieldsColumnsLength() > 1\"\n >\n <h3>{{ 'widgetTabManagement.width.small.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.small.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/quarter.svg\"\n [alt]=\"'widgetTabManagement.width.small.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"2\"\n [selected]=\"$widgetWidth() === 2\"\n [disabled]=\"$fieldsColumnsLength() > 2\"\n >\n <h3>{{ 'widgetTabManagement.width.medium.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.medium.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/half.svg\"\n [alt]=\"'widgetTabManagement.width.medium.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"3\"\n [selected]=\"$widgetWidth() === 3\"\n [disabled]=\"$fieldsColumnsLength() > 3\"\n >\n <h3>{{ 'widgetTabManagement.width.large.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.large.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/three-quarters.svg\"\n [alt]=\"'widgetTabManagement.width.large.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [value]=\"4\"\n [selected]=\"$widgetWidth() === 4\"\n >\n <h3>{{ 'widgetTabManagement.width.xtraLarge.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.xtraLarge.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/full-width.svg\"\n [alt]=\"'widgetTabManagement.width.xtraLarge.title' | translate\"\n />\n </cds-selection-tile>\n</cds-tile-group>\n" }]
3146
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, TranslateModule, TilesModule], 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<cds-tile-group\n [multiple]=\"false\"\n (selected)=\"onSelectedEvent($event)\"\n class=\"valtimo-widget-wizard-step__content\"\n>\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileSmall\"\n [value]=\"1\"\n [selected]=\"$widgetWidth() === 1\"\n [disabled]=\"$fieldsColumnsLength() > 1\"\n >\n <h3>{{ 'widgetTabManagement.width.small.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.small.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/quarter.svg\"\n [alt]=\"'widgetTabManagement.width.small.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileMedium\"\n [value]=\"2\"\n [selected]=\"$widgetWidth() === 2\"\n [disabled]=\"$fieldsColumnsLength() > 2\"\n >\n <h3>{{ 'widgetTabManagement.width.medium.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.medium.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/half.svg\"\n [alt]=\"'widgetTabManagement.width.medium.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileLarge\"\n [value]=\"3\"\n [selected]=\"$widgetWidth() === 3\"\n [disabled]=\"$fieldsColumnsLength() > 3\"\n >\n <h3>{{ 'widgetTabManagement.width.large.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.large.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/three-quarters.svg\"\n [alt]=\"'widgetTabManagement.width.large.title' | translate\"\n />\n </cds-selection-tile>\n\n <cds-selection-tile\n class=\"valtimo-widget-wizard-step__tile\"\n [attr.data-test-id]=\"testIds.tileXtraLarge\"\n [value]=\"4\"\n [selected]=\"$widgetWidth() === 4\"\n >\n <h3>{{ 'widgetTabManagement.width.xtraLarge.title' | translate }}</h3>\n\n <span>{{ 'widgetTabManagement.width.xtraLarge.subtitle' | translate }}</span>\n\n <img\n src=\"valtimo-layout/img/widget-management/width/full-width.svg\"\n [alt]=\"'widgetTabManagement.width.xtraLarge.title' | translate\"\n />\n </cds-selection-tile>\n</cds-tile-group>\n" }]
3074
3147
  }], ctorParameters: () => [{ type: WidgetWizardService }] });
3075
3148
 
3076
3149
  /*
@@ -3458,6 +3531,7 @@ class WidgetManagementWizardComponent {
3458
3531
  this.keyGeneratorService = keyGeneratorService;
3459
3532
  this.translateService = translateService;
3460
3533
  this.widgetWizardService = widgetWizardService;
3534
+ this.testIds = WIDGET_WIZARD_TEST_IDS;
3461
3535
  this.open = false;
3462
3536
  this.disableDuplicate = false;
3463
3537
  this.closeEvent = new EventEmitter();
@@ -3574,7 +3648,7 @@ class WidgetManagementWizardComponent {
3574
3648
  this.cdr.detectChanges();
3575
3649
  }
3576
3650
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetManagementWizardComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.KeyGeneratorService }, { token: i2$1.TranslateService }, { token: WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
3577
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WidgetManagementWizardComponent, isStandalone: true, selector: "valtimo-widget-management-wizard", inputs: { open: "open", disableDuplicate: "disableDuplicate", editMode: "editMode" }, outputs: { closeEvent: "closeEvent" }, viewQueries: [{ propertyName: "_vcr", first: true, predicate: ["wizardStepRenderer"], descendants: true, read: ViewContainerRef }], 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<cds-modal\n [open]=\"open\"\n showFooter=\"true\"\n size=\"lg\"\n valtimoCdsModal\n class=\"valtimo-widget-management-wizard\"\n (close)=\"onClose()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'widgetTabManagement.wizard.' + (editMode ? 'edit' : 'create') | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-widget-management-wizard__content\">\n <cds-progress-indicator\n [current]=\"$currentStepIndex()\"\n [spacing]=\"'equal'\"\n [steps]=\"steps$ | async\"\n (stepSelected)=\"onStepSelected($event)\"\n >\n </cds-progress-indicator>\n\n <p>{{ stepLabel$ | async }}</p>\n\n <ng-template #wizardStepRenderer></ng-template>\n </section>\n\n <cds-modal-footer class=\"valtimo-widget-management-wizard__footer\">\n <button class=\"valtimo-widget-management-wizard__cancel\" cdsButton=\"ghost\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n @if ($currentStepIndex() !== 0) {\n <button\n class=\"valtimo-widget-management-wizard__back\"\n cdsButton=\"secondary\"\n [disabled]=\"$backButtonDisabled()\"\n (click)=\"onBackButtonClick()\"\n >\n {{ 'interface.back' | translate }}\n </button>\n }\n\n <button\n class=\"valtimo-widget-management-wizard__next\"\n cdsButton=\"primary\"\n [disabled]=\"$nextButtonDisabled()\"\n (click)=\"onNextButtonClick()\"\n >\n {{\n 'interface.' + ($currentStepIndex() === (numberOfSteps$ | async) - 1 ? 'save' : 'next')\n | translate\n }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-widget-management-wizard__content{display:flex;flex-direction:column;gap:32px}.valtimo-widget-management-wizard__footer footer{display:grid;grid-template-columns:repeat(4,1fr);grid-template-areas:\"cancel . back next\"}.valtimo-widget-management-wizard__footer footer button{width:100%}.valtimo-widget-management-wizard__cancel{grid-area:cancel}.valtimo-widget-management-wizard__back{grid-area:back}.valtimo-widget-management-wizard__next{grid-area:next}.valtimo-widget-management-wizard .cds--modal-container{height:88%;background:var(--cds-layer-02)}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__content fieldset{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile{height:100%}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile-content{display:flex;flex-direction:column;max-width:260px;gap:16px;justify-content:space-between}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile:not(.cds--tile--disabled) .cds--tile-content{color:var(--cds-text-primary)}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile-title{font-size:20px}.valtimo-widget-management-wizard .cds--tile--selectable svg{display:none}.valtimo-widget-management-wizard .cds--tile--selectable.cds--tile--is-selected svg{display:block}.valtimo-widget-management-wizard .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: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ProgressIndicatorModule }, { kind: "component", type: i3.ProgressIndicator, selector: "cds-progress-indicator, ibm-progress-indicator", inputs: ["current", "steps", "translations", "orientation", "skeleton", "spacing"], outputs: ["stepSelected"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3651
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WidgetManagementWizardComponent, isStandalone: true, selector: "valtimo-widget-management-wizard", inputs: { open: "open", disableDuplicate: "disableDuplicate", editMode: "editMode" }, outputs: { closeEvent: "closeEvent" }, viewQueries: [{ propertyName: "_vcr", first: true, predicate: ["wizardStepRenderer"], descendants: true, read: ViewContainerRef }], 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<cds-modal\n [open]=\"open\"\n showFooter=\"true\"\n size=\"lg\"\n valtimoCdsModal\n class=\"valtimo-widget-management-wizard\"\n (close)=\"onClose()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'widgetTabManagement.wizard.' + (editMode ? 'edit' : 'create') | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-widget-management-wizard__content\">\n <cds-progress-indicator\n [current]=\"$currentStepIndex()\"\n [spacing]=\"'equal'\"\n [steps]=\"steps$ | async\"\n (stepSelected)=\"onStepSelected($event)\"\n >\n </cds-progress-indicator>\n\n <p>{{ stepLabel$ | async }}</p>\n\n <ng-template #wizardStepRenderer></ng-template>\n </section>\n\n <cds-modal-footer class=\"valtimo-widget-management-wizard__footer\">\n <button class=\"valtimo-widget-management-wizard__cancel\" cdsButton=\"ghost\" [attr.data-test-id]=\"testIds.cancelButton\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n @if ($currentStepIndex() !== 0) {\n <button\n class=\"valtimo-widget-management-wizard__back\"\n cdsButton=\"secondary\"\n [attr.data-test-id]=\"testIds.backButton\"\n [disabled]=\"$backButtonDisabled()\"\n (click)=\"onBackButtonClick()\"\n >\n {{ 'interface.back' | translate }}\n </button>\n }\n\n <button\n class=\"valtimo-widget-management-wizard__next\"\n cdsButton=\"primary\"\n [attr.data-test-id]=\"$currentStepIndex() === (numberOfSteps$ | async) - 1 ? testIds.saveButton : testIds.nextButton\"\n [disabled]=\"$nextButtonDisabled()\"\n (click)=\"onNextButtonClick()\"\n >\n {{\n 'interface.' + ($currentStepIndex() === (numberOfSteps$ | async) - 1 ? 'save' : 'next')\n | translate\n }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-widget-management-wizard__content{display:flex;flex-direction:column;gap:32px}.valtimo-widget-management-wizard__footer footer{display:grid;grid-template-columns:repeat(4,1fr);grid-template-areas:\"cancel . back next\"}.valtimo-widget-management-wizard__footer footer button{width:100%}.valtimo-widget-management-wizard__cancel{grid-area:cancel}.valtimo-widget-management-wizard__back{grid-area:back}.valtimo-widget-management-wizard__next{grid-area:next}.valtimo-widget-management-wizard .cds--modal-container{height:88%;background:var(--cds-layer-02)}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__content fieldset{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile{height:100%}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile-content{display:flex;flex-direction:column;max-width:260px;gap:16px;justify-content:space-between}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile:not(.cds--tile--disabled) .cds--tile-content{color:var(--cds-text-primary)}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile-title{font-size:20px}.valtimo-widget-management-wizard .cds--tile--selectable svg{display:none}.valtimo-widget-management-wizard .cds--tile--selectable.cds--tile--is-selected svg{display:block}.valtimo-widget-management-wizard .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: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ProgressIndicatorModule }, { kind: "component", type: i3.ProgressIndicator, selector: "cds-progress-indicator, ibm-progress-indicator", inputs: ["current", "steps", "translations", "orientation", "skeleton", "spacing"], outputs: ["stepSelected"] }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3578
3652
  }
3579
3653
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetManagementWizardComponent, decorators: [{
3580
3654
  type: Component,
@@ -3585,7 +3659,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3585
3659
  ModalModule,
3586
3660
  ButtonModule,
3587
3661
  ...WIDGET_STEPS,
3588
- ], 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<cds-modal\n [open]=\"open\"\n showFooter=\"true\"\n size=\"lg\"\n valtimoCdsModal\n class=\"valtimo-widget-management-wizard\"\n (close)=\"onClose()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'widgetTabManagement.wizard.' + (editMode ? 'edit' : 'create') | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-widget-management-wizard__content\">\n <cds-progress-indicator\n [current]=\"$currentStepIndex()\"\n [spacing]=\"'equal'\"\n [steps]=\"steps$ | async\"\n (stepSelected)=\"onStepSelected($event)\"\n >\n </cds-progress-indicator>\n\n <p>{{ stepLabel$ | async }}</p>\n\n <ng-template #wizardStepRenderer></ng-template>\n </section>\n\n <cds-modal-footer class=\"valtimo-widget-management-wizard__footer\">\n <button class=\"valtimo-widget-management-wizard__cancel\" cdsButton=\"ghost\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n @if ($currentStepIndex() !== 0) {\n <button\n class=\"valtimo-widget-management-wizard__back\"\n cdsButton=\"secondary\"\n [disabled]=\"$backButtonDisabled()\"\n (click)=\"onBackButtonClick()\"\n >\n {{ 'interface.back' | translate }}\n </button>\n }\n\n <button\n class=\"valtimo-widget-management-wizard__next\"\n cdsButton=\"primary\"\n [disabled]=\"$nextButtonDisabled()\"\n (click)=\"onNextButtonClick()\"\n >\n {{\n 'interface.' + ($currentStepIndex() === (numberOfSteps$ | async) - 1 ? 'save' : 'next')\n | translate\n }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-widget-management-wizard__content{display:flex;flex-direction:column;gap:32px}.valtimo-widget-management-wizard__footer footer{display:grid;grid-template-columns:repeat(4,1fr);grid-template-areas:\"cancel . back next\"}.valtimo-widget-management-wizard__footer footer button{width:100%}.valtimo-widget-management-wizard__cancel{grid-area:cancel}.valtimo-widget-management-wizard__back{grid-area:back}.valtimo-widget-management-wizard__next{grid-area:next}.valtimo-widget-management-wizard .cds--modal-container{height:88%;background:var(--cds-layer-02)}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__content fieldset{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile{height:100%}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile-content{display:flex;flex-direction:column;max-width:260px;gap:16px;justify-content:space-between}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile:not(.cds--tile--disabled) .cds--tile-content{color:var(--cds-text-primary)}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile-title{font-size:20px}.valtimo-widget-management-wizard .cds--tile--selectable svg{display:none}.valtimo-widget-management-wizard .cds--tile--selectable.cds--tile--is-selected svg{display:block}.valtimo-widget-management-wizard .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"] }]
3662
+ ], 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<cds-modal\n [open]=\"open\"\n showFooter=\"true\"\n size=\"lg\"\n valtimoCdsModal\n class=\"valtimo-widget-management-wizard\"\n (close)=\"onClose()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onClose()\">\n <h3 cdsModalHeaderHeading>\n {{ 'widgetTabManagement.wizard.' + (editMode ? 'edit' : 'create') | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-widget-management-wizard__content\">\n <cds-progress-indicator\n [current]=\"$currentStepIndex()\"\n [spacing]=\"'equal'\"\n [steps]=\"steps$ | async\"\n (stepSelected)=\"onStepSelected($event)\"\n >\n </cds-progress-indicator>\n\n <p>{{ stepLabel$ | async }}</p>\n\n <ng-template #wizardStepRenderer></ng-template>\n </section>\n\n <cds-modal-footer class=\"valtimo-widget-management-wizard__footer\">\n <button class=\"valtimo-widget-management-wizard__cancel\" cdsButton=\"ghost\" [attr.data-test-id]=\"testIds.cancelButton\" (click)=\"onClose()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n @if ($currentStepIndex() !== 0) {\n <button\n class=\"valtimo-widget-management-wizard__back\"\n cdsButton=\"secondary\"\n [attr.data-test-id]=\"testIds.backButton\"\n [disabled]=\"$backButtonDisabled()\"\n (click)=\"onBackButtonClick()\"\n >\n {{ 'interface.back' | translate }}\n </button>\n }\n\n <button\n class=\"valtimo-widget-management-wizard__next\"\n cdsButton=\"primary\"\n [attr.data-test-id]=\"$currentStepIndex() === (numberOfSteps$ | async) - 1 ? testIds.saveButton : testIds.nextButton\"\n [disabled]=\"$nextButtonDisabled()\"\n (click)=\"onNextButtonClick()\"\n >\n {{\n 'interface.' + ($currentStepIndex() === (numberOfSteps$ | async) - 1 ? 'save' : 'next')\n | translate\n }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-widget-management-wizard__content{display:flex;flex-direction:column;gap:32px}.valtimo-widget-management-wizard__footer footer{display:grid;grid-template-columns:repeat(4,1fr);grid-template-areas:\"cancel . back next\"}.valtimo-widget-management-wizard__footer footer button{width:100%}.valtimo-widget-management-wizard__cancel{grid-area:cancel}.valtimo-widget-management-wizard__back{grid-area:back}.valtimo-widget-management-wizard__next{grid-area:next}.valtimo-widget-management-wizard .cds--modal-container{height:88%;background:var(--cds-layer-02)}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__content fieldset{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile{height:100%}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile-content{display:flex;flex-direction:column;max-width:260px;gap:16px;justify-content:space-between}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile .cds--tile:not(.cds--tile--disabled) .cds--tile-content{color:var(--cds-text-primary)}.valtimo-widget-management-wizard .valtimo-widget-wizard-step__tile-title{font-size:20px}.valtimo-widget-management-wizard .cds--tile--selectable svg{display:none}.valtimo-widget-management-wizard .cds--tile--selectable.cds--tile--is-selected svg{display:block}.valtimo-widget-management-wizard .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"] }]
3589
3663
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.KeyGeneratorService }, { type: i2$1.TranslateService }, { type: WidgetWizardService }], propDecorators: { _vcr: [{
3590
3664
  type: ViewChild,
3591
3665
  args: ['wizardStepRenderer', { read: ViewContainerRef }]
@@ -3639,6 +3713,7 @@ class WidgetManagementEditorComponent {
3639
3713
  this.translateService = translateService;
3640
3714
  this.widgetWizardService = widgetWizardService;
3641
3715
  this.widgetManagementService = widgetManagementService;
3716
+ this.testIds = WIDGET_EDITOR_TEST_IDS;
3642
3717
  this.enableWidgetDivider = true;
3643
3718
  this.disableDuplicate$ = new BehaviorSubject(false);
3644
3719
  this.singleWidget$ = new BehaviorSubject(false);
@@ -3859,7 +3934,7 @@ class WidgetManagementEditorComponent {
3859
3934
  }
3860
3935
  }
3861
3936
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetManagementEditorComponent, deps: [{ token: i3.IconService }, { token: i2$1.TranslateService }, { token: WidgetWizardService }, { token: WIDGET_MANAGEMENT_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
3862
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: WidgetManagementEditorComponent, isStandalone: true, selector: "valtimo-widget-management-editor", inputs: { enableWidgetDivider: "enableWidgetDivider", params: "params", availableWidgetTypes: "availableWidgetTypes", disableDuplicate: "disableDuplicate", singleWidget: "singleWidget", defaultWidth: "defaultWidth" }, 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<valtimo-carbon-list\n [actionItems]=\"actionItems$ | async\"\n [fields]=\"fields$ | async\"\n [header]=\"false\"\n [items]=\"widgets$ | async\"\n [dragAndDrop]=\"!(singleWidget$ | async)\"\n [dragAndDropDisabled]=\"$dragAndDropDisabled()\"\n [loading]=\"loading$ | async\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"editWidget($event)\"\n>\n <ng-container carbonToolbarContent>\n <button *ngIf=\"enableWidgetDivider\" cdsButton=\"ghost\" (click)=\"openAddDividerModal()\">\n {{ 'widgetTabManagement.list.addDivider' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"drag--vertical\" size=\"16\"></svg>\n </button>\n\n <ng-container *ngTemplateOutlet=\"addWidgetButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addWidgetButton\"\n [description]=\"\n ((singleWidget$ | async)\n ? 'widgetTabManagement.list.noResultsSingle.description'\n : 'widgetTabManagement.list.noResults.description'\n ) | translate\n \"\n [title]=\"\n ((singleWidget$ | async)\n ? 'widgetTabManagement.list.noResultsSingle.title'\n : 'widgetTabManagement.list.noResults.title'\n ) | translate\n \"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #addWidgetButton>\n <button\n cdsButton=\"primary\"\n (click)=\"openAddModal()\"\n [disabled]=\"(singleWidget$ | async) && ((widgets$ | async) || []).length === 1\"\n >\n {{ 'widgetTabManagement.list.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<valtimo-widget-management-divider-modal\n [open]=\"$isDividerModalOpen()\"\n [modalMode]=\"$dividerModalMode()\"\n [prefillData]=\"dividerDefinition$ | async\"\n [usedKeys]=\"usedKeys$ | async\"\n (closeEvent)=\"onCloseEvent($event)\"\n></valtimo-widget-management-divider-modal>\n\n<valtimo-widget-management-wizard\n [editMode]=\"$isEditMode()\"\n [open]=\"$isWizardOpen()\"\n [disableDuplicate]=\"disableDuplicate$ | async\"\n (closeEvent)=\"onCloseEvent($event)\"\n></valtimo-widget-management-wizard>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"Are you sure you want to delete this widget?\"\n [outputOnConfirm]=\"$deleteWidget()\"\n [showModalSubject$]=\"deleteModalOpen$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i1.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: i1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: WidgetManagementWizardComponent, selector: "valtimo-widget-management-wizard", inputs: ["open", "disableDuplicate", "editMode"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i1.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: WidgetManagementDividerModalComponent, selector: "valtimo-widget-management-divider-modal", inputs: ["modalMode", "open", "widgets", "usedKeys", "prefillData"], outputs: ["closeEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3937
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: WidgetManagementEditorComponent, isStandalone: true, selector: "valtimo-widget-management-editor", inputs: { enableWidgetDivider: "enableWidgetDivider", params: "params", availableWidgetTypes: "availableWidgetTypes", disableDuplicate: "disableDuplicate", singleWidget: "singleWidget", defaultWidth: "defaultWidth" }, 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<valtimo-carbon-list\n [actionItems]=\"actionItems$ | async\"\n [fields]=\"fields$ | async\"\n [header]=\"false\"\n [items]=\"widgets$ | async\"\n [dragAndDrop]=\"!(singleWidget$ | async)\"\n [dragAndDropDisabled]=\"$dragAndDropDisabled()\"\n [loading]=\"loading$ | async\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"editWidget($event)\"\n>\n <ng-container carbonToolbarContent>\n <button *ngIf=\"enableWidgetDivider\" cdsButton=\"ghost\" [attr.data-test-id]=\"testIds.addDividerButton\" (click)=\"openAddDividerModal()\">\n {{ 'widgetTabManagement.list.addDivider' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"drag--vertical\" size=\"16\"></svg>\n </button>\n\n <ng-container *ngTemplateOutlet=\"addWidgetButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addWidgetButton\"\n [description]=\"\n ((singleWidget$ | async)\n ? 'widgetTabManagement.list.noResultsSingle.description'\n : 'widgetTabManagement.list.noResults.description'\n ) | translate\n \"\n [title]=\"\n ((singleWidget$ | async)\n ? 'widgetTabManagement.list.noResultsSingle.title'\n : 'widgetTabManagement.list.noResults.title'\n ) | translate\n \"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #addWidgetButton>\n <button\n cdsButton=\"primary\"\n [attr.data-test-id]=\"testIds.addWidgetButton\"\n (click)=\"openAddModal()\"\n [disabled]=\"(singleWidget$ | async) && ((widgets$ | async) || []).length === 1\"\n >\n {{ 'widgetTabManagement.list.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<valtimo-widget-management-divider-modal\n [open]=\"$isDividerModalOpen()\"\n [modalMode]=\"$dividerModalMode()\"\n [prefillData]=\"dividerDefinition$ | async\"\n [usedKeys]=\"usedKeys$ | async\"\n (closeEvent)=\"onCloseEvent($event)\"\n></valtimo-widget-management-divider-modal>\n\n<valtimo-widget-management-wizard\n [editMode]=\"$isEditMode()\"\n [open]=\"$isWizardOpen()\"\n [disableDuplicate]=\"disableDuplicate$ | async\"\n (closeEvent)=\"onCloseEvent($event)\"\n></valtimo-widget-management-wizard>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"Are you sure you want to delete this widget?\"\n [outputOnConfirm]=\"$deleteWidget()\"\n [showModalSubject$]=\"deleteModalOpen$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i1.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: i1.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: WidgetManagementWizardComponent, selector: "valtimo-widget-management-wizard", inputs: ["open", "disableDuplicate", "editMode"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i1.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "component", type: WidgetManagementDividerModalComponent, selector: "valtimo-widget-management-divider-modal", inputs: ["modalMode", "open", "widgets", "usedKeys", "prefillData"], outputs: ["closeEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3863
3938
  }
3864
3939
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetManagementEditorComponent, decorators: [{
3865
3940
  type: Component,
@@ -3873,7 +3948,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
3873
3948
  WidgetManagementWizardComponent,
3874
3949
  ConfirmationModalModule,
3875
3950
  WidgetManagementDividerModalComponent,
3876
- ], 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<valtimo-carbon-list\n [actionItems]=\"actionItems$ | async\"\n [fields]=\"fields$ | async\"\n [header]=\"false\"\n [items]=\"widgets$ | async\"\n [dragAndDrop]=\"!(singleWidget$ | async)\"\n [dragAndDropDisabled]=\"$dragAndDropDisabled()\"\n [loading]=\"loading$ | async\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"editWidget($event)\"\n>\n <ng-container carbonToolbarContent>\n <button *ngIf=\"enableWidgetDivider\" cdsButton=\"ghost\" (click)=\"openAddDividerModal()\">\n {{ 'widgetTabManagement.list.addDivider' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"drag--vertical\" size=\"16\"></svg>\n </button>\n\n <ng-container *ngTemplateOutlet=\"addWidgetButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addWidgetButton\"\n [description]=\"\n ((singleWidget$ | async)\n ? 'widgetTabManagement.list.noResultsSingle.description'\n : 'widgetTabManagement.list.noResults.description'\n ) | translate\n \"\n [title]=\"\n ((singleWidget$ | async)\n ? 'widgetTabManagement.list.noResultsSingle.title'\n : 'widgetTabManagement.list.noResults.title'\n ) | translate\n \"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #addWidgetButton>\n <button\n cdsButton=\"primary\"\n (click)=\"openAddModal()\"\n [disabled]=\"(singleWidget$ | async) && ((widgets$ | async) || []).length === 1\"\n >\n {{ 'widgetTabManagement.list.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<valtimo-widget-management-divider-modal\n [open]=\"$isDividerModalOpen()\"\n [modalMode]=\"$dividerModalMode()\"\n [prefillData]=\"dividerDefinition$ | async\"\n [usedKeys]=\"usedKeys$ | async\"\n (closeEvent)=\"onCloseEvent($event)\"\n></valtimo-widget-management-divider-modal>\n\n<valtimo-widget-management-wizard\n [editMode]=\"$isEditMode()\"\n [open]=\"$isWizardOpen()\"\n [disableDuplicate]=\"disableDuplicate$ | async\"\n (closeEvent)=\"onCloseEvent($event)\"\n></valtimo-widget-management-wizard>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"Are you sure you want to delete this widget?\"\n [outputOnConfirm]=\"$deleteWidget()\"\n [showModalSubject$]=\"deleteModalOpen$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n" }]
3951
+ ], 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<valtimo-carbon-list\n [actionItems]=\"actionItems$ | async\"\n [fields]=\"fields$ | async\"\n [header]=\"false\"\n [items]=\"widgets$ | async\"\n [dragAndDrop]=\"!(singleWidget$ | async)\"\n [dragAndDropDisabled]=\"$dragAndDropDisabled()\"\n [loading]=\"loading$ | async\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"editWidget($event)\"\n>\n <ng-container carbonToolbarContent>\n <button *ngIf=\"enableWidgetDivider\" cdsButton=\"ghost\" [attr.data-test-id]=\"testIds.addDividerButton\" (click)=\"openAddDividerModal()\">\n {{ 'widgetTabManagement.list.addDivider' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"drag--vertical\" size=\"16\"></svg>\n </button>\n\n <ng-container *ngTemplateOutlet=\"addWidgetButton\"></ng-container>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addWidgetButton\"\n [description]=\"\n ((singleWidget$ | async)\n ? 'widgetTabManagement.list.noResultsSingle.description'\n : 'widgetTabManagement.list.noResults.description'\n ) | translate\n \"\n [title]=\"\n ((singleWidget$ | async)\n ? 'widgetTabManagement.list.noResultsSingle.title'\n : 'widgetTabManagement.list.noResults.title'\n ) | translate\n \"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<ng-template #addWidgetButton>\n <button\n cdsButton=\"primary\"\n [attr.data-test-id]=\"testIds.addWidgetButton\"\n (click)=\"openAddModal()\"\n [disabled]=\"(singleWidget$ | async) && ((widgets$ | async) || []).length === 1\"\n >\n {{ 'widgetTabManagement.list.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<valtimo-widget-management-divider-modal\n [open]=\"$isDividerModalOpen()\"\n [modalMode]=\"$dividerModalMode()\"\n [prefillData]=\"dividerDefinition$ | async\"\n [usedKeys]=\"usedKeys$ | async\"\n (closeEvent)=\"onCloseEvent($event)\"\n></valtimo-widget-management-divider-modal>\n\n<valtimo-widget-management-wizard\n [editMode]=\"$isEditMode()\"\n [open]=\"$isWizardOpen()\"\n [disableDuplicate]=\"disableDuplicate$ | async\"\n (closeEvent)=\"onCloseEvent($event)\"\n></valtimo-widget-management-wizard>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"Are you sure you want to delete this widget?\"\n [outputOnConfirm]=\"$deleteWidget()\"\n [showModalSubject$]=\"deleteModalOpen$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n" }]
3877
3952
  }], ctorParameters: () => [{ type: i3.IconService }, { type: i2$1.TranslateService }, { type: WidgetWizardService }, { type: undefined, decorators: [{
3878
3953
  type: Inject,
3879
3954
  args: [WIDGET_MANAGEMENT_SERVICE]
@@ -4458,6 +4533,7 @@ class WidgetManagementFieldsColumnComponent {
4458
4533
  this.widgetFieldsService = widgetFieldsService;
4459
4534
  this.widgetWizardService = widgetWizardService;
4460
4535
  this.widgetManagementService = widgetManagementService;
4536
+ this.testIds = WIDGET_CONTENT_FIELDS_TEST_IDS;
4461
4537
  this.class = 'valtimo-widget-management-field-column';
4462
4538
  this.addTranslateKey = 'widgetTabManagement.content.fields.add';
4463
4539
  this.showHideWhenEmptyCheckbox = false;
@@ -4629,7 +4705,7 @@ class WidgetManagementFieldsColumnComponent {
4629
4705
  }));
4630
4706
  }
4631
4707
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetManagementFieldsColumnComponent, deps: [{ token: i1.CdsThemeService }, { token: i0.ChangeDetectorRef }, { token: i1$3.FormBuilder }, { token: i3.IconService }, { token: i2$1.TranslateService }, { token: WidgetFieldsService }, { token: WidgetWizardService }, { token: WIDGET_MANAGEMENT_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
4632
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WidgetManagementFieldsColumnComponent, isStandalone: true, selector: "valtimo-widget-management-fields-column", inputs: { columnData: "columnData", addTranslateKey: "addTranslateKey", fieldWidthDropdown: "fieldWidthDropdown", selectedCollection: "selectedCollection", showHideWhenEmptyCheckbox: "showHideWhenEmptyCheckbox", showSortableCheckbox: "showSortableCheckbox" }, outputs: { columnUpdateEvent: "columnUpdateEvent" }, host: { properties: { "class": "this.class" } }, 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<form\n *ngIf=\"{\n inputTheme: inputTheme$ | async,\n params: params$ | async,\n widgetType: $widgetType() === 'interactive-table' ? 'table' : $widgetType(),\n defaultSortIndex: defaultSortIndexForTemplate$ | async,\n isInteractiveTable: $widgetType() === 'interactive-table',\n } as data\"\n class=\"valtimo-widget-management-field-column\"\n [formGroup]=\"formGroup\"\n>\n <cds-accordion formArrayName=\"rows\" align=\"start\" size=\"sm\">\n @for (formRow of formRows.controls; track $index) {\n <cds-accordion-item\n [title]=\"fieldTitle\"\n [context]=\"{\n count: $count,\n index: $index,\n title: formRow.get('title')?.value,\n defaultSortIndex: data.defaultSortIndex,\n }\"\n [expanded]=\"$index === 0\"\n class=\"valtimo-widget-management-field-column__item\"\n >\n <form [formGroup]=\"formRow\" class=\"valtimo-widget-management-field-column__container\">\n <div\n class=\"valtimo-widget-management-field-column__content\"\n [class.valtimo-widget-management-field-column__content--collection]=\"\n !!fieldWidthDropdown\n \"\n >\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.title' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.' + data.widgetType + '.titleTooltip' | translate\n \"\n >\n </v-input-label>\n\n <input\n cdsText\n cdsLayer=\"2\"\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.titlePlaceholder' | translate\"\n type=\"text\"\n formControlName=\"title\"\n />\n </cds-text-label>\n\n <cds-dropdown\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [label]=\"'widgetTabManagement.content.fields.type' | translate\"\n [dropUp]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.fields.typePlaceholder' | translate\"\n (selected)=\"onTypeSelected(formRow, $event)\"\n formControlName=\"type\"\n >\n <cds-dropdown-list [items]=\"getDisplayItemsSelected(formRow)\"></cds-dropdown-list>\n </cds-dropdown>\n\n <ng-container\n *ngTemplateOutlet=\"fieldWidthDropdown; context: {index: $index}\"\n ></ng-container>\n\n <cds-text-label class=\"valtimo-widget-management-field-column__value-field\">\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.value' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.' + data.widgetType + '.valueTooltip' | translate\n \"\n >\n </v-input-label>\n\n @if ($widgetContext() === 'case') {\n <valtimo-value-path-selector\n formControlName=\"content\"\n [caseDefinitionKey]=\"data.params?.caseDefinitionKey\"\n [caseDefinitionVersionTag]=\"data.params?.caseDefinitionVersionTag\"\n [parentItem]=\"selectedCollection\"\n ></valtimo-value-path-selector>\n } @else {\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.value' | translate\"\n type=\"text\"\n formControlName=\"content\"\n />\n }\n </cds-text-label>\n </div>\n\n <div class=\"valtimo-widget-management-field-column__options\">\n @switch (formRow.get('type').value.id) {\n @case (WidgetDisplayTypeKey.CURRENCY) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.currencyCode' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.currencyCodeTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.currencyCodePlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"currencyCode\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.display' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.displayTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.displayPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"display\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate: {minFractionDigits: 2, maxFractionDigits: 2}\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.digitsInfoPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.DATE) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.format' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.dateFormatTooltip' | translate\"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.DATE_TIME) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.format' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.dateTimeFormatTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.ENUM) {\n <div class=\"valtimo-widget-management-field-column__enum\" formArrayName=\"values\">\n @for (rowValue of formRow.get('values')?.controls; track $index) {\n <form\n [formGroup]=\"rowValue\"\n class=\"valtimo-widget-management-field-column__enum-form\"\n >\n <cds-text-label>\n <v-input-label\n *ngIf=\"$index === 0\"\n [title]=\"'widgetTabManagement.content.fields.enumValue' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.enumValueTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n [attr.data-carbon-theme]=\"data.inputTheme\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.fields.enumValue' | translate\"\n type=\"text\"\n formControlName=\"key\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n *ngIf=\"$index === 0\"\n [title]=\"'widgetTabManagement.content.fields.enumDisplay' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.enumDisplayTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.enumDisplay' | translate\n \"\n type=\"text\"\n formControlName=\"value\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n class=\"valtimo-widget-management-field-column__delete-button enum\"\n (click)=\"onDeleteRowClick($event, formRow.get('values'), $index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"onAddEnumValueClick(formRow.get('values'))\"\n >\n {{ 'widgetTabManagement.content.fields.addEnum' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n }\n @case (WidgetDisplayTypeKey.NUMBER) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate\n : {\n minFractionDigits: 0,\n maxFractionDigits: 3,\n }\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.PERCENT) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate\n : {\n minFractionDigits: 0,\n maxFractionDigits: 0,\n }\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.LINK) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.linkText' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.linkTextTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.linkTextPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"linkText\"\n />\n </cds-text-label>\n }\n }\n\n <cds-text-label\n *ngIf=\"formRow.get('type').value.id === WidgetDisplayTypeKey.TEXT && $isFieldWidget()\"\n >\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.ellipsisCharacterLimit' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.ellipsisCharacterLimitTooltip' | translate\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.ellipsisCharacterLimitPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"ellipsisCharacterLimit\"\n />\n </cds-text-label>\n\n <cds-checkbox *ngIf=\"showHideWhenEmptyCheckbox\" formControlName=\"hideWhenEmpty\">\n {{ 'widgetTabManagement.content.hideWhenEmpty' | translate }}\n </cds-checkbox>\n\n <div\n *ngIf=\"showSortableCheckbox\"\n class=\"valtimo-widget-management-field-column__sorting\"\n >\n <cds-checkbox\n formControlName=\"sortable\"\n (checkedChange)=\"onSortableCheckChange($index, $event)\"\n >\n {{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n\n <v-select\n formControlName=\"defaultSort\"\n [disabled]=\"!formRow.get('sortable')?.value\"\n [items]=\"DEFAULT_SORT_OPTIONS\"\n [dropUp]=\"false\"\n [placeholder]=\"'interface.sorting.noDefault' | translate\"\n [defaultSelectionId]=\"formRow.get('defaultSort')?.value\"\n [warn]=\"\n data.defaultSortIndex !== -1 &&\n data.defaultSortIndex !== $index &&\n !!formRow.get('sortable')?.value\n \"\n [warnText]=\"'widgetTabManagement.content.fields.defaultSortWarning' | translate\"\n (selectedChange)=\"onSelectedDefaultSortChange($index)\"\n ></v-select>\n </div>\n </div>\n </form>\n </cds-accordion-item>\n }\n </cds-accordion>\n\n <button cdsButton=\"primary\" size=\"sm\" (click)=\"addField()\">\n {{ addTranslateKey | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n\n<ng-template\n #fieldTitle\n let-defaultSortIndex=\"defaultSortIndex\"\n let-count=\"count\"\n let-index=\"index\"\n let-title=\"title\"\n>\n <div class=\"valtimo-widget-management-field-column__title\">\n <section>\n {{ title || ('widgetTabManagement.content.fields.titlePlaceholder' | translate) }}\n\n <cds-tag *ngIf=\"$isInteractiveTableWidget() && defaultSortIndex === index\" type=\"blue\">\n {{ 'ikoManagement.defaultSortTitle' | translate }}\n </cds-tag>\n </section>\n\n <button\n cdsButton=\"danger\"\n [disabled]=\"count === 1\"\n [iconOnly]=\"true\"\n (click)=\"onDeleteRowClick($event, formRows, index)\"\n class=\"valtimo-widget-management-field-column__delete-button\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-widget-management-field-column{display:flex;flex-direction:column;gap:16px;background:var(--cds-layer-02)}.valtimo-widget-management-field-column__item,.valtimo-widget-management-field-column__cotainer{background:var(--cds-layer-01)}.valtimo-widget-management-field-column__item .cds--accordion__content{padding-inline-end:20px}.valtimo-widget-management-field-column__container{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-field-column__content{display:grid;grid-template-columns:1fr 180px 1fr;align-items:flex-end;gap:16px}.valtimo-widget-management-field-column__content--collection{grid-template-columns:1fr 180px 180px 1fr}.valtimo-widget-management-field-column__title{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px}.valtimo-widget-management-field-column__delete-button{display:flex;align-items:center;justify-content:center;padding:0;align-self:center}.valtimo-widget-management-field-column__delete-button.enum{align-self:flex-end}.valtimo-widget-management-field-column__path-selector{display:flex;flex-direction:column}.valtimo-widget-management-field-column__options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.valtimo-widget-management-field-column__sorting{display:flex;align-items:center;align-self:flex-end;gap:16px}.valtimo-widget-management-field-column__enum{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-field-column__enum-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:flex-end;gap:16px}.valtimo-widget-management-field-column__value-field .cds--label{width:100%;margin:0}.valtimo-widget-management-field-column__value-field .cds--label cds-label{margin-bottom:8px}.valtimo-widget-management-field-column cds-checkbox{display:flex;align-items:flex-end}.valtimo-widget-management-field-column .cds--text-input,.valtimo-widget-management-field-column .cds--list-box{background:var(--cds-layer-02)}\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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i7.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: i7.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: i3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i3.Accordion, selector: "cds-accordion, ibm-accordion", inputs: ["align", "size", "skeleton"] }, { kind: "component", type: i3.AccordionItem, selector: "cds-accordion-item, ibm-accordion-item", inputs: ["title", "context", "id", "skeleton", "expanded", "disabled"], outputs: ["selected"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i1.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", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i3.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: LayerModule }, { kind: "directive", type: i3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i1.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "warn", "warnText", "dataTestId"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "ngmodule", type: ToggleModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4708
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WidgetManagementFieldsColumnComponent, isStandalone: true, selector: "valtimo-widget-management-fields-column", inputs: { columnData: "columnData", addTranslateKey: "addTranslateKey", fieldWidthDropdown: "fieldWidthDropdown", selectedCollection: "selectedCollection", showHideWhenEmptyCheckbox: "showHideWhenEmptyCheckbox", showSortableCheckbox: "showSortableCheckbox" }, outputs: { columnUpdateEvent: "columnUpdateEvent" }, host: { properties: { "class": "this.class" } }, 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<form\n *ngIf=\"{\n inputTheme: inputTheme$ | async,\n params: params$ | async,\n widgetType: $widgetType() === 'interactive-table' ? 'table' : $widgetType(),\n defaultSortIndex: defaultSortIndexForTemplate$ | async,\n isInteractiveTable: $widgetType() === 'interactive-table',\n } as data\"\n class=\"valtimo-widget-management-field-column\"\n [formGroup]=\"formGroup\"\n>\n <cds-accordion formArrayName=\"rows\" align=\"start\" size=\"sm\">\n @for (formRow of formRows.controls; track $index) {\n <cds-accordion-item\n [title]=\"fieldTitle\"\n [context]=\"{\n count: $count,\n index: $index,\n title: formRow.get('title')?.value,\n defaultSortIndex: data.defaultSortIndex,\n }\"\n [expanded]=\"$index === 0\"\n class=\"valtimo-widget-management-field-column__item\"\n >\n <form [formGroup]=\"formRow\" class=\"valtimo-widget-management-field-column__container\">\n <div\n class=\"valtimo-widget-management-field-column__content\"\n [class.valtimo-widget-management-field-column__content--collection]=\"\n !!fieldWidthDropdown\n \"\n >\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.title' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.' + data.widgetType + '.titleTooltip' | translate\n \"\n >\n </v-input-label>\n\n <input\n cdsText\n cdsLayer=\"2\"\n [attr.data-test-id]=\"testIds.fieldTitleInput\"\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.titlePlaceholder' | translate\"\n type=\"text\"\n formControlName=\"title\"\n />\n </cds-text-label>\n\n <cds-dropdown\n [attr.data-test-id]=\"testIds.displayTypeDropdown\"\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [label]=\"'widgetTabManagement.content.fields.type' | translate\"\n [dropUp]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.fields.typePlaceholder' | translate\"\n (selected)=\"onTypeSelected(formRow, $event)\"\n formControlName=\"type\"\n >\n <cds-dropdown-list [items]=\"getDisplayItemsSelected(formRow)\"></cds-dropdown-list>\n </cds-dropdown>\n\n <ng-container\n *ngTemplateOutlet=\"fieldWidthDropdown; context: {index: $index}\"\n ></ng-container>\n\n <cds-text-label class=\"valtimo-widget-management-field-column__value-field\">\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.value' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.' + data.widgetType + '.valueTooltip' | translate\n \"\n >\n </v-input-label>\n\n @if ($widgetContext() === 'case') {\n <valtimo-value-path-selector\n [attr.data-test-id]=\"testIds.valuePathSelector\"\n formControlName=\"content\"\n [caseDefinitionKey]=\"data.params?.caseDefinitionKey\"\n [caseDefinitionVersionTag]=\"data.params?.caseDefinitionVersionTag\"\n [parentItem]=\"selectedCollection\"\n ></valtimo-value-path-selector>\n } @else {\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.value' | translate\"\n type=\"text\"\n formControlName=\"content\"\n />\n }\n </cds-text-label>\n </div>\n\n <div class=\"valtimo-widget-management-field-column__options\">\n @switch (formRow.get('type').value.id) {\n @case (WidgetDisplayTypeKey.CURRENCY) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.currencyCode' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.currencyCodeTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.currencyCodePlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"currencyCode\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.display' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.displayTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.displayPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"display\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate: {minFractionDigits: 2, maxFractionDigits: 2}\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.digitsInfoPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.DATE) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.format' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.dateFormatTooltip' | translate\"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.DATE_TIME) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.format' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.dateTimeFormatTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.ENUM) {\n <div class=\"valtimo-widget-management-field-column__enum\" formArrayName=\"values\">\n @for (rowValue of formRow.get('values')?.controls; track $index) {\n <form\n [formGroup]=\"rowValue\"\n class=\"valtimo-widget-management-field-column__enum-form\"\n >\n <cds-text-label>\n <v-input-label\n *ngIf=\"$index === 0\"\n [title]=\"'widgetTabManagement.content.fields.enumValue' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.enumValueTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n [attr.data-carbon-theme]=\"data.inputTheme\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.fields.enumValue' | translate\"\n type=\"text\"\n formControlName=\"key\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n *ngIf=\"$index === 0\"\n [title]=\"'widgetTabManagement.content.fields.enumDisplay' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.enumDisplayTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.enumDisplay' | translate\n \"\n type=\"text\"\n formControlName=\"value\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n class=\"valtimo-widget-management-field-column__delete-button enum\"\n (click)=\"onDeleteRowClick($event, formRow.get('values'), $index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"onAddEnumValueClick(formRow.get('values'))\"\n >\n {{ 'widgetTabManagement.content.fields.addEnum' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n }\n @case (WidgetDisplayTypeKey.NUMBER) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate\n : {\n minFractionDigits: 0,\n maxFractionDigits: 3,\n }\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.PERCENT) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate\n : {\n minFractionDigits: 0,\n maxFractionDigits: 0,\n }\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.LINK) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.linkText' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.linkTextTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.linkTextPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"linkText\"\n />\n </cds-text-label>\n }\n }\n\n <cds-text-label\n *ngIf=\"formRow.get('type').value.id === WidgetDisplayTypeKey.TEXT && $isFieldWidget()\"\n >\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.ellipsisCharacterLimit' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.ellipsisCharacterLimitTooltip' | translate\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.ellipsisCharacterLimitPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"ellipsisCharacterLimit\"\n />\n </cds-text-label>\n\n <cds-checkbox *ngIf=\"showHideWhenEmptyCheckbox\" formControlName=\"hideWhenEmpty\">\n {{ 'widgetTabManagement.content.hideWhenEmpty' | translate }}\n </cds-checkbox>\n\n <div\n *ngIf=\"showSortableCheckbox\"\n class=\"valtimo-widget-management-field-column__sorting\"\n >\n <cds-checkbox\n formControlName=\"sortable\"\n (checkedChange)=\"onSortableCheckChange($index, $event)\"\n >\n {{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n\n <v-select\n formControlName=\"defaultSort\"\n [disabled]=\"!formRow.get('sortable')?.value\"\n [items]=\"DEFAULT_SORT_OPTIONS\"\n [dropUp]=\"false\"\n [placeholder]=\"'interface.sorting.noDefault' | translate\"\n [defaultSelectionId]=\"formRow.get('defaultSort')?.value\"\n [warn]=\"\n data.defaultSortIndex !== -1 &&\n data.defaultSortIndex !== $index &&\n !!formRow.get('sortable')?.value\n \"\n [warnText]=\"'widgetTabManagement.content.fields.defaultSortWarning' | translate\"\n (selectedChange)=\"onSelectedDefaultSortChange($index)\"\n ></v-select>\n </div>\n </div>\n </form>\n </cds-accordion-item>\n }\n </cds-accordion>\n\n <button cdsButton=\"primary\" size=\"sm\" (click)=\"addField()\">\n {{ addTranslateKey | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n\n<ng-template\n #fieldTitle\n let-defaultSortIndex=\"defaultSortIndex\"\n let-count=\"count\"\n let-index=\"index\"\n let-title=\"title\"\n>\n <div class=\"valtimo-widget-management-field-column__title\">\n <section>\n {{ title || ('widgetTabManagement.content.fields.titlePlaceholder' | translate) }}\n\n <cds-tag *ngIf=\"$isInteractiveTableWidget() && defaultSortIndex === index\" type=\"blue\">\n {{ 'ikoManagement.defaultSortTitle' | translate }}\n </cds-tag>\n </section>\n\n <button\n cdsButton=\"danger\"\n [disabled]=\"count === 1\"\n [iconOnly]=\"true\"\n (click)=\"onDeleteRowClick($event, formRows, index)\"\n class=\"valtimo-widget-management-field-column__delete-button\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-widget-management-field-column{display:flex;flex-direction:column;gap:16px;background:var(--cds-layer-02)}.valtimo-widget-management-field-column__item,.valtimo-widget-management-field-column__cotainer{background:var(--cds-layer-01)}.valtimo-widget-management-field-column__item .cds--accordion__content{padding-inline-end:20px}.valtimo-widget-management-field-column__container{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-field-column__content{display:grid;grid-template-columns:1fr 180px 1fr;align-items:flex-end;gap:16px}.valtimo-widget-management-field-column__content--collection{grid-template-columns:1fr 180px 180px 1fr}.valtimo-widget-management-field-column__title{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px}.valtimo-widget-management-field-column__delete-button{display:flex;align-items:center;justify-content:center;padding:0;align-self:center}.valtimo-widget-management-field-column__delete-button.enum{align-self:flex-end}.valtimo-widget-management-field-column__path-selector{display:flex;flex-direction:column}.valtimo-widget-management-field-column__options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.valtimo-widget-management-field-column__sorting{display:flex;align-items:center;align-self:flex-end;gap:16px}.valtimo-widget-management-field-column__enum{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-field-column__enum-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:flex-end;gap:16px}.valtimo-widget-management-field-column__value-field .cds--label{width:100%;margin:0}.valtimo-widget-management-field-column__value-field .cds--label cds-label{margin-bottom:8px}.valtimo-widget-management-field-column cds-checkbox{display:flex;align-items:flex-end}.valtimo-widget-management-field-column .cds--text-input,.valtimo-widget-management-field-column .cds--list-box{background:var(--cds-layer-02)}\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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i7.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: i7.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: i3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i3.Accordion, selector: "cds-accordion, ibm-accordion", inputs: ["align", "size", "skeleton"] }, { kind: "component", type: i3.AccordionItem, selector: "cds-accordion-item, ibm-accordion-item", inputs: ["title", "context", "id", "skeleton", "expanded", "disabled"], outputs: ["selected"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i1.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", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i3.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: LayerModule }, { kind: "directive", type: i3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i1.SelectComponent, selector: "v-select", inputs: ["items", "defaultSelection", "defaultSelectionId", "defaultSelectionIds", "disabled", "dropUp", "invalid", "multiple", "margin", "widthInPx", "notFoundText", "clearAllText", "clearText", "clearable", "name", "title", "titleTranslationKey", "clearSelectionSubject$", "tooltip", "required", "loading", "loadingText", "placeholder", "smallMargin", "carbonTheme", "appendInline", "warn", "warnText", "dataTestId"], outputs: ["selectedChange"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "ngmodule", type: ToggleModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4633
4709
  }
4634
4710
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetManagementFieldsColumnComponent, decorators: [{
4635
4711
  type: Component,
@@ -4649,7 +4725,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
4649
4725
  SelectModule,
4650
4726
  TagModule,
4651
4727
  ToggleModule,
4652
- ], 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<form\n *ngIf=\"{\n inputTheme: inputTheme$ | async,\n params: params$ | async,\n widgetType: $widgetType() === 'interactive-table' ? 'table' : $widgetType(),\n defaultSortIndex: defaultSortIndexForTemplate$ | async,\n isInteractiveTable: $widgetType() === 'interactive-table',\n } as data\"\n class=\"valtimo-widget-management-field-column\"\n [formGroup]=\"formGroup\"\n>\n <cds-accordion formArrayName=\"rows\" align=\"start\" size=\"sm\">\n @for (formRow of formRows.controls; track $index) {\n <cds-accordion-item\n [title]=\"fieldTitle\"\n [context]=\"{\n count: $count,\n index: $index,\n title: formRow.get('title')?.value,\n defaultSortIndex: data.defaultSortIndex,\n }\"\n [expanded]=\"$index === 0\"\n class=\"valtimo-widget-management-field-column__item\"\n >\n <form [formGroup]=\"formRow\" class=\"valtimo-widget-management-field-column__container\">\n <div\n class=\"valtimo-widget-management-field-column__content\"\n [class.valtimo-widget-management-field-column__content--collection]=\"\n !!fieldWidthDropdown\n \"\n >\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.title' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.' + data.widgetType + '.titleTooltip' | translate\n \"\n >\n </v-input-label>\n\n <input\n cdsText\n cdsLayer=\"2\"\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.titlePlaceholder' | translate\"\n type=\"text\"\n formControlName=\"title\"\n />\n </cds-text-label>\n\n <cds-dropdown\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [label]=\"'widgetTabManagement.content.fields.type' | translate\"\n [dropUp]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.fields.typePlaceholder' | translate\"\n (selected)=\"onTypeSelected(formRow, $event)\"\n formControlName=\"type\"\n >\n <cds-dropdown-list [items]=\"getDisplayItemsSelected(formRow)\"></cds-dropdown-list>\n </cds-dropdown>\n\n <ng-container\n *ngTemplateOutlet=\"fieldWidthDropdown; context: {index: $index}\"\n ></ng-container>\n\n <cds-text-label class=\"valtimo-widget-management-field-column__value-field\">\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.value' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.' + data.widgetType + '.valueTooltip' | translate\n \"\n >\n </v-input-label>\n\n @if ($widgetContext() === 'case') {\n <valtimo-value-path-selector\n formControlName=\"content\"\n [caseDefinitionKey]=\"data.params?.caseDefinitionKey\"\n [caseDefinitionVersionTag]=\"data.params?.caseDefinitionVersionTag\"\n [parentItem]=\"selectedCollection\"\n ></valtimo-value-path-selector>\n } @else {\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.value' | translate\"\n type=\"text\"\n formControlName=\"content\"\n />\n }\n </cds-text-label>\n </div>\n\n <div class=\"valtimo-widget-management-field-column__options\">\n @switch (formRow.get('type').value.id) {\n @case (WidgetDisplayTypeKey.CURRENCY) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.currencyCode' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.currencyCodeTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.currencyCodePlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"currencyCode\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.display' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.displayTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.displayPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"display\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate: {minFractionDigits: 2, maxFractionDigits: 2}\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.digitsInfoPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.DATE) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.format' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.dateFormatTooltip' | translate\"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.DATE_TIME) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.format' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.dateTimeFormatTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.ENUM) {\n <div class=\"valtimo-widget-management-field-column__enum\" formArrayName=\"values\">\n @for (rowValue of formRow.get('values')?.controls; track $index) {\n <form\n [formGroup]=\"rowValue\"\n class=\"valtimo-widget-management-field-column__enum-form\"\n >\n <cds-text-label>\n <v-input-label\n *ngIf=\"$index === 0\"\n [title]=\"'widgetTabManagement.content.fields.enumValue' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.enumValueTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n [attr.data-carbon-theme]=\"data.inputTheme\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.fields.enumValue' | translate\"\n type=\"text\"\n formControlName=\"key\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n *ngIf=\"$index === 0\"\n [title]=\"'widgetTabManagement.content.fields.enumDisplay' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.enumDisplayTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.enumDisplay' | translate\n \"\n type=\"text\"\n formControlName=\"value\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n class=\"valtimo-widget-management-field-column__delete-button enum\"\n (click)=\"onDeleteRowClick($event, formRow.get('values'), $index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"onAddEnumValueClick(formRow.get('values'))\"\n >\n {{ 'widgetTabManagement.content.fields.addEnum' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n }\n @case (WidgetDisplayTypeKey.NUMBER) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate\n : {\n minFractionDigits: 0,\n maxFractionDigits: 3,\n }\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.PERCENT) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate\n : {\n minFractionDigits: 0,\n maxFractionDigits: 0,\n }\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.LINK) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.linkText' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.linkTextTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.linkTextPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"linkText\"\n />\n </cds-text-label>\n }\n }\n\n <cds-text-label\n *ngIf=\"formRow.get('type').value.id === WidgetDisplayTypeKey.TEXT && $isFieldWidget()\"\n >\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.ellipsisCharacterLimit' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.ellipsisCharacterLimitTooltip' | translate\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.ellipsisCharacterLimitPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"ellipsisCharacterLimit\"\n />\n </cds-text-label>\n\n <cds-checkbox *ngIf=\"showHideWhenEmptyCheckbox\" formControlName=\"hideWhenEmpty\">\n {{ 'widgetTabManagement.content.hideWhenEmpty' | translate }}\n </cds-checkbox>\n\n <div\n *ngIf=\"showSortableCheckbox\"\n class=\"valtimo-widget-management-field-column__sorting\"\n >\n <cds-checkbox\n formControlName=\"sortable\"\n (checkedChange)=\"onSortableCheckChange($index, $event)\"\n >\n {{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n\n <v-select\n formControlName=\"defaultSort\"\n [disabled]=\"!formRow.get('sortable')?.value\"\n [items]=\"DEFAULT_SORT_OPTIONS\"\n [dropUp]=\"false\"\n [placeholder]=\"'interface.sorting.noDefault' | translate\"\n [defaultSelectionId]=\"formRow.get('defaultSort')?.value\"\n [warn]=\"\n data.defaultSortIndex !== -1 &&\n data.defaultSortIndex !== $index &&\n !!formRow.get('sortable')?.value\n \"\n [warnText]=\"'widgetTabManagement.content.fields.defaultSortWarning' | translate\"\n (selectedChange)=\"onSelectedDefaultSortChange($index)\"\n ></v-select>\n </div>\n </div>\n </form>\n </cds-accordion-item>\n }\n </cds-accordion>\n\n <button cdsButton=\"primary\" size=\"sm\" (click)=\"addField()\">\n {{ addTranslateKey | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n\n<ng-template\n #fieldTitle\n let-defaultSortIndex=\"defaultSortIndex\"\n let-count=\"count\"\n let-index=\"index\"\n let-title=\"title\"\n>\n <div class=\"valtimo-widget-management-field-column__title\">\n <section>\n {{ title || ('widgetTabManagement.content.fields.titlePlaceholder' | translate) }}\n\n <cds-tag *ngIf=\"$isInteractiveTableWidget() && defaultSortIndex === index\" type=\"blue\">\n {{ 'ikoManagement.defaultSortTitle' | translate }}\n </cds-tag>\n </section>\n\n <button\n cdsButton=\"danger\"\n [disabled]=\"count === 1\"\n [iconOnly]=\"true\"\n (click)=\"onDeleteRowClick($event, formRows, index)\"\n class=\"valtimo-widget-management-field-column__delete-button\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-widget-management-field-column{display:flex;flex-direction:column;gap:16px;background:var(--cds-layer-02)}.valtimo-widget-management-field-column__item,.valtimo-widget-management-field-column__cotainer{background:var(--cds-layer-01)}.valtimo-widget-management-field-column__item .cds--accordion__content{padding-inline-end:20px}.valtimo-widget-management-field-column__container{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-field-column__content{display:grid;grid-template-columns:1fr 180px 1fr;align-items:flex-end;gap:16px}.valtimo-widget-management-field-column__content--collection{grid-template-columns:1fr 180px 180px 1fr}.valtimo-widget-management-field-column__title{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px}.valtimo-widget-management-field-column__delete-button{display:flex;align-items:center;justify-content:center;padding:0;align-self:center}.valtimo-widget-management-field-column__delete-button.enum{align-self:flex-end}.valtimo-widget-management-field-column__path-selector{display:flex;flex-direction:column}.valtimo-widget-management-field-column__options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.valtimo-widget-management-field-column__sorting{display:flex;align-items:center;align-self:flex-end;gap:16px}.valtimo-widget-management-field-column__enum{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-field-column__enum-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:flex-end;gap:16px}.valtimo-widget-management-field-column__value-field .cds--label{width:100%;margin:0}.valtimo-widget-management-field-column__value-field .cds--label cds-label{margin-bottom:8px}.valtimo-widget-management-field-column cds-checkbox{display:flex;align-items:flex-end}.valtimo-widget-management-field-column .cds--text-input,.valtimo-widget-management-field-column .cds--list-box{background:var(--cds-layer-02)}\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"] }]
4728
+ ], 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<form\n *ngIf=\"{\n inputTheme: inputTheme$ | async,\n params: params$ | async,\n widgetType: $widgetType() === 'interactive-table' ? 'table' : $widgetType(),\n defaultSortIndex: defaultSortIndexForTemplate$ | async,\n isInteractiveTable: $widgetType() === 'interactive-table',\n } as data\"\n class=\"valtimo-widget-management-field-column\"\n [formGroup]=\"formGroup\"\n>\n <cds-accordion formArrayName=\"rows\" align=\"start\" size=\"sm\">\n @for (formRow of formRows.controls; track $index) {\n <cds-accordion-item\n [title]=\"fieldTitle\"\n [context]=\"{\n count: $count,\n index: $index,\n title: formRow.get('title')?.value,\n defaultSortIndex: data.defaultSortIndex,\n }\"\n [expanded]=\"$index === 0\"\n class=\"valtimo-widget-management-field-column__item\"\n >\n <form [formGroup]=\"formRow\" class=\"valtimo-widget-management-field-column__container\">\n <div\n class=\"valtimo-widget-management-field-column__content\"\n [class.valtimo-widget-management-field-column__content--collection]=\"\n !!fieldWidthDropdown\n \"\n >\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.title' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.' + data.widgetType + '.titleTooltip' | translate\n \"\n >\n </v-input-label>\n\n <input\n cdsText\n cdsLayer=\"2\"\n [attr.data-test-id]=\"testIds.fieldTitleInput\"\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.titlePlaceholder' | translate\"\n type=\"text\"\n formControlName=\"title\"\n />\n </cds-text-label>\n\n <cds-dropdown\n [attr.data-test-id]=\"testIds.displayTypeDropdown\"\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [label]=\"'widgetTabManagement.content.fields.type' | translate\"\n [dropUp]=\"false\"\n [placeholder]=\"'widgetTabManagement.content.fields.typePlaceholder' | translate\"\n (selected)=\"onTypeSelected(formRow, $event)\"\n formControlName=\"type\"\n >\n <cds-dropdown-list [items]=\"getDisplayItemsSelected(formRow)\"></cds-dropdown-list>\n </cds-dropdown>\n\n <ng-container\n *ngTemplateOutlet=\"fieldWidthDropdown; context: {index: $index}\"\n ></ng-container>\n\n <cds-text-label class=\"valtimo-widget-management-field-column__value-field\">\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.value' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.' + data.widgetType + '.valueTooltip' | translate\n \"\n >\n </v-input-label>\n\n @if ($widgetContext() === 'case') {\n <valtimo-value-path-selector\n [attr.data-test-id]=\"testIds.valuePathSelector\"\n formControlName=\"content\"\n [caseDefinitionKey]=\"data.params?.caseDefinitionKey\"\n [caseDefinitionVersionTag]=\"data.params?.caseDefinitionVersionTag\"\n [parentItem]=\"selectedCollection\"\n ></valtimo-value-path-selector>\n } @else {\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.value' | translate\"\n type=\"text\"\n formControlName=\"content\"\n />\n }\n </cds-text-label>\n </div>\n\n <div class=\"valtimo-widget-management-field-column__options\">\n @switch (formRow.get('type').value.id) {\n @case (WidgetDisplayTypeKey.CURRENCY) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.currencyCode' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.currencyCodeTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.currencyCodePlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"currencyCode\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.display' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.displayTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.displayPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"display\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate: {minFractionDigits: 2, maxFractionDigits: 2}\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.digitsInfoPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.DATE) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.format' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.dateFormatTooltip' | translate\"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.DATE_TIME) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.format' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.dateTimeFormatTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.formatPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"format\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.ENUM) {\n <div class=\"valtimo-widget-management-field-column__enum\" formArrayName=\"values\">\n @for (rowValue of formRow.get('values')?.controls; track $index) {\n <form\n [formGroup]=\"rowValue\"\n class=\"valtimo-widget-management-field-column__enum-form\"\n >\n <cds-text-label>\n <v-input-label\n *ngIf=\"$index === 0\"\n [title]=\"'widgetTabManagement.content.fields.enumValue' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.enumValueTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n [attr.data-carbon-theme]=\"data.inputTheme\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.fields.enumValue' | translate\"\n type=\"text\"\n formControlName=\"key\"\n />\n </cds-text-label>\n\n <cds-text-label>\n <v-input-label\n *ngIf=\"$index === 0\"\n [title]=\"'widgetTabManagement.content.fields.enumDisplay' | translate\"\n [tooltip]=\"\n 'widgetTabManagement.content.fields.enumDisplayTooltip' | translate\n \"\n ></v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.enumDisplay' | translate\n \"\n type=\"text\"\n formControlName=\"value\"\n />\n </cds-text-label>\n\n <button\n cdsButton=\"danger--ghost\"\n [disabled]=\"$count === 1\"\n [iconOnly]=\"true\"\n class=\"valtimo-widget-management-field-column__delete-button enum\"\n (click)=\"onDeleteRowClick($event, formRow.get('values'), $index)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </form>\n }\n\n <button\n cdsButton=\"primary\"\n size=\"sm\"\n (click)=\"onAddEnumValueClick(formRow.get('values'))\"\n >\n {{ 'widgetTabManagement.content.fields.addEnum' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n }\n @case (WidgetDisplayTypeKey.NUMBER) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate\n : {\n minFractionDigits: 0,\n maxFractionDigits: 3,\n }\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.PERCENT) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.digitsInfoTooltip'\n | translate\n : {\n minFractionDigits: 0,\n maxFractionDigits: 0,\n }\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"'widgetTabManagement.content.fields.digitsInfo' | translate\"\n type=\"text\"\n formControlName=\"digitsInfo\"\n />\n </cds-text-label>\n }\n @case (WidgetDisplayTypeKey.LINK) {\n <cds-text-label>\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.linkText' | translate\"\n [tooltip]=\"'widgetTabManagement.content.fields.linkTextTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.linkTextPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"linkText\"\n />\n </cds-text-label>\n }\n }\n\n <cds-text-label\n *ngIf=\"formRow.get('type').value.id === WidgetDisplayTypeKey.TEXT && $isFieldWidget()\"\n >\n <v-input-label\n [title]=\"'widgetTabManagement.content.fields.ellipsisCharacterLimit' | translate\"\n tooltip=\"{{\n 'widgetTabManagement.content.fields.ellipsisCharacterLimitTooltip' | translate\n }}\"\n >\n </v-input-label>\n\n <input\n cdsText\n [attr.data-carbon-theme]=\"data.inputTheme\"\n [placeholder]=\"\n 'widgetTabManagement.content.fields.ellipsisCharacterLimitPlaceholder' | translate\n \"\n type=\"text\"\n formControlName=\"ellipsisCharacterLimit\"\n />\n </cds-text-label>\n\n <cds-checkbox *ngIf=\"showHideWhenEmptyCheckbox\" formControlName=\"hideWhenEmpty\">\n {{ 'widgetTabManagement.content.hideWhenEmpty' | translate }}\n </cds-checkbox>\n\n <div\n *ngIf=\"showSortableCheckbox\"\n class=\"valtimo-widget-management-field-column__sorting\"\n >\n <cds-checkbox\n formControlName=\"sortable\"\n (checkedChange)=\"onSortableCheckChange($index, $event)\"\n >\n {{ 'listColumn.sortable' | translate }}\n </cds-checkbox>\n\n <v-select\n formControlName=\"defaultSort\"\n [disabled]=\"!formRow.get('sortable')?.value\"\n [items]=\"DEFAULT_SORT_OPTIONS\"\n [dropUp]=\"false\"\n [placeholder]=\"'interface.sorting.noDefault' | translate\"\n [defaultSelectionId]=\"formRow.get('defaultSort')?.value\"\n [warn]=\"\n data.defaultSortIndex !== -1 &&\n data.defaultSortIndex !== $index &&\n !!formRow.get('sortable')?.value\n \"\n [warnText]=\"'widgetTabManagement.content.fields.defaultSortWarning' | translate\"\n (selectedChange)=\"onSelectedDefaultSortChange($index)\"\n ></v-select>\n </div>\n </div>\n </form>\n </cds-accordion-item>\n }\n </cds-accordion>\n\n <button cdsButton=\"primary\" size=\"sm\" (click)=\"addField()\">\n {{ addTranslateKey | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</form>\n\n<ng-template\n #fieldTitle\n let-defaultSortIndex=\"defaultSortIndex\"\n let-count=\"count\"\n let-index=\"index\"\n let-title=\"title\"\n>\n <div class=\"valtimo-widget-management-field-column__title\">\n <section>\n {{ title || ('widgetTabManagement.content.fields.titlePlaceholder' | translate) }}\n\n <cds-tag *ngIf=\"$isInteractiveTableWidget() && defaultSortIndex === index\" type=\"blue\">\n {{ 'ikoManagement.defaultSortTitle' | translate }}\n </cds-tag>\n </section>\n\n <button\n cdsButton=\"danger\"\n [disabled]=\"count === 1\"\n [iconOnly]=\"true\"\n (click)=\"onDeleteRowClick($event, formRows, index)\"\n class=\"valtimo-widget-management-field-column__delete-button\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".valtimo-widget-management-field-column{display:flex;flex-direction:column;gap:16px;background:var(--cds-layer-02)}.valtimo-widget-management-field-column__item,.valtimo-widget-management-field-column__cotainer{background:var(--cds-layer-01)}.valtimo-widget-management-field-column__item .cds--accordion__content{padding-inline-end:20px}.valtimo-widget-management-field-column__container{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-field-column__content{display:grid;grid-template-columns:1fr 180px 1fr;align-items:flex-end;gap:16px}.valtimo-widget-management-field-column__content--collection{grid-template-columns:1fr 180px 180px 1fr}.valtimo-widget-management-field-column__title{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px}.valtimo-widget-management-field-column__delete-button{display:flex;align-items:center;justify-content:center;padding:0;align-self:center}.valtimo-widget-management-field-column__delete-button.enum{align-self:flex-end}.valtimo-widget-management-field-column__path-selector{display:flex;flex-direction:column}.valtimo-widget-management-field-column__options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.valtimo-widget-management-field-column__sorting{display:flex;align-items:center;align-self:flex-end;gap:16px}.valtimo-widget-management-field-column__enum{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-field-column__enum-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:flex-end;gap:16px}.valtimo-widget-management-field-column__value-field .cds--label{width:100%;margin:0}.valtimo-widget-management-field-column__value-field .cds--label cds-label{margin-bottom:8px}.valtimo-widget-management-field-column cds-checkbox{display:flex;align-items:flex-end}.valtimo-widget-management-field-column .cds--text-input,.valtimo-widget-management-field-column .cds--list-box{background:var(--cds-layer-02)}\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"] }]
4653
4729
  }], ctorParameters: () => [{ type: i1.CdsThemeService }, { type: i0.ChangeDetectorRef }, { type: i1$3.FormBuilder }, { type: i3.IconService }, { type: i2$1.TranslateService }, { type: WidgetFieldsService }, { type: WidgetWizardService }, { type: undefined, decorators: [{
4654
4730
  type: Inject,
4655
4731
  args: [WIDGET_MANAGEMENT_SERVICE]
@@ -4692,6 +4768,7 @@ class WidgetManagementFieldsComponent {
4692
4768
  constructor(fb, widgetWizardService) {
4693
4769
  this.fb = fb;
4694
4770
  this.widgetWizardService = widgetWizardService;
4771
+ this.testIds = WIDGET_CONTENT_FIELDS_TEST_IDS;
4695
4772
  this.class = 'valtimo-widget-management-fields';
4696
4773
  this.$showTitleInput = signal(true);
4697
4774
  this.form = this.fb.group({
@@ -4786,7 +4863,7 @@ class WidgetManagementFieldsComponent {
4786
4863
  this.widgetWizardService.$widgetContentValid.set(this.form.valid && this._contentValid());
4787
4864
  }
4788
4865
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetManagementFieldsComponent, deps: [{ token: i1$3.FormBuilder }, { token: WidgetWizardService }], target: i0.ɵɵFactoryTarget.Component }); }
4789
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WidgetManagementFieldsComponent, isStandalone: true, selector: "ng-component", host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_tab", first: true, predicate: Tab, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n *ngIf=\"$showTitleInput()\"\n [formGroup]=\"form\"\n class=\"valtimo-widget-management-fields__title-form\"\n>\n <cds-text-label class=\"valtimo-widget-management-fields__input\">\n <v-input-label\n [title]=\"'widgetTabManagement.content.widgetTitle' | translate\"\n [tooltip]=\"'widgetTabManagement.content.widgetTitleTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <valtimo-mdi-icon-selector\n [cdsLayer]=\"1\"\n formControlName=\"widgetIcon\"\n ></valtimo-mdi-icon-selector>\n</form>\n\n<ng-content></ng-content>\n\n<cds-tabs type=\"contained\">\n @for (column of $columns(); track $index) {\n <cds-tab\n [active]=\"activeTab() === $index\"\n [heading]=\"columnHeading\"\n [context]=\"{index: $index, count: $count}\"\n (selected)=\"onTabSelected($index)\"\n >\n <valtimo-widget-management-fields-column\n *ngIf=\"activeTab() === $index\"\n [isFieldWidget]=\"true\"\n [columnData]=\"$selectedWidgetContent()?.[$index]\"\n [showHideWhenEmptyCheckbox]=\"true\"\n (columnUpdateEvent)=\"onColumnUpdateEvent($event, $index)\"\n ></valtimo-widget-management-fields-column>\n </cds-tab>\n }\n\n <cds-tab\n *ngIf=\"$columns().length < $widgetWidth\"\n [heading]=\"addColumn\"\n [id]=\"'addColumn'\"\n class=\"valtimo-widget-management-fields__add\"\n ></cds-tab>\n</cds-tabs>\n\n<ng-template #addColumn>\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"$event.stopImmediatePropagation(); onAddColumnClick()\"\n >\n <svg cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #columnHeading let-data>\n <div class=\"valtimo-widget-management-fields__heading\">\n {{ 'widgetTabManagement.content.column' | translate: {number: data.index + 1} }}\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"data.count === 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onDeleteColumnClick(data.index)\"\n >\n <svg cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".cds--tab-content{padding:0!important}.valtimo-widget-management-fields{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-fields__title-form{padding:8px 0 16px 16px;background:var(--cds-layer);display:flex;gap:16px}.valtimo-widget-management-fields__input{max-width:288px}.valtimo-widget-management-fields__input input{background:var(--cds-layer-02)}.valtimo-widget-management-fields__heading{display:flex;align-items:center}.valtimo-widget-management-fields #addColumn-header{padding:0!important}.valtimo-widget-management-fields .cds--tabs__nav-item{padding-right: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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i3.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: WidgetManagementFieldsColumnComponent, selector: "valtimo-widget-management-fields-column", inputs: ["columnData", "addTranslateKey", "fieldWidthDropdown", "selectedCollection", "showHideWhenEmptyCheckbox", "showSortableCheckbox"], outputs: ["columnUpdateEvent"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i1.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: MdiIconSelectorComponent, selector: "valtimo-mdi-icon-selector", inputs: ["labelTranslationKey", "tooltipTranslationKey", "placeholderTranslationKey", "appendInline", "dropUp"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4866
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: WidgetManagementFieldsComponent, isStandalone: true, selector: "ng-component", host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_tab", first: true, predicate: Tab, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<form\n *ngIf=\"$showTitleInput()\"\n [formGroup]=\"form\"\n class=\"valtimo-widget-management-fields__title-form\"\n>\n <cds-text-label class=\"valtimo-widget-management-fields__input\">\n <v-input-label\n [title]=\"'widgetTabManagement.content.widgetTitle' | translate\"\n [tooltip]=\"'widgetTabManagement.content.widgetTitleTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [attr.data-test-id]=\"testIds.widgetTitleInput\"\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <valtimo-mdi-icon-selector\n [cdsLayer]=\"1\"\n formControlName=\"widgetIcon\"\n ></valtimo-mdi-icon-selector>\n</form>\n\n<ng-content></ng-content>\n\n<cds-tabs type=\"contained\">\n @for (column of $columns(); track $index) {\n <cds-tab\n [active]=\"activeTab() === $index\"\n [heading]=\"columnHeading\"\n [context]=\"{index: $index, count: $count}\"\n (selected)=\"onTabSelected($index)\"\n >\n <valtimo-widget-management-fields-column\n *ngIf=\"activeTab() === $index\"\n [isFieldWidget]=\"true\"\n [columnData]=\"$selectedWidgetContent()?.[$index]\"\n [showHideWhenEmptyCheckbox]=\"true\"\n (columnUpdateEvent)=\"onColumnUpdateEvent($event, $index)\"\n ></valtimo-widget-management-fields-column>\n </cds-tab>\n }\n\n <cds-tab\n *ngIf=\"$columns().length < $widgetWidth\"\n [heading]=\"addColumn\"\n [id]=\"'addColumn'\"\n class=\"valtimo-widget-management-fields__add\"\n ></cds-tab>\n</cds-tabs>\n\n<ng-template #addColumn>\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"$event.stopImmediatePropagation(); onAddColumnClick()\"\n >\n <svg cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #columnHeading let-data>\n <div class=\"valtimo-widget-management-fields__heading\">\n {{ 'widgetTabManagement.content.column' | translate: {number: data.index + 1} }}\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"data.count === 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onDeleteColumnClick(data.index)\"\n >\n <svg cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".cds--tab-content{padding:0!important}.valtimo-widget-management-fields{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-fields__title-form{padding:8px 0 16px 16px;background:var(--cds-layer);display:flex;gap:16px}.valtimo-widget-management-fields__input{max-width:288px}.valtimo-widget-management-fields__input input{background:var(--cds-layer-02)}.valtimo-widget-management-fields__heading{display:flex;align-items:center}.valtimo-widget-management-fields #addColumn-header{padding:0!important}.valtimo-widget-management-fields .cds--tabs__nav-item{padding-right: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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: TabsModule }, { kind: "component", type: i3.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i3.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.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: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: WidgetManagementFieldsColumnComponent, selector: "valtimo-widget-management-fields-column", inputs: ["columnData", "addTranslateKey", "fieldWidthDropdown", "selectedCollection", "showHideWhenEmptyCheckbox", "showSortableCheckbox"], outputs: ["columnUpdateEvent"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: i1.InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "tooltipTranslationKey", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "component", type: MdiIconSelectorComponent, selector: "valtimo-mdi-icon-selector", inputs: ["labelTranslationKey", "tooltipTranslationKey", "placeholderTranslationKey", "appendInline", "dropUp"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
4790
4867
  }
4791
4868
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: WidgetManagementFieldsComponent, decorators: [{
4792
4869
  type: Component,
@@ -4802,7 +4879,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
4802
4879
  InputLabelModule,
4803
4880
  MdiIconSelectorComponent,
4804
4881
  LayerModule,
4805
- ], 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<form\n *ngIf=\"$showTitleInput()\"\n [formGroup]=\"form\"\n class=\"valtimo-widget-management-fields__title-form\"\n>\n <cds-text-label class=\"valtimo-widget-management-fields__input\">\n <v-input-label\n [title]=\"'widgetTabManagement.content.widgetTitle' | translate\"\n [tooltip]=\"'widgetTabManagement.content.widgetTitleTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <valtimo-mdi-icon-selector\n [cdsLayer]=\"1\"\n formControlName=\"widgetIcon\"\n ></valtimo-mdi-icon-selector>\n</form>\n\n<ng-content></ng-content>\n\n<cds-tabs type=\"contained\">\n @for (column of $columns(); track $index) {\n <cds-tab\n [active]=\"activeTab() === $index\"\n [heading]=\"columnHeading\"\n [context]=\"{index: $index, count: $count}\"\n (selected)=\"onTabSelected($index)\"\n >\n <valtimo-widget-management-fields-column\n *ngIf=\"activeTab() === $index\"\n [isFieldWidget]=\"true\"\n [columnData]=\"$selectedWidgetContent()?.[$index]\"\n [showHideWhenEmptyCheckbox]=\"true\"\n (columnUpdateEvent)=\"onColumnUpdateEvent($event, $index)\"\n ></valtimo-widget-management-fields-column>\n </cds-tab>\n }\n\n <cds-tab\n *ngIf=\"$columns().length < $widgetWidth\"\n [heading]=\"addColumn\"\n [id]=\"'addColumn'\"\n class=\"valtimo-widget-management-fields__add\"\n ></cds-tab>\n</cds-tabs>\n\n<ng-template #addColumn>\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"$event.stopImmediatePropagation(); onAddColumnClick()\"\n >\n <svg cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #columnHeading let-data>\n <div class=\"valtimo-widget-management-fields__heading\">\n {{ 'widgetTabManagement.content.column' | translate: {number: data.index + 1} }}\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"data.count === 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onDeleteColumnClick(data.index)\"\n >\n <svg cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".cds--tab-content{padding:0!important}.valtimo-widget-management-fields{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-fields__title-form{padding:8px 0 16px 16px;background:var(--cds-layer);display:flex;gap:16px}.valtimo-widget-management-fields__input{max-width:288px}.valtimo-widget-management-fields__input input{background:var(--cds-layer-02)}.valtimo-widget-management-fields__heading{display:flex;align-items:center}.valtimo-widget-management-fields #addColumn-header{padding:0!important}.valtimo-widget-management-fields .cds--tabs__nav-item{padding-right: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"] }]
4882
+ ], 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<form\n *ngIf=\"$showTitleInput()\"\n [formGroup]=\"form\"\n class=\"valtimo-widget-management-fields__title-form\"\n>\n <cds-text-label class=\"valtimo-widget-management-fields__input\">\n <v-input-label\n [title]=\"'widgetTabManagement.content.widgetTitle' | translate\"\n [tooltip]=\"'widgetTabManagement.content.widgetTitleTooltip' | translate\"\n >\n </v-input-label>\n\n <input\n formControlName=\"widgetTitle\"\n cdsText\n [attr.data-test-id]=\"testIds.widgetTitleInput\"\n [placeholder]=\"'widgetTabManagement.content.widgetTitlePlaceholder' | translate\"\n type=\"text\"\n />\n </cds-text-label>\n\n <valtimo-mdi-icon-selector\n [cdsLayer]=\"1\"\n formControlName=\"widgetIcon\"\n ></valtimo-mdi-icon-selector>\n</form>\n\n<ng-content></ng-content>\n\n<cds-tabs type=\"contained\">\n @for (column of $columns(); track $index) {\n <cds-tab\n [active]=\"activeTab() === $index\"\n [heading]=\"columnHeading\"\n [context]=\"{index: $index, count: $count}\"\n (selected)=\"onTabSelected($index)\"\n >\n <valtimo-widget-management-fields-column\n *ngIf=\"activeTab() === $index\"\n [isFieldWidget]=\"true\"\n [columnData]=\"$selectedWidgetContent()?.[$index]\"\n [showHideWhenEmptyCheckbox]=\"true\"\n (columnUpdateEvent)=\"onColumnUpdateEvent($event, $index)\"\n ></valtimo-widget-management-fields-column>\n </cds-tab>\n }\n\n <cds-tab\n *ngIf=\"$columns().length < $widgetWidth\"\n [heading]=\"addColumn\"\n [id]=\"'addColumn'\"\n class=\"valtimo-widget-management-fields__add\"\n ></cds-tab>\n</cds-tabs>\n\n<ng-template #addColumn>\n <button\n cdsButton=\"ghost\"\n [iconOnly]=\"true\"\n (click)=\"$event.stopImmediatePropagation(); onAddColumnClick()\"\n >\n <svg cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #columnHeading let-data>\n <div class=\"valtimo-widget-management-fields__heading\">\n {{ 'widgetTabManagement.content.column' | translate: {number: data.index + 1} }}\n\n <button\n cdsButton=\"ghost\"\n [disabled]=\"data.count === 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onDeleteColumnClick(data.index)\"\n >\n <svg cdsIcon=\"close\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n", styles: [".cds--tab-content{padding:0!important}.valtimo-widget-management-fields{display:flex;flex-direction:column;gap:16px}.valtimo-widget-management-fields__title-form{padding:8px 0 16px 16px;background:var(--cds-layer);display:flex;gap:16px}.valtimo-widget-management-fields__input{max-width:288px}.valtimo-widget-management-fields__input input{background:var(--cds-layer-02)}.valtimo-widget-management-fields__heading{display:flex;align-items:center}.valtimo-widget-management-fields #addColumn-header{padding:0!important}.valtimo-widget-management-fields .cds--tabs__nav-item{padding-right: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"] }]
4806
4883
  }], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: WidgetWizardService }], propDecorators: { class: [{
4807
4884
  type: HostBinding,
4808
4885
  args: ['class']
@@ -6160,5 +6237,5 @@ class ManagementWidgetDetailsComponent {
6160
6237
  * Generated bundle index. Do not edit.
6161
6238
  */
6162
6239
 
6163
- export { AVAILABLE_WIDGETS, CUSTOM_WIDGET_TOKEN, DEFAULT_WIDGET_COMPONENT_MAP, FilterDropdownDataProvider, LayoutComponent, LayoutInternalComponent, LayoutModule, LayoutPublicComponent, LayoutService, ManagementWidgetDetailsComponent, TranslationManagementComponent, TranslationManagementModule, WIDGET_COLOR_ILLUSTRATION_MAP, WIDGET_COLOR_ITEMS, WIDGET_COLOR_LABELS, WIDGET_COLOR_THEME_MAP, WIDGET_DENSITY_LABELS, WIDGET_HEIGHT_1X, WIDGET_MANAGEMENT_SERVICE, WIDGET_WIDTH_1X, WIDGET_WIDTH_LABELS, WIZARD_STEP_COMPONENTS, WidgetActionButtonComponent, WidgetBlockComponent, WidgetCollectionComponent, WidgetColor, WidgetContainerComponent, WidgetCustomComponent, WidgetDensity, WidgetDisplayTypeKey, WidgetFieldComponent, WidgetFieldsService, WidgetFormioComponent, WidgetInteractiveTableComponent, WidgetInteractiveTableSearchComponent, WidgetInteractiveTableService, WidgetLayoutService, WidgetManagementCollectionComponent, WidgetManagementComponent, WidgetManagementCustomComponent, WidgetManagementEditorComponent, WidgetManagementFieldsComponent, WidgetManagementMapComponent, WidgetManagementTab, WidgetManagementTableComponent, WidgetManagementWizardComponent, WidgetMapComponent, WidgetTableComponent, WidgetType, WidgetTypeTags, WidgetWizardCloseEventType, WidgetWizardService, WidgetWizardStep };
6240
+ export { AVAILABLE_WIDGETS, CUSTOM_WIDGET_TOKEN, DEFAULT_WIDGET_COMPONENT_MAP, FilterDropdownDataProvider, LayoutComponent, LayoutInternalComponent, LayoutModule, LayoutPublicComponent, LayoutService, ManagementWidgetDetailsComponent, TranslationManagementComponent, TranslationManagementModule, WIDGET_COLOR_ILLUSTRATION_MAP, WIDGET_COLOR_ITEMS, WIDGET_COLOR_LABELS, WIDGET_COLOR_THEME_MAP, WIDGET_CONTENT_FIELDS_TEST_IDS, WIDGET_DENSITY_LABELS, WIDGET_DIVIDER_MODAL_TEST_IDS, WIDGET_EDITOR_TEST_IDS, WIDGET_HEIGHT_1X, WIDGET_MANAGEMENT_SERVICE, WIDGET_WIDTH_1X, WIDGET_WIDTH_LABELS, WIDGET_WIZARD_APPEARANCE_TEST_IDS, WIDGET_WIZARD_DENSITY_TEST_IDS, WIDGET_WIZARD_TEST_IDS, WIDGET_WIZARD_TYPE_TEST_IDS, WIDGET_WIZARD_WIDTH_TEST_IDS, WIZARD_STEP_COMPONENTS, WidgetActionButtonComponent, WidgetBlockComponent, WidgetCollectionComponent, WidgetColor, WidgetContainerComponent, WidgetCustomComponent, WidgetDensity, WidgetDisplayTypeKey, WidgetFieldComponent, WidgetFieldsService, WidgetFormioComponent, WidgetInteractiveTableComponent, WidgetInteractiveTableSearchComponent, WidgetInteractiveTableService, WidgetLayoutService, WidgetManagementCollectionComponent, WidgetManagementComponent, WidgetManagementCustomComponent, WidgetManagementEditorComponent, WidgetManagementFieldsComponent, WidgetManagementMapComponent, WidgetManagementTab, WidgetManagementTableComponent, WidgetManagementWizardComponent, WidgetMapComponent, WidgetTableComponent, WidgetType, WidgetTypeTags, WidgetWizardCloseEventType, WidgetWizardService, WidgetWizardStep };
6164
6241
  //# sourceMappingURL=valtimo-layout.mjs.map