@stemy/ngx-dynamic-form 12.0.0 → 13.0.2

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 (76) hide show
  1. package/esm2020/ngx-dynamic-form/common-types.mjs +97 -0
  2. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-array.component.mjs +85 -0
  3. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.mjs +109 -0
  4. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form-group.component.mjs +74 -0
  5. package/esm2020/ngx-dynamic-form/components/base/dynamic-base-form.component.mjs +158 -0
  6. package/esm2020/ngx-dynamic-form/directives/async-submit.directive.mjs +111 -0
  7. package/esm2020/ngx-dynamic-form/ngx-dynamic-form.imports.mjs +22 -0
  8. package/esm2020/ngx-dynamic-form/ngx-dynamic-form.module.mjs +115 -0
  9. package/esm2020/ngx-dynamic-form/services/dynamic-form.service.mjs +451 -0
  10. package/esm2020/ngx-dynamic-form/utils/dynamic-form-array.model.mjs +16 -0
  11. package/esm2020/ngx-dynamic-form/utils/form-select-subject.mjs +23 -0
  12. package/esm2020/ngx-dynamic-form/utils/form-subject.mjs +29 -0
  13. package/esm2020/ngx-dynamic-form/utils/misc.mjs +20 -0
  14. package/esm2020/ngx-dynamic-form/utils/validators.mjs +56 -0
  15. package/esm2020/public_api.mjs +14 -0
  16. package/esm2020/stemy-ngx-dynamic-form.mjs +5 -0
  17. package/fesm2015/stemy-ngx-dynamic-form.mjs +1341 -0
  18. package/fesm2015/stemy-ngx-dynamic-form.mjs.map +1 -0
  19. package/fesm2020/stemy-ngx-dynamic-form.mjs +1313 -0
  20. package/fesm2020/stemy-ngx-dynamic-form.mjs.map +1 -0
  21. package/ngx-dynamic-form/common-types.d.ts +42 -262
  22. package/ngx-dynamic-form/components/base/dynamic-base-form-array.component.d.ts +29 -0
  23. package/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.d.ts +41 -0
  24. package/ngx-dynamic-form/components/base/dynamic-base-form-group.component.d.ts +24 -0
  25. package/ngx-dynamic-form/components/base/dynamic-base-form.component.d.ts +41 -0
  26. package/ngx-dynamic-form/directives/async-submit.directive.d.ts +10 -3
  27. package/ngx-dynamic-form/ngx-dynamic-form.imports.d.ts +10 -0
  28. package/ngx-dynamic-form/ngx-dynamic-form.module.d.ts +14 -17
  29. package/ngx-dynamic-form/services/dynamic-form.service.d.ts +47 -10
  30. package/ngx-dynamic-form/utils/dynamic-form-array.model.d.ts +22 -0
  31. package/ngx-dynamic-form/utils/form-select-subject.d.ts +6 -0
  32. package/ngx-dynamic-form/utils/form-subject.d.ts +10 -0
  33. package/ngx-dynamic-form/utils/misc.d.ts +5 -0
  34. package/ngx-dynamic-form/utils/validators.d.ts +8 -0
  35. package/package.json +42 -22
  36. package/public_api.d.ts +10 -14
  37. package/stemy-ngx-dynamic-form.d.ts +1 -3
  38. package/bundles/stemy-ngx-dynamic-form.umd.js +0 -2344
  39. package/bundles/stemy-ngx-dynamic-form.umd.js.map +0 -1
  40. package/esm2015/ngx-dynamic-form/common-types.js +0 -590
  41. package/esm2015/ngx-dynamic-form/components/base/dynamic-form-base.component.js +0 -87
  42. package/esm2015/ngx-dynamic-form/components/dynamic-form/dynamic-form.component.js +0 -91
  43. package/esm2015/ngx-dynamic-form/components/dynamic-form-file/dynamic-form-file.component.js +0 -112
  44. package/esm2015/ngx-dynamic-form/components/dynamic-form-group/dynamic-form-group.component.js +0 -19
  45. package/esm2015/ngx-dynamic-form/components/dynamic-form-input/dynamic-form-input.component.js +0 -69
  46. package/esm2015/ngx-dynamic-form/components/dynamic-form-model/dynamic-form-model.component.js +0 -23
  47. package/esm2015/ngx-dynamic-form/components/dynamic-form-select/dynamic-form-select.component.js +0 -73
  48. package/esm2015/ngx-dynamic-form/components/dynamic-form-static/dynamic-form-static.component.js +0 -20
  49. package/esm2015/ngx-dynamic-form/components/dynamic-forms/dynamic-forms.component.js +0 -134
  50. package/esm2015/ngx-dynamic-form/directives/async-submit.directive.js +0 -89
  51. package/esm2015/ngx-dynamic-form/directives/dynamic-form-control.directive.js +0 -32
  52. package/esm2015/ngx-dynamic-form/directives/dynamic-form-group.directive.js +0 -40
  53. package/esm2015/ngx-dynamic-form/directives/dynamic-form-template.directive.js +0 -38
  54. package/esm2015/ngx-dynamic-form/ngx-dynamic-form.module.js +0 -83
  55. package/esm2015/ngx-dynamic-form/services/dynamic-form.service.js +0 -48
  56. package/esm2015/ngx-dynamic-form/services/form-utilities.js +0 -108
  57. package/esm2015/ngx-dynamic-form/services/open-api.service.js +0 -130
  58. package/esm2015/public_api.js +0 -18
  59. package/esm2015/stemy-ngx-dynamic-form.js +0 -8
  60. package/fesm2015/stemy-ngx-dynamic-form.js +0 -1731
  61. package/fesm2015/stemy-ngx-dynamic-form.js.map +0 -1
  62. package/ngx-dynamic-form/components/base/dynamic-form-base.component.d.ts +0 -44
  63. package/ngx-dynamic-form/components/dynamic-form/dynamic-form.component.d.ts +0 -21
  64. package/ngx-dynamic-form/components/dynamic-form-file/dynamic-form-file.component.d.ts +0 -16
  65. package/ngx-dynamic-form/components/dynamic-form-group/dynamic-form-group.component.d.ts +0 -6
  66. package/ngx-dynamic-form/components/dynamic-form-input/dynamic-form-input.component.d.ts +0 -12
  67. package/ngx-dynamic-form/components/dynamic-form-model/dynamic-form-model.component.d.ts +0 -6
  68. package/ngx-dynamic-form/components/dynamic-form-select/dynamic-form-select.component.d.ts +0 -9
  69. package/ngx-dynamic-form/components/dynamic-form-static/dynamic-form-static.component.d.ts +0 -5
  70. package/ngx-dynamic-form/components/dynamic-forms/dynamic-forms.component.d.ts +0 -26
  71. package/ngx-dynamic-form/directives/dynamic-form-control.directive.d.ts +0 -12
  72. package/ngx-dynamic-form/directives/dynamic-form-group.directive.d.ts +0 -14
  73. package/ngx-dynamic-form/directives/dynamic-form-template.directive.d.ts +0 -16
  74. package/ngx-dynamic-form/services/form-utilities.d.ts +0 -19
  75. package/ngx-dynamic-form/services/open-api.service.d.ts +0 -37
  76. package/stemy-ngx-dynamic-form.metadata.json +0 -1
@@ -0,0 +1,29 @@
1
+ import { EventEmitter, Injector, QueryList } from "@angular/core";
2
+ import { FormGroup } from "@angular/forms";
3
+ import { DynamicFormArrayComponent, DynamicFormControlContainerComponent, DynamicFormControlCustomEvent, DynamicFormControlLayout, DynamicFormControlLayoutContext, DynamicFormControlLayoutPlace, DynamicFormControlModel, DynamicFormLayout, DynamicFormLayoutService, DynamicFormValidationService, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
4
+ import { DynamicFormArrayModel } from "../../utils/dynamic-form-array.model";
5
+ import * as i0 from "@angular/core";
6
+ export declare class DynamicBaseFormArrayComponent extends DynamicFormArrayComponent {
7
+ protected layoutService: DynamicFormLayoutService;
8
+ protected validationService: DynamicFormValidationService;
9
+ protected injector: Injector;
10
+ formLayout: DynamicFormLayout;
11
+ group: FormGroup;
12
+ layout: DynamicFormControlLayout;
13
+ model: DynamicFormArrayModel;
14
+ templates: QueryList<DynamicTemplateDirective> | undefined;
15
+ blur: EventEmitter<any>;
16
+ change: EventEmitter<any>;
17
+ customEvent: EventEmitter<DynamicFormControlCustomEvent>;
18
+ focus: EventEmitter<any>;
19
+ components: QueryList<DynamicFormControlContainerComponent>;
20
+ get useTabs(): boolean;
21
+ constructor(layoutService: DynamicFormLayoutService, validationService: DynamicFormValidationService, injector: Injector);
22
+ saveTab(index: number): void;
23
+ restoreTab(): number;
24
+ getClass(context: DynamicFormControlLayoutContext, place: DynamicFormControlLayoutPlace, model?: DynamicFormControlModel): string;
25
+ protected getModelClass(model?: DynamicFormControlModel): string;
26
+ protected getAdditionalClass(model?: DynamicFormControlModel): string;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicBaseFormArrayComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicBaseFormArrayComponent, "dynamic-base-form-array", never, { "formLayout": "formLayout"; "group": "group"; "layout": "layout"; "model": "model"; "templates": "templates"; }, { "blur": "blur"; "change": "change"; "customEvent": "customEvent"; "focus": "focus"; }, never, never>;
29
+ }
@@ -0,0 +1,41 @@
1
+ import { ChangeDetectorRef, ComponentFactoryResolver, EventEmitter, OnInit, QueryList, Type, ViewContainerRef } from "@angular/core";
2
+ import { FormGroup } from "@angular/forms";
3
+ import { Subscription } from "rxjs";
4
+ import { DynamicFormArrayGroupModel, DynamicFormComponentService, DynamicFormControl, DynamicFormControlContainerComponent, DynamicFormControlEvent, DynamicFormControlModel, DynamicFormLayout, DynamicFormLayoutService, DynamicFormRelationService, DynamicFormValidationService, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
5
+ import { DynamicBaseFormComponent } from "./dynamic-base-form.component";
6
+ import { DynamicFormService } from "../../services/dynamic-form.service";
7
+ import * as i0 from "@angular/core";
8
+ export declare class DynamicBaseFormControlContainerComponent extends DynamicFormControlContainerComponent implements OnInit {
9
+ readonly form: DynamicBaseFormComponent;
10
+ readonly changeDetectorRef: ChangeDetectorRef;
11
+ readonly componentFactoryResolver: ComponentFactoryResolver;
12
+ readonly layoutService: DynamicFormLayoutService;
13
+ readonly validationService: DynamicFormValidationService;
14
+ readonly componentService: DynamicFormComponentService;
15
+ readonly relationService: DynamicFormRelationService;
16
+ contentTemplateList: QueryList<DynamicTemplateDirective>;
17
+ klass: any;
18
+ context: DynamicFormArrayGroupModel | null;
19
+ group: FormGroup;
20
+ hostClass: string[];
21
+ inputTemplateList: QueryList<DynamicTemplateDirective>;
22
+ layout: DynamicFormLayout;
23
+ model: DynamicFormControlModel;
24
+ blur: EventEmitter<DynamicFormControlEvent>;
25
+ change: EventEmitter<DynamicFormControlEvent>;
26
+ focus: EventEmitter<DynamicFormControlEvent>;
27
+ componentViewContainerRef: ViewContainerRef;
28
+ protected onDetectChanges: Subscription;
29
+ get componentType(): Type<DynamicFormControl> | null;
30
+ get startTemplate(): DynamicTemplateDirective;
31
+ get endTemplate(): DynamicTemplateDirective;
32
+ get formService(): DynamicFormService;
33
+ constructor(form: DynamicBaseFormComponent, changeDetectorRef: ChangeDetectorRef, componentFactoryResolver: ComponentFactoryResolver, layoutService: DynamicFormLayoutService, validationService: DynamicFormValidationService, componentService: DynamicFormComponentService, relationService: DynamicFormRelationService);
34
+ ngOnInit(): void;
35
+ ngOnDestroy(): void;
36
+ getLabel(): string;
37
+ protected createFormControlComponent(): void;
38
+ protected getComponentType(model: DynamicFormControlModel): Type<DynamicFormControl> | null;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicBaseFormControlContainerComponent, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicBaseFormControlContainerComponent, "dynamic-base-form-control", never, { "context": "context"; "group": "group"; "hostClass": "hostClass"; "inputTemplateList": "templates"; "layout": "layout"; "model": "model"; }, { "blur": "blur"; "change": "change"; "focus": "focus"; }, ["contentTemplateList"], never>;
41
+ }
@@ -0,0 +1,24 @@
1
+ import { EventEmitter, QueryList } from "@angular/core";
2
+ import { FormGroup } from "@angular/forms";
3
+ import { DynamicFormControlContainerComponent, DynamicFormControlCustomEvent, DynamicFormControlLayout, DynamicFormControlLayoutContext, DynamicFormControlLayoutPlace, DynamicFormControlModel, DynamicFormGroupComponent, DynamicFormGroupModel, DynamicFormLayout, DynamicFormLayoutService, DynamicFormValidationService, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
4
+ import * as i0 from "@angular/core";
5
+ export declare class DynamicBaseFormGroupComponent extends DynamicFormGroupComponent {
6
+ protected layoutService: DynamicFormLayoutService;
7
+ protected validationService: DynamicFormValidationService;
8
+ formLayout: DynamicFormLayout;
9
+ group: FormGroup;
10
+ layout: DynamicFormControlLayout;
11
+ model: DynamicFormGroupModel;
12
+ templates: QueryList<DynamicTemplateDirective> | DynamicTemplateDirective[] | undefined;
13
+ blur: EventEmitter<any>;
14
+ change: EventEmitter<any>;
15
+ customEvent: EventEmitter<DynamicFormControlCustomEvent>;
16
+ focus: EventEmitter<any>;
17
+ components: QueryList<DynamicFormControlContainerComponent>;
18
+ constructor(layoutService: DynamicFormLayoutService, validationService: DynamicFormValidationService);
19
+ getClass(context: DynamicFormControlLayoutContext, place: DynamicFormControlLayoutPlace, model?: DynamicFormControlModel): string;
20
+ protected getModelClass(model?: DynamicFormControlModel): string;
21
+ protected getAdditionalClass(model?: DynamicFormControlModel): string;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicBaseFormGroupComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicBaseFormGroupComponent, "dynamic-base-form-group", never, { "formLayout": "formLayout"; "group": "group"; "layout": "layout"; "model": "model"; "templates": "templates"; }, { "blur": "blur"; "change": "change"; "customEvent": "customEvent"; "focus": "focus"; }, never, never>;
24
+ }
@@ -0,0 +1,41 @@
1
+ import { AfterViewInit, ChangeDetectorRef, EventEmitter, OnChanges, QueryList, SimpleChanges } from "@angular/core";
2
+ import { FormArray, FormGroup, NgForm } from "@angular/forms";
3
+ import { Subscription } from "rxjs";
4
+ import { DynamicFormArrayModel, DynamicFormComponent, DynamicFormComponentService, DynamicFormControlEvent, DynamicFormControlModel, DynamicFormLayout, DynamicFormModel, DynamicTemplateDirective } from "@ng-dynamic-forms/core";
5
+ import { EventsService } from "@stemy/ngx-utils";
6
+ import { DynamicFormState, IDynamicForm, IDynamicFormEvent } from "../../common-types";
7
+ import { DynamicFormService } from "../../services/dynamic-form.service";
8
+ import * as i0 from "@angular/core";
9
+ export declare class DynamicBaseFormComponent extends DynamicFormComponent implements OnChanges, AfterViewInit, IDynamicForm {
10
+ readonly formService: DynamicFormService;
11
+ readonly events: EventsService;
12
+ group: FormGroup;
13
+ model: DynamicFormModel;
14
+ layout: DynamicFormLayout;
15
+ labelPrefix: string;
16
+ blur: EventEmitter<DynamicFormControlEvent>;
17
+ change: EventEmitter<DynamicFormControlEvent>;
18
+ focus: EventEmitter<DynamicFormControlEvent>;
19
+ contentTemplates: QueryList<DynamicTemplateDirective>;
20
+ viewTemplates: QueryList<DynamicTemplateDirective>;
21
+ get status(): DynamicFormState;
22
+ readonly onValueChange: EventEmitter<IDynamicFormEvent>;
23
+ readonly onStatusChange: EventEmitter<IDynamicForm>;
24
+ readonly onSubmit: EventEmitter<IDynamicForm>;
25
+ protected ngForm: NgForm;
26
+ protected subscription: Subscription;
27
+ protected groupSubscription: Subscription;
28
+ constructor(formService: DynamicFormService, events: EventsService, changeDetectorRef: ChangeDetectorRef, componentService: DynamicFormComponentService);
29
+ ngOnChanges(changes: SimpleChanges): void;
30
+ ngAfterViewInit(): void;
31
+ ngOnDestroy(): void;
32
+ insertFormArrayGroup(index: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void;
33
+ removeFormArrayGroup(index: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void;
34
+ moveFormArrayGroup(index: number, step: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void;
35
+ clearFormArray(formArray: FormArray, formArrayModel: DynamicFormArrayModel): void;
36
+ getClass(model?: DynamicFormControlModel): string;
37
+ validate(showErrors?: boolean): Promise<any>;
38
+ serialize(validate?: boolean): Promise<any>;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicBaseFormComponent, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicBaseFormComponent, "dynamic-base-form", never, { "group": "group"; "model": "model"; "layout": "layout"; "labelPrefix": "labelPrefix"; }, { "blur": "blur"; "change": "change"; "focus": "focus"; "onValueChange": "onValueChange"; "onStatusChange": "onStatusChange"; "onSubmit": "onSubmit"; }, ["contentTemplates"], never>;
41
+ }
@@ -1,11 +1,15 @@
1
1
  import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from "@angular/core";
2
2
  import { IAsyncMessage, IToasterService } from "@stemy/ngx-utils";
3
- import { AsyncSubmitMethod, IDynamicFormBase } from "../common-types";
3
+ import { AsyncSubmitMethod, IDynamicForm } from "../common-types";
4
+ import * as i0 from "@angular/core";
4
5
  export declare class AsyncSubmitDirective implements OnInit, OnDestroy {
5
6
  private toaster;
6
- private cdr;
7
+ readonly cdr: ChangeDetectorRef;
8
+ readonly elem: ElementRef;
9
+ readonly renderer: Renderer2;
7
10
  method: AsyncSubmitMethod;
8
- form: IDynamicFormBase;
11
+ form: IDynamicForm;
12
+ context: any;
9
13
  onSuccess: EventEmitter<IAsyncMessage>;
10
14
  onError: EventEmitter<IAsyncMessage>;
11
15
  private loading;
@@ -14,10 +18,13 @@ export declare class AsyncSubmitDirective implements OnInit, OnDestroy {
14
18
  private onStatusChange;
15
19
  private onSubmit;
16
20
  get isDisabled(): boolean;
21
+ set isDisabled(value: boolean);
17
22
  get isLoading(): boolean;
18
23
  constructor(toaster: IToasterService, cdr: ChangeDetectorRef, elem: ElementRef, renderer: Renderer2);
19
24
  ngOnInit(): void;
20
25
  ngOnDestroy(): void;
21
26
  click(): void;
22
27
  callMethod(): void;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<AsyncSubmitDirective, never>;
29
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AsyncSubmitDirective, "[async-submit]", ["async-submit"], { "method": "async-submit"; "form": "form"; "context": "context"; }, { "onSuccess": "onSuccess"; "onError": "onError"; }, never>;
23
30
  }
@@ -0,0 +1,10 @@
1
+ import { AsyncSubmitDirective } from "./directives/async-submit.directive";
2
+ import { DynamicBaseFormComponent } from "./components/base/dynamic-base-form.component";
3
+ import { DynamicBaseFormArrayComponent } from "./components/base/dynamic-base-form-array.component";
4
+ import { DynamicBaseFormControlContainerComponent } from "./components/base/dynamic-base-form-control-container.component";
5
+ import { DynamicBaseFormGroupComponent } from "./components/base/dynamic-base-form-group.component";
6
+ import { DynamicFormControlMapFn } from "@ng-dynamic-forms/core/lib/service/dynamic-form-component.service";
7
+ export declare const components: (typeof DynamicBaseFormComponent | typeof DynamicBaseFormArrayComponent | typeof DynamicBaseFormControlContainerComponent | typeof DynamicBaseFormGroupComponent)[];
8
+ export declare const directives: (typeof AsyncSubmitDirective)[];
9
+ export declare const pipes: any[];
10
+ export declare function defaultFormControlProvider(): DynamicFormControlMapFn;
@@ -1,20 +1,17 @@
1
1
  import { ModuleWithProviders } from "@angular/core";
2
- import { FormControlProvider, FormGroupProvider } from "./common-types";
3
- import { AsyncSubmitDirective } from "./directives/async-submit.directive";
4
- import { DynamicFormControlDirective } from "./directives/dynamic-form-control.directive";
5
- import { DynamicFormGroupDirective } from "./directives/dynamic-form-group.directive";
6
- import { DynamicFormTemplateDirective } from "./directives/dynamic-form-template.directive";
7
- import { DynamicFormsComponent } from "./components/dynamic-forms/dynamic-forms.component";
8
- import { DynamicFormComponent } from "./components/dynamic-form/dynamic-form.component";
9
- import { DynamicFormGroupComponent } from "./components/dynamic-form-group/dynamic-form-group.component";
10
- import { DynamicFormFileComponent } from "./components/dynamic-form-file/dynamic-form-file.component";
11
- import { DynamicFormInputComponent } from "./components/dynamic-form-input/dynamic-form-input.component";
12
- import { DynamicFormSelectComponent } from "./components/dynamic-form-select/dynamic-form-select.component";
13
- import { DynamicFormStaticComponent } from "./components/dynamic-form-static/dynamic-form-static.component";
14
- import { DynamicFormModelComponent } from "./components/dynamic-form-model/dynamic-form-model.component";
15
- export declare const components: (typeof DynamicFormComponent | typeof DynamicFormsComponent | typeof DynamicFormGroupComponent | typeof DynamicFormFileComponent | typeof DynamicFormInputComponent | typeof DynamicFormSelectComponent | typeof DynamicFormStaticComponent | typeof DynamicFormModelComponent)[];
16
- export declare const directives: (typeof AsyncSubmitDirective | typeof DynamicFormControlDirective | typeof DynamicFormTemplateDirective | typeof DynamicFormGroupDirective)[];
17
- export declare const pipes: any[];
2
+ import { IDynamicFormModuleConfig } from "./common-types";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./components/base/dynamic-base-form.component";
5
+ import * as i2 from "./components/base/dynamic-base-form-array.component";
6
+ import * as i3 from "./components/base/dynamic-base-form-control-container.component";
7
+ import * as i4 from "./components/base/dynamic-base-form-group.component";
8
+ import * as i5 from "./directives/async-submit.directive";
9
+ import * as i6 from "@angular/common";
10
+ import * as i7 from "@angular/forms";
11
+ import * as i8 from "@stemy/ngx-utils";
18
12
  export declare class NgxDynamicFormModule {
19
- static forRoot(controlProviders?: Array<FormControlProvider>, groupProvider?: FormGroupProvider): ModuleWithProviders<NgxDynamicFormModule>;
13
+ static forRoot(config?: IDynamicFormModuleConfig): ModuleWithProviders<NgxDynamicFormModule>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgxDynamicFormModule, never>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDynamicFormModule, [typeof i1.DynamicBaseFormComponent, typeof i2.DynamicBaseFormArrayComponent, typeof i3.DynamicBaseFormControlContainerComponent, typeof i4.DynamicBaseFormGroupComponent, typeof i5.AsyncSubmitDirective], [typeof i6.CommonModule, typeof i7.FormsModule, typeof i7.ReactiveFormsModule, typeof i8.NgxUtilsModule], [typeof i1.DynamicBaseFormComponent, typeof i2.DynamicBaseFormArrayComponent, typeof i3.DynamicBaseFormControlContainerComponent, typeof i4.DynamicBaseFormGroupComponent, typeof i5.AsyncSubmitDirective, typeof i7.FormsModule, typeof i7.ReactiveFormsModule, typeof i8.NgxUtilsModule]>;
16
+ static ɵinj: i0.ɵɵInjectorDeclaration<NgxDynamicFormModule>;
20
17
  }
@@ -1,12 +1,49 @@
1
- import { ComponentFactoryResolver, Injector, Type, ViewContainerRef } from "@angular/core";
2
- import { IDynamicFormControl, IFormControlComponent, IFormControlProvider, IFormGroupComponent } from "../common-types";
3
- export declare class DynamicFormService {
4
- private components;
5
- private groupType;
6
- private resolver;
1
+ import { EventEmitter, Injector } from "@angular/core";
2
+ import { AbstractControl, FormGroup } from "@angular/forms";
3
+ import { DynamicCheckboxModelConfig, DynamicFileUploadModelConfig, DynamicFormComponent, DynamicFormComponentService, DynamicFormControlModel, DynamicFormGroupModelConfig, DynamicFormModel, DynamicFormOptionConfig, DynamicFormService as Base, DynamicFormValidationService, DynamicFormValueControlModelConfig, DynamicInputModelConfig, DynamicSelectModelConfig, DynamicTextAreaModelConfig, DynamicValidatorsConfig } from "@ng-dynamic-forms/core";
4
+ import { IApiService, ILanguageService, IOpenApiSchema, IOpenApiSchemaProperty, IOpenApiSchemas, OpenApiService } from "@stemy/ngx-utils";
5
+ import { FormModelCustomizer, FormModelCustomizerWrap } from "../common-types";
6
+ import { FormSelectSubject } from "../utils/form-select-subject";
7
+ import { DynamicFormArrayModelConfig } from "../utils/dynamic-form-array.model";
8
+ import { DynamicPathable } from "@ng-dynamic-forms/core/lib/model/misc/dynamic-form-control-path.model";
9
+ import * as i0 from "@angular/core";
10
+ export declare class DynamicFormService extends Base {
11
+ readonly openApi: OpenApiService;
7
12
  readonly injector: Injector;
8
- constructor(components: IFormControlProvider[], groupType: Type<IFormGroupComponent>, resolver: ComponentFactoryResolver, injector: Injector);
9
- findProvider(control: IDynamicFormControl): IFormControlProvider;
10
- createComponent(vcr: ViewContainerRef, provider: IFormControlProvider): IFormControlComponent;
11
- createGroup(vcr: ViewContainerRef): IFormGroupComponent;
13
+ get api(): IApiService;
14
+ get language(): ILanguageService;
15
+ readonly onDetectChanges: EventEmitter<DynamicFormComponent>;
16
+ protected schemas: IOpenApiSchemas;
17
+ constructor(cs: DynamicFormComponentService, vs: DynamicFormValidationService, openApi: OpenApiService, injector: Injector);
18
+ patchGroup(value: any, formModel: DynamicFormModel, formGroup: FormGroup): void;
19
+ patchForm(value: any, component: DynamicFormComponent): void;
20
+ serialize(formModel: DynamicFormModel, formGroup: FormGroup): Promise<any>;
21
+ notifyChanges(formModel: DynamicFormModel, formGroup: FormGroup, root: DynamicFormModel): void;
22
+ updateSelectOptions(formControlModel: DynamicFormControlModel, formControl: AbstractControl, root: DynamicFormModel): void;
23
+ showErrors(form: DynamicFormComponent): void;
24
+ detectChanges(formComponent?: DynamicFormComponent): void;
25
+ protected patchValueRecursive(value: any, formModel: DynamicFormModel, formGroup: FormGroup): void;
26
+ protected serializeRecursive(formModel: DynamicFormModel, formGroup: FormGroup): Promise<any>;
27
+ protected notifyChangesRecursive(formModel: DynamicFormModel, formGroup: FormGroup, root: DynamicFormModel): void;
28
+ protected showErrorsForGroup(formGroup: FormGroup): void;
29
+ protected showErrorsForControls(controls: AbstractControl[]): void;
30
+ getFormModelForSchema(name: string, customizeModel?: FormModelCustomizer): Promise<DynamicFormModel>;
31
+ protected getFormModelForSchemaDef(schema: IOpenApiSchema, customizeModels: FormModelCustomizerWrap): DynamicFormModel;
32
+ protected getFormControlModels(property: IOpenApiSchemaProperty, schema: IOpenApiSchema, customizeModels: FormModelCustomizerWrap): DynamicFormControlModel[];
33
+ findModelByPath(parent: DynamicPathable | DynamicFormModel, path: string[]): DynamicPathable;
34
+ getFormControlConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFormValueControlModelConfig<any>;
35
+ getFormArrayConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema, customizeModels: FormModelCustomizerWrap): DynamicFormArrayModelConfig;
36
+ getFormGroupConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema, customizeModels: FormModelCustomizerWrap): DynamicFormGroupModelConfig;
37
+ getFormInputConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicInputModelConfig;
38
+ getFormTextareaConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicTextAreaModelConfig;
39
+ getFormSelectConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicSelectModelConfig<any>;
40
+ getFormCheckboxConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicCheckboxModelConfig;
41
+ protected translateOptions(options: DynamicFormOptionConfig<any>[]): Promise<DynamicFormOptionConfig<any>[]>;
42
+ protected getFormSelectOptions(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): FormSelectSubject<DynamicFormOptionConfig<any>[]>;
43
+ protected getFormUploadConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFileUploadModelConfig;
44
+ protected getValidators(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicValidatorsConfig;
45
+ protected addPropertyValidators(validators: DynamicValidatorsConfig, property: IOpenApiSchemaProperty): void;
46
+ protected addItemsValidators(validators: DynamicValidatorsConfig, items: IOpenApiSchemaProperty): void;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormService, never>;
48
+ static ɵprov: i0.ɵɵInjectableDeclaration<DynamicFormService>;
12
49
  }
@@ -0,0 +1,22 @@
1
+ import { Injector } from "@angular/core";
2
+ import { DynamicFormArrayModel as Base, DynamicFormArrayModelConfig as ConfigBase, DynamicFormControlLayout } from "@ng-dynamic-forms/core";
3
+ export declare type SaveTabFunc = (index: number, model: DynamicFormArrayModel, injector: Injector) => void;
4
+ export declare type RestoreTabFunc = (model: DynamicFormArrayModel, injector: Injector) => number;
5
+ export interface DynamicFormArrayModelConfig extends ConfigBase {
6
+ useTabs?: boolean;
7
+ saveTab?: SaveTabFunc;
8
+ restoreTab?: RestoreTabFunc;
9
+ additional?: {
10
+ [key: string]: any;
11
+ };
12
+ }
13
+ export declare class DynamicFormArrayModel extends Base {
14
+ readonly useTabs: boolean;
15
+ readonly saveTab: SaveTabFunc;
16
+ readonly restoreTab: RestoreTabFunc;
17
+ readonly additional: {
18
+ [key: string]: any;
19
+ };
20
+ tabIndex: number;
21
+ constructor(config: DynamicFormArrayModelConfig, layout?: DynamicFormControlLayout);
22
+ }
@@ -0,0 +1,6 @@
1
+ import { AbstractControl } from "@angular/forms";
2
+ import { DynamicFormOptionConfig, DynamicSelectModel } from "@ng-dynamic-forms/core";
3
+ import { FormSubject } from "./form-subject";
4
+ export declare class FormSelectSubject<T extends DynamicFormOptionConfig<any>[]> extends FormSubject<T> {
5
+ protected handleNotifiedValue(controlModel: DynamicSelectModel<any>, control: AbstractControl, val: Promise<T>): void;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { Subject } from "rxjs";
2
+ import { AbstractControl } from "@angular/forms";
3
+ import { DynamicFormControlModel, DynamicFormModel } from "@ng-dynamic-forms/core";
4
+ export declare type NotifyCallback = (controlModel: DynamicFormControlModel, control: AbstractControl, root: DynamicFormModel, indexes: any) => any | Promise<any>;
5
+ export declare class FormSubject<T> extends Subject<T> {
6
+ private readonly notifyCallback;
7
+ constructor(notifyCallback: NotifyCallback);
8
+ protected handleNotifiedValue(controlModel: DynamicFormControlModel, control: AbstractControl, val: Promise<T>): void;
9
+ notify(controlModel: DynamicFormControlModel, control: AbstractControl, root: DynamicFormModel): void;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { DynamicPathable } from "@ng-dynamic-forms/core";
2
+ export declare function isStringWithVal(val: any): boolean;
3
+ export declare function collectPathAble<T extends DynamicPathable>(start: T, getter: (cur: T & DynamicPathable) => string): string[];
4
+ export declare const MIN_INPUT_NUM = -99999999999999;
5
+ export declare const MAX_INPUT_NUM = 99999999999999;
@@ -0,0 +1,8 @@
1
+ import { AbstractControl, ValidationErrors, ValidatorFn } from "@angular/forms";
2
+ export declare function validateJSON(control: AbstractControl): ValidationErrors | null;
3
+ export declare function validateRequiredTranslation(control: AbstractControl): ValidationErrors | null;
4
+ export declare function validatePhone(control: AbstractControl): ValidationErrors | null;
5
+ export declare function validateItemsMinLength(minLength: number): ValidatorFn;
6
+ export declare function validateItemsMaxLength(maxLength: number): ValidatorFn;
7
+ export declare function validateItemsMinValue(min: number): ValidatorFn;
8
+ export declare function validateItemsMaxValue(max: number): ValidatorFn;
package/package.json CHANGED
@@ -1,40 +1,60 @@
1
1
  {
2
2
  "name": "@stemy/ngx-dynamic-form",
3
- "version": "12.0.0",
3
+ "version": "13.0.2",
4
4
  "license": "MIT",
5
5
  "public": true,
6
6
  "repository": "https://github.com/stemyke/ngx-dynamic-form.git",
7
7
  "author": "stemy <balazs.stemler@metrix.co.hu>",
8
8
  "peerDependencies": {
9
- "@angular/animations": "^10.0.0 || ^11.0.0 || ^12.0.0",
10
- "@angular/common": "^10.0.0 || ^11.0.0 || ^12.0.0",
11
- "@angular/compiler": "^10.0.0 || ^11.0.0 || ^12.0.0",
12
- "@angular/core": "^10.0.0 || ^11.0.0 || ^12.0.0",
13
- "@angular/forms": "^10.0.0 || ^11.0.0 || ^12.0.0",
14
- "@angular/router": "^10.0.0 || ^11.0.0 || ^12.0.0",
15
- "@angular/platform-browser": "^10.0.0 || ^11.0.0 || ^12.0.0",
16
- "@angular/platform-server": "^10.0.0 || ^11.0.0 || ^12.0.0",
9
+ "@angular/animations": "^13.0.0",
10
+ "@angular/common": "^13.0.0",
11
+ "@angular/compiler": "^13.0.0",
12
+ "@angular/core": "^13.0.0",
13
+ "@angular/forms": "^13.0.0",
14
+ "@angular/router": "^13.0.0",
15
+ "@angular/platform-browser": "^13.0.0",
16
+ "@angular/platform-server": "^13.0.0",
17
17
  "express": "^4.0.0",
18
18
  "resize-detector": "^0.2.2 || ^0.3.0",
19
- "core-js": "^3.6.5",
20
- "rxjs": "^6.6.2",
21
- "zone.js": "^0.10.3 || ^0.11.4",
19
+ "core-js": "^3.6.5 || ^3.22.5",
20
+ "rxjs": "^7.5.5",
21
+ "zone.js": "^0.11.5",
22
22
  "moment": "^2.27.0",
23
23
  "invokable": "^1.0.3",
24
24
  "ngx-device-detector": "~2.1.1 || ~3.0.0",
25
- "@stemy/ngx-utils": "^10.2.38 || ^11.0.0 || ^12.0.0"
25
+ "json5": "^2.2.1",
26
+ "@stemy/ngx-utils": "^13.0.5",
27
+ "@ng-dynamic-forms/core": "^15.0.0",
28
+ "@ng-dynamic-forms/ui-basic": "^15.0.0",
29
+ "ngx-mask": "^13.1.14"
26
30
  },
27
- "main": "bundles/stemy-ngx-dynamic-form.umd.js",
28
- "module": "fesm2015/stemy-ngx-dynamic-form.js",
29
- "es2015": "fesm2015/stemy-ngx-dynamic-form.js",
31
+ "main": "dist/bundles/stemy-ngx-dynamic-form.umd.js",
32
+ "module": "fesm2015/stemy-ngx-dynamic-form.mjs",
33
+ "es2015": "dist/fesm2015/stemy-ngx-dynamic-form.js",
30
34
  "esm5": "dist/esm5/stemy-ngx-dynamic-form.js",
31
- "esm2015": "esm2015/stemy-ngx-dynamic-form.js",
35
+ "esm2015": "dist/esm2015/stemy-ngx-dynamic-form.js",
32
36
  "fesm5": "dist/fesm5/stemy-ngx-dynamic-form.js",
33
- "fesm2015": "fesm2015/stemy-ngx-dynamic-form.js",
37
+ "fesm2015": "fesm2015/stemy-ngx-dynamic-form.mjs",
34
38
  "typings": "stemy-ngx-dynamic-form.d.ts",
35
- "metadata": "stemy-ngx-dynamic-form.metadata.json",
36
- "sideEffects": false,
39
+ "metadata": "dist/stemy-ngx-dynamic-form.metadata.json",
37
40
  "dependencies": {
38
- "tslib": "^2.2.0"
39
- }
41
+ "tslib": "^2.0.1"
42
+ },
43
+ "es2020": "fesm2020/stemy-ngx-dynamic-form.mjs",
44
+ "esm2020": "esm2020/stemy-ngx-dynamic-form.mjs",
45
+ "fesm2020": "fesm2020/stemy-ngx-dynamic-form.mjs",
46
+ "exports": {
47
+ "./package.json": {
48
+ "default": "./package.json"
49
+ },
50
+ ".": {
51
+ "types": "./stemy-ngx-dynamic-form.d.ts",
52
+ "esm2020": "./esm2020/stemy-ngx-dynamic-form.mjs",
53
+ "es2020": "./fesm2020/stemy-ngx-dynamic-form.mjs",
54
+ "es2015": "./fesm2015/stemy-ngx-dynamic-form.mjs",
55
+ "node": "./fesm2015/stemy-ngx-dynamic-form.mjs",
56
+ "default": "./fesm2020/stemy-ngx-dynamic-form.mjs"
57
+ }
58
+ },
59
+ "sideEffects": false
40
60
  }
package/public_api.d.ts CHANGED
@@ -1,17 +1,13 @@
1
- export { FORM_CONTROL_PROVIDER, IFormControlComponent, IFormGroupComponent, FormControlComponent, IFormControlProviderAcceptor, IFormControlProviderLoader, IFormControlOptions, IFormControlSerializer, IFormControlProvider, IFormSerializer, IFormSerializers, DynamicFormState, DynamicFormUpdateOn, IDynamicFormControl, DynamicFormGroup, DynamicFormControl, IFormControl, IFormControlData, IFormInputData, IFormSelectData, IFormStaticData, IFormFileData, IFormModelData, IFormFieldSet, IFormControlOption, IDynamicFormTemplates, IDynamicFormConfig, IDynamicSingleFormConfig, IDynamicMultiFormConfig, IDynamicFormsConfigs, IDynamicFormBase, AsyncSubmitMethod, IDynamicFormInfo, IDynamicForm, IDynamicFormFieldSets, FormControlTester, FormControlTesterFactory, FormControlValidator, FormControlValidatorFactory, defaultSerializer, FormSerializable, FormInput, FormSelect, FormStatic, FormModel, FormFile, FormFieldSet, FormGroupProvider, provideFormGroup, FormControlProvider, provideFormControl, defineFormControl, getFormFieldSets, getFormControl, getFormSerializer, createFormInput, createFormSelect, createFormStatic, createFormModel, createFormControl } from "./ngx-dynamic-form/common-types";
1
+ export { IDynamicFormEvent, IDynamicForm, OnCreatedFormControl, FormControlSerializer, FormModelCustomizer, DynamicFormState, DynamicFormUpdateOn, IFormControl, IFormControlOption, IDynamicFormTemplates, IDynamicFormConfig, IDynamicSingleFormConfig, IDynamicMultiFormConfig, IDynamicFormsConfigs, AsyncSubmitMethod, IDynamicFormInfo, defaultSerializer, FormSerializable, FormInput, FormSelect, FormStatic, FormModel, FormFile, defineFormControl, getFormControl, getFormSerializer, createFormInput, createFormSelect, createFormStatic, createFormModel, createFormControl, IDynamicFormModuleConfig } from "./ngx-dynamic-form/common-types";
2
+ export { MIN_INPUT_NUM, MAX_INPUT_NUM } from "./ngx-dynamic-form/utils/misc";
3
+ export { validateJSON, validateRequiredTranslation, validatePhone, validateItemsMinLength, validateItemsMaxLength, validateItemsMinValue, validateItemsMaxValue } from "./ngx-dynamic-form/utils/validators";
4
+ export { DynamicFormArrayModelConfig, DynamicFormArrayModel } from "./ngx-dynamic-form/utils/dynamic-form-array.model";
5
+ export { FormSelectSubject } from "./ngx-dynamic-form/utils/form-select-subject";
6
+ export { FormSubject } from "./ngx-dynamic-form/utils/form-subject";
2
7
  export { DynamicFormService } from "./ngx-dynamic-form/services/dynamic-form.service";
3
- export { FormUtilities } from "./ngx-dynamic-form/services/form-utilities";
4
- export { OpenApiService, IOpenApiSchemaProperty, IOpenApiSchema, IDynamicFormInputs } from "./ngx-dynamic-form/services/open-api.service";
5
8
  export { AsyncSubmitDirective } from "./ngx-dynamic-form/directives/async-submit.directive";
6
- export { DynamicFormControlDirective } from "./ngx-dynamic-form/directives/dynamic-form-control.directive";
7
- export { DynamicFormTemplateDirective } from "./ngx-dynamic-form/directives/dynamic-form-template.directive";
8
- export { DynamicFormBaseComponent } from "./ngx-dynamic-form/components/base/dynamic-form-base.component";
9
- export { DynamicFormComponent } from "./ngx-dynamic-form/components/dynamic-form/dynamic-form.component";
10
- export { DynamicFormsComponent } from "./ngx-dynamic-form/components/dynamic-forms/dynamic-forms.component";
11
- export { DynamicFormGroupComponent } from "./ngx-dynamic-form/components/dynamic-form-group/dynamic-form-group.component";
12
- export { DynamicFormFileComponent } from "./ngx-dynamic-form/components/dynamic-form-file/dynamic-form-file.component";
13
- export { DynamicFormInputComponent } from "./ngx-dynamic-form/components/dynamic-form-input/dynamic-form-input.component";
14
- export { DynamicFormSelectComponent } from "./ngx-dynamic-form/components/dynamic-form-select/dynamic-form-select.component";
15
- export { DynamicFormStaticComponent } from "./ngx-dynamic-form/components/dynamic-form-static/dynamic-form-static.component";
16
- export { DynamicFormModelComponent } from "./ngx-dynamic-form/components/dynamic-form-model/dynamic-form-model.component";
9
+ export { DynamicBaseFormComponent } from "./ngx-dynamic-form/components/base/dynamic-base-form.component";
10
+ export { DynamicBaseFormArrayComponent } from "./ngx-dynamic-form/components/base/dynamic-base-form-array.component";
11
+ export { DynamicBaseFormControlContainerComponent } from "./ngx-dynamic-form/components/base/dynamic-base-form-control-container.component";
12
+ export { DynamicBaseFormGroupComponent } from "./ngx-dynamic-form/components/base/dynamic-base-form-group.component";
17
13
  export { NgxDynamicFormModule } from "./ngx-dynamic-form/ngx-dynamic-form.module";
@@ -1,7 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
+ /// <amd-module name="@stemy/ngx-dynamic-form" />
4
5
  export * from './public_api';
5
- export { FORM_GROUP_TYPE as ɵa } from './ngx-dynamic-form/common-types';
6
- export { DynamicFormGroupDirective as ɵe } from './ngx-dynamic-form/directives/dynamic-form-group.directive';
7
- export { components as ɵb, directives as ɵc, pipes as ɵd } from './ngx-dynamic-form/ngx-dynamic-form.module';