@stemy/ngx-dynamic-form 19.1.10 → 19.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common-types.d.ts +37 -0
- package/components/base/dynamic-base-form-array.component.d.ts +38 -0
- package/components/base/dynamic-base-form-control-container.component.d.ts +39 -0
- package/components/base/dynamic-base-form-control.component.d.ts +26 -0
- package/components/base/dynamic-base-form-group.component.d.ts +25 -0
- package/components/base/dynamic-base-form.component.d.ts +46 -0
- package/components/base/dynamic-base-select.component.d.ts +15 -0
- package/directives/async-submit.directive.d.ts +31 -0
- package/fesm2022/stemy-ngx-dynamic-form-src-ngx-dynamic-form-nebular.mjs +50 -0
- package/fesm2022/stemy-ngx-dynamic-form-src-ngx-dynamic-form-nebular.mjs.map +1 -0
- package/fesm2022/stemy-ngx-dynamic-form-ui-nebular.mjs +50 -0
- package/fesm2022/stemy-ngx-dynamic-form-ui-nebular.mjs.map +1 -0
- package/fesm2022/stemy-ngx-dynamic-form.mjs +31 -31
- package/fesm2022/stemy-ngx-dynamic-form.mjs.map +1 -1
- package/imports.d.ts +12 -0
- package/ngx-dynamic-form/common-types.d.ts +1 -1
- package/ngx-dynamic-form/utils/customizer.d.ts +3 -3
- package/ngx-dynamic-form.imports.d.ts +12 -0
- package/ngx-dynamic-form.module.d.ts +21 -0
- package/package.json +1 -1
- package/services/dynamic-form.service.d.ts +61 -0
- package/src/ngx-dynamic-form/nebular/imports.d.ts +4 -0
- package/src/ngx-dynamic-form/nebular/index.d.ts +5 -0
- package/src/ngx-dynamic-form/nebular/ngx-dynamic-form.nebular.module.d.ts +9 -0
- package/src/ngx-dynamic-form/nebular/public_api.d.ts +1 -0
- package/ui-nebular/imports.d.ts +4 -0
- package/ui-nebular/index.d.ts +5 -0
- package/ui-nebular/ngx-dynamic-form.nebular.module.d.ts +9 -0
- package/ui-nebular/public_api.d.ts +1 -0
- package/utils/creators.d.ts +18 -0
- package/utils/customizer.d.ts +14 -0
- package/utils/dynamic-editor.model.d.ts +11 -0
- package/utils/dynamic-form-array.model.d.ts +69 -0
- package/utils/dynamic-form-group.model.d.ts +14 -0
- package/utils/dynamic-select.model.d.ts +39 -0
- package/utils/form-select-subject.d.ts +6 -0
- package/utils/form-subject.d.ts +10 -0
- package/utils/misc.d.ts +11 -0
- package/utils/validation-errors.d.ts +11 -0
- package/utils/validators.d.ts +8 -0
package/imports.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DynamicFormControlMapFn } from "@ng-dynamic-forms/core";
|
|
2
|
+
import { AsyncSubmitDirective } from "./directives/async-submit.directive";
|
|
3
|
+
import { DynamicBaseFormComponent } from "./components/base/dynamic-base-form.component";
|
|
4
|
+
import { DynamicBaseFormArrayComponent } from "./components/base/dynamic-base-form-array.component";
|
|
5
|
+
import { DynamicBaseFormControlComponent } from "./components/base/dynamic-base-form-control.component";
|
|
6
|
+
import { DynamicBaseFormControlContainerComponent } from "./components/base/dynamic-base-form-control-container.component";
|
|
7
|
+
import { DynamicBaseFormGroupComponent } from "./components/base/dynamic-base-form-group.component";
|
|
8
|
+
import { DynamicBaseSelectComponent } from "./components/base/dynamic-base-select.component";
|
|
9
|
+
export declare const components: (typeof DynamicBaseFormComponent | typeof DynamicBaseFormArrayComponent | typeof DynamicBaseFormControlComponent | typeof DynamicBaseFormControlContainerComponent | typeof DynamicBaseFormGroupComponent | typeof DynamicBaseSelectComponent)[];
|
|
10
|
+
export declare const directives: (typeof AsyncSubmitDirective)[];
|
|
11
|
+
export declare const pipes: any[];
|
|
12
|
+
export declare function defaultFormControlProvider(): DynamicFormControlMapFn;
|
|
@@ -18,7 +18,7 @@ export declare interface ModelType extends Function {
|
|
|
18
18
|
}
|
|
19
19
|
export type PromiseOrNot<T> = Promise<T> | T;
|
|
20
20
|
export type FormControlSerializer = (model: DynamicFormValueControlModel<any>, control: AbstractControl) => Promise<any>;
|
|
21
|
-
export type FormModelCustomizer = (property: IOpenApiSchemaProperty, schema: IOpenApiSchema, model: DynamicFormControlModel, config: DynamicFormControlModelConfig, injector: Injector) => PromiseOrNot<DynamicFormControlModel | DynamicFormControlModel[]>;
|
|
21
|
+
export type FormModelCustomizer = (property: IOpenApiSchemaProperty, schema: IOpenApiSchema, model: DynamicFormControlModel, config: DynamicFormControlModelConfig, path: string, injector: Injector) => PromiseOrNot<DynamicFormControlModel | DynamicFormControlModel[]>;
|
|
22
22
|
export interface ModelForSchemaOptions {
|
|
23
23
|
labelPrefix?: string;
|
|
24
24
|
customizer?: FormModelCustomizer;
|
|
@@ -3,12 +3,12 @@ import { DynamicFormControlComponent, DynamicFormControlModel, DynamicFormContro
|
|
|
3
3
|
import { CachedProvider, IOpenApiSchema, IOpenApiSchemaProperty } from "@stemy/ngx-utils";
|
|
4
4
|
import { FormModelCustomizer, GetFormControlComponentType, PromiseOrNot } from "../common-types";
|
|
5
5
|
export interface IFormComponentCustomizer {
|
|
6
|
-
acceptModel(model: DynamicFormControlModel): boolean;
|
|
6
|
+
acceptModel(model: DynamicFormControlModel, path: string): boolean;
|
|
7
7
|
getFormComponent(model: DynamicFormControlModel): Type<DynamicFormControlComponent>;
|
|
8
8
|
}
|
|
9
9
|
export declare function getFormComponent(...providers: CachedProvider<IFormComponentCustomizer>[]): GetFormControlComponentType;
|
|
10
10
|
export interface IFormModelCustomizer {
|
|
11
|
-
acceptModel(model: DynamicFormControlModel): boolean;
|
|
12
|
-
customizeModel(model: DynamicFormControlModel, config: DynamicFormControlModelConfig, property: IOpenApiSchemaProperty, schema: IOpenApiSchema): PromiseOrNot<DynamicFormControlModel | DynamicFormControlModel[]>;
|
|
11
|
+
acceptModel(model: DynamicFormControlModel, path: string): boolean;
|
|
12
|
+
customizeModel(model: DynamicFormControlModel, config: DynamicFormControlModelConfig, property: IOpenApiSchemaProperty, schema: IOpenApiSchema, path: string): PromiseOrNot<DynamicFormControlModel | DynamicFormControlModel[]>;
|
|
13
13
|
}
|
|
14
14
|
export declare function customizeFormModel(...providers: CachedProvider<IFormModelCustomizer>[]): FormModelCustomizer;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DynamicFormControlMapFn } from "@ng-dynamic-forms/core";
|
|
2
|
+
import { AsyncSubmitDirective } from "./directives/async-submit.directive";
|
|
3
|
+
import { DynamicBaseFormComponent } from "./components/base/dynamic-base-form.component";
|
|
4
|
+
import { DynamicBaseFormArrayComponent } from "./components/base/dynamic-base-form-array.component";
|
|
5
|
+
import { DynamicBaseFormControlComponent } from "./components/base/dynamic-base-form-control.component";
|
|
6
|
+
import { DynamicBaseFormControlContainerComponent } from "./components/base/dynamic-base-form-control-container.component";
|
|
7
|
+
import { DynamicBaseFormGroupComponent } from "./components/base/dynamic-base-form-group.component";
|
|
8
|
+
import { DynamicBaseSelectComponent } from "./components/base/dynamic-base-select.component";
|
|
9
|
+
export declare const components: (typeof DynamicBaseFormComponent | typeof DynamicBaseFormArrayComponent | typeof DynamicBaseFormControlComponent | typeof DynamicBaseFormControlContainerComponent | typeof DynamicBaseFormGroupComponent | typeof DynamicBaseSelectComponent)[];
|
|
10
|
+
export declare const directives: (typeof AsyncSubmitDirective)[];
|
|
11
|
+
export declare const pipes: any[];
|
|
12
|
+
export declare function defaultFormControlProvider(): DynamicFormControlMapFn;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { EnvironmentProviders, ModuleWithProviders } from "@angular/core";
|
|
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.component";
|
|
7
|
+
import * as i4 from "./components/base/dynamic-base-form-control-container.component";
|
|
8
|
+
import * as i5 from "./components/base/dynamic-base-form-group.component";
|
|
9
|
+
import * as i6 from "./components/base/dynamic-base-select.component";
|
|
10
|
+
import * as i7 from "./directives/async-submit.directive";
|
|
11
|
+
import * as i8 from "@angular/common";
|
|
12
|
+
import * as i9 from "@angular/forms";
|
|
13
|
+
import * as i10 from "@stemy/ngx-utils";
|
|
14
|
+
export declare class NgxDynamicFormModule {
|
|
15
|
+
private static getProviders;
|
|
16
|
+
static forRoot(config?: IDynamicFormModuleConfig): ModuleWithProviders<NgxDynamicFormModule>;
|
|
17
|
+
static provideForms(config?: IDynamicFormModuleConfig): EnvironmentProviders;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxDynamicFormModule, never>;
|
|
19
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDynamicFormModule, [typeof i1.DynamicBaseFormComponent, typeof i2.DynamicBaseFormArrayComponent, typeof i3.DynamicBaseFormControlComponent, typeof i4.DynamicBaseFormControlContainerComponent, typeof i5.DynamicBaseFormGroupComponent, typeof i6.DynamicBaseSelectComponent, typeof i7.AsyncSubmitDirective], [typeof i8.CommonModule, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i10.NgxUtilsModule], [typeof i1.DynamicBaseFormComponent, typeof i2.DynamicBaseFormArrayComponent, typeof i3.DynamicBaseFormControlComponent, typeof i4.DynamicBaseFormControlContainerComponent, typeof i5.DynamicBaseFormGroupComponent, typeof i6.DynamicBaseSelectComponent, typeof i7.AsyncSubmitDirective, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i10.NgxUtilsModule]>;
|
|
20
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgxDynamicFormModule>;
|
|
21
|
+
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Injector } from "@angular/core";
|
|
2
|
+
import { AbstractControl, AbstractControlOptions, FormArray, FormControl, FormGroup } from "@angular/forms";
|
|
3
|
+
import { DynamicCheckboxModelConfig, DynamicDatePickerModelConfig, DynamicFileUploadModelConfig, DynamicFormComponentService, DynamicFormControlModel, DynamicFormModel, DynamicFormService as Base, DynamicFormValidationService, DynamicFormValueControlModelConfig, DynamicInputModelConfig, DynamicPathable, DynamicRadioGroupModelConfig, DynamicTextAreaModelConfig, DynamicValidatorsConfig } from "@ng-dynamic-forms/core";
|
|
4
|
+
import { IApiService, ILanguageService, IOpenApiSchema, IOpenApiSchemaProperty, IOpenApiSchemas, OpenApiService } from "@stemy/ngx-utils";
|
|
5
|
+
import { FormModelCustomizer, IDynamicForm, ModelForSchemaOptions, ModelForSchemaWrapOptions } from "../common-types";
|
|
6
|
+
import { FormSelectSubject } from "../utils/form-select-subject";
|
|
7
|
+
import { DynamicEditorModelConfig } from "../utils/dynamic-editor.model";
|
|
8
|
+
import { DynamicFormArrayModel, DynamicFormArrayModelConfig } from "../utils/dynamic-form-array.model";
|
|
9
|
+
import { DynamicFormFieldSet, DynamicFormGroupModel, DynamicFormGroupModelConfig } from "../utils/dynamic-form-group.model";
|
|
10
|
+
import { DynamicFormOptionConfig, DynamicSelectModel, DynamicSelectModelConfig } from "../utils/dynamic-select.model";
|
|
11
|
+
import { DynamicBaseFormComponent } from "../components/base/dynamic-base-form.component";
|
|
12
|
+
import { AllValidationErrors } from "../utils/validation-errors";
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
export declare class DynamicFormService extends Base {
|
|
15
|
+
readonly openApi: OpenApiService;
|
|
16
|
+
readonly injector: Injector;
|
|
17
|
+
get api(): IApiService;
|
|
18
|
+
get language(): ILanguageService;
|
|
19
|
+
protected schemas: IOpenApiSchemas;
|
|
20
|
+
constructor(cs: DynamicFormComponentService, vs: DynamicFormValidationService, openApi: OpenApiService, injector: Injector);
|
|
21
|
+
serializeForm(form: IDynamicForm, validate?: boolean): Promise<any>;
|
|
22
|
+
getFormModelForSchema(name: string, customizeOrOptions?: FormModelCustomizer | ModelForSchemaOptions): Promise<DynamicFormModel>;
|
|
23
|
+
getErrors(form: DynamicBaseFormComponent): Promise<AllValidationErrors[]>;
|
|
24
|
+
createFormGroup(formModel: DynamicFormModel, options?: AbstractControlOptions | null, parent?: DynamicPathable | null): import("@angular/forms").UntypedFormGroup;
|
|
25
|
+
patchGroup(value: any, formModel: DynamicFormModel, formGroup: FormGroup): void;
|
|
26
|
+
patchForm(value: any, component: DynamicBaseFormComponent): void;
|
|
27
|
+
validateForm(form: IDynamicForm, showErrors?: boolean): Promise<any>;
|
|
28
|
+
serialize(formModel: DynamicFormModel, formGroup: FormGroup): Promise<any>;
|
|
29
|
+
showErrors(form: IDynamicForm): void;
|
|
30
|
+
notifyChanges(formModel: DynamicFormModel, formGroup: FormGroup, root: DynamicFormModel): void;
|
|
31
|
+
protected patchValues(value: any, formModel: DynamicFormModel, formGroup: FormGroup): void;
|
|
32
|
+
protected updateSelectOptions(formControlModel: DynamicFormControlModel, formControl: FormControl, root: DynamicFormModel): void;
|
|
33
|
+
protected showErrorsForGroup(formGroup: FormGroup): void;
|
|
34
|
+
protected showErrorsForControls(controls: AbstractControl[]): void;
|
|
35
|
+
protected convertToDate(value: any): Date;
|
|
36
|
+
getFormGroupModelForSchema(name: string, customizeOrOptions?: FormModelCustomizer | ModelForSchemaOptions): Promise<DynamicFormGroupModel>;
|
|
37
|
+
protected getFormModelForSchemaDef(schema: IOpenApiSchema, fieldSets: DynamicFormFieldSet<string>[], options: ModelForSchemaWrapOptions, path: string): Promise<DynamicFormModel>;
|
|
38
|
+
protected checkIsEditorProperty(property: IOpenApiSchemaProperty): boolean;
|
|
39
|
+
protected getFormControlModels(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions, path: string): Promise<DynamicFormControlModel[]>;
|
|
40
|
+
findModelByPath(parent: DynamicPathable | DynamicFormModel, path: string[]): DynamicPathable;
|
|
41
|
+
getFormControlConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): DynamicFormValueControlModelConfig<any>;
|
|
42
|
+
getFormArrayConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions, path: string): Promise<DynamicFormArrayModelConfig>;
|
|
43
|
+
getFormGroupConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions, path: string): Promise<DynamicFormGroupModelConfig>;
|
|
44
|
+
getFormInputConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): DynamicInputModelConfig;
|
|
45
|
+
getFormEditorConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): DynamicEditorModelConfig;
|
|
46
|
+
getFormTextareaConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): DynamicTextAreaModelConfig;
|
|
47
|
+
getFormDatepickerConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): DynamicDatePickerModelConfig;
|
|
48
|
+
getFormSelectOptions(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): FormSelectSubject<DynamicFormOptionConfig<any>[]>;
|
|
49
|
+
getFormRadioConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): DynamicRadioGroupModelConfig<any>;
|
|
50
|
+
getFormSelectConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): DynamicSelectModelConfig<any>;
|
|
51
|
+
getFormUploadConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): DynamicFileUploadModelConfig;
|
|
52
|
+
getFormCheckboxConfig(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): DynamicCheckboxModelConfig;
|
|
53
|
+
cloneFormArrayGroup(index: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void;
|
|
54
|
+
protected replaceOptionsEndpoint(endpoint: string, key: string, value: any): string;
|
|
55
|
+
protected fixSelectOptions(model: DynamicSelectModel<any>, control: FormControl, options: DynamicFormOptionConfig<any>[]): Promise<DynamicFormOptionConfig<any>[]>;
|
|
56
|
+
protected getValidators(property: IOpenApiSchemaProperty, options: ModelForSchemaWrapOptions): DynamicValidatorsConfig;
|
|
57
|
+
protected addPropertyValidators(validators: DynamicValidatorsConfig, property: IOpenApiSchemaProperty): void;
|
|
58
|
+
protected addItemsValidators(validators: DynamicValidatorsConfig, items: IOpenApiSchemaProperty): void;
|
|
59
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormService, never>;
|
|
60
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DynamicFormService>;
|
|
61
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "@angular/common";
|
|
3
|
+
import * as i2 from "@angular/forms";
|
|
4
|
+
import * as i3 from "@stemy/ngx-dynamic-form";
|
|
5
|
+
export declare class NgxDynamicFormNebularModule {
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxDynamicFormNebularModule, never>;
|
|
7
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDynamicFormNebularModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i2.ReactiveFormsModule, typeof i3.NgxDynamicFormModule], [typeof i3.NgxDynamicFormModule]>;
|
|
8
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgxDynamicFormNebularModule>;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { NgxDynamicFormNebularModule } from "./ngx-dynamic-form.nebular.module";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "@angular/common";
|
|
3
|
+
import * as i2 from "@angular/forms";
|
|
4
|
+
import * as i3 from "@stemy/ngx-dynamic-form";
|
|
5
|
+
export declare class NgxDynamicFormNebularModule {
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxDynamicFormNebularModule, never>;
|
|
7
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDynamicFormNebularModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i2.ReactiveFormsModule, typeof i3.NgxDynamicFormModule], [typeof i3.NgxDynamicFormModule]>;
|
|
8
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgxDynamicFormNebularModule>;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { NgxDynamicFormNebularModule } from "./ngx-dynamic-form.nebular.module";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DynamicCheckboxModel, DynamicCheckboxModelConfig, DynamicDatePickerModel, DynamicFileUploadModel, DynamicFileUploadModelConfig, DynamicFormControlLayout, DynamicFormValueControlModelConfig, DynamicInputModel, DynamicInputModelConfig, DynamicTextAreaModel, DynamicTextAreaModelConfig } from "@ng-dynamic-forms/core";
|
|
2
|
+
import { DynamicEditorModel, DynamicEditorModelConfig } from "./dynamic-editor.model";
|
|
3
|
+
import { DynamicFormArrayModel, DynamicFormArrayModelConfig } from "./dynamic-form-array.model";
|
|
4
|
+
import { DynamicFormGroupModel, DynamicFormGroupModelConfig } from "./dynamic-form-group.model";
|
|
5
|
+
import { DynamicSelectModel, DynamicSelectModelConfig } from "./dynamic-select.model";
|
|
6
|
+
export type ValueModelConfig = DynamicFormValueControlModelConfig<any>;
|
|
7
|
+
export type OmitId<T extends ValueModelConfig> = Omit<T, "id">;
|
|
8
|
+
export type AddId<T extends OmitId<ValueModelConfig>> = T extends OmitId<(infer U)> ? U : never;
|
|
9
|
+
export declare function createFormConfig<T extends ValueModelConfig, U extends OmitId<T>>(id: string, config?: U): AddId<U>;
|
|
10
|
+
export declare function createFormCheckbox(id: string, config: OmitId<DynamicCheckboxModelConfig>, layout?: DynamicFormControlLayout): DynamicCheckboxModel;
|
|
11
|
+
export declare function createFormDate(id: string, config: OmitId<DynamicDatePickerModel>, layout?: DynamicFormControlLayout): DynamicDatePickerModel;
|
|
12
|
+
export declare function createFormEditor(id: string, config: OmitId<DynamicEditorModelConfig>, layout?: DynamicFormControlLayout): DynamicEditorModel;
|
|
13
|
+
export declare function createFormArray(id: string, config: OmitId<DynamicFormArrayModelConfig>, layout?: DynamicFormControlLayout): DynamicFormArrayModel;
|
|
14
|
+
export declare function createFormGroup(id: string, config: OmitId<DynamicFormGroupModelConfig>, layout?: DynamicFormControlLayout): DynamicFormGroupModel;
|
|
15
|
+
export declare function createFormInput(id: string, config: OmitId<DynamicInputModelConfig>, type?: string, layout?: DynamicFormControlLayout): DynamicInputModel;
|
|
16
|
+
export declare function createFormSelect<T = any>(id: string, config: OmitId<DynamicSelectModelConfig<T>>, layout?: DynamicFormControlLayout): DynamicSelectModel<T>;
|
|
17
|
+
export declare function createFormTextarea(id: string, config: OmitId<DynamicTextAreaModelConfig>, layout?: DynamicFormControlLayout): DynamicTextAreaModel;
|
|
18
|
+
export declare function createFormFile(id: string, config: OmitId<DynamicFileUploadModelConfig>, layout?: DynamicFormControlLayout): DynamicFileUploadModel;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Type } from "@angular/core";
|
|
2
|
+
import { DynamicFormControlComponent, DynamicFormControlModel, DynamicFormControlModelConfig } from "@ng-dynamic-forms/core";
|
|
3
|
+
import { CachedProvider, IOpenApiSchema, IOpenApiSchemaProperty } from "@stemy/ngx-utils";
|
|
4
|
+
import { FormModelCustomizer, GetFormControlComponentType, PromiseOrNot } from "../common-types";
|
|
5
|
+
export interface IFormComponentCustomizer {
|
|
6
|
+
acceptModel(model: DynamicFormControlModel): boolean;
|
|
7
|
+
getFormComponent(model: DynamicFormControlModel): Type<DynamicFormControlComponent>;
|
|
8
|
+
}
|
|
9
|
+
export declare function getFormComponent(...providers: CachedProvider<IFormComponentCustomizer>[]): GetFormControlComponentType;
|
|
10
|
+
export interface IFormModelCustomizer {
|
|
11
|
+
acceptModel(model: DynamicFormControlModel): boolean;
|
|
12
|
+
customizeModel(model: DynamicFormControlModel, config: DynamicFormControlModelConfig, property: IOpenApiSchemaProperty, schema: IOpenApiSchema): PromiseOrNot<DynamicFormControlModel | DynamicFormControlModel[]>;
|
|
13
|
+
}
|
|
14
|
+
export declare function customizeFormModel(...providers: CachedProvider<IFormModelCustomizer>[]): FormModelCustomizer;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DynamicFormControlLayout, DynamicInputControlModel, DynamicInputControlModelConfig } from "@ng-dynamic-forms/core";
|
|
2
|
+
export interface DynamicEditorModelConfig extends DynamicInputControlModelConfig<string | Object> {
|
|
3
|
+
inputType: string;
|
|
4
|
+
convertObject?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class DynamicEditorModel extends DynamicInputControlModel<string | Object> {
|
|
7
|
+
readonly type: string;
|
|
8
|
+
readonly inputType: string;
|
|
9
|
+
readonly convertObject: boolean;
|
|
10
|
+
constructor(config: DynamicEditorModelConfig, layout?: DynamicFormControlLayout);
|
|
11
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Injector } from "@angular/core";
|
|
2
|
+
import { FormArray } from "@angular/forms";
|
|
3
|
+
import { BehaviorSubject } from "rxjs";
|
|
4
|
+
import { DynamicFormArrayGroupModel as GroupBase, DynamicFormArrayModel as Base, DynamicFormArrayModelConfig as ConfigBase, DynamicFormControlLayout, DynamicFormModel } from "@ng-dynamic-forms/core";
|
|
5
|
+
import { ITimer } from "@stemy/ngx-utils";
|
|
6
|
+
export type SaveTabFunc = (index: number, model: DynamicFormArrayGroupModel, arrayModel: DynamicFormArrayModel, injector: Injector) => void;
|
|
7
|
+
export type RestoreTabFunc = (arrayModel: DynamicFormArrayModel, injector: Injector) => number;
|
|
8
|
+
export type TabLabelFunc = (index: number, model: DynamicFormArrayGroupModel, arrayModel: DynamicFormArrayModel, array: FormArray, injector: Injector) => string;
|
|
9
|
+
export declare class DynamicFormArrayGroupModel extends GroupBase {
|
|
10
|
+
readonly context: DynamicFormArrayModel;
|
|
11
|
+
get hidden(): boolean;
|
|
12
|
+
set hidden(value: boolean);
|
|
13
|
+
protected isHidden: boolean;
|
|
14
|
+
constructor(context: DynamicFormArrayModel, group: DynamicFormModel, index?: number);
|
|
15
|
+
}
|
|
16
|
+
export interface DynamicFormArrayModelConfig extends ConfigBase {
|
|
17
|
+
groups?: DynamicFormArrayGroupModel[] | null;
|
|
18
|
+
sortable?: boolean;
|
|
19
|
+
useTabs?: boolean;
|
|
20
|
+
saveTab?: SaveTabFunc;
|
|
21
|
+
restoreTab?: RestoreTabFunc;
|
|
22
|
+
getTabLabel?: TabLabelFunc;
|
|
23
|
+
additional?: {
|
|
24
|
+
[key: string]: any;
|
|
25
|
+
};
|
|
26
|
+
addItem?: boolean;
|
|
27
|
+
insertItem?: boolean;
|
|
28
|
+
cloneItem?: boolean;
|
|
29
|
+
moveItem?: boolean;
|
|
30
|
+
removeItem?: boolean;
|
|
31
|
+
clearItems?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare class DynamicFormArrayModel extends Base {
|
|
34
|
+
protected config: DynamicFormArrayModelConfig;
|
|
35
|
+
readonly filteredGroups: BehaviorSubject<ReadonlyArray<DynamicFormArrayGroupModel>>;
|
|
36
|
+
readonly sortable: boolean;
|
|
37
|
+
readonly useTabs: boolean;
|
|
38
|
+
readonly saveTab: SaveTabFunc;
|
|
39
|
+
readonly restoreTab: RestoreTabFunc;
|
|
40
|
+
readonly getTabLabel: TabLabelFunc;
|
|
41
|
+
readonly additional: {
|
|
42
|
+
[key: string]: any;
|
|
43
|
+
};
|
|
44
|
+
groups: DynamicFormArrayGroupModel[];
|
|
45
|
+
tabIndex: number;
|
|
46
|
+
protected _sortBy: string;
|
|
47
|
+
protected _sortDescending: boolean;
|
|
48
|
+
protected _formArray: FormArray;
|
|
49
|
+
protected _filteredGroups: ReadonlyArray<DynamicFormArrayGroupModel>;
|
|
50
|
+
protected _filterTimer: ITimer;
|
|
51
|
+
get addItem(): boolean;
|
|
52
|
+
get insertItem(): boolean;
|
|
53
|
+
get cloneItem(): boolean;
|
|
54
|
+
get moveItem(): boolean;
|
|
55
|
+
get removeItem(): boolean;
|
|
56
|
+
get clearItems(): boolean;
|
|
57
|
+
get sortBy(): string;
|
|
58
|
+
set sortBy(value: string);
|
|
59
|
+
get sortDescending(): boolean;
|
|
60
|
+
get sortOrder(): string;
|
|
61
|
+
constructor(config: DynamicFormArrayModelConfig, layout?: DynamicFormControlLayout);
|
|
62
|
+
initialize(array?: FormArray): void;
|
|
63
|
+
filterGroups(): void;
|
|
64
|
+
getFiltered(index: number): DynamicFormArrayGroupModel;
|
|
65
|
+
insertGroup(index: number): DynamicFormArrayGroupModel;
|
|
66
|
+
moveGroup(index: number, step: number): void;
|
|
67
|
+
removeGroup(index: number): void;
|
|
68
|
+
protected compareModels(a: DynamicFormArrayGroupModel, b: DynamicFormArrayGroupModel): number;
|
|
69
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DynamicFormControlLayout, DynamicFormControlModel, DynamicFormGroupModel as Base, DynamicFormGroupModelConfig as BaseConfig } from "@ng-dynamic-forms/core";
|
|
2
|
+
export interface DynamicFormFieldSet<T> {
|
|
3
|
+
id: string;
|
|
4
|
+
legend: string;
|
|
5
|
+
fields: T[];
|
|
6
|
+
}
|
|
7
|
+
export type DynamicFormFieldSets<T> = ReadonlyArray<DynamicFormFieldSet<T>>;
|
|
8
|
+
export interface DynamicFormGroupModelConfig extends BaseConfig {
|
|
9
|
+
fieldSets?: DynamicFormFieldSets<string>;
|
|
10
|
+
}
|
|
11
|
+
export declare class DynamicFormGroupModel extends Base {
|
|
12
|
+
readonly groups: DynamicFormFieldSets<DynamicFormControlModel>;
|
|
13
|
+
constructor(config: DynamicFormGroupModelConfig, layout?: DynamicFormControlLayout);
|
|
14
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Injector } from "@angular/core";
|
|
2
|
+
import { FormControl } from "@angular/forms";
|
|
3
|
+
import { Observable } from "rxjs";
|
|
4
|
+
import { DynamicFormControlLayout, DynamicFormOption as BaseOption, DynamicFormOptionConfig as BaseOptionConfig, DynamicSelectModel as Base, DynamicSelectModelConfig as BaseConfig } from "@ng-dynamic-forms/core";
|
|
5
|
+
export interface DynamicFormOptionConfig<T> extends BaseOptionConfig<T> {
|
|
6
|
+
classes?: string;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}
|
|
9
|
+
export declare class DynamicFormOption<T> extends BaseOption<T> {
|
|
10
|
+
readonly classes: string;
|
|
11
|
+
readonly props: any;
|
|
12
|
+
constructor(config: DynamicFormOptionConfig<T>);
|
|
13
|
+
}
|
|
14
|
+
export interface DynamicFormOptionGroup<T> {
|
|
15
|
+
group: string;
|
|
16
|
+
options: ReadonlyArray<DynamicFormOption<T>>;
|
|
17
|
+
}
|
|
18
|
+
export type OptionClassesFunc<T> = (option: DynamicFormOptionConfig<T>, model: DynamicSelectModel<T>, control: FormControl, injector: Injector) => string;
|
|
19
|
+
export interface DynamicSelectModelConfig<T> extends BaseConfig<T> {
|
|
20
|
+
groupBy?: string;
|
|
21
|
+
inline?: boolean;
|
|
22
|
+
options?: DynamicFormOptionConfig<T>[] | Observable<DynamicFormOptionConfig<T>[]>;
|
|
23
|
+
getClasses?: OptionClassesFunc<T>;
|
|
24
|
+
allowEmpty?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare class DynamicSelectModel<T> extends Base<T> {
|
|
27
|
+
readonly groupBy: string;
|
|
28
|
+
readonly inline: boolean;
|
|
29
|
+
readonly getClasses: OptionClassesFunc<T>;
|
|
30
|
+
readonly allowEmpty: boolean;
|
|
31
|
+
options$: Observable<DynamicFormOption<T>[]>;
|
|
32
|
+
protected mOptions: DynamicFormOption<T>[];
|
|
33
|
+
constructor(config: DynamicSelectModelConfig<T>, layout?: DynamicFormControlLayout);
|
|
34
|
+
set options(options: any);
|
|
35
|
+
get options(): ReadonlyArray<DynamicFormOption<T>>;
|
|
36
|
+
insert(index: number, optionConfig: DynamicFormOptionConfig<T>): DynamicFormOption<T>;
|
|
37
|
+
remove(...indices: number[]): void;
|
|
38
|
+
protected updateOptions(): void;
|
|
39
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AbstractControl } from "@angular/forms";
|
|
2
|
+
import { DynamicFormOptionConfig, DynamicSelectModel } from "./dynamic-select.model";
|
|
3
|
+
import { FormSubject } from "./form-subject";
|
|
4
|
+
export declare class FormSelectSubject<T extends DynamicFormOptionConfig<any>[]> extends FormSubject<DynamicSelectModel<any>, 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 { FormControl } from "@angular/forms";
|
|
3
|
+
import { DynamicFormControlModel, DynamicFormModel } from "@ng-dynamic-forms/core";
|
|
4
|
+
export type NotifyCallback<M extends DynamicFormControlModel> = (controlModel: M, control: FormControl, root: DynamicFormModel, indexes: any) => any | Promise<any>;
|
|
5
|
+
export declare class FormSubject<M extends DynamicFormControlModel, T> extends Subject<T> {
|
|
6
|
+
private readonly notifyCallback;
|
|
7
|
+
constructor(notifyCallback: NotifyCallback<M>);
|
|
8
|
+
protected handleNotifiedValue(controlModel: M, control: FormControl, val: Promise<T>): void;
|
|
9
|
+
notify(controlModel: M, control: FormControl, root: DynamicFormModel): void;
|
|
10
|
+
}
|
package/utils/misc.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DynamicFormModel, DynamicPathable } from "@ng-dynamic-forms/core";
|
|
2
|
+
import { IOpenApiSchemaProperty } from "@stemy/ngx-utils";
|
|
3
|
+
export declare function isStringWithVal(val: any): boolean;
|
|
4
|
+
export declare function findRefs(property: IOpenApiSchemaProperty): string[];
|
|
5
|
+
export declare function replaceSpecialChars(str: string, to?: string): string;
|
|
6
|
+
export declare function mergeFormModels(formModels: DynamicFormModel[]): DynamicFormModel;
|
|
7
|
+
export declare function collectPathAble<T extends DynamicPathable>(start: T, getter: (cur: T & DynamicPathable) => string): string[];
|
|
8
|
+
export declare function getDynamicPath(start: DynamicPathable): string;
|
|
9
|
+
export declare const MIN_INPUT_NUM = -999999999;
|
|
10
|
+
export declare const MAX_INPUT_NUM = 999999999;
|
|
11
|
+
export declare const EDITOR_FORMATS: string[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AbstractControl } from "@angular/forms";
|
|
2
|
+
export interface AllValidationErrors {
|
|
3
|
+
control: AbstractControl;
|
|
4
|
+
path: string;
|
|
5
|
+
errorKey: string;
|
|
6
|
+
errorValue: any;
|
|
7
|
+
}
|
|
8
|
+
export interface FormGroupControls {
|
|
9
|
+
[key: string]: AbstractControl;
|
|
10
|
+
}
|
|
11
|
+
export declare function getFormValidationErrors(controls: FormGroupControls, parentPath?: string): AllValidationErrors[];
|
|
@@ -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;
|