@valtimo/components 12.6.1 → 12.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/assets/css/formio-carbon.scss +132 -14
  2. package/esm2022/lib/components/carbon-list/carbon-list.component.mjs +28 -19
  3. package/esm2022/lib/components/form-io/formio-value-resolver-selector/formio-value-resolver-selector.component.mjs +1 -1
  4. package/esm2022/lib/components/multi-input/carbon-multi-input.component.mjs +122 -74
  5. package/esm2022/lib/components/multi-input/carbon-multi-input.module.mjs +25 -3
  6. package/esm2022/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.mjs +63 -0
  7. package/esm2022/lib/components/multi-input/components/arbitrary-amount-value/index.mjs +17 -0
  8. package/esm2022/lib/components/multi-input/components/index.mjs +23 -0
  9. package/esm2022/lib/components/multi-input/components/key-dropdown-value/index.mjs +17 -0
  10. package/esm2022/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.mjs +71 -0
  11. package/esm2022/lib/components/multi-input/components/key-value/index.mjs +17 -0
  12. package/esm2022/lib/components/multi-input/components/key-value/key-value.component.mjs +62 -0
  13. package/esm2022/lib/components/multi-input/components/key-value-path-selector/index.mjs +17 -0
  14. package/esm2022/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.mjs +82 -0
  15. package/esm2022/lib/components/multi-input/components/single-value/index.mjs +17 -0
  16. package/esm2022/lib/components/multi-input/components/single-value/single-value.component.mjs +49 -0
  17. package/esm2022/lib/components/multi-input/components/value-path-selector-dropdown-value/index.mjs +17 -0
  18. package/esm2022/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.mjs +92 -0
  19. package/esm2022/lib/components/multi-input/components/value-path-selector-value/index.mjs +17 -0
  20. package/esm2022/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.mjs +82 -0
  21. package/esm2022/lib/components/value-path-selector/index.mjs +17 -0
  22. package/esm2022/lib/components/value-path-selector/value-path-selector.component.mjs +62 -22
  23. package/esm2022/lib/models/multi-input.model.mjs +1 -1
  24. package/esm2022/lib/models/value-path-selector.model.mjs +7 -2
  25. package/esm2022/lib/services/key-generator.service.mjs +2 -2
  26. package/esm2022/lib/services/value-path-selector.service.mjs +55 -40
  27. package/fesm2022/valtimo-components.mjs +1042 -315
  28. package/fesm2022/valtimo-components.mjs.map +1 -1
  29. package/lib/components/carbon-list/carbon-list.component.d.ts.map +1 -1
  30. package/lib/components/multi-input/carbon-multi-input.component.d.ts +33 -23
  31. package/lib/components/multi-input/carbon-multi-input.component.d.ts.map +1 -1
  32. package/lib/components/multi-input/carbon-multi-input.module.d.ts +8 -1
  33. package/lib/components/multi-input/carbon-multi-input.module.d.ts.map +1 -1
  34. package/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.d.ts +23 -0
  35. package/lib/components/multi-input/components/arbitrary-amount-value/arbitrary-amount-value.component.d.ts.map +1 -0
  36. package/lib/components/multi-input/components/arbitrary-amount-value/index.d.ts +2 -0
  37. package/lib/components/multi-input/components/arbitrary-amount-value/index.d.ts.map +1 -0
  38. package/lib/components/multi-input/components/index.d.ts +8 -0
  39. package/lib/components/multi-input/components/index.d.ts.map +1 -0
  40. package/lib/components/multi-input/components/key-dropdown-value/index.d.ts +2 -0
  41. package/lib/components/multi-input/components/key-dropdown-value/index.d.ts.map +1 -0
  42. package/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.d.ts +27 -0
  43. package/lib/components/multi-input/components/key-dropdown-value/key-dropdown-value.component.d.ts.map +1 -0
  44. package/lib/components/multi-input/components/key-value/index.d.ts +2 -0
  45. package/lib/components/multi-input/components/key-value/index.d.ts.map +1 -0
  46. package/lib/components/multi-input/components/key-value/key-value.component.d.ts +22 -0
  47. package/lib/components/multi-input/components/key-value/key-value.component.d.ts.map +1 -0
  48. package/lib/components/multi-input/components/key-value-path-selector/index.d.ts +2 -0
  49. package/lib/components/multi-input/components/key-value-path-selector/index.d.ts.map +1 -0
  50. package/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.d.ts +26 -0
  51. package/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.d.ts.map +1 -0
  52. package/lib/components/multi-input/components/single-value/index.d.ts +2 -0
  53. package/lib/components/multi-input/components/single-value/index.d.ts.map +1 -0
  54. package/lib/components/multi-input/components/single-value/single-value.component.d.ts +16 -0
  55. package/lib/components/multi-input/components/single-value/single-value.component.d.ts.map +1 -0
  56. package/lib/components/multi-input/components/value-path-selector-dropdown-value/index.d.ts +2 -0
  57. package/lib/components/multi-input/components/value-path-selector-dropdown-value/index.d.ts.map +1 -0
  58. package/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.d.ts +31 -0
  59. package/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.d.ts.map +1 -0
  60. package/lib/components/multi-input/components/value-path-selector-value/index.d.ts +2 -0
  61. package/lib/components/multi-input/components/value-path-selector-value/index.d.ts.map +1 -0
  62. package/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.d.ts +26 -0
  63. package/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.d.ts.map +1 -0
  64. package/lib/components/value-path-selector/index.d.ts +2 -0
  65. package/lib/components/value-path-selector/index.d.ts.map +1 -0
  66. package/lib/components/value-path-selector/value-path-selector.component.d.ts +13 -7
  67. package/lib/components/value-path-selector/value-path-selector.component.d.ts.map +1 -1
  68. package/lib/models/multi-input.model.d.ts +3 -2
  69. package/lib/models/multi-input.model.d.ts.map +1 -1
  70. package/lib/models/value-path-selector.model.d.ts +17 -2
  71. package/lib/models/value-path-selector.model.d.ts.map +1 -1
  72. package/lib/services/value-path-selector.service.d.ts +8 -4
  73. package/lib/services/value-path-selector.service.d.ts.map +1 -1
  74. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, NgModule, RendererStyleFlags2, Injectable, Inject, Component, Input, Directive, EventEmitter, Output, ViewContainerRef, ViewChild, HostBinding, ViewEncapsulation, HostListener, inject, InjectionToken, ChangeDetectionStrategy, signal, TemplateRef, ContentChild, ElementRef, forwardRef, ViewChildren, ContentChildren } from '@angular/core';
3
- import { combineLatest, map, BehaviorSubject, fromEvent, Subject, Subscription, Observable, of, switchMap, catchError, take as take$1, interval, timer, startWith, tap as tap$1, filter as filter$1, merge, debounceTime as debounceTime$1, first } from 'rxjs';
2
+ import { Pipe, NgModule, RendererStyleFlags2, Inject, Injectable, Input, Component, Directive, EventEmitter, Output, ViewContainerRef, ViewChild, HostBinding, ViewEncapsulation, HostListener, inject, InjectionToken, ChangeDetectionStrategy, signal, TemplateRef, ContentChild, ElementRef, forwardRef, ViewChildren, ContentChildren } from '@angular/core';
3
+ import { combineLatest, map, BehaviorSubject, fromEvent, Subject, Subscription, Observable, take as take$1, of, tap as tap$1, interval, switchMap, timer, startWith, filter as filter$1, merge, debounceTime as debounceTime$1, first } from 'rxjs';
4
4
  import * as i1 from '@ngx-translate/core';
5
5
  import { TranslateModule, TranslateLoader, TranslateService } from '@ngx-translate/core';
6
6
  import { take, map as map$1, tap, debounceTime, filter, takeUntil, distinctUntilChanged, switchMap as switchMap$1, delay } from 'rxjs/operators';
@@ -636,6 +636,11 @@ class TimelineItemImpl {
636
636
  * See the License for the specific language governing permissions and
637
637
  * limitations under the License.
638
638
  */
639
+ var ValuePathType;
640
+ (function (ValuePathType) {
641
+ ValuePathType["FIELD"] = "FIELD";
642
+ ValuePathType["COLLECTION"] = "COLLECTION";
643
+ })(ValuePathType || (ValuePathType = {}));
639
644
  var ValuePathSelectorPrefix;
640
645
  (function (ValuePathSelectorPrefix) {
641
646
  ValuePathSelectorPrefix["DOC"] = "doc";
@@ -2053,7 +2058,7 @@ class KeyGeneratorService {
2053
2058
  .toLowerCase()
2054
2059
  .replace(/[^a-z0-9-_]+|-[^a-z0-9]+/g, '-')
2055
2060
  .replace(/_[-_]+/g, '_')
2056
- .replace(/^[^a-z]+/g, '');
2061
+ .replace(/^[^a-z]+|[^a-z0-9]+$/g, '');
2057
2062
  if (!usedKeys.includes(dashCaseKey)) {
2058
2063
  return dashCaseKey;
2059
2064
  }
@@ -2090,32 +2095,6 @@ class ValuePathSelectorService extends BaseApiService {
2090
2095
  this._subscriptions = new Subscription();
2091
2096
  this.openClearCacheSubscription();
2092
2097
  }
2093
- getResolvableKeysPerPrefix(prefixes, documentDefinitionName, version = 'latest') {
2094
- return of(version).pipe(switchMap(version => {
2095
- const prefixesWithCache = prefixes.filter(prefix => !!this.getResultFromCache(prefix, documentDefinitionName, version));
2096
- const resultsFromCache = prefixesWithCache
2097
- .map(prefix => this.getResultFromCache(prefix, documentDefinitionName, version))
2098
- .reduce((acc, curr) => [...acc, ...curr], []);
2099
- const prefixesWithoutCache = prefixes.filter(prefix => !prefixesWithCache.includes(prefix));
2100
- const httpCall = typeof version !== 'number'
2101
- ? this.httpClient
2102
- .post(this.getApiUrl(`/management/v1/value-resolver/document-definition/${documentDefinitionName}/keys`), prefixesWithoutCache)
2103
- .pipe(catchError(() => of([])))
2104
- : this.httpClient
2105
- .post(this.getApiUrl(`/management/v1/value-resolver/document-definition/${documentDefinitionName}/version/${version}/keys`), prefixesWithoutCache)
2106
- .pipe(catchError(() => of([])));
2107
- return combineLatest([
2108
- prefixesWithoutCache.length > 0 ? httpCall : of([]),
2109
- of(resultsFromCache),
2110
- ]);
2111
- }), tap(([result, resultsFromCache]) => {
2112
- const combinedResults = [...result, ...resultsFromCache];
2113
- prefixes.forEach(prefix => {
2114
- const prefixResults = combinedResults.filter(valuePath => valuePath.includes(prefix));
2115
- this.cacheResult(prefix, documentDefinitionName, version, prefixResults);
2116
- });
2117
- }), map(([result, resultsFromCache]) => [...result, ...resultsFromCache]));
2118
- }
2119
2098
  ngOnDestroy() {
2120
2099
  this._subscriptions.unsubscribe();
2121
2100
  }
@@ -2128,26 +2107,67 @@ class ValuePathSelectorService extends BaseApiService {
2128
2107
  getDocumentDefinitionCache() {
2129
2108
  return this._documentDefinitionCache$.asObservable();
2130
2109
  }
2110
+ getResolvableKeys(prefixes, documentDefinitionName, type = ValuePathType.FIELD, version = 'latest') {
2111
+ this._prefixes = prefixes;
2112
+ this._documentDefinitionName = documentDefinitionName;
2113
+ this._version = version;
2114
+ const url = typeof version !== 'number'
2115
+ ? `/management/v2/value-resolver/document-definition/${documentDefinitionName}/keys`
2116
+ : `/management/v2/value-resolver/document-definition/${documentDefinitionName}/version/${version}/keys`;
2117
+ const prefixesWithoutCache = prefixes.filter((prefix) => !this.getCacheResult(prefix, type));
2118
+ return (prefixesWithoutCache.length > 0
2119
+ ? this.httpClient.post(this.getApiUrl(url), {
2120
+ prefixes: prefixesWithoutCache,
2121
+ type,
2122
+ })
2123
+ : of([])).pipe(tap$1((results) => {
2124
+ if (type === ValuePathType.FIELD)
2125
+ this.cacheMapping(results.map((result) => ({ path: result.path })), type);
2126
+ else
2127
+ this.cacheMapping(results.reduce((acc, curr) => [...acc, ...this.mapCollectionItem(curr)], []), type);
2128
+ }), map(() => prefixes.reduce((acc, curr) => [...acc, ...(this.getCacheResult(curr, type) ?? [])], [])));
2129
+ }
2131
2130
  openClearCacheSubscription() {
2132
2131
  this._subscriptions.add(interval(60 * 1000).subscribe(() => {
2133
2132
  this._cache = {};
2134
2133
  this._documentDefinitionCache$.next(null);
2135
2134
  }));
2136
2135
  }
2137
- getResultFromCache(prefix, documentDefinitionName, version = 'latest') {
2138
- return this._cache[documentDefinitionName]?.[version]?.[prefix] || null;
2136
+ getCacheResult(prefix, type) {
2137
+ return this._cache[this._documentDefinitionName]?.[this._version]?.[prefix]?.[type];
2139
2138
  }
2140
- cacheResult(prefix, documentDefinitionName, version = 'latest', result) {
2141
- const resultCacheObject = {
2142
- [documentDefinitionName]: {
2143
- [version]: {
2144
- [prefix]: result,
2145
- },
2139
+ mapCollectionItem(item, parentPath) {
2140
+ const fieldChildren = [];
2141
+ const collectionChildren = [];
2142
+ item.children.forEach((child) => {
2143
+ if (child.type === ValuePathType.FIELD)
2144
+ fieldChildren.push(child);
2145
+ else
2146
+ collectionChildren.push(child);
2147
+ });
2148
+ return [
2149
+ {
2150
+ path: `${parentPath ?? ''}${item.path}`,
2151
+ children: fieldChildren.map((child) => child.path),
2152
+ },
2153
+ ...collectionChildren.reduce((acc, curr) => [...acc, ...this.mapCollectionItem(curr, `${parentPath ?? ''}${item.path}`)], []),
2154
+ ];
2155
+ }
2156
+ cacheMapping(results, type) {
2157
+ if (!results.length)
2158
+ return;
2159
+ const prefixResults = this._prefixes.reduce((acc, curr) => ({
2160
+ ...acc,
2161
+ [curr]: {
2162
+ [type]: results.filter((result) => result.path.split(':')[0] === curr),
2163
+ },
2164
+ }), {});
2165
+ const tempCache = {
2166
+ [this._documentDefinitionName]: {
2167
+ [this._version]: prefixResults,
2146
2168
  },
2147
2169
  };
2148
- if (!this.getResultFromCache(prefix, documentDefinitionName, version)) {
2149
- this._cache = deepmerge(this._cache, resultCacheObject);
2150
- }
2170
+ this._cache = deepmerge(this._cache, tempCache);
2151
2171
  }
2152
2172
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorService, deps: [{ token: i1$1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2153
2173
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorService, providedIn: 'root' }); }
@@ -5485,7 +5505,10 @@ class CarbonListComponent {
5485
5505
  template: this.booleanTemplate,
5486
5506
  });
5487
5507
  case ViewType.TAGS: {
5488
- return this.resolveTagObject(item.tags);
5508
+ return new TableItem({
5509
+ data: this.resolveTagObject(item, field.key),
5510
+ template: this.tagTemplate,
5511
+ });
5489
5512
  }
5490
5513
  default:
5491
5514
  const resolvedObject = this.resolveObject(field, item);
@@ -5769,26 +5792,32 @@ class CarbonListComponent {
5769
5792
  filteredItems.splice(index2, 0, itemToInsert);
5770
5793
  return filteredItems;
5771
5794
  }
5772
- resolveTagObject(itemTags) {
5773
- if (!itemTags || itemTags.length === 0)
5774
- return new TableItem({
5775
- data: { tags: [] },
5776
- template: this.tagTemplate,
5777
- });
5778
- const tags = itemTags.map((tag, index) => index === 0
5779
- ? { ...tag, ellipsisContent: this.ellipsisPipe.transform(tag.content, TAG_ELLIPSIS_LIMIT) }
5780
- : tag);
5781
- return new TableItem({
5782
- data: { tags },
5783
- template: this.tagTemplate,
5784
- });
5795
+ resolveTagObject(item, key) {
5796
+ const object = item[key];
5797
+ if (!object)
5798
+ return null;
5799
+ if (isArray(object) && typeof object[0] !== 'string')
5800
+ return object;
5801
+ if (!isArray(object) && typeof object !== 'string')
5802
+ return [object];
5803
+ if (typeof object === 'string')
5804
+ return [
5805
+ {
5806
+ content: object,
5807
+ type: 'blue',
5808
+ },
5809
+ ];
5810
+ return object.map((content) => ({
5811
+ content,
5812
+ type: 'blue',
5813
+ }));
5785
5814
  }
5786
5815
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonListComponent, deps: [{ token: EllipsisPipe }, { token: CarbonListFilterPipe }, { token: i3.IconService }, { token: i4.NGXLogger }, { token: i1.TranslateService }, { token: ViewContentService }, { token: KeyStateService }, { token: CarbonListDragAndDropService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
5787
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CarbonListComponent, selector: "valtimo-carbon-list", inputs: { items: "items", fields: "fields", tableTranslations: "tableTranslations", paginatorConfig: "paginatorConfig", pagination: "pagination", loading: "loading", actions: "actions", actionItems: "actionItems", header: "header", hideColumnHeader: "hideColumnHeader", initialSortState: "initialSortState", sortState: "sortState", isSearchable: "isSearchable", enableSingleSelection: "enableSingleSelection", lastColumnTemplate: "lastColumnTemplate", paginationIdentifier: "paginationIdentifier", showSelectionColumn: "showSelectionColumn", striped: "striped", hideToolbar: "hideToolbar", lockedTooltipTranslationKey: "lockedTooltipTranslationKey", movingRowsEnabled: "movingRowsEnabled", dragAndDrop: "dragAndDrop", dragAndDropDisabled: "dragAndDropDisabled" }, outputs: { rowClicked: "rowClicked", paginationClicked: "paginationClicked", paginationSet: "paginationSet", search: "search", sortChanged: "sortChanged", moveRow: "moveRow", itemsReordered: "itemsReordered" }, providers: [CarbonListFilterPipe, CarbonListDragAndDropService], viewQueries: [{ propertyName: "actionsMenuTemplate", first: true, predicate: ["actionsMenuTemplate"], descendants: true }, { propertyName: "actionTemplate", first: true, predicate: ["actionTemplate"], descendants: true }, { propertyName: "booleanTemplate", first: true, predicate: ["booleanTemplate"], descendants: true }, { propertyName: "moveRowsTemplate", first: true, predicate: ["moveRowsTemplate"], descendants: true }, { propertyName: "dragAndDropTemplate", first: true, predicate: ["dragAndDropTemplate"], descendants: true }, { propertyName: "rowDisabled", first: true, predicate: ["rowDisabled"], descendants: true }, { propertyName: "tagTemplate", first: true, predicate: ["tagTemplate"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "_table", first: true, predicate: Table, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<cds-table-container\n *ngIf=\"{\n sort: sort$ | async,\n model: model$ | async,\n viewInitialized: viewInitialized$ | async,\n } as obs\"\n class=\"valtimo-carbon-list\"\n>\n <cds-table-header *ngIf=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </cds-table-header>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <cds-table-toolbar\n *ngIf=\"!hideToolbar\"\n class=\"valtimo-carbon-list__toolbar\"\n [model]=\"obs.model\"\n [batchText]=\"batchText$ | async\"\n >\n <cds-table-toolbar-actions>\n <ng-content select=\"[carbonToolbarActions]\"> </ng-content>\n </cds-table-toolbar-actions>\n\n <cds-table-toolbar-content>\n <cds-table-toolbar-search\n *ngIf=\"isSearchable\"\n [expandable]=\"true\"\n [formControl]=\"searchFormControl\"\n ></cds-table-toolbar-search>\n\n <ng-content select=\"[carbonToolbarContent]\"> </ng-content>\n </cds-table-toolbar-content>\n </cds-table-toolbar>\n\n <cds-table\n *ngIf=\"!!obs.sort\"\n [ngClass]=\"{\n 'valtimo-carbon-list__header--hidden': hideColumnHeader,\n 'valtimo-carbon-list--unclickable': !this.rowClicked.observed,\n }\"\n [enableSingleSelect]=\"enableSingleSelect\"\n [model]=\"loading || !obs.viewInitialized ? skeletonModel : obs.model\"\n [showSelectionColumn]=\"showSelectionColumn\"\n [skeleton]=\"loading\"\n [striped]=\"striped\"\n (sort)=\"onSort(obs.model.header[$event])\"\n (rowClick)=\"onRowClick($event)\"\n >\n <tbody cdsTableBody>\n <tr class=\"valtimo-carbon-list__no-results\">\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n <ng-content></ng-content>\n </td>\n\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n {{ 'list.noResults' | translate }}\n </td>\n </tr>\n </tbody>\n </cds-table>\n\n <cds-pagination\n *ngIf=\"paginationModel && items?.length\"\n [itemsPerPageOptions]=\"paginatorConfig.itemsPerPageOptions\"\n [model]=\"paginationModel\"\n [showPageInput]=\"paginatorConfig.showPageInput\"\n [skeleton]=\"loading\"\n [translations]=\"paginationTranslations$ | async\"\n (selectPage)=\"onSelectPage($event)\"\n ></cds-pagination>\n</cds-table-container>\n\n<ng-template #actionTemplate let-data=\"data\">\n <i\n class=\"clickable\"\n [ngClass]=\"data.iconClass\"\n (click)=\"$event.stopPropagation(); data.callback(data.item)\"\n ></i>\n</ng-template>\n\n<ng-template #booleanTemplate let-data=\"data\">\n {{ data | translate }}\n</ng-template>\n\n<ng-template #actionsMenuTemplate let-data=\"data\">\n <cds-overflow-menu\n [open]=\"currentOpenActionId === data.item\"\n (openChange)=\"handleActionOpenChange(data.item, $event)\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 50}\"\n placement=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n >\n @for (action of data.actions; track action.label) {\n <cds-overflow-menu-option\n [disabled]=\"action.disabledCallback ? action.disabledCallback(data.item) : false\"\n [type]=\"action.type\"\n (selected)=\"action.callback(data.item)\"\n >\n <i *ngIf=\"!!action.iconClass\" [ngClass]=\"action.iconClass\"></i>\n\n {{ action.label | translate }}\n </cds-overflow-menu-option>\n }\n </cds-overflow-menu>\n</ng-template>\n\n<ng-template #rowDisabled let-data=\"data\">\n <div *ngIf=\"data.locked\" class=\"locked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ lockedTooltipTranslationKey | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n </div>\n</ng-template>\n\n<ng-template #moveRowsTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__move-rows\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveUpClick($event, data)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === data.length - 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveDownClick($event, data)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #dragAndDropTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__draggable\">\n <button\n cdsButton=\"ghost\"\n [disabled]=\"dragAndDropDisabled\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (mousedown)=\"onDragStart($event, data)\"\n >\n <svg cdsIcon=\"draggable\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #tagTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data.tags\">-</ng-container>\n\n <div *ngIf=\"data.tags\" class=\"tag-template\">\n @if (data.tags.length === 0) {\n -\n } @else {\n <cds-tag *ngIf=\"!!data.tags[0].content\" class=\"cds-tag--no-margin\" [type]=\"data.tags[0].type\">\n {{ data.tags[0].ellipsisContent ?? data.tags[0].content }}\n </cds-tag>\n\n <cds-tag\n *ngIf=\"data.tags.length > 1\"\n class=\"cds-tag--no-margin valtimo-carbon-list__expand-tag\"\n type=\"high-contrast\"\n (click)=\"onTagClick($event, data.tags)\"\n >\n {{ data.tags.length - 1 }} <svg cdsIcon=\"add\" size=\"16\"></svg>\n </cds-tag>\n }\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-data=\"data\">\n <span>{{ data }}</span>\n</ng-template>\n\n<valtimo-tags-modal\n [open]=\"tagModalOpen$ | async\"\n [tags]=\"tagModalData$ | async\"\n (closeEvent)=\"onCloseEvent()\"\n></valtimo-tags-modal>\n", styles: [".clickable{cursor:pointer}.container-fluid{background-color:var(--cds-layer)}.tile-holder{background-color:#f5f5f5;border:1px solid transparent}.tile-holder:hover{background-color:#eee;border:1px solid #dee2e6}th:first-child,td:first-child{padding-left:25px}::ng-deep tr:has(>td .locked){cursor:not-allowed}::ng-deep tr:has(>td .locked) td{color:var(--cds-text-on-color-disabled)}::ng-deep .valtimo-carbon-list__header--hidden thead{display:none}::ng-deep .valtimo-carbon-list--unclickable tr{cursor:default}.valtimo-carbon-list__toolbar:empty{display:none}.valtimo-carbon-list__no-results{cursor:default}.valtimo-carbon-list__no-results td:empty,.valtimo-carbon-list__no-results td:not(:empty)+td{display:none}.valtimo-carbon-list__move-rows,.valtimo-carbon-list__draggable{width:100%;justify-content:flex-end;display:flex;flex-direction:row;position:relative}.valtimo-carbon-list__move-rows button:not(:last-child),.valtimo-carbon-list__draggable button:not(:last-child){margin-right:8px}.valtimo-carbon-list__expand-tag{cursor:pointer}.valtimo-carbon-list label{margin-bottom:0!important}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag{margin:0}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag svg{fill:var(--cds-background)}.valtimo-carbon-list ::ng-deep .tag-template>*:not(:last-child){margin-right:8px}.valtimo-carbon-list ::ng-deep .cds--tag{white-space:nowrap}.valtimo-carbon-list ::ng-deep .valtimo-carbon-list__draggable .cds--btn--ghost{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row .valtimo-carbon-list__draggable .cds--btn--ghost{outline:0;border-color:var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60)));box-shadow:inset 0 0 0 1px var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60))),inset 0 0 0 2px var(--cds-background, #f4f4f4)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3.Pagination, selector: "cds-pagination, ibm-pagination", inputs: ["skeleton", "model", "disabled", "pageInputDisabled", "showPageInput", "pagesUnknown", "pageSelectThreshold", "translations", "itemsPerPageOptions"], outputs: ["selectPage"] }, { kind: "component", type: i3.TableToolbar, selector: "cds-table-toolbar, ibm-table-toolbar", inputs: ["model", "batchText", "ariaLabel", "cancelText", "size"], outputs: ["cancel"] }, { kind: "component", type: i3.TableContainer, selector: "cds-table-container, ibm-table-container" }, { kind: "component", type: i3.TableHeader, selector: "cds-table-header, ibm-table-header" }, { kind: "component", type: i3.TableToolbarActions, selector: "cds-table-toolbar-actions, ibm-table-toolbar-actions" }, { kind: "component", type: i3.TableToolbarSearch, selector: "cds-table-toolbar-search, ibm-table-toolbar-search" }, { kind: "component", type: i3.TableToolbarContent, selector: "cds-table-toolbar-content, ibm-table-toolbar-content" }, { kind: "component", type: i3.Table, selector: "cds-table, ibm-table", inputs: ["ariaLabelledby", "ariaDescribedby", "model", "size", "skeleton", "isDataGrid", "sortable", "noBorder", "showSelectionColumn", "enableSingleSelect", "scrollLoadDistance", "expandButtonAriaLabel", "sortDescendingLabel", "sortAscendingLabel", "translations", "striped", "stickyHeader", "footerTemplate", "selectionLabelColumn"], outputs: ["sort", "selectAll", "deselectAll", "selectRow", "deselectRow", "rowClick", "scrollLoad"] }, { kind: "component", type: i3.TableBody, selector: "[cdsTableBody], [ibmTableBody]", inputs: ["model", "enableSingleSelect", "expandButtonAriaLabel", "checkboxRowLabel", "showSelectionColumn", "size", "selectionLabelColumn", "skeleton"], outputs: ["selectRow", "deselectRow", "rowClick"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i3.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i3.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "component", type: CarbonTagsModalComponent, selector: "valtimo-tags-modal", inputs: ["open", "tags"], outputs: ["closeEvent"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5816
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CarbonListComponent, selector: "valtimo-carbon-list", inputs: { items: "items", fields: "fields", tableTranslations: "tableTranslations", paginatorConfig: "paginatorConfig", pagination: "pagination", loading: "loading", actions: "actions", actionItems: "actionItems", header: "header", hideColumnHeader: "hideColumnHeader", initialSortState: "initialSortState", sortState: "sortState", isSearchable: "isSearchable", enableSingleSelection: "enableSingleSelection", lastColumnTemplate: "lastColumnTemplate", paginationIdentifier: "paginationIdentifier", showSelectionColumn: "showSelectionColumn", striped: "striped", hideToolbar: "hideToolbar", lockedTooltipTranslationKey: "lockedTooltipTranslationKey", movingRowsEnabled: "movingRowsEnabled", dragAndDrop: "dragAndDrop", dragAndDropDisabled: "dragAndDropDisabled" }, outputs: { rowClicked: "rowClicked", paginationClicked: "paginationClicked", paginationSet: "paginationSet", search: "search", sortChanged: "sortChanged", moveRow: "moveRow", itemsReordered: "itemsReordered" }, providers: [CarbonListFilterPipe, CarbonListDragAndDropService], viewQueries: [{ propertyName: "actionsMenuTemplate", first: true, predicate: ["actionsMenuTemplate"], descendants: true }, { propertyName: "actionTemplate", first: true, predicate: ["actionTemplate"], descendants: true }, { propertyName: "booleanTemplate", first: true, predicate: ["booleanTemplate"], descendants: true }, { propertyName: "moveRowsTemplate", first: true, predicate: ["moveRowsTemplate"], descendants: true }, { propertyName: "dragAndDropTemplate", first: true, predicate: ["dragAndDropTemplate"], descendants: true }, { propertyName: "rowDisabled", first: true, predicate: ["rowDisabled"], descendants: true }, { propertyName: "tagTemplate", first: true, predicate: ["tagTemplate"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "_table", first: true, predicate: Table, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<cds-table-container\n *ngIf=\"{\n sort: sort$ | async,\n model: model$ | async,\n viewInitialized: viewInitialized$ | async,\n } as obs\"\n class=\"valtimo-carbon-list\"\n>\n <cds-table-header *ngIf=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </cds-table-header>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <cds-table-toolbar\n *ngIf=\"!hideToolbar\"\n class=\"valtimo-carbon-list__toolbar\"\n [model]=\"obs.model\"\n [batchText]=\"batchText$ | async\"\n >\n <cds-table-toolbar-actions>\n <ng-content select=\"[carbonToolbarActions]\"> </ng-content>\n </cds-table-toolbar-actions>\n\n <cds-table-toolbar-content>\n <cds-table-toolbar-search\n *ngIf=\"isSearchable\"\n [expandable]=\"true\"\n [formControl]=\"searchFormControl\"\n ></cds-table-toolbar-search>\n\n <ng-content select=\"[carbonToolbarContent]\"> </ng-content>\n </cds-table-toolbar-content>\n </cds-table-toolbar>\n\n <cds-table\n *ngIf=\"!!obs.sort\"\n [ngClass]=\"{\n 'valtimo-carbon-list__header--hidden': hideColumnHeader,\n 'valtimo-carbon-list--unclickable': !this.rowClicked.observed,\n }\"\n [enableSingleSelect]=\"enableSingleSelect\"\n [model]=\"loading || !obs.viewInitialized ? skeletonModel : obs.model\"\n [showSelectionColumn]=\"showSelectionColumn\"\n [skeleton]=\"loading\"\n [striped]=\"striped\"\n (sort)=\"onSort(obs.model.header[$event])\"\n (rowClick)=\"onRowClick($event)\"\n >\n <tbody cdsTableBody>\n <tr class=\"valtimo-carbon-list__no-results\">\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n <ng-content></ng-content>\n </td>\n\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n {{ 'list.noResults' | translate }}\n </td>\n </tr>\n </tbody>\n </cds-table>\n\n <cds-pagination\n *ngIf=\"paginationModel && items?.length\"\n [itemsPerPageOptions]=\"paginatorConfig.itemsPerPageOptions\"\n [model]=\"paginationModel\"\n [showPageInput]=\"paginatorConfig.showPageInput\"\n [skeleton]=\"loading\"\n [translations]=\"paginationTranslations$ | async\"\n (selectPage)=\"onSelectPage($event)\"\n ></cds-pagination>\n</cds-table-container>\n\n<ng-template #actionTemplate let-data=\"data\">\n <i\n class=\"clickable\"\n [ngClass]=\"data.iconClass\"\n (click)=\"$event.stopPropagation(); data.callback(data.item)\"\n ></i>\n</ng-template>\n\n<ng-template #booleanTemplate let-data=\"data\">\n {{ data | translate }}\n</ng-template>\n\n<ng-template #actionsMenuTemplate let-data=\"data\">\n <cds-overflow-menu\n [open]=\"currentOpenActionId === data.item\"\n (openChange)=\"handleActionOpenChange(data.item, $event)\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 50}\"\n placement=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n >\n @for (action of data.actions; track action.label) {\n <cds-overflow-menu-option\n [disabled]=\"action.disabledCallback ? action.disabledCallback(data.item) : false\"\n [type]=\"action.type\"\n (selected)=\"action.callback(data.item)\"\n >\n <i *ngIf=\"!!action.iconClass\" [ngClass]=\"action.iconClass\"></i>\n\n {{ action.label | translate }}\n </cds-overflow-menu-option>\n }\n </cds-overflow-menu>\n</ng-template>\n\n<ng-template #rowDisabled let-data=\"data\">\n <div *ngIf=\"data.locked\" class=\"locked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ lockedTooltipTranslationKey | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n </div>\n</ng-template>\n\n<ng-template #moveRowsTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__move-rows\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveUpClick($event, data)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === data.length - 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveDownClick($event, data)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #dragAndDropTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__draggable\">\n <button\n cdsButton=\"ghost\"\n [disabled]=\"dragAndDropDisabled\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (mousedown)=\"onDragStart($event, data)\"\n >\n <svg cdsIcon=\"draggable\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #tagTemplate let-data=\"data\">\n @if (!data) {\n -\n } @else {\n <div class=\"tag-template\">\n @if (data.length === 0) {\n -\n } @else {\n <cds-tag *ngIf=\"!!data[0].content\" class=\"cds-tag--no-margin\" [type]=\"data[0].type\">\n {{ data[0].ellipsisContent ?? data[0].content }}\n </cds-tag>\n\n <cds-tag\n *ngIf=\"data.length > 1\"\n class=\"cds-tag--no-margin valtimo-carbon-list__expand-tag\"\n type=\"high-contrast\"\n (click)=\"onTagClick($event, data)\"\n >\n {{ data.length - 1 }} <svg cdsIcon=\"add\" size=\"16\"></svg>\n </cds-tag>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #defaultTemplate let-data=\"data\">\n <span>{{ data }}</span>\n</ng-template>\n\n<valtimo-tags-modal\n [open]=\"tagModalOpen$ | async\"\n [tags]=\"tagModalData$ | async\"\n (closeEvent)=\"onCloseEvent()\"\n></valtimo-tags-modal>\n", styles: [".clickable{cursor:pointer}.container-fluid{background-color:var(--cds-layer)}.tile-holder{background-color:#f5f5f5;border:1px solid transparent}.tile-holder:hover{background-color:#eee;border:1px solid #dee2e6}th:first-child,td:first-child{padding-left:25px}::ng-deep tr:has(>td .locked){cursor:not-allowed}::ng-deep tr:has(>td .locked) td{color:var(--cds-text-on-color-disabled)}::ng-deep .valtimo-carbon-list__header--hidden thead{display:none}::ng-deep .valtimo-carbon-list--unclickable tr{cursor:default}.valtimo-carbon-list__toolbar:empty{display:none}.valtimo-carbon-list__no-results{cursor:default}.valtimo-carbon-list__no-results td:empty,.valtimo-carbon-list__no-results td:not(:empty)+td{display:none}.valtimo-carbon-list__move-rows,.valtimo-carbon-list__draggable{width:100%;justify-content:flex-end;display:flex;flex-direction:row;position:relative}.valtimo-carbon-list__move-rows button:not(:last-child),.valtimo-carbon-list__draggable button:not(:last-child){margin-right:8px}.valtimo-carbon-list__expand-tag{cursor:pointer}.valtimo-carbon-list label{margin-bottom:0!important}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag{margin:0}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag svg{fill:var(--cds-background)}.valtimo-carbon-list ::ng-deep .tag-template>*:not(:last-child){margin-right:8px}.valtimo-carbon-list ::ng-deep .cds--tag{white-space:nowrap}.valtimo-carbon-list ::ng-deep .valtimo-carbon-list__draggable .cds--btn--ghost{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row .valtimo-carbon-list__draggable .cds--btn--ghost{outline:0;border-color:var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60)));box-shadow:inset 0 0 0 1px var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60))),inset 0 0 0 2px var(--cds-background, #f4f4f4)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3.Pagination, selector: "cds-pagination, ibm-pagination", inputs: ["skeleton", "model", "disabled", "pageInputDisabled", "showPageInput", "pagesUnknown", "pageSelectThreshold", "translations", "itemsPerPageOptions"], outputs: ["selectPage"] }, { kind: "component", type: i3.TableToolbar, selector: "cds-table-toolbar, ibm-table-toolbar", inputs: ["model", "batchText", "ariaLabel", "cancelText", "size"], outputs: ["cancel"] }, { kind: "component", type: i3.TableContainer, selector: "cds-table-container, ibm-table-container" }, { kind: "component", type: i3.TableHeader, selector: "cds-table-header, ibm-table-header" }, { kind: "component", type: i3.TableToolbarActions, selector: "cds-table-toolbar-actions, ibm-table-toolbar-actions" }, { kind: "component", type: i3.TableToolbarSearch, selector: "cds-table-toolbar-search, ibm-table-toolbar-search" }, { kind: "component", type: i3.TableToolbarContent, selector: "cds-table-toolbar-content, ibm-table-toolbar-content" }, { kind: "component", type: i3.Table, selector: "cds-table, ibm-table", inputs: ["ariaLabelledby", "ariaDescribedby", "model", "size", "skeleton", "isDataGrid", "sortable", "noBorder", "showSelectionColumn", "enableSingleSelect", "scrollLoadDistance", "expandButtonAriaLabel", "sortDescendingLabel", "sortAscendingLabel", "translations", "striped", "stickyHeader", "footerTemplate", "selectionLabelColumn"], outputs: ["sort", "selectAll", "deselectAll", "selectRow", "deselectRow", "rowClick", "scrollLoad"] }, { kind: "component", type: i3.TableBody, selector: "[cdsTableBody], [ibmTableBody]", inputs: ["model", "enableSingleSelect", "expandButtonAriaLabel", "checkboxRowLabel", "showSelectionColumn", "size", "selectionLabelColumn", "skeleton"], outputs: ["selectRow", "deselectRow", "rowClick"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i3.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i3.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class"] }, { kind: "component", type: CarbonTagsModalComponent, selector: "valtimo-tags-modal", inputs: ["open", "tags"], outputs: ["closeEvent"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5788
5817
  }
5789
5818
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonListComponent, decorators: [{
5790
5819
  type: Component,
5791
- args: [{ selector: 'valtimo-carbon-list', changeDetection: ChangeDetectionStrategy.OnPush, providers: [CarbonListFilterPipe, CarbonListDragAndDropService], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<cds-table-container\n *ngIf=\"{\n sort: sort$ | async,\n model: model$ | async,\n viewInitialized: viewInitialized$ | async,\n } as obs\"\n class=\"valtimo-carbon-list\"\n>\n <cds-table-header *ngIf=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </cds-table-header>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <cds-table-toolbar\n *ngIf=\"!hideToolbar\"\n class=\"valtimo-carbon-list__toolbar\"\n [model]=\"obs.model\"\n [batchText]=\"batchText$ | async\"\n >\n <cds-table-toolbar-actions>\n <ng-content select=\"[carbonToolbarActions]\"> </ng-content>\n </cds-table-toolbar-actions>\n\n <cds-table-toolbar-content>\n <cds-table-toolbar-search\n *ngIf=\"isSearchable\"\n [expandable]=\"true\"\n [formControl]=\"searchFormControl\"\n ></cds-table-toolbar-search>\n\n <ng-content select=\"[carbonToolbarContent]\"> </ng-content>\n </cds-table-toolbar-content>\n </cds-table-toolbar>\n\n <cds-table\n *ngIf=\"!!obs.sort\"\n [ngClass]=\"{\n 'valtimo-carbon-list__header--hidden': hideColumnHeader,\n 'valtimo-carbon-list--unclickable': !this.rowClicked.observed,\n }\"\n [enableSingleSelect]=\"enableSingleSelect\"\n [model]=\"loading || !obs.viewInitialized ? skeletonModel : obs.model\"\n [showSelectionColumn]=\"showSelectionColumn\"\n [skeleton]=\"loading\"\n [striped]=\"striped\"\n (sort)=\"onSort(obs.model.header[$event])\"\n (rowClick)=\"onRowClick($event)\"\n >\n <tbody cdsTableBody>\n <tr class=\"valtimo-carbon-list__no-results\">\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n <ng-content></ng-content>\n </td>\n\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n {{ 'list.noResults' | translate }}\n </td>\n </tr>\n </tbody>\n </cds-table>\n\n <cds-pagination\n *ngIf=\"paginationModel && items?.length\"\n [itemsPerPageOptions]=\"paginatorConfig.itemsPerPageOptions\"\n [model]=\"paginationModel\"\n [showPageInput]=\"paginatorConfig.showPageInput\"\n [skeleton]=\"loading\"\n [translations]=\"paginationTranslations$ | async\"\n (selectPage)=\"onSelectPage($event)\"\n ></cds-pagination>\n</cds-table-container>\n\n<ng-template #actionTemplate let-data=\"data\">\n <i\n class=\"clickable\"\n [ngClass]=\"data.iconClass\"\n (click)=\"$event.stopPropagation(); data.callback(data.item)\"\n ></i>\n</ng-template>\n\n<ng-template #booleanTemplate let-data=\"data\">\n {{ data | translate }}\n</ng-template>\n\n<ng-template #actionsMenuTemplate let-data=\"data\">\n <cds-overflow-menu\n [open]=\"currentOpenActionId === data.item\"\n (openChange)=\"handleActionOpenChange(data.item, $event)\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 50}\"\n placement=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n >\n @for (action of data.actions; track action.label) {\n <cds-overflow-menu-option\n [disabled]=\"action.disabledCallback ? action.disabledCallback(data.item) : false\"\n [type]=\"action.type\"\n (selected)=\"action.callback(data.item)\"\n >\n <i *ngIf=\"!!action.iconClass\" [ngClass]=\"action.iconClass\"></i>\n\n {{ action.label | translate }}\n </cds-overflow-menu-option>\n }\n </cds-overflow-menu>\n</ng-template>\n\n<ng-template #rowDisabled let-data=\"data\">\n <div *ngIf=\"data.locked\" class=\"locked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ lockedTooltipTranslationKey | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n </div>\n</ng-template>\n\n<ng-template #moveRowsTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__move-rows\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveUpClick($event, data)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === data.length - 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveDownClick($event, data)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #dragAndDropTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__draggable\">\n <button\n cdsButton=\"ghost\"\n [disabled]=\"dragAndDropDisabled\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (mousedown)=\"onDragStart($event, data)\"\n >\n <svg cdsIcon=\"draggable\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #tagTemplate let-data=\"data\">\n <ng-container *ngIf=\"!data.tags\">-</ng-container>\n\n <div *ngIf=\"data.tags\" class=\"tag-template\">\n @if (data.tags.length === 0) {\n -\n } @else {\n <cds-tag *ngIf=\"!!data.tags[0].content\" class=\"cds-tag--no-margin\" [type]=\"data.tags[0].type\">\n {{ data.tags[0].ellipsisContent ?? data.tags[0].content }}\n </cds-tag>\n\n <cds-tag\n *ngIf=\"data.tags.length > 1\"\n class=\"cds-tag--no-margin valtimo-carbon-list__expand-tag\"\n type=\"high-contrast\"\n (click)=\"onTagClick($event, data.tags)\"\n >\n {{ data.tags.length - 1 }} <svg cdsIcon=\"add\" size=\"16\"></svg>\n </cds-tag>\n }\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-data=\"data\">\n <span>{{ data }}</span>\n</ng-template>\n\n<valtimo-tags-modal\n [open]=\"tagModalOpen$ | async\"\n [tags]=\"tagModalData$ | async\"\n (closeEvent)=\"onCloseEvent()\"\n></valtimo-tags-modal>\n", styles: [".clickable{cursor:pointer}.container-fluid{background-color:var(--cds-layer)}.tile-holder{background-color:#f5f5f5;border:1px solid transparent}.tile-holder:hover{background-color:#eee;border:1px solid #dee2e6}th:first-child,td:first-child{padding-left:25px}::ng-deep tr:has(>td .locked){cursor:not-allowed}::ng-deep tr:has(>td .locked) td{color:var(--cds-text-on-color-disabled)}::ng-deep .valtimo-carbon-list__header--hidden thead{display:none}::ng-deep .valtimo-carbon-list--unclickable tr{cursor:default}.valtimo-carbon-list__toolbar:empty{display:none}.valtimo-carbon-list__no-results{cursor:default}.valtimo-carbon-list__no-results td:empty,.valtimo-carbon-list__no-results td:not(:empty)+td{display:none}.valtimo-carbon-list__move-rows,.valtimo-carbon-list__draggable{width:100%;justify-content:flex-end;display:flex;flex-direction:row;position:relative}.valtimo-carbon-list__move-rows button:not(:last-child),.valtimo-carbon-list__draggable button:not(:last-child){margin-right:8px}.valtimo-carbon-list__expand-tag{cursor:pointer}.valtimo-carbon-list label{margin-bottom:0!important}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag{margin:0}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag svg{fill:var(--cds-background)}.valtimo-carbon-list ::ng-deep .tag-template>*:not(:last-child){margin-right:8px}.valtimo-carbon-list ::ng-deep .cds--tag{white-space:nowrap}.valtimo-carbon-list ::ng-deep .valtimo-carbon-list__draggable .cds--btn--ghost{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row .valtimo-carbon-list__draggable .cds--btn--ghost{outline:0;border-color:var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60)));box-shadow:inset 0 0 0 1px var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60))),inset 0 0 0 2px var(--cds-background, #f4f4f4)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
5820
+ args: [{ selector: 'valtimo-carbon-list', changeDetection: ChangeDetectionStrategy.OnPush, providers: [CarbonListFilterPipe, CarbonListDragAndDropService], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<cds-table-container\n *ngIf=\"{\n sort: sort$ | async,\n model: model$ | async,\n viewInitialized: viewInitialized$ | async,\n } as obs\"\n class=\"valtimo-carbon-list\"\n>\n <cds-table-header *ngIf=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </cds-table-header>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <cds-table-toolbar\n *ngIf=\"!hideToolbar\"\n class=\"valtimo-carbon-list__toolbar\"\n [model]=\"obs.model\"\n [batchText]=\"batchText$ | async\"\n >\n <cds-table-toolbar-actions>\n <ng-content select=\"[carbonToolbarActions]\"> </ng-content>\n </cds-table-toolbar-actions>\n\n <cds-table-toolbar-content>\n <cds-table-toolbar-search\n *ngIf=\"isSearchable\"\n [expandable]=\"true\"\n [formControl]=\"searchFormControl\"\n ></cds-table-toolbar-search>\n\n <ng-content select=\"[carbonToolbarContent]\"> </ng-content>\n </cds-table-toolbar-content>\n </cds-table-toolbar>\n\n <cds-table\n *ngIf=\"!!obs.sort\"\n [ngClass]=\"{\n 'valtimo-carbon-list__header--hidden': hideColumnHeader,\n 'valtimo-carbon-list--unclickable': !this.rowClicked.observed,\n }\"\n [enableSingleSelect]=\"enableSingleSelect\"\n [model]=\"loading || !obs.viewInitialized ? skeletonModel : obs.model\"\n [showSelectionColumn]=\"showSelectionColumn\"\n [skeleton]=\"loading\"\n [striped]=\"striped\"\n (sort)=\"onSort(obs.model.header[$event])\"\n (rowClick)=\"onRowClick($event)\"\n >\n <tbody cdsTableBody>\n <tr class=\"valtimo-carbon-list__no-results\">\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n <ng-content></ng-content>\n </td>\n\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n {{ 'list.noResults' | translate }}\n </td>\n </tr>\n </tbody>\n </cds-table>\n\n <cds-pagination\n *ngIf=\"paginationModel && items?.length\"\n [itemsPerPageOptions]=\"paginatorConfig.itemsPerPageOptions\"\n [model]=\"paginationModel\"\n [showPageInput]=\"paginatorConfig.showPageInput\"\n [skeleton]=\"loading\"\n [translations]=\"paginationTranslations$ | async\"\n (selectPage)=\"onSelectPage($event)\"\n ></cds-pagination>\n</cds-table-container>\n\n<ng-template #actionTemplate let-data=\"data\">\n <i\n class=\"clickable\"\n [ngClass]=\"data.iconClass\"\n (click)=\"$event.stopPropagation(); data.callback(data.item)\"\n ></i>\n</ng-template>\n\n<ng-template #booleanTemplate let-data=\"data\">\n {{ data | translate }}\n</ng-template>\n\n<ng-template #actionsMenuTemplate let-data=\"data\">\n <cds-overflow-menu\n [open]=\"currentOpenActionId === data.item\"\n (openChange)=\"handleActionOpenChange(data.item, $event)\"\n [flip]=\"true\"\n [offset]=\"{x: 0, y: 50}\"\n placement=\"bottom\"\n (click)=\"$event.stopPropagation()\"\n >\n @for (action of data.actions; track action.label) {\n <cds-overflow-menu-option\n [disabled]=\"action.disabledCallback ? action.disabledCallback(data.item) : false\"\n [type]=\"action.type\"\n (selected)=\"action.callback(data.item)\"\n >\n <i *ngIf=\"!!action.iconClass\" [ngClass]=\"action.iconClass\"></i>\n\n {{ action.label | translate }}\n </cds-overflow-menu-option>\n }\n </cds-overflow-menu>\n</ng-template>\n\n<ng-template #rowDisabled let-data=\"data\">\n <div *ngIf=\"data.locked\" class=\"locked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ lockedTooltipTranslationKey | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n </div>\n</ng-template>\n\n<ng-template #moveRowsTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__move-rows\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveUpClick($event, data)\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === data.length - 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveDownClick($event, data)\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #dragAndDropTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__draggable\">\n <button\n cdsButton=\"ghost\"\n [disabled]=\"dragAndDropDisabled\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (mousedown)=\"onDragStart($event, data)\"\n >\n <svg cdsIcon=\"draggable\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #tagTemplate let-data=\"data\">\n @if (!data) {\n -\n } @else {\n <div class=\"tag-template\">\n @if (data.length === 0) {\n -\n } @else {\n <cds-tag *ngIf=\"!!data[0].content\" class=\"cds-tag--no-margin\" [type]=\"data[0].type\">\n {{ data[0].ellipsisContent ?? data[0].content }}\n </cds-tag>\n\n <cds-tag\n *ngIf=\"data.length > 1\"\n class=\"cds-tag--no-margin valtimo-carbon-list__expand-tag\"\n type=\"high-contrast\"\n (click)=\"onTagClick($event, data)\"\n >\n {{ data.length - 1 }} <svg cdsIcon=\"add\" size=\"16\"></svg>\n </cds-tag>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #defaultTemplate let-data=\"data\">\n <span>{{ data }}</span>\n</ng-template>\n\n<valtimo-tags-modal\n [open]=\"tagModalOpen$ | async\"\n [tags]=\"tagModalData$ | async\"\n (closeEvent)=\"onCloseEvent()\"\n></valtimo-tags-modal>\n", styles: [".clickable{cursor:pointer}.container-fluid{background-color:var(--cds-layer)}.tile-holder{background-color:#f5f5f5;border:1px solid transparent}.tile-holder:hover{background-color:#eee;border:1px solid #dee2e6}th:first-child,td:first-child{padding-left:25px}::ng-deep tr:has(>td .locked){cursor:not-allowed}::ng-deep tr:has(>td .locked) td{color:var(--cds-text-on-color-disabled)}::ng-deep .valtimo-carbon-list__header--hidden thead{display:none}::ng-deep .valtimo-carbon-list--unclickable tr{cursor:default}.valtimo-carbon-list__toolbar:empty{display:none}.valtimo-carbon-list__no-results{cursor:default}.valtimo-carbon-list__no-results td:empty,.valtimo-carbon-list__no-results td:not(:empty)+td{display:none}.valtimo-carbon-list__move-rows,.valtimo-carbon-list__draggable{width:100%;justify-content:flex-end;display:flex;flex-direction:row;position:relative}.valtimo-carbon-list__move-rows button:not(:last-child),.valtimo-carbon-list__draggable button:not(:last-child){margin-right:8px}.valtimo-carbon-list__expand-tag{cursor:pointer}.valtimo-carbon-list label{margin-bottom:0!important}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag{margin:0}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag svg{fill:var(--cds-background)}.valtimo-carbon-list ::ng-deep .tag-template>*:not(:last-child){margin-right:8px}.valtimo-carbon-list ::ng-deep .cds--tag{white-space:nowrap}.valtimo-carbon-list ::ng-deep .valtimo-carbon-list__draggable .cds--btn--ghost{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row .valtimo-carbon-list__draggable .cds--btn--ghost{outline:0;border-color:var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60)));box-shadow:inset 0 0 0 1px var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60))),inset 0 0 0 2px var(--cds-background, #f4f4f4)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
5792
5821
  }], ctorParameters: () => [{ type: EllipsisPipe }, { type: CarbonListFilterPipe }, { type: i3.IconService }, { type: i4.NGXLogger }, { type: i1.TranslateService }, { type: ViewContentService }, { type: KeyStateService }, { type: CarbonListDragAndDropService }, { type: i0.ElementRef }], propDecorators: { actionsMenuTemplate: [{
5793
5822
  type: ViewChild,
5794
5823
  args: ['actionsMenuTemplate']
@@ -9505,15 +9534,18 @@ class ValuePathSelectorComponent {
9505
9534
  if (this.showDocumentDefinitionSelector)
9506
9535
  this._inputMode$.next(ValuePathSelectorInputMode.MANUAL);
9507
9536
  }
9537
+ set type(value) {
9538
+ this._type$.next(value);
9539
+ }
9540
+ set parentItem(value) {
9541
+ this._parentItem$.next(value);
9542
+ }
9508
9543
  get _documentDefinitionName$() {
9509
9544
  return this._documentDefinitionNameSubject$.pipe(filter$1(value => !!value));
9510
9545
  }
9511
9546
  get _prefixes$() {
9512
9547
  return this._prefixesSubject$.pipe(filter$1(value => !!value));
9513
9548
  }
9514
- get inputModeIsDropdown$() {
9515
- return this._inputMode$.pipe(map(mode => mode === ValuePathSelectorInputMode.DROPDOWN));
9516
- }
9517
9549
  constructor(valuePathSelectorService, formBuilder, documentService) {
9518
9550
  this.valuePathSelectorService = valuePathSelectorService;
9519
9551
  this.formBuilder = formBuilder;
@@ -9531,24 +9563,51 @@ class ValuePathSelectorComponent {
9531
9563
  this.required = false;
9532
9564
  this.showDocumentDefinitionSelector = false;
9533
9565
  this.notation = 'dots';
9566
+ this._type$ = new BehaviorSubject(ValuePathType.FIELD);
9567
+ this._parentItem$ = new BehaviorSubject(null);
9534
9568
  this.valueChangeEvent = new EventEmitter();
9569
+ this.collectionSelected = new EventEmitter();
9535
9570
  this._documentDefinitionNameSubject$ = new BehaviorSubject('');
9536
9571
  this._version$ = new BehaviorSubject(null);
9537
9572
  this._prefixesSubject$ = new BehaviorSubject(null);
9538
9573
  this._inputMode$ = new BehaviorSubject(ValuePathSelectorInputMode.DROPDOWN);
9574
+ this.inputModeIsDropdown$ = this._inputMode$.pipe(map(mode => {
9575
+ return mode === ValuePathSelectorInputMode.DROPDOWN;
9576
+ }));
9539
9577
  this.loadingValuePathItems$ = new BehaviorSubject(true);
9540
9578
  this.disabled$ = new BehaviorSubject(false);
9541
9579
  this._cachedOptions = [];
9542
- this.valuePathListItems$ = combineLatest([
9543
- this._documentDefinitionName$,
9544
- this._prefixes$,
9545
- this._version$,
9546
- ]).pipe(tap$1(() => this.loadingValuePathItems$.next(true)), switchMap(([documentDefinitionName, prefixes, version]) => typeof version === 'number'
9547
- ? this.valuePathSelectorService.getResolvableKeysPerPrefix(prefixes, documentDefinitionName, version)
9548
- : this.valuePathSelectorService.getResolvableKeysPerPrefix(prefixes, documentDefinitionName)), map(result => result.map(path => this.getFormattedPath(path)).sort((a, b) => a.localeCompare(b))), tap$1(options => (this._cachedOptions = options)), switchMap(options => combineLatest([of(options), this._selectedPath$, this.inputModeIsDropdown$])), tap$1(([options, selectedPath, inputModeIsDropdown]) => {
9549
- if (!options.includes(selectedPath) && !!selectedPath && inputModeIsDropdown)
9580
+ this.valuePathListItems$ = this._parentItem$.pipe(tap$1(() => this.loadingValuePathItems$.next(true)), switchMap((parentItem) => parentItem
9581
+ ? of(parentItem.children?.map((child) => ({ path: child })) ?? [])
9582
+ : combineLatest([
9583
+ this._documentDefinitionName$,
9584
+ this._prefixes$,
9585
+ this._type$,
9586
+ this._version$,
9587
+ ]).pipe(switchMap(([documentDefinitionName, prefixes, type, version]) => typeof version === 'number'
9588
+ ? this.valuePathSelectorService.getResolvableKeys(prefixes, documentDefinitionName, type, version)
9589
+ : this.valuePathSelectorService.getResolvableKeys(prefixes, documentDefinitionName, type)))), map((results) => results
9590
+ .map((result) => ({
9591
+ ...result,
9592
+ formattedPath: !this._parentItem$.getValue()
9593
+ ? this.getFormattedPath(result.path)
9594
+ : result.path,
9595
+ }))
9596
+ .sort((a, b) => a.formattedPath.localeCompare(b.formattedPath))), tap$1(options => (this._cachedOptions = options)), switchMap(options => combineLatest([of(options), this._selectedPath$, this.inputModeIsDropdown$])), tap$1(([options, selectedPath, inputModeIsDropdown]) => {
9597
+ const formattedOptions = options.map(option => option.formattedPath);
9598
+ if (!formattedOptions.includes(selectedPath) && !!selectedPath && inputModeIsDropdown)
9550
9599
  this._inputMode$.next(ValuePathSelectorInputMode.MANUAL);
9551
- }), map(([options, selectedPath]) => options.map(option => ({ content: option, selected: option === selectedPath }))), tap$1(() => this.loadingValuePathItems$.next(false)));
9600
+ }), map(([options, selectedPath]) => options.map(option => {
9601
+ const mappedOption = {
9602
+ content: option.formattedPath,
9603
+ selected: option.formattedPath === selectedPath,
9604
+ path: option.path,
9605
+ ...(!!option.children && { children: option.children }),
9606
+ };
9607
+ if (mappedOption.selected)
9608
+ this.onPathSelected({ item: mappedOption });
9609
+ return mappedOption;
9610
+ })), tap$1(() => this.loadingValuePathItems$.next(false)));
9552
9611
  this.loadingDocumentDefinitionItems$ = new BehaviorSubject(true);
9553
9612
  this.documentDefinitionListItems$ = this.valuePathSelectorService.getDocumentDefinitionCache().pipe(switchMap(cache => combineLatest([
9554
9613
  cache ? of(cache) : this.documentService.getAllDefinitions(),
@@ -9595,6 +9654,8 @@ class ValuePathSelectorComponent {
9595
9654
  const selectedPath = event?.item?.content;
9596
9655
  if (!selectedPath)
9597
9656
  return;
9657
+ if (this.collectionSelected.observed)
9658
+ this.collectionSelected.emit(event.item);
9598
9659
  this.selectedPath.setValue(selectedPath);
9599
9660
  }
9600
9661
  onDocumentDefinitionSelected(event) {
@@ -9606,7 +9667,8 @@ class ValuePathSelectorComponent {
9606
9667
  }
9607
9668
  onInputModeChange(toDropdownMode) {
9608
9669
  const currentPathValue = this.selectedPath.value;
9609
- if (toDropdownMode && !this._cachedOptions.includes(currentPathValue)) {
9670
+ if (toDropdownMode &&
9671
+ !this._cachedOptions.map(option => option.formattedPath).includes(currentPathValue)) {
9610
9672
  this.selectedPath.setValue('');
9611
9673
  }
9612
9674
  this._inputMode$.next(toDropdownMode ? ValuePathSelectorInputMode.DROPDOWN : ValuePathSelectorInputMode.MANUAL);
@@ -9628,13 +9690,13 @@ class ValuePathSelectorComponent {
9628
9690
  return `${prefix}:${requiredNotation === 'dots' ? formattedPath.substring(1) : formattedPath}`;
9629
9691
  }
9630
9692
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorComponent, deps: [{ token: ValuePathSelectorService }, { token: i2$1.FormBuilder }, { token: i2$3.DocumentService }], target: i0.ɵɵFactoryTarget.Component }); }
9631
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ValuePathSelectorComponent, isStandalone: true, selector: "valtimo-value-path-selector", inputs: { name: "name", appendInline: "appendInline", margin: "margin", marginLg: "marginLg", marginXl: "marginXl", disabled: "disabled", documentDefinitionName: "documentDefinitionName", version: "version", prefixes: "prefixes", label: "label", tooltip: "tooltip", required: "required", showDocumentDefinitionSelector: "showDocumentDefinitionSelector", notation: "notation", defaultValue: "defaultValue" }, outputs: { valueChangeEvent: "valueChangeEvent" }, 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: [
9693
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ValuePathSelectorComponent, isStandalone: true, selector: "valtimo-value-path-selector", inputs: { name: "name", appendInline: "appendInline", margin: "margin", marginLg: "marginLg", marginXl: "marginXl", disabled: "disabled", documentDefinitionName: "documentDefinitionName", version: "version", prefixes: "prefixes", label: "label", tooltip: "tooltip", required: "required", showDocumentDefinitionSelector: "showDocumentDefinitionSelector", notation: "notation", defaultValue: "defaultValue", type: "type", parentItem: "parentItem" }, 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: [
9632
9694
  {
9633
9695
  provide: NG_VALUE_ACCESSOR,
9634
9696
  multi: true,
9635
9697
  useExisting: forwardRef(() => ValuePathSelectorComponent),
9636
9698
  },
9637
- ], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n inputModeIsDropdown: inputModeIsDropdown$ | async,\n valuePathListItems: valuePathListItems$ | async,\n loadingValuePathItems: loadingValuePathItems$ | async,\n disabled: disabled$ | async,\n } as obs\"\n>\n <v-input-label [required]=\"required\" [title]=\"label\" [tooltip]=\"tooltip\"> </v-input-label>\n\n <form [formGroup]=\"formGroup\" class=\"value-path-selector__form\">\n @if (obs.inputModeIsDropdown) {\n <ng-container\n *ngIf=\"\n showDocumentDefinitionSelector && {\n loadingDocumentDefinitionItems: loadingDocumentDefinitionItems$ | async,\n documentDefinitionListItems: documentDefinitionListItems$ | async,\n } as docObs\n \"\n >\n <cds-dropdown\n data-testid=\"value-path-selector-documentDefinition\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n docObs.loadingDocumentDefinitionItems ||\n !docObs.documentDefinitionListItems\n \"\n (selected)=\"onDocumentDefinitionSelected($event)\"\n [placeholder]=\"'valuePathSelector.selectDocDefPlaceholder' | translate\"\n >\n <cds-dropdown-list [items]=\"docObs.documentDefinitionListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-container>\n\n <cds-dropdown\n data-testid=\"value-path-selector-valuePath\"\n [appendInline]=\"appendInline\"\n [disabled]=\"obs.disabled || obs.loadingValuePathItems || !obs.valuePathListItems\"\n (selected)=\"onPathSelected($event)\"\n [placeholder]=\"'valuePathSelector.placeholder' | translate\"\n >\n <cds-dropdown-list [items]=\"obs.valuePathListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n } @else {\n <input\n data-testid=\"value-path-selector-input\"\n cdsText\n type=\"text\"\n formControlName=\"selectedPath\"\n />\n }\n\n <cds-toggle\n data-testid=\"value-path-selector-toggle\"\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 </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;justify-content:space-between}.value-path-selector__form ::ng-deep cds-dropdown{width:100%}.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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: LoadingModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ToggleModule }, { kind: "component", type: i3.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "skeleton"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
9699
+ ], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n inputModeIsDropdown: inputModeIsDropdown$ | async,\n valuePathListItems: valuePathListItems$ | async,\n loadingValuePathItems: loadingValuePathItems$ | async,\n disabled: disabled$ | async,\n } as obs\"\n>\n <v-input-label [required]=\"required\" [title]=\"label\" [tooltip]=\"tooltip\"> </v-input-label>\n\n <form\n [formGroup]=\"formGroup\"\n class=\"value-path-selector__form\"\n [ngClass]=\"{\n 'value-path-selector__form--doc-def-selection':\n showDocumentDefinitionSelector && obs.inputModeIsDropdown,\n }\"\n >\n <cds-toggle\n data-testid=\"value-path-selector-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) {\n <ng-container\n *ngIf=\"\n showDocumentDefinitionSelector && {\n loadingDocumentDefinitionItems: loadingDocumentDefinitionItems$ | async,\n documentDefinitionListItems: documentDefinitionListItems$ | async,\n } as docObs\n \"\n >\n <cds-dropdown\n data-testid=\"value-path-selector-documentDefinition\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n docObs.loadingDocumentDefinitionItems ||\n !docObs.documentDefinitionListItems ||\n (docObs.documentDefinitionListItems || []).length === 0\n \"\n (selected)=\"onDocumentDefinitionSelected($event)\"\n [placeholder]=\"'valuePathSelector.selectDocDefPlaceholder' | translate\"\n >\n <cds-dropdown-list [items]=\"docObs.documentDefinitionListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-container>\n\n <cds-dropdown\n data-testid=\"value-path-selector-valuePath\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n obs.loadingValuePathItems ||\n !obs.valuePathListItems ||\n (obs.valuePathListItems || []).length === 0\n \"\n (selected)=\"onPathSelected($event)\"\n [placeholder]=\"'valuePathSelector.placeholder' | translate\"\n >\n <cds-dropdown-list [items]=\"obs.valuePathListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n } @else {\n <input\n data-testid=\"value-path-selector-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:grid;grid-template-columns:110px 1fr;width:100%;align-items:center;gap:16px;justify-content:space-between}.value-path-selector__form--doc-def-selection{grid-template-columns:110px 1fr 1fr}.value-path-selector__form ::ng-deep cds-dropdown{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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: LoadingModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ToggleModule }, { kind: "component", type: i3.Toggle, selector: "cds-toggle, ibm-toggle", inputs: ["offText", "onText", "label", "size", "hideLabel", "skeleton"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: InputLabelModule }, { kind: "component", type: InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
9638
9700
  }
9639
9701
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorComponent, decorators: [{
9640
9702
  type: Component,
@@ -9654,7 +9716,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
9654
9716
  multi: true,
9655
9717
  useExisting: forwardRef(() => ValuePathSelectorComponent),
9656
9718
  },
9657
- ], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n inputModeIsDropdown: inputModeIsDropdown$ | async,\n valuePathListItems: valuePathListItems$ | async,\n loadingValuePathItems: loadingValuePathItems$ | async,\n disabled: disabled$ | async,\n } as obs\"\n>\n <v-input-label [required]=\"required\" [title]=\"label\" [tooltip]=\"tooltip\"> </v-input-label>\n\n <form [formGroup]=\"formGroup\" class=\"value-path-selector__form\">\n @if (obs.inputModeIsDropdown) {\n <ng-container\n *ngIf=\"\n showDocumentDefinitionSelector && {\n loadingDocumentDefinitionItems: loadingDocumentDefinitionItems$ | async,\n documentDefinitionListItems: documentDefinitionListItems$ | async,\n } as docObs\n \"\n >\n <cds-dropdown\n data-testid=\"value-path-selector-documentDefinition\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n docObs.loadingDocumentDefinitionItems ||\n !docObs.documentDefinitionListItems\n \"\n (selected)=\"onDocumentDefinitionSelected($event)\"\n [placeholder]=\"'valuePathSelector.selectDocDefPlaceholder' | translate\"\n >\n <cds-dropdown-list [items]=\"docObs.documentDefinitionListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-container>\n\n <cds-dropdown\n data-testid=\"value-path-selector-valuePath\"\n [appendInline]=\"appendInline\"\n [disabled]=\"obs.disabled || obs.loadingValuePathItems || !obs.valuePathListItems\"\n (selected)=\"onPathSelected($event)\"\n [placeholder]=\"'valuePathSelector.placeholder' | translate\"\n >\n <cds-dropdown-list [items]=\"obs.valuePathListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n } @else {\n <input\n data-testid=\"value-path-selector-input\"\n cdsText\n type=\"text\"\n formControlName=\"selectedPath\"\n />\n }\n\n <cds-toggle\n data-testid=\"value-path-selector-toggle\"\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 </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;justify-content:space-between}.value-path-selector__form ::ng-deep cds-dropdown{width:100%}.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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
9719
+ ], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n inputModeIsDropdown: inputModeIsDropdown$ | async,\n valuePathListItems: valuePathListItems$ | async,\n loadingValuePathItems: loadingValuePathItems$ | async,\n disabled: disabled$ | async,\n } as obs\"\n>\n <v-input-label [required]=\"required\" [title]=\"label\" [tooltip]=\"tooltip\"> </v-input-label>\n\n <form\n [formGroup]=\"formGroup\"\n class=\"value-path-selector__form\"\n [ngClass]=\"{\n 'value-path-selector__form--doc-def-selection':\n showDocumentDefinitionSelector && obs.inputModeIsDropdown,\n }\"\n >\n <cds-toggle\n data-testid=\"value-path-selector-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) {\n <ng-container\n *ngIf=\"\n showDocumentDefinitionSelector && {\n loadingDocumentDefinitionItems: loadingDocumentDefinitionItems$ | async,\n documentDefinitionListItems: documentDefinitionListItems$ | async,\n } as docObs\n \"\n >\n <cds-dropdown\n data-testid=\"value-path-selector-documentDefinition\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n docObs.loadingDocumentDefinitionItems ||\n !docObs.documentDefinitionListItems ||\n (docObs.documentDefinitionListItems || []).length === 0\n \"\n (selected)=\"onDocumentDefinitionSelected($event)\"\n [placeholder]=\"'valuePathSelector.selectDocDefPlaceholder' | translate\"\n >\n <cds-dropdown-list [items]=\"docObs.documentDefinitionListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n </ng-container>\n\n <cds-dropdown\n data-testid=\"value-path-selector-valuePath\"\n [appendInline]=\"appendInline\"\n [disabled]=\"\n obs.disabled ||\n obs.loadingValuePathItems ||\n !obs.valuePathListItems ||\n (obs.valuePathListItems || []).length === 0\n \"\n (selected)=\"onPathSelected($event)\"\n [placeholder]=\"'valuePathSelector.placeholder' | translate\"\n >\n <cds-dropdown-list [items]=\"obs.valuePathListItems || []\"></cds-dropdown-list>\n </cds-dropdown>\n } @else {\n <input\n data-testid=\"value-path-selector-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:grid;grid-template-columns:110px 1fr;width:100%;align-items:center;gap:16px;justify-content:space-between}.value-path-selector__form--doc-def-selection{grid-template-columns:110px 1fr 1fr}.value-path-selector__form ::ng-deep cds-dropdown{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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
9658
9720
  }], ctorParameters: () => [{ type: ValuePathSelectorService }, { type: i2$1.FormBuilder }, { type: i2$3.DocumentService }], propDecorators: { _showMargin: [{
9659
9721
  type: HostBinding,
9660
9722
  args: ['class.value-path-selector--margin-bottom']
@@ -9697,8 +9759,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
9697
9759
  type: Input
9698
9760
  }], defaultValue: [{
9699
9761
  type: Input
9762
+ }], type: [{
9763
+ type: Input
9764
+ }], parentItem: [{
9765
+ type: Input
9700
9766
  }], valueChangeEvent: [{
9701
9767
  type: Output
9768
+ }], collectionSelected: [{
9769
+ type: Output
9702
9770
  }] } });
9703
9771
 
9704
9772
  /*
@@ -9738,7 +9806,7 @@ class FormioValueResolverSelectorComponent {
9738
9806
  }
9739
9807
  }
9740
9808
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormioValueResolverSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9741
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormioValueResolverSelectorComponent, isStandalone: true, selector: "valtimo-formio-value-resolver-selector", inputs: { disabled: "disabled", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-value-path-selector\n [appendInline]=\"true\"\n [defaultValue]=\"defaultValue$ | async\"\n [showDocumentDefinitionSelector]=\"true\"\n notation=\"slashes\"\n [prefixes]=\"[ValuePathSelectorPrefix.DOC]\"\n (valueChangeEvent)=\"onValueChange($event)\"\n></valtimo-value-path-selector>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "documentDefinitionName", "version", "prefixes", "label", "tooltip", "required", "showDocumentDefinitionSelector", "notation", "defaultValue"], outputs: ["valueChangeEvent"] }] }); }
9809
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormioValueResolverSelectorComponent, isStandalone: true, selector: "valtimo-formio-value-resolver-selector", inputs: { disabled: "disabled", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-value-path-selector\n [appendInline]=\"true\"\n [defaultValue]=\"defaultValue$ | async\"\n [showDocumentDefinitionSelector]=\"true\"\n notation=\"slashes\"\n [prefixes]=\"[ValuePathSelectorPrefix.DOC]\"\n (valueChangeEvent)=\"onValueChange($event)\"\n></valtimo-value-path-selector>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "documentDefinitionName", "version", "prefixes", "label", "tooltip", "required", "showDocumentDefinitionSelector", "notation", "defaultValue", "type", "parentItem"], outputs: ["valueChangeEvent", "collectionSelected"] }] }); }
9742
9810
  }
9743
9811
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormioValueResolverSelectorComponent, decorators: [{
9744
9812
  type: Component,
@@ -11780,236 +11848,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
11780
11848
  *
11781
11849
  * Unless required by applicable law or agreed to in writing, software
11782
11850
  * distributed under the License is distributed on an "AS IS" basis,
11783
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11851
+ * WITHimport { LabelModule } from 'carbon-components-angular';
11852
+ OUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11784
11853
  * See the License for the specific language governing permissions and
11785
11854
  * limitations under the License.
11786
11855
  */
11787
- class CarbonMultiInputComponent {
11856
+ class KeyValueComponent {
11788
11857
  constructor() {
11789
- this.name = '';
11790
- this.title = '';
11791
- this.titleTranslationKey = '';
11792
- this.type = 'value';
11793
- this.initialAmountOfRows = 1;
11794
- this.minimumAmountOfRows = 1;
11795
- this.maxRows = null;
11796
- this.addRowText = '';
11797
- this.addRowTranslationKey = '';
11798
- this.deleteRowText = '';
11799
- this.deleteRowTranslationKey = '';
11800
- this.disabled = false;
11801
- this.margin = false;
11802
- this.tooltip = '';
11803
- this.required = false;
11804
- this.keyColumnTitle = '';
11805
- this.valueColumnTitle = '';
11806
- this.dropdownColumnTitle = '';
11807
- this.hideDeleteButton = false;
11808
- this.hideAddButton = false;
11809
- this.dropdownWidth = 250;
11810
11858
  this.fullWidth = false;
11811
- this.carbonTheme = 'g10';
11859
+ this.disabled = false;
11860
+ this.keyColumnFlex = 1;
11861
+ this.valueColumnFlex = 1;
11812
11862
  this.valueChange = new EventEmitter();
11813
- this.allValuesValidEvent = new EventEmitter();
11814
- this.amountOfArbitraryValuesArray$ = new BehaviorSubject([]);
11815
- this.values$ = new BehaviorSubject([]);
11816
- this.mappedValues$ = this.values$.pipe(map$1(values => values
11817
- .map(value => this.getMappedValue(value))
11818
- .filter(value => {
11819
- switch (this.type) {
11820
- case 'value':
11821
- return value;
11822
- case 'keyValue':
11823
- return value.value || value.key;
11824
- case 'keyDropdownValue':
11825
- return (value.value &&
11826
- value.key &&
11827
- value.dropdown);
11828
- case 'arbitraryAmount':
11829
- const objectValues = Object.values(value);
11830
- const positiveValuesAmount = objectValues.filter(objectValue => !!objectValue);
11831
- return objectValues.length === positiveValuesAmount.length;
11832
- }
11833
- })));
11834
- this.addRowEnabled$ = this.values$.pipe(map$1(values => !!(this.maxRows === null || values.length < this.maxRows)));
11835
- this.dropdownItems$ = new BehaviorSubject([]);
11836
- }
11837
- set arbitraryValueAmount(value) {
11838
- this._amountOfArbitraryValues = value;
11839
- this.amountOfArbitraryValuesArray$.next(this.getArrayOfXLength(value));
11840
- }
11841
- set dropdownItems(value) {
11842
- this.dropdownItems$.next(value);
11843
- }
11844
- ngOnInit() {
11845
- this.values$.next(this.getInitialRows());
11846
- this.openValuesSubscription();
11847
- }
11848
- ngOnDestroy() {
11849
- this._valuesSubscription?.unsubscribe();
11850
- }
11851
- addRow() {
11852
- combineLatest([this.values$, this.addRowEnabled$])
11853
- .pipe(take(1))
11854
- .subscribe(([values, addRowEnabled]) => {
11855
- if (addRowEnabled) {
11856
- this.values$.next([...values, this.getEmptyValue()]);
11857
- }
11858
- });
11859
- }
11860
- deleteRow(uuid) {
11861
- this.values$.pipe(take(1)).subscribe(values => {
11862
- if (values.length > this.minimumAmountOfRows) {
11863
- this.values$.next(values.filter(value => value.uuid !== uuid));
11864
- }
11865
- });
11866
- }
11867
- trackByFn(index, value) {
11868
- return value.uuid;
11869
- }
11870
- getDropdownItemsForRow(index) {
11871
- return combineLatest([this.dropdownItems$, this.values$]).pipe(map$1(([dropdownItems, values]) => {
11872
- const defaultValue = values[index] || this.defaultValues[index];
11873
- return dropdownItems.map(dropdownItem => ({
11874
- ...dropdownItem,
11875
- selected: defaultValue ? dropdownItem.id === defaultValue.dropdown : false,
11876
- }));
11877
- }));
11878
- }
11879
- onValueChange(templateValue, inputValue, change, arbitraryIndex) {
11880
- this.values$.pipe(take(1)).subscribe(values => {
11881
- this.values$.next(values.map(stateValue => {
11882
- if (stateValue.uuid === templateValue.uuid) {
11883
- if (change === 'value') {
11884
- return { ...stateValue, value: inputValue };
11885
- }
11886
- else if (change === 'key') {
11887
- return { ...stateValue, key: inputValue };
11888
- }
11889
- else if (change === 'dropdown') {
11890
- return { ...stateValue, dropdown: inputValue };
11891
- }
11892
- else if (change === 'arbitrary') {
11893
- return { ...stateValue, [arbitraryIndex]: inputValue };
11894
- }
11895
- }
11896
- return stateValue;
11897
- }));
11898
- });
11899
- }
11900
- getInitialRows() {
11901
- const minimumRows = this.minimumAmountOfRows;
11902
- const initialRows = this.initialAmountOfRows;
11903
- const amountOfInitalRows = Math.max(minimumRows, initialRows);
11904
- if (!this.defaultValues) {
11905
- return new Array(amountOfInitalRows).fill(this.getEmptyValue());
11906
- }
11907
- return this.defaultValues.map(defaultValue => ({ ...defaultValue, uuid: v4() }));
11908
- }
11909
- getEmptyValue() {
11910
- if (this.type === 'arbitraryAmount') {
11911
- const emptyValue = {
11912
- uuid: v4(),
11913
- };
11914
- this.getArrayOfXLength(this._amountOfArbitraryValues).forEach((_, index) => {
11915
- emptyValue[`${index}`] = '';
11916
- });
11917
- return emptyValue;
11918
- }
11919
- return {
11920
- key: '',
11921
- value: '',
11922
- uuid: v4(),
11923
- dropdown: '',
11924
- };
11925
- }
11926
- getMappedValue(valueToMap) {
11927
- if (this.type === 'keyValue') {
11928
- return { key: valueToMap.key, value: valueToMap.value };
11929
- }
11930
- else if (this.type === 'keyDropdownValue') {
11931
- return { key: valueToMap.key, value: valueToMap.value, dropdown: valueToMap.dropdown };
11932
- }
11933
- else if (this.type === 'arbitraryAmount') {
11934
- const objCopy = { ...valueToMap };
11935
- delete objCopy.uuid;
11936
- return objCopy;
11937
- }
11938
- return valueToMap.value;
11939
- }
11940
- openValuesSubscription() {
11941
- this._valuesSubscription = combineLatest([this.values$, this.mappedValues$]).subscribe(([values, mappedValues]) => {
11942
- this.valueChange.emit(mappedValues);
11943
- this.allValuesValidEvent.emit(values.length === mappedValues.length);
11944
- });
11945
11863
  }
11946
- getArrayOfXLength(length) {
11947
- return Array(length).fill(0);
11864
+ onInputChange(type, inputValue) {
11865
+ this.valueChange.emit({ value: this.value, inputValue, type });
11948
11866
  }
11949
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11950
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: { name: "name", title: "title", titleTranslationKey: "titleTranslationKey", type: "type", arbitraryValueAmount: "arbitraryValueAmount", arbitraryAmountTitles: "arbitraryAmountTitles", initialAmountOfRows: "initialAmountOfRows", minimumAmountOfRows: "minimumAmountOfRows", maxRows: "maxRows", addRowText: "addRowText", addRowTranslationKey: "addRowTranslationKey", deleteRowText: "deleteRowText", deleteRowTranslationKey: "deleteRowTranslationKey", disabled: "disabled", defaultValues: "defaultValues", margin: "margin", tooltip: "tooltip", required: "required", keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", dropdownColumnTitle: "dropdownColumnTitle", hideDeleteButton: "hideDeleteButton", hideAddButton: "hideAddButton", dropdownItems: "dropdownItems", dropdownWidth: "dropdownWidth", fullWidth: "fullWidth", carbonTheme: "carbonTheme" }, outputs: { valueChange: "valueChange", allValuesValidEvent: "allValuesValidEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n addRowText:\n addRowText || addRowTranslationKey\n ? addRowTranslationKey\n ? (addRowTranslationKey | translate)\n : addRowText\n : ('interface.addRow' | translate),\n deleteRowText:\n deleteRowText || deleteRowTranslationKey\n ? deleteRowTranslationKey\n ? (deleteRowTranslationKey | translate)\n : deleteRowText\n : ('interface.deleteRow' | translate),\n } as vars\"\n [ngClass]=\"{'v-multi-input--margin': margin, 'v-multi-input--no-delete-button': hideDeleteButton}\"\n class=\"v-multi-input\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n\n <div class=\"v-multi-input__rows\">\n <div\n *ngFor=\"let value of values$ | async as values; trackBy: trackByFn; index as i\"\n class=\"v-multi-input__row\"\n >\n <ng-container *ngIf=\"type === 'value'\">\n <ng-container *ngTemplateOutlet=\"singleValue; context: {value: value}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyDropdownValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyDropdownValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'arbitraryAmount'\">\n <ng-container\n *ngTemplateOutlet=\"arbitraryAmountValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <button\n *ngIf=\"!hideDeleteButton\"\n cdsButton=\"danger\"\n [disabled]=\"values?.length <= this.minimumAmountOfRows || disabled\"\n [iconOnly]=\"true\"\n size=\"md\"\n (click)=\"deleteRow(value.uuid)\"\n [title]=\"vars.deleteRowText\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n\n <div class=\"v-multi-input__add-button\">\n <button\n *ngIf=\"!hideAddButton\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"(addRowEnabled$ | async) === false || disabled\"\n (click)=\"addRow()\"\n >\n {{ vars.addRowText }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</div>\n\n<ng-template #singleValue let-value=\"value\">\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (change)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyValue let-value=\"value\" let-index=\"index\">\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n keyColumnTitle\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n valueColumnTitle\n }}</cds-label>\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #arbitraryAmountValue let-value=\"value\" let-index=\"index\">\n <div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n *ngFor=\"let _ of amountOfArbitraryValuesArray$ | async; index as i\"\n >\n <cds-label *ngIf=\"index === 0\">{{\n arbitraryAmountTitles ? arbitraryAmountTitles[i] : ''\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value ? value['' + i] : ''\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'arbitrary', i)\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyDropdownValue let-value=\"value\" let-index=\"index\">\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n\n <div [style.minWidth.px]=\"dropdownWidth\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && dropdownColumnTitle\">{{ dropdownColumnTitle }}</cds-label>\n\n <cds-dropdown\n (selected)=\"onValueChange(value, $event.item.id, 'dropdown')\"\n [appendInline]=\"true\"\n >\n <cds-dropdown-list\n [items]=\"getDropdownItemsForRow(index) | async\"\n type=\"multi\"\n ></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n", styles: [".v-multi-input--margin{margin-block-end:var(--v-input-margin)}.v-multi-input__row{display:flex;flex-direction:row;align-items:flex-end;margin-block-end:var(--v-multi-input-row-spacing-block)}.v-multi-input__input{margin-inline-end:var(--v-multi-input-input-spacing-inline)}.v-multi-input__input.--full-width{width:100%}.v-multi-input--no-delete-button .v-multi-input__input:last-child{margin-inline-end:0}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
11867
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeyValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11868
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KeyValueComponent, isStandalone: true, selector: "valtimo-key-value", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", index: "index", value: "value", fullWidth: "fullWidth", disabled: "disabled", keyColumnFlex: "keyColumnFlex", valueColumnFlex: "valueColumnFlex" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.fullWidth" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-multi-input__input\"\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 />\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 />\n</div>\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }] }); }
11951
11869
  }
11952
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputComponent, decorators: [{
11870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeyValueComponent, decorators: [{
11953
11871
  type: Component,
11954
- args: [{ selector: 'valtimo-carbon-multi-input', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n addRowText:\n addRowText || addRowTranslationKey\n ? addRowTranslationKey\n ? (addRowTranslationKey | translate)\n : addRowText\n : ('interface.addRow' | translate),\n deleteRowText:\n deleteRowText || deleteRowTranslationKey\n ? deleteRowTranslationKey\n ? (deleteRowTranslationKey | translate)\n : deleteRowText\n : ('interface.deleteRow' | translate),\n } as vars\"\n [ngClass]=\"{'v-multi-input--margin': margin, 'v-multi-input--no-delete-button': hideDeleteButton}\"\n class=\"v-multi-input\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n\n <div class=\"v-multi-input__rows\">\n <div\n *ngFor=\"let value of values$ | async as values; trackBy: trackByFn; index as i\"\n class=\"v-multi-input__row\"\n >\n <ng-container *ngIf=\"type === 'value'\">\n <ng-container *ngTemplateOutlet=\"singleValue; context: {value: value}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'keyDropdownValue'\">\n <ng-container\n *ngTemplateOutlet=\"keyDropdownValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"type === 'arbitraryAmount'\">\n <ng-container\n *ngTemplateOutlet=\"arbitraryAmountValue; context: {value: value, index: i}\"\n ></ng-container>\n </ng-container>\n\n <button\n *ngIf=\"!hideDeleteButton\"\n cdsButton=\"danger\"\n [disabled]=\"values?.length <= this.minimumAmountOfRows || disabled\"\n [iconOnly]=\"true\"\n size=\"md\"\n (click)=\"deleteRow(value.uuid)\"\n [title]=\"vars.deleteRowText\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n\n <div class=\"v-multi-input__add-button\">\n <button\n *ngIf=\"!hideAddButton\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"(addRowEnabled$ | async) === false || disabled\"\n (click)=\"addRow()\"\n >\n {{ vars.addRowText }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</div>\n\n<ng-template #singleValue let-value=\"value\">\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (change)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyValue let-value=\"value\" let-index=\"index\">\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n keyColumnTitle\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle && valueColumnTitle\">{{\n valueColumnTitle\n }}</cds-label>\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n\n<ng-template #arbitraryAmountValue let-value=\"value\" let-index=\"index\">\n <div\n class=\"v-multi-input__input\"\n [ngClass]=\"{'--full-width': fullWidth}\"\n *ngFor=\"let _ of amountOfArbitraryValuesArray$ | async; index as i\"\n >\n <cds-label *ngIf=\"index === 0\">{{\n arbitraryAmountTitles ? arbitraryAmountTitles[i] : ''\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value ? value['' + i] : ''\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'arbitrary', i)\"\n />\n </div>\n</ng-template>\n\n<ng-template #keyDropdownValue let-value=\"value\" let-index=\"index\">\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && keyColumnTitle\">{{ keyColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.key\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'key')\"\n />\n </div>\n\n <div [style.minWidth.px]=\"dropdownWidth\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && dropdownColumnTitle\">{{ dropdownColumnTitle }}</cds-label>\n\n <cds-dropdown\n (selected)=\"onValueChange(value, $event.item.id, 'dropdown')\"\n [appendInline]=\"true\"\n >\n <cds-dropdown-list\n [items]=\"getDropdownItemsForRow(index) | async\"\n type=\"multi\"\n ></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <div [ngClass]=\"{'--full-width': fullWidth}\" class=\"v-multi-input__input\">\n <cds-label *ngIf=\"index === 0 && valueColumnTitle\">{{ valueColumnTitle }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value.value\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange(value, $event.target.value, 'value')\"\n />\n </div>\n</ng-template>\n", styles: [".v-multi-input--margin{margin-block-end:var(--v-input-margin)}.v-multi-input__row{display:flex;flex-direction:row;align-items:flex-end;margin-block-end:var(--v-multi-input-row-spacing-block)}.v-multi-input__input{margin-inline-end:var(--v-multi-input-input-spacing-inline)}.v-multi-input__input.--full-width{width:100%}.v-multi-input--no-delete-button .v-multi-input__input:last-child{margin-inline-end:0}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
11955
- }], propDecorators: { name: [{
11956
- type: Input
11957
- }], title: [{
11958
- type: Input
11959
- }], titleTranslationKey: [{
11960
- type: Input
11961
- }], type: [{
11962
- type: Input
11963
- }], arbitraryValueAmount: [{
11964
- type: Input
11965
- }], arbitraryAmountTitles: [{
11966
- type: Input
11967
- }], initialAmountOfRows: [{
11968
- type: Input
11969
- }], minimumAmountOfRows: [{
11970
- type: Input
11971
- }], maxRows: [{
11972
- type: Input
11973
- }], addRowText: [{
11974
- type: Input
11975
- }], addRowTranslationKey: [{
11976
- type: Input
11977
- }], deleteRowText: [{
11978
- type: Input
11979
- }], deleteRowTranslationKey: [{
11980
- type: Input
11981
- }], disabled: [{
11982
- type: Input
11983
- }], defaultValues: [{
11984
- type: Input
11985
- }], margin: [{
11986
- type: Input
11987
- }], tooltip: [{
11988
- type: Input
11989
- }], required: [{
11990
- type: Input
11991
- }], keyColumnTitle: [{
11872
+ args: [{ selector: 'valtimo-key-value', standalone: true, imports: [CommonModule, InputModule$1], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-multi-input__input\"\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 />\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 />\n</div>\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
11873
+ }], propDecorators: { keyColumnTitle: [{
11992
11874
  type: Input
11993
11875
  }], valueColumnTitle: [{
11994
11876
  type: Input
11995
- }], dropdownColumnTitle: [{
11996
- type: Input
11997
- }], hideDeleteButton: [{
11877
+ }], index: [{
11998
11878
  type: Input
11999
- }], hideAddButton: [{
11879
+ }], value: [{
12000
11880
  type: Input
12001
- }], dropdownItems: [{
11881
+ }], fullWidth: [{
12002
11882
  type: Input
12003
- }], dropdownWidth: [{
11883
+ }, {
11884
+ type: HostBinding,
11885
+ args: ['class.--full-width']
11886
+ }], disabled: [{
12004
11887
  type: Input
12005
- }], fullWidth: [{
11888
+ }], keyColumnFlex: [{
12006
11889
  type: Input
12007
- }], carbonTheme: [{
11890
+ }], valueColumnFlex: [{
12008
11891
  type: Input
12009
11892
  }], valueChange: [{
12010
11893
  type: Output
12011
- }], allValuesValidEvent: [{
12012
- type: Output
12013
11894
  }] } });
12014
11895
 
12015
11896
  /*
@@ -12027,40 +11908,737 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
12027
11908
  * See the License for the specific language governing permissions and
12028
11909
  * limitations under the License.
12029
11910
  */
12030
- /**
12031
- * @deprecated Migrate old design to Carbon
12032
- */
12033
- class DatePickerComponent {
12034
- set fullWidth(value) {
12035
- this.fullWidthClass = value;
12036
- }
12037
- constructor(translateService) {
12038
- this.translateService = translateService;
12039
- this.fullWidthClass = false;
12040
- this.name = '';
12041
- this.title = '';
12042
- this.titleTranslationKey = '';
12043
- this.margin = false;
11911
+ class SingleValueComponent {
11912
+ constructor() {
11913
+ this.fullWidth = false;
12044
11914
  this.disabled = false;
12045
- this.tooltip = '';
12046
- this.required = false;
12047
- this.smallLabel = false;
12048
- this.enableTime = false;
12049
- this.carbonTheme = 'g10';
12050
11915
  this.valueChange = new EventEmitter();
12051
- this.dateValue$ = new BehaviorSubject('');
12052
- this._subscriptions = new Subscription();
12053
- this.onChange = (selectedDates, dateStr) => {
12054
- this.dateValue$.next(dateStr);
12055
- };
12056
11916
  }
12057
- ngAfterViewInit() {
12058
- this.openLocaleSubscription();
12059
- this.openDateValueSubscription();
12060
- this.openClearSubscription();
11917
+ onInputChange(inputValue) {
11918
+ this.valueChange.emit({ value: this.value, inputValue });
12061
11919
  }
12062
- ngOnDestroy() {
12063
- this._subscriptions.unsubscribe();
11920
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SingleValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11921
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SingleValueComponent, isStandalone: true, selector: "valtimo-single-value", inputs: { value: "value", fullWidth: "fullWidth", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.fullWidth" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <input\n cdsText\n [defaultValue]=\"value?.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange($event.target.value)\"\n />\n</div>\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }] }); }
11922
+ }
11923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SingleValueComponent, decorators: [{
11924
+ type: Component,
11925
+ args: [{ selector: 'valtimo-single-value', standalone: true, imports: [CommonModule, InputModule$1], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <input\n cdsText\n [defaultValue]=\"value?.value\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange($event.target.value)\"\n />\n</div>\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
11926
+ }], propDecorators: { value: [{
11927
+ type: Input
11928
+ }], fullWidth: [{
11929
+ type: Input
11930
+ }, {
11931
+ type: HostBinding,
11932
+ args: ['class.--full-width']
11933
+ }], disabled: [{
11934
+ type: Input
11935
+ }], valueChange: [{
11936
+ type: Output
11937
+ }] } });
11938
+
11939
+ /*
11940
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
11941
+ *
11942
+ * Licensed under EUPL, Version 1.2 (the "License");
11943
+ * you may not use this file except in compliance with the License.
11944
+ * You may obtain a copy of the License at
11945
+ *
11946
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
11947
+ *
11948
+ * Unless required by applicable law or agreed to in writing, software
11949
+ * distributed under the License is distributed on an "AS IS" basis,
11950
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11951
+ * See the License for the specific language governing permissions and
11952
+ * limitations under the License.
11953
+ */
11954
+ class KeyDropdownValueComponent {
11955
+ constructor() {
11956
+ this.dropdownWidth = 250;
11957
+ this.fullWidth = false;
11958
+ this.disabled = false;
11959
+ this.keyColumnFlex = 1;
11960
+ this.dropdownColumnFlex = 1;
11961
+ this.valueColumnFlex = 1;
11962
+ this.valueChange = new EventEmitter();
11963
+ }
11964
+ onInputChange(type, inputValue) {
11965
+ this.valueChange.emit({ value: this.value, inputValue, type });
11966
+ }
11967
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeyDropdownValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11968
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KeyDropdownValueComponent, isStandalone: true, selector: "valtimo-key-dropdown-value", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", dropdownColumnTitle: "dropdownColumnTitle", index: "index", value: "value", dropdownItems$: "dropdownItems$", 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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-multi-input__input\"\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 />\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 (selected)=\"onInputChange('dropdown', $event.item.id)\" [appendInline]=\"true\">\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 />\n</div>\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }] }); }
11969
+ }
11970
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeyDropdownValueComponent, decorators: [{
11971
+ type: Component,
11972
+ args: [{ selector: 'valtimo-key-dropdown-value', standalone: true, imports: [CommonModule, InputModule$1, DropdownModule], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n class=\"v-multi-input__input\"\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 />\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 (selected)=\"onInputChange('dropdown', $event.item.id)\" [appendInline]=\"true\">\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 />\n</div>\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
11973
+ }], propDecorators: { keyColumnTitle: [{
11974
+ type: Input
11975
+ }], valueColumnTitle: [{
11976
+ type: Input
11977
+ }], dropdownColumnTitle: [{
11978
+ type: Input
11979
+ }], index: [{
11980
+ type: Input
11981
+ }], value: [{
11982
+ type: Input
11983
+ }], dropdownItems$: [{
11984
+ type: Input
11985
+ }], dropdownWidth: [{
11986
+ type: Input
11987
+ }], fullWidth: [{
11988
+ type: Input
11989
+ }, {
11990
+ type: HostBinding,
11991
+ args: ['class.--full-width']
11992
+ }], disabled: [{
11993
+ type: Input
11994
+ }], keyColumnFlex: [{
11995
+ type: Input
11996
+ }], dropdownColumnFlex: [{
11997
+ type: Input
11998
+ }], valueColumnFlex: [{
11999
+ type: Input
12000
+ }], valueChange: [{
12001
+ type: Output
12002
+ }] } });
12003
+
12004
+ /*
12005
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
12006
+ *
12007
+ * Licensed under EUPL, Version 1.2 (the "License");
12008
+ * you may not use this file except in compliance with the License.
12009
+ * You may obtain a copy of the License at
12010
+ *
12011
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
12012
+ *
12013
+ * Unless required by applicable law or agreed to in writing, software
12014
+ * distributed under the License is distributed on an "AS IS" basis,
12015
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12016
+ * See the License for the specific language governing permissions and
12017
+ * limitations under the License.
12018
+ */
12019
+ class ArbitraryAmountValueComponent {
12020
+ constructor() {
12021
+ this.fullWidth = false;
12022
+ this.disabled = false;
12023
+ this.valueChange = new EventEmitter();
12024
+ }
12025
+ get isFullWidth() {
12026
+ return this.fullWidth;
12027
+ }
12028
+ onInputChange(arbitraryIndex, inputValue) {
12029
+ this.valueChange.emit({
12030
+ value: this.value,
12031
+ inputValue,
12032
+ type: 'arbitrary',
12033
+ arbitraryIndex,
12034
+ });
12035
+ }
12036
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ArbitraryAmountValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12037
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ArbitraryAmountValueComponent, isStandalone: true, selector: "valtimo-arbitrary-amount-value", inputs: { index: "index", value: "value", fullWidth: "fullWidth", disabled: "disabled", arbitraryAmountTitles: "arbitraryAmountTitles", amountOfArbitraryValuesArray$: "amountOfArbitraryValuesArray$" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.isFullWidth" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@for (_ of amountOfArbitraryValuesArray$ | async; let i = $index; track i) {\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0\">{{\n arbitraryAmountTitles ? arbitraryAmountTitles[i] : ''\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value ? value['' + i] : ''\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange(i, $event.target.value)\"\n />\n </div>\n\n @if (((amountOfArbitraryValuesArray$ | async) || []).length - 1 !== i) {\n <div class=\"v-multi-input__separator\"></div>\n }\n}\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }] }); }
12038
+ }
12039
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ArbitraryAmountValueComponent, decorators: [{
12040
+ type: Component,
12041
+ args: [{ selector: 'valtimo-arbitrary-amount-value', standalone: true, imports: [CommonModule, InputModule$1], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n@for (_ of amountOfArbitraryValuesArray$ | async; let i = $index; track i) {\n <div class=\"v-multi-input__input\" [ngClass]=\"{'--full-width': fullWidth}\">\n <cds-label *ngIf=\"index === 0\">{{\n arbitraryAmountTitles ? arbitraryAmountTitles[i] : ''\n }}</cds-label>\n\n <input\n cdsText\n [defaultValue]=\"value ? value['' + i] : ''\"\n [disabled]=\"disabled\"\n (input)=\"onInputChange(i, $event.target.value)\"\n />\n </div>\n\n @if (((amountOfArbitraryValuesArray$ | async) || []).length - 1 !== i) {\n <div class=\"v-multi-input__separator\"></div>\n }\n}\n", styles: [":host{display:flex;flex-direction:row;align-items:flex-end}:host.--full-width{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
12042
+ }], propDecorators: { index: [{
12043
+ type: Input
12044
+ }], value: [{
12045
+ type: Input
12046
+ }], fullWidth: [{
12047
+ type: Input
12048
+ }], disabled: [{
12049
+ type: Input
12050
+ }], arbitraryAmountTitles: [{
12051
+ type: Input
12052
+ }], amountOfArbitraryValuesArray$: [{
12053
+ type: Input
12054
+ }], valueChange: [{
12055
+ type: Output
12056
+ }], isFullWidth: [{
12057
+ type: HostBinding,
12058
+ args: ['class.--full-width']
12059
+ }] } });
12060
+
12061
+ /*
12062
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
12063
+ *
12064
+ * Licensed under EUPL, Version 1.2 (the "License");
12065
+ * you may not use this file except in compliance with the License.
12066
+ * You may obtain a copy of the License at
12067
+ *
12068
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
12069
+ *
12070
+ * Unless required by applicable law or agreed to in writing, software
12071
+ * distributed under the License is distributed on an "AS IS" basis,
12072
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12073
+ * See the License for the specific language governing permissions and
12074
+ * limitations under the License.
12075
+ */
12076
+
12077
+ /*
12078
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
12079
+ *
12080
+ * Licensed under EUPL, Version 1.2 (the "License");
12081
+ * you may not use this file except in compliance with the License.
12082
+ * You may obtain a copy of the License at
12083
+ *
12084
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
12085
+ *
12086
+ * Unless required by applicable law or agreed to in writing, software
12087
+ * distributed under the License is distributed on an "AS IS" basis,
12088
+ * WITHimport { LabelModule } from 'carbon-components-angular';
12089
+ OUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12090
+ * See the License for the specific language governing permissions and
12091
+ * limitations under the License.
12092
+ */
12093
+ class KeyValuePathSelectorComponent {
12094
+ constructor() {
12095
+ this.fullWidth = false;
12096
+ this.disabled = false;
12097
+ this.documentDefinitionName = '';
12098
+ this.prefixes = [];
12099
+ this.showDocumentDefinitionSelector = false;
12100
+ this.notation = 'dots';
12101
+ this.keyColumnFlex = 1;
12102
+ this.valueColumnFlex = 1;
12103
+ this.valueChange = new EventEmitter();
12104
+ }
12105
+ onInputChange(type, inputValue) {
12106
+ this.valueChange.emit({ value: this.value, inputValue, type });
12107
+ }
12108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeyValuePathSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: KeyValuePathSelectorComponent, isStandalone: true, selector: "valtimo-key-value-path-selector", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", index: "index", value: "value", fullWidth: "fullWidth", disabled: "disabled", documentDefinitionName: "documentDefinitionName", prefixes: "prefixes", showDocumentDefinitionSelector: "showDocumentDefinitionSelector", notation: "notation", keyColumnFlex: "keyColumnFlex", valueColumnFlex: "valueColumnFlex" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.fullWidth" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n 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 />\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 [documentDefinitionName]=\"documentDefinitionName\"\n [prefixes]=\"prefixes\"\n [showDocumentDefinitionSelector]=\"showDocumentDefinitionSelector\"\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "documentDefinitionName", "version", "prefixes", "label", "tooltip", "required", "showDocumentDefinitionSelector", "notation", "defaultValue", "type", "parentItem"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
12110
+ }
12111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeyValuePathSelectorComponent, decorators: [{
12112
+ type: Component,
12113
+ args: [{ selector: 'valtimo-key-value-path-selector', standalone: true, imports: [
12114
+ CommonModule,
12115
+ InputModule$1,
12116
+ ValuePathSelectorComponent,
12117
+ FormsModule,
12118
+ ReactiveFormsModule,
12119
+ ], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n 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 />\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 [documentDefinitionName]=\"documentDefinitionName\"\n [prefixes]=\"prefixes\"\n [showDocumentDefinitionSelector]=\"showDocumentDefinitionSelector\"\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
12120
+ }], propDecorators: { keyColumnTitle: [{
12121
+ type: Input
12122
+ }], valueColumnTitle: [{
12123
+ type: Input
12124
+ }], index: [{
12125
+ type: Input
12126
+ }], value: [{
12127
+ type: Input
12128
+ }], fullWidth: [{
12129
+ type: Input
12130
+ }, {
12131
+ type: HostBinding,
12132
+ args: ['class.--full-width']
12133
+ }], disabled: [{
12134
+ type: Input
12135
+ }], documentDefinitionName: [{
12136
+ type: Input
12137
+ }], prefixes: [{
12138
+ type: Input
12139
+ }], showDocumentDefinitionSelector: [{
12140
+ type: Input
12141
+ }], notation: [{
12142
+ type: Input
12143
+ }], keyColumnFlex: [{
12144
+ type: Input
12145
+ }], valueColumnFlex: [{
12146
+ type: Input
12147
+ }], valueChange: [{
12148
+ type: Output
12149
+ }] } });
12150
+
12151
+ /*
12152
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
12153
+ *
12154
+ * Licensed under EUPL, Version 1.2 (the "License");
12155
+ * you may not use this file except in compliance with the License.
12156
+ * You may obtain a copy of the License at
12157
+ *
12158
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
12159
+ *
12160
+ * Unless required by applicable law or agreed to in writing, software
12161
+ * distributed under the License is distributed on an "AS IS" basis,
12162
+ * WITHimport { LabelModule } from 'carbon-components-angular';
12163
+ OUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12164
+ * See the License for the specific language governing permissions and
12165
+ * limitations under the License.
12166
+ */
12167
+ class ValuePathSelectorValueComponent {
12168
+ constructor() {
12169
+ this.fullWidth = false;
12170
+ this.disabled = false;
12171
+ this.documentDefinitionName = '';
12172
+ this.prefixes = [];
12173
+ this.showDocumentDefinitionSelector = false;
12174
+ this.notation = 'dots';
12175
+ this.keyColumnFlex = 1;
12176
+ this.valueColumnFlex = 1;
12177
+ this.valueChange = new EventEmitter();
12178
+ }
12179
+ onInputChange(type, inputValue) {
12180
+ this.valueChange.emit({ value: this.value, inputValue, type });
12181
+ }
12182
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12183
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ValuePathSelectorValueComponent, isStandalone: true, selector: "valtimo-value-path-selector-value", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", index: "index", value: "value", fullWidth: "fullWidth", disabled: "disabled", documentDefinitionName: "documentDefinitionName", prefixes: "prefixes", showDocumentDefinitionSelector: "showDocumentDefinitionSelector", notation: "notation", keyColumnFlex: "keyColumnFlex", valueColumnFlex: "valueColumnFlex" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.--full-width": "this.fullWidth" } }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n 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 [documentDefinitionName]=\"documentDefinitionName\"\n [prefixes]=\"prefixes\"\n [showDocumentDefinitionSelector]=\"showDocumentDefinitionSelector\"\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 />\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: ValuePathSelectorComponent, selector: "valtimo-value-path-selector", inputs: ["name", "appendInline", "margin", "marginLg", "marginXl", "disabled", "documentDefinitionName", "version", "prefixes", "label", "tooltip", "required", "showDocumentDefinitionSelector", "notation", "defaultValue", "type", "parentItem"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
12184
+ }
12185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorValueComponent, decorators: [{
12186
+ type: Component,
12187
+ args: [{ selector: 'valtimo-value-path-selector-value', standalone: true, imports: [
12188
+ CommonModule,
12189
+ InputModule$1,
12190
+ ValuePathSelectorComponent,
12191
+ FormsModule,
12192
+ ReactiveFormsModule,
12193
+ ], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n 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 [documentDefinitionName]=\"documentDefinitionName\"\n [prefixes]=\"prefixes\"\n [showDocumentDefinitionSelector]=\"showDocumentDefinitionSelector\"\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 />\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-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
12194
+ }], propDecorators: { keyColumnTitle: [{
12195
+ type: Input
12196
+ }], valueColumnTitle: [{
12197
+ type: Input
12198
+ }], index: [{
12199
+ type: Input
12200
+ }], value: [{
12201
+ type: Input
12202
+ }], fullWidth: [{
12203
+ type: Input
12204
+ }, {
12205
+ type: HostBinding,
12206
+ args: ['class.--full-width']
12207
+ }], disabled: [{
12208
+ type: Input
12209
+ }], documentDefinitionName: [{
12210
+ type: Input
12211
+ }], prefixes: [{
12212
+ type: Input
12213
+ }], showDocumentDefinitionSelector: [{
12214
+ type: Input
12215
+ }], notation: [{
12216
+ type: Input
12217
+ }], keyColumnFlex: [{
12218
+ type: Input
12219
+ }], valueColumnFlex: [{
12220
+ type: Input
12221
+ }], valueChange: [{
12222
+ type: Output
12223
+ }] } });
12224
+
12225
+ /*
12226
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
12227
+ *
12228
+ * Licensed under EUPL, Version 1.2 (the "License");
12229
+ * you may not use this file except in compliance with the License.
12230
+ * You may obtain a copy of the License at
12231
+ *
12232
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
12233
+ *
12234
+ * Unless required by applicable law or agreed to in writing, software
12235
+ * distributed under the License is distributed on an "AS IS" basis,
12236
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12237
+ * See the License for the specific language governing permissions and
12238
+ * limitations under the License.
12239
+ */
12240
+ class ValuePathSelectorDropdownValueComponent {
12241
+ constructor() {
12242
+ this.documentDefinitionName = '';
12243
+ this.prefixes = [];
12244
+ this.showDocumentDefinitionSelector = false;
12245
+ this.notation = 'dots';
12246
+ this.dropdownWidth = 250;
12247
+ this.fullWidth = false;
12248
+ this.disabled = false;
12249
+ this.keyColumnFlex = 1;
12250
+ this.dropdownColumnFlex = 1;
12251
+ this.valueColumnFlex = 1;
12252
+ this.valueChange = new EventEmitter();
12253
+ }
12254
+ onInputChange(type, inputValue) {
12255
+ this.valueChange.emit({ value: this.value, inputValue, type });
12256
+ }
12257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorDropdownValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ValuePathSelectorDropdownValueComponent, isStandalone: true, selector: "valtimo-value-path-selector-dropdown-value", inputs: { keyColumnTitle: "keyColumnTitle", valueColumnTitle: "valueColumnTitle", dropdownColumnTitle: "dropdownColumnTitle", index: "index", value: "value", dropdownItems$: "dropdownItems$", documentDefinitionName: "documentDefinitionName", prefixes: "prefixes", showDocumentDefinitionSelector: "showDocumentDefinitionSelector", 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-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n 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 [documentDefinitionName]=\"documentDefinitionName\"\n [prefixes]=\"prefixes\"\n [showDocumentDefinitionSelector]=\"showDocumentDefinitionSelector\"\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 (selected)=\"onInputChange('dropdown', $event.item.id)\" [appendInline]=\"true\">\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 />\n</div>\n", styles: [":host{display:flex;align-items:flex-end}:host.--full-width{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.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", "documentDefinitionName", "version", "prefixes", "label", "tooltip", "required", "showDocumentDefinitionSelector", "notation", "defaultValue", "type", "parentItem"], outputs: ["valueChangeEvent", "collectionSelected"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
12259
+ }
12260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorDropdownValueComponent, decorators: [{
12261
+ type: Component,
12262
+ args: [{ selector: 'valtimo-value-path-selector-dropdown-value', standalone: true, imports: [
12263
+ CommonModule,
12264
+ InputModule$1,
12265
+ DropdownModule,
12266
+ ValuePathSelectorComponent,
12267
+ FormsModule,
12268
+ ReactiveFormsModule,
12269
+ ], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n 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 [documentDefinitionName]=\"documentDefinitionName\"\n [prefixes]=\"prefixes\"\n [showDocumentDefinitionSelector]=\"showDocumentDefinitionSelector\"\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 (selected)=\"onInputChange('dropdown', $event.item.id)\" [appendInline]=\"true\">\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 />\n</div>\n", styles: [":host{display:flex;align-items:flex-end}:host.--full-width{width:100%}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
12270
+ }], propDecorators: { keyColumnTitle: [{
12271
+ type: Input
12272
+ }], valueColumnTitle: [{
12273
+ type: Input
12274
+ }], dropdownColumnTitle: [{
12275
+ type: Input
12276
+ }], index: [{
12277
+ type: Input
12278
+ }], value: [{
12279
+ type: Input
12280
+ }], dropdownItems$: [{
12281
+ type: Input
12282
+ }], documentDefinitionName: [{
12283
+ type: Input
12284
+ }], prefixes: [{
12285
+ type: Input
12286
+ }], showDocumentDefinitionSelector: [{
12287
+ type: Input
12288
+ }], notation: [{
12289
+ type: Input
12290
+ }], dropdownWidth: [{
12291
+ type: Input
12292
+ }], fullWidth: [{
12293
+ type: Input
12294
+ }, {
12295
+ type: HostBinding,
12296
+ args: ['class.--full-width']
12297
+ }], disabled: [{
12298
+ type: Input
12299
+ }], keyColumnFlex: [{
12300
+ type: Input
12301
+ }], dropdownColumnFlex: [{
12302
+ type: Input
12303
+ }], valueColumnFlex: [{
12304
+ type: Input
12305
+ }], valueChange: [{
12306
+ type: Output
12307
+ }] } });
12308
+
12309
+ /*
12310
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
12311
+ *
12312
+ * Licensed under EUPL, Version 1.2 (the "License");
12313
+ * you may not use this file except in compliance with the License.
12314
+ * You may obtain a copy of the License at
12315
+ *
12316
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
12317
+ *
12318
+ * Unless required by applicable law or agreed to in writing, software
12319
+ * distributed under the License is distributed on an "AS IS" basis,
12320
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12321
+ * See the License for the specific language governing permissions and
12322
+ * limitations under the License.
12323
+ */
12324
+ class CarbonMultiInputComponent {
12325
+ constructor() {
12326
+ this.addRowText = '';
12327
+ this.addRowTranslationKey = '';
12328
+ this._defaultValues$ = new BehaviorSubject([]);
12329
+ this.deleteRowText = '';
12330
+ this.deleteRowTranslationKey = '';
12331
+ this.disabled = false;
12332
+ this.dropdownColumnTitle = '';
12333
+ this.dropdownWidth = 250;
12334
+ this.fullWidth = false;
12335
+ this.hideAddButton = false;
12336
+ this.hideDeleteButton = false;
12337
+ this.initialAmountOfRows = 1;
12338
+ this.keyColumnTitle = '';
12339
+ this.margin = false;
12340
+ this.maxRows = null;
12341
+ this.minimumAmountOfRows = 1;
12342
+ this.name = '';
12343
+ this.required = false;
12344
+ this.title = '';
12345
+ this.titleTranslationKey = '';
12346
+ this.tooltip = '';
12347
+ this.type = 'value';
12348
+ this.valueColumnTitle = '';
12349
+ this.valuePathSelectorDocumentDefinitionName = '';
12350
+ this.valuePathSelectorPrefixes = [];
12351
+ this.valuePathSelectorShowDocumentDefinitionSelector = false;
12352
+ this.valuePathSelectorNotation = 'dots';
12353
+ this.keyColumnFlex = 1;
12354
+ this.dropdownColumnFlex = 1;
12355
+ this.valueColumnFlex = 1;
12356
+ this.valueChange = new EventEmitter();
12357
+ this.allValuesValidEvent = new EventEmitter();
12358
+ this.amountOfArbitraryValuesArray$ = new BehaviorSubject([]);
12359
+ this.values$ = new BehaviorSubject([]);
12360
+ this.mappedValues$ = this.values$.pipe(map$1(values => this.filterAndMapValues(values)));
12361
+ this.addRowEnabled$ = this.values$.pipe(map$1(values => !!(this.maxRows === null || values.length < this.maxRows)));
12362
+ this.dropdownItems$ = new BehaviorSubject([]);
12363
+ this._subscriptions = new Subscription();
12364
+ }
12365
+ set arbitraryValueAmount(value) {
12366
+ this._amountOfArbitraryValues = value;
12367
+ this.amountOfArbitraryValuesArray$.next(this.getArrayOfXLength(value));
12368
+ }
12369
+ set defaultValues(value) {
12370
+ if (!Array.isArray(value))
12371
+ return;
12372
+ this._defaultValues$.next(value);
12373
+ }
12374
+ set dropdownItems(value) {
12375
+ this.dropdownItems$.next(value);
12376
+ }
12377
+ ngOnInit() {
12378
+ this.values$.next(this.getInitialRows());
12379
+ this.openValuesSubscription();
12380
+ this.openDefaultValuesSubscription();
12381
+ }
12382
+ ngOnDestroy() {
12383
+ this._subscriptions.unsubscribe();
12384
+ }
12385
+ addRow() {
12386
+ combineLatest([this.values$, this.addRowEnabled$])
12387
+ .pipe(take(1))
12388
+ .subscribe(([values, addRowEnabled]) => {
12389
+ if (addRowEnabled) {
12390
+ this.values$.next([...values, this.getEmptyValue()]);
12391
+ }
12392
+ });
12393
+ }
12394
+ deleteRow(uuid) {
12395
+ this.values$.pipe(take(1)).subscribe(values => {
12396
+ if (values.length > this.minimumAmountOfRows) {
12397
+ this.values$.next(values.filter(value => value.uuid !== uuid));
12398
+ }
12399
+ });
12400
+ }
12401
+ trackByFn(_, value) {
12402
+ return value.uuid;
12403
+ }
12404
+ getDropdownItemsForRow(index) {
12405
+ return combineLatest([this.dropdownItems$, this.values$]).pipe(map$1(([dropdownItems, values]) => {
12406
+ const defaultValue = values[index] || this.defaultValues[index];
12407
+ return dropdownItems.map(dropdownItem => ({
12408
+ ...dropdownItem,
12409
+ selected: defaultValue ? dropdownItem.id === defaultValue.dropdown : false,
12410
+ }));
12411
+ }));
12412
+ }
12413
+ onValueChange(templateValue, inputValue, change, arbitraryIndex) {
12414
+ this.values$.pipe(take(1)).subscribe(values => {
12415
+ this.values$.next(values.map(stateValue => {
12416
+ if (stateValue.uuid === templateValue.uuid) {
12417
+ if (change === 'value') {
12418
+ return { ...stateValue, value: inputValue };
12419
+ }
12420
+ else if (change === 'key') {
12421
+ return { ...stateValue, key: inputValue };
12422
+ }
12423
+ else if (change === 'dropdown') {
12424
+ return { ...stateValue, dropdown: inputValue };
12425
+ }
12426
+ else if (change === 'arbitrary') {
12427
+ return { ...stateValue, [arbitraryIndex]: inputValue };
12428
+ }
12429
+ }
12430
+ return stateValue;
12431
+ }));
12432
+ });
12433
+ }
12434
+ getInitialRows() {
12435
+ const minimumRows = this.minimumAmountOfRows;
12436
+ const initialRows = this.initialAmountOfRows;
12437
+ const amountOfInitialRows = Math.max(minimumRows, initialRows);
12438
+ return new Array(amountOfInitialRows).fill(this.getEmptyValue());
12439
+ }
12440
+ getEmptyValue() {
12441
+ if (this.type === 'arbitraryAmount') {
12442
+ const emptyValue = {
12443
+ uuid: v4(),
12444
+ };
12445
+ this.getArrayOfXLength(this._amountOfArbitraryValues).forEach((_, index) => {
12446
+ emptyValue[`${index}`] = '';
12447
+ });
12448
+ return emptyValue;
12449
+ }
12450
+ return {
12451
+ key: '',
12452
+ value: '',
12453
+ uuid: v4(),
12454
+ dropdown: '',
12455
+ };
12456
+ }
12457
+ getMappedValue(valueToMap) {
12458
+ if (this.type === 'keyValue' ||
12459
+ this.type === 'keyValuePathSelector' ||
12460
+ this.type === 'valuePathSelectorValue') {
12461
+ return { key: valueToMap.key, value: valueToMap.value };
12462
+ }
12463
+ else if (this.type === 'keyDropdownValue' || this.type === 'valuePathSelectorDropdownValue') {
12464
+ return { key: valueToMap.key, value: valueToMap.value, dropdown: valueToMap.dropdown };
12465
+ }
12466
+ else if (this.type === 'arbitraryAmount') {
12467
+ const objCopy = { ...valueToMap };
12468
+ delete objCopy.uuid;
12469
+ return objCopy;
12470
+ }
12471
+ return valueToMap.value;
12472
+ }
12473
+ openValuesSubscription() {
12474
+ this._subscriptions.add(combineLatest([this.values$, this.mappedValues$]).subscribe(([values, mappedValues]) => {
12475
+ this.valueChange.emit(mappedValues);
12476
+ this.allValuesValidEvent.emit(values.length === mappedValues.length);
12477
+ }));
12478
+ }
12479
+ getArrayOfXLength(length) {
12480
+ return Array(length).fill(0);
12481
+ }
12482
+ filterAndMapValues(values) {
12483
+ return values
12484
+ .map(value => this.getMappedValue(value))
12485
+ .filter(value => this.isValueValid(value));
12486
+ }
12487
+ isValueValid(value) {
12488
+ switch (this.type) {
12489
+ case 'value':
12490
+ return !!value;
12491
+ case 'keyValue':
12492
+ case 'keyValuePathSelector':
12493
+ case 'valuePathSelectorValue':
12494
+ return !!(value.value || value.key);
12495
+ case 'keyDropdownValue':
12496
+ case 'valuePathSelectorDropdownValue':
12497
+ return !!(value.value &&
12498
+ value.key &&
12499
+ value.dropdown);
12500
+ case 'arbitraryAmount':
12501
+ const objectValues = Object.values(value);
12502
+ const positiveValuesAmount = objectValues.filter(objectValue => !!objectValue);
12503
+ return objectValues.length === positiveValuesAmount.length;
12504
+ default:
12505
+ return false;
12506
+ }
12507
+ }
12508
+ openDefaultValuesSubscription() {
12509
+ this._subscriptions.add(this._defaultValues$.subscribe(defaultValues => {
12510
+ if (defaultValues.length < this.minimumAmountOfRows)
12511
+ return;
12512
+ this.values$.next(defaultValues.map(defaultValue => ({ ...defaultValue, uuid: v4() })));
12513
+ }));
12514
+ }
12515
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12516
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: { addRowText: "addRowText", addRowTranslationKey: "addRowTranslationKey", arbitraryAmountTitles: "arbitraryAmountTitles", arbitraryValueAmount: "arbitraryValueAmount", defaultValues: "defaultValues", deleteRowText: "deleteRowText", deleteRowTranslationKey: "deleteRowTranslationKey", disabled: "disabled", dropdownColumnTitle: "dropdownColumnTitle", dropdownItems: "dropdownItems", dropdownWidth: "dropdownWidth", fullWidth: "fullWidth", hideAddButton: "hideAddButton", hideDeleteButton: "hideDeleteButton", initialAmountOfRows: "initialAmountOfRows", keyColumnTitle: "keyColumnTitle", margin: "margin", maxRows: "maxRows", minimumAmountOfRows: "minimumAmountOfRows", name: "name", required: "required", title: "title", titleTranslationKey: "titleTranslationKey", tooltip: "tooltip", type: "type", valueColumnTitle: "valueColumnTitle", valuePathSelectorDocumentDefinitionName: "valuePathSelectorDocumentDefinitionName", valuePathSelectorPrefixes: "valuePathSelectorPrefixes", valuePathSelectorShowDocumentDefinitionSelector: "valuePathSelectorShowDocumentDefinitionSelector", valuePathSelectorNotation: "valuePathSelectorNotation", keyColumnFlex: "keyColumnFlex", dropdownColumnFlex: "dropdownColumnFlex", valueColumnFlex: "valueColumnFlex" }, outputs: { valueChange: "valueChange", allValuesValidEvent: "allValuesValidEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n addRowText:\n addRowText || addRowTranslationKey\n ? addRowTranslationKey\n ? (addRowTranslationKey | translate)\n : addRowText\n : ('interface.addRow' | translate),\n deleteRowText:\n deleteRowText || deleteRowTranslationKey\n ? deleteRowTranslationKey\n ? (deleteRowTranslationKey | translate)\n : deleteRowText\n : ('interface.deleteRow' | translate),\n } as vars\"\n [ngClass]=\"{'v-multi-input--margin': margin, 'v-multi-input--no-delete-button': hideDeleteButton}\"\n class=\"v-multi-input\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n\n <div class=\"v-multi-input__rows\">\n <div\n *ngFor=\"let value of values$ | async as values; trackBy: trackByFn; index as i\"\n class=\"v-multi-input__row\"\n >\n @switch (type) {\n @case ('value') {\n <valtimo-single-value\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, 'value')\"\n ></valtimo-single-value>\n }\n @case ('keyValue') {\n <valtimo-key-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-key-value>\n }\n @case ('keyDropdownValue') {\n <valtimo-key-dropdown-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [dropdownColumnTitle]=\"dropdownColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [dropdownItems$]=\"getDropdownItemsForRow(i)\"\n [dropdownWidth]=\"dropdownWidth\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [dropdownColumnFlex]=\"dropdownColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-key-dropdown-value>\n }\n @case ('arbitraryAmount') {\n <valtimo-arbitrary-amount-value\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [arbitraryAmountTitles]=\"arbitraryAmountTitles\"\n [amountOfArbitraryValuesArray$]=\"amountOfArbitraryValuesArray$\"\n (valueChange)=\"\n onValueChange($event.value, $event.inputValue, $event.type, $event.arbitraryIndex)\n \"\n ></valtimo-arbitrary-amount-value>\n }\n @case ('keyValuePathSelector') {\n <valtimo-key-value-path-selector\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [documentDefinitionName]=\"valuePathSelectorDocumentDefinitionName\"\n [prefixes]=\"valuePathSelectorPrefixes\"\n [showDocumentDefinitionSelector]=\"valuePathSelectorShowDocumentDefinitionSelector\"\n [notation]=\"valuePathSelectorNotation\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-key-value-path-selector>\n }\n @case ('valuePathSelectorValue') {\n <valtimo-value-path-selector-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [documentDefinitionName]=\"valuePathSelectorDocumentDefinitionName\"\n [prefixes]=\"valuePathSelectorPrefixes\"\n [showDocumentDefinitionSelector]=\"valuePathSelectorShowDocumentDefinitionSelector\"\n [notation]=\"valuePathSelectorNotation\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-value-path-selector-value>\n }\n @case ('valuePathSelectorDropdownValue') {\n <valtimo-value-path-selector-dropdown-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [dropdownColumnTitle]=\"dropdownColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [documentDefinitionName]=\"valuePathSelectorDocumentDefinitionName\"\n [prefixes]=\"valuePathSelectorPrefixes\"\n [dropdownItems$]=\"getDropdownItemsForRow(i)\"\n [dropdownWidth]=\"dropdownWidth\"\n [showDocumentDefinitionSelector]=\"valuePathSelectorShowDocumentDefinitionSelector\"\n [notation]=\"valuePathSelectorNotation\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [dropdownColumnFlex]=\"dropdownColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-value-path-selector-dropdown-value>\n }\n }\n\n <button\n *ngIf=\"!hideDeleteButton\"\n cdsButton=\"danger\"\n [disabled]=\"values?.length <= this.minimumAmountOfRows || disabled\"\n [iconOnly]=\"true\"\n size=\"md\"\n (click)=\"deleteRow(value.uuid)\"\n [title]=\"vars.deleteRowText\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n\n <div class=\"v-multi-input__add-button\">\n <button\n *ngIf=\"!hideAddButton\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"(addRowEnabled$ | async) === false || disabled\"\n (click)=\"addRow()\"\n >\n {{ vars.addRowText }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</div>\n", styles: [".v-multi-input--margin{margin-block-end:var(--v-input-margin)}.v-multi-input__row{display:flex;flex-direction:row;align-items:flex-end;margin-block-end:var(--v-multi-input-row-spacing-block)}.v-multi-input__input{margin-inline-end:var(--v-multi-input-input-spacing-inline)}.v-multi-input__input.--full-width{flex:1}.v-multi-input__separator{height:40px;width:12px;display:flex;justify-content:flex-start}.v-multi-input__separator:before{content:\"\";height:100%;width:1px;background-color:var(--cds-border-subtle-selected)}.v-multi-input--no-delete-button .v-multi-input__input:last-child{margin-inline-end:0}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputLabelComponent, selector: "v-input-label", inputs: ["name", "tooltip", "largeMargin", "small", "noMargin", "title", "titleTranslationKey", "required", "disabled", "carbonTheme"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: KeyValueComponent, selector: "valtimo-key-value", inputs: ["keyColumnTitle", "valueColumnTitle", "index", "value", "fullWidth", "disabled", "keyColumnFlex", "valueColumnFlex"], outputs: ["valueChange"] }, { kind: "component", type: SingleValueComponent, selector: "valtimo-single-value", inputs: ["value", "fullWidth", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: KeyDropdownValueComponent, selector: "valtimo-key-dropdown-value", inputs: ["keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "index", "value", "dropdownItems$", "dropdownWidth", "fullWidth", "disabled", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange"] }, { kind: "component", type: ArbitraryAmountValueComponent, selector: "valtimo-arbitrary-amount-value", inputs: ["index", "value", "fullWidth", "disabled", "arbitraryAmountTitles", "amountOfArbitraryValuesArray$"], outputs: ["valueChange"] }, { kind: "component", type: KeyValuePathSelectorComponent, selector: "valtimo-key-value-path-selector", inputs: ["keyColumnTitle", "valueColumnTitle", "index", "value", "fullWidth", "disabled", "documentDefinitionName", "prefixes", "showDocumentDefinitionSelector", "notation", "keyColumnFlex", "valueColumnFlex"], outputs: ["valueChange"] }, { kind: "component", type: ValuePathSelectorValueComponent, selector: "valtimo-value-path-selector-value", inputs: ["keyColumnTitle", "valueColumnTitle", "index", "value", "fullWidth", "disabled", "documentDefinitionName", "prefixes", "showDocumentDefinitionSelector", "notation", "keyColumnFlex", "valueColumnFlex"], outputs: ["valueChange"] }, { kind: "component", type: ValuePathSelectorDropdownValueComponent, selector: "valtimo-value-path-selector-dropdown-value", inputs: ["keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "index", "value", "dropdownItems$", "documentDefinitionName", "prefixes", "showDocumentDefinitionSelector", "notation", "dropdownWidth", "fullWidth", "disabled", "keyColumnFlex", "dropdownColumnFlex", "valueColumnFlex"], outputs: ["valueChange"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
12517
+ }
12518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputComponent, decorators: [{
12519
+ type: Component,
12520
+ args: [{ selector: 'valtimo-carbon-multi-input', encapsulation: ViewEncapsulation.None, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div\n *ngIf=\"{\n addRowText:\n addRowText || addRowTranslationKey\n ? addRowTranslationKey\n ? (addRowTranslationKey | translate)\n : addRowText\n : ('interface.addRow' | translate),\n deleteRowText:\n deleteRowText || deleteRowTranslationKey\n ? deleteRowTranslationKey\n ? (deleteRowTranslationKey | translate)\n : deleteRowText\n : ('interface.deleteRow' | translate),\n } as vars\"\n [ngClass]=\"{'v-multi-input--margin': margin, 'v-multi-input--no-delete-button': hideDeleteButton}\"\n class=\"v-multi-input\"\n>\n <v-input-label\n *ngIf=\"title || titleTranslationKey\"\n [name]=\"name\"\n [required]=\"required\"\n [titleTranslationKey]=\"titleTranslationKey\"\n [title]=\"title\"\n [tooltip]=\"tooltip\"\n >\n </v-input-label>\n\n <div class=\"v-multi-input__rows\">\n <div\n *ngFor=\"let value of values$ | async as values; trackBy: trackByFn; index as i\"\n class=\"v-multi-input__row\"\n >\n @switch (type) {\n @case ('value') {\n <valtimo-single-value\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, 'value')\"\n ></valtimo-single-value>\n }\n @case ('keyValue') {\n <valtimo-key-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-key-value>\n }\n @case ('keyDropdownValue') {\n <valtimo-key-dropdown-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [dropdownColumnTitle]=\"dropdownColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [dropdownItems$]=\"getDropdownItemsForRow(i)\"\n [dropdownWidth]=\"dropdownWidth\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [dropdownColumnFlex]=\"dropdownColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-key-dropdown-value>\n }\n @case ('arbitraryAmount') {\n <valtimo-arbitrary-amount-value\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [arbitraryAmountTitles]=\"arbitraryAmountTitles\"\n [amountOfArbitraryValuesArray$]=\"amountOfArbitraryValuesArray$\"\n (valueChange)=\"\n onValueChange($event.value, $event.inputValue, $event.type, $event.arbitraryIndex)\n \"\n ></valtimo-arbitrary-amount-value>\n }\n @case ('keyValuePathSelector') {\n <valtimo-key-value-path-selector\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [documentDefinitionName]=\"valuePathSelectorDocumentDefinitionName\"\n [prefixes]=\"valuePathSelectorPrefixes\"\n [showDocumentDefinitionSelector]=\"valuePathSelectorShowDocumentDefinitionSelector\"\n [notation]=\"valuePathSelectorNotation\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-key-value-path-selector>\n }\n @case ('valuePathSelectorValue') {\n <valtimo-value-path-selector-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [documentDefinitionName]=\"valuePathSelectorDocumentDefinitionName\"\n [prefixes]=\"valuePathSelectorPrefixes\"\n [showDocumentDefinitionSelector]=\"valuePathSelectorShowDocumentDefinitionSelector\"\n [notation]=\"valuePathSelectorNotation\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-value-path-selector-value>\n }\n @case ('valuePathSelectorDropdownValue') {\n <valtimo-value-path-selector-dropdown-value\n [keyColumnTitle]=\"keyColumnTitle\"\n [dropdownColumnTitle]=\"dropdownColumnTitle\"\n [valueColumnTitle]=\"valueColumnTitle\"\n [index]=\"i\"\n [value]=\"value\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [documentDefinitionName]=\"valuePathSelectorDocumentDefinitionName\"\n [prefixes]=\"valuePathSelectorPrefixes\"\n [dropdownItems$]=\"getDropdownItemsForRow(i)\"\n [dropdownWidth]=\"dropdownWidth\"\n [showDocumentDefinitionSelector]=\"valuePathSelectorShowDocumentDefinitionSelector\"\n [notation]=\"valuePathSelectorNotation\"\n [keyColumnFlex]=\"keyColumnFlex\"\n [dropdownColumnFlex]=\"dropdownColumnFlex\"\n [valueColumnFlex]=\"valueColumnFlex\"\n (valueChange)=\"onValueChange($event.value, $event.inputValue, $event.type)\"\n ></valtimo-value-path-selector-dropdown-value>\n }\n }\n\n <button\n *ngIf=\"!hideDeleteButton\"\n cdsButton=\"danger\"\n [disabled]=\"values?.length <= this.minimumAmountOfRows || disabled\"\n [iconOnly]=\"true\"\n size=\"md\"\n (click)=\"deleteRow(value.uuid)\"\n [title]=\"vars.deleteRowText\"\n >\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </div>\n\n <div class=\"v-multi-input__add-button\">\n <button\n *ngIf=\"!hideAddButton\"\n cdsButton=\"primary\"\n size=\"md\"\n [disabled]=\"(addRowEnabled$ | async) === false || disabled\"\n (click)=\"addRow()\"\n >\n {{ vars.addRowText }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </div>\n </div>\n</div>\n", styles: [".v-multi-input--margin{margin-block-end:var(--v-input-margin)}.v-multi-input__row{display:flex;flex-direction:row;align-items:flex-end;margin-block-end:var(--v-multi-input-row-spacing-block)}.v-multi-input__input{margin-inline-end:var(--v-multi-input-input-spacing-inline)}.v-multi-input__input.--full-width{flex:1}.v-multi-input__separator{height:40px;width:12px;display:flex;justify-content:flex-start}.v-multi-input__separator:before{content:\"\";height:100%;width:1px;background-color:var(--cds-border-subtle-selected)}.v-multi-input--no-delete-button .v-multi-input__input:last-child{margin-inline-end:0}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
12521
+ }], propDecorators: { addRowText: [{
12522
+ type: Input
12523
+ }], addRowTranslationKey: [{
12524
+ type: Input
12525
+ }], arbitraryAmountTitles: [{
12526
+ type: Input
12527
+ }], arbitraryValueAmount: [{
12528
+ type: Input
12529
+ }], defaultValues: [{
12530
+ type: Input
12531
+ }], deleteRowText: [{
12532
+ type: Input
12533
+ }], deleteRowTranslationKey: [{
12534
+ type: Input
12535
+ }], disabled: [{
12536
+ type: Input
12537
+ }], dropdownColumnTitle: [{
12538
+ type: Input
12539
+ }], dropdownItems: [{
12540
+ type: Input
12541
+ }], dropdownWidth: [{
12542
+ type: Input
12543
+ }], fullWidth: [{
12544
+ type: Input
12545
+ }], hideAddButton: [{
12546
+ type: Input
12547
+ }], hideDeleteButton: [{
12548
+ type: Input
12549
+ }], initialAmountOfRows: [{
12550
+ type: Input
12551
+ }], keyColumnTitle: [{
12552
+ type: Input
12553
+ }], margin: [{
12554
+ type: Input
12555
+ }], maxRows: [{
12556
+ type: Input
12557
+ }], minimumAmountOfRows: [{
12558
+ type: Input
12559
+ }], name: [{
12560
+ type: Input
12561
+ }], required: [{
12562
+ type: Input
12563
+ }], title: [{
12564
+ type: Input
12565
+ }], titleTranslationKey: [{
12566
+ type: Input
12567
+ }], tooltip: [{
12568
+ type: Input
12569
+ }], type: [{
12570
+ type: Input
12571
+ }], valueColumnTitle: [{
12572
+ type: Input
12573
+ }], valuePathSelectorDocumentDefinitionName: [{
12574
+ type: Input
12575
+ }], valuePathSelectorPrefixes: [{
12576
+ type: Input
12577
+ }], valuePathSelectorShowDocumentDefinitionSelector: [{
12578
+ type: Input
12579
+ }], valuePathSelectorNotation: [{
12580
+ type: Input
12581
+ }], keyColumnFlex: [{
12582
+ type: Input
12583
+ }], dropdownColumnFlex: [{
12584
+ type: Input
12585
+ }], valueColumnFlex: [{
12586
+ type: Input
12587
+ }], valueChange: [{
12588
+ type: Output
12589
+ }], allValuesValidEvent: [{
12590
+ type: Output
12591
+ }] } });
12592
+
12593
+ /*
12594
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
12595
+ *
12596
+ * Licensed under EUPL, Version 1.2 (the "License");
12597
+ * you may not use this file except in compliance with the License.
12598
+ * You may obtain a copy of the License at
12599
+ *
12600
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
12601
+ *
12602
+ * Unless required by applicable law or agreed to in writing, software
12603
+ * distributed under the License is distributed on an "AS IS" basis,
12604
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12605
+ * See the License for the specific language governing permissions and
12606
+ * limitations under the License.
12607
+ */
12608
+ /**
12609
+ * @deprecated Migrate old design to Carbon
12610
+ */
12611
+ class DatePickerComponent {
12612
+ set fullWidth(value) {
12613
+ this.fullWidthClass = value;
12614
+ }
12615
+ constructor(translateService) {
12616
+ this.translateService = translateService;
12617
+ this.fullWidthClass = false;
12618
+ this.name = '';
12619
+ this.title = '';
12620
+ this.titleTranslationKey = '';
12621
+ this.margin = false;
12622
+ this.disabled = false;
12623
+ this.tooltip = '';
12624
+ this.required = false;
12625
+ this.smallLabel = false;
12626
+ this.enableTime = false;
12627
+ this.carbonTheme = 'g10';
12628
+ this.valueChange = new EventEmitter();
12629
+ this.dateValue$ = new BehaviorSubject('');
12630
+ this._subscriptions = new Subscription();
12631
+ this.onChange = (selectedDates, dateStr) => {
12632
+ this.dateValue$.next(dateStr);
12633
+ };
12634
+ }
12635
+ ngAfterViewInit() {
12636
+ this.openLocaleSubscription();
12637
+ this.openDateValueSubscription();
12638
+ this.openClearSubscription();
12639
+ }
12640
+ ngOnDestroy() {
12641
+ this._subscriptions.unsubscribe();
12064
12642
  }
12065
12643
  openLocaleSubscription() {
12066
12644
  this._subscriptions.add(this.translateService.stream('key').subscribe(() => {
@@ -13102,6 +13680,134 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
13102
13680
  }]
13103
13681
  }] });
13104
13682
 
13683
+ /*
13684
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
13685
+ *
13686
+ * Licensed under EUPL, Version 1.2 (the "License");
13687
+ * you may not use this file except in compliance with the License.
13688
+ * You may obtain a copy of the License at
13689
+ *
13690
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
13691
+ *
13692
+ * Unless required by applicable law or agreed to in writing, software
13693
+ * distributed under the License is distributed on an "AS IS" basis,
13694
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13695
+ * See the License for the specific language governing permissions and
13696
+ * limitations under the License.
13697
+ */
13698
+
13699
+ /*
13700
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
13701
+ *
13702
+ * Licensed under EUPL, Version 1.2 (the "License");
13703
+ * you may not use this file except in compliance with the License.
13704
+ * You may obtain a copy of the License at
13705
+ *
13706
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
13707
+ *
13708
+ * Unless required by applicable law or agreed to in writing, software
13709
+ * distributed under the License is distributed on an "AS IS" basis,
13710
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13711
+ * See the License for the specific language governing permissions and
13712
+ * limitations under the License.
13713
+ */
13714
+
13715
+ /*
13716
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
13717
+ *
13718
+ * Licensed under EUPL, Version 1.2 (the "License");
13719
+ * you may not use this file except in compliance with the License.
13720
+ * You may obtain a copy of the License at
13721
+ *
13722
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
13723
+ *
13724
+ * Unless required by applicable law or agreed to in writing, software
13725
+ * distributed under the License is distributed on an "AS IS" basis,
13726
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13727
+ * See the License for the specific language governing permissions and
13728
+ * limitations under the License.
13729
+ */
13730
+
13731
+ /*
13732
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
13733
+ *
13734
+ * Licensed under EUPL, Version 1.2 (the "License");
13735
+ * you may not use this file except in compliance with the License.
13736
+ * You may obtain a copy of the License at
13737
+ *
13738
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
13739
+ *
13740
+ * Unless required by applicable law or agreed to in writing, software
13741
+ * distributed under the License is distributed on an "AS IS" basis,
13742
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13743
+ * See the License for the specific language governing permissions and
13744
+ * limitations under the License.
13745
+ */
13746
+
13747
+ /*
13748
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
13749
+ *
13750
+ * Licensed under EUPL, Version 1.2 (the "License");
13751
+ * you may not use this file except in compliance with the License.
13752
+ * You may obtain a copy of the License at
13753
+ *
13754
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
13755
+ *
13756
+ * Unless required by applicable law or agreed to in writing, software
13757
+ * distributed under the License is distributed on an "AS IS" basis,
13758
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13759
+ * See the License for the specific language governing permissions and
13760
+ * limitations under the License.
13761
+ */
13762
+
13763
+ /*
13764
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
13765
+ *
13766
+ * Licensed under EUPL, Version 1.2 (the "License");
13767
+ * you may not use this file except in compliance with the License.
13768
+ * You may obtain a copy of the License at
13769
+ *
13770
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
13771
+ *
13772
+ * Unless required by applicable law or agreed to in writing, software
13773
+ * distributed under the License is distributed on an "AS IS" basis,
13774
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13775
+ * See the License for the specific language governing permissions and
13776
+ * limitations under the License.
13777
+ */
13778
+
13779
+ /*
13780
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
13781
+ *
13782
+ * Licensed under EUPL, Version 1.2 (the "License");
13783
+ * you may not use this file except in compliance with the License.
13784
+ * You may obtain a copy of the License at
13785
+ *
13786
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
13787
+ *
13788
+ * Unless required by applicable law or agreed to in writing, software
13789
+ * distributed under the License is distributed on an "AS IS" basis,
13790
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13791
+ * See the License for the specific language governing permissions and
13792
+ * limitations under the License.
13793
+ */
13794
+
13795
+ /*
13796
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
13797
+ *
13798
+ * Licensed under EUPL, Version 1.2 (the "License");
13799
+ * you may not use this file except in compliance with the License.
13800
+ * You may obtain a copy of the License at
13801
+ *
13802
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
13803
+ *
13804
+ * Unless required by applicable law or agreed to in writing, software
13805
+ * distributed under the License is distributed on an "AS IS" basis,
13806
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13807
+ * See the License for the specific language governing permissions and
13808
+ * limitations under the License.
13809
+ */
13810
+
13105
13811
  /*
13106
13812
  * Copyright 2015-2024 Ritense BV, the Netherlands.
13107
13813
  *
@@ -13127,7 +13833,14 @@ class CarbonMultiInputModule {
13127
13833
  ButtonModule$1,
13128
13834
  IconModule,
13129
13835
  InputModule$1,
13130
- DropdownModule], exports: [CarbonMultiInputComponent] }); }
13836
+ DropdownModule,
13837
+ KeyValueComponent,
13838
+ SingleValueComponent,
13839
+ KeyDropdownValueComponent,
13840
+ ArbitraryAmountValueComponent,
13841
+ KeyValuePathSelectorComponent,
13842
+ ValuePathSelectorValueComponent,
13843
+ ValuePathSelectorDropdownValueComponent], exports: [CarbonMultiInputComponent] }); }
13131
13844
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputModule, imports: [CommonModule,
13132
13845
  InputLabelModule,
13133
13846
  InputModule,
@@ -13136,7 +13849,14 @@ class CarbonMultiInputModule {
13136
13849
  ButtonModule$1,
13137
13850
  IconModule,
13138
13851
  InputModule$1,
13139
- DropdownModule] }); }
13852
+ DropdownModule,
13853
+ KeyValueComponent,
13854
+ SingleValueComponent,
13855
+ KeyDropdownValueComponent,
13856
+ ArbitraryAmountValueComponent,
13857
+ KeyValuePathSelectorComponent,
13858
+ ValuePathSelectorValueComponent,
13859
+ ValuePathSelectorDropdownValueComponent] }); }
13140
13860
  }
13141
13861
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CarbonMultiInputModule, decorators: [{
13142
13862
  type: NgModule,
@@ -13152,6 +13872,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
13152
13872
  IconModule,
13153
13873
  InputModule$1,
13154
13874
  DropdownModule,
13875
+ KeyValueComponent,
13876
+ SingleValueComponent,
13877
+ KeyDropdownValueComponent,
13878
+ ArbitraryAmountValueComponent,
13879
+ KeyValuePathSelectorComponent,
13880
+ ValuePathSelectorValueComponent,
13881
+ ValuePathSelectorDropdownValueComponent,
13155
13882
  ],
13156
13883
  exports: [CarbonMultiInputComponent],
13157
13884
  }]
@@ -15436,5 +16163,5 @@ function enableCustomFormioComponents(injector) {
15436
16163
  * Generated bundle index. Do not edit.
15437
16164
  */
15438
16165
 
15439
- export { Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, BOOLEAN_CONVERTER_VALUES, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, BreadcrumbService, ButtonComponent, ButtonModule, CARBON_CONSTANTS, CARBON_THEME, CASES_WITHOUT_STATUS_KEY, CamundaFormComponent, CamundaFormModule, CarbonListComponent, CarbonListFilterPipe, CarbonListModule, CarbonMultiInputComponent, CarbonMultiInputModule, CarbonNoResultsComponent, CardComponent, CardModule, CaseCountPipe, CdsThemeService, ChoiceFieldService, CommandClickDirectiveModule, ComponentsPipesModule, ConfirmationModalComponent, ConfirmationModalModule, CtrlClickDirective, CurrentCarbonTheme, CustomTagsService, DEFAULT_LIST_TRANSLATIONS, DEFAULT_PAGINATION, DEFAULT_PAGINATOR_CONFIG, DataListComponent, DataListModule, DatePickerComponent, DatePickerModule, DigitOnlyDirective, DropzoneComponent, DropzoneModule, EditorComponent, EditorModule, EllipsisPipe, ExpansionPanelComponent, ExpansionPanelModule, FieldAutoFocusDirective, FieldAutoFocusModule, FileSizeModule, FileSizePipe, FilterSidebarComponent, FilterSidebarModule, FitPageDirective, FitPageDirectiveModule, FormComponent, FormIoCurrencyComponent, FormIoCurrentUserComponent, FormIoDomService, FormIoIbanComponent, FormIoModule, FormIoStateService, FormIoUploaderComponent, FormModule, FormioBuilderComponent, FormioComponent, FormioDummyComponent, FormioOptionsImpl, FormioValueResolverSelectorComponent, InputComponent, InputLabelComponent, InputLabelModule, InputModule, IsArrayPipe, KeyGeneratorService, LeftSidebarComponent, LeftSidebarModule, ListComponent, ListFilterPipe, ListModule, MenuItemTextComponent, MenuItemTranslationPipe, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, ModalService, MonacoTheme, MoveRowDirection, MultiInputFormComponent, MultiInputFormModule, MultiselectDropdownComponent, MultiselectDropdownModule, PageContainerComponent, PageContentComponent, PageHeaderActionsComponent, PageHeaderComponent, PageHeaderIntroductionComponent, PageHeaderModule, PageHeaderService, PageModule, PageSubtitleService, PageTitleComponent, PageTitleModule, PageTitleService, ParagraphComponent, ParagraphModule, PendingChangesComponent, PendingChangesService, ProgressBarComponent, ProgressBarModule, PromptComponent, PromptModule, PromptService, RadioComponent, RadioModule, RenderInPageHeaderDirective, RenderInPageHeaderDirectiveModule, RenderPageHeaderDirective, RenderPageHeaderDirectiveModule, RightSidebarComponent, RightSidebarModule, SearchFieldsComponent, SearchFieldsModule, SearchableDropdownComponent, SearchableDropdownModule, SearchableDropdownSelectComponent, SearchableDropdownSelectModule, SelectComponent, SelectModule, SelectableCarbonTheme, ShellService, SpinnerComponent, SpinnerModule, StatusSelectorComponent, StepperContainerComponent, StepperContentComponent, StepperFooterComponent, StepperFooterStepComponent, StepperHeaderComponent, StepperModule, StepperService, StepperStepComponent, TAG_ELLIPSIS_LIMIT, TableComponent, TableModule, TimelineComponent, TimelineItemImpl, TimelineModule, TitleComponent, TitleModule, TooltipComponent, TooltipDirective, TooltipIconComponent, TooltipIconModule, TooltipModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, UserInterfaceService, VCardComponent, VCardModule, VModalComponent, VModalModule, VPageHeaderComponent, ValtimoCdsModalDirective, ValtimoCdsModalDirectiveModule, ValtimoCdsOverflowButtonDirective, ValtimoCdsOverflowButtonDirectiveModule, ValtimoModalService, ValuePathSelectorComponent, ValuePathSelectorInputMode, ValuePathSelectorPrefix, ValuePathSelectorService, ViewContentService, ViewType, WebcamComponent, WebcamModule, WidgetComponent, WidgetModule, createCustomFormioComponent, customUploaderType, enableCustomFormioComponents, menuInitializer, pendingChangesGuard, registerCustomFormioComponent, registerCustomFormioComponentWithClass, registerCustomTag, registerCustomTags, registerFormioCurrencyComponent, registerFormioCurrentUserComponent, registerFormioFileSelectorComponent, registerFormioIbanComponent, registerFormioUploadComponent, registerFormioValueResolverSelectorComponent };
16166
+ export { Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, BOOLEAN_CONVERTER_VALUES, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, BreadcrumbService, ButtonComponent, ButtonModule, CARBON_CONSTANTS, CARBON_THEME, CASES_WITHOUT_STATUS_KEY, CamundaFormComponent, CamundaFormModule, CarbonListComponent, CarbonListFilterPipe, CarbonListModule, CarbonMultiInputComponent, CarbonMultiInputModule, CarbonNoResultsComponent, CardComponent, CardModule, CaseCountPipe, CdsThemeService, ChoiceFieldService, CommandClickDirectiveModule, ComponentsPipesModule, ConfirmationModalComponent, ConfirmationModalModule, CtrlClickDirective, CurrentCarbonTheme, CustomTagsService, DEFAULT_LIST_TRANSLATIONS, DEFAULT_PAGINATION, DEFAULT_PAGINATOR_CONFIG, DataListComponent, DataListModule, DatePickerComponent, DatePickerModule, DigitOnlyDirective, DropzoneComponent, DropzoneModule, EditorComponent, EditorModule, EllipsisPipe, ExpansionPanelComponent, ExpansionPanelModule, FieldAutoFocusDirective, FieldAutoFocusModule, FileSizeModule, FileSizePipe, FilterSidebarComponent, FilterSidebarModule, FitPageDirective, FitPageDirectiveModule, FormComponent, FormIoCurrencyComponent, FormIoCurrentUserComponent, FormIoDomService, FormIoIbanComponent, FormIoModule, FormIoStateService, FormIoUploaderComponent, FormModule, FormioBuilderComponent, FormioComponent, FormioDummyComponent, FormioOptionsImpl, FormioValueResolverSelectorComponent, InputComponent, InputLabelComponent, InputLabelModule, InputModule, IsArrayPipe, KeyGeneratorService, LeftSidebarComponent, LeftSidebarModule, ListComponent, ListFilterPipe, ListModule, MenuItemTextComponent, MenuItemTranslationPipe, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, ModalService, MonacoTheme, MoveRowDirection, MultiInputFormComponent, MultiInputFormModule, MultiselectDropdownComponent, MultiselectDropdownModule, PageContainerComponent, PageContentComponent, PageHeaderActionsComponent, PageHeaderComponent, PageHeaderIntroductionComponent, PageHeaderModule, PageHeaderService, PageModule, PageSubtitleService, PageTitleComponent, PageTitleModule, PageTitleService, ParagraphComponent, ParagraphModule, PendingChangesComponent, PendingChangesService, ProgressBarComponent, ProgressBarModule, PromptComponent, PromptModule, PromptService, RadioComponent, RadioModule, RenderInPageHeaderDirective, RenderInPageHeaderDirectiveModule, RenderPageHeaderDirective, RenderPageHeaderDirectiveModule, RightSidebarComponent, RightSidebarModule, SearchFieldsComponent, SearchFieldsModule, SearchableDropdownComponent, SearchableDropdownModule, SearchableDropdownSelectComponent, SearchableDropdownSelectModule, SelectComponent, SelectModule, SelectableCarbonTheme, ShellService, SpinnerComponent, SpinnerModule, StatusSelectorComponent, StepperContainerComponent, StepperContentComponent, StepperFooterComponent, StepperFooterStepComponent, StepperHeaderComponent, StepperModule, StepperService, StepperStepComponent, TAG_ELLIPSIS_LIMIT, TableComponent, TableModule, TimelineComponent, TimelineItemImpl, TimelineModule, TitleComponent, TitleModule, TooltipComponent, TooltipDirective, TooltipIconComponent, TooltipIconModule, TooltipModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, UserInterfaceService, VCardComponent, VCardModule, VModalComponent, VModalModule, VPageHeaderComponent, ValtimoCdsModalDirective, ValtimoCdsModalDirectiveModule, ValtimoCdsOverflowButtonDirective, ValtimoCdsOverflowButtonDirectiveModule, ValtimoModalService, ValuePathSelectorComponent, ValuePathSelectorInputMode, ValuePathSelectorPrefix, ValuePathSelectorService, ValuePathType, ViewContentService, ViewType, WebcamComponent, WebcamModule, WidgetComponent, WidgetModule, createCustomFormioComponent, customUploaderType, enableCustomFormioComponents, menuInitializer, pendingChangesGuard, registerCustomFormioComponent, registerCustomFormioComponentWithClass, registerCustomTag, registerCustomTags, registerFormioCurrencyComponent, registerFormioCurrentUserComponent, registerFormioFileSelectorComponent, registerFormioIbanComponent, registerFormioUploadComponent, registerFormioValueResolverSelectorComponent };
15440
16167
  //# sourceMappingURL=valtimo-components.mjs.map