@ng-formworks/core 20.6.9 → 21.6.9

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.
@@ -1,8 +1,7 @@
1
- import * as i1 from '@angular/common';
2
1
  import { CommonModule } from '@angular/common';
3
2
  import * as i0 from '@angular/core';
4
3
  import { Injectable, inject, input, viewChild, ViewContainerRef, Component, Input, Directive, ChangeDetectionStrategy, ViewChild, ChangeDetectorRef, signal, Inject, ElementRef, NgZone, NgModule, forwardRef, output } from '@angular/core';
5
- import * as i2 from '@angular/forms';
4
+ import * as i1 from '@angular/forms';
6
5
  import { UntypedFormControl, UntypedFormArray, UntypedFormGroup, FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
7
6
  import addFormats from 'ajv-formats';
8
7
  import Ajv2019 from 'ajv/dist/2019';
@@ -19,7 +18,7 @@ import filter from 'lodash/filter';
19
18
  import map$1 from 'lodash/map';
20
19
  import _isPlainObject from 'lodash/isPlainObject';
21
20
  import uniqueId from 'lodash/uniqueId';
22
- import * as i2$1 from '@angular/cdk/drag-drop';
21
+ import * as i1$1 from '@angular/cdk/drag-drop';
23
22
  import { DragDropModule } from '@angular/cdk/drag-drop';
24
23
  import { HttpClient } from '@angular/common/http';
25
24
 
@@ -29,10 +28,10 @@ class Framework {
29
28
  this.stylesheets = [];
30
29
  this.scripts = [];
31
30
  }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: Framework, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
33
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: Framework }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: Framework, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: Framework }); }
34
33
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: Framework, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: Framework, decorators: [{
36
35
  type: Injectable
37
36
  }] });
38
37
 
@@ -2516,10 +2515,10 @@ class JsonPointer {
2516
2515
  }
2517
2516
  console.error('parseObjectPath error: Input object path must be a string.');
2518
2517
  }
2519
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonPointer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2520
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonPointer }); }
2518
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonPointer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2519
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonPointer }); }
2521
2520
  }
2522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonPointer, decorators: [{
2521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonPointer, decorators: [{
2523
2522
  type: Injectable
2524
2523
  }] });
2525
2524
 
@@ -8009,10 +8008,10 @@ class JsonSchemaFormService {
8009
8008
  });
8010
8009
  }
8011
8010
  }
8012
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonSchemaFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8013
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonSchemaFormService }); }
8011
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonSchemaFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8012
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonSchemaFormService }); }
8014
8013
  }
8015
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonSchemaFormService, decorators: [{
8014
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonSchemaFormService, decorators: [{
8016
8015
  type: Injectable
8017
8016
  }], ctorParameters: () => [] });
8018
8017
 
@@ -8020,10 +8019,10 @@ class SelectWidgetComponent {
8020
8019
  constructor() {
8021
8020
  this.jsf = inject(JsonSchemaFormService);
8022
8021
  this.newComponent = null;
8023
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8024
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8025
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8026
- this.widgetContainer = viewChild('widgetContainer', ...(ngDevMode ? [{ debugName: "widgetContainer", read: ViewContainerRef }] : [{ read: ViewContainerRef }]));
8022
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8023
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8024
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8025
+ this.widgetContainer = viewChild('widgetContainer', { ...(ngDevMode ? { debugName: "widgetContainer" } : {}), read: ViewContainerRef });
8027
8026
  }
8028
8027
  ngOnInit() {
8029
8028
  this.updateComponent();
@@ -8043,10 +8042,10 @@ class SelectWidgetComponent {
8043
8042
  }
8044
8043
  }
8045
8044
  }
8046
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SelectWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8047
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.13", type: SelectWidgetComponent, isStandalone: false, selector: "select-widget-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: ["widgetContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `<div #widgetContainer></div>`, isInline: true }); }
8045
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SelectWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8046
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.2", type: SelectWidgetComponent, isStandalone: false, selector: "select-widget-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: ["widgetContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `<div #widgetContainer></div>`, isInline: true }); }
8048
8047
  }
8049
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SelectWidgetComponent, decorators: [{
8048
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SelectWidgetComponent, decorators: [{
8050
8049
  type: Component,
8051
8050
  args: [{
8052
8051
  // tslint:disable-next-line:component-selector
@@ -8058,14 +8057,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImpo
8058
8057
 
8059
8058
  class NoFrameworkComponent {
8060
8059
  constructor() {
8061
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8062
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8063
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8060
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8061
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8062
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8064
8063
  }
8065
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NoFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8066
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: NoFrameworkComponent, isStandalone: false, selector: "no-framework", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<select-widget-widget [dataIndex]=\"dataIndex()\" [layoutIndex]=\"layoutIndex()\" [layoutNode]=\"layoutNode()\">\r\n</select-widget-widget>", dependencies: [{ kind: "component", type: SelectWidgetComponent, selector: "select-widget-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] }); }
8064
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NoFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8065
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.2", type: NoFrameworkComponent, isStandalone: false, selector: "no-framework", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<select-widget-widget [dataIndex]=\"dataIndex()\" [layoutIndex]=\"layoutIndex()\" [layoutNode]=\"layoutNode()\">\r\n</select-widget-widget>", dependencies: [{ kind: "component", type: SelectWidgetComponent, selector: "select-widget-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] }); }
8067
8066
  }
8068
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NoFrameworkComponent, decorators: [{
8067
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NoFrameworkComponent, decorators: [{
8069
8068
  type: Component,
8070
8069
  args: [{ selector: 'no-framework', standalone: false, template: "<select-widget-widget [dataIndex]=\"dataIndex()\" [layoutIndex]=\"layoutIndex()\" [layoutNode]=\"layoutNode()\">\r\n</select-widget-widget>" }]
8071
8070
  }], propDecorators: { layoutNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutNode", required: false }] }], layoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutIndex", required: false }] }], dataIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataIndex", required: false }] }] } });
@@ -8078,10 +8077,10 @@ class NoFramework extends Framework {
8078
8077
  this.text = 'None (plain HTML)';
8079
8078
  this.framework = NoFrameworkComponent;
8080
8079
  }
8081
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NoFramework, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
8082
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NoFramework }); }
8080
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NoFramework, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
8081
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NoFramework }); }
8083
8082
  }
8084
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NoFramework, decorators: [{
8083
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NoFramework, decorators: [{
8085
8084
  type: Injectable
8086
8085
  }] });
8087
8086
 
@@ -8103,10 +8102,10 @@ class ElementAttributeDirective {
8103
8102
  }
8104
8103
  }
8105
8104
  }
8106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ElementAttributeDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8107
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.13", type: ElementAttributeDirective, isStandalone: false, selector: "[attributes]", inputs: { attributes: "attributes" }, usesOnChanges: true, ngImport: i0 }); }
8105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: ElementAttributeDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8106
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.2", type: ElementAttributeDirective, isStandalone: false, selector: "[attributes]", inputs: { attributes: "attributes" }, usesOnChanges: true, ngImport: i0 }); }
8108
8107
  }
8109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ElementAttributeDirective, decorators: [{
8108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: ElementAttributeDirective, decorators: [{
8110
8109
  type: Directive,
8111
8110
  args: [{
8112
8111
  selector: '[attributes]',
@@ -8143,10 +8142,10 @@ class StopPropagationDirective {
8143
8142
  // Call each stored unsubscribe function to clean up listeners
8144
8143
  this.unsubscribeFunctions.forEach(unsub => unsub());
8145
8144
  }
8146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: StopPropagationDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
8147
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.13", type: StopPropagationDirective, isStandalone: false, selector: "[appStopPropagation]", inputs: { events: ["appStopPropagation", "events"] }, ngImport: i0 }); }
8145
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: StopPropagationDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
8146
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.2", type: StopPropagationDirective, isStandalone: false, selector: "[appStopPropagation]", inputs: { events: ["appStopPropagation", "events"] }, ngImport: i0 }); }
8148
8147
  }
8149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: StopPropagationDirective, decorators: [{
8148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: StopPropagationDirective, decorators: [{
8150
8149
  type: Directive,
8151
8150
  args: [{
8152
8151
  selector: '[appStopPropagation]', standalone: false
@@ -8159,9 +8158,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImpo
8159
8158
  class AddReferenceComponent {
8160
8159
  constructor() {
8161
8160
  this.jsf = inject(JsonSchemaFormService);
8162
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8163
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8164
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8161
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8162
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8163
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8165
8164
  }
8166
8165
  ngOnInit() {
8167
8166
  this.options = this.layoutNode().options || {};
@@ -8183,38 +8182,48 @@ class AddReferenceComponent {
8183
8182
  return parent.layoutNode && (parent.layoutNode.add ||
8184
8183
  this.jsf.setArrayItemTitle(parent, this.layoutNode(), this.itemCount));
8185
8184
  }
8186
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: AddReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8187
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: AddReferenceComponent, isStandalone: false, selector: "add-reference-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8188
- <section [class]="options?.htmlClass || ''" align="end">
8189
- <button *ngIf="showAddButton"
8190
- [class]="options?.fieldHtmlClass || ''"
8191
- [disabled]="options?.readonly"
8192
- (click)="addItem($event)"
8193
- [appStopPropagation]="['mousedown', 'touchstart']"
8194
- >
8195
- <span *ngIf="options?.icon" [class]="options?.icon"></span>
8196
- <span *ngIf="options?.title" [innerHTML]="buttonText"></span>
8197
-
8198
- </button>
8199
- </section>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
8185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: AddReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: AddReferenceComponent, isStandalone: false, selector: "add-reference-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8187
+ <section [class]="options?.htmlClass || ''" align="end">
8188
+ @if (showAddButton) {
8189
+ <button
8190
+ [class]="options?.fieldHtmlClass || ''"
8191
+ [disabled]="options?.readonly"
8192
+ (click)="addItem($event)"
8193
+ [appStopPropagation]="['mousedown', 'touchstart']"
8194
+ >
8195
+ @if (options?.icon) {
8196
+ <span [class]="options?.icon"></span>
8197
+ }
8198
+ @if (options?.title) {
8199
+ <span [innerHTML]="buttonText"></span>
8200
+ }
8201
+ </button>
8202
+ }
8203
+ </section>`, isInline: true, dependencies: [{ kind: "directive", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
8200
8204
  }
8201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: AddReferenceComponent, decorators: [{
8205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: AddReferenceComponent, decorators: [{
8202
8206
  type: Component,
8203
8207
  args: [{
8204
8208
  // tslint:disable-next-line:component-selector
8205
8209
  selector: 'add-reference-widget',
8206
- template: `
8207
- <section [class]="options?.htmlClass || ''" align="end">
8208
- <button *ngIf="showAddButton"
8209
- [class]="options?.fieldHtmlClass || ''"
8210
- [disabled]="options?.readonly"
8211
- (click)="addItem($event)"
8212
- [appStopPropagation]="['mousedown', 'touchstart']"
8213
- >
8214
- <span *ngIf="options?.icon" [class]="options?.icon"></span>
8215
- <span *ngIf="options?.title" [innerHTML]="buttonText"></span>
8216
-
8217
- </button>
8210
+ template: `
8211
+ <section [class]="options?.htmlClass || ''" align="end">
8212
+ @if (showAddButton) {
8213
+ <button
8214
+ [class]="options?.fieldHtmlClass || ''"
8215
+ [disabled]="options?.readonly"
8216
+ (click)="addItem($event)"
8217
+ [appStopPropagation]="['mousedown', 'touchstart']"
8218
+ >
8219
+ @if (options?.icon) {
8220
+ <span [class]="options?.icon"></span>
8221
+ }
8222
+ @if (options?.title) {
8223
+ <span [innerHTML]="buttonText"></span>
8224
+ }
8225
+ </button>
8226
+ }
8218
8227
  </section>`,
8219
8228
  changeDetection: ChangeDetectionStrategy.Default,
8220
8229
  standalone: false
@@ -8226,9 +8235,9 @@ class ButtonComponent {
8226
8235
  this.jsf = inject(JsonSchemaFormService);
8227
8236
  this.controlDisabled = false;
8228
8237
  this.boundControl = false;
8229
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8230
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8231
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8238
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8239
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8240
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8232
8241
  }
8233
8242
  ngOnInit() {
8234
8243
  this.options = this.layoutNode().options || {};
@@ -8245,50 +8254,54 @@ class ButtonComponent {
8245
8254
  ngOnDestroy() {
8246
8255
  this.jsf.updateValue(this, null);
8247
8256
  }
8248
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8249
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: ButtonComponent, isStandalone: false, selector: "button-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8250
- <div
8251
- [class]="options?.htmlClass || ''">
8252
- <button
8253
- [attr.readonly]="options?.readonly ? 'readonly' : null"
8254
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8255
- [class]="options?.fieldHtmlClass || ''"
8256
- [disabled]="controlDisabled"
8257
- [name]="controlName"
8258
- [type]="layoutNode()?.type"
8259
- [value]="controlValue"
8260
- (click)="updateValue($event)"
8261
- [appStopPropagation]="['mousedown', 'touchstart']"
8262
- >
8263
- <span *ngIf="options?.icon || options?.title"
8264
- [class]="options?.icon"
8265
- [innerHTML]="options?.title"></span>
8266
- </button>
8267
- </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }] }); }
8257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: ButtonComponent, isStandalone: false, selector: "button-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8259
+ <div
8260
+ [class]="options?.htmlClass || ''">
8261
+ <button
8262
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
8263
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8264
+ [class]="options?.fieldHtmlClass || ''"
8265
+ [disabled]="controlDisabled"
8266
+ [name]="controlName"
8267
+ [type]="layoutNode()?.type"
8268
+ [value]="controlValue"
8269
+ (click)="updateValue($event)"
8270
+ [appStopPropagation]="['mousedown', 'touchstart']"
8271
+ >
8272
+ @if (options?.icon || options?.title) {
8273
+ <span
8274
+ [class]="options?.icon"
8275
+ [innerHTML]="options?.title"></span>
8276
+ }
8277
+ </button>
8278
+ </div>`, isInline: true, dependencies: [{ kind: "directive", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }] }); }
8268
8279
  }
8269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ButtonComponent, decorators: [{
8280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: ButtonComponent, decorators: [{
8270
8281
  type: Component,
8271
8282
  args: [{
8272
8283
  // tslint:disable-next-line:component-selector
8273
8284
  selector: 'button-widget',
8274
- template: `
8275
- <div
8276
- [class]="options?.htmlClass || ''">
8277
- <button
8278
- [attr.readonly]="options?.readonly ? 'readonly' : null"
8279
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8280
- [class]="options?.fieldHtmlClass || ''"
8281
- [disabled]="controlDisabled"
8282
- [name]="controlName"
8283
- [type]="layoutNode()?.type"
8284
- [value]="controlValue"
8285
- (click)="updateValue($event)"
8286
- [appStopPropagation]="['mousedown', 'touchstart']"
8287
- >
8288
- <span *ngIf="options?.icon || options?.title"
8289
- [class]="options?.icon"
8290
- [innerHTML]="options?.title"></span>
8291
- </button>
8285
+ template: `
8286
+ <div
8287
+ [class]="options?.htmlClass || ''">
8288
+ <button
8289
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
8290
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8291
+ [class]="options?.fieldHtmlClass || ''"
8292
+ [disabled]="controlDisabled"
8293
+ [name]="controlName"
8294
+ [type]="layoutNode()?.type"
8295
+ [value]="controlValue"
8296
+ (click)="updateValue($event)"
8297
+ [appStopPropagation]="['mousedown', 'touchstart']"
8298
+ >
8299
+ @if (options?.icon || options?.title) {
8300
+ <span
8301
+ [class]="options?.icon"
8302
+ [innerHTML]="options?.title"></span>
8303
+ }
8304
+ </button>
8292
8305
  </div>`,
8293
8306
  standalone: false
8294
8307
  }]
@@ -8306,9 +8319,9 @@ class CheckboxComponent {
8306
8319
  this.boundControl = false;
8307
8320
  this.trueValue = true;
8308
8321
  this.falseValue = false;
8309
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8310
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8311
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8322
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8323
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8324
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8312
8325
  }
8313
8326
  ngOnInit() {
8314
8327
  this.options = this.layoutNode().options || {};
@@ -8328,74 +8341,86 @@ class CheckboxComponent {
8328
8341
  ngOnDestroy() {
8329
8342
  this.jsf.updateValue(this, null);
8330
8343
  }
8331
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8332
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: CheckboxComponent, isStandalone: false, selector: "checkbox-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8333
- <label
8334
- [attr.for]="'control' + layoutNode()?._id"
8335
- [class]="options?.itemLabelHtmlClass || ''">
8336
- <input *ngIf="boundControl"
8337
- [formControl]="formControl"
8338
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8344
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8345
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: CheckboxComponent, isStandalone: false, selector: "checkbox-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8346
+ <label
8347
+ [attr.for]="'control' + layoutNode()?._id"
8348
+ [class]="options?.itemLabelHtmlClass || ''">
8349
+ @if (boundControl) {
8350
+ <input
8351
+ [formControl]="formControl"
8352
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8339
8353
  [class]="(options?.fieldHtmlClass || '') + (isChecked ?
8340
8354
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
8341
8355
  (' ' + (options?.style?.unselected || '')))"
8342
- [id]="'control' + layoutNode()?._id"
8343
- [name]="controlName"
8344
- [readonly]="options?.readonly ? 'readonly' : null"
8345
- type="checkbox">
8346
- <input *ngIf="!boundControl"
8347
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8348
- [checked]="isChecked"
8356
+ [id]="'control' + layoutNode()?._id"
8357
+ [name]="controlName"
8358
+ [readonly]="options?.readonly ? 'readonly' : null"
8359
+ type="checkbox">
8360
+ }
8361
+ @if (!boundControl) {
8362
+ <input
8363
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8364
+ [checked]="isChecked"
8349
8365
  [class]="(options?.fieldHtmlClass || '') + (isChecked ?
8350
8366
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
8351
8367
  (' ' + (options?.style?.unselected || '')))"
8352
- [disabled]="controlDisabled"
8353
- [id]="'control' + layoutNode()?._id"
8354
- [name]="controlName"
8355
- [readonly]="options?.readonly ? 'readonly' : null"
8356
- [value]="controlValue"
8357
- type="checkbox"
8358
- (change)="updateValue($event)">
8359
- <span *ngIf="options?.title"
8360
- [style.display]="options?.notitle ? 'none' : ''"
8361
- [innerHTML]="options?.title"></span>
8362
- </label>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
8368
+ [disabled]="controlDisabled"
8369
+ [id]="'control' + layoutNode()?._id"
8370
+ [name]="controlName"
8371
+ [readonly]="options?.readonly ? 'readonly' : null"
8372
+ [value]="controlValue"
8373
+ type="checkbox"
8374
+ (change)="updateValue($event)">
8375
+ }
8376
+ @if (options?.title) {
8377
+ <span
8378
+ [style.display]="options?.notitle ? 'none' : ''"
8379
+ [innerHTML]="options?.title"></span>
8380
+ }
8381
+ </label>`, isInline: true, dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
8363
8382
  }
8364
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: CheckboxComponent, decorators: [{
8383
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: CheckboxComponent, decorators: [{
8365
8384
  type: Component,
8366
8385
  args: [{
8367
8386
  // tslint:disable-next-line:component-selector
8368
8387
  selector: 'checkbox-widget',
8369
- template: `
8370
- <label
8371
- [attr.for]="'control' + layoutNode()?._id"
8372
- [class]="options?.itemLabelHtmlClass || ''">
8373
- <input *ngIf="boundControl"
8374
- [formControl]="formControl"
8375
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8388
+ template: `
8389
+ <label
8390
+ [attr.for]="'control' + layoutNode()?._id"
8391
+ [class]="options?.itemLabelHtmlClass || ''">
8392
+ @if (boundControl) {
8393
+ <input
8394
+ [formControl]="formControl"
8395
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8376
8396
  [class]="(options?.fieldHtmlClass || '') + (isChecked ?
8377
8397
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
8378
8398
  (' ' + (options?.style?.unselected || '')))"
8379
- [id]="'control' + layoutNode()?._id"
8380
- [name]="controlName"
8381
- [readonly]="options?.readonly ? 'readonly' : null"
8382
- type="checkbox">
8383
- <input *ngIf="!boundControl"
8384
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8385
- [checked]="isChecked"
8399
+ [id]="'control' + layoutNode()?._id"
8400
+ [name]="controlName"
8401
+ [readonly]="options?.readonly ? 'readonly' : null"
8402
+ type="checkbox">
8403
+ }
8404
+ @if (!boundControl) {
8405
+ <input
8406
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8407
+ [checked]="isChecked"
8386
8408
  [class]="(options?.fieldHtmlClass || '') + (isChecked ?
8387
8409
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
8388
8410
  (' ' + (options?.style?.unselected || '')))"
8389
- [disabled]="controlDisabled"
8390
- [id]="'control' + layoutNode()?._id"
8391
- [name]="controlName"
8392
- [readonly]="options?.readonly ? 'readonly' : null"
8393
- [value]="controlValue"
8394
- type="checkbox"
8395
- (change)="updateValue($event)">
8396
- <span *ngIf="options?.title"
8397
- [style.display]="options?.notitle ? 'none' : ''"
8398
- [innerHTML]="options?.title"></span>
8411
+ [disabled]="controlDisabled"
8412
+ [id]="'control' + layoutNode()?._id"
8413
+ [name]="controlName"
8414
+ [readonly]="options?.readonly ? 'readonly' : null"
8415
+ [value]="controlValue"
8416
+ type="checkbox"
8417
+ (change)="updateValue($event)">
8418
+ }
8419
+ @if (options?.title) {
8420
+ <span
8421
+ [style.display]="options?.notitle ? 'none' : ''"
8422
+ [innerHTML]="options?.title"></span>
8423
+ }
8399
8424
  </label>`,
8400
8425
  standalone: false
8401
8426
  }]
@@ -8407,9 +8432,9 @@ class CheckboxesComponent {
8407
8432
  this.controlDisabled = false;
8408
8433
  this.boundControl = false;
8409
8434
  this.checkboxList = [];
8410
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8411
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8412
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8435
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8436
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8437
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8413
8438
  }
8414
8439
  ngOnInit() {
8415
8440
  this.options = this.layoutNode().options || {};
@@ -8440,111 +8465,131 @@ class CheckboxesComponent {
8440
8465
  this.formControl.reset(nullVal);
8441
8466
  this.controlValue = null;
8442
8467
  }
8443
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: CheckboxesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8444
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: CheckboxesComponent, isStandalone: false, selector: "checkboxes-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8445
- <label *ngIf="options?.title"
8446
- [class]="options?.labelHtmlClass || ''"
8447
- [style.display]="options?.notitle ? 'none' : ''"
8448
- [innerHTML]="options?.title"></label>
8449
-
8450
- <!-- 'horizontal' = checkboxes-inline or checkboxbuttons -->
8451
- <div *ngIf="layoutOrientation === 'horizontal'" [class]="options?.htmlClass || ''">
8452
- <label *ngFor="let checkboxItem of checkboxList"
8453
- [attr.for]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8468
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: CheckboxesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8469
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: CheckboxesComponent, isStandalone: false, selector: "checkboxes-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8470
+ @if (options?.title) {
8471
+ <label
8472
+ [class]="options?.labelHtmlClass || ''"
8473
+ [style.display]="options?.notitle ? 'none' : ''"
8474
+ [innerHTML]="options?.title"></label>
8475
+ }
8476
+
8477
+ <!-- 'horizontal' = checkboxes-inline or checkboxbuttons -->
8478
+ @if (layoutOrientation === 'horizontal') {
8479
+ <div [class]="options?.htmlClass || ''">
8480
+ @for (checkboxItem of checkboxList; track checkboxItem) {
8481
+ <label
8482
+ [attr.for]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8454
8483
  [class]="(options?.itemLabelHtmlClass || '') + (checkboxItem.checked ?
8455
8484
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
8456
8485
  (' ' + (options?.style?.unselected || '')))">
8457
- <input type="checkbox"
8458
- [attr.required]="options?.required"
8459
- [checked]="checkboxItem.checked"
8460
- [class]="options?.fieldHtmlClass || ''"
8461
- [disabled]="controlDisabled"
8462
- [id]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8463
- [name]="checkboxItem?.name"
8464
- [readonly]="options?.readonly ? 'readonly' : null"
8465
- [value]="checkboxItem.value"
8466
- (change)="updateValue($event)">
8467
- <span [innerHTML]="checkboxItem.name"></span>
8468
- </label>
8469
- </div>
8470
-
8471
- <!-- 'vertical' = regular checkboxes -->
8472
- <div *ngIf="layoutOrientation === 'vertical'">
8473
- <div *ngFor="let checkboxItem of checkboxList" [class]="options?.htmlClass || ''">
8474
- <label
8475
- [attr.for]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8486
+ <input type="checkbox"
8487
+ [attr.required]="options?.required"
8488
+ [checked]="checkboxItem.checked"
8489
+ [class]="options?.fieldHtmlClass || ''"
8490
+ [disabled]="controlDisabled"
8491
+ [id]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8492
+ [name]="checkboxItem?.name"
8493
+ [readonly]="options?.readonly ? 'readonly' : null"
8494
+ [value]="checkboxItem.value"
8495
+ (change)="updateValue($event)">
8496
+ <span [innerHTML]="checkboxItem.name"></span>
8497
+ </label>
8498
+ }
8499
+ </div>
8500
+ }
8501
+
8502
+ <!-- 'vertical' = regular checkboxes -->
8503
+ @if (layoutOrientation === 'vertical') {
8504
+ <div>
8505
+ @for (checkboxItem of checkboxList; track checkboxItem) {
8506
+ <div [class]="options?.htmlClass || ''">
8507
+ <label
8508
+ [attr.for]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8476
8509
  [class]="(options?.itemLabelHtmlClass || '') + (checkboxItem.checked ?
8477
8510
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
8478
8511
  (' ' + (options?.style?.unselected || '')))">
8479
- <input type="checkbox"
8480
- [attr.required]="options?.required"
8481
- [checked]="checkboxItem.checked"
8482
- [class]="options?.fieldHtmlClass || ''"
8483
- [disabled]="controlDisabled"
8484
- [id]="options?.name + '/' + checkboxItem.value"
8485
- [name]="checkboxItem?.name"
8486
- [readonly]="options?.readonly ? 'readonly' : null"
8487
- [value]="checkboxItem.value"
8488
- (change)="updateValue($event)">
8489
- <span [innerHTML]="checkboxItem?.name"></span>
8490
- </label>
8491
- </div>
8492
- </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
8512
+ <input type="checkbox"
8513
+ [attr.required]="options?.required"
8514
+ [checked]="checkboxItem.checked"
8515
+ [class]="options?.fieldHtmlClass || ''"
8516
+ [disabled]="controlDisabled"
8517
+ [id]="options?.name + '/' + checkboxItem.value"
8518
+ [name]="checkboxItem?.name"
8519
+ [readonly]="options?.readonly ? 'readonly' : null"
8520
+ [value]="checkboxItem.value"
8521
+ (change)="updateValue($event)">
8522
+ <span [innerHTML]="checkboxItem?.name"></span>
8523
+ </label>
8524
+ </div>
8525
+ }
8526
+ </div>
8527
+ }`, isInline: true }); }
8493
8528
  }
8494
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: CheckboxesComponent, decorators: [{
8529
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: CheckboxesComponent, decorators: [{
8495
8530
  type: Component,
8496
8531
  args: [{
8497
8532
  // tslint:disable-next-line:component-selector
8498
8533
  selector: 'checkboxes-widget',
8499
- template: `
8500
- <label *ngIf="options?.title"
8501
- [class]="options?.labelHtmlClass || ''"
8502
- [style.display]="options?.notitle ? 'none' : ''"
8503
- [innerHTML]="options?.title"></label>
8504
-
8505
- <!-- 'horizontal' = checkboxes-inline or checkboxbuttons -->
8506
- <div *ngIf="layoutOrientation === 'horizontal'" [class]="options?.htmlClass || ''">
8507
- <label *ngFor="let checkboxItem of checkboxList"
8508
- [attr.for]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8534
+ template: `
8535
+ @if (options?.title) {
8536
+ <label
8537
+ [class]="options?.labelHtmlClass || ''"
8538
+ [style.display]="options?.notitle ? 'none' : ''"
8539
+ [innerHTML]="options?.title"></label>
8540
+ }
8541
+
8542
+ <!-- 'horizontal' = checkboxes-inline or checkboxbuttons -->
8543
+ @if (layoutOrientation === 'horizontal') {
8544
+ <div [class]="options?.htmlClass || ''">
8545
+ @for (checkboxItem of checkboxList; track checkboxItem) {
8546
+ <label
8547
+ [attr.for]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8509
8548
  [class]="(options?.itemLabelHtmlClass || '') + (checkboxItem.checked ?
8510
8549
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
8511
8550
  (' ' + (options?.style?.unselected || '')))">
8512
- <input type="checkbox"
8513
- [attr.required]="options?.required"
8514
- [checked]="checkboxItem.checked"
8515
- [class]="options?.fieldHtmlClass || ''"
8516
- [disabled]="controlDisabled"
8517
- [id]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8518
- [name]="checkboxItem?.name"
8519
- [readonly]="options?.readonly ? 'readonly' : null"
8520
- [value]="checkboxItem.value"
8521
- (change)="updateValue($event)">
8522
- <span [innerHTML]="checkboxItem.name"></span>
8523
- </label>
8524
- </div>
8525
-
8526
- <!-- 'vertical' = regular checkboxes -->
8527
- <div *ngIf="layoutOrientation === 'vertical'">
8528
- <div *ngFor="let checkboxItem of checkboxList" [class]="options?.htmlClass || ''">
8529
- <label
8530
- [attr.for]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8551
+ <input type="checkbox"
8552
+ [attr.required]="options?.required"
8553
+ [checked]="checkboxItem.checked"
8554
+ [class]="options?.fieldHtmlClass || ''"
8555
+ [disabled]="controlDisabled"
8556
+ [id]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8557
+ [name]="checkboxItem?.name"
8558
+ [readonly]="options?.readonly ? 'readonly' : null"
8559
+ [value]="checkboxItem.value"
8560
+ (change)="updateValue($event)">
8561
+ <span [innerHTML]="checkboxItem.name"></span>
8562
+ </label>
8563
+ }
8564
+ </div>
8565
+ }
8566
+
8567
+ <!-- 'vertical' = regular checkboxes -->
8568
+ @if (layoutOrientation === 'vertical') {
8569
+ <div>
8570
+ @for (checkboxItem of checkboxList; track checkboxItem) {
8571
+ <div [class]="options?.htmlClass || ''">
8572
+ <label
8573
+ [attr.for]="'control' + layoutNode()?._id + '/' + checkboxItem.value"
8531
8574
  [class]="(options?.itemLabelHtmlClass || '') + (checkboxItem.checked ?
8532
8575
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
8533
8576
  (' ' + (options?.style?.unselected || '')))">
8534
- <input type="checkbox"
8535
- [attr.required]="options?.required"
8536
- [checked]="checkboxItem.checked"
8537
- [class]="options?.fieldHtmlClass || ''"
8538
- [disabled]="controlDisabled"
8539
- [id]="options?.name + '/' + checkboxItem.value"
8540
- [name]="checkboxItem?.name"
8541
- [readonly]="options?.readonly ? 'readonly' : null"
8542
- [value]="checkboxItem.value"
8543
- (change)="updateValue($event)">
8544
- <span [innerHTML]="checkboxItem?.name"></span>
8545
- </label>
8546
- </div>
8547
- </div>`,
8577
+ <input type="checkbox"
8578
+ [attr.required]="options?.required"
8579
+ [checked]="checkboxItem.checked"
8580
+ [class]="options?.fieldHtmlClass || ''"
8581
+ [disabled]="controlDisabled"
8582
+ [id]="options?.name + '/' + checkboxItem.value"
8583
+ [name]="checkboxItem?.name"
8584
+ [readonly]="options?.readonly ? 'readonly' : null"
8585
+ [value]="checkboxItem.value"
8586
+ (change)="updateValue($event)">
8587
+ <span [innerHTML]="checkboxItem?.name"></span>
8588
+ </label>
8589
+ </div>
8590
+ }
8591
+ </div>
8592
+ }`,
8548
8593
  standalone: false
8549
8594
  }]
8550
8595
  }], propDecorators: { layoutNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutNode", required: false }] }], layoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutIndex", required: false }] }], dataIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataIndex", required: false }] }] } });
@@ -8555,9 +8600,9 @@ class FileComponent {
8555
8600
  this.jsf = inject(JsonSchemaFormService);
8556
8601
  this.controlDisabled = false;
8557
8602
  this.boundControl = false;
8558
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8559
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8560
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8603
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8604
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8605
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8561
8606
  }
8562
8607
  ngOnInit() {
8563
8608
  this.options = this.layoutNode().options || {};
@@ -8569,10 +8614,10 @@ class FileComponent {
8569
8614
  ngOnDestroy() {
8570
8615
  this.jsf.updateValue(this, null);
8571
8616
  }
8572
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: FileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8573
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: FileComponent, isStandalone: false, selector: "file-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: ``, isInline: true }); }
8617
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: FileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8618
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.2", type: FileComponent, isStandalone: false, selector: "file-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: ``, isInline: true }); }
8574
8619
  }
8575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: FileComponent, decorators: [{
8620
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: FileComponent, decorators: [{
8576
8621
  type: Component,
8577
8622
  args: [{
8578
8623
  // tslint:disable-next-line:component-selector
@@ -8587,9 +8632,9 @@ class HiddenComponent {
8587
8632
  this.jsf = inject(JsonSchemaFormService);
8588
8633
  this.controlDisabled = false;
8589
8634
  this.boundControl = false;
8590
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8591
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8592
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8635
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8636
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8637
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8593
8638
  }
8594
8639
  ngOnInit() {
8595
8640
  this.jsf.initializeControl(this);
@@ -8597,37 +8642,45 @@ class HiddenComponent {
8597
8642
  ngOnDestroy() {
8598
8643
  this.jsf.updateValue(this, null);
8599
8644
  }
8600
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HiddenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8601
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: HiddenComponent, isStandalone: false, selector: "hidden-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8602
- <input *ngIf="boundControl"
8603
- [formControl]="formControl"
8604
- [id]="'control' + layoutNode()?._id"
8605
- [name]="controlName"
8606
- type="hidden">
8607
- <input *ngIf="!boundControl"
8608
- [disabled]="controlDisabled"
8609
- [name]="controlName"
8610
- [id]="'control' + layoutNode()?._id"
8611
- type="hidden"
8612
- [value]="controlValue">`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
8645
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: HiddenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8646
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: HiddenComponent, isStandalone: false, selector: "hidden-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8647
+ @if (boundControl) {
8648
+ <input
8649
+ [formControl]="formControl"
8650
+ [id]="'control' + layoutNode()?._id"
8651
+ [name]="controlName"
8652
+ type="hidden">
8653
+ }
8654
+ @if (!boundControl) {
8655
+ <input
8656
+ [disabled]="controlDisabled"
8657
+ [name]="controlName"
8658
+ [id]="'control' + layoutNode()?._id"
8659
+ type="hidden"
8660
+ [value]="controlValue">
8661
+ }`, isInline: true, dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
8613
8662
  }
8614
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: HiddenComponent, decorators: [{
8663
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: HiddenComponent, decorators: [{
8615
8664
  type: Component,
8616
8665
  args: [{
8617
8666
  // tslint:disable-next-line:component-selector
8618
8667
  selector: 'hidden-widget',
8619
- template: `
8620
- <input *ngIf="boundControl"
8621
- [formControl]="formControl"
8622
- [id]="'control' + layoutNode()?._id"
8623
- [name]="controlName"
8624
- type="hidden">
8625
- <input *ngIf="!boundControl"
8626
- [disabled]="controlDisabled"
8627
- [name]="controlName"
8628
- [id]="'control' + layoutNode()?._id"
8629
- type="hidden"
8630
- [value]="controlValue">`,
8668
+ template: `
8669
+ @if (boundControl) {
8670
+ <input
8671
+ [formControl]="formControl"
8672
+ [id]="'control' + layoutNode()?._id"
8673
+ [name]="controlName"
8674
+ type="hidden">
8675
+ }
8676
+ @if (!boundControl) {
8677
+ <input
8678
+ [disabled]="controlDisabled"
8679
+ [name]="controlName"
8680
+ [id]="'control' + layoutNode()?._id"
8681
+ type="hidden"
8682
+ [value]="controlValue">
8683
+ }`,
8631
8684
  standalone: false
8632
8685
  }]
8633
8686
  }], propDecorators: { layoutNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutNode", required: false }] }], layoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutIndex", required: false }] }], dataIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataIndex", required: false }] }] } });
@@ -8638,9 +8691,9 @@ class InputComponent {
8638
8691
  this.controlDisabled = false;
8639
8692
  this.boundControl = false;
8640
8693
  this.autoCompleteList = [];
8641
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8642
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8643
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8694
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8695
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8696
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8644
8697
  }
8645
8698
  //needed as templates don't accept something like [attributes]="options?.['x-inputAttributes']"
8646
8699
  get inputAttributes() {
@@ -8661,109 +8714,129 @@ class InputComponent {
8661
8714
  this.jsf.updateValue(this, null);
8662
8715
  });
8663
8716
  }
8664
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8665
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: InputComponent, isStandalone: false, selector: "input-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8666
- <div [class]="options?.htmlClass || ''" >
8667
- <label *ngIf="options?.title"
8668
- [attr.for]="'control' + layoutNode()?._id"
8669
- [class]="options?.labelHtmlClass || ''"
8670
- [style.display]="options?.notitle ? 'none' : ''"
8671
- [innerHTML]="options?.title"></label>
8672
- <input *ngIf="boundControl"
8673
- [formControl]="formControl"
8674
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8675
- [attr.list]="'control' + layoutNode()?._id + 'Autocomplete'"
8676
- [attr.maxlength]="options?.maxLength"
8677
- [attr.minlength]="options?.minLength"
8678
- [attr.pattern]="options?.pattern"
8679
- [attr.placeholder]="options?.placeholder"
8680
- [attr.required]="options?.required"
8681
- [class]="options?.fieldHtmlClass || ''"
8682
- [id]="'control' + layoutNode()?._id"
8683
- [name]="controlName"
8684
- [readonly]="options?.readonly ? 'readonly' : null"
8685
- [type]="layoutNode()?.type"
8686
- [attributes]="inputAttributes"
8687
- [appStopPropagation]="['mousedown', 'touchstart']"
8688
- >
8689
- <input *ngIf="!boundControl"
8690
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8691
- [attr.list]="'control' + layoutNode()?._id + 'Autocomplete'"
8692
- [attr.maxlength]="options?.maxLength"
8693
- [attr.minlength]="options?.minLength"
8694
- [attr.pattern]="options?.pattern"
8695
- [attr.placeholder]="options?.placeholder"
8696
- [attr.required]="options?.required"
8697
- [class]="options?.fieldHtmlClass || ''"
8698
- [disabled]="controlDisabled"
8699
- [id]="'control' + layoutNode()?._id"
8700
- [name]="controlName"
8701
- [readonly]="options?.readonly ? 'readonly' : null"
8702
- [type]="layoutNode()?.type"
8703
- [value]="controlValue"
8704
- (input)="updateValue($event)"
8705
- [attributes]="inputAttributes"
8706
- [appStopPropagation]="['mousedown', 'touchstart']"
8707
- >
8708
- <datalist *ngIf="options?.typeahead?.source"
8709
- [id]="'control' + layoutNode()?._id + 'Autocomplete'">
8710
- <option *ngFor="let word of options?.typeahead?.source" [value]="word">
8711
- </datalist>
8712
- </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: ElementAttributeDirective, selector: "[attributes]", inputs: ["attributes"] }, { kind: "directive", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }] }); }
8717
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8718
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: InputComponent, isStandalone: false, selector: "input-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8719
+ <div [class]="options?.htmlClass || ''" >
8720
+ @if (options?.title) {
8721
+ <label
8722
+ [attr.for]="'control' + layoutNode()?._id"
8723
+ [class]="options?.labelHtmlClass || ''"
8724
+ [style.display]="options?.notitle ? 'none' : ''"
8725
+ [innerHTML]="options?.title"></label>
8726
+ }
8727
+ @if (boundControl) {
8728
+ <input
8729
+ [formControl]="formControl"
8730
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8731
+ [attr.list]="'control' + layoutNode()?._id + 'Autocomplete'"
8732
+ [attr.maxlength]="options?.maxLength"
8733
+ [attr.minlength]="options?.minLength"
8734
+ [attr.pattern]="options?.pattern"
8735
+ [attr.placeholder]="options?.placeholder"
8736
+ [attr.required]="options?.required"
8737
+ [class]="options?.fieldHtmlClass || ''"
8738
+ [id]="'control' + layoutNode()?._id"
8739
+ [name]="controlName"
8740
+ [readonly]="options?.readonly ? 'readonly' : null"
8741
+ [type]="layoutNode()?.type"
8742
+ [attributes]="inputAttributes"
8743
+ [appStopPropagation]="['mousedown', 'touchstart']"
8744
+ >
8745
+ }
8746
+ @if (!boundControl) {
8747
+ <input
8748
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8749
+ [attr.list]="'control' + layoutNode()?._id + 'Autocomplete'"
8750
+ [attr.maxlength]="options?.maxLength"
8751
+ [attr.minlength]="options?.minLength"
8752
+ [attr.pattern]="options?.pattern"
8753
+ [attr.placeholder]="options?.placeholder"
8754
+ [attr.required]="options?.required"
8755
+ [class]="options?.fieldHtmlClass || ''"
8756
+ [disabled]="controlDisabled"
8757
+ [id]="'control' + layoutNode()?._id"
8758
+ [name]="controlName"
8759
+ [readonly]="options?.readonly ? 'readonly' : null"
8760
+ [type]="layoutNode()?.type"
8761
+ [value]="controlValue"
8762
+ (input)="updateValue($event)"
8763
+ [attributes]="inputAttributes"
8764
+ [appStopPropagation]="['mousedown', 'touchstart']"
8765
+ >
8766
+ }
8767
+ @if (options?.typeahead?.source) {
8768
+ <datalist
8769
+ [id]="'control' + layoutNode()?._id + 'Autocomplete'">
8770
+ @for (word of options?.typeahead?.source; track word) {
8771
+ <option [value]="word">
8772
+ }
8773
+ </datalist>
8774
+ }
8775
+ </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: ElementAttributeDirective, selector: "[attributes]", inputs: ["attributes"] }, { kind: "directive", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }] }); }
8713
8776
  }
8714
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: InputComponent, decorators: [{
8777
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: InputComponent, decorators: [{
8715
8778
  type: Component,
8716
8779
  args: [{
8717
8780
  // tslint:disable-next-line:component-selector
8718
8781
  selector: 'input-widget',
8719
- template: `
8720
- <div [class]="options?.htmlClass || ''" >
8721
- <label *ngIf="options?.title"
8722
- [attr.for]="'control' + layoutNode()?._id"
8723
- [class]="options?.labelHtmlClass || ''"
8724
- [style.display]="options?.notitle ? 'none' : ''"
8725
- [innerHTML]="options?.title"></label>
8726
- <input *ngIf="boundControl"
8727
- [formControl]="formControl"
8728
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8729
- [attr.list]="'control' + layoutNode()?._id + 'Autocomplete'"
8730
- [attr.maxlength]="options?.maxLength"
8731
- [attr.minlength]="options?.minLength"
8732
- [attr.pattern]="options?.pattern"
8733
- [attr.placeholder]="options?.placeholder"
8734
- [attr.required]="options?.required"
8735
- [class]="options?.fieldHtmlClass || ''"
8736
- [id]="'control' + layoutNode()?._id"
8737
- [name]="controlName"
8738
- [readonly]="options?.readonly ? 'readonly' : null"
8739
- [type]="layoutNode()?.type"
8740
- [attributes]="inputAttributes"
8741
- [appStopPropagation]="['mousedown', 'touchstart']"
8742
- >
8743
- <input *ngIf="!boundControl"
8744
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8745
- [attr.list]="'control' + layoutNode()?._id + 'Autocomplete'"
8746
- [attr.maxlength]="options?.maxLength"
8747
- [attr.minlength]="options?.minLength"
8748
- [attr.pattern]="options?.pattern"
8749
- [attr.placeholder]="options?.placeholder"
8750
- [attr.required]="options?.required"
8751
- [class]="options?.fieldHtmlClass || ''"
8752
- [disabled]="controlDisabled"
8753
- [id]="'control' + layoutNode()?._id"
8754
- [name]="controlName"
8755
- [readonly]="options?.readonly ? 'readonly' : null"
8756
- [type]="layoutNode()?.type"
8757
- [value]="controlValue"
8758
- (input)="updateValue($event)"
8759
- [attributes]="inputAttributes"
8760
- [appStopPropagation]="['mousedown', 'touchstart']"
8761
- >
8762
- <datalist *ngIf="options?.typeahead?.source"
8763
- [id]="'control' + layoutNode()?._id + 'Autocomplete'">
8764
- <option *ngFor="let word of options?.typeahead?.source" [value]="word">
8765
- </datalist>
8766
- </div>`,
8782
+ template: `
8783
+ <div [class]="options?.htmlClass || ''" >
8784
+ @if (options?.title) {
8785
+ <label
8786
+ [attr.for]="'control' + layoutNode()?._id"
8787
+ [class]="options?.labelHtmlClass || ''"
8788
+ [style.display]="options?.notitle ? 'none' : ''"
8789
+ [innerHTML]="options?.title"></label>
8790
+ }
8791
+ @if (boundControl) {
8792
+ <input
8793
+ [formControl]="formControl"
8794
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8795
+ [attr.list]="'control' + layoutNode()?._id + 'Autocomplete'"
8796
+ [attr.maxlength]="options?.maxLength"
8797
+ [attr.minlength]="options?.minLength"
8798
+ [attr.pattern]="options?.pattern"
8799
+ [attr.placeholder]="options?.placeholder"
8800
+ [attr.required]="options?.required"
8801
+ [class]="options?.fieldHtmlClass || ''"
8802
+ [id]="'control' + layoutNode()?._id"
8803
+ [name]="controlName"
8804
+ [readonly]="options?.readonly ? 'readonly' : null"
8805
+ [type]="layoutNode()?.type"
8806
+ [attributes]="inputAttributes"
8807
+ [appStopPropagation]="['mousedown', 'touchstart']"
8808
+ >
8809
+ }
8810
+ @if (!boundControl) {
8811
+ <input
8812
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8813
+ [attr.list]="'control' + layoutNode()?._id + 'Autocomplete'"
8814
+ [attr.maxlength]="options?.maxLength"
8815
+ [attr.minlength]="options?.minLength"
8816
+ [attr.pattern]="options?.pattern"
8817
+ [attr.placeholder]="options?.placeholder"
8818
+ [attr.required]="options?.required"
8819
+ [class]="options?.fieldHtmlClass || ''"
8820
+ [disabled]="controlDisabled"
8821
+ [id]="'control' + layoutNode()?._id"
8822
+ [name]="controlName"
8823
+ [readonly]="options?.readonly ? 'readonly' : null"
8824
+ [type]="layoutNode()?.type"
8825
+ [value]="controlValue"
8826
+ (input)="updateValue($event)"
8827
+ [attributes]="inputAttributes"
8828
+ [appStopPropagation]="['mousedown', 'touchstart']"
8829
+ >
8830
+ }
8831
+ @if (options?.typeahead?.source) {
8832
+ <datalist
8833
+ [id]="'control' + layoutNode()?._id + 'Autocomplete'">
8834
+ @for (word of options?.typeahead?.source; track word) {
8835
+ <option [value]="word">
8836
+ }
8837
+ </datalist>
8838
+ }
8839
+ </div>`,
8767
8840
  standalone: false
8768
8841
  }]
8769
8842
  }], propDecorators: { layoutNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutNode", required: false }] }], layoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutIndex", required: false }] }], dataIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataIndex", required: false }] }] } });
@@ -8789,10 +8862,10 @@ class ItemTitleComponent {
8789
8862
  ngOnDestroy() {
8790
8863
  this.dataChangesSubs?.unsubscribe();
8791
8864
  }
8792
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ItemTitleComponent, deps: [{ token: JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component }); }
8793
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.13", type: ItemTitleComponent, isStandalone: false, selector: "item-title", inputs: { item: "item", index: "index", ctx: "ctx" }, usesOnChanges: true, ngImport: i0, template: `<div>{{ title }}</div>`, isInline: true }); }
8865
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: ItemTitleComponent, deps: [{ token: JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component }); }
8866
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.2", type: ItemTitleComponent, isStandalone: false, selector: "item-title", inputs: { item: "item", index: "index", ctx: "ctx" }, usesOnChanges: true, ngImport: i0, template: `<div>{{ title }}</div>`, isInline: true }); }
8794
8867
  }
8795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: ItemTitleComponent, decorators: [{
8868
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: ItemTitleComponent, decorators: [{
8796
8869
  type: Component,
8797
8870
  args: [{
8798
8871
  selector: 'item-title',
@@ -8812,44 +8885,48 @@ class MessageComponent {
8812
8885
  constructor() {
8813
8886
  this.jsf = inject(JsonSchemaFormService);
8814
8887
  this.message = null;
8815
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8816
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8817
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8888
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8889
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8890
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8818
8891
  }
8819
8892
  ngOnInit() {
8820
8893
  this.options = this.layoutNode().options || {};
8821
8894
  this.message = this.options.help || this.options.helpvalue ||
8822
8895
  this.options.msg || this.options.message;
8823
8896
  }
8824
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8825
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: MessageComponent, isStandalone: false, selector: "message-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8826
- <span *ngIf="message"
8827
- [class]="options?.labelHtmlClass || ''"
8828
- [innerHTML]="message"></span>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
8897
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8898
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: MessageComponent, isStandalone: false, selector: "message-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
8899
+ @if (message) {
8900
+ <span
8901
+ [class]="options?.labelHtmlClass || ''"
8902
+ [innerHTML]="message"></span>
8903
+ }`, isInline: true }); }
8829
8904
  }
8830
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: MessageComponent, decorators: [{
8905
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: MessageComponent, decorators: [{
8831
8906
  type: Component,
8832
8907
  args: [{
8833
8908
  // tslint:disable-next-line:component-selector
8834
8909
  selector: 'message-widget',
8835
- template: `
8836
- <span *ngIf="message"
8837
- [class]="options?.labelHtmlClass || ''"
8838
- [innerHTML]="message"></span>`,
8910
+ template: `
8911
+ @if (message) {
8912
+ <span
8913
+ [class]="options?.labelHtmlClass || ''"
8914
+ [innerHTML]="message"></span>
8915
+ }`,
8839
8916
  standalone: false
8840
8917
  }]
8841
8918
  }], propDecorators: { layoutNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutNode", required: false }] }], layoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutIndex", required: false }] }], dataIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataIndex", required: false }] }] } });
8842
8919
 
8843
8920
  class NoneComponent {
8844
8921
  constructor() {
8845
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8846
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8847
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8922
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8923
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8924
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8848
8925
  }
8849
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NoneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8850
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: NoneComponent, isStandalone: false, selector: "none-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: ``, isInline: true }); }
8926
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NoneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8927
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.2", type: NoneComponent, isStandalone: false, selector: "none-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: ``, isInline: true }); }
8851
8928
  }
8852
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NoneComponent, decorators: [{
8929
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NoneComponent, decorators: [{
8853
8930
  type: Component,
8854
8931
  args: [{
8855
8932
  // tslint:disable-next-line:component-selector
@@ -8869,9 +8946,9 @@ class NumberComponent {
8869
8946
  this.allowDecimal = true;
8870
8947
  this.allowExponents = false;
8871
8948
  this.lastValidNumber = '';
8872
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
8873
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
8874
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
8949
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
8950
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
8951
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
8875
8952
  }
8876
8953
  //needed as templates don't accept something like [attributes]="options?.['x-inputAttributes']"
8877
8954
  get inputAttributes() {
@@ -8893,106 +8970,122 @@ class NumberComponent {
8893
8970
  this.jsf.updateValue(this, null);
8894
8971
  });
8895
8972
  }
8896
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8897
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: NumberComponent, isStandalone: false, selector: "number-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["inputControl"], descendants: true }, { propertyName: "div", first: true, predicate: ["divElt"], descendants: true }], ngImport: i0, template: `
8898
- <div #divElt [class]="options?.htmlClass || ''" >
8899
- <label *ngIf="options?.title"
8900
- [attr.for]="'control' + layoutNode()?._id"
8901
- [class]="options?.labelHtmlClass || ''"
8902
- [style.display]="options?.notitle ? 'none' : ''"
8903
- [innerHTML]="options?.title"></label>
8904
- <input #inputControl *ngIf="boundControl"
8905
- [formControl]="formControl"
8906
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8907
- [attr.max]="options?.maximum"
8908
- [attr.min]="options?.minimum"
8909
- [attr.placeholder]="options?.placeholder"
8910
- [attr.required]="options?.required"
8911
- [attr.readonly]="options?.readonly ? 'readonly' : null"
8912
- [attr.step]="options?.multipleOf || options?.step || 'any'"
8913
- [class]="options?.fieldHtmlClass || ''"
8914
- [id]="'control' + layoutNode()?._id"
8915
- [name]="controlName"
8916
- [readonly]="options?.readonly ? 'readonly' : null"
8917
- [title]="lastValidNumber"
8918
- [type]="layoutNode()?.type === 'range' ? 'range' : 'number'"
8919
- [attributes]="inputAttributes"
8920
- [appStopPropagation]="['mousedown', 'touchstart']"
8921
- >
8922
- <input #inputControl *ngIf="!boundControl"
8923
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8924
- [attr.max]="options?.maximum"
8925
- [attr.min]="options?.minimum"
8926
- [attr.placeholder]="options?.placeholder"
8927
- [attr.required]="options?.required"
8928
- [attr.readonly]="options?.readonly ? 'readonly' : null"
8929
- [attr.step]="options?.multipleOf || options?.step || 'any'"
8930
- [class]="options?.fieldHtmlClass || ''"
8931
- [disabled]="controlDisabled"
8932
- [id]="'control' + layoutNode()?._id"
8933
- [name]="controlName"
8934
- [readonly]="options?.readonly ? 'readonly' : null"
8935
- [title]="lastValidNumber"
8936
- [type]="layoutNode()?.type === 'range' ? 'range' : 'number'"
8937
- [value]="controlValue"
8938
- (input)="updateValue($event)"
8939
- [attributes]="inputAttributes"
8940
- [appStopPropagation]="['mousedown', 'touchstart']"
8941
- >
8942
- <span *ngIf="layoutNode()?.type === 'range'" [innerHTML]="controlValue"></span>
8943
- </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: ElementAttributeDirective, selector: "[attributes]", inputs: ["attributes"] }, { kind: "directive", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }] }); }
8973
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8974
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: NumberComponent, isStandalone: false, selector: "number-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["inputControl"], descendants: true }, { propertyName: "div", first: true, predicate: ["divElt"], descendants: true }], ngImport: i0, template: `
8975
+ <div #divElt [class]="options?.htmlClass || ''" >
8976
+ @if (options?.title) {
8977
+ <label
8978
+ [attr.for]="'control' + layoutNode()?._id"
8979
+ [class]="options?.labelHtmlClass || ''"
8980
+ [style.display]="options?.notitle ? 'none' : ''"
8981
+ [innerHTML]="options?.title"></label>
8982
+ }
8983
+ @if (boundControl) {
8984
+ <input #inputControl
8985
+ [formControl]="formControl"
8986
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8987
+ [attr.max]="options?.maximum"
8988
+ [attr.min]="options?.minimum"
8989
+ [attr.placeholder]="options?.placeholder"
8990
+ [attr.required]="options?.required"
8991
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
8992
+ [attr.step]="options?.multipleOf || options?.step || 'any'"
8993
+ [class]="options?.fieldHtmlClass || ''"
8994
+ [id]="'control' + layoutNode()?._id"
8995
+ [name]="controlName"
8996
+ [readonly]="options?.readonly ? 'readonly' : null"
8997
+ [title]="lastValidNumber"
8998
+ [type]="layoutNode()?.type === 'range' ? 'range' : 'number'"
8999
+ [attributes]="inputAttributes"
9000
+ [appStopPropagation]="['mousedown', 'touchstart']"
9001
+ >
9002
+ }
9003
+ @if (!boundControl) {
9004
+ <input #inputControl
9005
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9006
+ [attr.max]="options?.maximum"
9007
+ [attr.min]="options?.minimum"
9008
+ [attr.placeholder]="options?.placeholder"
9009
+ [attr.required]="options?.required"
9010
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
9011
+ [attr.step]="options?.multipleOf || options?.step || 'any'"
9012
+ [class]="options?.fieldHtmlClass || ''"
9013
+ [disabled]="controlDisabled"
9014
+ [id]="'control' + layoutNode()?._id"
9015
+ [name]="controlName"
9016
+ [readonly]="options?.readonly ? 'readonly' : null"
9017
+ [title]="lastValidNumber"
9018
+ [type]="layoutNode()?.type === 'range' ? 'range' : 'number'"
9019
+ [value]="controlValue"
9020
+ (input)="updateValue($event)"
9021
+ [attributes]="inputAttributes"
9022
+ [appStopPropagation]="['mousedown', 'touchstart']"
9023
+ >
9024
+ }
9025
+ @if (layoutNode()?.type === 'range') {
9026
+ <span [innerHTML]="controlValue"></span>
9027
+ }
9028
+ </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: ElementAttributeDirective, selector: "[attributes]", inputs: ["attributes"] }, { kind: "directive", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }] }); }
8944
9029
  }
8945
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NumberComponent, decorators: [{
9030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NumberComponent, decorators: [{
8946
9031
  type: Component,
8947
9032
  args: [{
8948
9033
  // tslint:disable-next-line:component-selector
8949
9034
  selector: 'number-widget',
8950
- template: `
8951
- <div #divElt [class]="options?.htmlClass || ''" >
8952
- <label *ngIf="options?.title"
8953
- [attr.for]="'control' + layoutNode()?._id"
8954
- [class]="options?.labelHtmlClass || ''"
8955
- [style.display]="options?.notitle ? 'none' : ''"
8956
- [innerHTML]="options?.title"></label>
8957
- <input #inputControl *ngIf="boundControl"
8958
- [formControl]="formControl"
8959
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8960
- [attr.max]="options?.maximum"
8961
- [attr.min]="options?.minimum"
8962
- [attr.placeholder]="options?.placeholder"
8963
- [attr.required]="options?.required"
8964
- [attr.readonly]="options?.readonly ? 'readonly' : null"
8965
- [attr.step]="options?.multipleOf || options?.step || 'any'"
8966
- [class]="options?.fieldHtmlClass || ''"
8967
- [id]="'control' + layoutNode()?._id"
8968
- [name]="controlName"
8969
- [readonly]="options?.readonly ? 'readonly' : null"
8970
- [title]="lastValidNumber"
8971
- [type]="layoutNode()?.type === 'range' ? 'range' : 'number'"
8972
- [attributes]="inputAttributes"
8973
- [appStopPropagation]="['mousedown', 'touchstart']"
8974
- >
8975
- <input #inputControl *ngIf="!boundControl"
8976
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
8977
- [attr.max]="options?.maximum"
8978
- [attr.min]="options?.minimum"
8979
- [attr.placeholder]="options?.placeholder"
8980
- [attr.required]="options?.required"
8981
- [attr.readonly]="options?.readonly ? 'readonly' : null"
8982
- [attr.step]="options?.multipleOf || options?.step || 'any'"
8983
- [class]="options?.fieldHtmlClass || ''"
8984
- [disabled]="controlDisabled"
8985
- [id]="'control' + layoutNode()?._id"
8986
- [name]="controlName"
8987
- [readonly]="options?.readonly ? 'readonly' : null"
8988
- [title]="lastValidNumber"
8989
- [type]="layoutNode()?.type === 'range' ? 'range' : 'number'"
8990
- [value]="controlValue"
8991
- (input)="updateValue($event)"
8992
- [attributes]="inputAttributes"
8993
- [appStopPropagation]="['mousedown', 'touchstart']"
8994
- >
8995
- <span *ngIf="layoutNode()?.type === 'range'" [innerHTML]="controlValue"></span>
9035
+ template: `
9036
+ <div #divElt [class]="options?.htmlClass || ''" >
9037
+ @if (options?.title) {
9038
+ <label
9039
+ [attr.for]="'control' + layoutNode()?._id"
9040
+ [class]="options?.labelHtmlClass || ''"
9041
+ [style.display]="options?.notitle ? 'none' : ''"
9042
+ [innerHTML]="options?.title"></label>
9043
+ }
9044
+ @if (boundControl) {
9045
+ <input #inputControl
9046
+ [formControl]="formControl"
9047
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9048
+ [attr.max]="options?.maximum"
9049
+ [attr.min]="options?.minimum"
9050
+ [attr.placeholder]="options?.placeholder"
9051
+ [attr.required]="options?.required"
9052
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
9053
+ [attr.step]="options?.multipleOf || options?.step || 'any'"
9054
+ [class]="options?.fieldHtmlClass || ''"
9055
+ [id]="'control' + layoutNode()?._id"
9056
+ [name]="controlName"
9057
+ [readonly]="options?.readonly ? 'readonly' : null"
9058
+ [title]="lastValidNumber"
9059
+ [type]="layoutNode()?.type === 'range' ? 'range' : 'number'"
9060
+ [attributes]="inputAttributes"
9061
+ [appStopPropagation]="['mousedown', 'touchstart']"
9062
+ >
9063
+ }
9064
+ @if (!boundControl) {
9065
+ <input #inputControl
9066
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9067
+ [attr.max]="options?.maximum"
9068
+ [attr.min]="options?.minimum"
9069
+ [attr.placeholder]="options?.placeholder"
9070
+ [attr.required]="options?.required"
9071
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
9072
+ [attr.step]="options?.multipleOf || options?.step || 'any'"
9073
+ [class]="options?.fieldHtmlClass || ''"
9074
+ [disabled]="controlDisabled"
9075
+ [id]="'control' + layoutNode()?._id"
9076
+ [name]="controlName"
9077
+ [readonly]="options?.readonly ? 'readonly' : null"
9078
+ [title]="lastValidNumber"
9079
+ [type]="layoutNode()?.type === 'range' ? 'range' : 'number'"
9080
+ [value]="controlValue"
9081
+ (input)="updateValue($event)"
9082
+ [attributes]="inputAttributes"
9083
+ [appStopPropagation]="['mousedown', 'touchstart']"
9084
+ >
9085
+ }
9086
+ @if (layoutNode()?.type === 'range') {
9087
+ <span [innerHTML]="controlValue"></span>
9088
+ }
8996
9089
  </div>`,
8997
9090
  standalone: false
8998
9091
  }]
@@ -9009,10 +9102,10 @@ class SelectFrameworkComponent {
9009
9102
  this.jsf = inject(JsonSchemaFormService);
9010
9103
  this.changeDetectorRef = inject(ChangeDetectorRef);
9011
9104
  this.newComponent = null;
9012
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
9013
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
9014
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
9015
- this.widgetContainer = viewChild('widgetContainer', ...(ngDevMode ? [{ debugName: "widgetContainer", read: ViewContainerRef }] : [{ read: ViewContainerRef }]));
9105
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
9106
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
9107
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
9108
+ this.widgetContainer = viewChild('widgetContainer', { ...(ngDevMode ? { debugName: "widgetContainer" } : {}), read: ViewContainerRef });
9016
9109
  }
9017
9110
  ngOnInit() {
9018
9111
  this.updateComponent();
@@ -9036,10 +9129,10 @@ class SelectFrameworkComponent {
9036
9129
  //this.changeDetectorRef.detectChanges();
9037
9130
  }
9038
9131
  }
9039
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SelectFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9040
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.13", type: SelectFrameworkComponent, isStandalone: false, selector: "select-framework-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: ["widgetContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `<div #widgetContainer></div>`, isInline: true }); }
9132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SelectFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.2", type: SelectFrameworkComponent, isStandalone: false, selector: "select-framework-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: ["widgetContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `<div #widgetContainer></div>`, isInline: true }); }
9041
9134
  }
9042
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SelectFrameworkComponent, decorators: [{
9135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SelectFrameworkComponent, decorators: [{
9043
9136
  type: Component,
9044
9137
  args: [{
9045
9138
  // tslint:disable-next-line:component-selector
@@ -9055,9 +9148,9 @@ class TabsComponent {
9055
9148
  this.cdr = inject(ChangeDetectorRef);
9056
9149
  this.selectedItem = 0;
9057
9150
  this.showAddTab = true;
9058
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
9059
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
9060
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
9151
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
9152
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
9153
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
9061
9154
  }
9062
9155
  ngOnInit() {
9063
9156
  this.options = this.layoutNode().options || {};
@@ -9100,114 +9193,132 @@ class TabsComponent {
9100
9193
  ngOnDestroy() {
9101
9194
  this.dataChangesSubs?.unsubscribe();
9102
9195
  }
9103
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: TabsComponent, isStandalone: false, selector: "tabs-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
9105
- <ul
9106
- [class]="options?.labelHtmlClass || ''">
9107
- <li *ngFor="let item of layoutNode()?.items; let i = index"
9196
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9197
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: TabsComponent, isStandalone: false, selector: "tabs-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
9198
+ <ul
9199
+ [class]="options?.labelHtmlClass || ''">
9200
+ @for (item of layoutNode()?.items; track item; let i = $index) {
9201
+ <li
9108
9202
  [class]="(options?.itemLabelHtmlClass || '') + (selectedItem === i ?
9109
9203
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
9110
9204
  (' ' + options?.style?.unselected))"
9111
- role="presentation"
9112
- data-tabs>
9113
- <a *ngIf="showAddTab || item.type !== '$ref'"
9205
+ role="presentation"
9206
+ data-tabs>
9207
+ @if (showAddTab || item.type !== '$ref') {
9208
+ <a
9114
9209
  [class]="'nav-link' + (selectedItem === i ? (' ' + options?.activeClass + ' ' + options?.style?.selected) :
9115
9210
  (' ' + options?.style?.unselected))"
9116
- (click)="select(i)">
9117
- <input type="radio" [value]="i" *ngIf="options?.tabMode=='oneOfMode'"
9118
- name="tabSelection"
9119
- [(ngModel)]="selectedItem"
9120
- [class]="(options?.widget_radioClass || '')"
9121
- [value]="i"
9122
- (change)="select(i)"
9123
- />
9124
- {{setTabTitle(item, i)}}
9125
- </a>
9126
-
9127
- </li>
9128
- </ul>
9129
-
9130
- <div *ngFor="let layoutItem of layoutNode()?.items; let i = index"
9131
- [class]="(options?.htmlClass || '') + (selectedItem != i?' ngf-hidden':'') ">
9132
- <!--for now the only difference between oneOfMode and the default
9133
- is that oneOfMode uses the *ngIf="selectedItem === i" clause, which automatically
9134
- destroys the tabs that are not rendered while default mode only hide them
9135
- the upshot is that only the active tabs value will be used
9136
- -->
9137
- <ng-container *ngIf="options?.tabMode=='oneOfMode'">
9138
- <select-framework-widget *ngIf="selectedItem === i"
9211
+ (click)="select(i)">
9212
+ @if (options?.tabMode=='oneOfMode') {
9213
+ <input type="radio" [value]="i"
9214
+ name="tabSelection"
9215
+ [(ngModel)]="selectedItem"
9216
+ [class]="(options?.widget_radioClass || '')"
9217
+ [value]="i"
9218
+ (change)="select(i)"
9219
+ />
9220
+ }
9221
+ {{setTabTitle(item, i)}}
9222
+ </a>
9223
+ }
9224
+ </li>
9225
+ }
9226
+ </ul>
9227
+
9228
+ @for (layoutItem of layoutNode()?.items; track layoutItem; let i = $index) {
9229
+ <div
9230
+ [class]="(options?.htmlClass || '') + (selectedItem != i?' ngf-hidden':'') ">
9231
+ <!--for now the only difference between oneOfMode and the default
9232
+ is that oneOfMode uses the *ngIf="selectedItem === i" clause, which automatically
9233
+ destroys the tabs that are not rendered while default mode only hide them
9234
+ the upshot is that only the active tabs value will be used
9235
+ -->
9236
+ @if (options?.tabMode=='oneOfMode') {
9237
+ @if (selectedItem === i) {
9238
+ <select-framework-widget
9139
9239
  [class]="(options?.fieldHtmlClass || '') +
9140
9240
  ' ' + (options?.activeClass || '') +
9141
9241
  ' ' + (options?.style?.selected || '')"
9142
- [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
9143
- [layoutIndex]="(layoutIndex() || []).concat(i)"
9144
- [layoutNode]="layoutItem"></select-framework-widget>
9145
- </ng-container>
9146
- <ng-container *ngIf="options?.tabMode !='oneOfMode'">
9147
- <select-framework-widget
9242
+ [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
9243
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
9244
+ [layoutNode]="layoutItem"></select-framework-widget>
9245
+ }
9246
+ }
9247
+ @if (options?.tabMode !='oneOfMode') {
9248
+ <select-framework-widget
9148
9249
  [class]="(options?.fieldHtmlClass || '') +
9149
9250
  ' ' + (options?.activeClass || '') +
9150
9251
  ' ' + (options?.style?.selected || '')"
9151
- [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
9152
- [layoutIndex]="(layoutIndex() || []).concat(i)"
9153
- [layoutNode]="layoutItem"></select-framework-widget>
9154
- </ng-container>
9155
- </div>`, isInline: true, styles: ["a{cursor:pointer}.ngf-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SelectFrameworkComponent, selector: "select-framework-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] }); }
9252
+ [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
9253
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
9254
+ [layoutNode]="layoutItem"></select-framework-widget>
9255
+ }
9256
+ </div>
9257
+ }`, isInline: true, styles: ["a{cursor:pointer}.ngf-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SelectFrameworkComponent, selector: "select-framework-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] }); }
9156
9258
  }
9157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TabsComponent, decorators: [{
9259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: TabsComponent, decorators: [{
9158
9260
  type: Component,
9159
- args: [{ selector: 'tabs-widget', template: `
9160
- <ul
9161
- [class]="options?.labelHtmlClass || ''">
9162
- <li *ngFor="let item of layoutNode()?.items; let i = index"
9261
+ args: [{ selector: 'tabs-widget', template: `
9262
+ <ul
9263
+ [class]="options?.labelHtmlClass || ''">
9264
+ @for (item of layoutNode()?.items; track item; let i = $index) {
9265
+ <li
9163
9266
  [class]="(options?.itemLabelHtmlClass || '') + (selectedItem === i ?
9164
9267
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
9165
9268
  (' ' + options?.style?.unselected))"
9166
- role="presentation"
9167
- data-tabs>
9168
- <a *ngIf="showAddTab || item.type !== '$ref'"
9269
+ role="presentation"
9270
+ data-tabs>
9271
+ @if (showAddTab || item.type !== '$ref') {
9272
+ <a
9169
9273
  [class]="'nav-link' + (selectedItem === i ? (' ' + options?.activeClass + ' ' + options?.style?.selected) :
9170
9274
  (' ' + options?.style?.unselected))"
9171
- (click)="select(i)">
9172
- <input type="radio" [value]="i" *ngIf="options?.tabMode=='oneOfMode'"
9173
- name="tabSelection"
9174
- [(ngModel)]="selectedItem"
9175
- [class]="(options?.widget_radioClass || '')"
9176
- [value]="i"
9177
- (change)="select(i)"
9178
- />
9179
- {{setTabTitle(item, i)}}
9180
- </a>
9181
-
9182
- </li>
9183
- </ul>
9184
-
9185
- <div *ngFor="let layoutItem of layoutNode()?.items; let i = index"
9186
- [class]="(options?.htmlClass || '') + (selectedItem != i?' ngf-hidden':'') ">
9187
- <!--for now the only difference between oneOfMode and the default
9188
- is that oneOfMode uses the *ngIf="selectedItem === i" clause, which automatically
9189
- destroys the tabs that are not rendered while default mode only hide them
9190
- the upshot is that only the active tabs value will be used
9191
- -->
9192
- <ng-container *ngIf="options?.tabMode=='oneOfMode'">
9193
- <select-framework-widget *ngIf="selectedItem === i"
9275
+ (click)="select(i)">
9276
+ @if (options?.tabMode=='oneOfMode') {
9277
+ <input type="radio" [value]="i"
9278
+ name="tabSelection"
9279
+ [(ngModel)]="selectedItem"
9280
+ [class]="(options?.widget_radioClass || '')"
9281
+ [value]="i"
9282
+ (change)="select(i)"
9283
+ />
9284
+ }
9285
+ {{setTabTitle(item, i)}}
9286
+ </a>
9287
+ }
9288
+ </li>
9289
+ }
9290
+ </ul>
9291
+
9292
+ @for (layoutItem of layoutNode()?.items; track layoutItem; let i = $index) {
9293
+ <div
9294
+ [class]="(options?.htmlClass || '') + (selectedItem != i?' ngf-hidden':'') ">
9295
+ <!--for now the only difference between oneOfMode and the default
9296
+ is that oneOfMode uses the *ngIf="selectedItem === i" clause, which automatically
9297
+ destroys the tabs that are not rendered while default mode only hide them
9298
+ the upshot is that only the active tabs value will be used
9299
+ -->
9300
+ @if (options?.tabMode=='oneOfMode') {
9301
+ @if (selectedItem === i) {
9302
+ <select-framework-widget
9194
9303
  [class]="(options?.fieldHtmlClass || '') +
9195
9304
  ' ' + (options?.activeClass || '') +
9196
9305
  ' ' + (options?.style?.selected || '')"
9197
- [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
9198
- [layoutIndex]="(layoutIndex() || []).concat(i)"
9199
- [layoutNode]="layoutItem"></select-framework-widget>
9200
- </ng-container>
9201
- <ng-container *ngIf="options?.tabMode !='oneOfMode'">
9202
- <select-framework-widget
9306
+ [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
9307
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
9308
+ [layoutNode]="layoutItem"></select-framework-widget>
9309
+ }
9310
+ }
9311
+ @if (options?.tabMode !='oneOfMode') {
9312
+ <select-framework-widget
9203
9313
  [class]="(options?.fieldHtmlClass || '') +
9204
9314
  ' ' + (options?.activeClass || '') +
9205
9315
  ' ' + (options?.style?.selected || '')"
9206
- [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
9207
- [layoutIndex]="(layoutIndex() || []).concat(i)"
9208
- [layoutNode]="layoutItem"></select-framework-widget>
9209
- </ng-container>
9210
- </div>`, standalone: false, styles: ["a{cursor:pointer}.ngf-hidden{display:none}\n"] }]
9316
+ [dataIndex]="layoutNode()?.dataType === 'array' ? (dataIndex() || []).concat(i) : dataIndex()"
9317
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
9318
+ [layoutNode]="layoutItem"></select-framework-widget>
9319
+ }
9320
+ </div>
9321
+ }`, standalone: false, styles: ["a{cursor:pointer}.ngf-hidden{display:none}\n"] }]
9211
9322
  }], propDecorators: { layoutNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutNode", required: false }] }], layoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutIndex", required: false }] }], dataIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataIndex", required: false }] }] } });
9212
9323
 
9213
9324
  // TODO: Add this control
@@ -9216,9 +9327,9 @@ class OneOfComponent {
9216
9327
  this.jsf = inject(JsonSchemaFormService);
9217
9328
  this.controlDisabled = false;
9218
9329
  this.boundControl = false;
9219
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
9220
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
9221
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
9330
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
9331
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
9332
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
9222
9333
  }
9223
9334
  ngOnInit() {
9224
9335
  this.options = this.layoutNode().options || {};
@@ -9299,14 +9410,14 @@ class OneOfComponent {
9299
9410
  ngOnDestroy() {
9300
9411
  //this.jsf.updateValue(this, null);
9301
9412
  }
9302
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: OneOfComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9303
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: OneOfComponent, isStandalone: false, selector: "one-of-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `<h4>{{this.options?.description}}</h4>
9413
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: OneOfComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9414
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.2", type: OneOfComponent, isStandalone: false, selector: "one-of-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `<h4>{{this.options?.description}}</h4>
9304
9415
  <tabs-widget #tabs [layoutNode]="layoutNode()"
9305
9416
  [layoutIndex]="layoutIndex()"
9306
9417
  [dataIndex]="dataIndex()" >
9307
9418
  </tabs-widget>`, isInline: true, dependencies: [{ kind: "component", type: TabsComponent, selector: "tabs-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] }); }
9308
9419
  }
9309
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: OneOfComponent, decorators: [{
9420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: OneOfComponent, decorators: [{
9310
9421
  type: Component,
9311
9422
  args: [{
9312
9423
  // tslint:disable-next-line:component-selector
@@ -9327,9 +9438,9 @@ class RadiosComponent {
9327
9438
  this.boundControl = false;
9328
9439
  this.layoutOrientation = 'vertical';
9329
9440
  this.radiosList = [];
9330
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
9331
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
9332
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
9441
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
9442
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
9443
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
9333
9444
  }
9334
9445
  ngOnInit() {
9335
9446
  this.options = this.layoutNode().options || {};
@@ -9347,125 +9458,145 @@ class RadiosComponent {
9347
9458
  ngOnDestroy() {
9348
9459
  this.jsf.updateValue(this, null);
9349
9460
  }
9350
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RadiosComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9351
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: RadiosComponent, isStandalone: false, selector: "radios-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
9352
- <label *ngIf="options?.title"
9353
- [attr.for]="'control' + layoutNode()?._id"
9354
- [class]="options?.labelHtmlClass || ''"
9355
- [style.display]="options?.notitle ? 'none' : ''"
9356
- [innerHTML]="options?.title"></label>
9357
-
9358
- <!-- 'horizontal' = radios-inline or radiobuttons -->
9359
- <div *ngIf="layoutOrientation === 'horizontal'"
9360
- [class]="options?.htmlClass || ''">
9361
- <label *ngFor="let radioItem of radiosList"
9362
- [attr.for]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9461
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: RadiosComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9462
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: RadiosComponent, isStandalone: false, selector: "radios-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
9463
+ @if (options?.title) {
9464
+ <label
9465
+ [attr.for]="'control' + layoutNode()?._id"
9466
+ [class]="options?.labelHtmlClass || ''"
9467
+ [style.display]="options?.notitle ? 'none' : ''"
9468
+ [innerHTML]="options?.title"></label>
9469
+ }
9470
+
9471
+ <!-- 'horizontal' = radios-inline or radiobuttons -->
9472
+ @if (layoutOrientation === 'horizontal') {
9473
+ <div
9474
+ [class]="options?.htmlClass || ''">
9475
+ @for (radioItem of radiosList; track radioItem) {
9476
+ <label
9477
+ [attr.for]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9363
9478
  [class]="(options?.itemLabelHtmlClass || '') +
9364
9479
  ((controlValue + '' === radioItem?.value + '') ?
9365
9480
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
9366
9481
  (' ' + (options?.style?.unselected || '')))">
9367
- <input type="radio"
9368
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9369
- [attr.readonly]="options?.readonly ? 'readonly' : null"
9370
- [attr.required]="options?.required"
9371
- [checked]="radioItem?.value === controlValue"
9372
- [class]="options?.fieldHtmlClass || ''"
9373
- [disabled]="controlDisabled"
9374
- [id]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9375
- [name]="controlName"
9376
- [value]="radioItem?.value"
9377
- (change)="updateValue($event)">
9378
- <span [innerHTML]="radioItem?.name"></span>
9379
- </label>
9380
- </div>
9381
-
9382
- <!-- 'vertical' = regular radios -->
9383
- <div *ngIf="layoutOrientation !== 'horizontal'">
9384
- <div *ngFor="let radioItem of radiosList"
9385
- [class]="options?.htmlClass || ''">
9386
- <label
9387
- [attr.for]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9482
+ <input type="radio"
9483
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9484
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
9485
+ [attr.required]="options?.required"
9486
+ [checked]="radioItem?.value === controlValue"
9487
+ [class]="options?.fieldHtmlClass || ''"
9488
+ [disabled]="controlDisabled"
9489
+ [id]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9490
+ [name]="controlName"
9491
+ [value]="radioItem?.value"
9492
+ (change)="updateValue($event)">
9493
+ <span [innerHTML]="radioItem?.name"></span>
9494
+ </label>
9495
+ }
9496
+ </div>
9497
+ }
9498
+
9499
+ <!-- 'vertical' = regular radios -->
9500
+ @if (layoutOrientation !== 'horizontal') {
9501
+ <div>
9502
+ @for (radioItem of radiosList; track radioItem) {
9503
+ <div
9504
+ [class]="options?.htmlClass || ''">
9505
+ <label
9506
+ [attr.for]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9388
9507
  [class]="(options?.itemLabelHtmlClass || '') +
9389
9508
  ((controlValue + '' === radioItem?.value + '') ?
9390
9509
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
9391
9510
  (' ' + (options?.style?.unselected || '')))">
9392
- <input type="radio"
9393
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9394
- [attr.readonly]="options?.readonly ? 'readonly' : null"
9395
- [attr.required]="options?.required"
9396
- [checked]="radioItem?.value === controlValue"
9397
- [class]="options?.fieldHtmlClass || ''"
9398
- [disabled]="controlDisabled"
9399
- [id]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9400
- [name]="controlName"
9401
- [value]="radioItem?.value"
9402
- (change)="updateValue($event)">
9403
- <span [innerHTML]="radioItem?.name"></span>
9404
- </label>
9405
- </div>
9406
- </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
9511
+ <input type="radio"
9512
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9513
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
9514
+ [attr.required]="options?.required"
9515
+ [checked]="radioItem?.value === controlValue"
9516
+ [class]="options?.fieldHtmlClass || ''"
9517
+ [disabled]="controlDisabled"
9518
+ [id]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9519
+ [name]="controlName"
9520
+ [value]="radioItem?.value"
9521
+ (change)="updateValue($event)">
9522
+ <span [innerHTML]="radioItem?.name"></span>
9523
+ </label>
9524
+ </div>
9525
+ }
9526
+ </div>
9527
+ }`, isInline: true }); }
9407
9528
  }
9408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RadiosComponent, decorators: [{
9529
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: RadiosComponent, decorators: [{
9409
9530
  type: Component,
9410
9531
  args: [{
9411
9532
  // tslint:disable-next-line:component-selector
9412
9533
  selector: 'radios-widget',
9413
- template: `
9414
- <label *ngIf="options?.title"
9415
- [attr.for]="'control' + layoutNode()?._id"
9416
- [class]="options?.labelHtmlClass || ''"
9417
- [style.display]="options?.notitle ? 'none' : ''"
9418
- [innerHTML]="options?.title"></label>
9419
-
9420
- <!-- 'horizontal' = radios-inline or radiobuttons -->
9421
- <div *ngIf="layoutOrientation === 'horizontal'"
9422
- [class]="options?.htmlClass || ''">
9423
- <label *ngFor="let radioItem of radiosList"
9424
- [attr.for]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9534
+ template: `
9535
+ @if (options?.title) {
9536
+ <label
9537
+ [attr.for]="'control' + layoutNode()?._id"
9538
+ [class]="options?.labelHtmlClass || ''"
9539
+ [style.display]="options?.notitle ? 'none' : ''"
9540
+ [innerHTML]="options?.title"></label>
9541
+ }
9542
+
9543
+ <!-- 'horizontal' = radios-inline or radiobuttons -->
9544
+ @if (layoutOrientation === 'horizontal') {
9545
+ <div
9546
+ [class]="options?.htmlClass || ''">
9547
+ @for (radioItem of radiosList; track radioItem) {
9548
+ <label
9549
+ [attr.for]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9425
9550
  [class]="(options?.itemLabelHtmlClass || '') +
9426
9551
  ((controlValue + '' === radioItem?.value + '') ?
9427
9552
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
9428
9553
  (' ' + (options?.style?.unselected || '')))">
9429
- <input type="radio"
9430
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9431
- [attr.readonly]="options?.readonly ? 'readonly' : null"
9432
- [attr.required]="options?.required"
9433
- [checked]="radioItem?.value === controlValue"
9434
- [class]="options?.fieldHtmlClass || ''"
9435
- [disabled]="controlDisabled"
9436
- [id]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9437
- [name]="controlName"
9438
- [value]="radioItem?.value"
9439
- (change)="updateValue($event)">
9440
- <span [innerHTML]="radioItem?.name"></span>
9441
- </label>
9442
- </div>
9443
-
9444
- <!-- 'vertical' = regular radios -->
9445
- <div *ngIf="layoutOrientation !== 'horizontal'">
9446
- <div *ngFor="let radioItem of radiosList"
9447
- [class]="options?.htmlClass || ''">
9448
- <label
9449
- [attr.for]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9554
+ <input type="radio"
9555
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9556
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
9557
+ [attr.required]="options?.required"
9558
+ [checked]="radioItem?.value === controlValue"
9559
+ [class]="options?.fieldHtmlClass || ''"
9560
+ [disabled]="controlDisabled"
9561
+ [id]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9562
+ [name]="controlName"
9563
+ [value]="radioItem?.value"
9564
+ (change)="updateValue($event)">
9565
+ <span [innerHTML]="radioItem?.name"></span>
9566
+ </label>
9567
+ }
9568
+ </div>
9569
+ }
9570
+
9571
+ <!-- 'vertical' = regular radios -->
9572
+ @if (layoutOrientation !== 'horizontal') {
9573
+ <div>
9574
+ @for (radioItem of radiosList; track radioItem) {
9575
+ <div
9576
+ [class]="options?.htmlClass || ''">
9577
+ <label
9578
+ [attr.for]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9450
9579
  [class]="(options?.itemLabelHtmlClass || '') +
9451
9580
  ((controlValue + '' === radioItem?.value + '') ?
9452
9581
  (' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')) :
9453
9582
  (' ' + (options?.style?.unselected || '')))">
9454
- <input type="radio"
9455
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9456
- [attr.readonly]="options?.readonly ? 'readonly' : null"
9457
- [attr.required]="options?.required"
9458
- [checked]="radioItem?.value === controlValue"
9459
- [class]="options?.fieldHtmlClass || ''"
9460
- [disabled]="controlDisabled"
9461
- [id]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9462
- [name]="controlName"
9463
- [value]="radioItem?.value"
9464
- (change)="updateValue($event)">
9465
- <span [innerHTML]="radioItem?.name"></span>
9466
- </label>
9467
- </div>
9468
- </div>`,
9583
+ <input type="radio"
9584
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9585
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
9586
+ [attr.required]="options?.required"
9587
+ [checked]="radioItem?.value === controlValue"
9588
+ [class]="options?.fieldHtmlClass || ''"
9589
+ [disabled]="controlDisabled"
9590
+ [id]="'control' + layoutNode()?._id + '/' + radioItem?.value"
9591
+ [name]="controlName"
9592
+ [value]="radioItem?.value"
9593
+ (change)="updateValue($event)">
9594
+ <span [innerHTML]="radioItem?.name"></span>
9595
+ </label>
9596
+ </div>
9597
+ }
9598
+ </div>
9599
+ }`,
9469
9600
  standalone: false
9470
9601
  }]
9471
9602
  }], propDecorators: { layoutNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutNode", required: false }] }], layoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutIndex", required: false }] }], dataIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataIndex", required: false }] }] } });
@@ -9474,12 +9605,12 @@ class RootComponent {
9474
9605
  constructor() {
9475
9606
  this.jsf = inject(JsonSchemaFormService);
9476
9607
  this.cdr = inject(ChangeDetectorRef);
9477
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
9478
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
9479
- this.layout = input(undefined, ...(ngDevMode ? [{ debugName: "layout" }] : []));
9480
- this.isOrderable = input(undefined, ...(ngDevMode ? [{ debugName: "isOrderable" }] : []));
9481
- this.isFlexItem = input(false, ...(ngDevMode ? [{ debugName: "isFlexItem" }] : []));
9482
- this.memoizationEnabled = input(true, ...(ngDevMode ? [{ debugName: "memoizationEnabled" }] : []));
9608
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
9609
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
9610
+ this.layout = input(undefined, { ...(ngDevMode ? { debugName: "layout" } : {}) });
9611
+ this.isOrderable = input(undefined, { ...(ngDevMode ? { debugName: "isOrderable" } : {}) });
9612
+ this.isFlexItem = input(false, { ...(ngDevMode ? { debugName: "isFlexItem" } : {}) });
9613
+ this.memoizationEnabled = input(true, { ...(ngDevMode ? { debugName: "memoizationEnabled" } : {}) });
9483
9614
  /**
9484
9615
  * Predicate function that disallows '$ref' item sorts
9485
9616
  * NB declared as a var instead of a function
@@ -9622,113 +9753,119 @@ class RootComponent {
9622
9753
  this._getSelectFrameworkInputsMemoized.cache.clear();
9623
9754
  this.dataChangesSubs?.unsubscribe();
9624
9755
  }
9625
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RootComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9626
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: RootComponent, isStandalone: false, selector: "root-widget", inputs: { dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, isOrderable: { classPropertyName: "isOrderable", publicName: "isOrderable", isSignal: true, isRequired: false, transformFunction: null }, isFlexItem: { classPropertyName: "isFlexItem", publicName: "isFlexItem", isSignal: true, isRequired: false, transformFunction: null }, memoizationEnabled: { classPropertyName: "memoizationEnabled", publicName: "memoizationEnabled", isSignal: true, isRequired: false, transformFunction: null } }, usesOnChanges: true, ngImport: i0, template: `
9627
- <div cdkDropList (cdkDropListDropped)="drop($event)"
9628
- [class.flex-inherit]="true"
9629
- [cdkDropListSortPredicate]="sortPredicate"
9630
- >
9631
- <!-- -for now left out
9632
- cdkDragHandle directive, by itself, does not disable the
9633
- default drag behavior of its parent cdkDrag element.
9634
- You must explicitly disable dragging on the main element
9635
- and re-enable it only when using the handle.
9636
- -->
9637
- <div *ngFor="let layoutItem of layout(); let i = index;"
9638
- cdkDrag [cdkDragStartDelay]="{touch:1000,mouse:0}"
9639
- [cdkDragDisabled]="!isDraggable(layoutItem)"
9640
- [class.form-flex-item]="isFlexItem()"
9641
- [style.align-self]="(layoutItem.options || {})['align-self']"
9642
- [style.flex-basis]="getFlexAttribute(layoutItem, 'flex-basis')"
9643
- [style.flex-grow]="getFlexAttribute(layoutItem, 'flex-grow')"
9644
- [style.flex-shrink]="getFlexAttribute(layoutItem, 'flex-shrink')"
9645
- [style.order]="(layoutItem.options || {}).order"
9646
- >
9647
-
9648
- <!-- workaround to disbale dragging of input fields -->
9649
- <!--
9650
- <div *ngIf="layoutItem?.dataType !='object'" cdkDragHandle>
9651
- <p>Drag Handle {{layoutItem?.dataType}}</p>
9652
- </div>
9653
- -->
9654
- <!--NB orderable directive is not used but has been left in for now and set to false
9655
- otherwise the compiler won't recognize dataIndex and other dependent attributes
9656
- -->
9657
- <!--
9658
- <div
9659
- [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
9660
- [layoutIndex]="(layoutIndex() || []).concat(i)"
9661
- [layoutNode]="layoutItem"
9662
- [orderable]="false"
9663
- >
9664
- <select-framework-widget *ngIf="showWidget(layoutItem)"
9665
- [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
9666
- [layoutIndex]="(layoutIndex() || []).concat(i)"
9667
- [layoutNode]="layoutItem"></select-framework-widget>
9668
- </div>
9669
- -->
9670
- <select-framework-widget *ngIf="showWidget(layoutItem)"
9671
- [dataIndex]="getSelectFrameworkInputs(layoutItem,i).dataIndex"
9672
- [layoutIndex]="getSelectFrameworkInputs(layoutItem,i).layoutIndex"
9673
- [layoutNode]="getSelectFrameworkInputs(layoutItem,i).layoutNode">
9674
- </select-framework-widget>
9675
- </div>
9676
- </div>
9677
- `, isInline: true, styles: ["[draggable=true]{transition:all .15s cubic-bezier(.4,0,.2,1)}[draggable=true]:hover{cursor:move;box-shadow:2px 2px 4px #0003;position:relative;z-index:10;margin:-1px 1px 1px -1px}[draggable=true].drag-target-top{box-shadow:0 -2px #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px #000;position:relative;z-index:20}.flex-inherit{display:inherit;flex-flow:inherit;flex-wrap:inherit;flex-direction:inherit;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: SelectFrameworkComponent, selector: "select-framework-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9756
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: RootComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9757
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: RootComponent, isStandalone: false, selector: "root-widget", inputs: { dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, isOrderable: { classPropertyName: "isOrderable", publicName: "isOrderable", isSignal: true, isRequired: false, transformFunction: null }, isFlexItem: { classPropertyName: "isFlexItem", publicName: "isFlexItem", isSignal: true, isRequired: false, transformFunction: null }, memoizationEnabled: { classPropertyName: "memoizationEnabled", publicName: "memoizationEnabled", isSignal: true, isRequired: false, transformFunction: null } }, usesOnChanges: true, ngImport: i0, template: `
9758
+ <div cdkDropList (cdkDropListDropped)="drop($event)"
9759
+ [class.flex-inherit]="true"
9760
+ [cdkDropListSortPredicate]="sortPredicate"
9761
+ >
9762
+ <!-- -for now left out
9763
+ cdkDragHandle directive, by itself, does not disable the
9764
+ default drag behavior of its parent cdkDrag element.
9765
+ You must explicitly disable dragging on the main element
9766
+ and re-enable it only when using the handle.
9767
+ -->
9768
+ @for (layoutItem of layout(); track layoutItem; let i = $index) {
9769
+ <div
9770
+ cdkDrag [cdkDragStartDelay]="{touch:1000,mouse:0}"
9771
+ [cdkDragDisabled]="!isDraggable(layoutItem)"
9772
+ [class.form-flex-item]="isFlexItem()"
9773
+ [style.align-self]="(layoutItem.options || {})['align-self']"
9774
+ [style.flex-basis]="getFlexAttribute(layoutItem, 'flex-basis')"
9775
+ [style.flex-grow]="getFlexAttribute(layoutItem, 'flex-grow')"
9776
+ [style.flex-shrink]="getFlexAttribute(layoutItem, 'flex-shrink')"
9777
+ [style.order]="(layoutItem.options || {}).order"
9778
+ >
9779
+ <!-- workaround to disbale dragging of input fields -->
9780
+ <!--
9781
+ <div *ngIf="layoutItem?.dataType !='object'" cdkDragHandle>
9782
+ <p>Drag Handle {{layoutItem?.dataType}}</p>
9783
+ </div>
9784
+ -->
9785
+ <!--NB orderable directive is not used but has been left in for now and set to false
9786
+ otherwise the compiler won't recognize dataIndex and other dependent attributes
9787
+ -->
9788
+ <!--
9789
+ <div
9790
+ [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
9791
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
9792
+ [layoutNode]="layoutItem"
9793
+ [orderable]="false"
9794
+ >
9795
+ <select-framework-widget *ngIf="showWidget(layoutItem)"
9796
+ [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
9797
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
9798
+ [layoutNode]="layoutItem"></select-framework-widget>
9799
+ </div>
9800
+ -->
9801
+ @if (showWidget(layoutItem)) {
9802
+ <select-framework-widget
9803
+ [dataIndex]="getSelectFrameworkInputs(layoutItem,i).dataIndex"
9804
+ [layoutIndex]="getSelectFrameworkInputs(layoutItem,i).layoutIndex"
9805
+ [layoutNode]="getSelectFrameworkInputs(layoutItem,i).layoutNode">
9806
+ </select-framework-widget>
9807
+ }
9808
+ </div>
9809
+ }
9810
+ </div>
9811
+ `, isInline: true, styles: ["[draggable=true]{transition:all .15s cubic-bezier(.4,0,.2,1)}[draggable=true]:hover{cursor:move;box-shadow:2px 2px 4px #0003;position:relative;z-index:10;margin:-1px 1px 1px -1px}[draggable=true].drag-target-top{box-shadow:0 -2px #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px #000;position:relative;z-index:20}.flex-inherit{display:inherit;flex-flow:inherit;flex-wrap:inherit;flex-direction:inherit;width:100%}\n"], dependencies: [{ kind: "directive", type: i1$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i1$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: SelectFrameworkComponent, selector: "select-framework-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9678
9812
  }
9679
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: RootComponent, decorators: [{
9813
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: RootComponent, decorators: [{
9680
9814
  type: Component,
9681
- args: [{ selector: 'root-widget', template: `
9682
- <div cdkDropList (cdkDropListDropped)="drop($event)"
9683
- [class.flex-inherit]="true"
9684
- [cdkDropListSortPredicate]="sortPredicate"
9685
- >
9686
- <!-- -for now left out
9687
- cdkDragHandle directive, by itself, does not disable the
9688
- default drag behavior of its parent cdkDrag element.
9689
- You must explicitly disable dragging on the main element
9690
- and re-enable it only when using the handle.
9691
- -->
9692
- <div *ngFor="let layoutItem of layout(); let i = index;"
9693
- cdkDrag [cdkDragStartDelay]="{touch:1000,mouse:0}"
9694
- [cdkDragDisabled]="!isDraggable(layoutItem)"
9695
- [class.form-flex-item]="isFlexItem()"
9696
- [style.align-self]="(layoutItem.options || {})['align-self']"
9697
- [style.flex-basis]="getFlexAttribute(layoutItem, 'flex-basis')"
9698
- [style.flex-grow]="getFlexAttribute(layoutItem, 'flex-grow')"
9699
- [style.flex-shrink]="getFlexAttribute(layoutItem, 'flex-shrink')"
9700
- [style.order]="(layoutItem.options || {}).order"
9701
- >
9702
-
9703
- <!-- workaround to disbale dragging of input fields -->
9704
- <!--
9705
- <div *ngIf="layoutItem?.dataType !='object'" cdkDragHandle>
9706
- <p>Drag Handle {{layoutItem?.dataType}}</p>
9707
- </div>
9708
- -->
9709
- <!--NB orderable directive is not used but has been left in for now and set to false
9710
- otherwise the compiler won't recognize dataIndex and other dependent attributes
9711
- -->
9712
- <!--
9713
- <div
9714
- [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
9715
- [layoutIndex]="(layoutIndex() || []).concat(i)"
9716
- [layoutNode]="layoutItem"
9717
- [orderable]="false"
9718
- >
9719
- <select-framework-widget *ngIf="showWidget(layoutItem)"
9720
- [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
9721
- [layoutIndex]="(layoutIndex() || []).concat(i)"
9722
- [layoutNode]="layoutItem"></select-framework-widget>
9723
- </div>
9724
- -->
9725
- <select-framework-widget *ngIf="showWidget(layoutItem)"
9726
- [dataIndex]="getSelectFrameworkInputs(layoutItem,i).dataIndex"
9727
- [layoutIndex]="getSelectFrameworkInputs(layoutItem,i).layoutIndex"
9728
- [layoutNode]="getSelectFrameworkInputs(layoutItem,i).layoutNode">
9729
- </select-framework-widget>
9730
- </div>
9731
- </div>
9815
+ args: [{ selector: 'root-widget', template: `
9816
+ <div cdkDropList (cdkDropListDropped)="drop($event)"
9817
+ [class.flex-inherit]="true"
9818
+ [cdkDropListSortPredicate]="sortPredicate"
9819
+ >
9820
+ <!-- -for now left out
9821
+ cdkDragHandle directive, by itself, does not disable the
9822
+ default drag behavior of its parent cdkDrag element.
9823
+ You must explicitly disable dragging on the main element
9824
+ and re-enable it only when using the handle.
9825
+ -->
9826
+ @for (layoutItem of layout(); track layoutItem; let i = $index) {
9827
+ <div
9828
+ cdkDrag [cdkDragStartDelay]="{touch:1000,mouse:0}"
9829
+ [cdkDragDisabled]="!isDraggable(layoutItem)"
9830
+ [class.form-flex-item]="isFlexItem()"
9831
+ [style.align-self]="(layoutItem.options || {})['align-self']"
9832
+ [style.flex-basis]="getFlexAttribute(layoutItem, 'flex-basis')"
9833
+ [style.flex-grow]="getFlexAttribute(layoutItem, 'flex-grow')"
9834
+ [style.flex-shrink]="getFlexAttribute(layoutItem, 'flex-shrink')"
9835
+ [style.order]="(layoutItem.options || {}).order"
9836
+ >
9837
+ <!-- workaround to disbale dragging of input fields -->
9838
+ <!--
9839
+ <div *ngIf="layoutItem?.dataType !='object'" cdkDragHandle>
9840
+ <p>Drag Handle {{layoutItem?.dataType}}</p>
9841
+ </div>
9842
+ -->
9843
+ <!--NB orderable directive is not used but has been left in for now and set to false
9844
+ otherwise the compiler won't recognize dataIndex and other dependent attributes
9845
+ -->
9846
+ <!--
9847
+ <div
9848
+ [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
9849
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
9850
+ [layoutNode]="layoutItem"
9851
+ [orderable]="false"
9852
+ >
9853
+ <select-framework-widget *ngIf="showWidget(layoutItem)"
9854
+ [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
9855
+ [layoutIndex]="(layoutIndex() || []).concat(i)"
9856
+ [layoutNode]="layoutItem"></select-framework-widget>
9857
+ </div>
9858
+ -->
9859
+ @if (showWidget(layoutItem)) {
9860
+ <select-framework-widget
9861
+ [dataIndex]="getSelectFrameworkInputs(layoutItem,i).dataIndex"
9862
+ [layoutIndex]="getSelectFrameworkInputs(layoutItem,i).layoutIndex"
9863
+ [layoutNode]="getSelectFrameworkInputs(layoutItem,i).layoutNode">
9864
+ </select-framework-widget>
9865
+ }
9866
+ </div>
9867
+ }
9868
+ </div>
9732
9869
  `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: ["[draggable=true]{transition:all .15s cubic-bezier(.4,0,.2,1)}[draggable=true]:hover{cursor:move;box-shadow:2px 2px 4px #0003;position:relative;z-index:10;margin:-1px 1px 1px -1px}[draggable=true].drag-target-top{box-shadow:0 -2px #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px #000;position:relative;z-index:20}.flex-inherit{display:inherit;flex-flow:inherit;flex-wrap:inherit;flex-direction:inherit;width:100%}\n"] }]
9733
9870
  }], propDecorators: { dataIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataIndex", required: false }] }], layoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutIndex", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], isOrderable: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOrderable", required: false }] }], isFlexItem: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFlexItem", required: false }] }], memoizationEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "memoizationEnabled", required: false }] }] } });
9734
9871
 
@@ -9736,9 +9873,9 @@ class SectionComponent {
9736
9873
  constructor() {
9737
9874
  this.jsf = inject(JsonSchemaFormService);
9738
9875
  this.expanded = true;
9739
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
9740
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
9741
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
9876
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
9877
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
9878
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
9742
9879
  }
9743
9880
  get sectionTitle() {
9744
9881
  return this.options.notitle ? null : this.jsf.setItemTitle(this);
@@ -9793,134 +9930,166 @@ class SectionComponent {
9793
9930
  return this.options[attribute];
9794
9931
  }
9795
9932
  }
9796
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9797
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: SectionComponent, isStandalone: false, selector: "section-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
9798
- <div *ngIf="containerType === 'div'"
9799
- [class]="options?.htmlClass || ''"
9800
- [class.expandable]="options?.expandable && !expanded"
9801
- [class.expanded]="options?.expandable && expanded">
9802
- <label *ngIf="sectionTitle"
9803
- class="legend"
9804
- [class]="options?.labelHtmlClass || ''"
9805
- [innerHTML]="sectionTitle"
9806
- (click)="toggleExpanded()"></label>
9807
- <root-widget
9808
- [dataIndex]="dataIndex()"
9809
- [layout]="layoutNode().items"
9810
- [layoutIndex]="layoutIndex()"
9811
- [isFlexItem]="getFlexAttribute('is-flex')"
9812
- [isOrderable]="options?.orderable"
9813
- [class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
9814
- [class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
9815
- [style.align-content]="getFlexAttribute('align-content')"
9816
- [style.align-items]="getFlexAttribute('align-items')"
9817
- [style.display]="!expanded?'none':getFlexAttribute('display')"
9818
- [style.flex-direction]="getFlexAttribute('flex-direction')"
9819
- [style.flex-wrap]="getFlexAttribute('flex-wrap')"
9820
- [style.justify-content]="getFlexAttribute('justify-content')"></root-widget>
9821
- </div>
9822
- <fieldset *ngIf="containerType === 'fieldset'"
9823
- [class]="options?.htmlClass || ''"
9824
- [class.expandable]="options?.expandable && !expanded"
9825
- [class.expanded]="options?.expandable && expanded"
9826
- [disabled]="options?.readonly">
9827
- <legend *ngIf="sectionTitle"
9828
- class="legend"
9829
- [class]="options?.labelHtmlClass || ''"
9830
- [innerHTML]="sectionTitle"
9831
- (click)="toggleExpanded()"></legend>
9832
- <div *ngIf="options?.messageLocation !== 'bottom'">
9833
- <p *ngIf="options?.description"
9834
- class="help-block"
9835
- [class]="options?.labelHelpBlockClass || ''"
9836
- [innerHTML]="options?.description"></p>
9837
- </div>
9838
- <root-widget
9839
- [dataIndex]="dataIndex()"
9840
- [layout]="layoutNode().items"
9841
- [layoutIndex]="layoutIndex()"
9842
- [isFlexItem]="getFlexAttribute('is-flex')"
9843
- [isOrderable]="options?.orderable"
9844
- [class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
9845
- [class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
9846
- [style.align-content]="getFlexAttribute('align-content')"
9847
- [style.align-items]="getFlexAttribute('align-items')"
9848
- [style.display]="!expanded?'none':getFlexAttribute('display')"
9849
- [style.flex-direction]="getFlexAttribute('flex-direction')"
9850
- [style.flex-wrap]="getFlexAttribute('flex-wrap')"
9851
- [style.justify-content]="getFlexAttribute('justify-content')"></root-widget>
9852
- <div *ngIf="options?.messageLocation === 'bottom'">
9853
- <p *ngIf="options?.description"
9854
- class="help-block"
9855
- [class]="options?.labelHelpBlockClass || ''"
9856
- [innerHTML]="options?.description"></p>
9857
- </div>
9858
- </fieldset>`, isInline: true, styles: [".legend{font-weight:700}.expandable>legend:before,.expandable>label:before{content:\"\\25b6\";padding-right:.3em;font-family:auto}.expanded>legend:before,.expanded>label:before{content:\"\\25bc\";padding-right:.2em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: RootComponent, selector: "root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isOrderable", "isFlexItem", "memoizationEnabled"] }] }); }
9933
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9934
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: SectionComponent, isStandalone: false, selector: "section-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
9935
+ @if (containerType === 'div') {
9936
+ <div
9937
+ [class]="options?.htmlClass || ''"
9938
+ [class.expandable]="options?.expandable && !expanded"
9939
+ [class.expanded]="options?.expandable && expanded">
9940
+ @if (sectionTitle) {
9941
+ <label
9942
+ class="legend"
9943
+ [class]="options?.labelHtmlClass || ''"
9944
+ [innerHTML]="sectionTitle"
9945
+ (click)="toggleExpanded()"></label>
9946
+ }
9947
+ <root-widget
9948
+ [dataIndex]="dataIndex()"
9949
+ [layout]="layoutNode().items"
9950
+ [layoutIndex]="layoutIndex()"
9951
+ [isFlexItem]="getFlexAttribute('is-flex')"
9952
+ [isOrderable]="options?.orderable"
9953
+ [class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
9954
+ [class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
9955
+ [style.align-content]="getFlexAttribute('align-content')"
9956
+ [style.align-items]="getFlexAttribute('align-items')"
9957
+ [style.display]="!expanded?'none':getFlexAttribute('display')"
9958
+ [style.flex-direction]="getFlexAttribute('flex-direction')"
9959
+ [style.flex-wrap]="getFlexAttribute('flex-wrap')"
9960
+ [style.justify-content]="getFlexAttribute('justify-content')"></root-widget>
9961
+ </div>
9962
+ }
9963
+ @if (containerType === 'fieldset') {
9964
+ <fieldset
9965
+ [class]="options?.htmlClass || ''"
9966
+ [class.expandable]="options?.expandable && !expanded"
9967
+ [class.expanded]="options?.expandable && expanded"
9968
+ [disabled]="options?.readonly">
9969
+ @if (sectionTitle) {
9970
+ <legend
9971
+ class="legend"
9972
+ [class]="options?.labelHtmlClass || ''"
9973
+ [innerHTML]="sectionTitle"
9974
+ (click)="toggleExpanded()"></legend>
9975
+ }
9976
+ @if (options?.messageLocation !== 'bottom') {
9977
+ <div>
9978
+ @if (options?.description) {
9979
+ <p
9980
+ class="help-block"
9981
+ [class]="options?.labelHelpBlockClass || ''"
9982
+ [innerHTML]="options?.description"></p>
9983
+ }
9984
+ </div>
9985
+ }
9986
+ <root-widget
9987
+ [dataIndex]="dataIndex()"
9988
+ [layout]="layoutNode().items"
9989
+ [layoutIndex]="layoutIndex()"
9990
+ [isFlexItem]="getFlexAttribute('is-flex')"
9991
+ [isOrderable]="options?.orderable"
9992
+ [class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
9993
+ [class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
9994
+ [style.align-content]="getFlexAttribute('align-content')"
9995
+ [style.align-items]="getFlexAttribute('align-items')"
9996
+ [style.display]="!expanded?'none':getFlexAttribute('display')"
9997
+ [style.flex-direction]="getFlexAttribute('flex-direction')"
9998
+ [style.flex-wrap]="getFlexAttribute('flex-wrap')"
9999
+ [style.justify-content]="getFlexAttribute('justify-content')"></root-widget>
10000
+ @if (options?.messageLocation === 'bottom') {
10001
+ <div>
10002
+ @if (options?.description) {
10003
+ <p
10004
+ class="help-block"
10005
+ [class]="options?.labelHelpBlockClass || ''"
10006
+ [innerHTML]="options?.description"></p>
10007
+ }
10008
+ </div>
10009
+ }
10010
+ </fieldset>
10011
+ }`, isInline: true, styles: [".legend{font-weight:700}.expandable>legend:before,.expandable>label:before{content:\"\\25b6\";padding-right:.3em;font-family:auto}.expanded>legend:before,.expanded>label:before{content:\"\\25bc\";padding-right:.2em}\n"], dependencies: [{ kind: "component", type: RootComponent, selector: "root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isOrderable", "isFlexItem", "memoizationEnabled"] }] }); }
9859
10012
  }
9860
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SectionComponent, decorators: [{
10013
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SectionComponent, decorators: [{
9861
10014
  type: Component,
9862
- args: [{ selector: 'section-widget', template: `
9863
- <div *ngIf="containerType === 'div'"
9864
- [class]="options?.htmlClass || ''"
9865
- [class.expandable]="options?.expandable && !expanded"
9866
- [class.expanded]="options?.expandable && expanded">
9867
- <label *ngIf="sectionTitle"
9868
- class="legend"
9869
- [class]="options?.labelHtmlClass || ''"
9870
- [innerHTML]="sectionTitle"
9871
- (click)="toggleExpanded()"></label>
9872
- <root-widget
9873
- [dataIndex]="dataIndex()"
9874
- [layout]="layoutNode().items"
9875
- [layoutIndex]="layoutIndex()"
9876
- [isFlexItem]="getFlexAttribute('is-flex')"
9877
- [isOrderable]="options?.orderable"
9878
- [class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
9879
- [class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
9880
- [style.align-content]="getFlexAttribute('align-content')"
9881
- [style.align-items]="getFlexAttribute('align-items')"
9882
- [style.display]="!expanded?'none':getFlexAttribute('display')"
9883
- [style.flex-direction]="getFlexAttribute('flex-direction')"
9884
- [style.flex-wrap]="getFlexAttribute('flex-wrap')"
9885
- [style.justify-content]="getFlexAttribute('justify-content')"></root-widget>
9886
- </div>
9887
- <fieldset *ngIf="containerType === 'fieldset'"
9888
- [class]="options?.htmlClass || ''"
9889
- [class.expandable]="options?.expandable && !expanded"
9890
- [class.expanded]="options?.expandable && expanded"
9891
- [disabled]="options?.readonly">
9892
- <legend *ngIf="sectionTitle"
9893
- class="legend"
9894
- [class]="options?.labelHtmlClass || ''"
9895
- [innerHTML]="sectionTitle"
9896
- (click)="toggleExpanded()"></legend>
9897
- <div *ngIf="options?.messageLocation !== 'bottom'">
9898
- <p *ngIf="options?.description"
9899
- class="help-block"
9900
- [class]="options?.labelHelpBlockClass || ''"
9901
- [innerHTML]="options?.description"></p>
9902
- </div>
9903
- <root-widget
9904
- [dataIndex]="dataIndex()"
9905
- [layout]="layoutNode().items"
9906
- [layoutIndex]="layoutIndex()"
9907
- [isFlexItem]="getFlexAttribute('is-flex')"
9908
- [isOrderable]="options?.orderable"
9909
- [class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
9910
- [class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
9911
- [style.align-content]="getFlexAttribute('align-content')"
9912
- [style.align-items]="getFlexAttribute('align-items')"
9913
- [style.display]="!expanded?'none':getFlexAttribute('display')"
9914
- [style.flex-direction]="getFlexAttribute('flex-direction')"
9915
- [style.flex-wrap]="getFlexAttribute('flex-wrap')"
9916
- [style.justify-content]="getFlexAttribute('justify-content')"></root-widget>
9917
- <div *ngIf="options?.messageLocation === 'bottom'">
9918
- <p *ngIf="options?.description"
9919
- class="help-block"
9920
- [class]="options?.labelHelpBlockClass || ''"
9921
- [innerHTML]="options?.description"></p>
9922
- </div>
9923
- </fieldset>`, standalone: false, styles: [".legend{font-weight:700}.expandable>legend:before,.expandable>label:before{content:\"\\25b6\";padding-right:.3em;font-family:auto}.expanded>legend:before,.expanded>label:before{content:\"\\25bc\";padding-right:.2em}\n"] }]
10015
+ args: [{ selector: 'section-widget', template: `
10016
+ @if (containerType === 'div') {
10017
+ <div
10018
+ [class]="options?.htmlClass || ''"
10019
+ [class.expandable]="options?.expandable && !expanded"
10020
+ [class.expanded]="options?.expandable && expanded">
10021
+ @if (sectionTitle) {
10022
+ <label
10023
+ class="legend"
10024
+ [class]="options?.labelHtmlClass || ''"
10025
+ [innerHTML]="sectionTitle"
10026
+ (click)="toggleExpanded()"></label>
10027
+ }
10028
+ <root-widget
10029
+ [dataIndex]="dataIndex()"
10030
+ [layout]="layoutNode().items"
10031
+ [layoutIndex]="layoutIndex()"
10032
+ [isFlexItem]="getFlexAttribute('is-flex')"
10033
+ [isOrderable]="options?.orderable"
10034
+ [class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
10035
+ [class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
10036
+ [style.align-content]="getFlexAttribute('align-content')"
10037
+ [style.align-items]="getFlexAttribute('align-items')"
10038
+ [style.display]="!expanded?'none':getFlexAttribute('display')"
10039
+ [style.flex-direction]="getFlexAttribute('flex-direction')"
10040
+ [style.flex-wrap]="getFlexAttribute('flex-wrap')"
10041
+ [style.justify-content]="getFlexAttribute('justify-content')"></root-widget>
10042
+ </div>
10043
+ }
10044
+ @if (containerType === 'fieldset') {
10045
+ <fieldset
10046
+ [class]="options?.htmlClass || ''"
10047
+ [class.expandable]="options?.expandable && !expanded"
10048
+ [class.expanded]="options?.expandable && expanded"
10049
+ [disabled]="options?.readonly">
10050
+ @if (sectionTitle) {
10051
+ <legend
10052
+ class="legend"
10053
+ [class]="options?.labelHtmlClass || ''"
10054
+ [innerHTML]="sectionTitle"
10055
+ (click)="toggleExpanded()"></legend>
10056
+ }
10057
+ @if (options?.messageLocation !== 'bottom') {
10058
+ <div>
10059
+ @if (options?.description) {
10060
+ <p
10061
+ class="help-block"
10062
+ [class]="options?.labelHelpBlockClass || ''"
10063
+ [innerHTML]="options?.description"></p>
10064
+ }
10065
+ </div>
10066
+ }
10067
+ <root-widget
10068
+ [dataIndex]="dataIndex()"
10069
+ [layout]="layoutNode().items"
10070
+ [layoutIndex]="layoutIndex()"
10071
+ [isFlexItem]="getFlexAttribute('is-flex')"
10072
+ [isOrderable]="options?.orderable"
10073
+ [class.form-flex-column]="getFlexAttribute('flex-direction') === 'column'"
10074
+ [class.form-flex-row]="getFlexAttribute('flex-direction') === 'row'"
10075
+ [style.align-content]="getFlexAttribute('align-content')"
10076
+ [style.align-items]="getFlexAttribute('align-items')"
10077
+ [style.display]="!expanded?'none':getFlexAttribute('display')"
10078
+ [style.flex-direction]="getFlexAttribute('flex-direction')"
10079
+ [style.flex-wrap]="getFlexAttribute('flex-wrap')"
10080
+ [style.justify-content]="getFlexAttribute('justify-content')"></root-widget>
10081
+ @if (options?.messageLocation === 'bottom') {
10082
+ <div>
10083
+ @if (options?.description) {
10084
+ <p
10085
+ class="help-block"
10086
+ [class]="options?.labelHelpBlockClass || ''"
10087
+ [innerHTML]="options?.description"></p>
10088
+ }
10089
+ </div>
10090
+ }
10091
+ </fieldset>
10092
+ }`, standalone: false, styles: [".legend{font-weight:700}.expandable>legend:before,.expandable>label:before{content:\"\\25b6\";padding-right:.3em;font-family:auto}.expanded>legend:before,.expanded>label:before{content:\"\\25bc\";padding-right:.2em}\n"] }]
9924
10093
  }], propDecorators: { layoutNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutNode", required: false }] }], layoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutIndex", required: false }] }], dataIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataIndex", required: false }] }] } });
9925
10094
 
9926
10095
  class SelectComponent {
@@ -9931,9 +10100,9 @@ class SelectComponent {
9931
10100
  this.selectList = [];
9932
10101
  this.selectListFlatGroup = [];
9933
10102
  this.isArray = isArray;
9934
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
9935
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
9936
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
10103
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
10104
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
10105
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
9937
10106
  }
9938
10107
  ngOnInit() {
9939
10108
  this.options = this.layoutNode().options || {};
@@ -9973,178 +10142,230 @@ class SelectComponent {
9973
10142
  this.formControl.reset(nullVal);
9974
10143
  this.controlValue = null;
9975
10144
  }
9976
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9977
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: SelectComponent, isStandalone: false, selector: "select-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
9978
- <div
9979
- [class]="options?.htmlClass || ''">
9980
- <label *ngIf="options?.title"
9981
- [attr.for]="'control' + layoutNode()?._id"
9982
- [class]="options?.labelHtmlClass || ''"
9983
- [style.display]="options?.notitle ? 'none' : ''"
9984
- [innerHTML]="options?.title"></label>
9985
- <select *ngIf="boundControl && !options?.multiple"
9986
- [formControl]="formControl"
9987
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
9988
- [attr.readonly]="options?.readonly ? 'readonly' : null"
9989
- [attr.required]="options?.required"
9990
- [class]="options?.fieldHtmlClass || ''"
9991
- [id]="'control' + layoutNode()?._id"
9992
- [name]="controlName">
9993
- <ng-template ngFor let-selectItem [ngForOf]="selectList">
9994
- <option *ngIf="!isArray(selectItem?.items)"
9995
- [ngValue]="selectItem?.value">
9996
- <span [innerHTML]="selectItem?.name"></span>
9997
- </option>
9998
- <optgroup *ngIf="isArray(selectItem?.items)"
9999
- [label]="selectItem?.group">
10000
- <option *ngFor="let subItem of selectItem.items"
10001
- [ngValue]="subItem?.value">
10002
- <span [innerHTML]="subItem?.name"></span>
10003
- </option>
10004
- </optgroup>
10005
- </ng-template>
10006
- </select>
10007
- <select *ngIf="!boundControl"
10008
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10009
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10010
- [attr.required]="options?.required"
10011
- [class]="options?.fieldHtmlClass || ''"
10012
- [disabled]="controlDisabled"
10013
- [id]="'control' + layoutNode()?._id"
10014
- [name]="controlName"
10015
- (change)="updateValue($event)">
10016
- <ng-template ngFor let-selectItem [ngForOf]="selectList">
10017
- <option *ngIf="!isArray(selectItem?.items)"
10018
- [selected]="selectItem?.value === controlValue"
10019
- [ngValue]="selectItem?.value">
10020
- <span [innerHTML]="selectItem?.name"></span>
10021
- </option>
10022
- <optgroup *ngIf="isArray(selectItem?.items)"
10023
- [label]="selectItem?.group">
10024
- <option *ngFor="let subItem of selectItem.items"
10025
- [attr.selected]="subItem?.value === controlValue"
10026
- [ngValue]="subItem?.value">
10027
- <span [innerHTML]="subItem?.name"></span>
10028
- </option>
10029
- </optgroup>
10030
- </ng-template>
10031
- </select>
10032
- <select *ngIf="boundControl && options?.multiple"
10033
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10034
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10035
- [attr.required]="options?.required"
10036
- [class]="options?.fieldHtmlClass || ''"
10037
- [disabled]="controlDisabled"
10038
- [id]="'control' + layoutNode()?._id"
10039
- [multiple]="options?.multiple"
10040
- [name]="controlName"
10041
- [(ngModel)]="controlValue"
10042
- (change)="updateValue($event)">
10043
- <ng-template ngFor let-selectItem [ngForOf]="selectList">
10044
- <option *ngIf="!isArray(selectItem?.items)"
10045
- [selected]="selectItem?.value === controlValue"
10046
- [ngValue]="selectItem?.value">
10047
- <span [innerHTML]="selectItem?.name"></span>
10048
- </option>
10049
- <optgroup *ngIf="isArray(selectItem?.items)"
10050
- [label]="selectItem?.group">
10051
- <option *ngFor="let subItem of selectItem.items"
10052
- [attr.selected]="subItem?.value === controlValue"
10053
- [ngValue]="subItem?.value">
10054
- <span [innerHTML]="subItem?.name"></span>
10055
- </option>
10056
- </optgroup>
10057
- </ng-template>
10058
- </select>
10059
- </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
10145
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10146
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: SelectComponent, isStandalone: false, selector: "select-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
10147
+ <div
10148
+ [class]="options?.htmlClass || ''">
10149
+ @if (options?.title) {
10150
+ <label
10151
+ [attr.for]="'control' + layoutNode()?._id"
10152
+ [class]="options?.labelHtmlClass || ''"
10153
+ [style.display]="options?.notitle ? 'none' : ''"
10154
+ [innerHTML]="options?.title"></label>
10155
+ }
10156
+ @if (boundControl && !options?.multiple) {
10157
+ <select
10158
+ [formControl]="formControl"
10159
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10160
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
10161
+ [attr.required]="options?.required"
10162
+ [class]="options?.fieldHtmlClass || ''"
10163
+ [id]="'control' + layoutNode()?._id"
10164
+ [name]="controlName">
10165
+ @for (selectItem of selectList; track selectItem) {
10166
+ @if (!isArray(selectItem?.items)) {
10167
+ <option
10168
+ [ngValue]="selectItem?.value">
10169
+ <span [innerHTML]="selectItem?.name"></span>
10170
+ </option>
10171
+ }
10172
+ @if (isArray(selectItem?.items)) {
10173
+ <optgroup
10174
+ [label]="selectItem?.group">
10175
+ @for (subItem of selectItem.items; track subItem) {
10176
+ <option
10177
+ [ngValue]="subItem?.value">
10178
+ <span [innerHTML]="subItem?.name"></span>
10179
+ </option>
10180
+ }
10181
+ </optgroup>
10182
+ }
10183
+ }
10184
+ </select>
10185
+ }
10186
+ @if (!boundControl) {
10187
+ <select
10188
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10189
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
10190
+ [attr.required]="options?.required"
10191
+ [class]="options?.fieldHtmlClass || ''"
10192
+ [disabled]="controlDisabled"
10193
+ [id]="'control' + layoutNode()?._id"
10194
+ [name]="controlName"
10195
+ (change)="updateValue($event)">
10196
+ @for (selectItem of selectList; track selectItem) {
10197
+ @if (!isArray(selectItem?.items)) {
10198
+ <option
10199
+ [selected]="selectItem?.value === controlValue"
10200
+ [ngValue]="selectItem?.value">
10201
+ <span [innerHTML]="selectItem?.name"></span>
10202
+ </option>
10203
+ }
10204
+ @if (isArray(selectItem?.items)) {
10205
+ <optgroup
10206
+ [label]="selectItem?.group">
10207
+ @for (subItem of selectItem.items; track subItem) {
10208
+ <option
10209
+ [attr.selected]="subItem?.value === controlValue"
10210
+ [ngValue]="subItem?.value">
10211
+ <span [innerHTML]="subItem?.name"></span>
10212
+ </option>
10213
+ }
10214
+ </optgroup>
10215
+ }
10216
+ }
10217
+ </select>
10218
+ }
10219
+ @if (boundControl && options?.multiple) {
10220
+ <select
10221
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10222
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
10223
+ [attr.required]="options?.required"
10224
+ [class]="options?.fieldHtmlClass || ''"
10225
+ [disabled]="controlDisabled"
10226
+ [id]="'control' + layoutNode()?._id"
10227
+ [multiple]="options?.multiple"
10228
+ [name]="controlName"
10229
+ [(ngModel)]="controlValue"
10230
+ (change)="updateValue($event)">
10231
+ @for (selectItem of selectList; track selectItem) {
10232
+ @if (!isArray(selectItem?.items)) {
10233
+ <option
10234
+ [selected]="selectItem?.value === controlValue"
10235
+ [ngValue]="selectItem?.value">
10236
+ <span [innerHTML]="selectItem?.name"></span>
10237
+ </option>
10238
+ }
10239
+ @if (isArray(selectItem?.items)) {
10240
+ <optgroup
10241
+ [label]="selectItem?.group">
10242
+ @for (subItem of selectItem.items; track subItem) {
10243
+ <option
10244
+ [attr.selected]="subItem?.value === controlValue"
10245
+ [ngValue]="subItem?.value">
10246
+ <span [innerHTML]="subItem?.name"></span>
10247
+ </option>
10248
+ }
10249
+ </optgroup>
10250
+ }
10251
+ }
10252
+ </select>
10253
+ }
10254
+ </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
10060
10255
  }
10061
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SelectComponent, decorators: [{
10256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SelectComponent, decorators: [{
10062
10257
  type: Component,
10063
10258
  args: [{
10064
10259
  // tslint:disable-next-line:component-selector
10065
10260
  selector: 'select-widget',
10066
- template: `
10067
- <div
10068
- [class]="options?.htmlClass || ''">
10069
- <label *ngIf="options?.title"
10070
- [attr.for]="'control' + layoutNode()?._id"
10071
- [class]="options?.labelHtmlClass || ''"
10072
- [style.display]="options?.notitle ? 'none' : ''"
10073
- [innerHTML]="options?.title"></label>
10074
- <select *ngIf="boundControl && !options?.multiple"
10075
- [formControl]="formControl"
10076
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10077
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10078
- [attr.required]="options?.required"
10079
- [class]="options?.fieldHtmlClass || ''"
10080
- [id]="'control' + layoutNode()?._id"
10081
- [name]="controlName">
10082
- <ng-template ngFor let-selectItem [ngForOf]="selectList">
10083
- <option *ngIf="!isArray(selectItem?.items)"
10084
- [ngValue]="selectItem?.value">
10085
- <span [innerHTML]="selectItem?.name"></span>
10086
- </option>
10087
- <optgroup *ngIf="isArray(selectItem?.items)"
10088
- [label]="selectItem?.group">
10089
- <option *ngFor="let subItem of selectItem.items"
10090
- [ngValue]="subItem?.value">
10091
- <span [innerHTML]="subItem?.name"></span>
10092
- </option>
10093
- </optgroup>
10094
- </ng-template>
10095
- </select>
10096
- <select *ngIf="!boundControl"
10097
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10098
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10099
- [attr.required]="options?.required"
10100
- [class]="options?.fieldHtmlClass || ''"
10101
- [disabled]="controlDisabled"
10102
- [id]="'control' + layoutNode()?._id"
10103
- [name]="controlName"
10104
- (change)="updateValue($event)">
10105
- <ng-template ngFor let-selectItem [ngForOf]="selectList">
10106
- <option *ngIf="!isArray(selectItem?.items)"
10107
- [selected]="selectItem?.value === controlValue"
10108
- [ngValue]="selectItem?.value">
10109
- <span [innerHTML]="selectItem?.name"></span>
10110
- </option>
10111
- <optgroup *ngIf="isArray(selectItem?.items)"
10112
- [label]="selectItem?.group">
10113
- <option *ngFor="let subItem of selectItem.items"
10114
- [attr.selected]="subItem?.value === controlValue"
10115
- [ngValue]="subItem?.value">
10116
- <span [innerHTML]="subItem?.name"></span>
10117
- </option>
10118
- </optgroup>
10119
- </ng-template>
10120
- </select>
10121
- <select *ngIf="boundControl && options?.multiple"
10122
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10123
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10124
- [attr.required]="options?.required"
10125
- [class]="options?.fieldHtmlClass || ''"
10126
- [disabled]="controlDisabled"
10127
- [id]="'control' + layoutNode()?._id"
10128
- [multiple]="options?.multiple"
10129
- [name]="controlName"
10130
- [(ngModel)]="controlValue"
10131
- (change)="updateValue($event)">
10132
- <ng-template ngFor let-selectItem [ngForOf]="selectList">
10133
- <option *ngIf="!isArray(selectItem?.items)"
10134
- [selected]="selectItem?.value === controlValue"
10135
- [ngValue]="selectItem?.value">
10136
- <span [innerHTML]="selectItem?.name"></span>
10137
- </option>
10138
- <optgroup *ngIf="isArray(selectItem?.items)"
10139
- [label]="selectItem?.group">
10140
- <option *ngFor="let subItem of selectItem.items"
10141
- [attr.selected]="subItem?.value === controlValue"
10142
- [ngValue]="subItem?.value">
10143
- <span [innerHTML]="subItem?.name"></span>
10144
- </option>
10145
- </optgroup>
10146
- </ng-template>
10147
- </select>
10261
+ template: `
10262
+ <div
10263
+ [class]="options?.htmlClass || ''">
10264
+ @if (options?.title) {
10265
+ <label
10266
+ [attr.for]="'control' + layoutNode()?._id"
10267
+ [class]="options?.labelHtmlClass || ''"
10268
+ [style.display]="options?.notitle ? 'none' : ''"
10269
+ [innerHTML]="options?.title"></label>
10270
+ }
10271
+ @if (boundControl && !options?.multiple) {
10272
+ <select
10273
+ [formControl]="formControl"
10274
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10275
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
10276
+ [attr.required]="options?.required"
10277
+ [class]="options?.fieldHtmlClass || ''"
10278
+ [id]="'control' + layoutNode()?._id"
10279
+ [name]="controlName">
10280
+ @for (selectItem of selectList; track selectItem) {
10281
+ @if (!isArray(selectItem?.items)) {
10282
+ <option
10283
+ [ngValue]="selectItem?.value">
10284
+ <span [innerHTML]="selectItem?.name"></span>
10285
+ </option>
10286
+ }
10287
+ @if (isArray(selectItem?.items)) {
10288
+ <optgroup
10289
+ [label]="selectItem?.group">
10290
+ @for (subItem of selectItem.items; track subItem) {
10291
+ <option
10292
+ [ngValue]="subItem?.value">
10293
+ <span [innerHTML]="subItem?.name"></span>
10294
+ </option>
10295
+ }
10296
+ </optgroup>
10297
+ }
10298
+ }
10299
+ </select>
10300
+ }
10301
+ @if (!boundControl) {
10302
+ <select
10303
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10304
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
10305
+ [attr.required]="options?.required"
10306
+ [class]="options?.fieldHtmlClass || ''"
10307
+ [disabled]="controlDisabled"
10308
+ [id]="'control' + layoutNode()?._id"
10309
+ [name]="controlName"
10310
+ (change)="updateValue($event)">
10311
+ @for (selectItem of selectList; track selectItem) {
10312
+ @if (!isArray(selectItem?.items)) {
10313
+ <option
10314
+ [selected]="selectItem?.value === controlValue"
10315
+ [ngValue]="selectItem?.value">
10316
+ <span [innerHTML]="selectItem?.name"></span>
10317
+ </option>
10318
+ }
10319
+ @if (isArray(selectItem?.items)) {
10320
+ <optgroup
10321
+ [label]="selectItem?.group">
10322
+ @for (subItem of selectItem.items; track subItem) {
10323
+ <option
10324
+ [attr.selected]="subItem?.value === controlValue"
10325
+ [ngValue]="subItem?.value">
10326
+ <span [innerHTML]="subItem?.name"></span>
10327
+ </option>
10328
+ }
10329
+ </optgroup>
10330
+ }
10331
+ }
10332
+ </select>
10333
+ }
10334
+ @if (boundControl && options?.multiple) {
10335
+ <select
10336
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10337
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
10338
+ [attr.required]="options?.required"
10339
+ [class]="options?.fieldHtmlClass || ''"
10340
+ [disabled]="controlDisabled"
10341
+ [id]="'control' + layoutNode()?._id"
10342
+ [multiple]="options?.multiple"
10343
+ [name]="controlName"
10344
+ [(ngModel)]="controlValue"
10345
+ (change)="updateValue($event)">
10346
+ @for (selectItem of selectList; track selectItem) {
10347
+ @if (!isArray(selectItem?.items)) {
10348
+ <option
10349
+ [selected]="selectItem?.value === controlValue"
10350
+ [ngValue]="selectItem?.value">
10351
+ <span [innerHTML]="selectItem?.name"></span>
10352
+ </option>
10353
+ }
10354
+ @if (isArray(selectItem?.items)) {
10355
+ <optgroup
10356
+ [label]="selectItem?.group">
10357
+ @for (subItem of selectItem.items; track subItem) {
10358
+ <option
10359
+ [attr.selected]="subItem?.value === controlValue"
10360
+ [ngValue]="subItem?.value">
10361
+ <span [innerHTML]="subItem?.name"></span>
10362
+ </option>
10363
+ }
10364
+ </optgroup>
10365
+ }
10366
+ }
10367
+ </select>
10368
+ }
10148
10369
  </div>`,
10149
10370
  standalone: false
10150
10371
  }]
@@ -10155,9 +10376,9 @@ class SubmitComponent {
10155
10376
  this.jsf = inject(JsonSchemaFormService);
10156
10377
  this.controlDisabled = false;
10157
10378
  this.boundControl = false;
10158
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
10159
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
10160
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
10379
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
10380
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
10381
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
10161
10382
  }
10162
10383
  ngOnDestroy() {
10163
10384
  this.isValidChangesSubs?.unsubscribe();
@@ -10186,8 +10407,8 @@ class SubmitComponent {
10186
10407
  this.jsf.updateValue(this, event.target.value);
10187
10408
  }
10188
10409
  }
10189
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SubmitComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10190
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: SubmitComponent, isStandalone: false, selector: "submit-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
10410
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SubmitComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10411
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.2", type: SubmitComponent, isStandalone: false, selector: "submit-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
10191
10412
  <div
10192
10413
  [class]="options?.htmlClass || ''">
10193
10414
  <input
@@ -10205,7 +10426,7 @@ class SubmitComponent {
10205
10426
  >
10206
10427
  </div>`, isInline: true, dependencies: [{ kind: "directive", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }] }); }
10207
10428
  }
10208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SubmitComponent, decorators: [{
10429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SubmitComponent, decorators: [{
10209
10430
  type: Component,
10210
10431
  args: [{
10211
10432
  // tslint:disable-next-line:component-selector
@@ -10235,10 +10456,10 @@ class TemplateComponent {
10235
10456
  constructor() {
10236
10457
  this.jsf = inject(JsonSchemaFormService);
10237
10458
  this.newComponent = null;
10238
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
10239
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
10240
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
10241
- this.widgetContainer = viewChild('widgetContainer', ...(ngDevMode ? [{ debugName: "widgetContainer", read: ViewContainerRef }] : [{ read: ViewContainerRef }]));
10459
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
10460
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
10461
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
10462
+ this.widgetContainer = viewChild('widgetContainer', { ...(ngDevMode ? { debugName: "widgetContainer" } : {}), read: ViewContainerRef });
10242
10463
  }
10243
10464
  ngOnInit() {
10244
10465
  this.updateComponent();
@@ -10258,10 +10479,10 @@ class TemplateComponent {
10258
10479
  }
10259
10480
  }
10260
10481
  }
10261
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10262
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.13", type: TemplateComponent, isStandalone: false, selector: "template-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: ["widgetContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `<div #widgetContainer></div>`, isInline: true }); }
10482
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: TemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10483
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.2", type: TemplateComponent, isStandalone: false, selector: "template-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: ["widgetContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `<div #widgetContainer></div>`, isInline: true }); }
10263
10484
  }
10264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TemplateComponent, decorators: [{
10485
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: TemplateComponent, decorators: [{
10265
10486
  type: Component,
10266
10487
  args: [{
10267
10488
  // tslint:disable-next-line:component-selector
@@ -10276,9 +10497,9 @@ class TextareaComponent {
10276
10497
  this.jsf = inject(JsonSchemaFormService);
10277
10498
  this.controlDisabled = false;
10278
10499
  this.boundControl = false;
10279
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
10280
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
10281
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
10500
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
10501
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
10502
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
10282
10503
  }
10283
10504
  ngOnInit() {
10284
10505
  this.options = this.layoutNode().options || {};
@@ -10293,82 +10514,94 @@ class TextareaComponent {
10293
10514
  this.jsf.updateValue(this, null);
10294
10515
  });
10295
10516
  }
10296
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10297
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: TextareaComponent, isStandalone: false, selector: "textarea-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
10298
- <div
10299
- [class]="options?.htmlClass || ''">
10300
- <label *ngIf="options?.title"
10301
- [attr.for]="'control' + layoutNode()?._id"
10302
- [class]="options?.labelHtmlClass || ''"
10303
- [style.display]="options?.notitle ? 'none' : ''"
10304
- [innerHTML]="options?.title"></label>
10305
- <textarea *ngIf="boundControl"
10306
- [formControl]="formControl"
10307
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10308
- [attr.maxlength]="options?.maxLength"
10309
- [attr.minlength]="options?.minLength"
10310
- [attr.pattern]="options?.pattern"
10311
- [attr.placeholder]="options?.placeholder"
10312
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10313
- [attr.required]="options?.required"
10314
- [class]="options?.fieldHtmlClass || ''"
10315
- [id]="'control' + layoutNode()?._id"
10316
- [name]="controlName"></textarea>
10317
- <textarea *ngIf="!boundControl"
10318
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10319
- [attr.maxlength]="options?.maxLength"
10320
- [attr.minlength]="options?.minLength"
10321
- [attr.pattern]="options?.pattern"
10322
- [attr.placeholder]="options?.placeholder"
10323
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10324
- [attr.required]="options?.required"
10325
- [class]="options?.fieldHtmlClass || ''"
10326
- [disabled]="controlDisabled"
10327
- [id]="'control' + layoutNode()?._id"
10328
- [name]="controlName"
10329
- [value]="controlValue"
10330
- (input)="updateValue($event)">{{controlValue}}</textarea>
10331
- </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
10517
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10518
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: TextareaComponent, isStandalone: false, selector: "textarea-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
10519
+ <div
10520
+ [class]="options?.htmlClass || ''">
10521
+ @if (options?.title) {
10522
+ <label
10523
+ [attr.for]="'control' + layoutNode()?._id"
10524
+ [class]="options?.labelHtmlClass || ''"
10525
+ [style.display]="options?.notitle ? 'none' : ''"
10526
+ [innerHTML]="options?.title"></label>
10527
+ }
10528
+ @if (boundControl) {
10529
+ <textarea
10530
+ [formControl]="formControl"
10531
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10532
+ [attr.maxlength]="options?.maxLength"
10533
+ [attr.minlength]="options?.minLength"
10534
+ [attr.pattern]="options?.pattern"
10535
+ [attr.placeholder]="options?.placeholder"
10536
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
10537
+ [attr.required]="options?.required"
10538
+ [class]="options?.fieldHtmlClass || ''"
10539
+ [id]="'control' + layoutNode()?._id"
10540
+ [name]="controlName"></textarea>
10541
+ }
10542
+ @if (!boundControl) {
10543
+ <textarea
10544
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10545
+ [attr.maxlength]="options?.maxLength"
10546
+ [attr.minlength]="options?.minLength"
10547
+ [attr.pattern]="options?.pattern"
10548
+ [attr.placeholder]="options?.placeholder"
10549
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
10550
+ [attr.required]="options?.required"
10551
+ [class]="options?.fieldHtmlClass || ''"
10552
+ [disabled]="controlDisabled"
10553
+ [id]="'control' + layoutNode()?._id"
10554
+ [name]="controlName"
10555
+ [value]="controlValue"
10556
+ (input)="updateValue($event)">{{controlValue}}</textarea>
10557
+ }
10558
+ </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
10332
10559
  }
10333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TextareaComponent, decorators: [{
10560
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: TextareaComponent, decorators: [{
10334
10561
  type: Component,
10335
10562
  args: [{
10336
10563
  // tslint:disable-next-line:component-selector
10337
10564
  selector: 'textarea-widget',
10338
- template: `
10339
- <div
10340
- [class]="options?.htmlClass || ''">
10341
- <label *ngIf="options?.title"
10342
- [attr.for]="'control' + layoutNode()?._id"
10343
- [class]="options?.labelHtmlClass || ''"
10344
- [style.display]="options?.notitle ? 'none' : ''"
10345
- [innerHTML]="options?.title"></label>
10346
- <textarea *ngIf="boundControl"
10347
- [formControl]="formControl"
10348
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10349
- [attr.maxlength]="options?.maxLength"
10350
- [attr.minlength]="options?.minLength"
10351
- [attr.pattern]="options?.pattern"
10352
- [attr.placeholder]="options?.placeholder"
10353
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10354
- [attr.required]="options?.required"
10355
- [class]="options?.fieldHtmlClass || ''"
10356
- [id]="'control' + layoutNode()?._id"
10357
- [name]="controlName"></textarea>
10358
- <textarea *ngIf="!boundControl"
10359
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10360
- [attr.maxlength]="options?.maxLength"
10361
- [attr.minlength]="options?.minLength"
10362
- [attr.pattern]="options?.pattern"
10363
- [attr.placeholder]="options?.placeholder"
10364
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10365
- [attr.required]="options?.required"
10366
- [class]="options?.fieldHtmlClass || ''"
10367
- [disabled]="controlDisabled"
10368
- [id]="'control' + layoutNode()?._id"
10369
- [name]="controlName"
10370
- [value]="controlValue"
10371
- (input)="updateValue($event)">{{controlValue}}</textarea>
10565
+ template: `
10566
+ <div
10567
+ [class]="options?.htmlClass || ''">
10568
+ @if (options?.title) {
10569
+ <label
10570
+ [attr.for]="'control' + layoutNode()?._id"
10571
+ [class]="options?.labelHtmlClass || ''"
10572
+ [style.display]="options?.notitle ? 'none' : ''"
10573
+ [innerHTML]="options?.title"></label>
10574
+ }
10575
+ @if (boundControl) {
10576
+ <textarea
10577
+ [formControl]="formControl"
10578
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10579
+ [attr.maxlength]="options?.maxLength"
10580
+ [attr.minlength]="options?.minLength"
10581
+ [attr.pattern]="options?.pattern"
10582
+ [attr.placeholder]="options?.placeholder"
10583
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
10584
+ [attr.required]="options?.required"
10585
+ [class]="options?.fieldHtmlClass || ''"
10586
+ [id]="'control' + layoutNode()?._id"
10587
+ [name]="controlName"></textarea>
10588
+ }
10589
+ @if (!boundControl) {
10590
+ <textarea
10591
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10592
+ [attr.maxlength]="options?.maxLength"
10593
+ [attr.minlength]="options?.minLength"
10594
+ [attr.pattern]="options?.pattern"
10595
+ [attr.placeholder]="options?.placeholder"
10596
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
10597
+ [attr.required]="options?.required"
10598
+ [class]="options?.fieldHtmlClass || ''"
10599
+ [disabled]="controlDisabled"
10600
+ [id]="'control' + layoutNode()?._id"
10601
+ [name]="controlName"
10602
+ [value]="controlValue"
10603
+ (input)="updateValue($event)">{{controlValue}}</textarea>
10604
+ }
10372
10605
  </div>`,
10373
10606
  standalone: false
10374
10607
  }]
@@ -10571,10 +10804,10 @@ class WidgetLibraryService {
10571
10804
  activeWidgets: this.activeWidgets,
10572
10805
  };
10573
10806
  }
10574
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: WidgetLibraryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10575
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: WidgetLibraryService, providedIn: 'root' }); }
10807
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: WidgetLibraryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10808
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: WidgetLibraryService, providedIn: 'root' }); }
10576
10809
  }
10577
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: WidgetLibraryService, decorators: [{
10810
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: WidgetLibraryService, decorators: [{
10578
10811
  type: Injectable,
10579
10812
  args: [{
10580
10813
  providedIn: 'root',
@@ -10733,10 +10966,10 @@ class FrameworkLibraryService {
10733
10966
  return actFramework.unregisterTheme(name);
10734
10967
  }
10735
10968
  }
10736
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: FrameworkLibraryService, deps: [{ token: Framework }], target: i0.ɵɵFactoryTarget.Injectable }); }
10737
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: FrameworkLibraryService, providedIn: 'root' }); }
10969
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: FrameworkLibraryService, deps: [{ token: Framework }], target: i0.ɵɵFactoryTarget.Injectable }); }
10970
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: FrameworkLibraryService, providedIn: 'root' }); }
10738
10971
  }
10739
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: FrameworkLibraryService, decorators: [{
10972
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: FrameworkLibraryService, decorators: [{
10740
10973
  type: Injectable,
10741
10974
  args: [{
10742
10975
  providedIn: 'root',
@@ -10757,9 +10990,9 @@ class SelectCheckboxComponent {
10757
10990
  this.selectList = [];
10758
10991
  this.selectListFlatGroup = [];
10759
10992
  this.isArray = isArray;
10760
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
10761
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
10762
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
10993
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
10994
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
10995
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
10763
10996
  this.frameworkStyles = {
10764
10997
  daisyui: { selectClass: "select-box", optionClass: "checkbox tw:dui-checkbox", optionChecked: "active", optionUnchecked: "" },
10765
10998
  "bootstrap-3": { selectClass: "select-box", optionClass: "bs3-option checkbox display-inline-block", optionChecked: "active", optionUnchecked: "" },
@@ -10812,128 +11045,144 @@ class SelectCheckboxComponent {
10812
11045
  this.formControl.reset(nullVal);
10813
11046
  this.controlValue = null;
10814
11047
  }
10815
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SelectCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10816
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: SelectCheckboxComponent, isStandalone: false, selector: "selectcheckbox-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
10817
- <div
10818
- [class]="options?.htmlClass || ''">
10819
- <select *ngIf="boundControl"
10820
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10821
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10822
- [attr.required]="options?.required"
10823
- [class]=" frameworkStyles[activeFramework].selectClass"
10824
- [multiple]="true"
10825
- [id]="'control' + layoutNode()?._id"
10826
- [name]="controlName"
10827
- [ngModel]="selectValue"
10828
- >
10829
- <ng-template ngFor let-selectItem [ngForOf]="selectList">
10830
- <option *ngIf="!isArray(selectItem?.items)"
10831
- [class]="frameworkStyles[activeFramework].optionClass"
10832
- [class.active]="selectItem?.value === controlValue"
10833
- [class.unchecked-notusing]="selectItem?.value != controlValue"
10834
- [value]="selectItem?.value"
10835
- (click)="onSelectClicked($event)"
10836
- type="checkbox"
10837
- >
10838
- </option>
10839
- <!--NB the text is out of the option element to display besides the checkbox-->
10840
- <span [innerHTML]="selectItem?.name"></span>
10841
- </ng-template>
10842
- </select>
10843
- <select *ngIf="!boundControl"
10844
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10845
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10846
- [attr.required]="options?.required"
10847
- [class]="frameworkStyles[activeFramework].selectClass +' select-box'"
10848
- [multiple]="true"
10849
- [disabled]="controlDisabled"
10850
- [id]="'control' + layoutNode()?._id"
10851
- [name]="controlName"
10852
- (change)="updateValue($event)">
10853
- <ng-template ngFor let-selectItem [ngForOf]="selectList">
10854
- <option *ngIf="!isArray(selectItem?.items)"
10855
- [selected]="selectItem?.value === controlValue"
10856
- [class]="frameworkStyles[activeFramework].optionClass"
10857
- [class.checked-notusing]="selectItem?.value === controlValue"
10858
- [class.unchecked-notusing]]="selectItem?.value != controlValue"
10859
- [value]="selectItem?.value"
10860
- type="checkbox">
10861
- </option>
10862
- <!--NB the text is out of the option element to display besides the checkbox-->
10863
- <span [innerHTML]="selectItem?.name"></span>
10864
- </ng-template>
10865
- </select>
10866
-
10867
- </div>`, isInline: true, styles: [".select-box{font-size:16px;border:none;appearance:none;-webkit-appearance:none;-moz-appearance:none;height:25px;overflow:hidden;text-overflow:ellipsis;background-color:#fff;color:#000;background-color:transparent}.select-box:focus{outline:none}.select-option{font-size:20px;color:#000;background-color:#fff;display:inline-block}.unchecked:before{content:\"\\2610\";left:5px;top:50%;transform:translateY(-50%);font-size:30px}.checked:before{content:\"\\2611\";left:5px;top:50%;transform:translateY(-50%);font-size:30px}.select-option:checked{background-image:linear-gradient(0deg,#fff 0% 100%);color:#000}.select-box[multiple]:focus{background-color:transparent;color:#00f;-webkit-text-fill-color:black}.display-inline-block{display:inline-block}.bs4-option,.bs3-option{width:14px;height:14px;border:solid 1px;color:#a9a9a9;min-block-size:auto;border-radius:3px}.bs4-option:checked[type=checkbox],.bs3-option:checked[type=checkbox]{background-image:url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!--%20License%3A%20MIT.%20Made%20by%20jaynewey%3A%20https%3A%2F%2Fgithub.com%2Fjaynewey%2Fcharm-icons%20--%3E%3Csvg%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222.5%22%3E%3Cpolyline%20points%3D%224%208.75%2C6.25%2012.25%2C13.25%203.5%22%2F%3E%3C%2Fsvg%3E);background-color:#00ced1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
11048
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SelectCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11049
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: SelectCheckboxComponent, isStandalone: false, selector: "selectcheckbox-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
11050
+ <div
11051
+ [class]="options?.htmlClass || ''">
11052
+ @if (boundControl) {
11053
+ <select
11054
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
11055
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
11056
+ [attr.required]="options?.required"
11057
+ [class]=" frameworkStyles[activeFramework].selectClass"
11058
+ [multiple]="true"
11059
+ [id]="'control' + layoutNode()?._id"
11060
+ [name]="controlName"
11061
+ [ngModel]="selectValue"
11062
+ >
11063
+ @for (selectItem of selectList; track selectItem) {
11064
+ @if (!isArray(selectItem?.items)) {
11065
+ <option
11066
+ [class]="frameworkStyles[activeFramework].optionClass"
11067
+ [class.active]="selectItem?.value === controlValue"
11068
+ [class.unchecked-notusing]="selectItem?.value != controlValue"
11069
+ [value]="selectItem?.value"
11070
+ (click)="onSelectClicked($event)"
11071
+ type="checkbox"
11072
+ >
11073
+ </option>
11074
+ }
11075
+ <!--NB the text is out of the option element to display besides the checkbox-->
11076
+ <span [innerHTML]="selectItem?.name"></span>
11077
+ }
11078
+ </select>
11079
+ }
11080
+ @if (!boundControl) {
11081
+ <select
11082
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
11083
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
11084
+ [attr.required]="options?.required"
11085
+ [class]="frameworkStyles[activeFramework].selectClass +' select-box'"
11086
+ [multiple]="true"
11087
+ [disabled]="controlDisabled"
11088
+ [id]="'control' + layoutNode()?._id"
11089
+ [name]="controlName"
11090
+ (change)="updateValue($event)">
11091
+ @for (selectItem of selectList; track selectItem) {
11092
+ @if (!isArray(selectItem?.items)) {
11093
+ <option
11094
+ [selected]="selectItem?.value === controlValue"
11095
+ [class]="frameworkStyles[activeFramework].optionClass"
11096
+ [class.checked-notusing]="selectItem?.value === controlValue"
11097
+ [class.unchecked-notusing]]="selectItem?.value != controlValue"
11098
+ [value]="selectItem?.value"
11099
+ type="checkbox">
11100
+ </option>
11101
+ }
11102
+ <!--NB the text is out of the option element to display besides the checkbox-->
11103
+ <span [innerHTML]="selectItem?.name"></span>
11104
+ }
11105
+ </select>
11106
+ }
11107
+
11108
+ </div>`, isInline: true, styles: [".select-box{font-size:16px;border:none;appearance:none;-webkit-appearance:none;-moz-appearance:none;height:25px;overflow:hidden;text-overflow:ellipsis;background-color:#fff;color:#000;background-color:transparent}.select-box:focus{outline:none}.select-option{font-size:20px;color:#000;background-color:#fff;display:inline-block}.unchecked:before{content:\"\\2610\";left:5px;top:50%;transform:translateY(-50%);font-size:30px}.checked:before{content:\"\\2611\";left:5px;top:50%;transform:translateY(-50%);font-size:30px}.select-option:checked{background-image:linear-gradient(0deg,#fff 0% 100%);color:#000}.select-box[multiple]:focus{background-color:transparent;color:#00f;-webkit-text-fill-color:black}.display-inline-block{display:inline-block}.bs4-option,.bs3-option{width:14px;height:14px;border:solid 1px;color:#a9a9a9;min-block-size:auto;border-radius:3px}.bs4-option:checked[type=checkbox],.bs3-option:checked[type=checkbox]{background-image:url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!--%20License%3A%20MIT.%20Made%20by%20jaynewey%3A%20https%3A%2F%2Fgithub.com%2Fjaynewey%2Fcharm-icons%20--%3E%3Csvg%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222.5%22%3E%3Cpolyline%20points%3D%224%208.75%2C6.25%2012.25%2C13.25%203.5%22%2F%3E%3C%2Fsvg%3E);background-color:#00ced1}\n"], dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
10868
11109
  }
10869
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: SelectCheckboxComponent, decorators: [{
11110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: SelectCheckboxComponent, decorators: [{
10870
11111
  type: Component,
10871
- args: [{ selector: 'selectcheckbox-widget', template: `
10872
- <div
10873
- [class]="options?.htmlClass || ''">
10874
- <select *ngIf="boundControl"
10875
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10876
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10877
- [attr.required]="options?.required"
10878
- [class]=" frameworkStyles[activeFramework].selectClass"
10879
- [multiple]="true"
10880
- [id]="'control' + layoutNode()?._id"
10881
- [name]="controlName"
10882
- [ngModel]="selectValue"
10883
- >
10884
- <ng-template ngFor let-selectItem [ngForOf]="selectList">
10885
- <option *ngIf="!isArray(selectItem?.items)"
10886
- [class]="frameworkStyles[activeFramework].optionClass"
10887
- [class.active]="selectItem?.value === controlValue"
10888
- [class.unchecked-notusing]="selectItem?.value != controlValue"
10889
- [value]="selectItem?.value"
10890
- (click)="onSelectClicked($event)"
10891
- type="checkbox"
10892
- >
10893
- </option>
10894
- <!--NB the text is out of the option element to display besides the checkbox-->
10895
- <span [innerHTML]="selectItem?.name"></span>
10896
- </ng-template>
10897
- </select>
10898
- <select *ngIf="!boundControl"
10899
- [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
10900
- [attr.readonly]="options?.readonly ? 'readonly' : null"
10901
- [attr.required]="options?.required"
10902
- [class]="frameworkStyles[activeFramework].selectClass +' select-box'"
10903
- [multiple]="true"
10904
- [disabled]="controlDisabled"
10905
- [id]="'control' + layoutNode()?._id"
10906
- [name]="controlName"
10907
- (change)="updateValue($event)">
10908
- <ng-template ngFor let-selectItem [ngForOf]="selectList">
10909
- <option *ngIf="!isArray(selectItem?.items)"
10910
- [selected]="selectItem?.value === controlValue"
10911
- [class]="frameworkStyles[activeFramework].optionClass"
10912
- [class.checked-notusing]="selectItem?.value === controlValue"
10913
- [class.unchecked-notusing]]="selectItem?.value != controlValue"
10914
- [value]="selectItem?.value"
10915
- type="checkbox">
10916
- </option>
10917
- <!--NB the text is out of the option element to display besides the checkbox-->
10918
- <span [innerHTML]="selectItem?.name"></span>
10919
- </ng-template>
10920
- </select>
10921
-
11112
+ args: [{ selector: 'selectcheckbox-widget', template: `
11113
+ <div
11114
+ [class]="options?.htmlClass || ''">
11115
+ @if (boundControl) {
11116
+ <select
11117
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
11118
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
11119
+ [attr.required]="options?.required"
11120
+ [class]=" frameworkStyles[activeFramework].selectClass"
11121
+ [multiple]="true"
11122
+ [id]="'control' + layoutNode()?._id"
11123
+ [name]="controlName"
11124
+ [ngModel]="selectValue"
11125
+ >
11126
+ @for (selectItem of selectList; track selectItem) {
11127
+ @if (!isArray(selectItem?.items)) {
11128
+ <option
11129
+ [class]="frameworkStyles[activeFramework].optionClass"
11130
+ [class.active]="selectItem?.value === controlValue"
11131
+ [class.unchecked-notusing]="selectItem?.value != controlValue"
11132
+ [value]="selectItem?.value"
11133
+ (click)="onSelectClicked($event)"
11134
+ type="checkbox"
11135
+ >
11136
+ </option>
11137
+ }
11138
+ <!--NB the text is out of the option element to display besides the checkbox-->
11139
+ <span [innerHTML]="selectItem?.name"></span>
11140
+ }
11141
+ </select>
11142
+ }
11143
+ @if (!boundControl) {
11144
+ <select
11145
+ [attr.aria-describedby]="'control' + layoutNode()?._id + 'Status'"
11146
+ [attr.readonly]="options?.readonly ? 'readonly' : null"
11147
+ [attr.required]="options?.required"
11148
+ [class]="frameworkStyles[activeFramework].selectClass +' select-box'"
11149
+ [multiple]="true"
11150
+ [disabled]="controlDisabled"
11151
+ [id]="'control' + layoutNode()?._id"
11152
+ [name]="controlName"
11153
+ (change)="updateValue($event)">
11154
+ @for (selectItem of selectList; track selectItem) {
11155
+ @if (!isArray(selectItem?.items)) {
11156
+ <option
11157
+ [selected]="selectItem?.value === controlValue"
11158
+ [class]="frameworkStyles[activeFramework].optionClass"
11159
+ [class.checked-notusing]="selectItem?.value === controlValue"
11160
+ [class.unchecked-notusing]]="selectItem?.value != controlValue"
11161
+ [value]="selectItem?.value"
11162
+ type="checkbox">
11163
+ </option>
11164
+ }
11165
+ <!--NB the text is out of the option element to display besides the checkbox-->
11166
+ <span [innerHTML]="selectItem?.name"></span>
11167
+ }
11168
+ </select>
11169
+ }
11170
+
10922
11171
  </div>`, standalone: false, styles: [".select-box{font-size:16px;border:none;appearance:none;-webkit-appearance:none;-moz-appearance:none;height:25px;overflow:hidden;text-overflow:ellipsis;background-color:#fff;color:#000;background-color:transparent}.select-box:focus{outline:none}.select-option{font-size:20px;color:#000;background-color:#fff;display:inline-block}.unchecked:before{content:\"\\2610\";left:5px;top:50%;transform:translateY(-50%);font-size:30px}.checked:before{content:\"\\2611\";left:5px;top:50%;transform:translateY(-50%);font-size:30px}.select-option:checked{background-image:linear-gradient(0deg,#fff 0% 100%);color:#000}.select-box[multiple]:focus{background-color:transparent;color:#00f;-webkit-text-fill-color:black}.display-inline-block{display:inline-block}.bs4-option,.bs3-option{width:14px;height:14px;border:solid 1px;color:#a9a9a9;min-block-size:auto;border-radius:3px}.bs4-option:checked[type=checkbox],.bs3-option:checked[type=checkbox]{background-image:url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!--%20License%3A%20MIT.%20Made%20by%20jaynewey%3A%20https%3A%2F%2Fgithub.com%2Fjaynewey%2Fcharm-icons%20--%3E%3Csvg%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222.5%22%3E%3Cpolyline%20points%3D%224%208.75%2C6.25%2012.25%2C13.25%203.5%22%2F%3E%3C%2Fsvg%3E);background-color:#00ced1}\n"] }]
10923
11172
  }], propDecorators: { layoutNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutNode", required: false }] }], layoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "layoutIndex", required: false }] }], dataIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataIndex", required: false }] }] } });
10924
11173
 
10925
11174
  class TabComponent {
10926
11175
  constructor() {
10927
11176
  this.jsf = inject(JsonSchemaFormService);
10928
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
10929
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
10930
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
11177
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
11178
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
11179
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
10931
11180
  }
10932
11181
  ngOnInit() {
10933
11182
  this.options = this.layoutNode().options || {};
10934
11183
  }
10935
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10936
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: TabComponent, isStandalone: false, selector: "tab-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
11184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11185
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.2", type: TabComponent, isStandalone: false, selector: "tab-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
10937
11186
  <div [class]="options?.htmlClass || ''">
10938
11187
  <root-widget
10939
11188
  [dataIndex]="dataIndex()"
@@ -10941,7 +11190,7 @@ class TabComponent {
10941
11190
  [layout]="layoutNode().items"></root-widget>
10942
11191
  </div>`, isInline: true, dependencies: [{ kind: "component", type: RootComponent, selector: "root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isOrderable", "isFlexItem", "memoizationEnabled"] }] }); }
10943
11192
  }
10944
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: TabComponent, decorators: [{
11193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: TabComponent, decorators: [{
10945
11194
  type: Component,
10946
11195
  args: [{
10947
11196
  // tslint:disable-next-line:component-selector
@@ -10985,10 +11234,10 @@ class OrderableDirective {
10985
11234
  this.ngZone = inject(NgZone);
10986
11235
  this.overParentElement = false;
10987
11236
  this.overChildElement = false;
10988
- this.orderable = input(undefined, ...(ngDevMode ? [{ debugName: "orderable" }] : []));
10989
- this.layoutNode = input(undefined, ...(ngDevMode ? [{ debugName: "layoutNode" }] : []));
10990
- this.layoutIndex = input(undefined, ...(ngDevMode ? [{ debugName: "layoutIndex" }] : []));
10991
- this.dataIndex = input(undefined, ...(ngDevMode ? [{ debugName: "dataIndex" }] : []));
11237
+ this.orderable = input(undefined, { ...(ngDevMode ? { debugName: "orderable" } : {}) });
11238
+ this.layoutNode = input(undefined, { ...(ngDevMode ? { debugName: "layoutNode" } : {}) });
11239
+ this.layoutIndex = input(undefined, { ...(ngDevMode ? { debugName: "layoutIndex" } : {}) });
11240
+ this.dataIndex = input(undefined, { ...(ngDevMode ? { debugName: "dataIndex" } : {}) });
10992
11241
  }
10993
11242
  ngOnInit() {
10994
11243
  const layoutIndex = this.layoutIndex();
@@ -11072,10 +11321,10 @@ class OrderableDirective {
11072
11321
  this.draggableStateSubscription.unsubscribe();
11073
11322
  }
11074
11323
  }
11075
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: OrderableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11076
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.13", type: OrderableDirective, isStandalone: false, selector: "[orderable]", inputs: { orderable: { classPropertyName: "orderable", publicName: "orderable", isSignal: true, isRequired: false, transformFunction: null }, layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
11324
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: OrderableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11325
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", type: OrderableDirective, isStandalone: false, selector: "[orderable]", inputs: { orderable: { classPropertyName: "orderable", publicName: "orderable", isSignal: true, isRequired: false, transformFunction: null }, layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
11077
11326
  }
11078
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: OrderableDirective, decorators: [{
11327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: OrderableDirective, decorators: [{
11079
11328
  type: Directive,
11080
11329
  args: [{
11081
11330
  // tslint:disable-next-line:directive-selector
@@ -11094,11 +11343,11 @@ const BASIC_WIDGETS = [
11094
11343
  ];
11095
11344
 
11096
11345
  class WidgetLibraryModule {
11097
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: WidgetLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11098
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: WidgetLibraryModule, declarations: [AddReferenceComponent, OneOfComponent, ButtonComponent, CheckboxComponent, CheckboxesComponent, FileComponent, HiddenComponent, InputComponent, MessageComponent, NoneComponent, NumberComponent, RadiosComponent, RootComponent, SectionComponent, SelectComponent, SelectFrameworkComponent, SelectWidgetComponent, SubmitComponent, TabComponent, TabsComponent, TemplateComponent, TextareaComponent, SelectCheckboxComponent, ItemTitleComponent, OrderableDirective, ElementAttributeDirective, StopPropagationDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule], exports: [AddReferenceComponent, OneOfComponent, ButtonComponent, CheckboxComponent, CheckboxesComponent, FileComponent, HiddenComponent, InputComponent, MessageComponent, NoneComponent, NumberComponent, RadiosComponent, RootComponent, SectionComponent, SelectComponent, SelectFrameworkComponent, SelectWidgetComponent, SubmitComponent, TabComponent, TabsComponent, TemplateComponent, TextareaComponent, SelectCheckboxComponent, ItemTitleComponent, OrderableDirective, ElementAttributeDirective, StopPropagationDirective] }); }
11099
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: WidgetLibraryModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule] }); }
11346
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: WidgetLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11347
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.2", ngImport: i0, type: WidgetLibraryModule, declarations: [AddReferenceComponent, OneOfComponent, ButtonComponent, CheckboxComponent, CheckboxesComponent, FileComponent, HiddenComponent, InputComponent, MessageComponent, NoneComponent, NumberComponent, RadiosComponent, RootComponent, SectionComponent, SelectComponent, SelectFrameworkComponent, SelectWidgetComponent, SubmitComponent, TabComponent, TabsComponent, TemplateComponent, TextareaComponent, SelectCheckboxComponent, ItemTitleComponent, OrderableDirective, ElementAttributeDirective, StopPropagationDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule], exports: [AddReferenceComponent, OneOfComponent, ButtonComponent, CheckboxComponent, CheckboxesComponent, FileComponent, HiddenComponent, InputComponent, MessageComponent, NoneComponent, NumberComponent, RadiosComponent, RootComponent, SectionComponent, SelectComponent, SelectFrameworkComponent, SelectWidgetComponent, SubmitComponent, TabComponent, TabsComponent, TemplateComponent, TextareaComponent, SelectCheckboxComponent, ItemTitleComponent, OrderableDirective, ElementAttributeDirective, StopPropagationDirective] }); }
11348
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: WidgetLibraryModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule] }); }
11100
11349
  }
11101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: WidgetLibraryModule, decorators: [{
11350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: WidgetLibraryModule, decorators: [{
11102
11351
  type: NgModule,
11103
11352
  args: [{
11104
11353
  imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule
@@ -11110,13 +11359,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImpo
11110
11359
 
11111
11360
  // No framework - plain HTML controls (styles from form layout only)
11112
11361
  class NoFrameworkModule {
11113
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NoFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11114
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: NoFrameworkModule, declarations: [NoFrameworkComponent], imports: [CommonModule, WidgetLibraryModule], exports: [NoFrameworkComponent] }); }
11115
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NoFrameworkModule, providers: [
11362
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NoFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11363
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.2", ngImport: i0, type: NoFrameworkModule, declarations: [NoFrameworkComponent], imports: [CommonModule, WidgetLibraryModule], exports: [NoFrameworkComponent] }); }
11364
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NoFrameworkModule, providers: [
11116
11365
  { provide: Framework, useClass: NoFramework, multi: true }
11117
11366
  ], imports: [CommonModule, WidgetLibraryModule] }); }
11118
11367
  }
11119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: NoFrameworkModule, decorators: [{
11368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: NoFrameworkModule, decorators: [{
11120
11369
  type: NgModule,
11121
11370
  args: [{
11122
11371
  imports: [CommonModule, WidgetLibraryModule],
@@ -11184,27 +11433,27 @@ class JsonSchemaFormComponent {
11184
11433
  formData: null, loadExternalAssets: null, debug: null, ajvOptions: null
11185
11434
  };
11186
11435
  // Recommended inputs
11187
- this.schema = input(undefined, ...(ngDevMode ? [{ debugName: "schema" }] : [])); // The JSON Schema
11188
- this.layout = input(undefined, ...(ngDevMode ? [{ debugName: "layout" }] : [])); // The form layout
11189
- this.data = input(undefined, ...(ngDevMode ? [{ debugName: "data" }] : [])); // The form data
11190
- this.options = input(undefined, ...(ngDevMode ? [{ debugName: "options" }] : [])); // The global form options
11191
- this.framework = input(undefined, ...(ngDevMode ? [{ debugName: "framework" }] : [])); // The framework to load
11192
- this.widgets = input(undefined, ...(ngDevMode ? [{ debugName: "widgets" }] : [])); // Any custom widgets to load
11436
+ this.schema = input(undefined, { ...(ngDevMode ? { debugName: "schema" } : {}) }); // The JSON Schema
11437
+ this.layout = input(undefined, { ...(ngDevMode ? { debugName: "layout" } : {}) }); // The form layout
11438
+ this.data = input(undefined, { ...(ngDevMode ? { debugName: "data" } : {}) }); // The form data
11439
+ this.options = input(undefined, { ...(ngDevMode ? { debugName: "options" } : {}) }); // The global form options
11440
+ this.framework = input(undefined, { ...(ngDevMode ? { debugName: "framework" } : {}) }); // The framework to load
11441
+ this.widgets = input(undefined, { ...(ngDevMode ? { debugName: "widgets" } : {}) }); // Any custom widgets to load
11193
11442
  // Alternate combined single input
11194
- this.form = input(undefined, ...(ngDevMode ? [{ debugName: "form" }] : [])); // For testing, and JSON Schema Form API compatibility
11443
+ this.form = input(undefined, { ...(ngDevMode ? { debugName: "form" } : {}) }); // For testing, and JSON Schema Form API compatibility
11195
11444
  // Angular Schema Form API compatibility input
11196
- this.model = input(undefined, ...(ngDevMode ? [{ debugName: "model" }] : [])); // Alternate input for form data
11445
+ this.model = input(undefined, { ...(ngDevMode ? { debugName: "model" } : {}) }); // Alternate input for form data
11197
11446
  // React JSON Schema Form API compatibility inputs
11198
- this.JSONSchema = input(undefined, ...(ngDevMode ? [{ debugName: "JSONSchema" }] : [])); // Alternate input for JSON Schema
11199
- this.UISchema = input(undefined, ...(ngDevMode ? [{ debugName: "UISchema" }] : [])); // UI schema - alternate form layout format
11200
- this.formData = input(undefined, ...(ngDevMode ? [{ debugName: "formData" }] : [])); // Alternate input for form data
11201
- this.ngModel = input(undefined, ...(ngDevMode ? [{ debugName: "ngModel" }] : [])); // Alternate input for Angular forms
11202
- this.language = input(undefined, ...(ngDevMode ? [{ debugName: "language" }] : [])); // Language
11447
+ this.JSONSchema = input(undefined, { ...(ngDevMode ? { debugName: "JSONSchema" } : {}) }); // Alternate input for JSON Schema
11448
+ this.UISchema = input(undefined, { ...(ngDevMode ? { debugName: "UISchema" } : {}) }); // UI schema - alternate form layout format
11449
+ this.formData = input(undefined, { ...(ngDevMode ? { debugName: "formData" } : {}) }); // Alternate input for form data
11450
+ this.ngModel = input(undefined, { ...(ngDevMode ? { debugName: "ngModel" } : {}) }); // Alternate input for Angular forms
11451
+ this.language = input(undefined, { ...(ngDevMode ? { debugName: "language" } : {}) }); // Language
11203
11452
  // Development inputs, for testing and debugging
11204
- this.loadExternalAssets = input(undefined, ...(ngDevMode ? [{ debugName: "loadExternalAssets" }] : [])); // Load external framework assets?
11205
- this.debug = input(undefined, ...(ngDevMode ? [{ debugName: "debug" }] : [])); // Show debug information?
11206
- this.theme = input(undefined, ...(ngDevMode ? [{ debugName: "theme" }] : [])); // Theme
11207
- this.ajvOptions = input(undefined, ...(ngDevMode ? [{ debugName: "ajvOptions" }] : [])); // ajvOptions
11453
+ this.loadExternalAssets = input(undefined, { ...(ngDevMode ? { debugName: "loadExternalAssets" } : {}) }); // Load external framework assets?
11454
+ this.debug = input(undefined, { ...(ngDevMode ? { debugName: "debug" } : {}) }); // Show debug information?
11455
+ this.theme = input(undefined, { ...(ngDevMode ? { debugName: "theme" } : {}) }); // Theme
11456
+ this.ajvOptions = input(undefined, { ...(ngDevMode ? { debugName: "ajvOptions" } : {}) }); // ajvOptions
11208
11457
  // Outputs
11209
11458
  this.onChanges = output(); // Live unvalidated internal form data
11210
11459
  this.onSubmit = output(); // Complete validated form data
@@ -11899,24 +12148,24 @@ class JsonSchemaFormComponent {
11899
12148
  }
11900
12149
  }
11901
12150
  }
11902
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonSchemaFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11903
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.13", type: JsonSchemaFormComponent, isStandalone: false, selector: "json-schema-form", inputs: { schema: { classPropertyName: "schema", publicName: "schema", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, framework: { classPropertyName: "framework", publicName: "framework", isSignal: true, isRequired: false, transformFunction: null }, widgets: { classPropertyName: "widgets", publicName: "widgets", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, JSONSchema: { classPropertyName: "JSONSchema", publicName: "JSONSchema", isSignal: true, isRequired: false, transformFunction: null }, UISchema: { classPropertyName: "UISchema", publicName: "UISchema", isSignal: true, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: true, isRequired: false, transformFunction: null }, ngModel: { classPropertyName: "ngModel", publicName: "ngModel", isSignal: true, isRequired: false, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, loadExternalAssets: { classPropertyName: "loadExternalAssets", publicName: "loadExternalAssets", isSignal: true, isRequired: false, transformFunction: null }, debug: { classPropertyName: "debug", publicName: "debug", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, ajvOptions: { classPropertyName: "ajvOptions", publicName: "ajvOptions", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onChanges: "onChanges", onSubmit: "onSubmit", isValid: "isValid", validationErrors: "validationErrors", formSchema: "formSchema", formLayout: "formLayout", dataChange: "dataChange", modelChange: "modelChange", formDataChange: "formDataChange", ngModelChange: "ngModelChange" }, providers: [JsonSchemaFormService, JSON_SCHEMA_FORM_VALUE_ACCESSOR], usesOnChanges: true, ngImport: i0, template: "<form [autocomplete]=\"jsf?.formOptions?.autocomplete ? 'on' : 'off'\" class=\"json-schema-form\" (ngSubmit)=\"submitForm()\">\r\n <root-widget [layout]=\"jsf?.layout\"></root-widget>\r\n</form>\r\n<div *ngIf=\"debug() || jsf?.formOptions?.debug\">\r\n Debug output:\r\n <pre>{{debugOutput}}</pre>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: RootComponent, selector: "root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isOrderable", "isFlexItem", "memoizationEnabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonSchemaFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: JsonSchemaFormComponent, isStandalone: false, selector: "json-schema-form", inputs: { schema: { classPropertyName: "schema", publicName: "schema", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, framework: { classPropertyName: "framework", publicName: "framework", isSignal: true, isRequired: false, transformFunction: null }, widgets: { classPropertyName: "widgets", publicName: "widgets", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, JSONSchema: { classPropertyName: "JSONSchema", publicName: "JSONSchema", isSignal: true, isRequired: false, transformFunction: null }, UISchema: { classPropertyName: "UISchema", publicName: "UISchema", isSignal: true, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: true, isRequired: false, transformFunction: null }, ngModel: { classPropertyName: "ngModel", publicName: "ngModel", isSignal: true, isRequired: false, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, loadExternalAssets: { classPropertyName: "loadExternalAssets", publicName: "loadExternalAssets", isSignal: true, isRequired: false, transformFunction: null }, debug: { classPropertyName: "debug", publicName: "debug", isSignal: true, isRequired: false, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: false, transformFunction: null }, ajvOptions: { classPropertyName: "ajvOptions", publicName: "ajvOptions", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onChanges: "onChanges", onSubmit: "onSubmit", isValid: "isValid", validationErrors: "validationErrors", formSchema: "formSchema", formLayout: "formLayout", dataChange: "dataChange", modelChange: "modelChange", formDataChange: "formDataChange", ngModelChange: "ngModelChange" }, providers: [JsonSchemaFormService, JSON_SCHEMA_FORM_VALUE_ACCESSOR], usesOnChanges: true, ngImport: i0, template: "<form [autocomplete]=\"jsf?.formOptions?.autocomplete ? 'on' : 'off'\" class=\"json-schema-form\" (ngSubmit)=\"submitForm()\">\n <root-widget [layout]=\"jsf?.layout\"></root-widget>\n</form>\n@if (debug() || jsf?.formOptions?.debug) {\n <div>\n Debug output:\n <pre>{{debugOutput}}</pre>\n </div>\n}", dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: RootComponent, selector: "root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isOrderable", "isFlexItem", "memoizationEnabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11904
12153
  }
11905
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonSchemaFormComponent, decorators: [{
12154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonSchemaFormComponent, decorators: [{
11906
12155
  type: Component,
11907
- args: [{ selector: 'json-schema-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [JsonSchemaFormService, JSON_SCHEMA_FORM_VALUE_ACCESSOR], standalone: false, template: "<form [autocomplete]=\"jsf?.formOptions?.autocomplete ? 'on' : 'off'\" class=\"json-schema-form\" (ngSubmit)=\"submitForm()\">\r\n <root-widget [layout]=\"jsf?.layout\"></root-widget>\r\n</form>\r\n<div *ngIf=\"debug() || jsf?.formOptions?.debug\">\r\n Debug output:\r\n <pre>{{debugOutput}}</pre>\r\n</div>" }]
12156
+ args: [{ selector: 'json-schema-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [JsonSchemaFormService, JSON_SCHEMA_FORM_VALUE_ACCESSOR], standalone: false, template: "<form [autocomplete]=\"jsf?.formOptions?.autocomplete ? 'on' : 'off'\" class=\"json-schema-form\" (ngSubmit)=\"submitForm()\">\n <root-widget [layout]=\"jsf?.layout\"></root-widget>\n</form>\n@if (debug() || jsf?.formOptions?.debug) {\n <div>\n Debug output:\n <pre>{{debugOutput}}</pre>\n </div>\n}" }]
11908
12157
  }], propDecorators: { schema: [{ type: i0.Input, args: [{ isSignal: true, alias: "schema", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], framework: [{ type: i0.Input, args: [{ isSignal: true, alias: "framework", required: false }] }], widgets: [{ type: i0.Input, args: [{ isSignal: true, alias: "widgets", required: false }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }], model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: false }] }], JSONSchema: [{ type: i0.Input, args: [{ isSignal: true, alias: "JSONSchema", required: false }] }], UISchema: [{ type: i0.Input, args: [{ isSignal: true, alias: "UISchema", required: false }] }], formData: [{ type: i0.Input, args: [{ isSignal: true, alias: "formData", required: false }] }], ngModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngModel", required: false }] }], language: [{ type: i0.Input, args: [{ isSignal: true, alias: "language", required: false }] }], loadExternalAssets: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadExternalAssets", required: false }] }], debug: [{ type: i0.Input, args: [{ isSignal: true, alias: "debug", required: false }] }], theme: [{ type: i0.Input, args: [{ isSignal: true, alias: "theme", required: false }] }], ajvOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "ajvOptions", required: false }] }], value: [{
11909
12158
  type: Input
11910
12159
  }], onChanges: [{ type: i0.Output, args: ["onChanges"] }], onSubmit: [{ type: i0.Output, args: ["onSubmit"] }], isValid: [{ type: i0.Output, args: ["isValid"] }], validationErrors: [{ type: i0.Output, args: ["validationErrors"] }], formSchema: [{ type: i0.Output, args: ["formSchema"] }], formLayout: [{ type: i0.Output, args: ["formLayout"] }], dataChange: [{ type: i0.Output, args: ["dataChange"] }], modelChange: [{ type: i0.Output, args: ["modelChange"] }], formDataChange: [{ type: i0.Output, args: ["formDataChange"] }], ngModelChange: [{ type: i0.Output, args: ["ngModelChange"] }] } });
11911
12160
 
11912
12161
  class JsonSchemaFormModule {
11913
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonSchemaFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11914
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: JsonSchemaFormModule, declarations: [JsonSchemaFormComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule,
12162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonSchemaFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12163
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.2", ngImport: i0, type: JsonSchemaFormModule, declarations: [JsonSchemaFormComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule,
11915
12164
  WidgetLibraryModule, NoFrameworkModule], exports: [JsonSchemaFormComponent, WidgetLibraryModule] }); }
11916
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonSchemaFormModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
12165
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonSchemaFormModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
11917
12166
  WidgetLibraryModule, NoFrameworkModule, WidgetLibraryModule] }); }
11918
12167
  }
11919
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: JsonSchemaFormModule, decorators: [{
12168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: JsonSchemaFormModule, decorators: [{
11920
12169
  type: NgModule,
11921
12170
  args: [{
11922
12171
  imports: [