@ngx-formly/core 9.0.0 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/fesm2022/ngx-formly-core-json-schema.mjs +8 -6
- package/fesm2022/ngx-formly-core-json-schema.mjs.map +1 -1
- package/fesm2022/ngx-formly-core-preset.mjs +4 -4
- package/fesm2022/ngx-formly-core-select.mjs +10 -10
- package/fesm2022/ngx-formly-core-testing.mjs +3 -3
- package/fesm2022/ngx-formly-core.mjs +141 -77
- package/fesm2022/ngx-formly-core.mjs.map +1 -1
- package/package.json +9 -8
- package/{json-schema/index.d.ts → types/ngx-formly-core-json-schema.d.ts} +5 -0
- package/{index.d.ts → types/ngx-formly-core.d.ts} +7 -2
- /package/{preset/index.d.ts → types/ngx-formly-core-preset.d.ts} +0 -0
- /package/{select/index.d.ts → types/ngx-formly-core-select.d.ts} +0 -0
- /package/{testing/index.d.ts → types/ngx-formly-core-testing.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -25,14 +25,23 @@ Formly is a dynamic (JSON powered) form library for Angular that brings unmatche
|
|
|
25
25
|
- ⚡️ Supports multiple schemas:
|
|
26
26
|
- Formly Schema (core)
|
|
27
27
|
- JSON Schema
|
|
28
|
+
- JSON Schema string defaults are configurable. See [schema defaults](docs/json-schema.md#defaults).
|
|
28
29
|
- 😍 A bunch of themes, out of the box!
|
|
29
30
|
- 💪 Built on top of [Angular Reactive Forms](https://angular.dev/guide/forms/reactive-forms)
|
|
31
|
+
- Nullable JSON Schema numbers preserve `null` when cleared. See [JSON Schema](docs/json-schema.md#nullable-numbers).
|
|
32
|
+
- Forms emit their initial validation status after building, including valid forms. See [form notifications](docs/properties-options.md#initial-validation-status).
|
|
33
|
+
- Subscribe to controls after fields load with the `fieldChange` output. See [form build notifications](docs/properties-options.md#accessing-controls-after-a-build).
|
|
30
34
|
- 📹 [@eggheadio course](https://egghead.io/playlists/configuration-based-reactive-angular-forms-with-ngx-formly-465f) - 20 lessons & 78 minutes
|
|
31
35
|
|
|
32
36
|
## Docs
|
|
33
37
|
|
|
38
|
+
Try the live configuration-to-form example on [formly.dev](https://formly.dev), then explore the guides and UI demos.
|
|
39
|
+
Use the search button or Cmd/Ctrl+K to search guide and migration text, plus UI and example page names.
|
|
40
|
+
|
|
34
41
|
- [Get Started](https://formly.dev/guide)
|
|
42
|
+
- [CSP-safe expressions and optional chaining](docs/expression-properties.md#4-expression-evaluation)
|
|
35
43
|
- [Themes](https://formly.dev/ui)
|
|
44
|
+
- [Ionic select interface options](docs/properties-options.md#ionic-select-interfaces)
|
|
36
45
|
- [Examples](https://formly.dev/examples)
|
|
37
46
|
|
|
38
47
|
## Resources
|
|
@@ -57,6 +66,7 @@ Formly is a dynamic (JSON powered) form library for Angular that brings unmatche
|
|
|
57
66
|
|
|
58
67
|
| Angular version | Formly version | Migration |
|
|
59
68
|
| --------------- | -------------------- | ---------------------------------- |
|
|
69
|
+
| Angular >= 21 | `@ngx-formly/core@10.x` | [Upgrade to v10](UPGRADE-10.0.md) |
|
|
60
70
|
| Angular >= 20 | `@ngx-formly/core@9.x` | [Upgrade to v9](UPGRADE-9.0.md) |
|
|
61
71
|
| Angular >= 19 | `@ngx-formly/core@8.x` | [Upgrade to v8](UPGRADE-8.0.md) |
|
|
62
72
|
| Angular >= 18 | `@ngx-formly/core@7.x` | [Upgrade to v7](UPGRADE-7.0.md) |
|
|
@@ -67,6 +77,16 @@ Formly is a dynamic (JSON powered) form library for Angular that brings unmatche
|
|
|
67
77
|
| Angular >= 4 | `@ngx-formly/core@2.x` | [Upgrade to v2](UPGRADE-2.0.md) |
|
|
68
78
|
| Angular >= 2 | `ng-formly@1.x` | |
|
|
69
79
|
|
|
80
|
+
#### Upgrading to v10
|
|
81
|
+
|
|
82
|
+
Formly v10 requires Angular 21 or newer. Upgrade Angular first, then update all
|
|
83
|
+
`@ngx-formly/*` packages used by your application together to v10.
|
|
84
|
+
The Material, PrimeNG, and NG-ZORRO integrations require version 21 or newer of
|
|
85
|
+
their respective UI libraries. Kendo requires version 21.4.1 or newer, and NativeScript
|
|
86
|
+
requires `@nativescript/angular` 21 or newer. Applications staying on Angular 20 should use Formly v9.
|
|
87
|
+
|
|
88
|
+
See the [v10 upgrade guide](UPGRADE-10.0.md) for migration steps.
|
|
89
|
+
|
|
70
90
|
#### Upgrading to v9
|
|
71
91
|
|
|
72
92
|
Formly v9 requires Angular 20 or newer. Upgrade Angular first, then update all
|
|
@@ -92,7 +92,9 @@ class FormlyJsonschema {
|
|
|
92
92
|
break;
|
|
93
93
|
}
|
|
94
94
|
case 'string': {
|
|
95
|
-
|
|
95
|
+
if (!options.ignoreImplicitStringDefaults) {
|
|
96
|
+
field.defaultValue = '';
|
|
97
|
+
}
|
|
96
98
|
break;
|
|
97
99
|
}
|
|
98
100
|
case 'object': {
|
|
@@ -145,12 +147,12 @@ class FormlyJsonschema {
|
|
|
145
147
|
case 'integer': {
|
|
146
148
|
field.parsers = [
|
|
147
149
|
(v, f) => {
|
|
148
|
-
v = toNumber(v);
|
|
150
|
+
v = v === '' && types.includes('null') ? null : toNumber(v);
|
|
149
151
|
if (v === null && f) {
|
|
150
152
|
const input = typeof document !== 'undefined' && f.id
|
|
151
153
|
? document.querySelector(`#${f.id}`)
|
|
152
154
|
: undefined;
|
|
153
|
-
if (input && input.validity && !input.validity.badInput) {
|
|
155
|
+
if (input && input.validity && !input.validity.badInput && !types.includes('null')) {
|
|
154
156
|
v = undefined;
|
|
155
157
|
}
|
|
156
158
|
if (v !== f.formControl.value) {
|
|
@@ -839,10 +841,10 @@ class FormlyJsonschema {
|
|
|
839
841
|
}
|
|
840
842
|
return f1;
|
|
841
843
|
}
|
|
842
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
843
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
844
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyJsonschema, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
845
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyJsonschema, providedIn: 'root' }); }
|
|
844
846
|
}
|
|
845
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
847
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyJsonschema, decorators: [{
|
|
846
848
|
type: Injectable,
|
|
847
849
|
args: [{ providedIn: 'root' }]
|
|
848
850
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-formly-core-json-schema.mjs","sources":["../../../../src/core/json-schema/src/formly-json-schema.service.ts","../../../../src/core/json-schema/src/ngx-formly-core-json-schema.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { JSONSchema7, JSONSchema7Definition } from 'json-schema';\nimport { AbstractControl, UntypedFormArray, UntypedFormGroup } from '@angular/forms';\nimport {\n ɵreverseDeepMerge as reverseDeepMerge,\n ɵgetFieldValue as getFieldValue,\n ɵclone as clone,\n ɵhasKey as hasKey,\n} from '@ngx-formly/core';\nimport { tap } from 'rxjs/operators';\n\nexport interface FormlyJsonschemaOptions {\n /**\n * allows to intercept the mapping, taking the already mapped\n * formly field and the original JSONSchema source from which it\n * was mapped.\n */\n map?: (mappedField: FormlyFieldConfig, mapSource: JSONSchema7) => FormlyFieldConfig;\n}\n\ninterface FormlyJSONSchema7 extends JSONSchema7 {\n widget?: { formlyConfig: FormlyFieldConfig };\n}\n\n// https://stackoverflow.com/a/27865285\nfunction decimalPlaces(a: number) {\n if (!isFinite(a)) {\n return 0;\n }\n\n let e = 1,\n p = 0;\n while (Math.round(a * e) / e !== a) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction isEmpty(v: any) {\n return v === '' || v == null;\n}\n\nfunction isObject(v: any) {\n return v != null && typeof v === 'object' && !Array.isArray(v);\n}\n\nfunction isInteger(value: any) {\n return Number.isInteger ? Number.isInteger(value) : typeof value === 'number' && Math.floor(value) === value;\n}\n\nfunction isConst(schema: JSONSchema7Definition) {\n return typeof schema === 'object' && (schema.hasOwnProperty('const') || (schema.enum && schema.enum.length === 1));\n}\n\nfunction toNumber(value: string | number | null) {\n if (value === '' || value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n const val = parseFloat(value);\n return !isNaN(val) ? val : value;\n}\n\nfunction totalMatchedFields(field: FormlyFieldConfig): number {\n if (!field.fieldGroup) {\n return hasKey(field) && getFieldValue(field) !== undefined ? 1 : 0;\n }\n\n const total = field.fieldGroup.reduce((s, f) => totalMatchedFields(f) + s, 0);\n if (total === 0 && hasKey(field)) {\n const value = getFieldValue(field);\n if (\n value === null ||\n (value !== undefined && ((field.fieldArray && Array.isArray(value)) || (!field.fieldArray && isObject(value))))\n ) {\n return 1;\n }\n }\n\n return total;\n}\n\ninterface IOptions extends FormlyJsonschemaOptions {\n schema: FormlyJSONSchema7;\n resetOnHide?: boolean;\n shareFormControl?: boolean;\n ignoreDefault?: boolean;\n strict?: boolean;\n readOnly?: boolean;\n key?: FormlyFieldConfig['key'];\n isOptional?: boolean;\n conditionalSchemas?: JSONSchema7[];\n skipMultiSchemaValidation?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FormlyJsonschema {\n toFieldConfig(schema: JSONSchema7, options?: FormlyJsonschemaOptions): FormlyFieldConfig {\n schema = clone(schema);\n return this._toFieldConfig(schema, { schema, ...(options || {}) });\n }\n\n private _toFieldConfig(schema: FormlyJSONSchema7, { key, isOptional, ...options }: IOptions): FormlyFieldConfig {\n schema = this.resolveSchema(schema, options);\n const types = this.guessSchemaType(schema);\n\n let field: FormlyFieldConfig & { shareFormControl?: boolean } = {\n type: types[0],\n defaultValue: schema.default,\n props: {\n label: schema.title,\n readonly: schema.readOnly,\n description: schema.description,\n },\n };\n\n if (key != null) {\n field.key = key;\n }\n\n if (!options.ignoreDefault && (schema.readOnly || options.readOnly)) {\n field.props.disabled = true;\n options = { ...options, readOnly: true };\n }\n\n if (options.resetOnHide) {\n field.resetOnHide = true;\n }\n\n if (options.shareFormControl === false) {\n field.shareFormControl = false;\n }\n\n if (field.defaultValue === undefined && types.length === 1 && isOptional === false) {\n switch (types[0]) {\n case 'null': {\n field.defaultValue = null;\n break;\n }\n case 'string': {\n field.defaultValue = '';\n break;\n }\n case 'object': {\n field.defaultValue = {};\n break;\n }\n case 'array': {\n field.defaultValue = schema.minItems > 0 ? Array.from(new Array(schema.minItems)) : [];\n break;\n }\n }\n }\n\n if (options.ignoreDefault) {\n delete field.defaultValue;\n }\n\n this.addValidator(field, 'type', {\n schemaType: types,\n expression: ({ value }: AbstractControl) => {\n if (value === undefined) {\n return true;\n }\n\n if (value === null && types.indexOf('null') !== -1) {\n return true;\n }\n\n switch (types[0]) {\n case 'null': {\n return typeof value === null;\n }\n case 'string': {\n return typeof value === 'string';\n }\n case 'integer': {\n return isInteger(value);\n }\n case 'number': {\n return typeof value === 'number';\n }\n case 'object': {\n return isObject(value);\n }\n case 'array': {\n return Array.isArray(value);\n }\n }\n\n return true;\n },\n });\n\n switch (field.type) {\n case 'number':\n case 'integer': {\n field.parsers = [\n (v: string | number, f: FormlyFieldConfig) => {\n v = toNumber(v);\n\n if (v === null && f) {\n const input =\n typeof document !== 'undefined' && f.id\n ? document.querySelector<HTMLInputElement>(`#${f.id}`)\n : undefined;\n if (input && input.validity && !input.validity.badInput) {\n v = undefined;\n }\n\n if (v !== f.formControl.value) {\n f.formControl.setValue(v, { emitModelToViewChange: false });\n }\n }\n\n return v;\n },\n ] as ((value: any, f?: FormlyFieldConfig) => any)[];\n\n if (schema.hasOwnProperty('minimum')) {\n field.props.min = schema.minimum;\n }\n\n if (schema.hasOwnProperty('maximum')) {\n field.props.max = schema.maximum;\n }\n\n if (schema.hasOwnProperty('exclusiveMinimum')) {\n field.props.exclusiveMinimum = schema.exclusiveMinimum;\n this.addValidator(\n field,\n 'exclusiveMinimum',\n ({ value }: AbstractControl) => isEmpty(value) || value > schema.exclusiveMinimum,\n );\n }\n\n if (schema.hasOwnProperty('exclusiveMaximum')) {\n field.props.exclusiveMaximum = schema.exclusiveMaximum;\n this.addValidator(\n field,\n 'exclusiveMaximum',\n ({ value }: AbstractControl) => isEmpty(value) || value < schema.exclusiveMaximum,\n );\n }\n\n if (schema.hasOwnProperty('multipleOf')) {\n field.props.step = schema.multipleOf;\n this.addValidator(field, 'multipleOf', ({ value }: AbstractControl) => {\n if (isEmpty(value) || typeof value !== 'number' || value === 0 || schema.multipleOf <= 0) {\n return true;\n }\n\n // https://github.com/ajv-validator/ajv/issues/652#issue-283610859\n const multiplier = Math.pow(10, decimalPlaces(schema.multipleOf));\n return Math.round(value * multiplier) % Math.round(schema.multipleOf * multiplier) === 0;\n });\n }\n break;\n }\n case 'string': {\n field.parsers = [\n (v, f: FormlyFieldConfig) => {\n if (types.indexOf('null') !== -1) {\n v = isEmpty(v) ? null : v;\n } else if (f && !f.props.required) {\n v = v === '' ? undefined : v;\n }\n\n return v;\n },\n ] as ((value: any, f?: FormlyFieldConfig) => any)[];\n\n ['minLength', 'maxLength', 'pattern'].forEach((prop) => {\n if (schema.hasOwnProperty(prop)) {\n field.props[prop] = (schema as any)[prop];\n }\n });\n break;\n }\n case 'object': {\n if (!field.fieldGroup) {\n field.fieldGroup = [];\n }\n\n const { propDeps, schemaDeps } = this.resolveDependencies(schema);\n Object.keys(schema.properties || {}).forEach((property) => {\n const isRequired = Array.isArray(schema.required) && schema.required.indexOf(property) !== -1;\n const f = this._toFieldConfig(<JSONSchema7>schema.properties[property], {\n ...options,\n key: property,\n isOptional: isOptional || !isRequired,\n });\n\n field.fieldGroup.push(f);\n if (isRequired || propDeps[property]) {\n f.expressions = {\n ...(f.expressions || {}),\n 'props.required': (f) => {\n let parent = f.parent;\n const model = f.fieldGroup && f.key != null ? parent.model : f.model;\n while (parent.key == null && parent.parent) {\n parent = parent.parent;\n }\n\n const required = parent && parent.props ? parent.props.required : false;\n if (!model && !required) {\n return false;\n }\n\n if (Array.isArray(schema.required) && schema.required.indexOf(property) !== -1) {\n return true;\n }\n\n return propDeps[property] && f.model && propDeps[property].some((k) => !isEmpty(f.model[k]));\n },\n };\n }\n\n if (schemaDeps[property]) {\n const getConstValue = (s: JSONSchema7) => {\n return s.hasOwnProperty('const') ? s.const : s.enum[0];\n };\n\n const oneOfSchema = schemaDeps[property].oneOf as JSONSchema7[];\n if (\n oneOfSchema &&\n oneOfSchema.every((o) => o.properties && o.properties[property] && isConst(o.properties[property]))\n ) {\n oneOfSchema.forEach((oneOfSchemaItem) => {\n const { [property]: constSchema, ...properties } = oneOfSchemaItem.properties;\n field.fieldGroup.push({\n ...this._toFieldConfig(\n { ...oneOfSchemaItem, properties },\n { ...options, shareFormControl: false, resetOnHide: true },\n ),\n expressions: {\n hide: (f) => !f.model || getConstValue(constSchema as JSONSchema7) !== f.model[property],\n },\n });\n });\n } else {\n field.fieldGroup.push({\n ...this._toFieldConfig(schemaDeps[property], options),\n expressions: {\n hide: (f) => !f.model || isEmpty(f.model[property]),\n },\n });\n }\n }\n });\n\n if (schema.oneOf) {\n field.fieldGroup.push(\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, shareFormControl: false }),\n );\n }\n\n if (schema.anyOf) {\n field.fieldGroup.push(this.resolveMultiSchema('anyOf', <JSONSchema7[]>schema.anyOf, options));\n }\n\n // Process if/then/else conditional schemas\n if (options.conditionalSchemas) {\n const conditionalSchemas = options.conditionalSchemas as Array<JSONSchema7 & { _ifCondition: any }>;\n conditionalSchemas.forEach((conditionalSchema) => {\n const condition = conditionalSchema._ifCondition;\n if (condition && conditionalSchema.properties) {\n // Create a field group with the conditional fields\n const conditionalFieldGroup: FormlyFieldConfig = {\n fieldGroup: [],\n expressions: {\n hide: (f) => {\n if (!f.model) {\n return true;\n }\n const modelValue = f.model[condition.property];\n const matches = modelValue === condition.value;\n // If negate is true (for \"else\" case), invert the condition\n return condition.negate ? matches : !matches;\n },\n },\n };\n\n // Add each property from the conditional schema to the field group\n Object.keys(conditionalSchema.properties).forEach((property) => {\n const propSchema = conditionalSchema.properties[property] as JSONSchema7;\n if (!propSchema) {\n return;\n }\n const isRequired =\n Array.isArray(conditionalSchema.required) && conditionalSchema.required.indexOf(property) !== -1;\n const conditionalField = this._toFieldConfig(propSchema, {\n ...options,\n key: property,\n isOptional: !isRequired,\n resetOnHide: true,\n });\n conditionalFieldGroup.fieldGroup.push(conditionalField);\n });\n\n field.fieldGroup.push(conditionalFieldGroup);\n }\n });\n }\n break;\n }\n case 'array': {\n if (schema.hasOwnProperty('minItems')) {\n field.props.minItems = schema.minItems;\n this.addValidator(field, 'minItems', ({ value }: AbstractControl) => {\n return isEmpty(value) || value.length >= schema.minItems;\n });\n if (!isOptional && schema.minItems > 0 && field.defaultValue === undefined) {\n field.defaultValue = Array.from(new Array(schema.minItems));\n }\n }\n if (schema.hasOwnProperty('maxItems')) {\n field.props.maxItems = schema.maxItems;\n this.addValidator(field, 'maxItems', ({ value }: AbstractControl) => {\n return isEmpty(value) || value.length <= schema.maxItems;\n });\n }\n if (schema.hasOwnProperty('uniqueItems')) {\n field.props.uniqueItems = schema.uniqueItems;\n this.addValidator(field, 'uniqueItems', ({ value }: AbstractControl) => {\n if (isEmpty(value) || !schema.uniqueItems) {\n return true;\n }\n\n const uniqueItems = Array.from(\n new Set(\n value.map((v: any) =>\n JSON.stringify(v, (k, o) => {\n if (isObject(o)) {\n return Object.keys(o)\n .sort()\n .reduce((obj: any, key) => {\n obj[key] = o[key];\n return obj;\n }, {});\n }\n\n return o;\n }),\n ),\n ),\n );\n\n return uniqueItems.length === value.length;\n });\n }\n\n // resolve items schema needed for isEnum check\n if (schema.items && !Array.isArray(schema.items)) {\n schema.items = this.resolveSchema(<JSONSchema7>schema.items, options);\n }\n\n // TODO: remove isEnum check once adding an option to skip extension\n if (!this.isEnum(schema)) {\n field.fieldArray = (root: FormlyFieldConfig) => {\n const length = root.fieldGroup ? root.fieldGroup.length : 0;\n const items = schema.items as JSONSchema7 | JSONSchema7[];\n if (!Array.isArray(items)) {\n if (!items) {\n return {};\n }\n\n const isMultiSchema = items.oneOf || items.anyOf;\n\n // When items is a single schema, the additionalItems keyword is meaningless, and it should not be used.\n const f = this._toFieldConfig(\n items,\n isMultiSchema ? { ...options, key: `${length}`, isOptional: false } : { ...options, isOptional: false },\n );\n\n if (isMultiSchema && !hasKey(f)) {\n f.key = null;\n }\n\n return f;\n }\n\n const itemSchema = items[length] ? items[length] : schema.additionalItems;\n const f = itemSchema ? this._toFieldConfig(<JSONSchema7>itemSchema, options) : {};\n if (f.props) {\n f.props.required = true;\n }\n if (items[length]) {\n f.props.removable = false;\n }\n\n return f;\n };\n }\n break;\n }\n }\n\n if (schema.hasOwnProperty('const')) {\n field.props.const = schema.const;\n this.addValidator(field, 'const', ({ value }: AbstractControl) => value === schema.const);\n if (!field.type) {\n field.defaultValue = schema.const;\n }\n }\n\n if (this.isEnum(schema)) {\n const enumOptions = this.toEnumOptions(schema);\n const multiple = field.type === 'array';\n\n field.type = 'enum';\n field.props.multiple = multiple;\n field.props.options = enumOptions;\n\n const enumValues = enumOptions.map((o) => o.value);\n this.addValidator(field, 'enum', ({ value }: AbstractControl) => {\n if (value === undefined) {\n return true;\n }\n\n if (multiple) {\n return Array.isArray(value) ? value.every((o) => enumValues.includes(o)) : false;\n }\n\n return enumValues.includes(value);\n });\n }\n\n if (schema.oneOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, key, shareFormControl: false }),\n ];\n }\n\n if (schema.anyOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('anyOf', <JSONSchema7[]>schema.anyOf, { ...options, key, shareFormControl: false }),\n ];\n }\n\n // map in possible formlyConfig options from the widget property\n if (schema.widget?.formlyConfig) {\n field = this.mergeFields(field, schema.widget.formlyConfig);\n }\n\n field.templateOptions = field.props;\n // if there is a map function passed in, use it to allow the user to\n // further customize how fields are being mapped\n return options.map ? options.map(field, schema) : field;\n }\n\n private resolveSchema(schema: JSONSchema7, options: IOptions): JSONSchema7 {\n if (schema && schema.$ref) {\n schema = this.resolveDefinition(schema, options);\n }\n\n if (schema && schema.allOf) {\n schema = this.resolveAllOf(schema, options);\n }\n\n // Process if/then/else and store conditionals in options for later processing\n if (schema && (schema.if || schema.then || schema.else)) {\n const conditionalSchemas = this.resolveIfThenElse(schema, options);\n if (conditionalSchemas.length > 0) {\n // Store conditional schemas in options for processing in _toFieldConfig\n options.conditionalSchemas = conditionalSchemas;\n }\n }\n\n return schema;\n }\n\n private resolveAllOf({ allOf, ...baseSchema }: FormlyJSONSchema7, options: IOptions) {\n if (!allOf.length) {\n throw Error(`allOf array can not be empty ${allOf}.`);\n }\n\n return (allOf as FormlyJSONSchema7[]).reduce((base: FormlyJSONSchema7, schema: FormlyJSONSchema7) => {\n schema = this.resolveSchema(schema, options);\n if (base.required && schema.required) {\n base.required = [...base.required, ...schema.required];\n }\n\n if (schema.uniqueItems) {\n base.uniqueItems = schema.uniqueItems;\n }\n\n // resolve to min value\n (\n ['maxLength', 'maximum', 'exclusiveMaximum', 'maxItems', 'maxProperties'] as (keyof FormlyJSONSchema7)[]\n ).forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n (base as any)[prop] = base[prop] < schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n // resolve to max value\n (\n ['minLength', 'minimum', 'exclusiveMinimum', 'minItems', 'minProperties'] as (keyof FormlyJSONSchema7)[]\n ).forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n (base as any)[prop] = base[prop] > schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n return reverseDeepMerge(base, schema);\n }, baseSchema);\n }\n\n private resolveMultiSchema(mode: 'oneOf' | 'anyOf', schemas: JSONSchema7[], options: IOptions): FormlyFieldConfig {\n const isRecursive = this.isRecursiveMultiSchema(schemas, options);\n const fieldGroup = schemas.map((s, i) => {\n const expressions: FormlyFieldConfig['expressions'] = {\n hide: (f, forceUpdate?: boolean) => {\n if (options.skipMultiSchemaValidation) {\n return true;\n }\n\n const control = f.parent.parent.fieldGroup[0].formControl;\n if (control.value === -1 || forceUpdate) {\n let value = f.parent.fieldGroup\n .map(\n (f, i) =>\n [f, i, this.isFieldValid(f, i, schemas, options, isRecursive)] as [\n FormlyFieldConfig,\n number,\n boolean,\n ],\n )\n .sort(([f1, i1, f1Valid], [f2, i2, f2Valid]) => {\n if (f1Valid !== f2Valid) {\n return f2Valid ? 1 : -1;\n }\n\n const schemaField1 = isRecursive ? this.getSchemaField(schemas[i1]) || f1 : f1;\n const schemaField2 = isRecursive ? this.getSchemaField(schemas[i2]) || f2 : f2;\n const matchedFields1 = totalMatchedFields(schemaField1);\n const matchedFields2 = totalMatchedFields(schemaField2);\n if (matchedFields1 === matchedFields2) {\n if (schemaField1.props?.disabled === schemaField2.props?.disabled) {\n return 0;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n })\n .map(([, i]) => i);\n\n if (mode === 'anyOf') {\n const definedValue = value.filter((i) => totalMatchedFields(f.parent.fieldGroup[i]));\n value = definedValue.length > 0 ? definedValue : [value[0] || 0];\n }\n\n value = value.length > 0 ? value : [0];\n control.setValue(mode === 'anyOf' ? value : value[0]);\n }\n\n const hide = Array.isArray(control.value) ? control.value.indexOf(i) === -1 : control.value !== i;\n if (isRecursive && !hide) {\n this.ensureMultiSchemaField(f, s, options);\n }\n\n return hide;\n },\n };\n\n return isRecursive\n ? this.createMultiSchemaField(s, options, expressions)\n : {\n ...this._toFieldConfig(s, { ...options, resetOnHide: true }),\n expressions,\n };\n });\n\n return {\n type: 'multischema',\n fieldGroup: [\n {\n type: 'enum',\n defaultValue: -1,\n props: {\n multiple: mode === 'anyOf',\n options: schemas.map((s, i) => ({ label: s.title, value: i, disabled: s.readOnly })),\n },\n hooks: {\n onInit: (f) => f.formControl.valueChanges.pipe(tap(() => f.options.detectChanges(f.parent))),\n },\n },\n {\n fieldGroup,\n },\n ],\n };\n }\n\n private createMultiSchemaField(\n schema: JSONSchema7,\n options: IOptions,\n expressions: FormlyFieldConfig['expressions'],\n ): FormlyFieldConfig {\n return {\n expressions,\n hooks: {\n onInit: (f) => {\n if (f.hide === false) {\n this.ensureMultiSchemaField(f, schema, options);\n }\n },\n },\n };\n }\n\n private ensureMultiSchemaField(\n field: FormlyFieldConfig & { _jsonSchemaFormlyField?: boolean },\n schema: JSONSchema7,\n options: IOptions,\n ) {\n if (field._jsonSchemaFormlyField) {\n return;\n }\n\n const expressions = field.expressions;\n const hooks = field.hooks;\n const mutableField = field as unknown as Record<string, unknown>;\n delete mutableField['formControl'];\n delete mutableField['_keyPath'];\n\n Object.keys(field).forEach((prop) => {\n delete mutableField[prop];\n });\n\n Object.assign(field, this._toFieldConfig(schema, { ...options, resetOnHide: true }));\n field.expressions = expressions;\n field.hooks = hooks;\n\n Object.defineProperty(field, '_jsonSchemaFormlyField', {\n value: true,\n configurable: true,\n });\n\n field.options?.build(field);\n }\n\n private getSchemaField(schema: JSONSchema7): FormlyFieldConfig | undefined {\n return (schema as JSONSchema7 & { _field?: FormlyFieldConfig })._field?.fieldGroup?.[0];\n }\n\n private isRecursiveMultiSchema(schemas: JSONSchema7[], options: IOptions): boolean {\n const visited = new WeakSet<object>();\n const visit = (schema: JSONSchema7Definition): boolean => {\n if (!schema || typeof schema !== 'object') {\n return false;\n }\n\n if (visited.has(schema)) {\n return false;\n }\n\n visited.add(schema);\n if (schema.$ref) {\n const definition = this.getDefinition(schema.$ref, options);\n return !!definition && (definition.oneOf === schemas || definition.anyOf === schemas || visit(definition));\n }\n\n if (schema.oneOf === schemas || schema.anyOf === schemas) {\n return true;\n }\n\n const children: JSONSchema7Definition[] = [];\n if (schema.properties) {\n children.push(...Object.values(schema.properties));\n }\n\n if (schema.items) {\n children.push(...(Array.isArray(schema.items) ? schema.items : [schema.items]));\n }\n\n if (schema.additionalItems && typeof schema.additionalItems === 'object') {\n children.push(schema.additionalItems);\n }\n\n if (schema.allOf) {\n children.push(...(schema.allOf as JSONSchema7Definition[]));\n }\n\n if (schema.oneOf && schema.oneOf !== schemas) {\n children.push(...(schema.oneOf as JSONSchema7Definition[]));\n }\n\n if (schema.anyOf && schema.anyOf !== schemas) {\n children.push(...(schema.anyOf as JSONSchema7Definition[]));\n }\n\n if (schema.dependencies) {\n Object.values(schema.dependencies).forEach((dependency) => {\n if (dependency && !Array.isArray(dependency)) {\n children.push(dependency);\n }\n });\n }\n\n (['not', 'if', 'then', 'else'] as (keyof JSONSchema7)[]).forEach((key) => {\n const child = schema[key];\n if (child && typeof child === 'object') {\n children.push(child as JSONSchema7Definition);\n }\n });\n\n return children.some(visit);\n };\n\n return schemas.some(visit);\n }\n\n private getDefinition(ref: string, options: IOptions): FormlyJSONSchema7 | null {\n const [uri, pointer] = ref.split('#/');\n if (uri || !pointer) {\n return null;\n }\n\n let definition: JSONSchema7Definition = options.schema;\n for (const path of pointer.split('/')) {\n if (!definition || typeof definition !== 'object' || !definition.hasOwnProperty(path)) {\n return null;\n }\n\n definition = (definition as Record<string, JSONSchema7Definition>)[path];\n }\n\n return typeof definition === 'object' ? (definition as FormlyJSONSchema7) : null;\n }\n\n private resolveDefinition(schema: FormlyJSONSchema7, options: IOptions): FormlyJSONSchema7 {\n const [uri, pointer] = schema.$ref.split('#/');\n if (uri) {\n throw Error(`Remote schemas for ${schema.$ref} not supported yet.`);\n }\n\n const definition = !pointer\n ? null\n : pointer\n .split('/')\n .reduce((def, path) => (def?.hasOwnProperty(path) ? (def as any)[path] : null), options.schema);\n\n if (!definition) {\n throw Error(`Cannot find a definition for ${schema.$ref}.`);\n }\n\n if (definition.$ref) {\n return this.resolveDefinition(definition, options);\n }\n\n return {\n ...definition,\n ...['title', 'description', 'default', 'widget'].reduce((annotation, p) => {\n if (schema.hasOwnProperty(p)) {\n annotation[p] = (schema as any)[p];\n }\n\n return annotation;\n }, {} as any),\n };\n }\n\n private resolveDependencies(schema: JSONSchema7) {\n const propDeps: { [id: string]: string[] } = {};\n const schemaDeps: { [id: string]: JSONSchema7 } = {};\n\n Object.keys(schema.dependencies || {}).forEach((prop) => {\n const dependency = schema.dependencies[prop] as JSONSchema7;\n if (Array.isArray(dependency)) {\n // Property dependencies\n dependency.forEach((dep) => {\n if (!propDeps[dep]) {\n propDeps[dep] = [prop];\n } else {\n propDeps[dep].push(prop);\n }\n });\n } else {\n // schema dependencies\n schemaDeps[prop] = dependency;\n }\n });\n\n return { propDeps, schemaDeps };\n }\n\n private extractIfCondition(ifSchema: JSONSchema7): { property: string; value: any } | null {\n // Extract the property and const value from the \"if\" schema\n // Supports: { \"properties\": { \"propName\": { \"const\": value } } }\n if (ifSchema.properties) {\n const propName = Object.keys(ifSchema.properties)[0];\n if (propName) {\n const propSchema = ifSchema.properties[propName] as JSONSchema7;\n if (propSchema && propSchema.hasOwnProperty('const')) {\n return { property: propName, value: propSchema.const };\n }\n }\n }\n return null;\n }\n\n private resolveIfThenElse(schema: JSONSchema7, options: IOptions): JSONSchema7[] {\n // Process if/then/else and return array of conditional schemas to add to fieldGroup\n const conditionalSchemas: JSONSchema7[] = [];\n\n if (schema.if && typeof schema.if === 'object') {\n const condition = this.extractIfCondition(schema.if as JSONSchema7);\n if (condition) {\n // Process \"then\" branch\n if (schema.then && typeof schema.then === 'object') {\n const resolvedSchema = this.resolveConditionalSchema(schema.then as JSONSchema7, options);\n conditionalSchemas.push({\n ...resolvedSchema,\n _ifCondition: condition,\n } as any);\n }\n\n // Process \"else\" branch\n if (schema.else && typeof schema.else === 'object') {\n const resolvedSchema = this.resolveConditionalSchema(schema.else as JSONSchema7, options);\n conditionalSchemas.push({\n ...resolvedSchema,\n _ifCondition: { property: condition.property, value: condition.value, negate: true },\n } as any);\n }\n }\n }\n\n return conditionalSchemas;\n }\n\n private resolveConditionalSchema(conditionalSchema: JSONSchema7, options: IOptions): JSONSchema7 {\n // Resolve $ref and allOf if present in conditional schema\n // Note: We don't use resolveSchema here to avoid recursive processing of nested if/then/else\n let resolved = conditionalSchema;\n if (conditionalSchema.$ref) {\n resolved = this.resolveDefinition(conditionalSchema, options);\n }\n if (resolved.allOf) {\n resolved = this.resolveAllOf(resolved, options);\n }\n return resolved;\n }\n\n private guessSchemaType(schema: JSONSchema7) {\n const type = schema?.type;\n if (!type && schema?.properties) {\n return ['object'];\n }\n\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return type;\n }\n\n if (type.length === 2 && type.indexOf('null') !== -1) {\n return type.sort((t1) => (t1 == 'null' ? 1 : -1));\n }\n\n return type;\n }\n\n return type ? [type] : [];\n }\n\n private addValidator(field: FormlyFieldConfig, name: string, validator: FormlyFieldConfig['validators']) {\n field.validators = field.validators || {};\n field.validators[name] = validator;\n }\n\n private isEnum(schema: JSONSchema7): boolean {\n return (\n !!schema.enum ||\n (schema.anyOf && (schema.anyOf as JSONSchema7[]).every(isConst)) ||\n (schema.oneOf && (schema.oneOf as JSONSchema7[]).every(isConst)) ||\n (schema.uniqueItems && schema.items && !Array.isArray(schema.items) && this.isEnum(<JSONSchema7>schema.items))\n );\n }\n\n private toEnumOptions(schema: JSONSchema7): { value: any; label: any }[] {\n if (schema.enum) {\n return schema.enum.map((value) => ({ value, label: value }));\n }\n\n const toEnum = (s: JSONSchema7) => {\n const value = s.hasOwnProperty('const') ? s.const : s.enum[0];\n const option: any = { value, label: s.title || value };\n if (s.readOnly) {\n option.disabled = true;\n }\n\n return option;\n };\n\n if (schema.anyOf) {\n return (schema.anyOf as JSONSchema7[]).map(toEnum);\n }\n\n if (schema.oneOf) {\n return (schema.oneOf as JSONSchema7[]).map(toEnum);\n }\n\n return this.toEnumOptions(<JSONSchema7>schema.items);\n }\n\n private isFieldValid(\n root: FormlyFieldConfig & { _schemasFields?: { [key: number]: FormlyFieldConfig } },\n i: number,\n schemas: JSONSchema7[],\n options: IOptions,\n skipMultiSchemaValidation = false,\n ): boolean {\n const schema = schemas[i] as JSONSchema7 & { _field?: FormlyFieldConfig };\n if (!schema._field) {\n Object.defineProperty(schema, '_field', { enumerable: false, writable: true, configurable: true });\n }\n\n let field = schema._field;\n let model = root.model ? root.model : root.fieldArray ? [] : {};\n if (root.model && hasKey(root)) {\n model = { [Array.isArray(root.key) ? root.key.join('.') : root.key]: getFieldValue(root) };\n }\n\n model = clone(model);\n if (!field) {\n field = schema._field = root.options.build({\n form: Array.isArray(model) ? new UntypedFormArray([]) : new UntypedFormGroup({}),\n fieldGroup: [\n this._toFieldConfig(schema, {\n ...options,\n resetOnHide: true,\n ignoreDefault: true,\n skipMultiSchemaValidation,\n map: null,\n }),\n ],\n model,\n options: {},\n });\n } else {\n (field as any).model = model;\n root.options.build(field);\n }\n\n return field.form.valid;\n }\n\n private mergeFields(f1: any, f2: any) {\n for (const prop in f2) {\n const f1Prop = prop === 'templateOptions' ? 'props' : prop;\n if (isObject(f1[f1Prop]) && isObject(f2[prop])) {\n f1[f1Prop] = this.mergeFields(f1[f1Prop], f2[prop]);\n } else if (f2[prop] != null) {\n f1[f1Prop] = f2[prop];\n }\n }\n\n return f1;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["hasKey","getFieldValue","clone","reverseDeepMerge"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-formly-core-json-schema.mjs","sources":["../../../../src/core/json-schema/src/formly-json-schema.service.ts","../../../../src/core/json-schema/src/ngx-formly-core-json-schema.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { AbstractControl, UntypedFormArray, UntypedFormGroup } from '@angular/forms';\nimport {\n ɵclone as clone,\n FormlyFieldConfig,\n ɵgetFieldValue as getFieldValue,\n ɵhasKey as hasKey,\n ɵreverseDeepMerge as reverseDeepMerge,\n} from '@ngx-formly/core';\nimport { JSONSchema7, JSONSchema7Definition } from 'json-schema';\nimport { tap } from 'rxjs/operators';\n\nexport interface FormlyJsonschemaOptions {\n /**\n * Leave required strings without a schema default undefined instead of defaulting to ''.\n * Defaults to false. Explicit schema defaults and other types are unaffected.\n */\n ignoreImplicitStringDefaults?: boolean;\n\n /**\n * allows to intercept the mapping, taking the already mapped\n * formly field and the original JSONSchema source from which it\n * was mapped.\n */\n map?: (mappedField: FormlyFieldConfig, mapSource: JSONSchema7) => FormlyFieldConfig;\n}\n\ninterface FormlyJSONSchema7 extends JSONSchema7 {\n widget?: { formlyConfig: FormlyFieldConfig };\n}\n\n// https://stackoverflow.com/a/27865285\nfunction decimalPlaces(a: number) {\n if (!isFinite(a)) {\n return 0;\n }\n\n let e = 1,\n p = 0;\n while (Math.round(a * e) / e !== a) {\n e *= 10;\n p++;\n }\n\n return p;\n}\n\nfunction isEmpty(v: any) {\n return v === '' || v == null;\n}\n\nfunction isObject(v: any) {\n return v != null && typeof v === 'object' && !Array.isArray(v);\n}\n\nfunction isInteger(value: any) {\n return Number.isInteger ? Number.isInteger(value) : typeof value === 'number' && Math.floor(value) === value;\n}\n\nfunction isConst(schema: JSONSchema7Definition) {\n return typeof schema === 'object' && (schema.hasOwnProperty('const') || (schema.enum && schema.enum.length === 1));\n}\n\nfunction toNumber(value: string | number | null) {\n if (value === '' || value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n const val = parseFloat(value);\n return !isNaN(val) ? val : value;\n}\n\nfunction totalMatchedFields(field: FormlyFieldConfig): number {\n if (!field.fieldGroup) {\n return hasKey(field) && getFieldValue(field) !== undefined ? 1 : 0;\n }\n\n const total = field.fieldGroup.reduce((s, f) => totalMatchedFields(f) + s, 0);\n if (total === 0 && hasKey(field)) {\n const value = getFieldValue(field);\n if (\n value === null ||\n (value !== undefined && ((field.fieldArray && Array.isArray(value)) || (!field.fieldArray && isObject(value))))\n ) {\n return 1;\n }\n }\n\n return total;\n}\n\ninterface IOptions extends FormlyJsonschemaOptions {\n schema: FormlyJSONSchema7;\n resetOnHide?: boolean;\n shareFormControl?: boolean;\n ignoreDefault?: boolean;\n strict?: boolean;\n readOnly?: boolean;\n key?: FormlyFieldConfig['key'];\n isOptional?: boolean;\n conditionalSchemas?: JSONSchema7[];\n skipMultiSchemaValidation?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FormlyJsonschema {\n toFieldConfig(schema: JSONSchema7, options?: FormlyJsonschemaOptions): FormlyFieldConfig {\n schema = clone(schema);\n return this._toFieldConfig(schema, { schema, ...(options || {}) });\n }\n\n private _toFieldConfig(schema: FormlyJSONSchema7, { key, isOptional, ...options }: IOptions): FormlyFieldConfig {\n schema = this.resolveSchema(schema, options);\n const types = this.guessSchemaType(schema);\n\n let field: FormlyFieldConfig & { shareFormControl?: boolean } = {\n type: types[0],\n defaultValue: schema.default,\n props: {\n label: schema.title,\n readonly: schema.readOnly,\n description: schema.description,\n },\n };\n\n if (key != null) {\n field.key = key;\n }\n\n if (!options.ignoreDefault && (schema.readOnly || options.readOnly)) {\n field.props.disabled = true;\n options = { ...options, readOnly: true };\n }\n\n if (options.resetOnHide) {\n field.resetOnHide = true;\n }\n\n if (options.shareFormControl === false) {\n field.shareFormControl = false;\n }\n\n if (field.defaultValue === undefined && types.length === 1 && isOptional === false) {\n switch (types[0]) {\n case 'null': {\n field.defaultValue = null;\n break;\n }\n case 'string': {\n if (!options.ignoreImplicitStringDefaults) {\n field.defaultValue = '';\n }\n break;\n }\n case 'object': {\n field.defaultValue = {};\n break;\n }\n case 'array': {\n field.defaultValue = schema.minItems > 0 ? Array.from(new Array(schema.minItems)) : [];\n break;\n }\n }\n }\n\n if (options.ignoreDefault) {\n delete field.defaultValue;\n }\n\n this.addValidator(field, 'type', {\n schemaType: types,\n expression: ({ value }: AbstractControl) => {\n if (value === undefined) {\n return true;\n }\n\n if (value === null && types.indexOf('null') !== -1) {\n return true;\n }\n\n switch (types[0]) {\n case 'null': {\n return typeof value === null;\n }\n case 'string': {\n return typeof value === 'string';\n }\n case 'integer': {\n return isInteger(value);\n }\n case 'number': {\n return typeof value === 'number';\n }\n case 'object': {\n return isObject(value);\n }\n case 'array': {\n return Array.isArray(value);\n }\n }\n\n return true;\n },\n });\n\n switch (field.type) {\n case 'number':\n case 'integer': {\n field.parsers = [\n (v: string | number, f: FormlyFieldConfig) => {\n v = v === '' && types.includes('null') ? null : toNumber(v);\n\n if (v === null && f) {\n const input =\n typeof document !== 'undefined' && f.id\n ? document.querySelector<HTMLInputElement>(`#${f.id}`)\n : undefined;\n if (input && input.validity && !input.validity.badInput && !types.includes('null')) {\n v = undefined;\n }\n\n if (v !== f.formControl.value) {\n f.formControl.setValue(v, { emitModelToViewChange: false });\n }\n }\n\n return v;\n },\n ] as ((value: any, f?: FormlyFieldConfig) => any)[];\n\n if (schema.hasOwnProperty('minimum')) {\n field.props.min = schema.minimum;\n }\n\n if (schema.hasOwnProperty('maximum')) {\n field.props.max = schema.maximum;\n }\n\n if (schema.hasOwnProperty('exclusiveMinimum')) {\n field.props.exclusiveMinimum = schema.exclusiveMinimum;\n this.addValidator(\n field,\n 'exclusiveMinimum',\n ({ value }: AbstractControl) => isEmpty(value) || value > schema.exclusiveMinimum,\n );\n }\n\n if (schema.hasOwnProperty('exclusiveMaximum')) {\n field.props.exclusiveMaximum = schema.exclusiveMaximum;\n this.addValidator(\n field,\n 'exclusiveMaximum',\n ({ value }: AbstractControl) => isEmpty(value) || value < schema.exclusiveMaximum,\n );\n }\n\n if (schema.hasOwnProperty('multipleOf')) {\n field.props.step = schema.multipleOf;\n this.addValidator(field, 'multipleOf', ({ value }: AbstractControl) => {\n if (isEmpty(value) || typeof value !== 'number' || value === 0 || schema.multipleOf <= 0) {\n return true;\n }\n\n // https://github.com/ajv-validator/ajv/issues/652#issue-283610859\n const multiplier = Math.pow(10, decimalPlaces(schema.multipleOf));\n return Math.round(value * multiplier) % Math.round(schema.multipleOf * multiplier) === 0;\n });\n }\n break;\n }\n case 'string': {\n field.parsers = [\n (v, f: FormlyFieldConfig) => {\n if (types.indexOf('null') !== -1) {\n v = isEmpty(v) ? null : v;\n } else if (f && !f.props.required) {\n v = v === '' ? undefined : v;\n }\n\n return v;\n },\n ] as ((value: any, f?: FormlyFieldConfig) => any)[];\n\n ['minLength', 'maxLength', 'pattern'].forEach((prop) => {\n if (schema.hasOwnProperty(prop)) {\n field.props[prop] = (schema as any)[prop];\n }\n });\n break;\n }\n case 'object': {\n if (!field.fieldGroup) {\n field.fieldGroup = [];\n }\n\n const { propDeps, schemaDeps } = this.resolveDependencies(schema);\n Object.keys(schema.properties || {}).forEach((property) => {\n const isRequired = Array.isArray(schema.required) && schema.required.indexOf(property) !== -1;\n const f = this._toFieldConfig(<JSONSchema7>schema.properties[property], {\n ...options,\n key: property,\n isOptional: isOptional || !isRequired,\n });\n\n field.fieldGroup.push(f);\n if (isRequired || propDeps[property]) {\n f.expressions = {\n ...(f.expressions || {}),\n 'props.required': (f) => {\n let parent = f.parent;\n const model = f.fieldGroup && f.key != null ? parent.model : f.model;\n while (parent.key == null && parent.parent) {\n parent = parent.parent;\n }\n\n const required = parent && parent.props ? parent.props.required : false;\n if (!model && !required) {\n return false;\n }\n\n if (Array.isArray(schema.required) && schema.required.indexOf(property) !== -1) {\n return true;\n }\n\n return propDeps[property] && f.model && propDeps[property].some((k) => !isEmpty(f.model[k]));\n },\n };\n }\n\n if (schemaDeps[property]) {\n const getConstValue = (s: JSONSchema7) => {\n return s.hasOwnProperty('const') ? s.const : s.enum[0];\n };\n\n const oneOfSchema = schemaDeps[property].oneOf as JSONSchema7[];\n if (\n oneOfSchema &&\n oneOfSchema.every((o) => o.properties && o.properties[property] && isConst(o.properties[property]))\n ) {\n oneOfSchema.forEach((oneOfSchemaItem) => {\n const { [property]: constSchema, ...properties } = oneOfSchemaItem.properties;\n field.fieldGroup.push({\n ...this._toFieldConfig(\n { ...oneOfSchemaItem, properties },\n { ...options, shareFormControl: false, resetOnHide: true },\n ),\n expressions: {\n hide: (f) => !f.model || getConstValue(constSchema as JSONSchema7) !== f.model[property],\n },\n });\n });\n } else {\n field.fieldGroup.push({\n ...this._toFieldConfig(schemaDeps[property], options),\n expressions: {\n hide: (f) => !f.model || isEmpty(f.model[property]),\n },\n });\n }\n }\n });\n\n if (schema.oneOf) {\n field.fieldGroup.push(\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, shareFormControl: false }),\n );\n }\n\n if (schema.anyOf) {\n field.fieldGroup.push(this.resolveMultiSchema('anyOf', <JSONSchema7[]>schema.anyOf, options));\n }\n\n // Process if/then/else conditional schemas\n if (options.conditionalSchemas) {\n const conditionalSchemas = options.conditionalSchemas as Array<JSONSchema7 & { _ifCondition: any }>;\n conditionalSchemas.forEach((conditionalSchema) => {\n const condition = conditionalSchema._ifCondition;\n if (condition && conditionalSchema.properties) {\n // Create a field group with the conditional fields\n const conditionalFieldGroup: FormlyFieldConfig = {\n fieldGroup: [],\n expressions: {\n hide: (f) => {\n if (!f.model) {\n return true;\n }\n const modelValue = f.model[condition.property];\n const matches = modelValue === condition.value;\n // If negate is true (for \"else\" case), invert the condition\n return condition.negate ? matches : !matches;\n },\n },\n };\n\n // Add each property from the conditional schema to the field group\n Object.keys(conditionalSchema.properties).forEach((property) => {\n const propSchema = conditionalSchema.properties[property] as JSONSchema7;\n if (!propSchema) {\n return;\n }\n const isRequired =\n Array.isArray(conditionalSchema.required) && conditionalSchema.required.indexOf(property) !== -1;\n const conditionalField = this._toFieldConfig(propSchema, {\n ...options,\n key: property,\n isOptional: !isRequired,\n resetOnHide: true,\n });\n conditionalFieldGroup.fieldGroup.push(conditionalField);\n });\n\n field.fieldGroup.push(conditionalFieldGroup);\n }\n });\n }\n break;\n }\n case 'array': {\n if (schema.hasOwnProperty('minItems')) {\n field.props.minItems = schema.minItems;\n this.addValidator(field, 'minItems', ({ value }: AbstractControl) => {\n return isEmpty(value) || value.length >= schema.minItems;\n });\n if (!isOptional && schema.minItems > 0 && field.defaultValue === undefined) {\n field.defaultValue = Array.from(new Array(schema.minItems));\n }\n }\n if (schema.hasOwnProperty('maxItems')) {\n field.props.maxItems = schema.maxItems;\n this.addValidator(field, 'maxItems', ({ value }: AbstractControl) => {\n return isEmpty(value) || value.length <= schema.maxItems;\n });\n }\n if (schema.hasOwnProperty('uniqueItems')) {\n field.props.uniqueItems = schema.uniqueItems;\n this.addValidator(field, 'uniqueItems', ({ value }: AbstractControl) => {\n if (isEmpty(value) || !schema.uniqueItems) {\n return true;\n }\n\n const uniqueItems = Array.from(\n new Set(\n value.map((v: any) =>\n JSON.stringify(v, (k, o) => {\n if (isObject(o)) {\n return Object.keys(o)\n .sort()\n .reduce((obj: any, key) => {\n obj[key] = o[key];\n return obj;\n }, {});\n }\n\n return o;\n }),\n ),\n ),\n );\n\n return uniqueItems.length === value.length;\n });\n }\n\n // resolve items schema needed for isEnum check\n if (schema.items && !Array.isArray(schema.items)) {\n schema.items = this.resolveSchema(<JSONSchema7>schema.items, options);\n }\n\n // TODO: remove isEnum check once adding an option to skip extension\n if (!this.isEnum(schema)) {\n field.fieldArray = (root: FormlyFieldConfig) => {\n const length = root.fieldGroup ? root.fieldGroup.length : 0;\n const items = schema.items as JSONSchema7 | JSONSchema7[];\n if (!Array.isArray(items)) {\n if (!items) {\n return {};\n }\n\n const isMultiSchema = items.oneOf || items.anyOf;\n\n // When items is a single schema, the additionalItems keyword is meaningless, and it should not be used.\n const f = this._toFieldConfig(\n items,\n isMultiSchema ? { ...options, key: `${length}`, isOptional: false } : { ...options, isOptional: false },\n );\n\n if (isMultiSchema && !hasKey(f)) {\n f.key = null;\n }\n\n return f;\n }\n\n const itemSchema = items[length] ? items[length] : schema.additionalItems;\n const f = itemSchema ? this._toFieldConfig(<JSONSchema7>itemSchema, options) : {};\n if (f.props) {\n f.props.required = true;\n }\n if (items[length]) {\n f.props.removable = false;\n }\n\n return f;\n };\n }\n break;\n }\n }\n\n if (schema.hasOwnProperty('const')) {\n field.props.const = schema.const;\n this.addValidator(field, 'const', ({ value }: AbstractControl) => value === schema.const);\n if (!field.type) {\n field.defaultValue = schema.const;\n }\n }\n\n if (this.isEnum(schema)) {\n const enumOptions = this.toEnumOptions(schema);\n const multiple = field.type === 'array';\n\n field.type = 'enum';\n field.props.multiple = multiple;\n field.props.options = enumOptions;\n\n const enumValues = enumOptions.map((o) => o.value);\n this.addValidator(field, 'enum', ({ value }: AbstractControl) => {\n if (value === undefined) {\n return true;\n }\n\n if (multiple) {\n return Array.isArray(value) ? value.every((o) => enumValues.includes(o)) : false;\n }\n\n return enumValues.includes(value);\n });\n }\n\n if (schema.oneOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('oneOf', <JSONSchema7[]>schema.oneOf, { ...options, key, shareFormControl: false }),\n ];\n }\n\n if (schema.anyOf && !field.type) {\n delete field.key;\n field.fieldGroup = [\n this.resolveMultiSchema('anyOf', <JSONSchema7[]>schema.anyOf, { ...options, key, shareFormControl: false }),\n ];\n }\n\n // map in possible formlyConfig options from the widget property\n if (schema.widget?.formlyConfig) {\n field = this.mergeFields(field, schema.widget.formlyConfig);\n }\n\n field.templateOptions = field.props;\n // if there is a map function passed in, use it to allow the user to\n // further customize how fields are being mapped\n return options.map ? options.map(field, schema) : field;\n }\n\n private resolveSchema(schema: JSONSchema7, options: IOptions): JSONSchema7 {\n if (schema && schema.$ref) {\n schema = this.resolveDefinition(schema, options);\n }\n\n if (schema && schema.allOf) {\n schema = this.resolveAllOf(schema, options);\n }\n\n // Process if/then/else and store conditionals in options for later processing\n if (schema && (schema.if || schema.then || schema.else)) {\n const conditionalSchemas = this.resolveIfThenElse(schema, options);\n if (conditionalSchemas.length > 0) {\n // Store conditional schemas in options for processing in _toFieldConfig\n options.conditionalSchemas = conditionalSchemas;\n }\n }\n\n return schema;\n }\n\n private resolveAllOf({ allOf, ...baseSchema }: FormlyJSONSchema7, options: IOptions) {\n if (!allOf.length) {\n throw Error(`allOf array can not be empty ${allOf}.`);\n }\n\n return (allOf as FormlyJSONSchema7[]).reduce((base: FormlyJSONSchema7, schema: FormlyJSONSchema7) => {\n schema = this.resolveSchema(schema, options);\n if (base.required && schema.required) {\n base.required = [...base.required, ...schema.required];\n }\n\n if (schema.uniqueItems) {\n base.uniqueItems = schema.uniqueItems;\n }\n\n // resolve to min value\n (\n ['maxLength', 'maximum', 'exclusiveMaximum', 'maxItems', 'maxProperties'] as (keyof FormlyJSONSchema7)[]\n ).forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n (base as any)[prop] = base[prop] < schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n // resolve to max value\n (\n ['minLength', 'minimum', 'exclusiveMinimum', 'minItems', 'minProperties'] as (keyof FormlyJSONSchema7)[]\n ).forEach((prop) => {\n if (!isEmpty(base[prop]) && !isEmpty(schema[prop])) {\n (base as any)[prop] = base[prop] > schema[prop] ? base[prop] : schema[prop];\n }\n });\n\n return reverseDeepMerge(base, schema);\n }, baseSchema);\n }\n\n private resolveMultiSchema(mode: 'oneOf' | 'anyOf', schemas: JSONSchema7[], options: IOptions): FormlyFieldConfig {\n const isRecursive = this.isRecursiveMultiSchema(schemas, options);\n const fieldGroup = schemas.map((s, i) => {\n const expressions: FormlyFieldConfig['expressions'] = {\n hide: (f, forceUpdate?: boolean) => {\n if (options.skipMultiSchemaValidation) {\n return true;\n }\n\n const control = f.parent.parent.fieldGroup[0].formControl;\n if (control.value === -1 || forceUpdate) {\n let value = f.parent.fieldGroup\n .map(\n (f, i) =>\n [f, i, this.isFieldValid(f, i, schemas, options, isRecursive)] as [\n FormlyFieldConfig,\n number,\n boolean,\n ],\n )\n .sort(([f1, i1, f1Valid], [f2, i2, f2Valid]) => {\n if (f1Valid !== f2Valid) {\n return f2Valid ? 1 : -1;\n }\n\n const schemaField1 = isRecursive ? this.getSchemaField(schemas[i1]) || f1 : f1;\n const schemaField2 = isRecursive ? this.getSchemaField(schemas[i2]) || f2 : f2;\n const matchedFields1 = totalMatchedFields(schemaField1);\n const matchedFields2 = totalMatchedFields(schemaField2);\n if (matchedFields1 === matchedFields2) {\n if (schemaField1.props?.disabled === schemaField2.props?.disabled) {\n return 0;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n }\n\n return matchedFields2 > matchedFields1 ? 1 : -1;\n })\n .map(([, i]) => i);\n\n if (mode === 'anyOf') {\n const definedValue = value.filter((i) => totalMatchedFields(f.parent.fieldGroup[i]));\n value = definedValue.length > 0 ? definedValue : [value[0] || 0];\n }\n\n value = value.length > 0 ? value : [0];\n control.setValue(mode === 'anyOf' ? value : value[0]);\n }\n\n const hide = Array.isArray(control.value) ? control.value.indexOf(i) === -1 : control.value !== i;\n if (isRecursive && !hide) {\n this.ensureMultiSchemaField(f, s, options);\n }\n\n return hide;\n },\n };\n\n return isRecursive\n ? this.createMultiSchemaField(s, options, expressions)\n : {\n ...this._toFieldConfig(s, { ...options, resetOnHide: true }),\n expressions,\n };\n });\n\n return {\n type: 'multischema',\n fieldGroup: [\n {\n type: 'enum',\n defaultValue: -1,\n props: {\n multiple: mode === 'anyOf',\n options: schemas.map((s, i) => ({ label: s.title, value: i, disabled: s.readOnly })),\n },\n hooks: {\n onInit: (f) => f.formControl.valueChanges.pipe(tap(() => f.options.detectChanges(f.parent))),\n },\n },\n {\n fieldGroup,\n },\n ],\n };\n }\n\n private createMultiSchemaField(\n schema: JSONSchema7,\n options: IOptions,\n expressions: FormlyFieldConfig['expressions'],\n ): FormlyFieldConfig {\n return {\n expressions,\n hooks: {\n onInit: (f) => {\n if (f.hide === false) {\n this.ensureMultiSchemaField(f, schema, options);\n }\n },\n },\n };\n }\n\n private ensureMultiSchemaField(\n field: FormlyFieldConfig & { _jsonSchemaFormlyField?: boolean },\n schema: JSONSchema7,\n options: IOptions,\n ) {\n if (field._jsonSchemaFormlyField) {\n return;\n }\n\n const expressions = field.expressions;\n const hooks = field.hooks;\n const mutableField = field as unknown as Record<string, unknown>;\n delete mutableField['formControl'];\n delete mutableField['_keyPath'];\n\n Object.keys(field).forEach((prop) => {\n delete mutableField[prop];\n });\n\n Object.assign(field, this._toFieldConfig(schema, { ...options, resetOnHide: true }));\n field.expressions = expressions;\n field.hooks = hooks;\n\n Object.defineProperty(field, '_jsonSchemaFormlyField', {\n value: true,\n configurable: true,\n });\n\n field.options?.build(field);\n }\n\n private getSchemaField(schema: JSONSchema7): FormlyFieldConfig | undefined {\n return (schema as JSONSchema7 & { _field?: FormlyFieldConfig })._field?.fieldGroup?.[0];\n }\n\n private isRecursiveMultiSchema(schemas: JSONSchema7[], options: IOptions): boolean {\n const visited = new WeakSet<object>();\n const visit = (schema: JSONSchema7Definition): boolean => {\n if (!schema || typeof schema !== 'object') {\n return false;\n }\n\n if (visited.has(schema)) {\n return false;\n }\n\n visited.add(schema);\n if (schema.$ref) {\n const definition = this.getDefinition(schema.$ref, options);\n return !!definition && (definition.oneOf === schemas || definition.anyOf === schemas || visit(definition));\n }\n\n if (schema.oneOf === schemas || schema.anyOf === schemas) {\n return true;\n }\n\n const children: JSONSchema7Definition[] = [];\n if (schema.properties) {\n children.push(...Object.values(schema.properties));\n }\n\n if (schema.items) {\n children.push(...(Array.isArray(schema.items) ? schema.items : [schema.items]));\n }\n\n if (schema.additionalItems && typeof schema.additionalItems === 'object') {\n children.push(schema.additionalItems);\n }\n\n if (schema.allOf) {\n children.push(...(schema.allOf as JSONSchema7Definition[]));\n }\n\n if (schema.oneOf && schema.oneOf !== schemas) {\n children.push(...(schema.oneOf as JSONSchema7Definition[]));\n }\n\n if (schema.anyOf && schema.anyOf !== schemas) {\n children.push(...(schema.anyOf as JSONSchema7Definition[]));\n }\n\n if (schema.dependencies) {\n Object.values(schema.dependencies).forEach((dependency) => {\n if (dependency && !Array.isArray(dependency)) {\n children.push(dependency);\n }\n });\n }\n\n (['not', 'if', 'then', 'else'] as (keyof JSONSchema7)[]).forEach((key) => {\n const child = schema[key];\n if (child && typeof child === 'object') {\n children.push(child as JSONSchema7Definition);\n }\n });\n\n return children.some(visit);\n };\n\n return schemas.some(visit);\n }\n\n private getDefinition(ref: string, options: IOptions): FormlyJSONSchema7 | null {\n const [uri, pointer] = ref.split('#/');\n if (uri || !pointer) {\n return null;\n }\n\n let definition: JSONSchema7Definition = options.schema;\n for (const path of pointer.split('/')) {\n if (!definition || typeof definition !== 'object' || !definition.hasOwnProperty(path)) {\n return null;\n }\n\n definition = (definition as Record<string, JSONSchema7Definition>)[path];\n }\n\n return typeof definition === 'object' ? (definition as FormlyJSONSchema7) : null;\n }\n\n private resolveDefinition(schema: FormlyJSONSchema7, options: IOptions): FormlyJSONSchema7 {\n const [uri, pointer] = schema.$ref.split('#/');\n if (uri) {\n throw Error(`Remote schemas for ${schema.$ref} not supported yet.`);\n }\n\n const definition = !pointer\n ? null\n : pointer\n .split('/')\n .reduce((def, path) => (def?.hasOwnProperty(path) ? (def as any)[path] : null), options.schema);\n\n if (!definition) {\n throw Error(`Cannot find a definition for ${schema.$ref}.`);\n }\n\n if (definition.$ref) {\n return this.resolveDefinition(definition, options);\n }\n\n return {\n ...definition,\n ...['title', 'description', 'default', 'widget'].reduce((annotation, p) => {\n if (schema.hasOwnProperty(p)) {\n annotation[p] = (schema as any)[p];\n }\n\n return annotation;\n }, {} as any),\n };\n }\n\n private resolveDependencies(schema: JSONSchema7) {\n const propDeps: { [id: string]: string[] } = {};\n const schemaDeps: { [id: string]: JSONSchema7 } = {};\n\n Object.keys(schema.dependencies || {}).forEach((prop) => {\n const dependency = schema.dependencies[prop] as JSONSchema7;\n if (Array.isArray(dependency)) {\n // Property dependencies\n dependency.forEach((dep) => {\n if (!propDeps[dep]) {\n propDeps[dep] = [prop];\n } else {\n propDeps[dep].push(prop);\n }\n });\n } else {\n // schema dependencies\n schemaDeps[prop] = dependency;\n }\n });\n\n return { propDeps, schemaDeps };\n }\n\n private extractIfCondition(ifSchema: JSONSchema7): { property: string; value: any } | null {\n // Extract the property and const value from the \"if\" schema\n // Supports: { \"properties\": { \"propName\": { \"const\": value } } }\n if (ifSchema.properties) {\n const propName = Object.keys(ifSchema.properties)[0];\n if (propName) {\n const propSchema = ifSchema.properties[propName] as JSONSchema7;\n if (propSchema && propSchema.hasOwnProperty('const')) {\n return { property: propName, value: propSchema.const };\n }\n }\n }\n return null;\n }\n\n private resolveIfThenElse(schema: JSONSchema7, options: IOptions): JSONSchema7[] {\n // Process if/then/else and return array of conditional schemas to add to fieldGroup\n const conditionalSchemas: JSONSchema7[] = [];\n\n if (schema.if && typeof schema.if === 'object') {\n const condition = this.extractIfCondition(schema.if as JSONSchema7);\n if (condition) {\n // Process \"then\" branch\n if (schema.then && typeof schema.then === 'object') {\n const resolvedSchema = this.resolveConditionalSchema(schema.then as JSONSchema7, options);\n conditionalSchemas.push({\n ...resolvedSchema,\n _ifCondition: condition,\n } as any);\n }\n\n // Process \"else\" branch\n if (schema.else && typeof schema.else === 'object') {\n const resolvedSchema = this.resolveConditionalSchema(schema.else as JSONSchema7, options);\n conditionalSchemas.push({\n ...resolvedSchema,\n _ifCondition: { property: condition.property, value: condition.value, negate: true },\n } as any);\n }\n }\n }\n\n return conditionalSchemas;\n }\n\n private resolveConditionalSchema(conditionalSchema: JSONSchema7, options: IOptions): JSONSchema7 {\n // Resolve $ref and allOf if present in conditional schema\n // Note: We don't use resolveSchema here to avoid recursive processing of nested if/then/else\n let resolved = conditionalSchema;\n if (conditionalSchema.$ref) {\n resolved = this.resolveDefinition(conditionalSchema, options);\n }\n if (resolved.allOf) {\n resolved = this.resolveAllOf(resolved, options);\n }\n return resolved;\n }\n\n private guessSchemaType(schema: JSONSchema7) {\n const type = schema?.type;\n if (!type && schema?.properties) {\n return ['object'];\n }\n\n if (Array.isArray(type)) {\n if (type.length === 1) {\n return type;\n }\n\n if (type.length === 2 && type.indexOf('null') !== -1) {\n return type.sort((t1) => (t1 == 'null' ? 1 : -1));\n }\n\n return type;\n }\n\n return type ? [type] : [];\n }\n\n private addValidator(field: FormlyFieldConfig, name: string, validator: FormlyFieldConfig['validators']) {\n field.validators = field.validators || {};\n field.validators[name] = validator;\n }\n\n private isEnum(schema: JSONSchema7): boolean {\n return (\n !!schema.enum ||\n (schema.anyOf && (schema.anyOf as JSONSchema7[]).every(isConst)) ||\n (schema.oneOf && (schema.oneOf as JSONSchema7[]).every(isConst)) ||\n (schema.uniqueItems && schema.items && !Array.isArray(schema.items) && this.isEnum(<JSONSchema7>schema.items))\n );\n }\n\n private toEnumOptions(schema: JSONSchema7): { value: any; label: any }[] {\n if (schema.enum) {\n return schema.enum.map((value) => ({ value, label: value }));\n }\n\n const toEnum = (s: JSONSchema7) => {\n const value = s.hasOwnProperty('const') ? s.const : s.enum[0];\n const option: any = { value, label: s.title || value };\n if (s.readOnly) {\n option.disabled = true;\n }\n\n return option;\n };\n\n if (schema.anyOf) {\n return (schema.anyOf as JSONSchema7[]).map(toEnum);\n }\n\n if (schema.oneOf) {\n return (schema.oneOf as JSONSchema7[]).map(toEnum);\n }\n\n return this.toEnumOptions(<JSONSchema7>schema.items);\n }\n\n private isFieldValid(\n root: FormlyFieldConfig & { _schemasFields?: { [key: number]: FormlyFieldConfig } },\n i: number,\n schemas: JSONSchema7[],\n options: IOptions,\n skipMultiSchemaValidation = false,\n ): boolean {\n const schema = schemas[i] as JSONSchema7 & { _field?: FormlyFieldConfig };\n if (!schema._field) {\n Object.defineProperty(schema, '_field', { enumerable: false, writable: true, configurable: true });\n }\n\n let field = schema._field;\n let model = root.model ? root.model : root.fieldArray ? [] : {};\n if (root.model && hasKey(root)) {\n model = { [Array.isArray(root.key) ? root.key.join('.') : root.key]: getFieldValue(root) };\n }\n\n model = clone(model);\n if (!field) {\n field = schema._field = root.options.build({\n form: Array.isArray(model) ? new UntypedFormArray([]) : new UntypedFormGroup({}),\n fieldGroup: [\n this._toFieldConfig(schema, {\n ...options,\n resetOnHide: true,\n ignoreDefault: true,\n skipMultiSchemaValidation,\n map: null,\n }),\n ],\n model,\n options: {},\n });\n } else {\n (field as any).model = model;\n root.options.build(field);\n }\n\n return field.form.valid;\n }\n\n private mergeFields(f1: any, f2: any) {\n for (const prop in f2) {\n const f1Prop = prop === 'templateOptions' ? 'props' : prop;\n if (isObject(f1[f1Prop]) && isObject(f2[prop])) {\n f1[f1Prop] = this.mergeFields(f1[f1Prop], f2[prop]);\n } else if (f2[prop] != null) {\n f1[f1Prop] = f2[prop];\n }\n }\n\n return f1;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["hasKey","getFieldValue","clone","reverseDeepMerge"],"mappings":"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"}
|
|
@@ -42,11 +42,11 @@ function provideFormlyPreset() {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
class FormlyPresetModule {
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
46
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
47
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyPresetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
46
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: FormlyPresetModule, imports: [i1.FormlyModule] }); }
|
|
47
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyPresetModule, providers: [provideFormlyPreset()], imports: [FormlyModule.forChild({})] }); }
|
|
48
48
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlyPresetModule, decorators: [{
|
|
50
50
|
type: NgModule,
|
|
51
51
|
args: [{
|
|
52
52
|
imports: [FormlyModule.forChild({})],
|
|
@@ -98,28 +98,28 @@ class FormlySelectOptionsPipe {
|
|
|
98
98
|
this._options = new BehaviorSubject(options);
|
|
99
99
|
return this._options.asObservable();
|
|
100
100
|
}
|
|
101
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
102
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlySelectOptionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
102
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: FormlySelectOptionsPipe, isStandalone: true, name: "formlySelectOptions" }); }
|
|
103
103
|
}
|
|
104
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlySelectOptionsPipe, decorators: [{
|
|
105
105
|
type: Pipe,
|
|
106
106
|
args: [{ name: 'formlySelectOptions', standalone: true }]
|
|
107
107
|
}] });
|
|
108
108
|
class LegacyFormlySelectOptionsPipe extends FormlySelectOptionsPipe {
|
|
109
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
110
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
109
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: LegacyFormlySelectOptionsPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
110
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: LegacyFormlySelectOptionsPipe, isStandalone: false, name: "formlySelectOptions" }); }
|
|
111
111
|
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: LegacyFormlySelectOptionsPipe, decorators: [{
|
|
113
113
|
type: Pipe,
|
|
114
114
|
args: [{ name: 'formlySelectOptions', standalone: false }]
|
|
115
115
|
}] });
|
|
116
116
|
|
|
117
117
|
class FormlySelectModule {
|
|
118
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
119
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
120
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlySelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
119
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: FormlySelectModule, declarations: [LegacyFormlySelectOptionsPipe], exports: [LegacyFormlySelectOptionsPipe] }); }
|
|
120
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlySelectModule }); }
|
|
121
121
|
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: FormlySelectModule, decorators: [{
|
|
123
123
|
type: NgModule,
|
|
124
124
|
args: [{
|
|
125
125
|
declarations: [LegacyFormlySelectOptionsPipe],
|
|
@@ -72,10 +72,10 @@ class TestComponent {
|
|
|
72
72
|
constructor(builder) {
|
|
73
73
|
this.builder = builder;
|
|
74
74
|
}
|
|
75
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
76
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TestComponent, deps: [{ token: i1.FormlyFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: TestComponent, isStandalone: false, selector: "formly-test-component", providers: [FormlyFormBuilder], ngImport: i0, template: '', isInline: true }); }
|
|
77
77
|
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: TestComponent, decorators: [{
|
|
79
79
|
type: Component,
|
|
80
80
|
args: [{
|
|
81
81
|
selector: 'formly-test-component',
|