@valtimo/components 13.47.1 → 13.49.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.
- package/fesm2022/valtimo-components.mjs +283 -25
- package/fesm2022/valtimo-components.mjs.map +1 -1
- package/lib/components/menu/menu-item-catalog.d.ts.map +1 -1
- package/lib/components/value-condition-tree/value-condition-tree.component.d.ts +50 -0
- package/lib/components/value-condition-tree/value-condition-tree.component.d.ts.map +1 -0
- package/lib/components/value-path-selector/value-path-selector.component.d.ts +12 -2
- package/lib/components/value-path-selector/value-path-selector.component.d.ts.map +1 -1
- package/lib/constants/components.test-ids.d.ts +8 -0
- package/lib/constants/components.test-ids.d.ts.map +1 -1
- package/lib/models/index.d.ts +1 -0
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/value-condition.model.d.ts +17 -0
- package/lib/models/value-condition.model.d.ts.map +1 -0
- package/lib/models/value-path-selector.model.d.ts +2 -0
- package/lib/models/value-path-selector.model.d.ts.map +1 -1
- package/lib/services/index.d.ts +1 -0
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/value-condition-tree.service.d.ts +17 -0
- package/lib/services/value-condition-tree.service.d.ts.map +1 -0
- package/lib/services/value-path-selector.service.d.ts.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
- package/public_api.d.ts.map +1 -1
|
@@ -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,
|
|
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
|
-
|
|
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
|
|
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
|