@stemy/ngx-dynamic-form 19.2.13 → 19.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/stemy-ngx-dynamic-form.mjs +382 -257
- package/fesm2022/stemy-ngx-dynamic-form.mjs.map +1 -1
- package/ngx-dynamic-form/common-types.d.ts +36 -14
- package/ngx-dynamic-form/components/dynamic-form/dynamic-form.component.d.ts +4 -2
- package/ngx-dynamic-form/services/dynamic-form-builder.service.d.ts +3 -2
- package/ngx-dynamic-form/services/dynamic-form-schema.service.d.ts +36 -0
- package/ngx-dynamic-form/services/dynamic-form.service.d.ts +10 -29
- package/ngx-dynamic-form/utils/customizer.d.ts +2 -2
- package/ngx-dynamic-form/utils/internal.d.ts +21 -0
- package/ngx-dynamic-form/utils/misc.d.ts +1 -4
- package/package.json +2 -2
- package/public_api.d.ts +3 -2
- package/ngx-dynamic-form/utils/validation-errors.d.ts +0 -11
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { Injector, OutputRef, Signal } from "@angular/core";
|
|
2
|
-
import { AbstractControl, FormGroup } from "@angular/forms";
|
|
2
|
+
import { AbstractControl, FormControl, FormGroup } from "@angular/forms";
|
|
3
3
|
import { Observable } from "rxjs";
|
|
4
|
-
import {
|
|
4
|
+
import { ConfigOption, FormlyFieldConfig, FormlyFieldProps } from "@ngx-formly/core";
|
|
5
5
|
import { FormlySelectOption } from "@ngx-formly/core/select";
|
|
6
6
|
import { IAsyncMessage, IOpenApiSchema, IOpenApiSchemaProperty, IRequestOptions, MaybeArray, MaybePromise } from "@stemy/ngx-utils";
|
|
7
|
-
import { FormlyValueChangeEvent } from "@ngx-formly/core/lib/models";
|
|
8
7
|
export declare const FORM_ROOT_KEY = "__root";
|
|
9
8
|
export type DynamicFormState = "VALID" | "INVALID" | "PENDING" | "DISABLED" | "LOADING";
|
|
10
9
|
export type DynamicFormUpdateOn = "change" | "blur" | "submit";
|
|
11
10
|
export type UploadData = Record<string, any> | ArrayBuffer | FormData;
|
|
11
|
+
export type FormFieldLabelCustomizer = (key: string, label: string, parent: FormFieldConfig, labelPrefix: string) => string;
|
|
12
12
|
export interface FormBuilderOptions {
|
|
13
13
|
labelPrefix?: string;
|
|
14
|
+
labelCustomizer?: FormFieldLabelCustomizer;
|
|
15
|
+
testId?: string;
|
|
14
16
|
}
|
|
15
17
|
export interface FormFieldProps extends FormlyFieldProps {
|
|
16
18
|
autocomplete?: string;
|
|
19
|
+
suffix?: string;
|
|
17
20
|
formCheck?: string;
|
|
18
21
|
indeterminate?: boolean;
|
|
19
22
|
multiple?: boolean;
|
|
@@ -46,22 +49,39 @@ export interface FormHookConfig {
|
|
|
46
49
|
afterViewInit?: FormHookFn;
|
|
47
50
|
onDestroy?: FormHookFn;
|
|
48
51
|
}
|
|
52
|
+
export type FormFieldExpression<T = any> = string | ((field: FormFieldConfig) => T) | Observable<T>;
|
|
53
|
+
export type FormFieldExpressions = {
|
|
54
|
+
[property: string]: FormFieldExpression;
|
|
55
|
+
} & {
|
|
56
|
+
className?: FormFieldExpression<string>;
|
|
57
|
+
hide?: FormFieldExpression<boolean>;
|
|
58
|
+
"props.disabled"?: FormFieldExpression<boolean>;
|
|
59
|
+
"props.required"?: FormFieldExpression<boolean>;
|
|
60
|
+
};
|
|
49
61
|
export interface FormFieldConfig<T = FormFieldProps> extends FormlyFieldConfig<T> {
|
|
50
62
|
serializer?: FormFieldSerializer;
|
|
51
63
|
serialize?: boolean;
|
|
52
64
|
fieldSet?: string;
|
|
53
|
-
|
|
65
|
+
parent?: FormFieldConfig;
|
|
54
66
|
fieldGroup?: FormFieldConfig[];
|
|
55
67
|
fieldArray?: FormFieldConfig | ((field: FormFieldConfig) => FormFieldConfig);
|
|
56
68
|
hooks?: FormHookConfig;
|
|
69
|
+
expressions?: FormFieldExpressions;
|
|
57
70
|
readonly additional?: Readonly<{
|
|
58
71
|
[key: string]: any;
|
|
59
72
|
}>;
|
|
73
|
+
readonly path?: string;
|
|
74
|
+
readonly testId?: string;
|
|
60
75
|
}
|
|
61
|
-
export interface FormFieldType<T = FormFieldProps> extends
|
|
76
|
+
export interface FormFieldType<T = FormFieldProps> extends FormFieldConfig<T> {
|
|
77
|
+
formControl: FormControl;
|
|
78
|
+
props: NonNullable<T>;
|
|
62
79
|
}
|
|
63
|
-
export interface FormFieldChangeEvent
|
|
80
|
+
export interface FormFieldChangeEvent {
|
|
64
81
|
field: FormFieldConfig;
|
|
82
|
+
type: string;
|
|
83
|
+
value: any;
|
|
84
|
+
[meta: string]: any;
|
|
65
85
|
}
|
|
66
86
|
export interface FormSerializeResult {
|
|
67
87
|
[key: string]: any;
|
|
@@ -100,6 +120,12 @@ export type AsyncBoolean = Promise<boolean> | Observable<boolean>;
|
|
|
100
120
|
export type AsyncValidatorFn = FormFieldValidatorFn<AsyncBoolean>;
|
|
101
121
|
export type AsyncValidatorExpression = FormFieldValidatorExpression<AsyncBoolean>;
|
|
102
122
|
export type AsyncValidators = FormFieldValidation<AsyncValidatorFn, AsyncBoolean>;
|
|
123
|
+
export interface AllValidationErrors {
|
|
124
|
+
control: AbstractControl;
|
|
125
|
+
path: string;
|
|
126
|
+
errorKey: string;
|
|
127
|
+
errorValue: any;
|
|
128
|
+
}
|
|
103
129
|
export type FormFieldCustom = Pick<FormFieldConfig, "wrappers" | "hooks" | "fieldGroup" | "fieldArray">;
|
|
104
130
|
export type FormFieldData = Pick<FormFieldProps, "label" | "readonly" | "hidden" | "disabled"> & {
|
|
105
131
|
validators?: Validators | ValidatorFn[];
|
|
@@ -107,22 +133,18 @@ export type FormFieldData = Pick<FormFieldProps, "label" | "readonly" | "hidden"
|
|
|
107
133
|
fieldSet?: string;
|
|
108
134
|
classes?: string[] | string;
|
|
109
135
|
};
|
|
110
|
-
export type FormInputData = FormFieldData & Pick<FormFieldProps, "type" | "pattern" | "placeholder" | "step" | "min" | "max" | "minLength" | "maxLength" | "autocomplete" | "indeterminate" | "cols" | "rows">;
|
|
136
|
+
export type FormInputData = FormFieldData & Pick<FormFieldProps, "type" | "pattern" | "placeholder" | "step" | "min" | "max" | "minLength" | "maxLength" | "autocomplete" | "suffix" | "indeterminate" | "cols" | "rows">;
|
|
111
137
|
export type FormSelectData = FormFieldData & Pick<FormFieldProps, "multiple" | "type" | "allowEmpty" | "groupBy"> & {
|
|
112
138
|
options?: (field: FormFieldConfig) => FormSelectOptions | Promise<FormSelectOption[]>;
|
|
113
139
|
};
|
|
114
140
|
export type FormUploadData = FormFieldData & Pick<FormFieldProps, "inline" | "multiple" | "accept" | "url" | "maxSize" | "uploadOptions" | "createUploadData" | "multi" | "asFile" | "uploadUrl">;
|
|
115
141
|
export type FormGroupData = FormFieldData;
|
|
116
142
|
export type FormArrayData = FormFieldData & Pick<FormFieldProps, "useTabs" | "tabsLabel" | "addItem" | "insertItem" | "cloneItem" | "moveItem" | "removeItem" | "clearItems">;
|
|
117
|
-
export type FormFieldCustomizer = (
|
|
143
|
+
export type FormFieldCustomizer = (field: FormFieldConfig, options: FormBuilderOptions, injector: Injector, property: IOpenApiSchemaProperty, schema: IOpenApiSchema) => MaybePromise<MaybeArray<FormFieldConfig>>;
|
|
118
144
|
export interface ConfigForSchemaOptions extends FormBuilderOptions {
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
export interface ConfigForSchemaWrapOptions extends Omit<ConfigForSchemaOptions, "customizer"> {
|
|
122
|
-
schema: IOpenApiSchema;
|
|
123
|
-
injector?: Injector;
|
|
124
|
-
customizer?: (property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, field: FormFieldConfig) => Promise<FormFieldConfig[]>;
|
|
145
|
+
fieldCustomizer?: FormFieldCustomizer;
|
|
125
146
|
}
|
|
147
|
+
export type CustomizerOrSchemaOptions = FormFieldCustomizer | ConfigForSchemaOptions;
|
|
126
148
|
export declare type AsyncSubmitMethod = (form: IDynamicForm, context?: any) => Promise<IAsyncMessage>;
|
|
127
149
|
export interface IDynamicFormModuleConfig extends Pick<ConfigOption, "types" | "wrappers" | "extras"> {
|
|
128
150
|
}
|
|
@@ -2,7 +2,7 @@ import { FormGroup } from "@angular/forms";
|
|
|
2
2
|
import { Subject } from "rxjs";
|
|
3
3
|
import { FormlyFormOptions } from "@ngx-formly/core";
|
|
4
4
|
import { EventsService } from "@stemy/ngx-utils";
|
|
5
|
-
import { FormFieldChangeEvent, FormFieldConfig, IDynamicForm } from "../../common-types";
|
|
5
|
+
import { FormFieldChangeEvent, FormFieldConfig, FormFieldLabelCustomizer, IDynamicForm } from "../../common-types";
|
|
6
6
|
import { DynamicFormBuilderService } from "../../services/dynamic-form-builder.service";
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class DynamicFormComponent implements IDynamicForm {
|
|
@@ -10,6 +10,8 @@ export declare class DynamicFormComponent implements IDynamicForm {
|
|
|
10
10
|
protected readonly events: EventsService;
|
|
11
11
|
protected readonly languages: import("@stemy/ngx-utils").ILanguageService;
|
|
12
12
|
readonly labelPrefix: import("@angular/core").InputSignal<string>;
|
|
13
|
+
readonly labelCustomizer: import("@angular/core").InputSignal<FormFieldLabelCustomizer>;
|
|
14
|
+
readonly testId: import("@angular/core").InputSignal<string>;
|
|
13
15
|
readonly data: import("@angular/core").InputSignal<any>;
|
|
14
16
|
readonly fields: import("@angular/core").InputSignal<FormFieldConfig<import("../../common-types").FormFieldProps>[]>;
|
|
15
17
|
readonly fieldChanges: Subject<FormFieldChangeEvent>;
|
|
@@ -24,5 +26,5 @@ export declare class DynamicFormComponent implements IDynamicForm {
|
|
|
24
26
|
submit(): void;
|
|
25
27
|
reset(): void;
|
|
26
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
|
|
27
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "dynamic-form", never, { "labelPrefix": { "alias": "labelPrefix"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "fields": { "alias": "fields"; "required": false; "isSignal": true; }; }, { "onSubmit": "onSubmit"; }, never, ["*"], false, never>;
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "dynamic-form", never, { "labelPrefix": { "alias": "labelPrefix"; "required": false; "isSignal": true; }; "labelCustomizer": { "alias": "labelCustomizer"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "fields": { "alias": "fields"; "required": false; "isSignal": true; }; }, { "onSubmit": "onSubmit"; }, never, ["*"], false, never>;
|
|
28
30
|
}
|
|
@@ -8,8 +8,6 @@ export declare class DynamicFormBuilderService {
|
|
|
8
8
|
readonly api: IApiService;
|
|
9
9
|
readonly language: ILanguageService;
|
|
10
10
|
constructor(injector: Injector, api: IApiService, language: ILanguageService);
|
|
11
|
-
protected getLabel(key: string, label: string, parent: FormFieldConfig, options: FormBuilderOptions): string;
|
|
12
|
-
protected createFormField(key: string, type: string, data: FormFieldData, props: FormFieldProps, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
|
|
13
11
|
resolveFormFields(target: Type<any>, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig[];
|
|
14
12
|
resolveFormGroup(key: string, target: Type<any>, data: FormGroupData, parent?: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
|
|
15
13
|
resolveFormArray(key: string, itemType: string | FormInputData | Type<any>, data: FormArrayData, parent?: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
|
|
@@ -22,6 +20,9 @@ export declare class DynamicFormBuilderService {
|
|
|
22
20
|
createFormArray(key: string, fields: (parent: FormFieldConfig) => FormFieldConfig | FormFieldConfig[], data: FormArrayData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
|
|
23
21
|
createFormArray(key: string, fields: (parent: FormFieldConfig) => Promise<FormFieldConfig | FormFieldConfig[]>, data: FormArrayData, parent: FormFieldConfig, options: FormBuilderOptions): Promise<FormFieldConfig>;
|
|
24
22
|
fixSelectOptions(field: FormFieldConfig, options: FormSelectOption[]): Promise<FormSelectOption[]>;
|
|
23
|
+
protected getLabel(key: string, label: string, parent: FormFieldConfig, options: FormBuilderOptions): string;
|
|
24
|
+
protected createFormField(key: string, type: string, data: FormFieldData, props: FormFieldProps, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
|
|
25
|
+
protected setExpressions(field: FormFieldConfig, options: FormBuilderOptions): void;
|
|
25
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormBuilderService, never>;
|
|
26
27
|
static ɵprov: i0.ɵɵInjectableDeclaration<DynamicFormBuilderService>;
|
|
27
28
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Injector } from "@angular/core";
|
|
2
|
+
import { AbstractControl, FormGroup } from "@angular/forms";
|
|
3
|
+
import { IApiService, ILanguageService, IOpenApiSchema, IOpenApiSchemaProperty, OpenApiService } from "@stemy/ngx-utils";
|
|
4
|
+
import { CustomizerOrSchemaOptions, FormFieldConfig, FormFieldData, FormSelectOptions, Validators } from "../common-types";
|
|
5
|
+
import { ConfigForSchemaWrapOptions } from "../utils/internal";
|
|
6
|
+
import { DynamicFormBuilderService } from "./dynamic-form-builder.service";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class DynamicFormSchemaService {
|
|
9
|
+
protected readonly openApi: OpenApiService;
|
|
10
|
+
protected readonly injector: Injector;
|
|
11
|
+
protected readonly builder: DynamicFormBuilderService;
|
|
12
|
+
get api(): IApiService;
|
|
13
|
+
get language(): ILanguageService;
|
|
14
|
+
constructor(openApi: OpenApiService, injector: Injector, builder: DynamicFormBuilderService);
|
|
15
|
+
getSchema(name: string): Promise<IOpenApiSchema>;
|
|
16
|
+
getFormFieldsForSchema(name: string, parent: FormFieldConfig, customizeOrOptions: CustomizerOrSchemaOptions): Promise<FormFieldConfig[]>;
|
|
17
|
+
protected getFormFieldsForProp(property: IOpenApiSchemaProperty, schema: IOpenApiSchema, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): Promise<FormFieldConfig[]>;
|
|
18
|
+
protected getFormFieldForProp(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): Promise<FormFieldConfig>;
|
|
19
|
+
protected getFormFieldData(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions): FormFieldData;
|
|
20
|
+
protected getFormArrayConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): Promise<FormFieldConfig>;
|
|
21
|
+
protected getFormGroupConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): Promise<FormFieldConfig>;
|
|
22
|
+
protected getFormInputConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
23
|
+
protected getFormTextareaConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
24
|
+
protected getFormDatepickerConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
25
|
+
protected getFormSelectConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
26
|
+
protected getFormUploadConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
27
|
+
protected getFormCheckboxConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
28
|
+
protected getFormSelectOptions(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, field: FormFieldConfig): FormSelectOptions;
|
|
29
|
+
protected replaceOptionsEndpoint(endpoint: string, key: string, value: any): string;
|
|
30
|
+
protected showErrorsForGroup(formGroup: FormGroup): void;
|
|
31
|
+
protected showErrorsForControls(controls: AbstractControl[]): void;
|
|
32
|
+
protected addPropertyValidators(validators: Validators, property: IOpenApiSchemaProperty): void;
|
|
33
|
+
protected addItemsValidators(validators: Validators, items: IOpenApiSchemaProperty): void;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormSchemaService, never>;
|
|
35
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DynamicFormSchemaService>;
|
|
36
|
+
}
|
|
@@ -1,41 +1,22 @@
|
|
|
1
1
|
import { Injector } from "@angular/core";
|
|
2
2
|
import { AbstractControl, FormGroup } from "@angular/forms";
|
|
3
|
-
import { IApiService
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { IApiService } from "@stemy/ngx-utils";
|
|
4
|
+
import { CustomizerOrSchemaOptions, FormFieldConfig, FormSerializeResult, IDynamicForm } from "../common-types";
|
|
5
|
+
import { DynamicFormSchemaService } from "./dynamic-form-schema.service";
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class DynamicFormService {
|
|
8
|
-
readonly
|
|
9
|
-
readonly injector: Injector;
|
|
10
|
-
readonly
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
protected readonly fs: DynamicFormSchemaService;
|
|
9
|
+
protected readonly injector: Injector;
|
|
10
|
+
protected readonly api: IApiService;
|
|
11
|
+
constructor(fs: DynamicFormSchemaService, injector: Injector, api: IApiService);
|
|
12
|
+
getFormFieldsForSchema(name: string, customizeOrOptions?: CustomizerOrSchemaOptions): Promise<FormFieldConfig[]>;
|
|
13
|
+
getFormFieldGroupForSchema(name: string, customizeOrOptions?: CustomizerOrSchemaOptions): Promise<FormFieldConfig>;
|
|
14
|
+
protected getFormFieldGroupBySchemaName(name: string, customizeOrOptions: CustomizerOrSchemaOptions, restrictedMethod: string): Promise<FormFieldConfig>;
|
|
15
15
|
validateForm(form: IDynamicForm, showErrors?: boolean): Promise<any>;
|
|
16
16
|
serializeForm(form: IDynamicForm, validate?: boolean): Promise<FormSerializeResult>;
|
|
17
17
|
serialize(fields: FormFieldConfig[]): Promise<FormSerializeResult>;
|
|
18
|
-
getFormFieldsForSchema(name: string, customizeOrOptions?: FormFieldCustomizer | ConfigForSchemaOptions): Promise<FormFieldConfig[]>;
|
|
19
|
-
getFormFieldGroupForSchema(name: string, customizeOrOptions?: FormFieldCustomizer | ConfigForSchemaOptions): Promise<FormFieldConfig>;
|
|
20
|
-
protected getFormFieldsForSchemaDef(schema: IOpenApiSchema, parent: FormFieldConfig, options: ConfigForSchemaWrapOptions): Promise<FormFieldConfig[]>;
|
|
21
|
-
protected getFormFieldsForProp(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): Promise<FormFieldConfig[]>;
|
|
22
|
-
protected getFormFieldForProp(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): Promise<FormFieldConfig>;
|
|
23
|
-
protected getFormFieldData(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions): FormFieldData;
|
|
24
|
-
protected getFormArrayConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): Promise<FormFieldConfig>;
|
|
25
|
-
protected getFormGroupConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): Promise<FormFieldConfig>;
|
|
26
|
-
protected getFormInputConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
27
|
-
protected getFormTextareaConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
28
|
-
protected getFormDatepickerConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
29
|
-
protected getFormSelectConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
30
|
-
protected getFormUploadConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
31
|
-
protected getFormCheckboxConfig(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, parent: FormFieldConfig): FormFieldConfig;
|
|
32
|
-
protected getFormSelectOptions(property: IOpenApiSchemaProperty, options: ConfigForSchemaWrapOptions, field: FormFieldConfig): FormSelectOptions;
|
|
33
|
-
protected replaceOptionsEndpoint(endpoint: string, key: string, value: any): string;
|
|
34
18
|
protected showErrorsForGroup(formGroup: FormGroup): void;
|
|
35
19
|
protected showErrorsForControls(controls: AbstractControl[]): void;
|
|
36
|
-
protected convertToDate(value: any): any;
|
|
37
|
-
protected addPropertyValidators(validators: Validators, property: IOpenApiSchemaProperty): void;
|
|
38
|
-
protected addItemsValidators(validators: Validators, items: IOpenApiSchemaProperty): void;
|
|
39
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormService, never>;
|
|
40
21
|
static ɵprov: i0.ɵɵInjectableDeclaration<DynamicFormService>;
|
|
41
22
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CachedProvider, IOpenApiSchema, IOpenApiSchemaProperty, MaybeArray, MaybePromise } from "@stemy/ngx-utils";
|
|
2
2
|
import { FormBuilderOptions, FormFieldConfig, FormFieldCustomizer } from "../common-types";
|
|
3
3
|
export interface IFormFieldCustomizer {
|
|
4
|
-
acceptField(field: FormFieldConfig): boolean;
|
|
5
|
-
customizeField(field: FormFieldConfig, property: IOpenApiSchemaProperty, schema: IOpenApiSchema
|
|
4
|
+
acceptField(field: FormFieldConfig, property: IOpenApiSchemaProperty, schema: IOpenApiSchema): boolean;
|
|
5
|
+
customizeField(field: FormFieldConfig, options: FormBuilderOptions, property: IOpenApiSchemaProperty, schema: IOpenApiSchema): MaybePromise<MaybeArray<FormFieldConfig>>;
|
|
6
6
|
}
|
|
7
7
|
export declare function customizeFormField(...providers: CachedProvider<IFormFieldCustomizer>[]): FormFieldCustomizer;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Injector } from "@angular/core";
|
|
2
|
+
import { IOpenApiSchema, IOpenApiSchemaProperty, MaybeArray } from "@stemy/ngx-utils";
|
|
3
|
+
import { AllValidationErrors, CustomizerOrSchemaOptions, FormBuilderOptions, FormFieldConfig } from "../common-types";
|
|
4
|
+
import { AbstractControl } from "@angular/forms";
|
|
5
|
+
export type ConfigForSchemaWrapMode = "wrap" | "customizer";
|
|
6
|
+
export interface ConfigForSchemaWrapOptions extends Required<FormBuilderOptions> {
|
|
7
|
+
readonly injector: Injector;
|
|
8
|
+
readonly schema: IOpenApiSchema;
|
|
9
|
+
customize(field: FormFieldConfig, property: IOpenApiSchemaProperty, schema: IOpenApiSchema): Promise<FormFieldConfig[]>;
|
|
10
|
+
}
|
|
11
|
+
export declare function toWrapOptions(customizeOrOptions: CustomizerOrSchemaOptions | ConfigForSchemaWrapOptions, injector: Injector, schema: IOpenApiSchema, errorMsg?: string): Promise<ConfigForSchemaWrapOptions>;
|
|
12
|
+
export declare function convertToDate(value: any): any;
|
|
13
|
+
export declare function handleConfigs(configs: MaybeArray<FormFieldConfig>): FormFieldConfig<import("../common-types").FormFieldProps>[];
|
|
14
|
+
export declare function isStringWithVal(val: any): boolean;
|
|
15
|
+
export declare function findRefs(property: IOpenApiSchemaProperty): string[];
|
|
16
|
+
export declare function mergeFormFields(formFields: FormFieldConfig[][]): FormFieldConfig[];
|
|
17
|
+
interface FormGroupControls {
|
|
18
|
+
[key: string]: AbstractControl;
|
|
19
|
+
}
|
|
20
|
+
export declare function getFormValidationErrors(controls: FormGroupControls, parentPath?: string): AllValidationErrors[];
|
|
21
|
+
export {};
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { IOpenApiSchemaProperty } from "@stemy/ngx-utils";
|
|
2
1
|
import { FormFieldConfig } from "../common-types";
|
|
3
|
-
export declare function isStringWithVal(val: any): boolean;
|
|
4
|
-
export declare function findRefs(property: IOpenApiSchemaProperty): string[];
|
|
5
2
|
export declare function replaceSpecialChars(str: string, to?: string): string;
|
|
6
|
-
export declare function mergeFormFields(formFields: FormFieldConfig[][]): FormFieldConfig[];
|
|
7
3
|
export declare function getFieldByPath(field: FormFieldConfig, path: string): FormFieldConfig | null;
|
|
4
|
+
export declare function getFieldsByKey(field: FormFieldConfig, key: string): FormFieldConfig[];
|
|
8
5
|
export declare function setFieldHidden(field: FormFieldConfig, hidden?: boolean): void;
|
|
9
6
|
export declare function setFieldDisabled(field: FormFieldConfig, disabled?: boolean): void;
|
|
10
7
|
export declare function additionalFieldValues(field: FormFieldConfig, values: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stemy/ngx-dynamic-form",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.3.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"public": true,
|
|
6
6
|
"repository": "https://github.com/stemyke/ngx-dynamic-form.git",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"ngx-device-detector": "^9.0.0",
|
|
23
23
|
"@floating-ui/dom": "^1.7.1",
|
|
24
24
|
"json5": "^2.2.3",
|
|
25
|
-
"@stemy/ngx-utils": "
|
|
25
|
+
"@stemy/ngx-utils": ">=19.5.2",
|
|
26
26
|
"@ngx-formly/core": "^6.3.12",
|
|
27
27
|
"ngx-mask": "^17.1.8"
|
|
28
28
|
},
|
package/public_api.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export { FORM_ROOT_KEY, FormBuilderOptions, FormFieldProps, FormFieldSerializer, FormHookFn, FormHookConfig, FormFieldConfig, FormFieldType, FormFieldChangeEvent, FormSerializeResult, FormSelectOption, FormSelectOptions, IDynamicForm, ValidationMessageFn, ValidatorFn, ValidatorExpression, Validators, AsyncValidatorFn, AsyncValidatorExpression, AsyncValidators, FormFieldCustom, FormFieldData, FormInputData, FormSelectData, FormUploadData, FormGroupData, FormArrayData, FormFieldCustomizer, ConfigForSchemaOptions, DynamicFormState, DynamicFormUpdateOn, AsyncSubmitMethod, IDynamicFormModuleConfig, } from "./ngx-dynamic-form/common-types";
|
|
1
|
+
export { FORM_ROOT_KEY, FormBuilderOptions, FormFieldProps, FormFieldSerializer, FormHookFn, FormHookConfig, FormFieldExpression, FormFieldExpressions, FormFieldConfig, FormFieldType, FormFieldChangeEvent, FormSerializeResult, FormSelectOption, FormSelectOptions, IDynamicForm, ValidationMessageFn, ValidatorFn, ValidatorExpression, Validators, AsyncValidatorFn, AsyncValidatorExpression, AsyncValidators, AllValidationErrors, FormFieldCustom, FormFieldData, FormInputData, FormSelectData, FormUploadData, FormGroupData, FormArrayData, FormFieldCustomizer, ConfigForSchemaOptions, DynamicFormState, DynamicFormUpdateOn, AsyncSubmitMethod, IDynamicFormModuleConfig, } from "./ngx-dynamic-form/common-types";
|
|
2
2
|
export { IFormFieldCustomizer, customizeFormField } from "./ngx-dynamic-form/utils/customizer";
|
|
3
3
|
export { FormSerializable, FormInput, FormSelect, FormUpload, FormFile, FormGroup, FormModel } from "./ngx-dynamic-form/utils/decorators";
|
|
4
4
|
export { validationMessage, jsonValidation, requiredValidation, translationValidation, phoneValidation, emailValidation, minLengthValidation, maxLengthValidation, minValueValidation, maxValueValidation } from "./ngx-dynamic-form/utils/validation";
|
|
5
|
-
export { replaceSpecialChars,
|
|
5
|
+
export { replaceSpecialChars, getFieldByPath, getFieldsByKey, setFieldHidden, setFieldDisabled, additionalFieldValues, MIN_INPUT_NUM, MAX_INPUT_NUM, EDITOR_FORMATS } from "./ngx-dynamic-form/utils/misc";
|
|
6
6
|
export { DynamicFormBuilderService } from "./ngx-dynamic-form/services/dynamic-form-builder.service";
|
|
7
|
+
export { DynamicFormSchemaService } from "./ngx-dynamic-form/services/dynamic-form-schema.service";
|
|
7
8
|
export { DynamicFormService } from "./ngx-dynamic-form/services/dynamic-form.service";
|
|
8
9
|
export { AsyncSubmitDirective } from "./ngx-dynamic-form/directives/async-submit.directive";
|
|
9
10
|
export { DynamicFormComponent } from "./ngx-dynamic-form/components/dynamic-form/dynamic-form.component";
|
|
@@ -1,11 +0,0 @@
|
|
|
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[];
|