@stemy/ngx-dynamic-form 19.9.7 → 19.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, Inject, Injectable, untracked, input, Renderer2, ElementRef, computed, signal, effect, HostBinding, Directive, Input, Pipe, Type, Component, output, Injector, ChangeDetectionStrategy, ViewEncapsulation, viewChild, makeEnvironmentProviders, NgModule } from '@angular/core';
1
3
  import * as i2 from '@stemy/ngx-utils';
2
4
  import { cachedFactory, ReflectUtils, ObjectUtils, LANGUAGE_SERVICE, ForbiddenZone, ArrayUtils, API_SERVICE, StringUtils, AsyncMethodBase, EventsService, NgxUtilsModule } from '@stemy/ngx-utils';
3
5
  import { of, merge, Observable, firstValueFrom, BehaviorSubject, combineLatestWith, switchMap, distinctUntilChanged, first, Subject, filter } from 'rxjs';
4
6
  import { debounceTime } from 'rxjs/operators';
5
7
  import { __decorate } from 'tslib';
6
- import * as i0 from '@angular/core';
7
- import { inject, Inject, Injectable, untracked, input, Renderer2, ElementRef, computed, signal, effect, HostBinding, Directive, Input, Pipe, Type, Component, output, Injector, ChangeDetectionStrategy, ViewEncapsulation, makeEnvironmentProviders, NgModule } from '@angular/core';
8
8
  import * as i1 from '@angular/forms';
9
9
  import { FormGroup as FormGroup$1, FormArray as FormArray$1, FormsModule, ReactiveFormsModule } from '@angular/forms';
10
10
  import { outputToObservable, toSignal, rxResource, outputFromObservable } from '@angular/core/rxjs-interop';
@@ -17,6 +17,8 @@ import { FormlySelectModule } from '@ngx-formly/core/select';
17
17
 
18
18
  // --- Basic frm constants ---
19
19
  const FORM_ROOT_ID = "__root";
20
+ // --- Module Configuration ---
21
+ const DEFAULT_NUMERIC_STEP = new InjectionToken("DEFAULT_NUMERIC_STEP");
20
22
 
21
23
  function customizeFormField(...providers) {
22
24
  const factory = cachedFactory(providers);
@@ -319,10 +321,10 @@ function withName(fn, name) {
319
321
  mainFn.validatorName = name;
320
322
  return mainFn;
321
323
  }
322
- function validateEach(each, cb, name) {
324
+ function validateEach(cb, name) {
323
325
  return withName((control, field) => {
324
326
  const value = control.value;
325
- return each ? Array.isArray(value) && value.every(v => cb(v, field)) : cb(value, field);
327
+ return field.type === "array" ? Array.isArray(value) && value.every(v => cb(v, field)) : cb(value, field);
326
328
  }, name);
327
329
  }
328
330
  function addFieldValidators(field, validators) {
@@ -414,14 +416,14 @@ function arrayLengthValidation(min = 1, max = Number.MAX_SAFE_INTEGER) {
414
416
  return !Array.isArray(value) || (min <= value.length && value.length <= max);
415
417
  }, "arrayLength");
416
418
  }
417
- function minLengthValidation(minLength, each) {
418
- return validateEach(each, v => typeof v == "string" && v.length >= minLength, "minLength");
419
+ function minLengthValidation(minLength) {
420
+ return validateEach(v => typeof v == "string" && v.length >= minLength, "minLength");
419
421
  }
420
- function maxLengthValidation(maxLength, each) {
421
- return validateEach(each, v => typeof v == "string" && v.length <= maxLength, "maxLength");
422
+ function maxLengthValidation(maxLength) {
423
+ return validateEach(v => typeof v == "string" && v.length <= maxLength, "maxLength");
422
424
  }
423
- function minValueValidation(each) {
424
- return validateEach(each, (v, f) => {
425
+ function minValueValidation() {
426
+ return validateEach((v, f) => {
425
427
  const type = f.props.type || "number";
426
428
  const min = type.includes("date")
427
429
  ? convertToDate(f.props.min, type) : Number(f.props.min ?? 0);
@@ -432,8 +434,8 @@ function minValueValidation(each) {
432
434
  return v == null || v >= min;
433
435
  }, "minValue");
434
436
  }
435
- function maxValueValidation(each) {
436
- return validateEach(each, (v, f) => {
437
+ function maxValueValidation() {
438
+ return validateEach((v, f) => {
437
439
  const type = f.props.type || "number";
438
440
  const max = type.includes("date")
439
441
  ? convertToDate(f.props.max, type) : Number(f.props.max ?? 0);
@@ -448,7 +450,7 @@ function setFieldMinDate(field, min) {
448
450
  setFieldDefault(field, min);
449
451
  setFieldProp(field, "min", min);
450
452
  setFieldValue(field, min);
451
- addFieldValidators(field, [minValueValidation(field.type === "array")]);
453
+ addFieldValidators(field, [minValueValidation()]);
452
454
  }
453
455
 
454
456
  class ModelUtils {
@@ -619,17 +621,20 @@ function getFormValidationErrors(controls, parentPath = "") {
619
621
  return errors;
620
622
  }
621
623
 
624
+ const customInputTypes = ["checkbox", "textarea", "wysiwyg", "password"];
622
625
  class DynamicFormBuilderService {
623
626
  injector;
624
627
  events;
625
628
  api;
626
629
  languages;
630
+ defaultNumericStep;
627
631
  language;
628
- constructor(injector, events, api, languages) {
632
+ constructor(injector, events, api, languages, defaultNumericStep) {
629
633
  this.injector = injector;
630
634
  this.events = events;
631
635
  this.api = api;
632
636
  this.languages = languages;
637
+ this.defaultNumericStep = defaultNumericStep;
633
638
  const lang = new BehaviorSubject(this.languages.currentLanguage);
634
639
  this.events.languageChanged.subscribe(value => lang.next(value));
635
640
  this.language = lang;
@@ -727,7 +732,7 @@ class DynamicFormBuilderService {
727
732
  type,
728
733
  autocomplete,
729
734
  pattern: ObjectUtils.isString(data.pattern) ? data.pattern : "",
730
- step: data.step,
735
+ step: convertToNumber(data.step, this.defaultNumericStep),
731
736
  cols: data.cols || null,
732
737
  rows: data.rows || 10,
733
738
  placeholder: data.placeholder || "",
@@ -755,7 +760,7 @@ class DynamicFormBuilderService {
755
760
  props.maxLength = isNaN(data.maxLength) ? MAX_INPUT_NUM : data.maxLength;
756
761
  break;
757
762
  }
758
- return this.createFormField(key, type === "checkbox" || type === "textarea" || type === "wysiwyg" ? type : "input", data, props, parent, options);
763
+ return this.createFormField(key, customInputTypes.includes(type) ? type : "input", data, props, parent, options);
759
764
  }
760
765
  createFormSelect(key, data, parent, options) {
761
766
  data = data || {};
@@ -1078,7 +1083,7 @@ class DynamicFormBuilderService {
1078
1083
  });
1079
1084
  return field;
1080
1085
  }
1081
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DynamicFormBuilderService, deps: [{ token: i0.Injector }, { token: i2.EventsService }, { token: API_SERVICE }, { token: LANGUAGE_SERVICE }], target: i0.ɵɵFactoryTarget.Injectable });
1086
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DynamicFormBuilderService, deps: [{ token: i0.Injector }, { token: i2.EventsService }, { token: API_SERVICE }, { token: LANGUAGE_SERVICE }, { token: DEFAULT_NUMERIC_STEP }], target: i0.ɵɵFactoryTarget.Injectable });
1082
1087
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DynamicFormBuilderService });
1083
1088
  }
1084
1089
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DynamicFormBuilderService, decorators: [{
@@ -1089,6 +1094,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImpo
1089
1094
  }] }, { type: undefined, decorators: [{
1090
1095
  type: Inject,
1091
1096
  args: [LANGUAGE_SERVICE]
1097
+ }] }, { type: undefined, decorators: [{
1098
+ type: Inject,
1099
+ args: [DEFAULT_NUMERIC_STEP]
1092
1100
  }] }] });
1093
1101
 
1094
1102
  class DynamicFormSchemaService {
@@ -1248,8 +1256,8 @@ class DynamicFormSchemaService {
1248
1256
  autocomplete: property.autocomplete,
1249
1257
  pattern: property.pattern,
1250
1258
  step: isNaN(sub.step) ? property.step : sub.step,
1251
- min: sub.minimum,
1252
- max: sub.maximum,
1259
+ min: sub.minimum ?? sub.min,
1260
+ max: sub.maximum ?? sub.max,
1253
1261
  minLength: sub.minLength,
1254
1262
  maxLength: sub.maxLength,
1255
1263
  placeholder: property.placeholder,
@@ -1293,8 +1301,8 @@ class DynamicFormSchemaService {
1293
1301
  return this.builder.createFormInput(property.id, {
1294
1302
  ...this.getFormFieldData(property, options),
1295
1303
  type,
1296
- min: convertToDateFormat(property.min, property.format),
1297
- max: convertToDateFormat(property.max, property.format),
1304
+ min: convertToDateFormat(property.minimum ?? property.min, property.format),
1305
+ max: convertToDateFormat(property.maximum ?? property.max, property.format),
1298
1306
  }, parent, options);
1299
1307
  }
1300
1308
  getFormSelectConfig($enum, property, options, parent) {
@@ -1432,10 +1440,10 @@ class DynamicFormSchemaService {
1432
1440
  validators.maxLength = maxLengthValidation(property.maxLength);
1433
1441
  }
1434
1442
  if (!isNaN(property.minimum)) {
1435
- validators.min = minValueValidation(convertToDate(property.minimum, property.format));
1443
+ validators.min = minValueValidation();
1436
1444
  }
1437
1445
  if (!isNaN(property.maximum)) {
1438
- validators.max = maxValueValidation(convertToDate(property.maximum, property.format));
1446
+ validators.max = maxValueValidation();
1439
1447
  }
1440
1448
  // if (isString(property.pattern) && property.pattern.length) {
1441
1449
  // validators.pattern = property.pattern;
@@ -1450,16 +1458,16 @@ class DynamicFormSchemaService {
1450
1458
  if (!items)
1451
1459
  return;
1452
1460
  if (!isNaN(items.minLength)) {
1453
- validators.itemsMinLength = minLengthValidation(items.minLength, true);
1461
+ validators.itemsMinLength = minLengthValidation(items.minLength);
1454
1462
  }
1455
1463
  if (!isNaN(items.maxLength)) {
1456
- validators.itemsMaxLength = maxLengthValidation(items.maxLength, true);
1464
+ validators.itemsMaxLength = maxLengthValidation(items.maxLength);
1457
1465
  }
1458
1466
  if (!isNaN(items.minimum)) {
1459
- validators.itemsMinValue = minValueValidation(true);
1467
+ validators.itemsMinValue = minValueValidation();
1460
1468
  }
1461
1469
  if (!isNaN(items.maximum)) {
1462
- validators.itemsMaxValue = maxValueValidation(true);
1470
+ validators.itemsMaxValue = maxValueValidation();
1463
1471
  }
1464
1472
  }
1465
1473
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DynamicFormSchemaService, deps: [{ token: i2.OpenApiService }, { token: i0.Injector }, { token: DynamicFormBuilderService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -2123,6 +2131,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImpo
2123
2131
  args: [{ standalone: false, selector: "dynamic-form-chips", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<chips [formControl]=\"formControl\"\n [type]=\"props.type\"\n [step]=\"props.step\"\n [minLength]=\"props.minLength\"\n [maxLength]=\"props.maxLength\"\n [min]=\"props.min\"\n [max]=\"props.max\"\n [multiple]=\"props.multiple\"\n [strict]=\"props.strict\"\n [options]=\"props.options | formlySelectOptions | async\"\n [testId]=\"field.testId\"\n [formlyAttributes]=\"field\">\n</chips>\n" }]
2124
2132
  }] });
2125
2133
 
2134
+ class DynamicFormPasswordComponent extends DynamicFieldType {
2135
+ type = signal("password");
2136
+ icon = computed(() => {
2137
+ return this.type() === "password" ? "eye" : "eye-slash";
2138
+ });
2139
+ input = viewChild.required("input");
2140
+ switchType() {
2141
+ const el = this.input().nativeElement;
2142
+ const start = el.selectionStart;
2143
+ const end = el.selectionEnd;
2144
+ this.type.update(value => value === "password" ? "text" : "password");
2145
+ requestAnimationFrame(() => {
2146
+ el.focus();
2147
+ el.setSelectionRange(start, end);
2148
+ });
2149
+ }
2150
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DynamicFormPasswordComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2151
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.19", type: DynamicFormPasswordComponent, isStandalone: false, selector: "dynamic-form-password", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"form-password-group\">\n <input #input\n class=\"form-control\"\n [attr.type]=\"type()\"\n [attr.data-testid]=\"field.testId\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\" />\n <btn type=\"transparent\"\n [icon]=\"icon()\"\n [attr.data-testid]=\"field.testId + '-toggle'\"\n (mousedown)=\"switchType()\"></btn>\n</div>\n", styles: [".form-password-group{position:relative}.form-password-group btn{display:block;position:absolute;aspect-ratio:1;top:0;bottom:0;right:0}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.BtnComponent, selector: "btn", inputs: ["label", "tooltip", "icon", "disabled", "type", "size"] }, { kind: "directive", type: i3.LegacyFormlyAttributes, selector: "[formlyAttributes]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2152
+ }
2153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DynamicFormPasswordComponent, decorators: [{
2154
+ type: Component,
2155
+ args: [{ standalone: false, selector: "dynamic-form-password", encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-password-group\">\n <input #input\n class=\"form-control\"\n [attr.type]=\"type()\"\n [attr.data-testid]=\"field.testId\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\" />\n <btn type=\"transparent\"\n [icon]=\"icon()\"\n [attr.data-testid]=\"field.testId + '-toggle'\"\n (mousedown)=\"switchType()\"></btn>\n</div>\n", styles: [".form-password-group{position:relative}.form-password-group btn{display:block;position:absolute;aspect-ratio:1;top:0;bottom:0;right:0}\n"] }]
2156
+ }] });
2157
+
2126
2158
  class DynamicFormStaticComponent extends DynamicFieldType {
2127
2159
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: DynamicFormStaticComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2128
2160
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.19", type: DynamicFormStaticComponent, isStandalone: false, selector: "dynamic-form-chips", usesInheritance: true, ngImport: i0, template: "<unordered-list [listStyle]=\"props.style\" [ngClass]=\"{disabled: props.disabled}\"\n [data]=\"!props.properties ? {value: value} : props.properties | remap: value\">\n <ng-template [type]=\"!props.properties ? 'key' : null\" selector=\"level == 0\" let-item=\"item\"></ng-template>\n <ng-template type=\"value\" selector=\"valueType == 'date'\" let-item=\"item\">\n {{ item.value | date }}\n </ng-template>\n</unordered-list>\n", dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.UnorderedListTemplateDirective, selector: "ng-template[type][selector]", inputs: ["type", "selector"] }, { kind: "component", type: i2.UnorderedListComponent, selector: "unordered-list", inputs: ["data", "keyPrefix", "listStyle", "path", "level", "templates"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: i2.RemapPipe, name: "remap" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
@@ -2235,6 +2267,7 @@ const components = [
2235
2267
  DynamicFormComponent,
2236
2268
  DynamicFormArrayComponent,
2237
2269
  DynamicFormChipsComponent,
2270
+ DynamicFormPasswordComponent,
2238
2271
  DynamicFormStaticComponent,
2239
2272
  DynamicFormTranslationComponent,
2240
2273
  DynamicFormUploadComponent,
@@ -2262,6 +2295,7 @@ class NgxDynamicFormModule {
2262
2295
  types: [
2263
2296
  { name: "array", component: DynamicFormArrayComponent },
2264
2297
  { name: "chips", component: DynamicFormChipsComponent },
2298
+ { name: "password", component: DynamicFormPasswordComponent },
2265
2299
  { name: "static", component: DynamicFormStaticComponent },
2266
2300
  { name: "translation", component: DynamicFormTranslationComponent },
2267
2301
  { name: "upload", component: DynamicFormUploadComponent },
@@ -2281,7 +2315,11 @@ class NgxDynamicFormModule {
2281
2315
  ...formlyConfigs,
2282
2316
  DynamicFormService,
2283
2317
  DynamicFormBuilderService,
2284
- DynamicFormSchemaService
2318
+ DynamicFormSchemaService,
2319
+ {
2320
+ provide: DEFAULT_NUMERIC_STEP,
2321
+ useValue: (config?.defaultNumericStep ?? 1)
2322
+ }
2285
2323
  ];
2286
2324
  }
2287
2325
  static forRoot(config) {
@@ -2294,12 +2332,12 @@ class NgxDynamicFormModule {
2294
2332
  return makeEnvironmentProviders(NgxDynamicFormModule.getProviders(config));
2295
2333
  }
2296
2334
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: NgxDynamicFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2297
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.19", ngImport: i0, type: NgxDynamicFormModule, declarations: [DynamicFieldType, DynamicFormComponent, DynamicFormArrayComponent, DynamicFormChipsComponent, DynamicFormStaticComponent, DynamicFormTranslationComponent, DynamicFormUploadComponent, DynamicFormWysiwygComponent, DynamicFormAlertComponent, DynamicFormFieldComponent, DynamicFormFieldsetComponent, DynamicFormGroupComponent, AsyncSubmitDirective, DynamicFormTemplateDirective, DynamicFormTemplatePipe], imports: [CommonModule,
2335
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.19", ngImport: i0, type: NgxDynamicFormModule, declarations: [DynamicFieldType, DynamicFormComponent, DynamicFormArrayComponent, DynamicFormChipsComponent, DynamicFormPasswordComponent, DynamicFormStaticComponent, DynamicFormTranslationComponent, DynamicFormUploadComponent, DynamicFormWysiwygComponent, DynamicFormAlertComponent, DynamicFormFieldComponent, DynamicFormFieldsetComponent, DynamicFormGroupComponent, AsyncSubmitDirective, DynamicFormTemplateDirective, DynamicFormTemplatePipe], imports: [CommonModule,
2298
2336
  FormsModule,
2299
2337
  ReactiveFormsModule,
2300
2338
  NgxUtilsModule,
2301
2339
  FormlyModule,
2302
- FormlySelectModule], exports: [DynamicFieldType, DynamicFormComponent, DynamicFormArrayComponent, DynamicFormChipsComponent, DynamicFormStaticComponent, DynamicFormTranslationComponent, DynamicFormUploadComponent, DynamicFormWysiwygComponent, DynamicFormAlertComponent, DynamicFormFieldComponent, DynamicFormFieldsetComponent, DynamicFormGroupComponent, AsyncSubmitDirective, DynamicFormTemplateDirective, DynamicFormTemplatePipe, FormsModule,
2340
+ FormlySelectModule], exports: [DynamicFieldType, DynamicFormComponent, DynamicFormArrayComponent, DynamicFormChipsComponent, DynamicFormPasswordComponent, DynamicFormStaticComponent, DynamicFormTranslationComponent, DynamicFormUploadComponent, DynamicFormWysiwygComponent, DynamicFormAlertComponent, DynamicFormFieldComponent, DynamicFormFieldsetComponent, DynamicFormGroupComponent, AsyncSubmitDirective, DynamicFormTemplateDirective, DynamicFormTemplatePipe, FormsModule,
2303
2341
  ReactiveFormsModule,
2304
2342
  NgxUtilsModule,
2305
2343
  FormlyModule,
@@ -2353,5 +2391,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImpo
2353
2391
  * Generated bundle index. Do not edit.
2354
2392
  */
2355
2393
 
2356
- export { AsyncSubmitDirective, DynamicFieldType, DynamicFormAlertComponent, DynamicFormArrayComponent, DynamicFormBuilderService, DynamicFormChipsComponent, DynamicFormComponent, DynamicFormFieldComponent, DynamicFormFieldsetComponent, DynamicFormGroupComponent, DynamicFormSchemaService, DynamicFormService, DynamicFormStaticComponent, DynamicFormTemplateDirective, DynamicFormTemplatePipe, DynamicFormTemplateService, DynamicFormTranslationComponent, DynamicFormUploadComponent, DynamicFormWysiwygComponent, EDITOR_FORMATS, FORM_ROOT_ID, FormArray, FormFieldSet, FormGroup, FormInput, FormSelect, FormSerializable, FormStatic, FormUpload, MAX_INPUT_NUM, MIN_INPUT_NUM, NgxDynamicFormModule, RichTranslationModel, TranslationModel, addFieldValidators, arrayLengthValidation, clearFieldArray, controlStatus, controlValues, convertToDate, convertToDateFormat, convertToNumber, customizeFormField, emailValidation, getFieldByPath, getFieldsByKey, getFieldsByPredicate, getSelectOptions, insertToFieldArray, isFieldHidden, isFieldVisible, jsonValidation, maxLengthValidation, maxValueValidation, minLengthValidation, minValueValidation, phoneValidation, removeFieldValidators, removeFromFieldArray, replaceFieldArray, replaceSpecialChars, requiredValidation, setFieldDefault, setFieldDisabled, setFieldHidden, setFieldHooks, setFieldMinDate, setFieldProp, setFieldProps, setFieldSerialize, setFieldValue, translationValidation };
2394
+ export { AsyncSubmitDirective, DEFAULT_NUMERIC_STEP, DynamicFieldType, DynamicFormAlertComponent, DynamicFormArrayComponent, DynamicFormBuilderService, DynamicFormChipsComponent, DynamicFormComponent, DynamicFormFieldComponent, DynamicFormFieldsetComponent, DynamicFormGroupComponent, DynamicFormPasswordComponent, DynamicFormSchemaService, DynamicFormService, DynamicFormStaticComponent, DynamicFormTemplateDirective, DynamicFormTemplatePipe, DynamicFormTemplateService, DynamicFormTranslationComponent, DynamicFormUploadComponent, DynamicFormWysiwygComponent, EDITOR_FORMATS, FORM_ROOT_ID, FormArray, FormFieldSet, FormGroup, FormInput, FormSelect, FormSerializable, FormStatic, FormUpload, MAX_INPUT_NUM, MIN_INPUT_NUM, NgxDynamicFormModule, RichTranslationModel, TranslationModel, addFieldValidators, arrayLengthValidation, clearFieldArray, controlStatus, controlValues, convertToDate, convertToDateFormat, convertToNumber, customizeFormField, emailValidation, getFieldByPath, getFieldsByKey, getFieldsByPredicate, getSelectOptions, insertToFieldArray, isFieldHidden, isFieldVisible, jsonValidation, maxLengthValidation, maxValueValidation, minLengthValidation, minValueValidation, phoneValidation, removeFieldValidators, removeFromFieldArray, replaceFieldArray, replaceSpecialChars, requiredValidation, setFieldDefault, setFieldDisabled, setFieldHidden, setFieldHooks, setFieldMinDate, setFieldProp, setFieldProps, setFieldSerialize, setFieldValue, translationValidation };
2357
2395
  //# sourceMappingURL=stemy-ngx-dynamic-form.mjs.map