@valtimo/components 13.47.1 → 13.48.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.
@@ -12,19 +12,19 @@ import * as i1$4 from '@angular/common';
12
12
  import { DOCUMENT, CommonModule, registerLocaleData, CurrencyPipe, DecimalPipe, PercentPipe } from '@angular/common';
13
13
  import * as i1$3 from '@angular/router';
14
14
  import { NavigationEnd, NavigationStart, ResolveEnd, RouterModule } from '@angular/router';
15
+ import * as i2 from '@angular/forms';
16
+ import { Validators, UntypedFormControl, ReactiveFormsModule, FormsModule, FormControl, FormGroup, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
15
17
  import { deepmerge } from 'deepmerge-ts';
16
18
  import { isEqual, isNil, clone, isArray, cloneDeep, get, cloneDeepWith } from 'lodash';
17
19
  import { Components, Utils, Formio } from 'formiojs';
18
20
  import { createCustomElement } from '@angular/elements';
19
21
  import * as i9 from '@formio/angular';
20
22
  import { CustomTagsService, FormioModule, FormioAppConfig } from '@formio/angular';
21
- import * as i2 from '@angular/forms';
22
- import { Validators, UntypedFormControl, ReactiveFormsModule, FormsModule, FormControl, FormGroup, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
23
23
  import moment from 'moment';
24
24
  import User20 from '@carbon/icons/es/user/20';
25
25
  import * as i2$2 from 'keycloak-angular';
26
26
  import * as i2$3 from 'carbon-components-angular';
27
- import { UIShellModule, IconModule, LinkModule, GridModule, TabsModule, StructuredListModule, ToggleModule, TagModule, DropdownModule, LayerModule, SkeletonModule, LoadingModule, Table, TableHeaderItem, TableModel, TableItem, PaginationModule, TableModule as TableModule$1, ContentSwitcherModule, ButtonModule, DialogModule, ModalModule as ModalModule$1, BreadcrumbModule, InputModule as InputModule$1, ComboBoxModule, ComboBox, CheckboxModule, AccordionModule, DatePickerModule as DatePickerModule$1, TimePickerModule, ModalButtonType, TilesModule, RadioModule as RadioModule$1, ModalService as ModalService$1, TooltipModule as TooltipModule$1, NotificationModule, ContextMenuModule, ToggletipModule } from 'carbon-components-angular';
27
+ import { UIShellModule, IconModule, LinkModule, GridModule, TabsModule, StructuredListModule, ToggleModule, TagModule, DropdownModule, LayerModule, SkeletonModule, LoadingModule, Table, TableHeaderItem, TableModel, TableItem, PaginationModule, TableModule as TableModule$1, ContentSwitcherModule, ButtonModule, DialogModule, ModalModule as ModalModule$1, BreadcrumbModule, InputModule as InputModule$1, ComboBoxModule, ComboBox, CheckboxModule, AccordionModule, DatePickerModule as DatePickerModule$1, TimePickerModule, ModalButtonType, TilesModule, SelectModule as SelectModule$1, RadioModule as RadioModule$1, ModalService as ModalService$1, TooltipModule as TooltipModule$1, NotificationModule, ContextMenuModule, ToggletipModule } from 'carbon-components-angular';
28
28
  import * as i6 from '@angular/platform-browser';
29
29
  import * as i2$1 from 'ngx-skeleton-loader';
30
30
  import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
@@ -35,7 +35,7 @@ import { NgbTooltipModule, NgbPaginationModule } from '@ng-bootstrap/ng-bootstra
35
35
  import { autoUpdate, computePosition, offset, flip, shift, hide } from '@floating-ui/dom';
36
36
  import * as i3 from '@angular/cdk/drag-drop';
37
37
  import { DragDropModule } from '@angular/cdk/drag-drop';
38
- import { Draggable16, OverflowMenuVertical16, ArrowDown16, ArrowUp16, SettingsView16, View16, ViewOff16, ChevronUp16, ChevronDown16, Close16, Add16, Edit16, Save16, WarningAltFilled16, WarningFilled16, TrashCan16, DocumentRequirements16, UserFollow16, Group16, User16 } from '@carbon/icons';
38
+ import { Draggable16, OverflowMenuVertical16, ArrowDown16, ArrowUp16, SettingsView16, View16, ViewOff16, ChevronUp16, ChevronDown16, Close16, Add16, Edit16, TrashCan16, Save16, WarningAltFilled16, WarningFilled16, DocumentRequirements16, UserFollow16, Group16, User16 } from '@carbon/icons';
39
39
  import * as i3$1 from '@angular/cdk/layout';
40
40
  import { LayoutModule } from '@angular/cdk/layout';
41
41
  import localeNl from '@angular/common/locales/nl';
@@ -631,6 +631,22 @@ class TimelineItemImpl {
631
631
  * limitations under the License.
632
632
  */
633
633
 
634
+ /*
635
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
636
+ *
637
+ * Licensed under EUPL, Version 1.2 (the "License");
638
+ * you may not use this file except in compliance with the License.
639
+ * You may obtain a copy of the License at
640
+ *
641
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
642
+ *
643
+ * Unless required by applicable law or agreed to in writing, software
644
+ * distributed under the License is distributed on an "AS IS" basis,
645
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
646
+ * See the License for the specific language governing permissions and
647
+ * limitations under the License.
648
+ */
649
+
634
650
  /*
635
651
  * Copyright 2015-2025 Ritense BV, the Netherlands.
636
652
  *
@@ -1079,6 +1095,14 @@ const VALUE_PATH_SELECTOR_TEST_IDS = {
1079
1095
  path: 'valueValuePathSelectorPath',
1080
1096
  input: 'valuePathSelectorInput',
1081
1097
  };
1098
+ const VALUE_CONDITION_TREE_TEST_IDS = {
1099
+ addConditionButton: 'valueConditionTreeAddCondition',
1100
+ addGroupButton: 'valueConditionTreeAddGroup',
1101
+ groupModeSelect: 'valueConditionTreeGroupMode',
1102
+ operatorSelect: 'valueConditionTreeOperator',
1103
+ removeButton: 'valueConditionTreeRemove',
1104
+ valueInput: 'valueConditionTreeValue',
1105
+ };
1082
1106
  const STEPPER_FOOTER_STEP_TEST_IDS = {
1083
1107
  cancelButton: 'stepperFooterCancelButton',
1084
1108
  };
@@ -2684,6 +2708,85 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
2684
2708
  }]
2685
2709
  }] });
2686
2710
 
2711
+ /*
2712
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
2713
+ *
2714
+ * Licensed under EUPL, Version 1.2 (the "License");
2715
+ * you may not use this file except in compliance with the License.
2716
+ * You may obtain a copy of the License at
2717
+ *
2718
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
2719
+ *
2720
+ * Unless required by applicable law or agreed to in writing, software
2721
+ * distributed under the License is distributed on an "AS IS" basis,
2722
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2723
+ * See the License for the specific language governing permissions and
2724
+ * limitations under the License.
2725
+ */
2726
+ /** Translates a condition tree between its JSON form and the nested reactive form. Every row holds both a condition's and a group's controls, so switching a row between the two is lossless. */
2727
+ class ValueConditionTreeService {
2728
+ constructor(fb) {
2729
+ this.fb = fb;
2730
+ }
2731
+ buildArray(nodes = []) {
2732
+ return this.fb.array(nodes.map(node => this.createNodeGroup(node)));
2733
+ }
2734
+ createNodeGroup(node) {
2735
+ const mode = this.groupModeOf(node);
2736
+ const condition = mode ? undefined : node;
2737
+ return this.fb.group({
2738
+ kind: this.fb.control(mode ? 'group' : 'condition'),
2739
+ path: this.fb.control(condition?.path ?? ''),
2740
+ operator: this.fb.control(condition?.operator ?? '=='),
2741
+ value: this.fb.control(condition?.value != null ? String(condition.value) : ''),
2742
+ mode: this.fb.control(mode ?? 'anyOf'),
2743
+ conditions: mode
2744
+ ? this.buildArray(node[mode])
2745
+ : this.fb.array([]),
2746
+ });
2747
+ }
2748
+ serialize(conditions) {
2749
+ return conditions.controls
2750
+ .map(control => this.serializeNode(control))
2751
+ .filter((node) => node !== null);
2752
+ }
2753
+ /** Which way the node groups its entries, or `null` when the node is a single condition. */
2754
+ groupModeOf(node) {
2755
+ if (!node)
2756
+ return null;
2757
+ if (Array.isArray(node.allOf))
2758
+ return 'allOf';
2759
+ if (Array.isArray(node.anyOf))
2760
+ return 'anyOf';
2761
+ return null;
2762
+ }
2763
+ serializeNode(group) {
2764
+ if (group.get('kind')?.value === 'group') {
2765
+ const mode = group.get('mode')?.value ?? 'anyOf';
2766
+ const nested = this.serialize(group.get('conditions'));
2767
+ // An empty group is dropped: the backend rejects one, and an unfilled group should not block saving the rest.
2768
+ return nested.length ? { [mode]: nested } : null;
2769
+ }
2770
+ const path = group.get('path')?.value ?? '';
2771
+ if (!path)
2772
+ return null;
2773
+ const operator = group.get('operator')?.value ?? '==';
2774
+ const value = group.get('value')?.value ?? '';
2775
+ return {
2776
+ path,
2777
+ operator,
2778
+ // 'exists' needs no value of its own, unless the author typed one ('false').
2779
+ value: operator === 'exists' && !value ? null : value,
2780
+ };
2781
+ }
2782
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValueConditionTreeService, deps: [{ token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Injectable }); }
2783
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValueConditionTreeService, providedIn: 'root' }); }
2784
+ }
2785
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValueConditionTreeService, decorators: [{
2786
+ type: Injectable,
2787
+ args: [{ providedIn: 'root' }]
2788
+ }], ctorParameters: () => [{ type: i2.FormBuilder }] });
2789
+
2687
2790
  class ValuePathSelectorService extends BaseApiService {
2688
2791
  constructor(httpClient, configService) {
2689
2792
  super(httpClient, configService);
@@ -2710,6 +2813,7 @@ class ValuePathSelectorService extends BaseApiService {
2710
2813
  * Get resolvable keys for a given blueprint context (case definition or building block).
2711
2814
  */
2712
2815
  getResolvableKeysForContext(prefixes, excludePrefixes = [], context, type = ValuePathType.FIELD) {
2816
+ // Locals rather than shared instance state: selectors with different prefix sets can be in flight at once, and one call's prefixes would clobber another's.
2713
2817
  const cacheKey = this.buildCacheKey(context);
2714
2818
  const url = this.buildUrl(context);
2715
2819
  let effectivePrefixes = prefixes;
@@ -5179,14 +5283,6 @@ const MENU_ITEM_CATALOG = [
5179
5283
  placement: 'admin',
5180
5284
  category: 'admin',
5181
5285
  },
5182
- {
5183
- itemId: 'caseMigration',
5184
- defaultTitleKey: 'Case migration (beta)',
5185
- link: '/case-migration',
5186
- roles: [ROLE_ADMIN],
5187
- placement: 'admin',
5188
- category: 'admin',
5189
- },
5190
5286
  {
5191
5287
  itemId: 'processMigration',
5192
5288
  defaultTitleKey: 'Process migration',
@@ -11851,6 +11947,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
11851
11947
  * See the License for the specific language governing permissions and
11852
11948
  * limitations under the License.
11853
11949
  */
11950
+ const NOT_IN_THIS_VERSION_KEY = 'valuePathSelector.notInThisVersion';
11854
11951
  class ValuePathSelectorComponent {
11855
11952
  onBlur() {
11856
11953
  this.onBlurEvent();
@@ -11919,6 +12016,10 @@ class ValuePathSelectorComponent {
11919
12016
  set buildingBlockDefinitionVersionTag(value) {
11920
12017
  this._buildingBlockDefinitionVersionTag$.next(value);
11921
12018
  }
12019
+ /** Extra version tags whose fields are merged into the option list, deduplicated by path — so a migration patch can clear a field that only exists in the source version. */
12020
+ set additionalVersionTags(value) {
12021
+ this._additionalVersionTags$.next(value ?? []);
12022
+ }
11922
12023
  set prefixes(value) {
11923
12024
  this._prefixes$.next(value ?? []);
11924
12025
  }
@@ -11945,12 +12046,15 @@ class ValuePathSelectorComponent {
11945
12046
  get _caseDefinitionKey$() {
11946
12047
  return this._caseDefinitionKeySubject$.pipe(filter$1(value => !!value));
11947
12048
  }
11948
- constructor(valuePathSelectorService, formBuilder, documentService, route, changeDetectorRef) {
12049
+ constructor(valuePathSelectorService, formBuilder, documentService, route, changeDetectorRef,
12050
+ // Appended, not inserted: this is a published component and a subclass's super(...) call is positional.
12051
+ translateService) {
11949
12052
  this.valuePathSelectorService = valuePathSelectorService;
11950
12053
  this.formBuilder = formBuilder;
11951
12054
  this.documentService = documentService;
11952
12055
  this.route = route;
11953
12056
  this.changeDetectorRef = changeDetectorRef;
12057
+ this.translateService = translateService;
11954
12058
  this._showMargin = false;
11955
12059
  this._showMarginLg = false;
11956
12060
  this._showMarginXl = false;
@@ -11978,6 +12082,7 @@ class ValuePathSelectorComponent {
11978
12082
  this._caseDefinitionVersionTag$ = new BehaviorSubject(null);
11979
12083
  this._buildingBlockDefinitionKey$ = new BehaviorSubject(null);
11980
12084
  this._buildingBlockDefinitionVersionTag$ = new BehaviorSubject(null);
12085
+ this._additionalVersionTags$ = new BehaviorSubject([]);
11981
12086
  this.showToggle$ = combineLatest([
11982
12087
  this._caseDefinitionKeySubject$,
11983
12088
  this._buildingBlockDefinitionKey$,
@@ -11999,12 +12104,23 @@ class ValuePathSelectorComponent {
11999
12104
  this._caseDefinitionVersionTag$,
12000
12105
  this._buildingBlockDefinitionKey$,
12001
12106
  this._buildingBlockDefinitionVersionTag$,
12107
+ this._additionalVersionTags$,
12002
12108
  this.showToggle$,
12003
- ]).pipe(filter$1(([, , , , , , , showToggle]) => showToggle), switchMap(([caseDefinitionKey, prefixes, excludePrefixes, type, caseDefinitionVersionTag, buildingBlockKey, buildingBlockVersionTag,]) => {
12109
+ ]).pipe(filter$1(([, , , , , , , , showToggle]) => showToggle), switchMap(([caseDefinitionKey, prefixes, excludePrefixes, type, caseDefinitionVersionTag, buildingBlockKey, buildingBlockVersionTag, additionalVersionTags,]) => {
12004
12110
  const context = this.buildBlueprintContext(caseDefinitionKey, caseDefinitionVersionTag, buildingBlockKey, buildingBlockVersionTag);
12005
12111
  if (!context)
12006
12112
  return of([]);
12007
- return this.valuePathSelectorService.getResolvableKeysForContext(prefixes, excludePrefixes, context, type);
12113
+ // The primary context plus one per extra version tag, deduped so the primary is never fetched twice.
12114
+ const contexts = [
12115
+ context,
12116
+ ...additionalVersionTags
12117
+ .filter(tag => !!tag && tag !== context.versionTag)
12118
+ .map(tag => ({ ...context, versionTag: tag })),
12119
+ ];
12120
+ if (contexts.length === 1) {
12121
+ return this.valuePathSelectorService.getResolvableKeysForContext(prefixes, excludePrefixes, context, type);
12122
+ }
12123
+ return combineLatest(contexts.map(ctx => this.valuePathSelectorService.getResolvableKeysForContext(prefixes, excludePrefixes, ctx, type))).pipe(map(lists => this.mergeOptionsByPath(lists)));
12008
12124
  }))), map((results) => results
12009
12125
  .map((result) => ({
12010
12126
  ...result,
@@ -12032,7 +12148,9 @@ class ValuePathSelectorComponent {
12032
12148
  });
12033
12149
  return filteredOptions.map(option => {
12034
12150
  const mappedOption = {
12035
- content: option.formattedPath,
12151
+ content: this.optionLabel(option),
12152
+ // The value, kept apart from the label: a marked option's label is not a path.
12153
+ formattedPath: option.formattedPath,
12036
12154
  selected: option.formattedPath === selectedPath,
12037
12155
  path: option.path,
12038
12156
  ...(!!option.children && { children: option.children }),
@@ -12106,7 +12224,7 @@ class ValuePathSelectorComponent {
12106
12224
  }
12107
12225
  }
12108
12226
  onPathSelected(event) {
12109
- const selectedPath = event?.content;
12227
+ const selectedPath = event?.formattedPath ?? event?.content;
12110
12228
  if (!selectedPath)
12111
12229
  return;
12112
12230
  if (this.collectionSelected.observed)
@@ -12157,6 +12275,26 @@ class ValuePathSelectorComponent {
12157
12275
  const formattedPath = splitPath.reduce((acc, pathPart) => `${acc}${requiredNotation === 'slashes' ? '/' : '.'}${pathPart}`, '');
12158
12276
  return `${prefix}:${requiredNotation === 'dots' ? formattedPath.substring(1) : formattedPath}`;
12159
12277
  }
12278
+ /** Flatten the per-version option lists, keeping the first occurrence of each path so the primary version's entry — with its children — wins. A path only the extra versions declare is flagged: it stays selectable, because clearing a dropped field means naming it, but it is not part of this version's data model and read as though it were. */
12279
+ mergeOptionsByPath(lists) {
12280
+ const primaryPaths = new Set((lists[0] ?? []).map(item => item.path));
12281
+ const byPath = new Map();
12282
+ lists.forEach(list => list.forEach(item => {
12283
+ if (!byPath.has(item.path)) {
12284
+ byPath.set(item.path, { ...item, notInThisVersion: !primaryPaths.has(item.path) });
12285
+ }
12286
+ }));
12287
+ return [...byPath.values()];
12288
+ }
12289
+ /** The path, plus a marker when the version being configured does not declare it. Falls back to the bare path while translations are still loading, rather than showing the key. */
12290
+ optionLabel(option) {
12291
+ if (!option.notInThisVersion)
12292
+ return option.formattedPath;
12293
+ const marker = this.translateService.instant(NOT_IN_THIS_VERSION_KEY);
12294
+ return marker === NOT_IN_THIS_VERSION_KEY
12295
+ ? option.formattedPath
12296
+ : `${option.formattedPath} ${marker}`;
12297
+ }
12160
12298
  buildBlueprintContext(caseDefinitionKey, caseDefinitionVersionTag, buildingBlockKey, buildingBlockVersionTag) {
12161
12299
  // Building block takes precedence when both key and version tag are provided
12162
12300
  if (buildingBlockKey && buildingBlockVersionTag) {
@@ -12176,8 +12314,8 @@ class ValuePathSelectorComponent {
12176
12314
  }
12177
12315
  return null;
12178
12316
  }
12179
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValuePathSelectorComponent, deps: [{ token: ValuePathSelectorService }, { token: i2.FormBuilder }, { token: i3$2.DocumentService }, { token: i1$3.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
12180
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: ValuePathSelectorComponent, isStandalone: true, selector: "valtimo-value-path-selector", inputs: { name: "name", appendInline: "appendInline", margin: "margin", marginLg: "marginLg", marginXl: "marginXl", disabled: "disabled", caseDefinitionKey: "caseDefinitionKey", caseDefinitionVersionTag: "caseDefinitionVersionTag", buildingBlockDefinitionKey: "buildingBlockDefinitionKey", buildingBlockDefinitionVersionTag: "buildingBlockDefinitionVersionTag", prefixes: "prefixes", excludePrefixes: "excludePrefixes", label: "label", tooltip: "tooltip", required: "required", showCaseDefinitionSelector: "showCaseDefinitionSelector", notation: "notation", dropUp: "dropUp", defaultValue: "defaultValue", type: "type", parentItem: "parentItem", filterItems: "filterItems" }, outputs: { valueChangeEvent: "valueChangeEvent", collectionSelected: "collectionSelected" }, host: { listeners: { "focusout": "onBlur()" }, properties: { "class.value-path-selector--margin-bottom": "this._showMargin", "class.value-path-selector--margin-bottom-lg": "this._showMarginLg", "class.value-path-selector--margin-bottom-xl": "this._showMarginXl" } }, providers: [
12317
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValuePathSelectorComponent, deps: [{ token: ValuePathSelectorService }, { token: i2.FormBuilder }, { token: i3$2.DocumentService }, { token: i1$3.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
12318
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: ValuePathSelectorComponent, isStandalone: true, selector: "valtimo-value-path-selector", inputs: { name: "name", appendInline: "appendInline", margin: "margin", marginLg: "marginLg", marginXl: "marginXl", disabled: "disabled", caseDefinitionKey: "caseDefinitionKey", caseDefinitionVersionTag: "caseDefinitionVersionTag", buildingBlockDefinitionKey: "buildingBlockDefinitionKey", buildingBlockDefinitionVersionTag: "buildingBlockDefinitionVersionTag", additionalVersionTags: "additionalVersionTags", prefixes: "prefixes", excludePrefixes: "excludePrefixes", label: "label", tooltip: "tooltip", required: "required", showCaseDefinitionSelector: "showCaseDefinitionSelector", notation: "notation", dropUp: "dropUp", defaultValue: "defaultValue", type: "type", parentItem: "parentItem", filterItems: "filterItems" }, outputs: { valueChangeEvent: "valueChangeEvent", collectionSelected: "collectionSelected" }, host: { listeners: { "focusout": "onBlur()" }, properties: { "class.value-path-selector--margin-bottom": "this._showMargin", "class.value-path-selector--margin-bottom-lg": "this._showMarginLg", "class.value-path-selector--margin-bottom-xl": "this._showMarginXl" } }, providers: [
12181
12319
  {
12182
12320
  provide: NG_VALUE_ACCESSOR,
12183
12321
  multi: true,
@@ -12205,7 +12343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
12205
12343
  useExisting: forwardRef(() => ValuePathSelectorComponent),
12206
12344
  },
12207
12345
  ], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n inputModeIsDropdown: inputModeIsDropdown$ | async,\n valuePathListItems: valuePathListItems$ | async,\n loadingValuePathItems: loadingValuePathItems$ | async,\n disabled: disabled$ | async,\n showToggle: showToggle$ | async,\n } as obs\"\n>\n <v-input-label *ngIf=\"!!label\" [required]=\"required\" [title]=\"label\" [tooltip]=\"tooltip\">\n </v-input-label>\n\n <form\n [formGroup]=\"formGroup\"\n [ngClass]=\"{\n 'value-path-selector__form--case-def-input':\n showCaseDefinitionSelector && obs.inputModeIsDropdown && !obs.showToggle,\n }\"\n class=\"value-path-selector__form\"\n >\n <cds-toggle\n *ngIf=\"obs.showToggle\"\n [attr.data-test-id]=\"testIds.toggle\"\n size=\"sm\"\n [disabled]=\"obs.disabled\"\n [onText]=\"'valuePathSelector.dropdown' | translate\"\n [offText]=\"'valuePathSelector.manual' | translate\"\n [checked]=\"obs.inputModeIsDropdown\"\n (checkedChange)=\"onInputModeChange($event)\"\n ></cds-toggle>\n\n @if (obs.inputModeIsDropdown && obs.showToggle) {\n <cds-combo-box\n [attr.data-test-id]=\"testIds.path\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n obs.loadingValuePathItems ||\n !obs.valuePathListItems ||\n (obs.valuePathListItems || []).length === 0\n \"\n [dropUp]=\"dropUp\"\n (selected)=\"onPathSelected($event)\"\n (clear)=\"onPathCleared()\"\n [placeholder]=\"'valuePathSelector.placeholder' | translate\"\n >\n <cds-dropdown-list [items]=\"obs.valuePathListItems || []\"></cds-dropdown-list>\n </cds-combo-box>\n } @else {\n <input\n [attr.data-test-id]=\"testIds.input\"\n cdsText\n type=\"text\"\n formControlName=\"selectedPath\"\n />\n }\n </form>\n</ng-container>\n", styles: [":host{width:100%;display:flex;flex-direction:column}::ng-deep .value-path-selector--margin-bottom{margin-bottom:16px}::ng-deep .value-path-selector--margin-bottom-lg{margin-bottom:24px}::ng-deep .value-path-selector--margin-bottom-xl{margin-bottom:34px}.value-path-selector__form{display:flex;width:100%;align-items:center;gap:16px}::ng-deep .value-path-selector__form--case-def-input{display:flex!important}.value-path-selector__form ::ng-deep cds-dropdown,.value-path-selector__form ::ng-deep cds-combo-box{width:100%;min-width:0}.value-path-selector__form ::ng-deep .cds--toggle__label-text{display:none}.value-path-selector__form ::ng-deep .cds--toggle__label{display:flex}\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"] }]
12208
- }], ctorParameters: () => [{ type: ValuePathSelectorService }, { type: i2.FormBuilder }, { type: i3$2.DocumentService }, { type: i1$3.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { _showMargin: [{
12346
+ }], ctorParameters: () => [{ type: ValuePathSelectorService }, { type: i2.FormBuilder }, { type: i3$2.DocumentService }, { type: i1$3.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i1.TranslateService }], propDecorators: { _showMargin: [{
12209
12347
  type: HostBinding,
12210
12348
  args: ['class.value-path-selector--margin-bottom']
12211
12349
  }], _showMarginLg: [{
@@ -12240,6 +12378,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
12240
12378
  type: Input
12241
12379
  }], buildingBlockDefinitionVersionTag: [{
12242
12380
  type: Input
12381
+ }], additionalVersionTags: [{
12382
+ type: Input
12243
12383
  }], prefixes: [{
12244
12384
  type: Input
12245
12385
  }], excludePrefixes: [{
@@ -12315,7 +12455,7 @@ class FormioValueResolverSelectorComponent {
12315
12455
  }
12316
12456
  }
12317
12457
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormioValueResolverSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12318
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: FormioValueResolverSelectorComponent, isStandalone: true, selector: "valtimo-formio-value-resolver-selector", inputs: { disabled: "disabled", label: "label", resolverType: "resolverType", value: "value" }, outputs: { valueChange: "valueChange" }, 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@if (isIndependentContext$ | async) {\n <input\n cdsText\n type=\"text\"\n [value]=\"defaultValue$ | async\"\n [cdsLayer]=\"1\"\n (input)=\"onValueChange($any($event.target).value)\"\n />\n} @else {\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey$ | async\"\n [caseDefinitionVersionTag]=\"caseDefinitionVersionTag$ | async\"\n [buildingBlockDefinitionKey]=\"buildingBlockDefinitionKey$ | async\"\n [buildingBlockDefinitionVersionTag]=\"buildingBlockDefinitionVersionTag$ | async\"\n [appendInline]=\"true\"\n [defaultValue]=\"defaultValue$ | async\"\n [label]=\"label\"\n [showCaseDefinitionSelector]=\"true\"\n notation=\"slashes\"\n [prefixes]=\"[ValuePathSelectorPrefix.DOC]\"\n [cdsLayer]=\"1\"\n (valueChangeEvent)=\"onValueChange($event)\"\n ></valtimo-value-path-selector>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "directive", type: i2$3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }] }); }
12458
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: FormioValueResolverSelectorComponent, isStandalone: true, selector: "valtimo-formio-value-resolver-selector", inputs: { disabled: "disabled", label: "label", resolverType: "resolverType", value: "value" }, outputs: { valueChange: "valueChange" }, 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@if (isIndependentContext$ | async) {\n <input\n cdsText\n type=\"text\"\n [value]=\"defaultValue$ | async\"\n [cdsLayer]=\"1\"\n (input)=\"onValueChange($any($event.target).value)\"\n />\n} @else {\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey$ | async\"\n [caseDefinitionVersionTag]=\"caseDefinitionVersionTag$ | async\"\n [buildingBlockDefinitionKey]=\"buildingBlockDefinitionKey$ | async\"\n [buildingBlockDefinitionVersionTag]=\"buildingBlockDefinitionVersionTag$ | async\"\n [appendInline]=\"true\"\n [defaultValue]=\"defaultValue$ | async\"\n [label]=\"label\"\n [showCaseDefinitionSelector]=\"true\"\n notation=\"slashes\"\n [prefixes]=\"[ValuePathSelectorPrefix.DOC]\"\n [cdsLayer]=\"1\"\n (valueChangeEvent)=\"onValueChange($event)\"\n ></valtimo-value-path-selector>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "additionalVersionTags", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "directive", type: i2$3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }] }); }
12319
12459
  }
12320
12460
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: FormioValueResolverSelectorComponent, decorators: [{
12321
12461
  type: Component,
@@ -15845,7 +15985,7 @@ class KeyValuePathSelectorComponent {
15845
15985
  this.valueChange.emit({ value: this.value, inputValue, type });
15846
15986
  }
15847
15987
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: KeyValuePathSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15848
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: KeyValuePathSelectorComponent, isStandalone: true, selector: "valtimo-key-value-path-selector", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", index: "index", value: "value", fullWidth: "fullWidth", disabled: "disabled", caseDefinitionKey: "caseDefinitionKey", prefixes: "prefixes", showCaseDefinitionSelector: "showCaseDefinitionSelector", notation: "notation", keyColumnFlex: "keyColumnFlex", valueColumnFlex: "valueColumnFlex" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.fullWidth" } }, 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<div\n class=\"v-multi-input__input key\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('key', $event.target.value)\"\n [attr.data-test-id]=\"testIds.keyInput\"\n />\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input path-selector\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [prefixes]=\"prefixes\"\n [showCaseDefinitionSelector]=\"showCaseDefinitionSelector\"\n [disabled]=\"disabled\"\n [defaultValue]=\"value?.value\"\n [notation]=\"notation\"\n (valueChangeEvent)=\"onInputChange('value', $event)\"\n ></valtimo-value-path-selector>\n</div>\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}:host .path-selector{flex:2}\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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i2$3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
15988
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: KeyValuePathSelectorComponent, isStandalone: true, selector: "valtimo-key-value-path-selector", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", index: "index", value: "value", fullWidth: "fullWidth", disabled: "disabled", caseDefinitionKey: "caseDefinitionKey", prefixes: "prefixes", showCaseDefinitionSelector: "showCaseDefinitionSelector", notation: "notation", keyColumnFlex: "keyColumnFlex", valueColumnFlex: "valueColumnFlex" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.fullWidth" } }, 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<div\n class=\"v-multi-input__input key\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('key', $event.target.value)\"\n [attr.data-test-id]=\"testIds.keyInput\"\n />\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input path-selector\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [prefixes]=\"prefixes\"\n [showCaseDefinitionSelector]=\"showCaseDefinitionSelector\"\n [disabled]=\"disabled\"\n [defaultValue]=\"value?.value\"\n [notation]=\"notation\"\n (valueChangeEvent)=\"onInputChange('value', $event)\"\n ></valtimo-value-path-selector>\n</div>\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}:host .path-selector{flex:2}\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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i2$3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "additionalVersionTags", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
15849
15989
  }
15850
15990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: KeyValuePathSelectorComponent, decorators: [{
15851
15991
  type: Component,
@@ -15919,7 +16059,7 @@ class ValuePathSelectorValueComponent {
15919
16059
  this.valueChange.emit({ value: this.value, inputValue, type });
15920
16060
  }
15921
16061
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValuePathSelectorValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15922
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: ValuePathSelectorValueComponent, isStandalone: true, selector: "valtimo-value-path-selector-value", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", index: "index", value: "value", fullWidth: "fullWidth", disabled: "disabled", caseDefinitionKey: "caseDefinitionKey", prefixes: "prefixes", showCaseDefinitionSelector: "showCaseDefinitionSelector", notation: "notation", keyColumnFlex: "keyColumnFlex", valueColumnFlex: "valueColumnFlex" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.fullWidth" } }, 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<div\n class=\"v-multi-input__input path-selector\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [prefixes]=\"prefixes\"\n [showCaseDefinitionSelector]=\"showCaseDefinitionSelector\"\n [disabled]=\"disabled\"\n [defaultValue]=\"value?.key\"\n [notation]=\"notation\"\n (valueChangeEvent)=\"onInputChange('key', $event)\"\n ></valtimo-value-path-selector>\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('value', $event.target.value)\"\n [attr.data-test-id]=\"testIds.valueInput\"\n />\n</div>\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}:host .path-selector{flex:2}\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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i2$3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
16062
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: ValuePathSelectorValueComponent, isStandalone: true, selector: "valtimo-value-path-selector-value", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", index: "index", value: "value", fullWidth: "fullWidth", disabled: "disabled", caseDefinitionKey: "caseDefinitionKey", prefixes: "prefixes", showCaseDefinitionSelector: "showCaseDefinitionSelector", notation: "notation", keyColumnFlex: "keyColumnFlex", valueColumnFlex: "valueColumnFlex" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.fullWidth" } }, 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<div\n class=\"v-multi-input__input path-selector\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [prefixes]=\"prefixes\"\n [showCaseDefinitionSelector]=\"showCaseDefinitionSelector\"\n [disabled]=\"disabled\"\n [defaultValue]=\"value?.key\"\n [notation]=\"notation\"\n (valueChangeEvent)=\"onInputChange('key', $event)\"\n ></valtimo-value-path-selector>\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('value', $event.target.value)\"\n [attr.data-test-id]=\"testIds.valueInput\"\n />\n</div>\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}:host .path-selector{flex:2}\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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i2$3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "additionalVersionTags", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
15923
16063
  }
15924
16064
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValuePathSelectorValueComponent, decorators: [{
15925
16065
  type: Component,
@@ -15995,7 +16135,7 @@ class ValuePathSelectorDropdownValueComponent {
15995
16135
  this.valueChange.emit({ value: this.value, inputValue, type });
15996
16136
  }
15997
16137
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValuePathSelectorDropdownValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15998
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: ValuePathSelectorDropdownValueComponent, isStandalone: true, selector: "valtimo-value-path-selector-dropdown-value", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", dropdownColumnTitle: "dropdownColumnTitle", index: "index", value: "value", dropdownItems$: "dropdownItems$", caseDefinitionKey: "caseDefinitionKey", prefixes: "prefixes", showCaseDefinitionSelector: "showCaseDefinitionSelector", notation: "notation", dropdownWidth: "dropdownWidth", fullWidth: "fullWidth", disabled: "disabled", keyColumnFlex: "keyColumnFlex", dropdownColumnFlex: "dropdownColumnFlex", valueColumnFlex: "valueColumnFlex" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.fullWidth" } }, 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<div\n class=\"v-multi-input__input path-selector\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [prefixes]=\"prefixes\"\n [showCaseDefinitionSelector]=\"showCaseDefinitionSelector\"\n [disabled]=\"disabled\"\n [defaultValue]=\"value?.key\"\n [notation]=\"notation\"\n (valueChangeEvent)=\"onInputChange('key', $event)\"\n ></valtimo-value-path-selector>\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.minWidth.px]=\"dropdownWidth\"\n [style.flex]=\"dropdownColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && dropdownColumnTitle\">{{ dropdownColumnTitle }}</cds-label>\n\n <cds-dropdown\n (selected)=\"onInputChange('dropdown', $event.item.id)\"\n [appendInline]=\"true\"\n [attr.data-test-id]=\"testIds.dropdown\"\n >\n <cds-dropdown-list [items]=\"dropdownItems$ | async\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('value', $event.target.value)\"\n [attr.data-test-id]=\"testIds.valueInput\"\n />\n</div>\n", styles: [":host{display:flex;align-items:flex-end}:host.--full-width{width:100%}:host .process-start-modal-content{padding:16px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i2$3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2$3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
16138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: ValuePathSelectorDropdownValueComponent, isStandalone: true, selector: "valtimo-value-path-selector-dropdown-value", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", dropdownColumnTitle: "dropdownColumnTitle", index: "index", value: "value", dropdownItems$: "dropdownItems$", caseDefinitionKey: "caseDefinitionKey", prefixes: "prefixes", showCaseDefinitionSelector: "showCaseDefinitionSelector", notation: "notation", dropdownWidth: "dropdownWidth", fullWidth: "fullWidth", disabled: "disabled", keyColumnFlex: "keyColumnFlex", dropdownColumnFlex: "dropdownColumnFlex", valueColumnFlex: "valueColumnFlex" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.fullWidth" } }, 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<div\n class=\"v-multi-input__input path-selector\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"keyColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <valtimo-value-path-selector\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [prefixes]=\"prefixes\"\n [showCaseDefinitionSelector]=\"showCaseDefinitionSelector\"\n [disabled]=\"disabled\"\n [defaultValue]=\"value?.key\"\n [notation]=\"notation\"\n (valueChangeEvent)=\"onInputChange('key', $event)\"\n ></valtimo-value-path-selector>\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.minWidth.px]=\"dropdownWidth\"\n [style.flex]=\"dropdownColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && dropdownColumnTitle\">{{ dropdownColumnTitle }}</cds-label>\n\n <cds-dropdown\n (selected)=\"onInputChange('dropdown', $event.item.id)\"\n [appendInline]=\"true\"\n [attr.data-test-id]=\"testIds.dropdown\"\n >\n <cds-dropdown-list [items]=\"dropdownItems$ | async\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n</div>\n\n<div class=\"v-multi-input__separator\"></div>\n\n<div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n [style.flex]=\"valueColumnFlex\"\n>\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange('value', $event.target.value)\"\n [attr.data-test-id]=\"testIds.valueInput\"\n />\n</div>\n", styles: [":host{display:flex;align-items:flex-end}:host.--full-width{width:100%}:host .process-start-modal-content{padding:16px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i2$3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i2$3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2$3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "additionalVersionTags", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
15999
16139
  }
16000
16140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValuePathSelectorDropdownValueComponent, decorators: [{
16001
16141
  type: Component,
@@ -18558,6 +18698,124 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
18558
18698
  type: Output
18559
18699
  }] } });
18560
18700
 
18701
+ /*
18702
+ * Copyright 2015-2026 Ritense BV, the Netherlands.
18703
+ *
18704
+ * Licensed under EUPL, Version 1.2 (the "License");
18705
+ * you may not use this file except in compliance with the License.
18706
+ * You may obtain a copy of the License at
18707
+ *
18708
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
18709
+ *
18710
+ * Unless required by applicable law or agreed to in writing, software
18711
+ * distributed under the License is distributed on an "AS IS" basis,
18712
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18713
+ * See the License for the specific language governing permissions and
18714
+ * limitations under the License.
18715
+ */
18716
+ /** The comparison operators a condition can use. `in` takes a comma-separated list; `exists` takes no value, or `false` to require absence. */
18717
+ const DEFAULT_CONDITION_OPERATORS = ['==', '!=', '>', '>=', '<', '<=', 'in', 'contains', 'exists'];
18718
+ /** Editor for a tree of `path / operator / value` rows, optionally wrapped in nestable AND/OR groups. Renders itself per nested group, so one component covers any depth. */
18719
+ class ValueConditionTreeComponent {
18720
+ // Carbon provides three layer tokens, two of which contrast, so nesting levels alternate between them.
18721
+ get rowLayerLevel() {
18722
+ return this.depth % 2 === 0 ? 1 : 2;
18723
+ }
18724
+ // Inputs use the layer that contrasts with their own row, so a field always stands out from it.
18725
+ get inputLayerLevel() {
18726
+ return this.rowLayerLevel === 1 ? 2 : 1;
18727
+ }
18728
+ get canNest() {
18729
+ return this.depth + 1 < this.maxDepth;
18730
+ }
18731
+ constructor(conditionTreeService, iconService) {
18732
+ this.conditionTreeService = conditionTreeService;
18733
+ this.iconService = iconService;
18734
+ // The definition the paths resolve against — a case or building block version, per hosting editor.
18735
+ this.caseDefinitionKey = null;
18736
+ this.caseDefinitionVersionTag = null;
18737
+ /** Extra versions whose fields are merged into the path list, deduplicated by path. */
18738
+ this.additionalVersionTags = [];
18739
+ this.buildingBlockDefinitionKey = null;
18740
+ this.buildingBlockDefinitionVersionTag = null;
18741
+ this.prefixes = [];
18742
+ /** Override to offer a different set; the default is what the condition evaluators support. */
18743
+ this.operators = DEFAULT_CONDITION_OPERATORS;
18744
+ /** How deep this tree sits; 0 for the outermost list. Drives nesting depth and styling. */
18745
+ this.depth = 0;
18746
+ /** How deep groups may nest in total. Matches the backend's limit. */
18747
+ this.maxDepth = 10;
18748
+ /** Test ids for the outermost add buttons, so a consuming screen keeps its own e2e handles. */
18749
+ this.addConditionTestId = null;
18750
+ this.addGroupTestId = null;
18751
+ this.GROUP_MODES = ['anyOf', 'allOf'];
18752
+ this.testIds = VALUE_CONDITION_TREE_TEST_IDS;
18753
+ this.iconService.registerAll([Add16, TrashCan16]);
18754
+ }
18755
+ asFormGroup(control) {
18756
+ return control;
18757
+ }
18758
+ kindOf(index) {
18759
+ return this.groupAt(index).get('kind')?.value ?? 'condition';
18760
+ }
18761
+ nestedConditions(index) {
18762
+ return this.groupAt(index).get('conditions');
18763
+ }
18764
+ addCondition() {
18765
+ this.conditions.push(this.conditionTreeService.createNodeGroup());
18766
+ }
18767
+ addGroup() {
18768
+ // Seeded with one empty condition so the group starts usable; an empty group is dropped on serialization.
18769
+ this.conditions.push(this.conditionTreeService.createNodeGroup({ anyOf: [{ path: '', operator: '==', value: '' }] }));
18770
+ }
18771
+ removeNode(index) {
18772
+ this.conditions.removeAt(index);
18773
+ }
18774
+ groupAt(index) {
18775
+ return this.conditions.at(index);
18776
+ }
18777
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValueConditionTreeComponent, deps: [{ token: ValueConditionTreeService }, { token: i2$3.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
18778
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: ValueConditionTreeComponent, isStandalone: true, selector: "valtimo-value-condition-tree", inputs: { conditions: "conditions", caseDefinitionKey: "caseDefinitionKey", caseDefinitionVersionTag: "caseDefinitionVersionTag", additionalVersionTags: "additionalVersionTags", buildingBlockDefinitionKey: "buildingBlockDefinitionKey", buildingBlockDefinitionVersionTag: "buildingBlockDefinitionVersionTag", prefixes: "prefixes", operators: "operators", depth: "depth", maxDepth: "maxDepth", addConditionTestId: "addConditionTestId", addGroupTestId: "addGroupTestId" }, 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<div class=\"value-condition-tree\" [class.value-condition-tree--nested]=\"depth > 0\">\n @for (control of conditions.controls; track control; let i = $index) {\n <div\n class=\"value-condition-tree__row\"\n [cdsLayer]=\"rowLayerLevel\"\n [formGroup]=\"asFormGroup(control)\"\n >\n <div class=\"value-condition-tree__content\">\n @if (kindOf(i) === 'group') {\n <cds-select\n class=\"value-condition-tree__mode\"\n formControlName=\"mode\"\n [attr.data-test-id]=\"testIds.groupModeSelect\"\n [label]=\"'valueConditionTree.groupMode' | translate\"\n >\n @for (mode of GROUP_MODES; track mode) {\n <option [value]=\"mode\">{{ 'valueConditionTree.' + mode | translate }}</option>\n }\n </cds-select>\n\n <div class=\"value-condition-tree__nested\">\n <valtimo-value-condition-tree\n [additionalVersionTags]=\"additionalVersionTags\"\n [buildingBlockDefinitionKey]=\"buildingBlockDefinitionKey\"\n [buildingBlockDefinitionVersionTag]=\"buildingBlockDefinitionVersionTag\"\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [caseDefinitionVersionTag]=\"caseDefinitionVersionTag\"\n [conditions]=\"nestedConditions(i)\"\n [depth]=\"depth + 1\"\n [maxDepth]=\"maxDepth\"\n [operators]=\"operators\"\n [prefixes]=\"prefixes\"\n ></valtimo-value-condition-tree>\n </div>\n } @else {\n <div class=\"value-condition-tree__fields\">\n <valtimo-value-path-selector\n formControlName=\"path\"\n [additionalVersionTags]=\"additionalVersionTags\"\n [buildingBlockDefinitionKey]=\"buildingBlockDefinitionKey\"\n [buildingBlockDefinitionVersionTag]=\"buildingBlockDefinitionVersionTag\"\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [caseDefinitionVersionTag]=\"caseDefinitionVersionTag\"\n [label]=\"'valueConditionTree.path' | translate\"\n [notation]=\"'slashes'\"\n [prefixes]=\"prefixes\"\n ></valtimo-value-path-selector>\n\n <cds-select\n formControlName=\"operator\"\n [attr.data-test-id]=\"testIds.operatorSelect\"\n [label]=\"'valueConditionTree.operator' | translate\"\n >\n @for (operator of operators; track operator) {\n <option [value]=\"operator\">{{ operator }}</option>\n }\n </cds-select>\n\n <cds-text-label>\n {{ 'valueConditionTree.value' | translate }}\n <input cdsText formControlName=\"value\" [attr.data-test-id]=\"testIds.valueInput\" />\n </cds-text-label>\n </div>\n }\n </div>\n\n <button\n class=\"value-condition-tree__remove\"\n cdsButton=\"danger--ghost\"\n size=\"sm\"\n [attr.data-test-id]=\"testIds.removeButton\"\n [iconOnly]=\"true\"\n [title]=\"'interface.delete' | translate\"\n (click)=\"removeNode(i)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n } @empty {\n @if (depth > 0) {\n <p class=\"value-condition-tree__empty\">\n {{ 'valueConditionTree.emptyGroup' | translate }}\n </p>\n }\n }\n\n <div class=\"value-condition-tree__actions\">\n <button\n cdsButton=\"tertiary\"\n size=\"sm\"\n [attr.data-test-id]=\"depth === 0 ? (addConditionTestId ?? testIds.addConditionButton) : null\"\n (click)=\"addCondition()\"\n >\n {{ 'valueConditionTree.addCondition' | translate }}\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n @if (canNest) {\n <button\n cdsButton=\"ghost\"\n size=\"sm\"\n [attr.data-test-id]=\"depth === 0 ? (addGroupTestId ?? testIds.addGroupButton) : null\"\n (click)=\"addGroup()\"\n >\n {{ 'valueConditionTree.addGroup' | translate }}\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n }\n </div>\n</div>\n", styles: [".value-condition-tree{display:flex;flex-direction:column;gap:.75rem}.value-condition-tree--nested{border-left:2px solid var(--cds-border-subtle, #c6c6c6);margin-top:.5rem;padding-left:1rem}.value-condition-tree__row{align-items:stretch;background-color:var(--cds-layer);border:1px solid var(--cds-border-subtle);display:flex;flex-direction:row;gap:1rem;padding:.75rem}.value-condition-tree__content{display:flex;flex:1 1 auto;flex-direction:column;gap:.75rem;min-width:0}.value-condition-tree__fields{display:grid;gap:1rem;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,2fr)}@media(max-width:800px){.value-condition-tree__fields{grid-template-columns:minmax(0,1fr)}}.value-condition-tree__mode{max-width:12rem}.value-condition-tree__nested{display:flex;flex-direction:column}.value-condition-tree__remove{align-items:flex-start;align-self:stretch}.value-condition-tree__empty{color:var(--cds-text-secondary);font-size:.75rem}.value-condition-tree__actions{display:flex;flex-direction:row;gap:.5rem}\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: "component", type: ValueConditionTreeComponent, selector: "valtimo-value-condition-tree", inputs: ["conditions", "caseDefinitionKey", "caseDefinitionVersionTag", "additionalVersionTags", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "prefixes", "operators", "depth", "maxDepth", "addConditionTestId", "addGroupTestId"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i2$3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i2$3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: LayerModule }, { kind: "directive", type: i2$3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "ngmodule", type: SelectModule$1 }, { kind: "component", type: i2$3.Select, selector: "cds-select, ibm-select", inputs: ["value", "display", "label", "helperText", "invalidText", "warn", "warnText", "id", "size", "disabled", "skeleton", "invalid", "readonly", "theme", "ariaLabel", "fluid"], outputs: ["valueChange"] }, { kind: "directive", type: i2$3.Option, selector: "option" }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "caseDefinitionKey", "caseDefinitionVersionTag", "buildingBlockDefinitionKey", "buildingBlockDefinitionVersionTag", "additionalVersionTags", "prefixes", "excludePrefixes", "label", "tooltip", "required", "showCaseDefinitionSelector", "notation", "dropUp", "defaultValue", "type", "parentItem", "filterItems"], outputs: ["valueChangeEvent", "collectionSelected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18779
+ }
18780
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ValueConditionTreeComponent, decorators: [{
18781
+ type: Component,
18782
+ args: [{ standalone: true, selector: 'valtimo-value-condition-tree', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
18783
+ CommonModule,
18784
+ ReactiveFormsModule,
18785
+ TranslateModule,
18786
+ ButtonModule,
18787
+ IconModule,
18788
+ InputModule$1,
18789
+ LayerModule,
18790
+ SelectModule$1,
18791
+ ValuePathSelectorComponent,
18792
+ ], 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<div class=\"value-condition-tree\" [class.value-condition-tree--nested]=\"depth > 0\">\n @for (control of conditions.controls; track control; let i = $index) {\n <div\n class=\"value-condition-tree__row\"\n [cdsLayer]=\"rowLayerLevel\"\n [formGroup]=\"asFormGroup(control)\"\n >\n <div class=\"value-condition-tree__content\">\n @if (kindOf(i) === 'group') {\n <cds-select\n class=\"value-condition-tree__mode\"\n formControlName=\"mode\"\n [attr.data-test-id]=\"testIds.groupModeSelect\"\n [label]=\"'valueConditionTree.groupMode' | translate\"\n >\n @for (mode of GROUP_MODES; track mode) {\n <option [value]=\"mode\">{{ 'valueConditionTree.' + mode | translate }}</option>\n }\n </cds-select>\n\n <div class=\"value-condition-tree__nested\">\n <valtimo-value-condition-tree\n [additionalVersionTags]=\"additionalVersionTags\"\n [buildingBlockDefinitionKey]=\"buildingBlockDefinitionKey\"\n [buildingBlockDefinitionVersionTag]=\"buildingBlockDefinitionVersionTag\"\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [caseDefinitionVersionTag]=\"caseDefinitionVersionTag\"\n [conditions]=\"nestedConditions(i)\"\n [depth]=\"depth + 1\"\n [maxDepth]=\"maxDepth\"\n [operators]=\"operators\"\n [prefixes]=\"prefixes\"\n ></valtimo-value-condition-tree>\n </div>\n } @else {\n <div class=\"value-condition-tree__fields\">\n <valtimo-value-path-selector\n formControlName=\"path\"\n [additionalVersionTags]=\"additionalVersionTags\"\n [buildingBlockDefinitionKey]=\"buildingBlockDefinitionKey\"\n [buildingBlockDefinitionVersionTag]=\"buildingBlockDefinitionVersionTag\"\n [caseDefinitionKey]=\"caseDefinitionKey\"\n [caseDefinitionVersionTag]=\"caseDefinitionVersionTag\"\n [label]=\"'valueConditionTree.path' | translate\"\n [notation]=\"'slashes'\"\n [prefixes]=\"prefixes\"\n ></valtimo-value-path-selector>\n\n <cds-select\n formControlName=\"operator\"\n [attr.data-test-id]=\"testIds.operatorSelect\"\n [label]=\"'valueConditionTree.operator' | translate\"\n >\n @for (operator of operators; track operator) {\n <option [value]=\"operator\">{{ operator }}</option>\n }\n </cds-select>\n\n <cds-text-label>\n {{ 'valueConditionTree.value' | translate }}\n <input cdsText formControlName=\"value\" [attr.data-test-id]=\"testIds.valueInput\" />\n </cds-text-label>\n </div>\n }\n </div>\n\n <button\n class=\"value-condition-tree__remove\"\n cdsButton=\"danger--ghost\"\n size=\"sm\"\n [attr.data-test-id]=\"testIds.removeButton\"\n [iconOnly]=\"true\"\n [title]=\"'interface.delete' | translate\"\n (click)=\"removeNode(i)\"\n >\n <svg cdsIcon=\"trash-can\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n } @empty {\n @if (depth > 0) {\n <p class=\"value-condition-tree__empty\">\n {{ 'valueConditionTree.emptyGroup' | translate }}\n </p>\n }\n }\n\n <div class=\"value-condition-tree__actions\">\n <button\n cdsButton=\"tertiary\"\n size=\"sm\"\n [attr.data-test-id]=\"depth === 0 ? (addConditionTestId ?? testIds.addConditionButton) : null\"\n (click)=\"addCondition()\"\n >\n {{ 'valueConditionTree.addCondition' | translate }}\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n @if (canNest) {\n <button\n cdsButton=\"ghost\"\n size=\"sm\"\n [attr.data-test-id]=\"depth === 0 ? (addGroupTestId ?? testIds.addGroupButton) : null\"\n (click)=\"addGroup()\"\n >\n {{ 'valueConditionTree.addGroup' | translate }}\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n }\n </div>\n</div>\n", styles: [".value-condition-tree{display:flex;flex-direction:column;gap:.75rem}.value-condition-tree--nested{border-left:2px solid var(--cds-border-subtle, #c6c6c6);margin-top:.5rem;padding-left:1rem}.value-condition-tree__row{align-items:stretch;background-color:var(--cds-layer);border:1px solid var(--cds-border-subtle);display:flex;flex-direction:row;gap:1rem;padding:.75rem}.value-condition-tree__content{display:flex;flex:1 1 auto;flex-direction:column;gap:.75rem;min-width:0}.value-condition-tree__fields{display:grid;gap:1rem;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,2fr)}@media(max-width:800px){.value-condition-tree__fields{grid-template-columns:minmax(0,1fr)}}.value-condition-tree__mode{max-width:12rem}.value-condition-tree__nested{display:flex;flex-direction:column}.value-condition-tree__remove{align-items:flex-start;align-self:stretch}.value-condition-tree__empty{color:var(--cds-text-secondary);font-size:.75rem}.value-condition-tree__actions{display:flex;flex-direction:row;gap:.5rem}\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"] }]
18793
+ }], ctorParameters: () => [{ type: ValueConditionTreeService }, { type: i2$3.IconService }], propDecorators: { conditions: [{
18794
+ type: Input
18795
+ }], caseDefinitionKey: [{
18796
+ type: Input
18797
+ }], caseDefinitionVersionTag: [{
18798
+ type: Input
18799
+ }], additionalVersionTags: [{
18800
+ type: Input
18801
+ }], buildingBlockDefinitionKey: [{
18802
+ type: Input
18803
+ }], buildingBlockDefinitionVersionTag: [{
18804
+ type: Input
18805
+ }], prefixes: [{
18806
+ type: Input
18807
+ }], operators: [{
18808
+ type: Input
18809
+ }], depth: [{
18810
+ type: Input
18811
+ }], maxDepth: [{
18812
+ type: Input
18813
+ }], addConditionTestId: [{
18814
+ type: Input
18815
+ }], addGroupTestId: [{
18816
+ type: Input
18817
+ }] } });
18818
+
18561
18819
  /*
18562
18820
  * Copyright 2015-2025 Ritense BV, the Netherlands.
18563
18821
  *
@@ -22028,5 +22286,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
22028
22286
  * Generated bundle index. Do not edit.
22029
22287
  */
22030
22288
 
22031
- export { ARBITRARY_AMOUNT_VALUE_TEST_IDS, AUTO_KEY_INPUT_TEST_IDS, AdminSettingsService, Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, AssignmentComponent, AutoKeyInputComponent, BOOLEAN_CONVERTER_VALUES, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, BreadcrumbService, CARBON_CONSTANTS, CARBON_THEME, CASES_WITHOUT_STATUS_KEY, COLOR_PICKER_TEST_IDS, CONFIRMATION_MODAL_TEST_IDS, CamundaFormComponent, CamundaFormModule, CarbonListComponent, CarbonListFilterPipe, CarbonListModule, CarbonMultiInputComponent, CarbonMultiInputModule, CarbonNoResultsComponent, CaseCountPipe, CaseTagsSelectorComponent, CdsThemeService, ChoiceFieldService, ColorPickerComponent, ComponentsPipesModule, ConfirmationModalComponent, ConfirmationModalModule, ContextMenuDirective, CtrlClickDirective, CurrentCarbonTheme, DEFAULT_LIST_TRANSLATIONS, DEFAULT_PAGINATION, DEFAULT_PAGINATOR_CONFIG, DataListComponent, DataListModule, DatePickerComponent, DatePickerModule, DateTimePickerComponent, DigitOnlyDirective, DragDropListComponent, DropzoneComponent, DropzoneModule, EditorComponent, EditorModule, EllipsisPipe, ExpansionPanelComponent, ExpansionPanelModule, FieldAutoFocusDirective, FieldAutoFocusModule, FileSizeModule, FileSizePipe, FilterSidebarComponent, FilterSidebarModule, FitPageDirective, FormComponent, FormIoCurrencyComponent, FormIoCurrentUserComponent, FormIoDomService, FormIoIbanComponent, FormIoMailPreviewComponent, FormIoModule, FormIoStateService, FormIoTagsService, FormIoUploaderComponent, FormModule, FormioBuilderComponent, FormioComponent, FormioDummyComponent, FormioOptionsImpl, FormioValueResolverSelectorComponent, InputComponent, InputLabelComponent, InputLabelModule, InputModule, IsArrayPipe, JSON_EDITOR_TEST_IDS, JsonEditorComponent, KEY_DROPDOWN_VALUE_TEST_IDS, KEY_VALUE_PATH_SELECTOR_TEST_IDS, KEY_VALUE_TEST_IDS, KeyGeneratorService, LeftSidebarComponent, LeftSidebarModule, ListColumnViewComponent, MENU_CONFIGURATION_VERSION, MENU_ITEM_CATALOG, MULTI_INPUT_TEST_IDS, MdiIconSelectorComponent, MdiIconViewerComponent, MenuItemTextComponent, MenuItemTranslationPipe, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, ModalService, MonacoTheme, MoveRowDirection, MultiInputFormComponent, MultiInputFormModule, MultiselectDropdownComponent, MultiselectDropdownModule, MuuriDirective, MuuriDirectiveModule, MuuriItemComponent, ObjectManagementSelectComponent, ObjectManagementSelectService, ObserveSizeDirective, OverflowMenuComponent, OverflowMenuModule, OverflowMenuOptionComponent, OverflowMenuTriggerComponent, PLUGIN_PAGE_ROUTE, POPULAR_MDI_ICONS, PageHeaderComponent, PageHeaderModule, PageHeaderService, PageSubtitleService, PageTitleComponent, PageTitleModule, PageTitleService, ParagraphComponent, ParagraphModule, PendingChangesComponent, PendingChangesService, ProgressBarComponent, ProgressBarModule, PromptComponent, PromptModule, PromptService, QUICK_SEARCH_SERVICE, QuickSearchComponent, QuickSearchStateService, RIGHT_SIDEBAR_TEST_IDS, RadioComponent, RadioModule, ReadOnlyDirective, RemoveClassnamesDirective, RenderInBodyComponent, RenderInPageHeaderDirective, RenderPageHeaderDirective, RightSidebarComponent, RightSidebarModule, SCHEMA_EDITOR_REQUIRED_PROPERTY_TEST_ID_PREFIX, SCHEMA_EDITOR_TEST_IDS, SEARCH_FIELDS_TEST_IDS, SEARCH_FIELD_TEST_ID_PREFIX, SECTION_HEADER_TEXT_CLASS, SINGLE_VALUE_TEST_IDS, STEPPER_FOOTER_STEP_TEST_IDS, SchemaEditorComponent, SearchFieldsComponent, SearchFieldsModule, SelectComponent, SelectModule, SelectableCarbonTheme, ShellService, SpinnerComponent, SpinnerModule, StatusSelectorComponent, StepperContainerComponent, StepperContentComponent, StepperFooterComponent, StepperFooterStepComponent, StepperHeaderComponent, StepperModule, StepperService, StepperStepComponent, TAG_ELLIPSIS_LIMIT, TableComponent, TableModule, TimelineComponent, TimelineItemImpl, TimelineModule, TooltipComponent, TooltipDirective, TooltipIconComponent, TooltipIconModule, TooltipModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, UserInterfaceService, VALUE_PATH_SELECTOR_DROPDOWN_VALUE_TEST_IDS, VALUE_PATH_SELECTOR_TEST_IDS, VALUE_PATH_SELECTOR_VALUE_TEST_IDS, VModalComponent, VModalModule, ValtimoCdsModalDirective, ValtimoModalService, ValuePathSelectorComponent, ValuePathSelectorInputMode, ValuePathSelectorPrefix, ValuePathSelectorService, ValuePathType, ViewContentService, ViewType, WIDGET_LAYOUT_TRANSLATION_KEYS, WIDGET_LAYOUT_VALUES, WIDGET_ROW_HEIGHT_DEFAULT, WIDGET_ROW_HEIGHT_GAP_FREE, WebcamComponent, WebcamModule, WidgetComponent, WidgetLayout, WidgetLayoutInfoComponent, WidgetModule, applyDataGridPatch, buildMenuConfigurationFromRuntimeMenu, collectObjectLevels, createCustomFormioComponent, customUploaderType, enableCustomFormioComponents, findMenuCatalogEntryByLink, findMenuCatalogGroupEntryByTitle, getMenuCatalogEntry, hasSavedMenuConfiguration, includeFunctionToName, menuInitializer, menuLinkToString, muuriGapFreeLayout, normaliseMenuLink, parseIncludeFunction, pendingChangesGuard, registerCustomFormioComponent, registerCustomTag, registerFormioCurrencyComponent, registerFormioCurrentUserComponent, registerFormioFileSelectorComponent, registerFormioIbanComponent, registerFormioMailPreviewComponent, registerFormioUploadComponent, registerFormioValueResolverSelectorComponent, registerObjectManagementSelectFormioComponent, resolveMenuConfiguration, resolveWidgetLayout, runAfterCarbonModalClosed, serializeIncludeFunction, setRequiredOnSchema };
22289
+ export { ARBITRARY_AMOUNT_VALUE_TEST_IDS, AUTO_KEY_INPUT_TEST_IDS, AdminSettingsService, Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, AssignmentComponent, AutoKeyInputComponent, BOOLEAN_CONVERTER_VALUES, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, BreadcrumbService, CARBON_CONSTANTS, CARBON_THEME, CASES_WITHOUT_STATUS_KEY, COLOR_PICKER_TEST_IDS, CONFIRMATION_MODAL_TEST_IDS, CamundaFormComponent, CamundaFormModule, CarbonListComponent, CarbonListFilterPipe, CarbonListModule, CarbonMultiInputComponent, CarbonMultiInputModule, CarbonNoResultsComponent, CaseCountPipe, CaseTagsSelectorComponent, CdsThemeService, ChoiceFieldService, ColorPickerComponent, ComponentsPipesModule, ConfirmationModalComponent, ConfirmationModalModule, ContextMenuDirective, CtrlClickDirective, CurrentCarbonTheme, DEFAULT_LIST_TRANSLATIONS, DEFAULT_PAGINATION, DEFAULT_PAGINATOR_CONFIG, DataListComponent, DataListModule, DatePickerComponent, DatePickerModule, DateTimePickerComponent, DigitOnlyDirective, DragDropListComponent, DropzoneComponent, DropzoneModule, EditorComponent, EditorModule, EllipsisPipe, ExpansionPanelComponent, ExpansionPanelModule, FieldAutoFocusDirective, FieldAutoFocusModule, FileSizeModule, FileSizePipe, FilterSidebarComponent, FilterSidebarModule, FitPageDirective, FormComponent, FormIoCurrencyComponent, FormIoCurrentUserComponent, FormIoDomService, FormIoIbanComponent, FormIoMailPreviewComponent, FormIoModule, FormIoStateService, FormIoTagsService, FormIoUploaderComponent, FormModule, FormioBuilderComponent, FormioComponent, FormioDummyComponent, FormioOptionsImpl, FormioValueResolverSelectorComponent, InputComponent, InputLabelComponent, InputLabelModule, InputModule, IsArrayPipe, JSON_EDITOR_TEST_IDS, JsonEditorComponent, KEY_DROPDOWN_VALUE_TEST_IDS, KEY_VALUE_PATH_SELECTOR_TEST_IDS, KEY_VALUE_TEST_IDS, KeyGeneratorService, LeftSidebarComponent, LeftSidebarModule, ListColumnViewComponent, MENU_CONFIGURATION_VERSION, MENU_ITEM_CATALOG, MULTI_INPUT_TEST_IDS, MdiIconSelectorComponent, MdiIconViewerComponent, MenuItemTextComponent, MenuItemTranslationPipe, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, ModalService, MonacoTheme, MoveRowDirection, MultiInputFormComponent, MultiInputFormModule, MultiselectDropdownComponent, MultiselectDropdownModule, MuuriDirective, MuuriDirectiveModule, MuuriItemComponent, ObjectManagementSelectComponent, ObjectManagementSelectService, ObserveSizeDirective, OverflowMenuComponent, OverflowMenuModule, OverflowMenuOptionComponent, OverflowMenuTriggerComponent, PLUGIN_PAGE_ROUTE, POPULAR_MDI_ICONS, PageHeaderComponent, PageHeaderModule, PageHeaderService, PageSubtitleService, PageTitleComponent, PageTitleModule, PageTitleService, ParagraphComponent, ParagraphModule, PendingChangesComponent, PendingChangesService, ProgressBarComponent, ProgressBarModule, PromptComponent, PromptModule, PromptService, QUICK_SEARCH_SERVICE, QuickSearchComponent, QuickSearchStateService, RIGHT_SIDEBAR_TEST_IDS, RadioComponent, RadioModule, ReadOnlyDirective, RemoveClassnamesDirective, RenderInBodyComponent, RenderInPageHeaderDirective, RenderPageHeaderDirective, RightSidebarComponent, RightSidebarModule, SCHEMA_EDITOR_REQUIRED_PROPERTY_TEST_ID_PREFIX, SCHEMA_EDITOR_TEST_IDS, SEARCH_FIELDS_TEST_IDS, SEARCH_FIELD_TEST_ID_PREFIX, SECTION_HEADER_TEXT_CLASS, SINGLE_VALUE_TEST_IDS, STEPPER_FOOTER_STEP_TEST_IDS, SchemaEditorComponent, SearchFieldsComponent, SearchFieldsModule, SelectComponent, SelectModule, SelectableCarbonTheme, ShellService, SpinnerComponent, SpinnerModule, StatusSelectorComponent, StepperContainerComponent, StepperContentComponent, StepperFooterComponent, StepperFooterStepComponent, StepperHeaderComponent, StepperModule, StepperService, StepperStepComponent, TAG_ELLIPSIS_LIMIT, TableComponent, TableModule, TimelineComponent, TimelineItemImpl, TimelineModule, TooltipComponent, TooltipDirective, TooltipIconComponent, TooltipIconModule, TooltipModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, UserInterfaceService, VALUE_CONDITION_TREE_TEST_IDS, VALUE_PATH_SELECTOR_DROPDOWN_VALUE_TEST_IDS, VALUE_PATH_SELECTOR_TEST_IDS, VALUE_PATH_SELECTOR_VALUE_TEST_IDS, VModalComponent, VModalModule, ValtimoCdsModalDirective, ValtimoModalService, ValueConditionTreeComponent, ValueConditionTreeService, ValuePathSelectorComponent, ValuePathSelectorInputMode, ValuePathSelectorPrefix, ValuePathSelectorService, ValuePathType, ViewContentService, ViewType, WIDGET_LAYOUT_TRANSLATION_KEYS, WIDGET_LAYOUT_VALUES, WIDGET_ROW_HEIGHT_DEFAULT, WIDGET_ROW_HEIGHT_GAP_FREE, WebcamComponent, WebcamModule, WidgetComponent, WidgetLayout, WidgetLayoutInfoComponent, WidgetModule, applyDataGridPatch, buildMenuConfigurationFromRuntimeMenu, collectObjectLevels, createCustomFormioComponent, customUploaderType, enableCustomFormioComponents, findMenuCatalogEntryByLink, findMenuCatalogGroupEntryByTitle, getMenuCatalogEntry, hasSavedMenuConfiguration, includeFunctionToName, menuInitializer, menuLinkToString, muuriGapFreeLayout, normaliseMenuLink, parseIncludeFunction, pendingChangesGuard, registerCustomFormioComponent, registerCustomTag, registerFormioCurrencyComponent, registerFormioCurrentUserComponent, registerFormioFileSelectorComponent, registerFormioIbanComponent, registerFormioMailPreviewComponent, registerFormioUploadComponent, registerFormioValueResolverSelectorComponent, registerObjectManagementSelectFormioComponent, resolveMenuConfiguration, resolveWidgetLayout, runAfterCarbonModalClosed, serializeIncludeFunction, setRequiredOnSchema };
22032
22290
  //# sourceMappingURL=valtimo-components.mjs.map