@stemy/ngx-dynamic-form 19.7.6 → 19.7.7

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.
@@ -3,7 +3,7 @@ import { AbstractControl, FormControl, FormGroup } from "@angular/forms";
3
3
  import { Observable } from "rxjs";
4
4
  import { ConfigOption, FormlyFieldConfig, FormlyFieldProps } from "@ngx-formly/core";
5
5
  import { FormlySelectOption } from "@ngx-formly/core/select";
6
- import { IAsyncMessage, OpenApiSchema, OpenApiSchemaProperty, HttpRequestOptions, MaybeArray, MaybePromise, UploadData, ResolveFactory } from "@stemy/ngx-utils";
6
+ import { IAsyncMessage, OpenApiSchema, OpenApiSchemaProperty, HttpRequestOptions, MaybeArray, MaybePromise, UploadData, ResolveFactory, UnorderedListStyle } from "@stemy/ngx-utils";
7
7
  export declare const FORM_ROOT_ID = "__root";
8
8
  export type DynamicFormStatus = "VALID" | "INVALID" | "PENDING" | "DISABLED" | "LOADING";
9
9
  export type DynamicFormUpdateOn = "change" | "blur" | "submit";
@@ -116,6 +116,14 @@ export interface FormFieldProps extends FormlyFieldProps {
116
116
  * Specifies whether all the items can be removed from the array type component.
117
117
  */
118
118
  clearItems?: boolean;
119
+ /**
120
+ * Defines what properties should we display in static type component
121
+ */
122
+ properties?: string[];
123
+ /**
124
+ * Defines what style should we use in static type component
125
+ */
126
+ style?: UnorderedListStyle;
119
127
  /**
120
128
  * Specifies that the file upload component value is stored inline, so instead of an API call, the file Blob is inserted into the field value.
121
129
  */
@@ -217,6 +225,9 @@ export interface IDynamicForm {
217
225
  readonly onSubmit: OutputRef<IDynamicForm>;
218
226
  readonly onChanges: OutputRef<FormFieldChangeEvent>;
219
227
  reset(): void;
228
+ serialize(validate?: boolean): Promise<any>;
229
+ getField(path: string): FormFieldConfig;
230
+ getControl(path: string): AbstractControl;
220
231
  }
221
232
  type FormFieldValidatorFn<T> = ((control: AbstractControl, field?: FormlyFieldConfig) => T) & {
222
233
  validatorName?: string;
@@ -287,10 +298,14 @@ export type FormFieldData = Pick<FormFieldProps, "label" | "description" | "hide
287
298
  */
288
299
  validators?: Validators | ValidatorFn[];
289
300
  };
290
- export type FormInputData = FormFieldData & Pick<FormFieldProps, "type" | "pattern" | "placeholder" | "step" | "min" | "max" | "minLength" | "maxLength" | "autocomplete" | "suffix" | "indeterminate" | "cols" | "rows">;
301
+ export type FormInputData = FormFieldData & Pick<FormFieldProps, "type" | "pattern" | "placeholder" | "step" | "minLength" | "maxLength" | "autocomplete" | "suffix" | "indeterminate" | "cols" | "rows"> & {
302
+ min?: number | Date;
303
+ max?: number | Date;
304
+ };
291
305
  export type FormSelectData = FormFieldData & Pick<FormFieldProps, "multiple" | "strict" | "type" | "allowEmpty" | "groupBy" | "invert"> & {
292
306
  options?: ResolveFactory<FormSelectOptionsFactory> | FormSelectOptionsFactory;
293
307
  };
308
+ export type FormStaticData = FormFieldData & Pick<FormFieldProps, "properties" | "style">;
294
309
  export type FormUploadData = FormFieldData & Pick<FormFieldProps, "inline" | "multiple" | "accept" | "url" | "maxSize" | "uploadOptions" | "createUploadData" | "multi" | "asFile" | "uploadUrl">;
295
310
  export type FormGroupData = FormFieldData & Pick<FormFieldProps, "useTabs">;
296
311
  export type FormArrayData = FormFieldData & Pick<FormFieldProps, "useTabs" | "tabsLabel" | "insertItem" | "cloneItem" | "moveItem" | "removeItem" | "addItem" | "clearItems">;
@@ -1,11 +1,13 @@
1
- import { FormGroup } from "@angular/forms";
1
+ import { AbstractControl, 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, FormFieldLabelCustomizer, IDynamicForm } from "../../common-types";
5
+ import { FormFieldChangeEvent, FormFieldConfig, FormFieldLabelCustomizer, FormSerializeResult, IDynamicForm } from "../../common-types";
6
6
  import { DynamicFormBuilderService } from "../../services/dynamic-form-builder.service";
7
+ import { DynamicFormService } from "../../services/dynamic-form.service";
7
8
  import * as i0 from "@angular/core";
8
9
  export declare class DynamicFormComponent implements IDynamicForm {
10
+ readonly forms: DynamicFormService;
9
11
  protected readonly builder: DynamicFormBuilderService;
10
12
  protected readonly events: EventsService;
11
13
  protected readonly languages: import("@stemy/ngx-utils").ILanguageService;
@@ -25,9 +27,12 @@ export declare class DynamicFormComponent implements IDynamicForm {
25
27
  readonly onSubmit: import("@angular/core").OutputEmitterRef<IDynamicForm>;
26
28
  readonly onChanges: import("@angular/core").OutputRef<FormFieldChangeEvent>;
27
29
  readonly options: FormlyFormOptions;
28
- constructor();
30
+ constructor(forms: DynamicFormService);
29
31
  submit(): void;
30
32
  reset(): void;
33
+ serialize(validate?: boolean): Promise<FormSerializeResult>;
34
+ getField(path: string): FormFieldConfig;
35
+ getControl(path: string): AbstractControl;
31
36
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
32
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>;
33
38
  }
@@ -0,0 +1,6 @@
1
+ import { DynamicFieldType } from "../base/dynamic-field-type";
2
+ import * as i0 from "@angular/core";
3
+ export declare class DynamicFormStaticComponent extends DynamicFieldType {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormStaticComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormStaticComponent, "dynamic-form-chips", never, {}, {}, never, never, false, never>;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { DynamicFieldType } from "../base/dynamic-field-type";
2
+ import * as i0 from "@angular/core";
3
+ export declare class DynamicFormWysiwygComponent extends DynamicFieldType {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormWysiwygComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormWysiwygComponent, "dynamic-form-wysiwyg", never, {}, {}, never, never, false, never>;
6
+ }
@@ -5,22 +5,24 @@ import * as i1 from "./components/base/dynamic-field-type";
5
5
  import * as i2 from "./components/dynamic-form/dynamic-form.component";
6
6
  import * as i3 from "./components/dynamic-form-array/dynamic-form-array.component";
7
7
  import * as i4 from "./components/dynamic-form-chips/dynamic-form-chips.component";
8
- import * as i5 from "./components/dynamic-form-upload/dynamic-form-upload.component";
9
- import * as i6 from "./components/dynamic-form-alert/dynamic-form-alert.component";
10
- import * as i7 from "./components/dynamic-form-field/dynamic-form-field.component";
11
- import * as i8 from "./components/dynamic-form-fieldset/dynamic-form-fieldset.component";
12
- import * as i9 from "./components/dynamic-form-group/dynamic-form-group.component";
13
- import * as i10 from "./directives/async-submit.directive";
14
- import * as i11 from "@angular/common";
15
- import * as i12 from "@angular/forms";
16
- import * as i13 from "@stemy/ngx-utils";
17
- import * as i14 from "@ngx-formly/core";
18
- import * as i15 from "@ngx-formly/core/select";
8
+ import * as i5 from "./components/dynamic-form-static/dynamic-form-static.component";
9
+ import * as i6 from "./components/dynamic-form-upload/dynamic-form-upload.component";
10
+ import * as i7 from "./components/dynamic-form-wysiwyg/dynamic-form-wysiwyg.component";
11
+ import * as i8 from "./components/dynamic-form-alert/dynamic-form-alert.component";
12
+ import * as i9 from "./components/dynamic-form-field/dynamic-form-field.component";
13
+ import * as i10 from "./components/dynamic-form-fieldset/dynamic-form-fieldset.component";
14
+ import * as i11 from "./components/dynamic-form-group/dynamic-form-group.component";
15
+ import * as i12 from "./directives/async-submit.directive";
16
+ import * as i13 from "@angular/common";
17
+ import * as i14 from "@angular/forms";
18
+ import * as i15 from "@stemy/ngx-utils";
19
+ import * as i16 from "@ngx-formly/core";
20
+ import * as i17 from "@ngx-formly/core/select";
19
21
  export declare class NgxDynamicFormModule {
20
22
  private static getProviders;
21
23
  static forRoot(config?: IDynamicFormModuleConfig): ModuleWithProviders<NgxDynamicFormModule>;
22
24
  static provideForms(config?: IDynamicFormModuleConfig): EnvironmentProviders;
23
25
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxDynamicFormModule, never>;
24
- static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDynamicFormModule, [typeof i1.DynamicFieldType, typeof i2.DynamicFormComponent, typeof i3.DynamicFormArrayComponent, typeof i4.DynamicFormChipsComponent, typeof i5.DynamicFormUploadComponent, typeof i6.DynamicFormAlertComponent, typeof i7.DynamicFormFieldComponent, typeof i8.DynamicFormFieldsetComponent, typeof i9.DynamicFormGroupComponent, typeof i10.AsyncSubmitDirective], [typeof i11.CommonModule, typeof i12.FormsModule, typeof i12.ReactiveFormsModule, typeof i13.NgxUtilsModule, typeof i14.FormlyModule, typeof i15.FormlySelectModule], [typeof i1.DynamicFieldType, typeof i2.DynamicFormComponent, typeof i3.DynamicFormArrayComponent, typeof i4.DynamicFormChipsComponent, typeof i5.DynamicFormUploadComponent, typeof i6.DynamicFormAlertComponent, typeof i7.DynamicFormFieldComponent, typeof i8.DynamicFormFieldsetComponent, typeof i9.DynamicFormGroupComponent, typeof i10.AsyncSubmitDirective, typeof i12.FormsModule, typeof i12.ReactiveFormsModule, typeof i13.NgxUtilsModule, typeof i14.FormlyModule, typeof i15.FormlySelectModule]>;
26
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NgxDynamicFormModule, [typeof i1.DynamicFieldType, typeof i2.DynamicFormComponent, typeof i3.DynamicFormArrayComponent, typeof i4.DynamicFormChipsComponent, typeof i5.DynamicFormStaticComponent, typeof i6.DynamicFormUploadComponent, typeof i7.DynamicFormWysiwygComponent, typeof i8.DynamicFormAlertComponent, typeof i9.DynamicFormFieldComponent, typeof i10.DynamicFormFieldsetComponent, typeof i11.DynamicFormGroupComponent, typeof i12.AsyncSubmitDirective], [typeof i13.CommonModule, typeof i14.FormsModule, typeof i14.ReactiveFormsModule, typeof i15.NgxUtilsModule, typeof i16.FormlyModule, typeof i17.FormlySelectModule], [typeof i1.DynamicFieldType, typeof i2.DynamicFormComponent, typeof i3.DynamicFormArrayComponent, typeof i4.DynamicFormChipsComponent, typeof i5.DynamicFormStaticComponent, typeof i6.DynamicFormUploadComponent, typeof i7.DynamicFormWysiwygComponent, typeof i8.DynamicFormAlertComponent, typeof i9.DynamicFormFieldComponent, typeof i10.DynamicFormFieldsetComponent, typeof i11.DynamicFormGroupComponent, typeof i12.AsyncSubmitDirective, typeof i14.FormsModule, typeof i14.ReactiveFormsModule, typeof i15.NgxUtilsModule, typeof i16.FormlyModule, typeof i17.FormlySelectModule]>;
25
27
  static ɵinj: i0.ɵɵInjectorDeclaration<NgxDynamicFormModule>;
26
28
  }
@@ -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, FormGroupData, FormInputData, FormSelectData, FormSelectOption, FormUploadData } from "../common-types";
4
+ import { FormArrayData, FormBuilderOptions, FormFieldConfig, FormFieldData, FormFieldProps, FormGroupData, FormInputData, FormSelectData, FormSelectOption, 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 {
@@ -17,6 +17,7 @@ export declare class DynamicFormBuilderService {
17
17
  createFieldSets(fields: FormFieldConfig[], parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig[];
18
18
  createFormInput(key: string, data: FormInputData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
19
19
  createFormSelect(key: string, data: FormSelectData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
20
+ createFormStatic(key: string, data: FormStaticData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
20
21
  createFormUpload(key: string, data: FormUploadData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
21
22
  createFormGroup(key: string, fields: (parent: FormFieldConfig) => FormFieldConfig[], data: FormGroupData, parent: FormFieldConfig, options: FormBuilderOptions): FormFieldConfig;
22
23
  createFormGroup(key: string, fields: (parent: FormFieldConfig) => Promise<FormFieldConfig[]>, data: FormGroupData, parent: FormFieldConfig, options: FormBuilderOptions): Promise<FormFieldConfig>;
@@ -1,10 +1,11 @@
1
- import { FormArrayData, FormFieldSerializer, FormGroupData, FormInputData, FormSelectData, FormUploadData } from "../common-types";
1
+ import { FormArrayData, FormFieldSerializer, FormGroupData, FormInputData, FormSelectData, FormStaticData, FormUploadData } from "../common-types";
2
2
  import { Type } from "@angular/core";
3
3
  export declare function FormSerializable(serializer?: FormFieldSerializer): PropertyDecorator;
4
4
  export declare function FormInput(data?: FormInputData): PropertyDecorator;
5
5
  export declare function FormSelect(data?: FormSelectData): PropertyDecorator;
6
6
  export declare function FormUpload(data?: FormUploadData): PropertyDecorator;
7
7
  export declare function FormFile(data?: FormUploadData): PropertyDecorator;
8
+ export declare function FormStatic(data?: FormStaticData): PropertyDecorator;
8
9
  export declare function FormGroup(data?: FormGroupData): PropertyDecorator;
9
10
  export declare function FormArray(itemType: string | FormInputData | Type<any>, data?: FormArrayData): PropertyDecorator;
10
11
  export declare function FormModel(data?: FormGroupData): PropertyDecorator;
@@ -22,10 +22,16 @@ export declare function controlStatus(control: AbstractControl, timeout?: number
22
22
  export declare function convertToDateFormat(value: any, format: string): any;
23
23
  /**
24
24
  * Convert value to date object with format (date, date-time)
25
- * @param value Value to convert to date string
25
+ * @param value Value to convert to date
26
26
  * @param format Expected date format (date, date-time)
27
27
  */
28
28
  export declare function convertToDate(value: any, format: string): any;
29
+ /**
30
+ * Convert potential number value to an actual number
31
+ * @param value Value to convert to number
32
+ * @param defaultVal Default value if original is not a number
33
+ */
34
+ export declare function convertToNumber(value: any, defaultVal?: number): any;
29
35
  export declare function getFieldByPath(field: FormFieldConfig, path: string): FormFieldConfig | null;
30
36
  export declare function getFieldsByPredicate(field: FormFieldConfig, cb: (field: FormFieldConfig) => boolean): FormFieldConfig[];
31
37
  export declare function getFieldsByKey(field: FormFieldConfig, key: FormFieldKey): FormFieldConfig[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stemy/ngx-dynamic-form",
3
- "version": "19.7.6",
3
+ "version": "19.7.7",
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.7.16",
25
+ "@stemy/ngx-utils": ">=19.7.30",
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,8 +1,8 @@
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, FormUploadData, FormGroupData, FormArrayData, 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, 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, FormUpload, FormFile, FormGroup, FormArray, FormModel } from "./ngx-dynamic-form/utils/decorators";
3
+ export { FormSerializable, FormInput, FormSelect, FormStatic, FormUpload, FormFile, FormGroup, FormArray, FormModel } 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
- export { replaceSpecialChars, controlValues, controlStatus, convertToDateFormat, convertToDate, getFieldByPath, getFieldsByPredicate, getFieldsByKey, getSelectOptions, replaceFieldArray, clearFieldArray, insertToFieldArray, removeFromFieldArray, setFieldDefault, setFieldProps, setFieldProp, setFieldHidden, setFieldDisabled, setFieldHooks, MIN_INPUT_NUM, MAX_INPUT_NUM, EDITOR_FORMATS } from "./ngx-dynamic-form/utils/misc";
5
+ export { replaceSpecialChars, controlValues, controlStatus, convertToDateFormat, convertToDate, convertToNumber, getFieldByPath, getFieldsByPredicate, getFieldsByKey, getSelectOptions, replaceFieldArray, clearFieldArray, insertToFieldArray, removeFromFieldArray, setFieldDefault, setFieldProps, setFieldProp, setFieldHidden, setFieldDisabled, setFieldHooks, 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
7
  export { DynamicFormSchemaService } from "./ngx-dynamic-form/services/dynamic-form-schema.service";
8
8
  export { DynamicFormService } from "./ngx-dynamic-form/services/dynamic-form.service";
@@ -11,7 +11,9 @@ export { DynamicFieldType } from "./ngx-dynamic-form/components/base/dynamic-fie
11
11
  export { DynamicFormComponent } from "./ngx-dynamic-form/components/dynamic-form/dynamic-form.component";
12
12
  export { DynamicFormArrayComponent } from "./ngx-dynamic-form/components/dynamic-form-array/dynamic-form-array.component";
13
13
  export { DynamicFormChipsComponent } from "./ngx-dynamic-form/components/dynamic-form-chips/dynamic-form-chips.component";
14
+ export { DynamicFormStaticComponent } from "./ngx-dynamic-form/components/dynamic-form-static/dynamic-form-static.component";
14
15
  export { DynamicFormUploadComponent } from "./ngx-dynamic-form/components/dynamic-form-upload/dynamic-form-upload.component";
16
+ export { DynamicFormWysiwygComponent } from "./ngx-dynamic-form/components/dynamic-form-wysiwyg/dynamic-form-wysiwyg.component";
15
17
  export { DynamicFormAlertComponent } from "./ngx-dynamic-form/components/dynamic-form-alert/dynamic-form-alert.component";
16
18
  export { DynamicFormFieldComponent } from "./ngx-dynamic-form/components/dynamic-form-field/dynamic-form-field.component";
17
19
  export { DynamicFormFieldsetComponent } from "./ngx-dynamic-form/components/dynamic-form-fieldset/dynamic-form-fieldset.component";