@stemy/ngx-dynamic-form 19.8.9 → 19.8.11

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.
@@ -9,12 +9,14 @@ export type DynamicFormStatus = "VALID" | "INVALID" | "PENDING" | "DISABLED" | "
9
9
  export type DynamicFormUpdateOn = "change" | "blur" | "submit";
10
10
  export type FormFieldKey = string | number | (string | number)[];
11
11
  export type FormFieldLabelCustomizer = (key: string, label: string, parent: FormFieldConfig, labelPrefix: string) => string;
12
- export interface FormBuilderOptions {
12
+ export interface FormBuilderOptionsBase {
13
13
  labelPrefix?: string;
14
14
  labelCustomizer?: FormFieldLabelCustomizer;
15
+ legacyLabels?: boolean;
15
16
  testId?: string;
16
17
  context?: any;
17
18
  }
19
+ export type FormBuilderOptions = RequireAtLeastOne<FormBuilderOptionsBase>;
18
20
  /**
19
21
  * This type describes how one of the array actions should react based on an array item
20
22
  */
@@ -320,12 +322,16 @@ export type FormGroupData = FormFieldData & Pick<FormFieldProps, "useTabs"> & {
320
322
  };
321
323
  export type FormArrayData = FormFieldData & Pick<FormFieldProps, "useTabs" | "tabsLabel" | "insertItem" | "cloneItem" | "moveItem" | "removeItem" | "addItem" | "clearItems">;
322
324
  export type FormSerializerData = RequireAtLeastOne<Pick<FormFieldData, "serialize" | "serializer">>;
325
+ export type FormFieldSetData = RequireAtLeastOne<Pick<FormFieldData, "classes" | "layout">> & {
326
+ id: string;
327
+ };
323
328
  export type AsyncSubmitMode = "click" | "submit" | "all";
324
329
  export type AsyncSubmitMethod = (form: IDynamicForm, context?: any, ev?: MouseEvent) => Promise<IAsyncMessage>;
325
330
  export type FormFieldCustomizer = (field: FormFieldConfig, options: FormBuilderOptions, injector: Injector, property: OpenApiSchemaProperty, schema: OpenApiSchema) => MaybePromise<MaybeArray<FormFieldConfig>>;
326
- export interface ConfigForSchemaOptions extends FormBuilderOptions {
331
+ export interface ConfigForSchemaOptionsBase extends FormBuilderOptionsBase {
327
332
  fieldCustomizer?: FormFieldCustomizer;
328
333
  }
334
+ export type ConfigForSchemaOptions = RequireAtLeastOne<ConfigForSchemaOptionsBase>;
329
335
  export type CustomizerOrSchemaOptions = FormFieldCustomizer | ConfigForSchemaOptions;
330
336
  export interface IDynamicFormModuleConfig {
331
337
  options?: ConfigOption[];
@@ -15,6 +15,7 @@ export declare class DynamicFormComponent implements IDynamicForm {
15
15
  readonly labelCustomizer: import("@angular/core").InputSignal<FormFieldLabelCustomizer>;
16
16
  readonly testId: import("@angular/core").InputSignal<string>;
17
17
  readonly useTabs: import("@angular/core").InputSignal<boolean>;
18
+ readonly legacyLabels: import("@angular/core").InputSignal<boolean>;
18
19
  readonly data: import("@angular/core").InputSignal<any>;
19
20
  readonly fields: import("@angular/core").InputSignal<FormFieldConfig<import("../../common-types").FormFieldProps>[]>;
20
21
  readonly fieldChanges: Subject<FormFieldChangeEvent>;
@@ -34,5 +35,5 @@ export declare class DynamicFormComponent implements IDynamicForm {
34
35
  getField(path: string): FormFieldConfig;
35
36
  getControl(path: string): AbstractControl;
36
37
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
37
- 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; }; "useTabs": { "alias": "useTabs"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "fields": { "alias": "fields"; "required": false; "isSignal": true; }; }, { "onSubmit": "onSubmit"; "onChanges": "onChanges"; }, never, ["*"], false, never>;
38
+ 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; }; "useTabs": { "alias": "useTabs"; "required": false; "isSignal": true; }; "legacyLabels": { "alias": "legacyLabels"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "fields": { "alias": "fields"; "required": false; "isSignal": true; }; }, { "onSubmit": "onSubmit"; "onChanges": "onChanges"; }, never, ["*"], false, never>;
38
39
  }
@@ -1,7 +1,7 @@
1
1
  import { Injector, Type } from "@angular/core";
2
2
  import { Observable } from "rxjs";
3
3
  import { EventsService, IApiService, ILanguageService } from "@stemy/ngx-utils";
4
- import { FormArrayData, FormBuilderOptions, FormFieldConfig, FormFieldData, FormFieldProps, FormFieldSerializer, FormGroupData, FormInputData, FormSelectData, FormSelectOption, FormSerializerData, FormStaticData, FormUploadData } from "../common-types";
4
+ import { FormArrayData, FormBuilderOptions, FormFieldConfig, FormFieldData, FormFieldProps, FormFieldSerializer, FormFieldSetData, FormGroupData, FormInputData, FormSelectData, FormSelectOption, FormSerializerData, FormStaticData, FormUploadData } from "../common-types";
5
5
  import * as i0 from "@angular/core";
6
6
  export type FormFieldBuilder = (fb: DynamicFormBuilderService, parent: FormFieldConfig, options: FormBuilderOptions) => Partial<FormFieldConfig>;
7
7
  export declare class DynamicFormBuilderService {
@@ -11,22 +11,23 @@ export declare class DynamicFormBuilderService {
11
11
  protected readonly languages: ILanguageService;
12
12
  readonly language: Observable<string>;
13
13
  constructor(injector: Injector, events: EventsService, api: IApiService, languages: ILanguageService);
14
- resolveFormFields(target: Type<any>, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig[];
14
+ resolveFormFields(type: Type<any>, parent: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig[];
15
15
  resolveFormGroup(key: string, target: Type<any>, data: FormGroupData, parent?: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
16
16
  resolveFormArray(key: string, itemType: string | FormInputData | Type<any>, data: FormArrayData, parent?: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
17
- createFieldSets(fields: FormFieldConfig[], parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig[];
18
- createFormInput(key: string, data: FormInputData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
19
- createFormSelect(key: string, data: FormSelectData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
20
- createFormStatic(key: string, data: FormStaticData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
21
- createFormUpload(key: string, data: FormUploadData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
22
- createFormGroup(key: string, fields: (parent: FormFieldConfig) => FormFieldConfig[], data: FormGroupData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
23
- createFormGroup(key: string, fields: (parent: FormFieldConfig) => Promise<FormFieldConfig[]>, data: FormGroupData, parent: FormFieldConfig, options: FormBuilderOptions): Promise<FormFieldConfig>;
24
- createFormArray(key: string, fields: (parent: FormFieldConfig) => FormFieldConfig | FormFieldConfig[], data: FormArrayData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
25
- createFormArray(key: string, fields: (parent: FormFieldConfig) => Promise<FormFieldConfig | FormFieldConfig[]>, data: FormArrayData, parent: FormFieldConfig, options: FormBuilderOptions): Promise<FormFieldConfig>;
26
- createFormSerializer(data: FormFieldSerializer | FormSerializerData): Partial<FormFieldConfig>;
17
+ createFieldSets(fields: FormFieldConfig[], parent: FormFieldConfig, options?: FormBuilderOptions, sets?: FormFieldSetData[]): FormFieldConfig[];
18
+ createFormInput(key: string, data: FormInputData, parent: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
19
+ createFormSelect(key: string, data: FormSelectData, parent: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
20
+ createFormStatic(key: string, data: FormStaticData, parent: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
21
+ createFormUpload(key: string, data: FormUploadData, parent: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
22
+ createFormGroup(key: string, fields: (parent: FormFieldConfig) => FormFieldConfig[], data: FormGroupData, parent: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
23
+ createFormGroup(key: string, fields: (parent: FormFieldConfig) => Promise<FormFieldConfig[]>, data: FormGroupData, parent: FormFieldConfig, options?: FormBuilderOptions): Promise<FormFieldConfig>;
24
+ createFormArray(key: string, fields: (parent: FormFieldConfig) => FormFieldConfig | FormFieldConfig[], data: FormArrayData, parent: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
25
+ createFormArray(key: string, fields: (parent: FormFieldConfig) => Promise<FormFieldConfig | FormFieldConfig[]>, data: FormArrayData, parent: FormFieldConfig, options?: FormBuilderOptions): Promise<FormFieldConfig>;
26
+ createFormSerializer(key: string, data: FormFieldSerializer | FormSerializerData): Partial<FormFieldConfig>;
27
27
  fixSelectOptions(field: FormFieldConfig, options: FormSelectOption[]): Promise<FormSelectOption[]>;
28
- protected getLabel(key: string, label: string, parent: FormFieldConfig, options: FormBuilderOptions): string;
29
- protected createFormField(key: string, type: string, data: FormFieldData, props: FormFieldProps, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
28
+ protected isFieldset(field: FormFieldConfig): boolean;
29
+ protected getLabel(key: string, label: string, parent: FormFieldConfig, options: FormBuilderOptions, legacyPrefix?: string): string;
30
+ protected createFormField(key: string, type: string, data: FormFieldData, props: FormFieldProps, parent: FormFieldConfig, options?: FormBuilderOptions): FormFieldConfig;
30
31
  protected shouldDisplay(field: FormFieldConfig): boolean;
31
32
  protected isValid(field: FormFieldConfig): boolean;
32
33
  protected setExpressions(field: FormFieldConfig, options: FormBuilderOptions): void;
@@ -1,11 +1,10 @@
1
- import { FormArrayData, FormFieldSerializer, FormGroupData, FormInputData, FormSelectData, FormSerializerData, FormStaticData, FormUploadData } from "../common-types";
2
1
  import { Type } from "@angular/core";
3
- export declare function FormSerializable(data?: FormFieldSerializer | FormSerializerData): PropertyDecorator;
2
+ import { FormArrayData, FormFieldSerializer, FormFieldSetData, FormGroupData, FormInputData, FormSelectData, FormSerializerData, FormStaticData, FormUploadData } from "../common-types";
4
3
  export declare function FormInput(data?: FormInputData): PropertyDecorator;
5
4
  export declare function FormSelect(data?: FormSelectData): PropertyDecorator;
6
5
  export declare function FormUpload(data?: FormUploadData): PropertyDecorator;
7
- export declare function FormFile(data?: FormUploadData): PropertyDecorator;
8
6
  export declare function FormStatic(data?: FormStaticData): PropertyDecorator;
9
7
  export declare function FormGroup(data?: FormGroupData): PropertyDecorator;
10
8
  export declare function FormArray(itemType: string | FormInputData | Type<any>, data?: FormArrayData): PropertyDecorator;
11
- export declare function FormModel(data?: FormGroupData): PropertyDecorator;
9
+ export declare function FormSerializable(data?: FormFieldSerializer | FormSerializerData): PropertyDecorator;
10
+ export declare function FormFieldSet(data: FormFieldSetData): ClassDecorator;
@@ -1,9 +1,9 @@
1
1
  import { Injector } from "@angular/core";
2
2
  import { KeysOfType, MaybeArray, OpenApiSchema, OpenApiSchemaProperty } from "@stemy/ngx-utils";
3
- import { AllValidationErrors, CustomizerOrSchemaOptions, FormBuilderOptions, FormFieldArrayItemsAction, FormFieldConfig, FormFieldExpression, FormFieldProps } from "../common-types";
3
+ import { AllValidationErrors, CustomizerOrSchemaOptions, FormBuilderOptionsBase, FormFieldArrayItemsAction, FormFieldConfig, FormFieldExpression, FormFieldProps } from "../common-types";
4
4
  import { AbstractControl } from "@angular/forms";
5
5
  export type ConfigForSchemaWrapMode = "wrap" | "customizer";
6
- export interface ConfigForSchemaWrapOptions extends Required<FormBuilderOptions> {
6
+ export interface ConfigForSchemaWrapOptions extends Required<FormBuilderOptionsBase> {
7
7
  readonly injector: Injector;
8
8
  readonly schema: OpenApiSchema;
9
9
  customize(field: FormFieldConfig, property: OpenApiSchemaProperty, schema: OpenApiSchema): Promise<FormFieldConfig[]>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stemy/ngx-dynamic-form",
3
- "version": "19.8.9",
3
+ "version": "19.8.11",
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": ">=19.8.5",
25
+ "@stemy/ngx-utils": ">=19.8.10",
26
26
  "@ngx-formly/core": "^7.0.0",
27
27
  "ngx-mask": "^19.0.7",
28
28
  "@angular/material": "^19.2.18"
package/public_api.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { FORM_ROOT_ID, FormFieldKey, FormFieldLabelCustomizer, FormBuilderOptions, FormFieldArrayItemsAction, FormFieldProps, FormFieldSerializer, FormHookFn, FormHookConfig, FormFieldExpression, FormFieldExpressions, FormFieldConfig, FormFieldType, FormFieldChangeEvent, FormSerializeResult, FormSelectOption, FormSelectOptions, FormSelectOptionsFactory, FormFieldConditionFn, FormFieldCondition, IDynamicForm, ValidationMessageFn, ValidatorFn, ValidatorExpression, Validators, AsyncValidatorFn, AsyncValidatorExpression, AsyncValidators, AllValidationErrors, FormFieldCustom, FormFieldData, FormInputData, FormSelectData, FormStaticData, FormUploadData, FormGroupData, FormArrayData, FormSerializerData, AsyncSubmitMode, AsyncSubmitMethod, FormFieldCustomizer, ConfigForSchemaOptions, DynamicFormStatus, DynamicFormUpdateOn, IDynamicFormModuleConfig, } from "./ngx-dynamic-form/common-types";
1
+ export { FORM_ROOT_ID, FormFieldKey, FormFieldLabelCustomizer, FormBuilderOptions, FormFieldArrayItemsAction, FormFieldProps, FormFieldSerializer, FormHookFn, FormHookConfig, FormFieldExpression, FormFieldExpressions, FormFieldConfig, FormFieldType, FormFieldChangeEvent, FormSerializeResult, FormSelectOption, FormSelectOptions, FormSelectOptionsFactory, FormFieldConditionFn, FormFieldCondition, IDynamicForm, ValidationMessageFn, ValidatorFn, ValidatorExpression, Validators, AsyncValidatorFn, AsyncValidatorExpression, AsyncValidators, AllValidationErrors, FormFieldCustom, FormFieldData, FormInputData, FormSelectData, FormStaticData, FormUploadData, FormGroupData, FormArrayData, FormSerializerData, FormFieldSetData, AsyncSubmitMode, AsyncSubmitMethod, FormFieldCustomizer, ConfigForSchemaOptions, DynamicFormStatus, DynamicFormUpdateOn, IDynamicFormModuleConfig, } from "./ngx-dynamic-form/common-types";
2
2
  export { IFormFieldCustomizer, customizeFormField } from "./ngx-dynamic-form/utils/customizer";
3
- export { FormSerializable, FormInput, FormSelect, FormStatic, FormUpload, FormFile, FormGroup, FormArray, FormModel } from "./ngx-dynamic-form/utils/decorators";
3
+ export { FormInput, FormSelect, FormStatic, FormUpload, FormGroup, FormArray, FormSerializable, FormFieldSet } from "./ngx-dynamic-form/utils/decorators";
4
4
  export { addFieldValidators, removeFieldValidators, jsonValidation, requiredValidation, translationValidation, phoneValidation, emailValidation, arrayLengthValidation, minLengthValidation, maxLengthValidation, minValueValidation, maxValueValidation } from "./ngx-dynamic-form/utils/validation";
5
5
  export { replaceSpecialChars, controlValues, controlStatus, convertToDateFormat, convertToDate, convertToNumber, getFieldByPath, getFieldsByPredicate, getFieldsByKey, getSelectOptions, replaceFieldArray, clearFieldArray, insertToFieldArray, removeFromFieldArray, setFieldDefault, setFieldValue, setFieldProps, setFieldProp, setFieldHidden, setFieldDisabled, setFieldHooks, MIN_INPUT_NUM, MAX_INPUT_NUM, EDITOR_FORMATS } from "./ngx-dynamic-form/utils/misc";
6
6
  export { RichTranslationModel } from "./ngx-dynamic-form/models/rich-translation.model";