@ngx-formly/core 7.0.0-alpha.0 → 7.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +2 -2
  2. package/esm2022/json-schema/formly-json-schema.service.mjs +4 -4
  3. package/esm2022/lib/components/formly.field.mjs +10 -10
  4. package/esm2022/lib/components/formly.form.mjs +9 -8
  5. package/esm2022/lib/components/formly.template.mjs +8 -8
  6. package/esm2022/lib/core.mjs +3 -3
  7. package/esm2022/lib/core.module.mjs +16 -16
  8. package/esm2022/lib/extensions/core/core.mjs +1 -5
  9. package/esm2022/lib/extensions/field-expression/field-expression.mjs +1 -5
  10. package/esm2022/lib/extensions/field-expression/utils.mjs +1 -1
  11. package/esm2022/lib/extensions/field-form/field-form.mjs +1 -1
  12. package/esm2022/lib/extensions/field-form/utils.mjs +1 -1
  13. package/esm2022/lib/extensions/field-validation/field-validation.mjs +1 -1
  14. package/esm2022/lib/models/fieldconfig.cache.mjs +1 -1
  15. package/esm2022/lib/services/formly.builder.mjs +9 -11
  16. package/esm2022/lib/services/formly.config.mjs +25 -18
  17. package/esm2022/lib/templates/field-array.type.mjs +4 -4
  18. package/esm2022/lib/templates/field-template.type.mjs +5 -5
  19. package/esm2022/lib/templates/field.type.mjs +3 -3
  20. package/esm2022/lib/templates/field.wrapper.mjs +3 -3
  21. package/esm2022/lib/templates/formly.attributes.mjs +20 -6
  22. package/esm2022/lib/templates/formly.group.mjs +3 -3
  23. package/esm2022/lib/templates/formly.validation-message.mjs +20 -5
  24. package/esm2022/lib/utils.mjs +2 -2
  25. package/esm2022/preset/preset-substitution.extension.mjs +1 -1
  26. package/esm2022/preset/preset.module.mjs +4 -4
  27. package/esm2022/preset/public_api.mjs +2 -1
  28. package/esm2022/select/public_api.mjs +2 -2
  29. package/esm2022/select/select-options.pipe.mjs +13 -5
  30. package/esm2022/select/select.module.mjs +8 -8
  31. package/esm2022/testing/component-factory.mjs +5 -5
  32. package/fesm2022/ngx-formly-core-json-schema.mjs +13 -13
  33. package/fesm2022/ngx-formly-core-json-schema.mjs.map +1 -1
  34. package/fesm2022/ngx-formly-core-preset.mjs +7 -7
  35. package/fesm2022/ngx-formly-core-preset.mjs.map +1 -1
  36. package/fesm2022/ngx-formly-core-select.mjs +19 -11
  37. package/fesm2022/ngx-formly-core-select.mjs.map +1 -1
  38. package/fesm2022/ngx-formly-core-testing.mjs +4 -4
  39. package/fesm2022/ngx-formly-core-testing.mjs.map +1 -1
  40. package/fesm2022/ngx-formly-core.mjs +126 -100
  41. package/fesm2022/ngx-formly-core.mjs.map +1 -1
  42. package/lib/core.d.ts +2 -2
  43. package/lib/core.module.d.ts +3 -3
  44. package/lib/models/fieldconfig.cache.d.ts +0 -6
  45. package/lib/services/formly.config.d.ts +4 -3
  46. package/lib/templates/formly.attributes.d.ts +5 -1
  47. package/lib/templates/formly.validation-message.d.ts +5 -1
  48. package/lib/utils.d.ts +2 -2
  49. package/package.json +1 -1
  50. package/preset/public_api.d.ts +1 -0
  51. package/select/public_api.d.ts +1 -1
  52. package/select/select-options.pipe.d.ts +5 -1
  53. package/select/select.module.d.ts +1 -1
  54. package/testing/component-factory.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-formly-core-testing.mjs","sources":["../../../../src/core/testing/src/component-factory.ts","../../../../src/core/testing/src/ngx-formly-core-testing.ts"],"sourcesContent":["import { TestBed, ComponentFixture } from '@angular/core/testing';\nimport { Component, DebugElement, NgModule } from '@angular/core';\nimport { FormlyModule, FormlyFormBuilder, FormlyFieldConfig, ConfigOption } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { By } from '@angular/platform-browser';\n\nfunction setInputs<T>(fixture: ComponentFixture<T>, inputs: T, detectChanges = true) {\n (Object.keys(inputs) as (keyof T)[]).forEach((input) => {\n fixture.componentInstance[input] = inputs[input];\n });\n\n if (detectChanges !== false) {\n fixture.detectChanges();\n }\n}\n\ninterface IComponentOptions<T> extends NgModule {\n template?: string;\n inputs?: T;\n config?: ConfigOption;\n detectChanges?: boolean;\n}\ninterface IFormlyDebugElement<E> extends DebugElement {\n readonly nativeElement: E;\n}\n\nexport function createComponent<T>({\n template,\n inputs,\n config,\n detectChanges,\n imports,\n declarations,\n providers,\n}: IComponentOptions<T>) {\n TestBed.configureTestingModule({\n declarations: [TestComponent, ...(declarations || [])],\n imports: [ReactiveFormsModule, FormlyModule.forRoot(config), ...(imports || [])],\n providers: providers || [],\n teardown: { destroyAfterEach: false },\n }).overrideComponent(TestComponent, {\n set: {\n template,\n inputs: Object.keys(inputs),\n },\n });\n\n const fixture = TestBed.createComponent(TestComponent) as ComponentFixture<T>;\n (Object.keys(inputs) as (keyof T)[]).forEach((input) => {\n fixture.componentInstance[input] = inputs[input];\n });\n\n setInputs(fixture, inputs, detectChanges);\n\n type FixtureUtils = T & {\n fixture: ComponentFixture<T>;\n detectChanges: (typeof fixture)['detectChanges'];\n setInputs: (inputs: Partial<T>) => void;\n query: <E extends Element = Element>(selector: string) => IFormlyDebugElement<E>;\n queryAll: <E extends Element = Element>(selector: string) => IFormlyDebugElement<E>[];\n };\n\n const utils = {\n fixture,\n detectChanges: () => fixture.detectChanges(),\n setInputs: (props) => setInputs(fixture, props),\n query: (selector: string) => fixture.debugElement.query(By.css(selector)),\n queryAll: (selector: string) => fixture.debugElement.queryAll(By.css(selector)),\n } as FixtureUtils;\n\n (Object.keys(inputs) as (keyof T)[]).forEach((input) => {\n Object.defineProperty(utils, input, {\n get: () => fixture.componentInstance[input],\n });\n });\n\n return utils;\n}\n\nexport function createFieldComponent(\n field: FormlyFieldConfig,\n config: IComponentOptions<{ field: FormlyFieldConfig }> = {},\n) {\n const model = field?.model || {};\n const options = field?.options || {};\n delete (field as any)?.model;\n delete (field as any)?.options;\n\n const utils = createComponent<{ field: FormlyFieldConfig }>({\n template: '<formly-field [field]=\"field\"></formly-field>',\n inputs: { field },\n ...config,\n detectChanges: false,\n });\n const builder = (utils.fixture.componentRef.instance as any).builder;\n builder.build({ model, options, fieldGroup: [field] });\n utils.detectChanges();\n\n const setInputs = utils.setInputs;\n utils.setInputs = (props) => {\n if (props.field) {\n builder.build(props.field);\n }\n\n setInputs(props);\n };\n\n return utils;\n}\n\n@Component({\n selector: 'formly-test-component',\n template: '',\n providers: [FormlyFormBuilder],\n standalone: false,\n})\nclass TestComponent {\n constructor(public builder?: FormlyFormBuilder) {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-formly-core-testing.mjs","sources":["../../../../src/core/testing/src/component-factory.ts","../../../../src/core/testing/src/ngx-formly-core-testing.ts"],"sourcesContent":["import { TestBed, ComponentFixture } from '@angular/core/testing';\nimport { Component, DebugElement, NgModule } from '@angular/core';\nimport { FormlyModule, FormlyFormBuilder, FormlyFieldConfig, ConfigOption } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { By } from '@angular/platform-browser';\n\nfunction setInputs<T>(fixture: ComponentFixture<T>, inputs: T, detectChanges = true) {\n (Object.keys(inputs) as (keyof T)[]).forEach((input) => {\n fixture.componentInstance[input] = inputs[input];\n });\n\n if (detectChanges !== false) {\n fixture.detectChanges();\n }\n}\n\ninterface IComponentOptions<T> extends NgModule {\n template?: string;\n inputs?: T;\n config?: ConfigOption;\n detectChanges?: boolean;\n}\ninterface IFormlyDebugElement<E> extends DebugElement {\n readonly nativeElement: E;\n}\n\nexport function createComponent<T>({\n template,\n inputs,\n config,\n detectChanges,\n imports,\n declarations,\n providers,\n}: IComponentOptions<T>) {\n TestBed.configureTestingModule({\n declarations: [TestComponent, ...(declarations || [])],\n imports: [ReactiveFormsModule, FormlyModule.forRoot(config), ...(imports || [])],\n providers: providers || [],\n teardown: { destroyAfterEach: false },\n }).overrideComponent(TestComponent, {\n set: {\n template,\n inputs: Object.keys(inputs),\n },\n });\n\n const fixture = TestBed.createComponent(TestComponent) as ComponentFixture<T>;\n (Object.keys(inputs) as (keyof T)[]).forEach((input) => {\n fixture.componentInstance[input] = inputs[input];\n });\n\n setInputs(fixture, inputs, detectChanges);\n\n type FixtureUtils = T & {\n fixture: ComponentFixture<T>;\n detectChanges: (typeof fixture)['detectChanges'];\n setInputs: (inputs: Partial<T>) => void;\n query: <E extends Element = Element>(selector: string) => IFormlyDebugElement<E>;\n queryAll: <E extends Element = Element>(selector: string) => IFormlyDebugElement<E>[];\n };\n\n const utils = {\n fixture,\n detectChanges: () => fixture.detectChanges(),\n setInputs: (props) => setInputs(fixture, props),\n query: (selector: string) => fixture.debugElement.query(By.css(selector)),\n queryAll: (selector: string) => fixture.debugElement.queryAll(By.css(selector)),\n } as FixtureUtils;\n\n (Object.keys(inputs) as (keyof T)[]).forEach((input) => {\n Object.defineProperty(utils, input, {\n get: () => fixture.componentInstance[input],\n });\n });\n\n return utils;\n}\n\nexport function createFieldComponent(\n field: FormlyFieldConfig,\n config: IComponentOptions<{ field: FormlyFieldConfig }> = {},\n) {\n const model = field?.model || {};\n const options = field?.options || {};\n delete (field as any)?.model;\n delete (field as any)?.options;\n\n const utils = createComponent<{ field: FormlyFieldConfig }>({\n template: '<formly-field [field]=\"field\"></formly-field>',\n inputs: { field },\n ...config,\n detectChanges: false,\n });\n const builder = (utils.fixture.componentRef.instance as any).builder;\n builder.build({ model, options, fieldGroup: [field] });\n utils.detectChanges();\n\n const setInputs = utils.setInputs;\n utils.setInputs = (props) => {\n if (props.field) {\n builder.build(props.field);\n }\n\n setInputs(props);\n };\n\n return utils;\n}\n\n@Component({\n selector: 'formly-test-component',\n template: '',\n providers: [FormlyFormBuilder],\n standalone: false,\n})\nclass TestComponent {\n constructor(public builder?: FormlyFormBuilder) {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Type, TemplateRef, ComponentRef, ChangeDetectorRef, ɵNoopNgZone, VERSION, Directive, ViewChildren, Input, Component, ChangeDetectionStrategy, Injectable, ViewContainerRef, Optional, ViewChild, InjectionToken, Inject, EventEmitter, Output, ContentChildren, NgModule } from '@angular/core';
2
+ import { Type, TemplateRef, ComponentRef, ChangeDetectorRef, ɵNoopNgZone as _NoopNgZone, VERSION, Input, ViewChildren, Directive, ChangeDetectionStrategy, Component, Injectable, ViewContainerRef, ViewChild, Optional, InjectionToken, Inject, EventEmitter, ContentChildren, Output, NgModule } from '@angular/core';
3
3
  import { isObservable, Observable, Subject, of, merge } from 'rxjs';
4
4
  import * as i2 from '@angular/forms';
5
5
  import { AbstractControl, UntypedFormArray, UntypedFormGroup, FormControl, UntypedFormControl, Validators, NgControl } from '@angular/forms';
6
6
  import { tap, map, distinctUntilChanged, startWith, debounceTime, filter, switchMap, take } from 'rxjs/operators';
7
7
  import * as i1 from '@angular/platform-browser';
8
8
  import * as i1$1 from '@angular/common';
9
- import { DOCUMENT, CommonModule } from '@angular/common';
9
+ import { DOCUMENT, AsyncPipe, CommonModule } from '@angular/common';
10
10
 
11
11
  function disableTreeValidityCall(form, callback) {
12
12
  const _updateTreeValidity = form._updateTreeValidity.bind(form);
@@ -299,7 +299,7 @@ function markFieldForCheck(field) {
299
299
  });
300
300
  }
301
301
  function isNoopNgZone(ngZone) {
302
- return ngZone instanceof ɵNoopNgZone;
302
+ return ngZone instanceof _NoopNgZone;
303
303
  }
304
304
  function isHiddenField(field) {
305
305
  const isHidden = (f) => f.hide || f.expressions?.hide || f.hideExpression;
@@ -314,7 +314,7 @@ function isHiddenField(field) {
314
314
  return !setDefaultValue;
315
315
  }
316
316
  function isSignalRequired() {
317
- return +VERSION.major >= 18 && +VERSION.minor >= 1;
317
+ return +VERSION.major > 18 || (+VERSION.major >= 18 && +VERSION.minor >= 1);
318
318
  }
319
319
 
320
320
  function evalStringExpression(expression, argNames) {
@@ -497,10 +497,6 @@ class FieldExpressionExtension {
497
497
  }
498
498
  checkLocked = false;
499
499
  };
500
- field.options._checkField = (f, ignoreCache) => {
501
- console.warn(`Formly: 'options._checkField' is deprecated since v6.0, use 'options.checkExpressions' instead.`);
502
- field.options.checkExpressions(f, ignoreCache);
503
- };
504
500
  }
505
501
  }
506
502
  parseExpressions(field, path, expr) {
@@ -737,10 +733,6 @@ class CoreExtension {
737
733
  if (!options._hiddenFieldsForCheck) {
738
734
  options._hiddenFieldsForCheck = [];
739
735
  }
740
- options._markForCheck = (f) => {
741
- console.warn(`Formly: 'options._markForCheck' is deprecated since v6.0, use 'options.detectChanges' instead.`);
742
- options.detectChanges(f);
743
- };
744
736
  options._detectChanges = (f) => {
745
737
  if (f._componentRefs) {
746
738
  markFieldForCheck(f);
@@ -1130,10 +1122,10 @@ class FieldType {
1130
1122
  get formState() {
1131
1123
  return this.options?.formState || {};
1132
1124
  }
1133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldType, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1134
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FieldType, inputs: { field: "field" }, viewQueries: [{ propertyName: "_formlyControls", predicate: NgControl, descendants: true }], ngImport: i0 }); }
1125
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FieldType, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1126
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FieldType, inputs: { field: "field" }, viewQueries: [{ propertyName: "_formlyControls", predicate: NgControl, descendants: true }], ngImport: i0 }); }
1135
1127
  }
1136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldType, decorators: [{
1128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FieldType, decorators: [{
1137
1129
  type: Directive
1138
1130
  }], propDecorators: { _formlyControls: [{
1139
1131
  type: ViewChildren,
@@ -1160,17 +1152,17 @@ class FormlyTemplateType extends FieldType {
1160
1152
  this.sanitizer = sanitizer;
1161
1153
  this.innerHtml = {};
1162
1154
  }
1163
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyTemplateType, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
1164
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormlyTemplateType, selector: "formly-template", usesInheritance: true, ngImport: i0, template: `<div [innerHtml]="template"></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyTemplateType, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
1156
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormlyTemplateType, selector: "formly-template", usesInheritance: true, ngImport: i0, template: `<div [innerHtml]="template"></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1165
1157
  }
1166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyTemplateType, decorators: [{
1158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyTemplateType, decorators: [{
1167
1159
  type: Component,
1168
1160
  args: [{
1169
1161
  selector: 'formly-template',
1170
1162
  template: `<div [innerHtml]="template"></div>`,
1171
1163
  changeDetection: ChangeDetectionStrategy.OnPush,
1172
1164
  }]
1173
- }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
1165
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }] });
1174
1166
 
1175
1167
  /**
1176
1168
  * Maintains list of formly config options. This can be used to register new field type.
@@ -1194,6 +1186,7 @@ class FormlyConfig {
1194
1186
  this.extensions = {};
1195
1187
  this.presets = {};
1196
1188
  this.extensionsByPriority = {};
1189
+ this.componentRefs = {};
1197
1190
  }
1198
1191
  addConfig(config) {
1199
1192
  if (Array.isArray(config)) {
@@ -1292,22 +1285,28 @@ class FormlyConfig {
1292
1285
  if (!type) {
1293
1286
  return null;
1294
1287
  }
1295
- if (!type.component || type._componentRef) {
1296
- return type._componentRef;
1297
- }
1298
- const { _viewContainerRef, _injector } = field.options;
1299
- if (!_viewContainerRef || !_injector) {
1288
+ if (!type.component) {
1300
1289
  return null;
1301
1290
  }
1302
- const componentRef = _viewContainerRef.createComponent(type.component, { injector: _injector });
1303
- defineHiddenProp(type, '_componentRef', componentRef);
1304
- try {
1305
- componentRef.destroy();
1306
- }
1307
- catch (e) {
1308
- console.error(`An error occurred while destroying the Formly component type "${field.type}"`, e);
1291
+ if (!this.componentRefs[type.name]) {
1292
+ const { _viewContainerRef, _injector } = field.options;
1293
+ if (!_viewContainerRef || !_injector) {
1294
+ return null;
1295
+ }
1296
+ const componentRef = _viewContainerRef.createComponent(type.component, { injector: _injector });
1297
+ this.componentRefs[type.name] = componentRef;
1298
+ try {
1299
+ componentRef.destroy();
1300
+ }
1301
+ catch (e) {
1302
+ console.error(`An error occurred while destroying the Formly component type "${field.type}"`, e);
1303
+ }
1309
1304
  }
1310
- return type._componentRef;
1305
+ return this.componentRefs[type.name];
1306
+ }
1307
+ /** @ignore @internal */
1308
+ clearRefs() {
1309
+ this.componentRefs = {};
1311
1310
  }
1312
1311
  setWrapper(options) {
1313
1312
  this.wrappers[options.name] = options;
@@ -1390,10 +1389,10 @@ class FormlyConfig {
1390
1389
  this.types[name].wrappers = extendedType.wrappers;
1391
1390
  }
1392
1391
  }
1393
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1394
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyConfig, providedIn: 'root' }); }
1392
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1393
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyConfig, providedIn: 'root' }); }
1395
1394
  }
1396
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyConfig, decorators: [{
1395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyConfig, decorators: [{
1397
1396
  type: Injectable,
1398
1397
  args: [{ providedIn: 'root' }]
1399
1398
  }] });
@@ -1405,22 +1404,22 @@ class FormlyTemplate {
1405
1404
  ngOnChanges() {
1406
1405
  this.name = this.name || 'formly-group';
1407
1406
  }
1408
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1409
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FormlyTemplate, selector: "[formlyTemplate]", inputs: { name: ["formlyTemplate", "name"] }, usesOnChanges: true, ngImport: i0 }); }
1407
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
1408
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FormlyTemplate, selector: "[formlyTemplate]", inputs: { name: ["formlyTemplate", "name"] }, usesOnChanges: true, ngImport: i0 }); }
1410
1409
  }
1411
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyTemplate, decorators: [{
1410
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyTemplate, decorators: [{
1412
1411
  type: Directive,
1413
1412
  args: [{ selector: '[formlyTemplate]' }]
1414
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { name: [{
1413
+ }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { name: [{
1415
1414
  type: Input,
1416
1415
  args: ['formlyTemplate']
1417
1416
  }] } });
1418
1417
  // workarround for https://github.com/angular/angular/issues/43227#issuecomment-904173738
1419
1418
  class FormlyFieldTemplates {
1420
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyFieldTemplates, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1421
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyFieldTemplates }); }
1419
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyFieldTemplates, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1420
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyFieldTemplates }); }
1422
1421
  }
1423
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyFieldTemplates, decorators: [{
1422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyFieldTemplates, decorators: [{
1424
1423
  type: Injectable
1425
1424
  }] });
1426
1425
 
@@ -1661,7 +1660,7 @@ class FormlyField {
1661
1660
  }
1662
1661
  const { updateOn, debounce } = field.modelOptions;
1663
1662
  if ((!updateOn || updateOn === 'change') && debounce?.default > 0) {
1664
- valueChanges = control.valueChanges.pipe(debounceTime(debounce.default));
1663
+ valueChanges = valueChanges.pipe(debounceTime(debounce.default));
1665
1664
  }
1666
1665
  const sub = valueChanges.subscribe((value) => {
1667
1666
  // workaround for https://github.com/angular/angular/issues/13792
@@ -1685,38 +1684,38 @@ class FormlyField {
1685
1684
  templateFieldsSubs.forEach((unsubscribe) => unsubscribe());
1686
1685
  };
1687
1686
  }
1688
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyField, deps: [{ token: FormlyConfig }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: FormlyFieldTemplates, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1689
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormlyField, isStandalone: true, selector: "formly-field", inputs: { field: "field" }, viewQueries: [{ propertyName: "viewContainerRef", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: '<ng-template #container></ng-template>', isInline: true, styles: [":host:empty{display:none}\n"] }); }
1687
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyField, deps: [{ token: FormlyConfig }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: FormlyFieldTemplates, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1688
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormlyField, isStandalone: true, selector: "formly-field", inputs: { field: "field" }, viewQueries: [{ propertyName: "viewContainerRef", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: '<ng-template #container></ng-template>', isInline: true, styles: [":host:empty{display:none}\n"] }); }
1690
1689
  }
1691
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyField, decorators: [{
1690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyField, decorators: [{
1692
1691
  type: Component,
1693
1692
  args: [{ selector: 'formly-field', template: '<ng-template #container></ng-template>', standalone: true, styles: [":host:empty{display:none}\n"] }]
1694
- }], ctorParameters: function () { return [{ type: FormlyConfig }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: FormlyFieldTemplates, decorators: [{
1693
+ }], ctorParameters: () => [{ type: FormlyConfig }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: FormlyFieldTemplates, decorators: [{
1695
1694
  type: Optional
1696
- }] }]; }, propDecorators: { field: [{
1695
+ }] }], propDecorators: { field: [{
1697
1696
  type: Input
1698
1697
  }], viewContainerRef: [{
1699
1698
  type: ViewChild,
1700
1699
  args: ['container', { read: ViewContainerRef, static: true }]
1701
1700
  }] } });
1702
1701
  class LegacyFormlyField extends FormlyField {
1703
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LegacyFormlyField, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1704
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LegacyFormlyField, selector: "formly-field", usesInheritance: true, ngImport: i0, template: '<ng-template #container></ng-template>', isInline: true, styles: [":host:empty{display:none}\n"] }); }
1702
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LegacyFormlyField, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1703
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LegacyFormlyField, selector: "formly-field", usesInheritance: true, ngImport: i0, template: '<ng-template #container></ng-template>', isInline: true, styles: [":host:empty{display:none}\n"] }); }
1705
1704
  }
1706
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LegacyFormlyField, decorators: [{
1705
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LegacyFormlyField, decorators: [{
1707
1706
  type: Component,
1708
1707
  args: [{ selector: 'formly-field', template: '<ng-template #container></ng-template>', standalone: false, styles: [":host:empty{display:none}\n"] }]
1709
1708
  }] });
1710
1709
 
1711
1710
  /** @ignore */
1712
1711
  class FormlyGroup extends FieldType {
1713
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyGroup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1714
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormlyGroup, selector: "formly-group", host: { properties: { "class": "field.fieldGroupClassName || \"\"" } }, usesInheritance: true, ngImport: i0, template: `
1712
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyGroup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1713
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormlyGroup, selector: "formly-group", host: { properties: { "class": "field.fieldGroupClassName || \"\"" } }, usesInheritance: true, ngImport: i0, template: `
1715
1714
  <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
1716
1715
  <ng-content></ng-content>
1717
1716
  `, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: LegacyFormlyField, selector: "formly-field" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1718
1717
  }
1719
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyGroup, decorators: [{
1718
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyGroup, decorators: [{
1720
1719
  type: Component,
1721
1720
  args: [{
1722
1721
  selector: 'formly-group',
@@ -1765,7 +1764,9 @@ class FormlyFormBuilder {
1765
1764
  this.injector = injector;
1766
1765
  this.viewContainerRef = viewContainerRef;
1767
1766
  this.parentForm = parentForm;
1768
- configs.forEach((c) => config.addConfig(c));
1767
+ if (configs) {
1768
+ configs.forEach((c) => config.addConfig(c));
1769
+ }
1769
1770
  }
1770
1771
  buildForm(form, fieldGroup = [], model, options) {
1771
1772
  this.build({ fieldGroup, model, form, options });
@@ -1815,10 +1816,6 @@ class FormlyFormBuilder {
1815
1816
  defineHiddenProp(options, '_injector', this.injector);
1816
1817
  }
1817
1818
  if (!options.build) {
1818
- options._buildForm = () => {
1819
- console.warn(`Formly: 'options._buildForm' is deprecated since v6.0, use 'options.build' instead.`);
1820
- this.build(field);
1821
- };
1822
1819
  options.build = (f = field) => {
1823
1820
  this.build(f);
1824
1821
  return f;
@@ -1835,13 +1832,13 @@ class FormlyFormBuilder {
1835
1832
  }
1836
1833
  }
1837
1834
  }
1838
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyFormBuilder, deps: [{ token: FormlyConfig }, { token: i0.Injector }, { token: i0.ViewContainerRef, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: FORMLY_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1839
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyFormBuilder, providedIn: 'root' }); }
1835
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyFormBuilder, deps: [{ token: FormlyConfig }, { token: i0.Injector }, { token: i0.ViewContainerRef, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: FORMLY_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1836
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyFormBuilder, providedIn: 'root' }); }
1840
1837
  }
1841
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyFormBuilder, decorators: [{
1838
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyFormBuilder, decorators: [{
1842
1839
  type: Injectable,
1843
1840
  args: [{ providedIn: 'root' }]
1844
- }], ctorParameters: function () { return [{ type: FormlyConfig }, { type: i0.Injector }, { type: i0.ViewContainerRef, decorators: [{
1841
+ }], ctorParameters: () => [{ type: FormlyConfig }, { type: i0.Injector }, { type: i0.ViewContainerRef, decorators: [{
1845
1842
  type: Optional
1846
1843
  }] }, { type: i2.FormGroupDirective, decorators: [{
1847
1844
  type: Optional
@@ -1850,7 +1847,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1850
1847
  }, {
1851
1848
  type: Inject,
1852
1849
  args: [FORMLY_CONFIG]
1853
- }] }]; } });
1850
+ }] }] });
1854
1851
 
1855
1852
  /**
1856
1853
  * The `<form-form>` component is the main container of the form,
@@ -1920,6 +1917,7 @@ class FormlyForm {
1920
1917
  }
1921
1918
  ngOnDestroy() {
1922
1919
  this.valueChangesUnsubscribe();
1920
+ this.config.clearRefs();
1923
1921
  }
1924
1922
  checkExpressionChange() {
1925
1923
  this.field.options.checkExpressions?.(this.field);
@@ -1961,10 +1959,10 @@ class FormlyForm {
1961
1959
  Object.keys(field).forEach((p) => (this.field[p] = field[p]));
1962
1960
  }
1963
1961
  }
1964
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyForm, deps: [{ token: FormlyFormBuilder }, { token: FormlyConfig }, { token: i0.NgZone }, { token: FormlyFieldTemplates }], target: i0.ɵɵFactoryTarget.Component }); }
1965
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormlyForm, isStandalone: true, selector: "formly-form", inputs: { form: "form", model: "model", fields: "fields", options: "options" }, outputs: { modelChange: "modelChange" }, providers: [FormlyFormBuilder, FormlyFieldTemplates], queries: [{ propertyName: "templates", predicate: FormlyTemplate }], usesOnChanges: true, ngImport: i0, template: '<formly-field [field]="field"></formly-field>', isInline: true, dependencies: [{ kind: "component", type: FormlyField, selector: "formly-field", inputs: ["field"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1962
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyForm, deps: [{ token: FormlyFormBuilder }, { token: FormlyConfig }, { token: i0.NgZone }, { token: FormlyFieldTemplates }], target: i0.ɵɵFactoryTarget.Component }); }
1963
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormlyForm, isStandalone: true, selector: "formly-form", inputs: { form: "form", model: "model", fields: "fields", options: "options" }, outputs: { modelChange: "modelChange" }, providers: [FormlyFormBuilder, FormlyFieldTemplates], queries: [{ propertyName: "templates", predicate: FormlyTemplate }], usesOnChanges: true, ngImport: i0, template: '<formly-field [field]="field"></formly-field>', isInline: true, dependencies: [{ kind: "component", type: FormlyField, selector: "formly-field", inputs: ["field"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1966
1964
  }
1967
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyForm, decorators: [{
1965
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyForm, decorators: [{
1968
1966
  type: Component,
1969
1967
  args: [{
1970
1968
  selector: 'formly-form',
@@ -1974,7 +1972,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1974
1972
  changeDetection: ChangeDetectionStrategy.OnPush,
1975
1973
  standalone: true,
1976
1974
  }]
1977
- }], ctorParameters: function () { return [{ type: FormlyFormBuilder }, { type: FormlyConfig }, { type: i0.NgZone }, { type: FormlyFieldTemplates }]; }, propDecorators: { form: [{
1975
+ }], ctorParameters: () => [{ type: FormlyFormBuilder }, { type: FormlyConfig }, { type: i0.NgZone }, { type: FormlyFieldTemplates }], propDecorators: { form: [{
1978
1976
  type: Input
1979
1977
  }], model: [{
1980
1978
  type: Input
@@ -1989,10 +1987,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1989
1987
  args: [FormlyTemplate]
1990
1988
  }] } });
1991
1989
  class LegacyFormlyForm extends FormlyForm {
1992
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LegacyFormlyForm, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1993
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LegacyFormlyForm, selector: "formly-form", providers: [FormlyFormBuilder, FormlyFieldTemplates], usesInheritance: true, ngImport: i0, template: '<formly-field [field]="field"></formly-field>', isInline: true, dependencies: [{ kind: "component", type: LegacyFormlyField, selector: "formly-field" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1990
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LegacyFormlyForm, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1991
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LegacyFormlyForm, selector: "formly-form", providers: [FormlyFormBuilder, FormlyFieldTemplates], usesInheritance: true, ngImport: i0, template: '<formly-field [field]="field"></formly-field>', isInline: true, dependencies: [{ kind: "component", type: LegacyFormlyField, selector: "formly-field" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1994
1992
  }
1995
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LegacyFormlyForm, decorators: [{
1993
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LegacyFormlyForm, decorators: [{
1996
1994
  type: Component,
1997
1995
  args: [{
1998
1996
  selector: 'formly-form',
@@ -2165,26 +2163,40 @@ class FormlyAttributes {
2165
2163
  removeAttribute(attr) {
2166
2164
  this.renderer.removeAttribute(this.elementRef.nativeElement, attr);
2167
2165
  }
2168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyAttributes, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
2169
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: { field: ["formlyAttributes", "field"], id: "id" }, host: { listeners: { "change": "onHostChange($event)" } }, usesOnChanges: true, ngImport: i0 }); }
2166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyAttributes, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
2167
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FormlyAttributes, isStandalone: true, selector: "[formlyAttributes]", inputs: { field: ["formlyAttributes", "field"], id: "id" }, host: { listeners: { "change": "onHostChange($event)" } }, usesOnChanges: true, ngImport: i0 }); }
2170
2168
  }
2171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyAttributes, decorators: [{
2169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyAttributes, decorators: [{
2172
2170
  type: Directive,
2173
2171
  args: [{
2174
2172
  selector: '[formlyAttributes]',
2173
+ standalone: true,
2175
2174
  host: {
2176
2175
  '(change)': 'onHostChange($event)',
2177
2176
  },
2178
2177
  }]
2179
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
2178
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
2180
2179
  type: Inject,
2181
2180
  args: [DOCUMENT]
2182
- }] }]; }, propDecorators: { field: [{
2181
+ }] }], propDecorators: { field: [{
2183
2182
  type: Input,
2184
2183
  args: ['formlyAttributes']
2185
2184
  }], id: [{
2186
2185
  type: Input
2187
2186
  }] } });
2187
+ class LegacyFormlyAttributes extends FormlyAttributes {
2188
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LegacyFormlyAttributes, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
2189
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: LegacyFormlyAttributes, selector: "[formlyAttributes]", host: { listeners: { "change": "onHostChange($event)" } }, usesInheritance: true, ngImport: i0 }); }
2190
+ }
2191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LegacyFormlyAttributes, decorators: [{
2192
+ type: Directive,
2193
+ args: [{
2194
+ selector: '[formlyAttributes]',
2195
+ host: {
2196
+ '(change)': 'onHostChange($event)',
2197
+ },
2198
+ }]
2199
+ }] });
2188
2200
 
2189
2201
  /**
2190
2202
  * The `<formly-validation-message>` component renders the error message of a given `field`.
@@ -2233,19 +2245,33 @@ class FormlyValidationMessage {
2233
2245
  }
2234
2246
  return undefined;
2235
2247
  }
2236
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyValidationMessage, deps: [{ token: FormlyConfig }], target: i0.ɵɵFactoryTarget.Component }); }
2237
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormlyValidationMessage, selector: "formly-validation-message", inputs: { field: "field" }, usesOnChanges: true, ngImport: i0, template: '{{ errorMessage$ | async }}', isInline: true, dependencies: [{ kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2248
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyValidationMessage, deps: [{ token: FormlyConfig }], target: i0.ɵɵFactoryTarget.Component }); }
2249
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormlyValidationMessage, isStandalone: true, selector: "formly-validation-message", inputs: { field: "field" }, usesOnChanges: true, ngImport: i0, template: '{{ errorMessage$ | async }}', isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2238
2250
  }
2239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyValidationMessage, decorators: [{
2251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyValidationMessage, decorators: [{
2240
2252
  type: Component,
2241
2253
  args: [{
2242
2254
  selector: 'formly-validation-message',
2243
2255
  template: '{{ errorMessage$ | async }}',
2244
2256
  changeDetection: ChangeDetectionStrategy.OnPush,
2257
+ standalone: true,
2258
+ imports: [AsyncPipe],
2245
2259
  }]
2246
- }], ctorParameters: function () { return [{ type: FormlyConfig }]; }, propDecorators: { field: [{
2260
+ }], ctorParameters: () => [{ type: FormlyConfig }], propDecorators: { field: [{
2247
2261
  type: Input
2248
2262
  }] } });
2263
+ class LegacyFormlyValidationMessage extends FormlyValidationMessage {
2264
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LegacyFormlyValidationMessage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2265
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LegacyFormlyValidationMessage, selector: "formly-validation-message", usesInheritance: true, ngImport: i0, template: '{{ errorMessage$ | async }}', isInline: true, dependencies: [{ kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2266
+ }
2267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LegacyFormlyValidationMessage, decorators: [{
2268
+ type: Component,
2269
+ args: [{
2270
+ selector: 'formly-validation-message',
2271
+ template: '{{ errorMessage$ | async }}',
2272
+ changeDetection: ChangeDetectionStrategy.OnPush,
2273
+ }]
2274
+ }] });
2249
2275
 
2250
2276
  class FieldArrayType extends FieldType {
2251
2277
  onPopulate(field) {
@@ -2318,10 +2344,10 @@ class FieldArrayType extends FieldType {
2318
2344
  this.options._hiddenFieldsForCheck.push({ field: f });
2319
2345
  }
2320
2346
  }
2321
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldArrayType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
2322
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FieldArrayType, usesInheritance: true, ngImport: i0 }); }
2347
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FieldArrayType, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
2348
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FieldArrayType, usesInheritance: true, ngImport: i0 }); }
2323
2349
  }
2324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldArrayType, decorators: [{
2350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FieldArrayType, decorators: [{
2325
2351
  type: Directive
2326
2352
  }] });
2327
2353
 
@@ -2330,10 +2356,10 @@ class FieldWrapper extends FieldType {
2330
2356
  set _staticContent(content) {
2331
2357
  this.fieldComponent = content;
2332
2358
  }
2333
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldWrapper, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
2334
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FieldWrapper, viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "_staticContent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0 }); }
2359
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FieldWrapper, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
2360
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FieldWrapper, viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "_staticContent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0 }); }
2335
2361
  }
2336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FieldWrapper, decorators: [{
2362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FieldWrapper, decorators: [{
2337
2363
  type: Directive
2338
2364
  }], propDecorators: { fieldComponent: [{
2339
2365
  type: ViewChild,
@@ -2365,40 +2391,40 @@ class FormlyModule {
2365
2391
  ],
2366
2392
  };
2367
2393
  }
2368
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2369
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FormlyModule, declarations: [FormlyTemplate,
2394
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2395
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FormlyModule, declarations: [FormlyTemplate,
2370
2396
  LegacyFormlyForm,
2371
2397
  LegacyFormlyField,
2372
- FormlyAttributes,
2398
+ LegacyFormlyAttributes,
2399
+ LegacyFormlyValidationMessage,
2373
2400
  FormlyGroup,
2374
- FormlyValidationMessage,
2375
2401
  FormlyTemplateType], imports: [CommonModule], exports: [FormlyTemplate,
2376
2402
  LegacyFormlyForm,
2377
2403
  LegacyFormlyField,
2378
- FormlyAttributes,
2379
- FormlyGroup,
2380
- FormlyValidationMessage] }); }
2381
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyModule, imports: [CommonModule] }); }
2404
+ LegacyFormlyAttributes,
2405
+ LegacyFormlyValidationMessage,
2406
+ FormlyGroup] }); }
2407
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyModule, imports: [CommonModule] }); }
2382
2408
  }
2383
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormlyModule, decorators: [{
2409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormlyModule, decorators: [{
2384
2410
  type: NgModule,
2385
2411
  args: [{
2386
2412
  declarations: [
2387
2413
  FormlyTemplate,
2388
2414
  LegacyFormlyForm,
2389
2415
  LegacyFormlyField,
2390
- FormlyAttributes,
2416
+ LegacyFormlyAttributes,
2417
+ LegacyFormlyValidationMessage,
2391
2418
  FormlyGroup,
2392
- FormlyValidationMessage,
2393
2419
  FormlyTemplateType,
2394
2420
  ],
2395
2421
  exports: [
2396
2422
  FormlyTemplate,
2397
2423
  LegacyFormlyForm,
2398
2424
  LegacyFormlyField,
2399
- FormlyAttributes,
2425
+ LegacyFormlyAttributes,
2426
+ LegacyFormlyValidationMessage,
2400
2427
  FormlyGroup,
2401
- FormlyValidationMessage,
2402
2428
  ],
2403
2429
  imports: [CommonModule],
2404
2430
  }]
@@ -2412,5 +2438,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2412
2438
  * Generated bundle index. Do not edit.
2413
2439
  */
2414
2440
 
2415
- export { FORMLY_CONFIG, FieldArrayType, FieldType, FieldWrapper, FormlyConfig, FormlyField, FormlyForm, FormlyFormBuilder, FormlyModule, LegacyFormlyField, LegacyFormlyForm, provideFormlyConfig, provideFormlyCore, FormlyAttributes as ɵFormlyAttributes, FormlyGroup as ɵFormlyGroup, FormlyTemplate as ɵFormlyTemplate, FormlyValidationMessage as ɵFormlyValidationMessage, clone as ɵclone, defineHiddenProp as ɵdefineHiddenProp, getFieldValue as ɵgetFieldValue, hasKey as ɵhasKey, observe as ɵobserve, reverseDeepMerge as ɵreverseDeepMerge };
2441
+ export { FORMLY_CONFIG, FieldArrayType, FieldType, FieldWrapper, FormlyAttributes, FormlyConfig, FormlyField, FormlyForm, FormlyFormBuilder, FormlyModule, FormlyValidationMessage, LegacyFormlyAttributes, LegacyFormlyField, LegacyFormlyForm, LegacyFormlyValidationMessage, provideFormlyConfig, provideFormlyCore, FormlyGroup as ɵFormlyGroup, FormlyTemplate as ɵFormlyTemplate, clone as ɵclone, defineHiddenProp as ɵdefineHiddenProp, getFieldValue as ɵgetFieldValue, hasKey as ɵhasKey, observe as ɵobserve, reverseDeepMerge as ɵreverseDeepMerge };
2416
2442
  //# sourceMappingURL=ngx-formly-core.mjs.map