@valtimo/components 13.0.0 → 13.0.1

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 (77) hide show
  1. package/fesm2022/valtimo-components.mjs +165 -65
  2. package/fesm2022/valtimo-components.mjs.map +1 -1
  3. package/lib/components/form-io/{form-io.component.d.ts → components/form-io/form-io.component.d.ts} +5 -5
  4. package/lib/components/form-io/components/form-io/form-io.component.d.ts.map +1 -0
  5. package/lib/components/form-io/{form-io-builder.component.d.ts → components/form-io-builder/form-io-builder.component.d.ts} +3 -3
  6. package/lib/components/form-io/components/form-io-builder/form-io-builder.component.d.ts.map +1 -0
  7. package/lib/components/form-io/components/form-io-builder/form-io-builder.utils.d.ts.map +1 -0
  8. package/lib/components/form-io/components/form-io-currency/currency-edit-form.d.ts.map +1 -0
  9. package/lib/components/form-io/{form-io-currency → components/form-io-currency}/currency.component.d.ts +1 -1
  10. package/lib/components/form-io/components/form-io-currency/currency.component.d.ts.map +1 -0
  11. package/lib/components/form-io/components/form-io-currency/currency.formio.d.ts.map +1 -0
  12. package/lib/components/form-io/components/form-io-current-user/form-io-current-user-edit-form.d.ts.map +1 -0
  13. package/lib/components/form-io/{form-io-current-user → components/form-io-current-user}/form-io-current-user.component.d.ts +1 -1
  14. package/lib/components/form-io/components/form-io-current-user/form-io-current-user.component.d.ts.map +1 -0
  15. package/lib/components/form-io/components/form-io-current-user/form-io-current-user.formio.d.ts.map +1 -0
  16. package/lib/components/form-io/{form-io-dummy → components/form-io-dummy}/dummy.component.d.ts +1 -1
  17. package/lib/components/form-io/components/form-io-dummy/dummy.component.d.ts.map +1 -0
  18. package/lib/components/form-io/components/form-io-dummy/dummy.formio.d.ts.map +1 -0
  19. package/lib/components/form-io/{form-io-iban → components/form-io-iban}/iban.component.d.ts +1 -1
  20. package/lib/components/form-io/components/form-io-iban/iban.component.d.ts.map +1 -0
  21. package/lib/components/form-io/components/form-io-iban/iban.formio.d.ts.map +1 -0
  22. package/lib/components/form-io/components/form-io-iban/iban.validators.d.ts.map +1 -0
  23. package/lib/components/form-io/components/form-io-resource-selector/form-io-resource-selector.formio.d.ts.map +1 -0
  24. package/lib/components/form-io/components/form-io-uploader/form-io-uploader-edit-form.d.ts.map +1 -0
  25. package/lib/components/form-io/{form-io-uploader → components/form-io-uploader}/form-io-uploader.component.d.ts +3 -3
  26. package/lib/components/form-io/components/form-io-uploader/form-io-uploader.component.d.ts.map +1 -0
  27. package/lib/components/form-io/components/form-io-uploader/form-io-uploader.formio.d.ts.map +1 -0
  28. package/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector-edit-form.d.ts.map +1 -0
  29. package/lib/components/form-io/{formio-value-resolver-selector → components/formio-value-resolver-selector}/formio-value-resolver-selector.component.d.ts +2 -2
  30. package/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.component.d.ts.map +1 -0
  31. package/lib/components/form-io/components/formio-value-resolver-selector/formio-value-resolver-selector.formio.d.ts.map +1 -0
  32. package/lib/components/form-io/form-io.module.d.ts +8 -8
  33. package/lib/components/json-editor/json-editor.component.d.ts +45 -0
  34. package/lib/components/json-editor/json-editor.component.d.ts.map +1 -0
  35. package/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.d.ts +3 -3
  36. package/lib/directives/valtimo-cds-modal/valtimo-cds-modal.directive.d.ts.map +1 -1
  37. package/lib/modules/custom-formio-component/create-custom-component.d.ts +6 -6
  38. package/lib/modules/custom-formio-component/create-custom-component.d.ts.map +1 -1
  39. package/lib/modules/custom-formio-component/register-custom-component.d.ts +3 -3
  40. package/lib/modules/custom-formio-component/register-custom-component.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/public_api.d.ts +16 -15
  43. package/public_api.d.ts.map +1 -1
  44. package/lib/components/form-io/form-io-builder.component.d.ts.map +0 -1
  45. package/lib/components/form-io/form-io-builder.utils.d.ts.map +0 -1
  46. package/lib/components/form-io/form-io-currency/currency-edit-form.d.ts.map +0 -1
  47. package/lib/components/form-io/form-io-currency/currency.component.d.ts.map +0 -1
  48. package/lib/components/form-io/form-io-currency/currency.formio.d.ts.map +0 -1
  49. package/lib/components/form-io/form-io-current-user/form-io-current-user-edit-form.d.ts.map +0 -1
  50. package/lib/components/form-io/form-io-current-user/form-io-current-user.component.d.ts.map +0 -1
  51. package/lib/components/form-io/form-io-current-user/form-io-current-user.formio.d.ts.map +0 -1
  52. package/lib/components/form-io/form-io-dummy/dummy.component.d.ts.map +0 -1
  53. package/lib/components/form-io/form-io-dummy/dummy.formio.d.ts.map +0 -1
  54. package/lib/components/form-io/form-io-iban/iban.component.d.ts.map +0 -1
  55. package/lib/components/form-io/form-io-iban/iban.formio.d.ts.map +0 -1
  56. package/lib/components/form-io/form-io-iban/iban.validators.d.ts.map +0 -1
  57. package/lib/components/form-io/form-io-resource-selector/form-io-resource-selector.formio.d.ts.map +0 -1
  58. package/lib/components/form-io/form-io-uploader/form-io-uploader-edit-form.d.ts.map +0 -1
  59. package/lib/components/form-io/form-io-uploader/form-io-uploader.component.d.ts.map +0 -1
  60. package/lib/components/form-io/form-io-uploader/form-io-uploader.formio.d.ts.map +0 -1
  61. package/lib/components/form-io/form-io.component.d.ts.map +0 -1
  62. package/lib/components/form-io/formio-value-resolver-selector/formio-value-resolver-selector-edit-form.d.ts.map +0 -1
  63. package/lib/components/form-io/formio-value-resolver-selector/formio-value-resolver-selector.component.d.ts.map +0 -1
  64. package/lib/components/form-io/formio-value-resolver-selector/formio-value-resolver-selector.formio.d.ts.map +0 -1
  65. /package/lib/components/form-io/{form-io-builder.utils.d.ts → components/form-io-builder/form-io-builder.utils.d.ts} +0 -0
  66. /package/lib/components/form-io/{form-io-currency → components/form-io-currency}/currency-edit-form.d.ts +0 -0
  67. /package/lib/components/form-io/{form-io-currency → components/form-io-currency}/currency.formio.d.ts +0 -0
  68. /package/lib/components/form-io/{form-io-current-user → components/form-io-current-user}/form-io-current-user-edit-form.d.ts +0 -0
  69. /package/lib/components/form-io/{form-io-current-user → components/form-io-current-user}/form-io-current-user.formio.d.ts +0 -0
  70. /package/lib/components/form-io/{form-io-dummy → components/form-io-dummy}/dummy.formio.d.ts +0 -0
  71. /package/lib/components/form-io/{form-io-iban → components/form-io-iban}/iban.formio.d.ts +0 -0
  72. /package/lib/components/form-io/{form-io-iban → components/form-io-iban}/iban.validators.d.ts +0 -0
  73. /package/lib/components/form-io/{form-io-resource-selector → components/form-io-resource-selector}/form-io-resource-selector.formio.d.ts +0 -0
  74. /package/lib/components/form-io/{form-io-uploader → components/form-io-uploader}/form-io-uploader-edit-form.d.ts +0 -0
  75. /package/lib/components/form-io/{form-io-uploader → components/form-io-uploader}/form-io-uploader.formio.d.ts +0 -0
  76. /package/lib/components/form-io/{formio-value-resolver-selector → components/formio-value-resolver-selector}/formio-value-resolver-selector-edit-form.d.ts +0 -0
  77. /package/lib/components/form-io/{formio-value-resolver-selector → components/formio-value-resolver-selector}/formio-value-resolver-selector.formio.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
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';
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, computed } from '@angular/core';
3
3
  import { combineLatest, map, BehaviorSubject, fromEvent, Subject, Subscription, Observable, take as take$1, of, tap as tap$1, interval, switchMap, startWith, filter as filter$1, merge, debounceTime as debounceTime$1, timer, first } from 'rxjs';
4
4
  import * as i1 from '@ngx-translate/core';
5
5
  import { TranslateModule, TranslateLoader, TranslateService } from '@ngx-translate/core';
@@ -13,7 +13,7 @@ import { HttpClient } from '@angular/common/http';
13
13
  import * as i1$2 from '@angular/router';
14
14
  import { NavigationEnd, NavigationStart, ResolveEnd, RouterModule } from '@angular/router';
15
15
  import { deepmerge } from 'deepmerge-ts';
16
- import { isEqual, isArray, isNil, clone, cloneDeep, get } from 'lodash';
16
+ import { isEqual, isNil, clone, isArray, cloneDeep, get } from 'lodash';
17
17
  import { Components, Utils, Formio } from 'formiojs';
18
18
  import { createCustomElement } from '@angular/elements';
19
19
  import * as i11$1 from '@formio/angular';
@@ -37,7 +37,7 @@ import * as i11 from '@ng-bootstrap/ng-bootstrap';
37
37
  import { NgbTooltipModule, NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap';
38
38
  import * as i3$1 from '@angular/cdk/layout';
39
39
  import { LayoutModule } from '@angular/cdk/layout';
40
- import { ArrowDown16, ArrowUp16, SettingsView16, Draggable16, View16, ViewOff16, ChevronUp16, ChevronDown16, Close16, Add16 } from '@carbon/icons';
40
+ import { ArrowDown16, ArrowUp16, SettingsView16, Draggable16, View16, ViewOff16, ChevronUp16, ChevronDown16, Close16, Add16, Edit16, Save16 } from '@carbon/icons';
41
41
  import localeNl from '@angular/common/locales/nl';
42
42
  import moment$1 from 'moment/moment';
43
43
  import BpmnViewer from 'bpmn-js';
@@ -2270,20 +2270,6 @@ function createCustomFormioComponent(customComponentOptions) {
2270
2270
  schema: CustomComponent.schema(),
2271
2271
  };
2272
2272
  }
2273
- constructor(component, options, data) {
2274
- super(component, {
2275
- ...options,
2276
- sanitizeConfig: {
2277
- addTags: [customComponentOptions.selector],
2278
- },
2279
- }, data);
2280
- this.component = component;
2281
- this.id = Utils.getRandomComponentId();
2282
- this.type = customComponentOptions.type;
2283
- if (customComponentOptions.extraValidators) {
2284
- this.validators = this.validators.concat(customComponentOptions.extraValidators);
2285
- }
2286
- }
2287
2273
  elementInfo() {
2288
2274
  const info = super.elementInfo();
2289
2275
  info.type = customComponentOptions.selector;
@@ -2302,6 +2288,32 @@ function createCustomFormioComponent(customComponentOptions) {
2302
2288
  };
2303
2289
  return info;
2304
2290
  }
2291
+ // @ts-ignore
2292
+ get defaultValue() {
2293
+ let defaultValue = this.emptyValue;
2294
+ // handle falsy default value
2295
+ if (!isNil(this.component.defaultValue)) {
2296
+ defaultValue = this.component.defaultValue;
2297
+ }
2298
+ if (this.component.customDefaultValue && !this.options.preview) {
2299
+ defaultValue = this.evaluate(this.component.customDefaultValue, { value: '' }, 'value');
2300
+ }
2301
+ return clone(defaultValue);
2302
+ }
2303
+ constructor(component, options, data) {
2304
+ super(component, {
2305
+ ...options,
2306
+ sanitizeConfig: {
2307
+ addTags: [customComponentOptions.selector],
2308
+ },
2309
+ }, data);
2310
+ this.component = component;
2311
+ this.id = Utils.getRandomComponentId();
2312
+ this.type = customComponentOptions.type;
2313
+ if (customComponentOptions.extraValidators) {
2314
+ this.validators = this.validators.concat(customComponentOptions.extraValidators);
2315
+ }
2316
+ }
2305
2317
  renderElement(value, index) {
2306
2318
  const info = this.inputInfo;
2307
2319
  return this.renderTemplate(customComponentOptions.template || 'input', {
@@ -2371,17 +2383,13 @@ function createCustomFormioComponent(customComponentOptions) {
2371
2383
  this.component.multiple &&
2372
2384
  !this.component.disableMultiValueWrapper);
2373
2385
  }
2374
- // @ts-ignore
2375
- get defaultValue() {
2376
- let defaultValue = this.emptyValue;
2377
- // handle falsy default value
2378
- if (!isNil(this.component.defaultValue)) {
2379
- defaultValue = this.component.defaultValue;
2380
- }
2381
- if (this.component.customDefaultValue && !this.options.preview) {
2382
- defaultValue = this.evaluate(this.component.customDefaultValue, { value: '' }, 'value');
2386
+ // override setValue method to allow for array values
2387
+ setValue(value) {
2388
+ if (!this._customAngularElement || !('value' in this._customAngularElement)) {
2389
+ return false;
2383
2390
  }
2384
- return clone(defaultValue);
2391
+ this._customAngularElement.value = value;
2392
+ return true;
2385
2393
  }
2386
2394
  };
2387
2395
  }
@@ -2470,15 +2478,6 @@ function registerCustomFormioComponent(options, angularComponent, injector) {
2470
2478
  }
2471
2479
  Components.setComponent(options.type, createCustomFormioComponent(options));
2472
2480
  }
2473
- function registerCustomFormioComponentWithClass(options, angularComponent, formioClass, injector) {
2474
- registerCustomTag(options.selector, injector);
2475
- registerCustomTag(options.type, injector);
2476
- if (!customElements.get(options.selector)) {
2477
- const complexCustomComponent = createCustomElement(angularComponent, { injector });
2478
- customElements.define(options.selector, complexCustomComponent);
2479
- }
2480
- Components.setComponent(options.type, formioClass);
2481
- }
2482
2481
 
2483
2482
  /*
2484
2483
  * Copyright 2015-2025 Ritense BV, the Netherlands.
@@ -5278,7 +5277,7 @@ class ValtimoCdsModalDirective {
5278
5277
  this.document = document;
5279
5278
  this.elementRef = elementRef;
5280
5279
  this.renderer = renderer;
5281
- this.enableOverflow = false;
5280
+ this.minContentHeight = 0;
5282
5281
  }
5283
5282
  ngAfterViewInit() {
5284
5283
  this._mutationObserver = new MutationObserver((mutations) => {
@@ -5288,12 +5287,14 @@ class ValtimoCdsModalDirective {
5288
5287
  attributes: true,
5289
5288
  childList: true,
5290
5289
  subtree: true,
5290
+ characterData: true,
5291
5291
  });
5292
5292
  const open = this.elementRef.nativeElement.getAttribute('ng-reflect-open');
5293
5293
  if (open === 'true') {
5294
5294
  this.applyDocumentOverflowHidden();
5295
5295
  }
5296
- this.applyOverflowToModalElements();
5296
+ this.applyStyleToModalElements();
5297
+ setTimeout(() => this.applyStyleToModalElements(), 0);
5297
5298
  }
5298
5299
  ngOnDestroy() {
5299
5300
  this._mutationObserver.disconnect();
@@ -5311,7 +5312,7 @@ class ValtimoCdsModalDirective {
5311
5312
  }
5312
5313
  }
5313
5314
  }
5314
- this.applyOverflowToModalElements();
5315
+ this.applyStyleToModalElements();
5315
5316
  }
5316
5317
  applyDocumentOverflowHidden() {
5317
5318
  this.renderer.setStyle(this.document.body, 'overflow', 'hidden', RendererStyleFlags2.Important);
@@ -5322,12 +5323,12 @@ class ValtimoCdsModalDirective {
5322
5323
  this.renderer.removeStyle(this.document.body, 'overflow');
5323
5324
  this.renderer.removeStyle(this.document.documentElement, 'overflow');
5324
5325
  }
5325
- applyOverflowToModalElements() {
5326
- if (this.enableOverflow) {
5327
- const modalElements = this.document.querySelectorAll('.cds--modal, .cds--modal-content');
5328
- modalElements.forEach((el) => {
5329
- this.renderer.setStyle(el, 'overflow', 'auto');
5330
- });
5326
+ applyStyleToModalElements() {
5327
+ if (this.minContentHeight <= 0)
5328
+ return;
5329
+ const contentElements = Array.from(this.document.querySelectorAll('.cds--modal-content'));
5330
+ for (const element of contentElements) {
5331
+ this.renderer.setStyle(element, 'min-height', `${this.minContentHeight}px`, RendererStyleFlags2.Important);
5331
5332
  }
5332
5333
  }
5333
5334
  preventModalCloseButtonTooltip() {
@@ -5350,7 +5351,7 @@ class ValtimoCdsModalDirective {
5350
5351
  requestAnimationFrame(blurIfFocused);
5351
5352
  }
5352
5353
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ValtimoCdsModalDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
5353
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: ValtimoCdsModalDirective, isStandalone: true, selector: "[valtimoCdsModal]", inputs: { enableOverflow: "enableOverflow" }, ngImport: i0 }); }
5354
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.14", type: ValtimoCdsModalDirective, isStandalone: true, selector: "[valtimoCdsModal]", inputs: { minContentHeight: "minContentHeight" }, ngImport: i0 }); }
5354
5355
  }
5355
5356
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ValtimoCdsModalDirective, decorators: [{
5356
5357
  type: Directive,
@@ -5361,7 +5362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
5361
5362
  }], ctorParameters: () => [{ type: Document, decorators: [{
5362
5363
  type: Inject,
5363
5364
  args: [DOCUMENT]
5364
- }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { enableOverflow: [{
5365
+ }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { minContentHeight: [{
5365
5366
  type: Input
5366
5367
  }] } });
5367
5368
 
@@ -5396,7 +5397,7 @@ class CarbonTagsModalComponent {
5396
5397
  this.closeEvent.emit();
5397
5398
  }
5398
5399
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CarbonTagsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5399
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: CarbonTagsModalComponent, isStandalone: false, selector: "valtimo-tags-modal", inputs: { open: "open", tags: "tags" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n [title]=\"'interface.tags' | translate\"\n size=\"xs\"\n [open]=\"open\"\n (close)=\"onCloseSelect()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\">\n <h3 cdsModalHeading>{{ 'interface.tags' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-tags-modal__content\">\n <div class=\"valtimo-tags-modal__container\">\n @for (tag of tags; track tag.content) {\n <cds-tag [type]=\"tag.type\">\n {{ tag.content }}\n </cds-tag>\n }\n </div>\n </section>\n</cds-modal>\n", styles: [".valtimo-tags-modal__content{max-height:300px}.valtimo-tags-modal__container{width:100%;max-height:100%;overflow:auto;background:var(--cds-layer-02);padding:16px;border-radius:8px}.valtimo-tags-modal__container>*:first-child{margin-left:0!important}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "component", type: i3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5400
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: CarbonTagsModalComponent, isStandalone: false, selector: "valtimo-tags-modal", inputs: { open: "open", tags: "tags" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n [title]=\"'interface.tags' | translate\"\n size=\"xs\"\n [open]=\"open\"\n (close)=\"onCloseSelect()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCloseSelect()\">\n <h3 cdsModalHeading>{{ 'interface.tags' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent class=\"valtimo-tags-modal__content\">\n <div class=\"valtimo-tags-modal__container\">\n @for (tag of tags; track tag.content) {\n <cds-tag [type]=\"tag.type\">\n {{ tag.content }}\n </cds-tag>\n }\n </div>\n </section>\n</cds-modal>\n", styles: [".valtimo-tags-modal__content{max-height:300px}.valtimo-tags-modal__container{width:100%;max-height:100%;overflow:auto;background:var(--cds-layer-02);padding:16px;border-radius:8px}.valtimo-tags-modal__container>*:first-child{margin-left:0!important}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "component", type: i3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5400
5401
  }
5401
5402
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CarbonTagsModalComponent, decorators: [{
5402
5403
  type: Component,
@@ -10350,22 +10351,8 @@ const COMPONENT_OPTIONS$5 = {
10350
10351
  editForm: formIoUploaderEditForm,
10351
10352
  };
10352
10353
  function registerFormioUploadComponent(injector) {
10353
- const originalUploadComponent = createCustomFormioComponent(COMPONENT_OPTIONS$5);
10354
- // override setValue function to allow for setting an array value
10355
- class UploaderComponent extends originalUploadComponent {
10356
- setValue(value) {
10357
- if (!this._customAngularElement) {
10358
- return false;
10359
- }
10360
- let componentValue = this._customAngularElement?.value;
10361
- if (componentValue) {
10362
- componentValue = value;
10363
- }
10364
- return true;
10365
- }
10366
- }
10367
10354
  if (!customElements.get(COMPONENT_OPTIONS$5.selector)) {
10368
- registerCustomFormioComponentWithClass(COMPONENT_OPTIONS$5, FormIoUploaderComponent, UploaderComponent, injector);
10355
+ registerCustomFormioComponent(COMPONENT_OPTIONS$5, FormIoUploaderComponent, injector);
10369
10356
  }
10370
10357
  }
10371
10358
 
@@ -13602,7 +13589,7 @@ class ConfirmationModalComponent {
13602
13589
  this.optionalEvent.emit(this.outputOnOptional);
13603
13590
  }
13604
13591
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ConfirmationModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13605
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ConfirmationModalComponent, isStandalone: false, selector: "valtimo-confirmation-modal", inputs: { titleTranslationKey: "titleTranslationKey", title: "title", content: "content", contentTranslationKey: "contentTranslationKey", confirmButtonText: "confirmButtonText", confirmButtonTextTranslationKey: "confirmButtonTextTranslationKey", confirmButtonType: "confirmButtonType", showOptionalButton: "showOptionalButton", optionalButtonText: "optionalButtonText", optionalButtonTextTranslationKey: "optionalButtonTextTranslationKey", optionalButtonType: "optionalButtonType", cancelButtonText: "cancelButtonText", cancelButtonTextTranslationKey: "cancelButtonTextTranslationKey", cancelButtonType: "cancelButtonType", showModalSubject$: "showModalSubject$", outputOnConfirm: "outputOnConfirm", outputOnOptional: "outputOnOptional", spacerAfterCancelButton: "spacerAfterCancelButton" }, outputs: { confirmEvent: "confirmEvent", optionalEvent: "optionalEvent", cancelEvent: "cancelEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n [open]=\"modalOpen$ | async\"\n *ngIf=\"{\n deleteTranslation: 'interface.delete' | translate,\n deleteConfirmationTranslation: 'interface.deleteConfirmation' | translate,\n cancelTranslation: 'interface.cancel' | translate,\n titleTranslation: titleTranslationKey | translate,\n contentTranslation: contentTranslationKey | translate,\n confirmButtonTranslation: confirmButtonTextTranslationKey | translate,\n cancelButtonTranslation: cancelButtonTextTranslationKey | translate,\n optionalButtonTranslation: optionalButtonTextTranslationKey | translate,\n } as obs\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n (titleTranslationKey !== obs.titleTranslation ? obs.titleTranslation : '') ||\n title ||\n obs.deleteTranslation\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n {{\n (contentTranslationKey !== obs.contentTranslation ? obs.contentTranslation : '') ||\n content ||\n obs.deleteConfirmationTranslation\n }}\n\n <div class=\"modal-body-content\">\n <ng-content></ng-content>\n </div>\n </section>\n\n <cds-modal-footer>\n <ng-container>\n <button\n data-testid=\"confirmation-modal-close\"\n [attr.modal-primary-focus]=\"true\"\n [cdsButton]=\"cancelButtonType\"\n (click)=\"closeModal()\"\n >\n {{\n (cancelButtonTextTranslationKey !== obs.cancelButtonTranslation\n ? obs.cancelButtonTranslation\n : '') ||\n cancelButtonText ||\n obs.cancelTranslation\n }}\n </button>\n <div *ngIf=\"spacerAfterCancelButton\" class=\"modal-spacer\"></div>\n <button\n *ngIf=\"showOptionalButton\"\n data-testid=\"confirmation-modal-optional\"\n [attr.modal-primary-focus]=\"true\"\n [cdsButton]=\"optionalButtonType\"\n (click)=\"onOptional()\"\n >\n {{\n (optionalButtonTextTranslationKey !== obs.optionalButtonTranslation\n ? obs.optionalButtonTranslation\n : '') ||\n optionalButtonText ||\n obs.deleteTranslation\n }}\n </button>\n <button\n data-testid=\"confirmation-modal-confirm\"\n [attr.modal-primary-focus]=\"true\"\n [cdsButton]=\"confirmButtonType\"\n (click)=\"onConfirm()\"\n >\n {{\n (confirmButtonTextTranslationKey !== obs.confirmButtonTranslation\n ? obs.confirmButtonTranslation\n : '') ||\n confirmButtonText ||\n obs.deleteTranslation\n }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".modal-spacer{flex:0 1 50%}.modal-body-content{margin-top:16px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
13592
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: ConfirmationModalComponent, isStandalone: false, selector: "valtimo-confirmation-modal", inputs: { titleTranslationKey: "titleTranslationKey", title: "title", content: "content", contentTranslationKey: "contentTranslationKey", confirmButtonText: "confirmButtonText", confirmButtonTextTranslationKey: "confirmButtonTextTranslationKey", confirmButtonType: "confirmButtonType", showOptionalButton: "showOptionalButton", optionalButtonText: "optionalButtonText", optionalButtonTextTranslationKey: "optionalButtonTextTranslationKey", optionalButtonType: "optionalButtonType", cancelButtonText: "cancelButtonText", cancelButtonTextTranslationKey: "cancelButtonTextTranslationKey", cancelButtonType: "cancelButtonType", showModalSubject$: "showModalSubject$", outputOnConfirm: "outputOnConfirm", outputOnOptional: "outputOnOptional", spacerAfterCancelButton: "spacerAfterCancelButton" }, outputs: { confirmEvent: "confirmEvent", optionalEvent: "optionalEvent", cancelEvent: "cancelEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n valtimoCdsModal\n [open]=\"modalOpen$ | async\"\n *ngIf=\"{\n deleteTranslation: 'interface.delete' | translate,\n deleteConfirmationTranslation: 'interface.deleteConfirmation' | translate,\n cancelTranslation: 'interface.cancel' | translate,\n titleTranslation: titleTranslationKey | translate,\n contentTranslation: contentTranslationKey | translate,\n confirmButtonTranslation: confirmButtonTextTranslationKey | translate,\n cancelButtonTranslation: cancelButtonTextTranslationKey | translate,\n optionalButtonTranslation: optionalButtonTextTranslationKey | translate,\n } as obs\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n (titleTranslationKey !== obs.titleTranslation ? obs.titleTranslation : '') ||\n title ||\n obs.deleteTranslation\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n {{\n (contentTranslationKey !== obs.contentTranslation ? obs.contentTranslation : '') ||\n content ||\n obs.deleteConfirmationTranslation\n }}\n\n <div class=\"modal-body-content\">\n <ng-content></ng-content>\n </div>\n </section>\n\n <cds-modal-footer>\n <ng-container>\n <button\n data-testid=\"confirmation-modal-close\"\n [attr.modal-primary-focus]=\"true\"\n [cdsButton]=\"cancelButtonType\"\n (click)=\"closeModal()\"\n >\n {{\n (cancelButtonTextTranslationKey !== obs.cancelButtonTranslation\n ? obs.cancelButtonTranslation\n : '') ||\n cancelButtonText ||\n obs.cancelTranslation\n }}\n </button>\n <div *ngIf=\"spacerAfterCancelButton\" class=\"modal-spacer\"></div>\n <button\n *ngIf=\"showOptionalButton\"\n data-testid=\"confirmation-modal-optional\"\n [attr.modal-primary-focus]=\"true\"\n [cdsButton]=\"optionalButtonType\"\n (click)=\"onOptional()\"\n >\n {{\n (optionalButtonTextTranslationKey !== obs.optionalButtonTranslation\n ? obs.optionalButtonTranslation\n : '') ||\n optionalButtonText ||\n obs.deleteTranslation\n }}\n </button>\n <button\n data-testid=\"confirmation-modal-confirm\"\n [attr.modal-primary-focus]=\"true\"\n [cdsButton]=\"confirmButtonType\"\n (click)=\"onConfirm()\"\n >\n {{\n (confirmButtonTextTranslationKey !== obs.confirmButtonTranslation\n ? obs.confirmButtonTranslation\n : '') ||\n confirmButtonText ||\n obs.deleteTranslation\n }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".modal-spacer{flex:0 1 50%}.modal-body-content{margin-top:16px}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
13606
13593
  }
13607
13594
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ConfirmationModalComponent, decorators: [{
13608
13595
  type: Component,
@@ -15326,6 +15313,119 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
15326
15313
  args: ['content', { read: TemplateRef, static: true }]
15327
15314
  }] } });
15328
15315
 
15316
+ class JsonEditorComponent {
15317
+ set disabled(value) {
15318
+ this._disabled.set(value);
15319
+ }
15320
+ set model(value) {
15321
+ this._initialModel = value;
15322
+ }
15323
+ get model() {
15324
+ return this._initialModel;
15325
+ }
15326
+ constructor(iconService) {
15327
+ this.iconService = iconService;
15328
+ this._disabled = signal(false);
15329
+ this.fitPage = false;
15330
+ this.fitPageExtraSpace = 0;
15331
+ this.formatOnLoad = true;
15332
+ this.showEditButton = true;
15333
+ this.changeEvent = new EventEmitter();
15334
+ this.discardEvent = new EventEmitter();
15335
+ this.keepEditingEvent = new EventEmitter();
15336
+ this.saveEvent = new EventEmitter();
15337
+ this.isEditActive = signal(false);
15338
+ this.isDisabled = computed(() => !this.isEditActive() || this._disabled());
15339
+ this.isValidJson = signal(false);
15340
+ this.showSaveConfirmationModal$ = new BehaviorSubject(false);
15341
+ this.showCancelConfirmationModal$ = new BehaviorSubject(false);
15342
+ this._changesToSave = null;
15343
+ this.iconService.registerAll([Edit16, Save16]);
15344
+ }
15345
+ onCancelClick() {
15346
+ if (!this._changesToSave) {
15347
+ this.resetEditor();
15348
+ return;
15349
+ }
15350
+ this.showCancelConfirmationModal$.next(true);
15351
+ }
15352
+ onEditClick() {
15353
+ this.isEditActive.set(true);
15354
+ }
15355
+ onDiscardChanges() {
15356
+ this.discardEvent.emit();
15357
+ this.resetEditor();
15358
+ this.model = { ...this._initialModel };
15359
+ }
15360
+ onKeepEditingDefinition() {
15361
+ this.keepEditingEvent.emit();
15362
+ }
15363
+ onSaveChanges() {
15364
+ if (!!this._changesToSave)
15365
+ this.saveEvent.emit(JSON.parse(this._changesToSave));
15366
+ this.resetEditor();
15367
+ }
15368
+ onSaveClick() {
15369
+ this.showSaveConfirmationModal$.next(true);
15370
+ }
15371
+ onValidEvent(isValid) {
15372
+ this.isValidJson.set(isValid);
15373
+ }
15374
+ onValueChangeEvent(value) {
15375
+ if (!this.isValidJson())
15376
+ return;
15377
+ this._changesToSave = value;
15378
+ this.changeEvent.emit();
15379
+ }
15380
+ resetEditor() {
15381
+ this._changesToSave = null;
15382
+ this.isEditActive.set(false);
15383
+ }
15384
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: JsonEditorComponent, deps: [{ token: i3.IconService }], target: i0.ɵɵFactoryTarget.Component }); }
15385
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: JsonEditorComponent, isStandalone: true, selector: "valtimo-json-editor", inputs: { disabled: "disabled", model: "model", editorOptions: "editorOptions", fitPage: "fitPage", fitPageExtraSpace: "fitPageExtraSpace", formatOnLoad: "formatOnLoad", heightPx: "heightPx", heightStyle: "heightStyle", jsonSchema: "jsonSchema", showEditButton: "showEditButton", widthPx: "widthPx" }, outputs: { changeEvent: "changeEvent", discardEvent: "discardEvent", keepEditingEvent: "keepEditingEvent", saveEvent: "saveEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"cds--toolbar-content\">\n @if (isEditActive()) {\n <button cdsButton=\"secondary\" (click)=\"onCancelClick()\">\n {{ 'interface.cancel' | translate }}\n\n <svg cdsIcon=\"close\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"!isValidJson()\" (click)=\"onSaveClick()\">\n {{ 'interface.save' | translate }}\n\n <svg cdsIcon=\"save\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n } @else {\n <ng-content></ng-content>\n\n <button\n *ngIf=\"showEditButton\"\n cdsButton=\"primary\"\n [disabled]=\"disableEditButton\"\n (click)=\"onEditClick()\"\n >\n {{ 'interface.edit' | translate }}\n\n <svg cdsIcon=\"edit\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n }\n</div>\n\n<valtimo-editor\n [disabled]=\"isDisabled()\"\n [fitPage]=\"fitPage\"\n [fitPageExtraSpace]=\"fitPageExtraSpace\"\n [formatOnLoad]=\"formatOnLoad\"\n [heightPx]=\"heightPx\"\n [heightStyle]=\"heightStyle\"\n [jsonSchema]=\"jsonSchema\"\n [model]=\"model\"\n [widthPx]=\"widthPx\"\n (validEvent)=\"onValidEvent($event)\"\n (valueChangeEvent)=\"onValueChangeEvent($event)\"\n>\n</valtimo-editor>\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showSaveConfirmationModal$\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n confirmButtonTextTranslationKey=\"interface.save\"\n contentTranslationKey=\"interface.jsonEditor.saveModalContent\"\n titleTranslationKey=\"interface.save\"\n (cancelEvent)=\"onKeepEditingDefinition()\"\n (confirmEvent)=\"onSaveChanges()\"\n></valtimo-confirmation-modal>\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showCancelConfirmationModal$\"\n cancelButtonTextTranslationKey=\"interface.pendingChanges.keepEditing\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.discard\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.jsonEditor.cancelModal.content\"\n optionalButtonTextTranslationKey=\"interface.save\"\n optionalButtonType=\"secondary\"\n titleTranslationKey=\"interface.jsonEditor.cancelModal.title\"\n showOptionalButton=\"true\"\n spacerAfterCancelButton=\"true\"\n (cancelEvent)=\"onKeepEditingDefinition()\"\n (confirmEvent)=\"onDiscardChanges()\"\n (optionalEvent)=\"onSaveChanges()\"\n></valtimo-confirmation-modal>\n", styles: [".cds--toolbar-content{background-color:var(--cds-layer)}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage", "fitPageExtraSpace"], outputs: ["validEvent", "valueChangeEvent"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15386
+ }
15387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: JsonEditorComponent, decorators: [{
15388
+ type: Component,
15389
+ args: [{ selector: 'valtimo-json-editor', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
15390
+ CommonModule,
15391
+ EditorModule,
15392
+ ButtonModule,
15393
+ IconModule,
15394
+ TranslateModule,
15395
+ ConfirmationModalModule,
15396
+ ], template: "<!--\n ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"cds--toolbar-content\">\n @if (isEditActive()) {\n <button cdsButton=\"secondary\" (click)=\"onCancelClick()\">\n {{ 'interface.cancel' | translate }}\n\n <svg cdsIcon=\"close\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <button cdsButton=\"primary\" [disabled]=\"!isValidJson()\" (click)=\"onSaveClick()\">\n {{ 'interface.save' | translate }}\n\n <svg cdsIcon=\"save\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n } @else {\n <ng-content></ng-content>\n\n <button\n *ngIf=\"showEditButton\"\n cdsButton=\"primary\"\n [disabled]=\"disableEditButton\"\n (click)=\"onEditClick()\"\n >\n {{ 'interface.edit' | translate }}\n\n <svg cdsIcon=\"edit\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n }\n</div>\n\n<valtimo-editor\n [disabled]=\"isDisabled()\"\n [fitPage]=\"fitPage\"\n [fitPageExtraSpace]=\"fitPageExtraSpace\"\n [formatOnLoad]=\"formatOnLoad\"\n [heightPx]=\"heightPx\"\n [heightStyle]=\"heightStyle\"\n [jsonSchema]=\"jsonSchema\"\n [model]=\"model\"\n [widthPx]=\"widthPx\"\n (validEvent)=\"onValidEvent($event)\"\n (valueChangeEvent)=\"onValueChangeEvent($event)\"\n>\n</valtimo-editor>\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showSaveConfirmationModal$\"\n cancelButtonTextTranslationKey=\"interface.cancel\"\n confirmButtonTextTranslationKey=\"interface.save\"\n contentTranslationKey=\"interface.jsonEditor.saveModalContent\"\n titleTranslationKey=\"interface.save\"\n (cancelEvent)=\"onKeepEditingDefinition()\"\n (confirmEvent)=\"onSaveChanges()\"\n></valtimo-confirmation-modal>\n\n<valtimo-confirmation-modal\n [showModalSubject$]=\"showCancelConfirmationModal$\"\n cancelButtonTextTranslationKey=\"interface.pendingChanges.keepEditing\"\n cancelButtonType=\"ghost\"\n confirmButtonTextTranslationKey=\"interface.discard\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"interface.jsonEditor.cancelModal.content\"\n optionalButtonTextTranslationKey=\"interface.save\"\n optionalButtonType=\"secondary\"\n titleTranslationKey=\"interface.jsonEditor.cancelModal.title\"\n showOptionalButton=\"true\"\n spacerAfterCancelButton=\"true\"\n (cancelEvent)=\"onKeepEditingDefinition()\"\n (confirmEvent)=\"onDiscardChanges()\"\n (optionalEvent)=\"onSaveChanges()\"\n></valtimo-confirmation-modal>\n", styles: [".cds--toolbar-content{background-color:var(--cds-layer)}\n/*!\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
15397
+ }], ctorParameters: () => [{ type: i3.IconService }], propDecorators: { disabled: [{
15398
+ type: Input
15399
+ }], model: [{
15400
+ type: Input
15401
+ }], editorOptions: [{
15402
+ type: Input
15403
+ }], fitPage: [{
15404
+ type: Input
15405
+ }], fitPageExtraSpace: [{
15406
+ type: Input
15407
+ }], formatOnLoad: [{
15408
+ type: Input
15409
+ }], heightPx: [{
15410
+ type: Input
15411
+ }], heightStyle: [{
15412
+ type: Input
15413
+ }], jsonSchema: [{
15414
+ type: Input
15415
+ }], showEditButton: [{
15416
+ type: Input
15417
+ }], widthPx: [{
15418
+ type: Input
15419
+ }], changeEvent: [{
15420
+ type: Output
15421
+ }], discardEvent: [{
15422
+ type: Output
15423
+ }], keepEditingEvent: [{
15424
+ type: Output
15425
+ }], saveEvent: [{
15426
+ type: Output
15427
+ }] } });
15428
+
15329
15429
  /*
15330
15430
  * Copyright 2015-2025 Ritense BV, the Netherlands.
15331
15431
  *
@@ -15799,5 +15899,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
15799
15899
  * Generated bundle index. Do not edit.
15800
15900
  */
15801
15901
 
15802
- export { Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, BOOLEAN_CONVERTER_VALUES, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, BreadcrumbService, CARBON_CONSTANTS, CARBON_THEME, CASES_WITHOUT_STATUS_KEY, CamundaFormComponent, CamundaFormModule, CarbonListComponent, CarbonListFilterPipe, CarbonListModule, CarbonMultiInputComponent, CarbonMultiInputModule, CarbonNoResultsComponent, CaseCountPipe, CaseTagsSelectorComponent, CdsThemeService, ChoiceFieldService, ComponentsPipesModule, ConfirmationModalComponent, ConfirmationModalModule, CtrlClickDirective, CurrentCarbonTheme, 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, FormComponent, FormIoCurrencyComponent, FormIoCurrentUserComponent, FormIoDomService, FormIoIbanComponent, FormIoModule, FormIoStateService, FormIoTagsService, FormIoUploaderComponent, FormModule, FormioBuilderComponent, FormioComponent, FormioDummyComponent, FormioOptionsImpl, FormioValueResolverSelectorComponent, InputComponent, InputLabelComponent, InputLabelModule, InputModule, IsArrayPipe, KeyGeneratorService, LeftSidebarComponent, LeftSidebarModule, MenuItemTextComponent, MenuItemTranslationPipe, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, ModalService, MonacoTheme, MoveRowDirection, MultiInputFormComponent, MultiInputFormModule, MultiselectDropdownComponent, MultiselectDropdownModule, MuuriDirective, MuuriDirectiveModule, MuuriItemComponent, PageHeaderComponent, PageHeaderModule, PageHeaderService, PageSubtitleService, PageTitleComponent, PageTitleModule, PageTitleService, ParagraphComponent, ParagraphModule, PendingChangesComponent, PendingChangesService, ProgressBarComponent, ProgressBarModule, PromptComponent, PromptModule, PromptService, RadioComponent, RadioModule, ReadOnlyDirective, RemoveClassnamesDirective, RenderInBodyComponent, RenderInPageHeaderDirective, RenderPageHeaderDirective, 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, TooltipComponent, TooltipDirective, TooltipIconComponent, TooltipIconModule, TooltipModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, UserInterfaceService, VModalComponent, VModalModule, ValtimoCdsModalDirective, ValtimoCdsOverflowButtonDirective, ValtimoModalService, ValuePathSelectorComponent, ValuePathSelectorInputMode, ValuePathSelectorPrefix, ValuePathSelectorService, ValuePathType, ViewContentService, ViewType, WebcamComponent, WebcamModule, WidgetComponent, WidgetModule, createCustomFormioComponent, customUploaderType, enableCustomFormioComponents, menuInitializer, pendingChangesGuard, registerCustomFormioComponent, registerCustomFormioComponentWithClass, registerCustomTag, registerFormioCurrencyComponent, registerFormioCurrentUserComponent, registerFormioFileSelectorComponent, registerFormioIbanComponent, registerFormioUploadComponent, registerFormioValueResolverSelectorComponent };
15902
+ export { Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, BOOLEAN_CONVERTER_VALUES, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, BreadcrumbService, CARBON_CONSTANTS, CARBON_THEME, CASES_WITHOUT_STATUS_KEY, CamundaFormComponent, CamundaFormModule, CarbonListComponent, CarbonListFilterPipe, CarbonListModule, CarbonMultiInputComponent, CarbonMultiInputModule, CarbonNoResultsComponent, CaseCountPipe, CaseTagsSelectorComponent, CdsThemeService, ChoiceFieldService, ComponentsPipesModule, ConfirmationModalComponent, ConfirmationModalModule, CtrlClickDirective, CurrentCarbonTheme, 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, FormComponent, FormIoCurrencyComponent, FormIoCurrentUserComponent, FormIoDomService, FormIoIbanComponent, FormIoModule, FormIoStateService, FormIoTagsService, FormIoUploaderComponent, FormModule, FormioBuilderComponent, FormioComponent, FormioDummyComponent, FormioOptionsImpl, FormioValueResolverSelectorComponent, InputComponent, InputLabelComponent, InputLabelModule, InputModule, IsArrayPipe, JsonEditorComponent, KeyGeneratorService, LeftSidebarComponent, LeftSidebarModule, MenuItemTextComponent, MenuItemTranslationPipe, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, ModalService, MonacoTheme, MoveRowDirection, MultiInputFormComponent, MultiInputFormModule, MultiselectDropdownComponent, MultiselectDropdownModule, MuuriDirective, MuuriDirectiveModule, MuuriItemComponent, PageHeaderComponent, PageHeaderModule, PageHeaderService, PageSubtitleService, PageTitleComponent, PageTitleModule, PageTitleService, ParagraphComponent, ParagraphModule, PendingChangesComponent, PendingChangesService, ProgressBarComponent, ProgressBarModule, PromptComponent, PromptModule, PromptService, RadioComponent, RadioModule, ReadOnlyDirective, RemoveClassnamesDirective, RenderInBodyComponent, RenderInPageHeaderDirective, RenderPageHeaderDirective, 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, TooltipComponent, TooltipDirective, TooltipIconComponent, TooltipIconModule, TooltipModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, UserInterfaceService, VModalComponent, VModalModule, ValtimoCdsModalDirective, ValtimoCdsOverflowButtonDirective, ValtimoModalService, ValuePathSelectorComponent, ValuePathSelectorInputMode, ValuePathSelectorPrefix, ValuePathSelectorService, ValuePathType, ViewContentService, ViewType, WebcamComponent, WebcamModule, WidgetComponent, WidgetModule, createCustomFormioComponent, customUploaderType, enableCustomFormioComponents, menuInitializer, pendingChangesGuard, registerCustomFormioComponent, registerCustomTag, registerFormioCurrencyComponent, registerFormioCurrentUserComponent, registerFormioFileSelectorComponent, registerFormioIbanComponent, registerFormioUploadComponent, registerFormioValueResolverSelectorComponent };
15803
15903
  //# sourceMappingURL=valtimo-components.mjs.map