@ng-formworks/core 19.5.7 → 19.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -63,6 +63,7 @@ export declare class JsonSchemaFormComponent implements ControlValueAccessor, On
63
63
  formData: any;
64
64
  loadExternalAssets: boolean;
65
65
  debug: boolean;
66
+ ajvOptions: any;
66
67
  };
67
68
  readonly schema: import("@angular/core").InputSignal<any>;
68
69
  readonly layout: import("@angular/core").InputSignal<any[]>;
@@ -80,6 +81,8 @@ export declare class JsonSchemaFormComponent implements ControlValueAccessor, On
80
81
  readonly loadExternalAssets: import("@angular/core").InputSignal<boolean>;
81
82
  readonly debug: import("@angular/core").InputSignal<boolean>;
82
83
  readonly theme: import("@angular/core").InputSignal<string>;
84
+ readonly ajvOptions: import("@angular/core").InputSignal<any>;
85
+ private ajvInstanceName;
83
86
  get value(): any;
84
87
  set value(value: any);
85
88
  readonly onChanges: import("@angular/core").OutputEmitterRef<any>;
@@ -134,6 +137,12 @@ export declare class JsonSchemaFormComponent implements ControlValueAccessor, On
134
137
  * the Angular formGroup used to control the reactive form.
135
138
  */
136
139
  initializeForm(initialData?: any): void;
140
+ /**
141
+ * 'initializeAjv' function
142
+ *
143
+ * Initialize ajv from 'ajvOptions'
144
+ */
145
+ private initializeAjv;
137
146
  /**
138
147
  * 'initializeOptions' function
139
148
  *
@@ -212,5 +221,5 @@ export declare class JsonSchemaFormComponent implements ControlValueAccessor, On
212
221
  */
213
222
  private activateForm;
214
223
  static ɵfac: i0.ɵɵFactoryDeclaration<JsonSchemaFormComponent, never>;
215
- static ɵcmp: i0.ɵɵComponentDeclaration<JsonSchemaFormComponent, "json-schema-form", never, { "schema": { "alias": "schema"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "framework": { "alias": "framework"; "required": false; "isSignal": true; }; "widgets": { "alias": "widgets"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; "JSONSchema": { "alias": "JSONSchema"; "required": false; "isSignal": true; }; "UISchema": { "alias": "UISchema"; "required": false; "isSignal": true; }; "formData": { "alias": "formData"; "required": false; "isSignal": true; }; "ngModel": { "alias": "ngModel"; "required": false; "isSignal": true; }; "language": { "alias": "language"; "required": false; "isSignal": true; }; "loadExternalAssets": { "alias": "loadExternalAssets"; "required": false; "isSignal": true; }; "debug": { "alias": "debug"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; }, { "onChanges": "onChanges"; "onSubmit": "onSubmit"; "isValid": "isValid"; "validationErrors": "validationErrors"; "formSchema": "formSchema"; "formLayout": "formLayout"; "dataChange": "dataChange"; "modelChange": "modelChange"; "formDataChange": "formDataChange"; "ngModelChange": "ngModelChange"; }, never, never, false, never>;
224
+ static ɵcmp: i0.ɵɵComponentDeclaration<JsonSchemaFormComponent, "json-schema-form", never, { "schema": { "alias": "schema"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "framework": { "alias": "framework"; "required": false; "isSignal": true; }; "widgets": { "alias": "widgets"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; "JSONSchema": { "alias": "JSONSchema"; "required": false; "isSignal": true; }; "UISchema": { "alias": "UISchema"; "required": false; "isSignal": true; }; "formData": { "alias": "formData"; "required": false; "isSignal": true; }; "ngModel": { "alias": "ngModel"; "required": false; "isSignal": true; }; "language": { "alias": "language"; "required": false; "isSignal": true; }; "loadExternalAssets": { "alias": "loadExternalAssets"; "required": false; "isSignal": true; }; "debug": { "alias": "debug"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "ajvOptions": { "alias": "ajvOptions"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; }; }, { "onChanges": "onChanges"; "onSubmit": "onSubmit"; "isValid": "isValid"; "validationErrors": "validationErrors"; "formSchema": "formSchema"; "formLayout": "formLayout"; "dataChange": "dataChange"; "modelChange": "modelChange"; "formDataChange": "formDataChange"; "ngModelChange": "ngModelChange"; }, never, never, false, never>;
216
225
  }
@@ -1,6 +1,6 @@
1
1
  import { OnDestroy, Signal } from '@angular/core';
2
2
  import { AbstractControl, UntypedFormArray, UntypedFormGroup } from '@angular/forms';
3
- import { ErrorObject, Options } from 'ajv/dist/2019';
3
+ import Ajv2019, { ErrorObject, Options, ValidateFunction } from 'ajv/dist/2019';
4
4
  import { Subject, Subscription } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  export type WidgetContext = {
@@ -14,6 +14,13 @@ export type WidgetContext = {
14
14
  controlName?: string;
15
15
  controlDisabled?: boolean;
16
16
  };
17
+ export type AJVRegistryItem = {
18
+ [name: string]: {
19
+ name: string;
20
+ ajvInstance: Ajv2019;
21
+ ajvValidator: ValidateFunction;
22
+ };
23
+ };
17
24
  export interface TitleMapItem {
18
25
  name?: string;
19
26
  value?: any;
@@ -70,6 +77,15 @@ export declare class JsonSchemaFormService implements OnDestroy {
70
77
  private sortableOptionsSubject;
71
78
  sortableOptions$: import("rxjs").Observable<any>;
72
79
  setSortableOptions(value: any): void;
80
+ createAjvInstance(ajvOptions: any): Ajv2019;
81
+ createAndRegisterAjvInstance(ajvOptions: any, name?: string): {
82
+ name: string;
83
+ ajvInstance: Ajv2019;
84
+ ajvValidator: ValidateFunction;
85
+ };
86
+ ajvRegistry: AJVRegistryItem;
87
+ getAjvInstance(name?: string): Ajv2019;
88
+ getAjvValidator(name?: string): ValidateFunction<unknown>;
73
89
  constructor();
74
90
  ngOnDestroy(): void;
75
91
  setLanguage(language?: string): void;
@@ -97,12 +113,12 @@ export declare class JsonSchemaFormService implements OnDestroy {
97
113
  * //{ErrorMessages} errors
98
114
  */
99
115
  buildRemoteError(errors: ErrorMessages): void;
100
- validateData(newValue: any, updateSubscriptions?: boolean): void;
116
+ validateData(newValue: any, updateSubscriptions?: boolean, ajvInstanceName?: string): void;
101
117
  buildFormGroupTemplate(formValues?: any, setValues?: boolean): void;
102
- buildFormGroup(): void;
118
+ buildFormGroup(ajvInstanceName?: string): void;
103
119
  buildLayout(widgetLibrary: any): void;
104
120
  setOptions(newOptions: any): void;
105
- compileAjvSchema(): void;
121
+ compileAjvSchema(ajvInstanceName?: string): void;
106
122
  buildSchemaFromData(data?: any, requireAllFields?: boolean): any;
107
123
  buildSchemaFromLayout(layout?: any): any;
108
124
  setTpldata(newTpldata?: any): void;
@@ -115,7 +131,9 @@ export declare class JsonSchemaFormService implements OnDestroy {
115
131
  formatErrors(errors: any, validationMessages?: any): string;
116
132
  updateValue(ctx: WidgetContext, value: any): void;
117
133
  updateArrayCheckboxList(ctx: WidgetContext, checkboxList: TitleMapItem[]): void;
134
+ updateArrayMultiSelectList(ctx: WidgetContext, selectList: TitleMapItem[]): void;
118
135
  getFormControl(ctx: WidgetContext): AbstractControl;
136
+ setFormControl(ctx: WidgetContext, control: AbstractControl): AbstractControl;
119
137
  getFormControlValue(ctx: WidgetContext): AbstractControl;
120
138
  getFormControlGroup(ctx: WidgetContext): UntypedFormArray | UntypedFormGroup;
121
139
  getFormControlName(ctx: WidgetContext): string;
@@ -1,5 +1,14 @@
1
1
  import { AbstractControl } from '@angular/forms';
2
2
  import { Pointer } from './jsonpointer.functions';
3
+ /**
4
+ * path2ControlKey takes a datapointer path like /some/pointer/path
5
+ * and returns something like $some$pointer$path
6
+ * used mainly to convert paths so it can be used as keys in FormGroups
7
+ * fot ITE scenarios
8
+ * @param path
9
+ * @returns string
10
+ */
11
+ export declare function path2ControlKey(path: string): string;
3
12
  /**
4
13
  * FormGroup function library:
5
14
  *
@@ -96,5 +105,22 @@ export declare function formatFormData(formData: any, dataMap: Map<string, any>,
96
105
  * // {Pointer} dataPointer - JSON Pointer (string or array)
97
106
  * // {boolean = false} returnGroup - If true, return group containing control
98
107
  * // {group} - Located value (or null, if no control found)
108
+ * // {string} schemaPointer - string used for conditional controls coming from schema if/then/else
109
+ */
110
+ export declare function getControl(formGroup: any, dataPointer: Pointer, returnGroup?: boolean, schemaPointer?: string): any;
111
+ /**
112
+ * 'setControl' function
113
+ *
114
+ * Uses a JSON Pointer for a data object to retrieve a control from
115
+ * an Angular formGroup or formGroup template. (Note: though a formGroup
116
+ * template is much simpler, its basic structure is idential to a formGroup).
117
+ *
118
+ * If the optional third parameter 'returnGroup' is set to TRUE, the group
119
+ * containing the control is returned, rather than the control itself.
120
+ *
121
+ * // {FormGroup} formGroup - Angular FormGroup to get value from
122
+ * // {Pointer} dataPointer - JSON Pointer (string or array)
123
+ * // {AbstractControl} control - control used to replace existing or add
124
+ * // {targetKey} - optional string used as the new key-not implemented as yet
99
125
  */
100
- export declare function getControl(formGroup: any, dataPointer: Pointer, returnGroup?: boolean): any;
126
+ export declare function setControl(formGroup: any, dataPointer: Pointer, control: AbstractControl, targetKey?: string): any;
@@ -14,6 +14,7 @@ export declare const jsonSchemaFormatTests: {
14
14
  color: RegExp;
15
15
  'json-pointer': RegExp;
16
16
  'relative-json-pointer': RegExp;
17
+ duration: RegExp;
17
18
  regex: (str: any) => boolean;
18
19
  };
19
- export type JsonSchemaFormatNames = 'date' | 'time' | 'date-time' | 'email' | 'hostname' | 'ipv4' | 'ipv6' | 'uri' | 'uri-reference' | 'uri-template' | 'url' | 'uuid' | 'color' | 'json-pointer' | 'relative-json-pointer' | 'regex';
20
+ export type JsonSchemaFormatNames = 'date' | 'time' | 'date-time' | 'email' | 'hostname' | 'ipv4' | 'ipv6' | 'uri' | 'uri-reference' | 'uri-template' | 'url' | 'uuid' | 'color' | 'json-pointer' | 'relative-json-pointer' | 'duration' | 'regex';
@@ -1,9 +1,9 @@
1
- export { _executeValidators, _executeAsyncValidators, _mergeObjects, _mergeErrors, isDefined, hasValue, isEmpty, isString, isNumber, isInteger, isBoolean, isFunction, isObject, isArray, isDate, isMap, isSet, isPromise, isObservable, getType, isType, isPrimitive, toJavaScriptType, toSchemaType, _toPromise, toObservable, inArray, xor, SchemaPrimitiveType, SchemaType, JavaScriptPrimitiveType, JavaScriptType, PrimitiveValue, PlainObject, IValidatorFn, AsyncIValidatorFn } from './validator.functions';
2
- export { addClasses, copy, forEach, forEachCopy, hasOwn, mergeFilteredObject, uniqueItems, commonItems, fixTitle, toTitleCase } from './utility.functions';
3
- export { Pointer, JsonPointer } from './jsonpointer.functions';
1
+ export { _executeAsyncValidators, _executeValidators, _mergeErrors, _mergeObjects, _toPromise, AsyncIValidatorFn, getType, hasValue, inArray, isArray, isBoolean, isDate, isDefined, isEmpty, isFunction, isInteger, isMap, isNumber, isObject, isObservable, isPrimitive, isPromise, isSet, isString, isType, IValidatorFn, JavaScriptPrimitiveType, JavaScriptType, PlainObject, PrimitiveValue, SchemaPrimitiveType, SchemaType, toJavaScriptType, toObservable, toSchemaType, xor } from './validator.functions';
2
+ export { addClasses, commonItems, copy, fixTitle, forEach, forEachCopy, hasNonNullValue, hasOwn, mergeFilteredObject, toTitleCase, uniqueItems } from './utility.functions';
3
+ export { JsonPointer, Pointer } from './jsonpointer.functions';
4
4
  export { JsonValidators } from './json.validators';
5
- export { buildSchemaFromLayout, buildSchemaFromData, getFromSchema, removeRecursiveReferences, getInputType, checkInlineType, isInputRequired, updateInputOptions, getTitleMapFromOneOf, getControlValidators, resolveSchemaReferences, getSubSchema, combineAllOf, fixRequiredArrayProperties } from './json-schema.functions';
5
+ export { buildSchemaFromData, buildSchemaFromLayout, checkInlineType, combineAllOf, fixRequiredArrayProperties, getControlValidators, getFromSchema, getInputType, getSubSchema, getTitleMapFromOneOf, isInputRequired, removeRecursiveReferences, resolveSchemaReferences, updateInputOptions } from './json-schema.functions';
6
6
  export { convertSchemaToDraft6 } from './convert-schema-to-draft6.function';
7
7
  export { mergeSchemas } from './merge-schemas.function';
8
- export { buildFormGroupTemplate, buildFormGroup, formatFormData, getControl, setRequiredFields } from './form-group.functions';
9
- export { buildLayout, buildLayoutFromSchema, mapLayout, getLayoutNode, buildTitleMap } from './layout.functions';
8
+ export { buildFormGroup, buildFormGroupTemplate, formatFormData, getControl, path2ControlKey, setControl, setRequiredFields } from './form-group.functions';
9
+ export { buildLayout, buildLayoutFromSchema, buildTitleMap, getLayoutNode, mapLayout } from './layout.functions';
@@ -171,6 +171,8 @@ export declare function resolveSchemaReferences(schema: any, schemaRefLibrary: a
171
171
  * //
172
172
  */
173
173
  export declare function getSubSchema(schema: any, pointer: any, schemaRefLibrary?: any, schemaRecursiveRefMap?: Map<string, string>, usedPointers?: string[]): any;
174
+ export declare function omitKeys<T extends object>(objects: T[], keysToOmit: (keyof T)[]): Omit<T, keyof T>[];
175
+ export declare function combineAllOfITE(schema: any): void;
174
176
  /**
175
177
  * 'combineAllOf' function
176
178
  *
@@ -191,3 +193,23 @@ export declare function combineAllOf(schema: any): any;
191
193
  * // - converted schema object
192
194
  */
193
195
  export declare function fixRequiredArrayProperties(schema: any): any;
196
+ /**
197
+ * 'convertJSONSchemaIfToCondition' function
198
+ * converts something like
199
+ * "if": {
200
+ * "properties": {
201
+ * "animal": {
202
+ * "const": "Cat"
203
+ * },
204
+ * "habitat":{
205
+ * "const": "City"
206
+ * }
207
+ * }
208
+ * }
209
+ * to "model.animal=='Cat' && habitat=='City" contion
210
+ * @param schema:any
211
+ * @param negate:boolean=false
212
+ * @returns
213
+
214
+ */
215
+ export declare function convertJSONSchemaIfToCondition(schema: any, negate?: boolean): {};
@@ -1,6 +1,6 @@
1
- import { AsyncIValidatorFn, IValidatorFn, SchemaPrimitiveType } from './validator.functions';
2
1
  import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';
3
2
  import { JsonSchemaFormatNames } from './format-regex.constants';
3
+ import { AsyncIValidatorFn, IValidatorFn, SchemaPrimitiveType } from './validator.functions';
4
4
  /**
5
5
  * 'JsonValidators' class
6
6
  *
@@ -200,7 +200,7 @@ export declare class JsonValidators {
200
200
  * This validator currently checks the following formsts:
201
201
  * date, time, date-time, email, hostname, ipv4, ipv6,
202
202
  * uri, uri-reference, uri-template, url, uuid, color,
203
- * json-pointer, relative-json-pointer, regex
203
+ * json-pointer, relative-json-pointer,duration, regex
204
204
  *
205
205
  * Fast format regular expressions copied from AJV:
206
206
  * https://github.com/epoberezkin/ajv/blob/master/lib/compile/formats.js
@@ -36,7 +36,7 @@ export declare function buildLayout(jsf: any, widgetLibrary: any): any[];
36
36
  * // { string = '' } dataPointerPrefix -
37
37
  * //
38
38
  */
39
- export declare function buildLayoutFromSchema(jsf: any, widgetLibrary: any, nodeValue?: any, schemaPointer?: string, dataPointer?: string, arrayItem?: boolean, arrayItemType?: string, removable?: boolean, forRefLibrary?: boolean, dataPointerPrefix?: string): any;
39
+ export declare function buildLayoutFromSchema(jsf: any, widgetLibrary: any, nodeValue?: any, schemaPointer?: string, dataPointer?: string, arrayItem?: boolean, arrayItemType?: string, removable?: boolean, forRefLibrary?: boolean, dataPointerPrefix?: string, jsonSchema?: any): any;
40
40
  /**
41
41
  * 'mapLayout' function
42
42
  *
@@ -163,3 +163,18 @@ export declare function fixTitle(name: string): string;
163
163
  * // {string} -
164
164
  */
165
165
  export declare function toTitleCase(input: string, forceWords?: string | string[]): string;
166
+ /**
167
+ * Recursively checks if at least one property of the given object (including nested objects)
168
+ * has a non-null and non-undefined value.
169
+ *
170
+ * @param obj - The object to check.
171
+ * @returns `true` if at least one property has a non-null and non-undefined value, otherwise `false`.
172
+ *
173
+ * @example
174
+ * const testObj = { a: null, b: { b1: null, b2: undefined } };
175
+ * console.log(hasNonNullValue(testObj)); // Output: false
176
+ *
177
+ * const testObj2 = { a: 1, b: { b1: null, b2: undefined } };
178
+ * console.log(hasNonNullValue(testObj2)); // Output: true
179
+ */
180
+ export declare function hasNonNullValue(obj: Record<string, any>): boolean;
@@ -199,7 +199,7 @@ export declare function isSymbol(item: any): boolean;
199
199
  * // { any = false } strict - if truthy, also checks JavaScript tyoe
200
200
  * // { SchemaType }
201
201
  */
202
- export declare function getType(value: any, strict?: any): "boolean" | "array" | "string" | "number" | "integer" | "null" | "object";
202
+ export declare function getType(value: any, strict?: any): "string" | "number" | "integer" | "boolean" | "null" | "object" | "array";
203
203
  /**
204
204
  * 'isType' function
205
205
  *
@@ -1,7 +1,7 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
1
2
  import { AbstractControl } from '@angular/forms';
2
- import { OnInit } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
- export declare class ButtonComponent implements OnInit {
4
+ export declare class ButtonComponent implements OnInit, OnDestroy {
5
5
  private jsf;
6
6
  formControl: AbstractControl;
7
7
  controlName: string;
@@ -14,6 +14,7 @@ export declare class ButtonComponent implements OnInit {
14
14
  readonly dataIndex: import("@angular/core").InputSignal<number[]>;
15
15
  ngOnInit(): void;
16
16
  updateValue(event: any): void;
17
+ ngOnDestroy(): void;
17
18
  static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
18
19
  static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "button-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
19
20
  }
@@ -1,7 +1,7 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
1
2
  import { AbstractControl } from '@angular/forms';
2
- import { OnInit } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
- export declare class CheckboxComponent implements OnInit {
4
+ export declare class CheckboxComponent implements OnInit, OnDestroy {
5
5
  private jsf;
6
6
  formControl: AbstractControl;
7
7
  controlName: string;
@@ -17,6 +17,7 @@ export declare class CheckboxComponent implements OnInit {
17
17
  ngOnInit(): void;
18
18
  updateValue(event: any): void;
19
19
  get isChecked(): boolean;
20
+ ngOnDestroy(): void;
20
21
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
21
22
  static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "checkbox-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
22
23
  }
@@ -1,8 +1,8 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
1
2
  import { AbstractControl } from '@angular/forms';
2
- import { OnInit } from '@angular/core';
3
3
  import { TitleMapItem } from '../json-schema-form.service';
4
4
  import * as i0 from "@angular/core";
5
- export declare class CheckboxesComponent implements OnInit {
5
+ export declare class CheckboxesComponent implements OnInit, OnDestroy {
6
6
  private jsf;
7
7
  formControl: AbstractControl;
8
8
  controlName: string;
@@ -18,6 +18,7 @@ export declare class CheckboxesComponent implements OnInit {
18
18
  readonly dataIndex: import("@angular/core").InputSignal<number[]>;
19
19
  ngOnInit(): void;
20
20
  updateValue(event: any): void;
21
+ ngOnDestroy(): void;
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxesComponent, never>;
22
23
  static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxesComponent, "checkboxes-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
23
24
  }
@@ -1,7 +1,7 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
1
2
  import { AbstractControl } from '@angular/forms';
2
- import { OnInit } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
- export declare class FileComponent implements OnInit {
4
+ export declare class FileComponent implements OnInit, OnDestroy {
5
5
  private jsf;
6
6
  formControl: AbstractControl;
7
7
  controlName: string;
@@ -14,6 +14,7 @@ export declare class FileComponent implements OnInit {
14
14
  readonly dataIndex: import("@angular/core").InputSignal<number[]>;
15
15
  ngOnInit(): void;
16
16
  updateValue(event: any): void;
17
+ ngOnDestroy(): void;
17
18
  static ɵfac: i0.ɵɵFactoryDeclaration<FileComponent, never>;
18
19
  static ɵcmp: i0.ɵɵComponentDeclaration<FileComponent, "file-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
19
20
  }
@@ -1,7 +1,7 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
1
2
  import { AbstractControl } from '@angular/forms';
2
- import { OnInit } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
- export declare class HiddenComponent implements OnInit {
4
+ export declare class HiddenComponent implements OnInit, OnDestroy {
5
5
  private jsf;
6
6
  formControl: AbstractControl;
7
7
  controlName: string;
@@ -12,6 +12,7 @@ export declare class HiddenComponent implements OnInit {
12
12
  readonly layoutIndex: import("@angular/core").InputSignal<number[]>;
13
13
  readonly dataIndex: import("@angular/core").InputSignal<number[]>;
14
14
  ngOnInit(): void;
15
+ ngOnDestroy(): void;
15
16
  static ɵfac: i0.ɵɵFactoryDeclaration<HiddenComponent, never>;
16
17
  static ɵcmp: i0.ɵɵComponentDeclaration<HiddenComponent, "hidden-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
17
18
  }
@@ -1,7 +1,7 @@
1
- import { OnInit } from '@angular/core';
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { AbstractControl } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
- export declare class InputComponent implements OnInit {
4
+ export declare class InputComponent implements OnInit, OnDestroy {
5
5
  private jsf;
6
6
  formControl: AbstractControl;
7
7
  controlName: string;
@@ -16,6 +16,7 @@ export declare class InputComponent implements OnInit {
16
16
  get inputAttributes(): any;
17
17
  ngOnInit(): void;
18
18
  updateValue(event: any): void;
19
+ ngOnDestroy(): void;
19
20
  static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
20
21
  static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "input-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
21
22
  }
@@ -1,7 +1,7 @@
1
- import { ElementRef, OnInit } from '@angular/core';
1
+ import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { AbstractControl } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
- export declare class NumberComponent implements OnInit {
4
+ export declare class NumberComponent implements OnInit, OnDestroy {
5
5
  private jsf;
6
6
  formControl: AbstractControl;
7
7
  controlName: string;
@@ -21,6 +21,7 @@ export declare class NumberComponent implements OnInit {
21
21
  div: ElementRef;
22
22
  ngOnInit(): void;
23
23
  updateValue(event: any): void;
24
+ ngOnDestroy(): void;
24
25
  static ɵfac: i0.ɵɵFactoryDeclaration<NumberComponent, never>;
25
26
  static ɵcmp: i0.ɵɵComponentDeclaration<NumberComponent, "number-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
26
27
  }
@@ -1,7 +1,7 @@
1
- import { OnInit } from '@angular/core';
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { AbstractControl } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
- export declare class OneOfComponent implements OnInit {
4
+ export declare class OneOfComponent implements OnInit, OnDestroy {
5
5
  private jsf;
6
6
  formControl: AbstractControl;
7
7
  controlName: string;
@@ -13,7 +13,9 @@ export declare class OneOfComponent implements OnInit {
13
13
  readonly layoutIndex: import("@angular/core").InputSignal<number[]>;
14
14
  readonly dataIndex: import("@angular/core").InputSignal<number[]>;
15
15
  ngOnInit(): void;
16
+ findSelectedTab(): number;
16
17
  updateValue(event: any): void;
18
+ ngOnDestroy(): void;
17
19
  static ɵfac: i0.ɵɵFactoryDeclaration<OneOfComponent, never>;
18
20
  static ɵcmp: i0.ɵɵComponentDeclaration<OneOfComponent, "one-of-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
19
21
  }
@@ -1,7 +1,7 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
1
2
  import { AbstractControl } from '@angular/forms';
2
- import { OnInit } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
- export declare class RadiosComponent implements OnInit {
4
+ export declare class RadiosComponent implements OnInit, OnDestroy {
5
5
  private jsf;
6
6
  formControl: AbstractControl;
7
7
  controlName: string;
@@ -16,6 +16,7 @@ export declare class RadiosComponent implements OnInit {
16
16
  readonly dataIndex: import("@angular/core").InputSignal<number[]>;
17
17
  ngOnInit(): void;
18
18
  updateValue(event: any): void;
19
+ ngOnDestroy(): void;
19
20
  static ɵfac: i0.ɵɵFactoryDeclaration<RadiosComponent, never>;
20
21
  static ɵcmp: i0.ɵɵComponentDeclaration<RadiosComponent, "radios-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
21
22
  }
@@ -13,6 +13,7 @@ export declare class RootComponent implements OnInit, OnDestroy {
13
13
  private sortableOptionsSubscription;
14
14
  sortableInit(sortable: any): void;
15
15
  isDraggable(node: any): boolean;
16
+ isFixed(node: any): boolean;
16
17
  getFlexAttribute(node: any, attribute: string): any;
17
18
  showWidget(layoutNode: any): boolean;
18
19
  ngOnInit(): void;
@@ -1,8 +1,8 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
1
2
  import { AbstractControl } from '@angular/forms';
2
3
  import { isArray } from '../shared';
3
- import { OnInit } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
- export declare class SelectComponent implements OnInit {
5
+ export declare class SelectComponent implements OnInit, OnDestroy {
6
6
  private jsf;
7
7
  formControl: AbstractControl;
8
8
  controlName: string;
@@ -11,12 +11,15 @@ export declare class SelectComponent implements OnInit {
11
11
  boundControl: boolean;
12
12
  options: any;
13
13
  selectList: any[];
14
+ selectListFlatGroup: any[];
14
15
  isArray: typeof isArray;
15
16
  readonly layoutNode: import("@angular/core").InputSignal<any>;
16
17
  readonly layoutIndex: import("@angular/core").InputSignal<number[]>;
17
18
  readonly dataIndex: import("@angular/core").InputSignal<number[]>;
18
19
  ngOnInit(): void;
20
+ deselectAll(): void;
19
21
  updateValue(event: any): void;
22
+ ngOnDestroy(): void;
20
23
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
21
24
  static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "select-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
22
25
  }
@@ -1,7 +1,7 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
1
2
  import { AbstractControl } from '@angular/forms';
2
- import { OnInit } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
- export declare class TextareaComponent implements OnInit {
4
+ export declare class TextareaComponent implements OnInit, OnDestroy {
5
5
  private jsf;
6
6
  formControl: AbstractControl;
7
7
  controlName: string;
@@ -14,6 +14,7 @@ export declare class TextareaComponent implements OnInit {
14
14
  readonly dataIndex: import("@angular/core").InputSignal<number[]>;
15
15
  ngOnInit(): void;
16
16
  updateValue(event: any): void;
17
+ ngOnDestroy(): void;
17
18
  static ɵfac: i0.ɵɵFactoryDeclaration<TextareaComponent, never>;
18
19
  static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent, "textarea-widget", never, { "layoutNode": { "alias": "layoutNode"; "required": false; "isSignal": true; }; "layoutIndex": { "alias": "layoutIndex"; "required": false; "isSignal": true; }; "dataIndex": { "alias": "dataIndex"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
19
20
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-formworks/core",
3
- "version": "19.5.7",
3
+ "version": "19.6.0",
4
4
  "description": "Angular ng-formworks - JSON Schema Form builder core",
5
5
  "author": "https://github.com/zahmo/ng-formworks/graphs/contributors",
6
6
  "keywords": [