@mediusinc/mng-commons 5.0.0-rc.1 → 5.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/core/router/route-builder.d.ts +149 -26
  2. package/core/router/routes-builder.d.ts +28 -13
  3. package/esm2022/core/components/notification/notification-wrapper.component.mjs +3 -3
  4. package/esm2022/core/components/pages/error/error.page.component.mjs +3 -3
  5. package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +3 -3
  6. package/esm2022/core/directives/component.directive.mjs +3 -3
  7. package/esm2022/core/directives/dialog-keydown-handler.directive.mjs +3 -3
  8. package/esm2022/core/directives/template.directive.mjs +3 -3
  9. package/esm2022/core/pipes/boolean.pipe.mjs +3 -3
  10. package/esm2022/core/pipes/class-map.pipe.mjs +3 -3
  11. package/esm2022/core/pipes/enum.pipe.mjs +3 -3
  12. package/esm2022/core/pipes/enumerate-async.pipe.mjs +3 -3
  13. package/esm2022/core/pipes/enumerate.pipe.mjs +3 -3
  14. package/esm2022/core/pipes/getter.pipe.mjs +3 -3
  15. package/esm2022/core/pipes/i18n-property.pipe.mjs +3 -3
  16. package/esm2022/core/pipes/json-path.pipe.mjs +3 -3
  17. package/esm2022/core/pipes/parametrize.pipe.mjs +3 -3
  18. package/esm2022/core/pipes/template.pipe.mjs +3 -3
  19. package/esm2022/core/router/route-builder.mjs +211 -84
  20. package/esm2022/core/router/routes-builder.mjs +41 -43
  21. package/esm2022/core/security/permission.service.mjs +3 -3
  22. package/esm2022/core/services/commons-init.service.mjs +3 -3
  23. package/esm2022/core/services/commons-router.service.mjs +3 -3
  24. package/esm2022/core/services/commons.service.mjs +3 -3
  25. package/esm2022/core/services/local-storage-config.service.mjs +3 -3
  26. package/esm2022/form/components/autocomplete/autocomplete.component.mjs +36 -42
  27. package/esm2022/form/components/date-range/date-range.component.mjs +3 -3
  28. package/esm2022/form/components/dropdown/dropdown.component.mjs +3 -3
  29. package/esm2022/form/directives/input-trim.directive.mjs +3 -3
  30. package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +3 -3
  31. package/esm2022/table/components/column-value/column-value.component.mjs +3 -3
  32. package/esm2022/table/components/table/table.component.mjs +3 -3
  33. package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +3 -3
  34. package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +3 -3
  35. package/esm2022/table/services/data-list.service.mjs +3 -3
  36. package/esm2022/tableview/action/components/action/action.component.mjs +3 -3
  37. package/esm2022/tableview/action/components/editor/action-editor.component.mjs +3 -3
  38. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +20 -19
  39. package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +3 -3
  40. package/esm2022/tableview/action/components/route/action-route.component.mjs +6 -5
  41. package/esm2022/tableview/action/components/table/action-table.component.mjs +3 -3
  42. package/esm2022/tableview/action/models/execution/action-instance.model.mjs +1 -1
  43. package/esm2022/tableview/action/services/action-executor.service.mjs +2 -2
  44. package/esm2022/tableview/action/services/component-action-executor.service.mjs +3 -3
  45. package/esm2022/tableview/action/services/data-provider-executor.service.mjs +3 -3
  46. package/esm2022/tableview/action/services/navigation.service.mjs +3 -3
  47. package/esm2022/tableview/action/services/root-action-executor.service.mjs +3 -3
  48. package/esm2022/tableview/action/services/view-container.service.mjs +3 -3
  49. package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +9 -1
  50. package/esm2022/tableview/api/action/models/execution/action-instance.model.mjs +1 -1
  51. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +18 -29
  52. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +1 -1
  53. package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +3 -3
  54. package/esm2022/tableview/api/editor/descriptors/field-validation.descriptor.mjs +1 -1
  55. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +36 -7
  56. package/esm2022/tableview/api/editor/helpers/field-validators.mjs +15 -25
  57. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
  58. package/esm2022/tableview/api/editor/models/field.model.mjs +1 -1
  59. package/esm2022/tableview/api/editor/models/form-editor.event.mjs +1 -1
  60. package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +1 -1
  61. package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +3 -3
  62. package/esm2022/tableview/api/editor/models/formly-field.model.mjs +1 -1
  63. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +12 -19
  64. package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +157 -137
  65. package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +3 -3
  66. package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +5 -7
  67. package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +3 -3
  68. package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +103 -0
  69. package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +5 -7
  70. package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
  71. package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +33 -50
  72. package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +3 -3
  73. package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +5 -7
  74. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +6 -8
  75. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +14 -13
  76. package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
  77. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +3 -3
  78. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +3 -3
  79. package/esm2022/tableview/editor/helpers/editor-formly.mjs +62 -54
  80. package/esm2022/tableview/editor/helpers/formly-config.mjs +5 -3
  81. package/esm2022/tableview/editor/models/formly-config.model.mjs +1 -1
  82. package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +10 -10
  83. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +26 -43
  84. package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +17 -43
  85. package/fesm2022/mediusinc-mng-commons-core.mjs +311 -186
  86. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  87. package/fesm2022/mediusinc-mng-commons-form.mjs +46 -51
  88. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  89. package/fesm2022/mediusinc-mng-commons-table.mjs +18 -18
  90. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +89 -80
  91. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  92. package/fesm2022/mediusinc-mng-commons-tableview.mjs +497 -435
  93. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  94. package/form/components/autocomplete/autocomplete.component.d.ts +8 -7
  95. package/package.json +1 -1
  96. package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +1 -3
  97. package/tableview/action/components/route/action-route.component.d.ts +1 -1
  98. package/tableview/action/models/execution/action-instance.model.d.ts +2 -1
  99. package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +8 -0
  100. package/tableview/api/action/models/execution/action-instance.model.d.ts +2 -1
  101. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +14 -19
  102. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +24 -24
  103. package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +5 -5
  104. package/tableview/api/editor/descriptors/field-validation.descriptor.d.ts +10 -13
  105. package/tableview/api/editor/descriptors/field.descriptor.d.ts +15 -0
  106. package/tableview/api/editor/helpers/field-validators.d.ts +6 -2
  107. package/tableview/api/editor/models/editor-fields.model.d.ts +6 -4
  108. package/tableview/api/editor/models/field.model.d.ts +16 -7
  109. package/tableview/api/editor/models/form-editor.event.d.ts +6 -4
  110. package/tableview/api/editor/models/form-editor.interface.d.ts +37 -8
  111. package/tableview/api/editor/models/formly-custom-field.model.d.ts +1 -1
  112. package/tableview/api/editor/models/formly-field.model.d.ts +9 -7
  113. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +6 -7
  114. package/tableview/editor/components/editor/form-editor.component.d.ts +51 -35
  115. package/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.d.ts +22 -0
  116. package/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.d.ts +5 -7
  117. package/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +0 -1
  118. package/tableview/editor/helpers/editor-formly.d.ts +11 -10
  119. package/tableview/editor/models/formly-config.model.d.ts +1 -1
  120. package/tableview/tableview/components/route/tableview-route.component.d.ts +2 -2
  121. package/tableview/tableview/components/tableview/tableview.component.d.ts +11 -10
  122. package/tableview/tableview/router/tableview-route-builder.d.ts +7 -13
  123. package/version-info.json +11 -0
@@ -1,5 +1,5 @@
1
- import { EventEmitter, ExistingProvider, OnDestroy, OnInit } from '@angular/core';
2
- import { ControlValueAccessor, FormControl } from '@angular/forms';
1
+ import { ExistingProvider, OnDestroy, OnInit } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
3
  import { AutoComplete, AutoCompleteSelectEvent } from 'primeng/autocomplete';
4
4
  import { AutoCompleteCompleteEvent } from 'primeng/autocomplete/autocomplete.interface';
5
5
  import { ReplaySubject } from 'rxjs';
@@ -27,14 +27,15 @@ export declare class AutocompleteComponent implements OnInit, OnDestroy, Control
27
27
  autoClear: import("@angular/core").InputSignal<boolean>;
28
28
  selectFirst: import("@angular/core").InputSignal<boolean>;
29
29
  searchTrim: import("@angular/core").InputSignal<InputTrimType | undefined>;
30
- valueChangeEventEmitter: EventEmitter<any>;
30
+ valueChange: import("@angular/core").OutputEmitterRef<any>;
31
31
  primeAutocomplete: import("@angular/core").Signal<AutoComplete | undefined>;
32
32
  private isInited;
33
33
  private searchSubscription;
34
34
  private dataProviderService;
35
35
  private onChangeFn;
36
36
  private onTouchedFn;
37
- autocompleteFormControl: FormControl;
37
+ value: import("@angular/core").WritableSignal<any>;
38
+ isDisabled: import("@angular/core").WritableSignal<boolean>;
38
39
  suggestions: import("@angular/core").WritableSignal<any[]>;
39
40
  private isPanelShown;
40
41
  private isFocused;
@@ -59,7 +60,7 @@ export declare class AutocompleteComponent implements OnInit, OnDestroy, Control
59
60
  /**
60
61
  * calls the selectFirst item anytime the input field goes out of focus and if the suggestions panel is not displayed.
61
62
  */
62
- onBlur(event: Event): void;
63
+ onBlur(): void;
63
64
  onShow(): void;
64
65
  /**
65
66
  * calls the selectFirst item anytime the suggestions panel is closed and input field isn't focused.
@@ -72,11 +73,11 @@ export declare class AutocompleteComponent implements OnInit, OnDestroy, Control
72
73
  setDisabledState(isDisabled: boolean): void;
73
74
  writeValue(value: any): void;
74
75
  private setItemsAndDataProvider;
75
- private setAutocompleteValueFromWrite;
76
+ private setValueFromWrite;
76
77
  private getLookup;
77
78
  private i18nGetItemsKeys;
78
79
  private i18nPopulateItems;
79
80
  private setSuggestionsFromItems;
80
81
  static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
81
- static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "mng-autocomplete", never, { "dataProvider": { "alias": "dataProvider"; "required": true; "isSignal": true; }; "optionsTrackProperty": { "alias": "optionsTrackProperty"; "required": false; "isSignal": true; }; "optionsValuePropertyInit": { "alias": "optionsValueProperty"; "required": false; "isSignal": true; }; "optionsLabelPropertyInit": { "alias": "optionsLabelProperty"; "required": false; "isSignal": true; }; "optionsLabelTranslate": { "alias": "optionsLabelTranslate"; "required": false; "isSignal": true; }; "inlineSearch": { "alias": "inlineSearch"; "required": false; "isSignal": true; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; "isSignal": true; }; "multiselect": { "alias": "multiselect"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "dropdownClassName": { "alias": "dropdownClassName"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "autoClear": { "alias": "autoClear"; "required": false; "isSignal": true; }; "selectFirst": { "alias": "selectFirst"; "required": false; "isSignal": true; }; "searchTrim": { "alias": "searchTrim"; "required": false; "isSignal": true; }; }, { "valueChangeEventEmitter": "valueChange"; }, never, never, true, never>;
82
+ static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "mng-autocomplete", never, { "dataProvider": { "alias": "dataProvider"; "required": true; "isSignal": true; }; "optionsTrackProperty": { "alias": "optionsTrackProperty"; "required": false; "isSignal": true; }; "optionsValuePropertyInit": { "alias": "optionsValueProperty"; "required": false; "isSignal": true; }; "optionsLabelPropertyInit": { "alias": "optionsLabelProperty"; "required": false; "isSignal": true; }; "optionsLabelTranslate": { "alias": "optionsLabelTranslate"; "required": false; "isSignal": true; }; "inlineSearch": { "alias": "inlineSearch"; "required": false; "isSignal": true; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; "isSignal": true; }; "multiselect": { "alias": "multiselect"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "dropdownClassName": { "alias": "dropdownClassName"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "autoClear": { "alias": "autoClear"; "required": false; "isSignal": true; }; "selectFirst": { "alias": "selectFirst"; "required": false; "isSignal": true; }; "searchTrim": { "alias": "searchTrim"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
82
83
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons",
3
- "version": "5.0.0-rc.1",
3
+ "version": "5.0.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "^17.3.0",
6
6
  "@angular/common": "^17.3.0",
@@ -35,8 +35,6 @@ export declare class ActionEditorInjectorContextComponent<Item = any, Service =
35
35
  private instance?;
36
36
  private instanceStateSubscription?;
37
37
  private instanceReactivationSubscription?;
38
- private instanceSubmitFormItem?;
39
- private instanceSubmitResult?;
40
38
  loading: WritableSignal<boolean>;
41
39
  private fetchExecutionSubscription?;
42
40
  submitLoading: WritableSignal<boolean>;
@@ -58,8 +56,8 @@ export declare class ActionEditorInjectorContextComponent<Item = any, Service =
58
56
  private unsetInstance;
59
57
  private beforeWindowUnload;
60
58
  private onEscapePressed;
61
- private showUnsavedChangesConfirmationDialog;
62
59
  closeWithUnsavedChangesConfirmation(callFromGuard?: boolean): Observable<boolean>;
60
+ private showUnsavedChangesConfirmationDialog;
63
61
  static ɵfac: i0.ɵɵFactoryDeclaration<ActionEditorInjectorContextComponent<any, any>, never>;
64
62
  static ɵcmp: i0.ɵɵComponentDeclaration<ActionEditorInjectorContextComponent<any, any>, "mng-action-editor-injector-context", never, { "data": { "alias": "data"; "required": true; }; }, { "actionRunEventEmitter": "actionSubmit"; "actionCancelEventEmitter": "actionCancel"; }, never, never, true, never>;
65
63
  }
@@ -5,7 +5,7 @@ import { CanComponentDeactivate } from '../../models/can-component-deactivate.mo
5
5
  import { ActionExecutorService } from '../../services/action-executor.service';
6
6
  import { ViewContainer } from '../../services/view-container.service';
7
7
  import * as i0 from "@angular/core";
8
- export declare class ActionRouteComponent<Item, Service> implements OnInit, OnDestroy, CanComponentDeactivate {
8
+ export default class ActionRouteComponent<Item, Service> implements OnInit, OnDestroy, CanComponentDeactivate {
9
9
  private router;
10
10
  private route;
11
11
  private actionExecutor;
@@ -28,7 +28,8 @@ export declare class ActionInstance<Item, Service = undefined> implements IActio
28
28
  activationDialogRef?: DynamicDialogRef;
29
29
  activationEditorComponentRef?: IActionEditorComponent;
30
30
  private _reactivationInstanceSubject;
31
- previousInstance?: IActionInstance<Item, Service>;
31
+ reactivationPreviousInstance?: IActionInstance<Item, Service>;
32
+ previousInstance?: IActionInstance<any, any>;
32
33
  nextActionInstance?: IActionInstance<any, any>;
33
34
  errorActionInstance?: IActionInstance<Item, Service>;
34
35
  constructor(action: ActionDescriptorInst<Item>, state?: ActionInstanceStateEnum);
@@ -64,6 +64,14 @@ export declare class ActionEditorDescriptorInst<Item, Service = any> extends Act
64
64
  withEditorAction(action: ActionDescriptorInst<Item>): this;
65
65
  withEditorActions(actions: ActionDescriptorInst<Item>[]): this;
66
66
  withEditorComponent(editorComponent: Type<any>): this;
67
+ /**
68
+ * Enables or disables resubmit resubmit - this means the form will not exit after successful submission, but will instead remain open.
69
+ *
70
+ * @param {boolean} [enabled=true] - Specifies whether resubmit is enabled or disabled. Defaults to true if not provided.
71
+ * @param {boolean} [refetch=true] - Specifies whether the data should be refetched after resubmit. If not, the data in the form stays as is. Defaults to true if not provided.
72
+ *
73
+ * @returns {this} - Returns the current instance with the resubmit configuration updated.
74
+ */
67
75
  withResubmit(enabled?: boolean, refetch?: boolean): this;
68
76
  withUnsavedChangesConfirmation(unsavedChangesConfirmation?: boolean): this;
69
77
  }
@@ -23,7 +23,8 @@ export interface IActionInstance<Item, Service> {
23
23
  error$: Observable<ActionExecutionError>;
24
24
  activationDialogRef?: DynamicDialogRef;
25
25
  activationEditorComponentRef?: IActionEditorComponent;
26
- previousInstance?: IActionInstance<Item, Service>;
26
+ reactivationPreviousInstance?: IActionInstance<Item, Service>;
27
+ previousInstance?: IActionInstance<any, any>;
27
28
  nextActionInstance?: IActionInstance<any, any>;
28
29
  errorActionInstance?: IActionInstance<Item, Service>;
29
30
  reactivationInstance?: IActionInstance<Item, Service>;
@@ -7,13 +7,14 @@ import { TableviewDescriptorInst } from '../../tableview/descriptors/tableview.d
7
7
  import { EditorClassAttributeDef } from '../models/class-tableview-attribute.model';
8
8
  import { IFieldsManageInterface } from '../models/editor-fields.model';
9
9
  import { TableviewEditorTypeEnum } from '../models/editor.model';
10
- import { FieldInputTypeEnum, FieldValidationMessage, FieldValidator } from '../models/field.model';
10
+ import { FieldInputTypeEnum, FormValidationMessage, FormValidator } from '../models/field.model';
11
11
  import { FieldEventData, FormEvent, FormEventTypeEnum } from '../models/form-editor.event';
12
12
  import { FieldActionDescriptor } from './field-action.descriptor';
13
13
  import { AFieldDescriptor } from './field-base.descriptor';
14
14
  import { FieldGroupDescriptor, FieldTabGroupDescriptor } from './field-group.descriptor';
15
15
  import { FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldLookupProviderType } from './field-lookup.descriptor';
16
16
  import { FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor } from './field-many.descriptor';
17
+ import { FieldValidationDescriptorOptsType } from './field-validation.descriptor';
17
18
  import { FieldInputDescriptor, FieldInputDescriptorType } from './field.descriptor';
18
19
  export declare class EditorDescriptorInst<EditorModel> implements IEditorDescriptor<EditorModel>, IFieldsManageInterface<EditorModel> {
19
20
  static readonly defaultGroupName = "_default";
@@ -242,22 +243,8 @@ export declare class EditorDescriptorInst<EditorModel> implements IEditorDescrip
242
243
  * @param tableviewDescriptor Tableview descriptor for related model.
243
244
  */
244
245
  addFieldManyEditorUnsafe<FieldModel, FieldValue = FieldModel[]>(property: string, tableviewDescriptor: TableviewDescriptorInst<FieldModel>): FieldManyEditorDescriptor<FieldModel, EditorModel, FieldValue>;
245
- /**
246
- * Adds tables for many-to-many (m:n) relations.
247
- * @param property Model's property name.
248
- * @param mainTableDescriptor Main table descriptor for displaying items added to main model's property.
249
- * @param lookupTableDescriptor Lookup table descriptor for displaying items to be added to main model's property.
250
- */
251
- addFieldManyToManyEditor<Property extends keyof EditorModel, FieldModel = ArrayItemType<EditorModel[Property]>, FieldValue = EditorModel[Property]>(property: Property, mainTableDescriptor: TableDescriptorInst<FieldModel>, lookupTableDescriptor: TableDescriptorInst<FieldModel>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, undefined, FieldValue>;
252
- /**
253
- * Adds tables for many-to-many (m:n) relations (UNSAFE).
254
- * @param property Model's property name.
255
- * @param mainTableDescriptor Main table descriptor for displaying items added to main model's property.
256
- * @param lookupTableDescriptor Lookup table descriptor for displaying items to be added to main model's property.
257
- */
258
- addFieldManyToManyEditorUnsafe<FieldModel, FieldValue = FieldModel[]>(property: string, mainTableDescriptor: TableDescriptorInst<FieldModel>, lookupTableDescriptor: TableDescriptorInst<FieldModel>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, undefined, FieldValue>;
259
- addFieldManyToManyEditorWithProvider<Property extends keyof EditorModel, ServiceType, FieldModel = ArrayItemType<EditorModel[Property]>, FieldValue = EditorModel[Property]>(property: Property, mainTableDescriptor: TableDescriptorInst<FieldModel>, lookupTableDescriptor: TableDescriptorInst<FieldModel>, lookupDataProvider: ITableDataProvider<FieldModel, ServiceType>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, ServiceType, FieldValue>;
260
- addFieldManyToManyEditorWithProviderUnsafe<FieldModel, ServiceType, FieldValue = FieldModel[]>(property: string, mainTableDescriptor: TableDescriptorInst<FieldModel>, lookupTableDescriptor: TableDescriptorInst<FieldModel>, lookupDataProvider: ITableDataProvider<FieldModel, ServiceType>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, ServiceType, FieldValue>;
246
+ addFieldManyToManyEditor<Property extends keyof EditorModel, ServiceType, FieldModel = ArrayItemType<EditorModel[Property]>, FieldValue = EditorModel[Property]>(property: Property, mainTableDescriptor: TableDescriptorInst<FieldModel>, lookupTableDescriptor: TableDescriptorInst<FieldModel>, lookupDataProvider: ITableDataProvider<FieldModel, ServiceType>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, ServiceType, FieldValue>;
247
+ addFieldManyToManyEditorUnsafe<FieldModel, ServiceType, FieldValue = FieldModel[]>(property: string, mainTableDescriptor: TableDescriptorInst<FieldModel>, lookupTableDescriptor: TableDescriptorInst<FieldModel>, lookupDataProvider: ITableDataProvider<FieldModel, ServiceType>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, ServiceType, FieldValue>;
261
248
  /**
262
249
  * Disables field on editor.
263
250
  * @param disabled
@@ -268,8 +255,17 @@ export declare class EditorDescriptorInst<EditorModel> implements IEditorDescrip
268
255
  * @param name Name of the validation.
269
256
  * @param validator Field validator function.
270
257
  * @param message Field validation message.
258
+ * @param opts Additional configuration for validation.
259
+ */
260
+ withValidation<Value = EditorModel>(name: string, validator?: FormValidator<Value>, message?: FormValidationMessage<Value>, opts?: FieldValidationDescriptorOptsType<keyof EditorModel>): this;
261
+ /**
262
+ * Adds group validator to editor.
263
+ * @param name Name of the validation.
264
+ * @param validator Field validator function.
265
+ * @param message Field validation message.
266
+ * @param opts Additional configuration for validation.
271
267
  */
272
- addValidation(name: string, validator?: FieldValidator, message?: FieldValidationMessage): void;
268
+ withValidationUnsafe<Value = EditorModel>(name: string, validator?: FormValidator<Value>, message?: FormValidationMessage<Value>, opts?: FieldValidationDescriptorOptsType): this;
273
269
  /**
274
270
  * Creates a copy of editor descriptor object.
275
271
  */
@@ -329,7 +325,6 @@ export declare class EditorDescriptorInst<EditorModel> implements IEditorDescrip
329
325
  localized<Property extends keyof EditorModel, LocalizationModel = ArrayItemType<EditorModel[Property]>>(property: Property, model: ModelDescriptor<LocalizationModel>, localeProperty: keyof LocalizationModel): this;
330
326
  localizedUnsafe<LocalizationType>(property: string, model: ModelDescriptor<LocalizationType>, localeProperty: string): this;
331
327
  nextEvent(type: FormEventTypeEnum, cmpType: Type<any>, cmpInstance: any, data?: FieldEventData<EditorModel>): void;
332
- completeEvents(): void;
333
328
  get events$(): import("rxjs").Observable<FormEvent<EditorModel>>;
334
329
  /**
335
330
  * Generates field based on attribute definition, used for auto model
@@ -30,18 +30,18 @@ export declare abstract class AFieldDescriptor<FieldModel, EditorModel, FieldVal
30
30
  /** @ignore */ protected _defaultValue?: FieldValue;
31
31
  /** @ignore */ protected _getter?: GetterFn<FieldValue, EditorModel>;
32
32
  /** @ignore */ protected _setter?: (item: EditorModel, value: FieldValue) => void;
33
- /** @ignore */ protected _validations: Array<FieldValidationDescriptor>;
34
- /** @ignore */ protected _asyncValidations: Array<FieldValidationDescriptor>;
33
+ /** @ignore */ protected _validations: Array<FieldValidationDescriptor<any, any>>;
34
+ /** @ignore */ protected _asyncValidations: Array<FieldValidationDescriptor<any, any>>;
35
35
  /** @ignore */ protected _requiredExpression?: string | ((field?: FormlyFieldConfig) => boolean) | Observable<boolean>;
36
36
  /** @ignore */ protected _disabledExpression?: string | ((field?: FormlyFieldConfig) => boolean) | Observable<boolean>;
37
37
  /** @ignore */ protected _hiddenExpression?: string | ((field?: FormlyFieldConfig) => boolean) | Observable<boolean>;
38
38
  /** @ignore */ protected _updateOn: 'change' | 'blur' | 'submit';
39
- /** @ignore */ protected _onInit?: CommonsFormlyHookFn;
40
- /** @ignore */ protected _onChanges?: CommonsFormlyHookFn;
41
- /** @ignore */ protected _afterContentInit?: CommonsFormlyHookFn;
42
- /** @ignore */ protected _afterViewInit?: CommonsFormlyHookFn;
43
- /** @ignore */ protected _onDestroy?: CommonsFormlyHookFn;
44
- /** @ignore */ protected _onValueChange?: (field: CommonsFormlyFieldConfig, value: any) => void;
39
+ /** @ignore */ protected _onInit?: CommonsFormlyHookFn<FieldValue, EditorModel>;
40
+ /** @ignore */ protected _onChanges?: CommonsFormlyHookFn<FieldValue, EditorModel>;
41
+ /** @ignore */ protected _afterContentInit?: CommonsFormlyHookFn<FieldValue, EditorModel>;
42
+ /** @ignore */ protected _afterViewInit?: CommonsFormlyHookFn<FieldValue, EditorModel>;
43
+ /** @ignore */ protected _onDestroy?: CommonsFormlyHookFn<FieldValue, EditorModel>;
44
+ /** @ignore */ protected _onValueChange?: (field: CommonsFormlyFieldConfig<FieldValue, EditorModel>, value: any) => void;
45
45
  /** @ignore */ protected _className: string;
46
46
  /** @ignore */ protected _fieldClassName?: string;
47
47
  /** @ignore */ protected _labelClassName: string;
@@ -60,8 +60,8 @@ export declare abstract class AFieldDescriptor<FieldModel, EditorModel, FieldVal
60
60
  get defaultValue(): FieldValue | undefined;
61
61
  get getter(): GetterFn<FieldValue, EditorModel> | undefined;
62
62
  get setter(): ((item: EditorModel, value: FieldValue) => void) | undefined;
63
- get validations(): FieldValidationDescriptor[];
64
- get asyncValidations(): FieldValidationDescriptor[];
63
+ get validations(): FieldValidationDescriptor<any, any>[];
64
+ get asyncValidations(): FieldValidationDescriptor<any, any>[];
65
65
  get requiredExpression(): string | Observable<boolean> | ((field?: FormlyFieldConfig<import("@ngx-formly/core").FormlyFieldProps & {
66
66
  [additionalProperties: string]: any;
67
67
  }> | undefined) => boolean) | undefined;
@@ -72,12 +72,12 @@ export declare abstract class AFieldDescriptor<FieldModel, EditorModel, FieldVal
72
72
  [additionalProperties: string]: any;
73
73
  }> | undefined) => boolean) | undefined;
74
74
  get updateOn(): "submit" | "change" | "blur";
75
- get onInit(): CommonsFormlyHookFn | undefined;
76
- get onChanges(): CommonsFormlyHookFn | undefined;
77
- get afterContentInit(): CommonsFormlyHookFn | undefined;
78
- get afterViewInit(): CommonsFormlyHookFn | undefined;
79
- get onDestroy(): CommonsFormlyHookFn | undefined;
80
- get onValueChange(): ((field: CommonsFormlyFieldConfig<import("../models/formly-field.model").CommonsFormlyFieldProps>, value: any) => void) | undefined;
75
+ get onInit(): CommonsFormlyHookFn<FieldValue, EditorModel> | undefined;
76
+ get onChanges(): CommonsFormlyHookFn<FieldValue, EditorModel> | undefined;
77
+ get afterContentInit(): CommonsFormlyHookFn<FieldValue, EditorModel> | undefined;
78
+ get afterViewInit(): CommonsFormlyHookFn<FieldValue, EditorModel> | undefined;
79
+ get onDestroy(): CommonsFormlyHookFn<FieldValue, EditorModel> | undefined;
80
+ get onValueChange(): ((field: CommonsFormlyFieldConfig<FieldValue, EditorModel, import("../models/formly-field.model").CommonsFormlyFieldProps<FieldValue, EditorModel>>, value: any) => void) | undefined;
81
81
  get className(): string;
82
82
  get fieldClassName(): string | undefined;
83
83
  get labelClassName(): string;
@@ -94,18 +94,18 @@ export declare abstract class AFieldDescriptor<FieldModel, EditorModel, FieldVal
94
94
  withDisabled(disabled?: boolean, disabledExpression?: string | ((field?: FormlyFieldConfig) => boolean) | Observable<boolean>): this;
95
95
  withHidden(hiddenExpression: string | ((field?: FormlyFieldConfig) => boolean) | Observable<boolean>): this;
96
96
  withUpdateOn(updateOn: 'change' | 'blur' | 'submit'): this;
97
- withOnInit(onInit?: CommonsFormlyHookFn): this;
98
- withOnChanges(onChanges?: CommonsFormlyHookFn): this;
99
- withAfterContentInit(afterContentInit?: CommonsFormlyHookFn): this;
100
- withAfterViewInit(afterViewInit?: CommonsFormlyHookFn): this;
101
- withOnDestroy(onDestroy?: CommonsFormlyHookFn): this;
102
- withOnValueChange(onValueChange?: (field: CommonsFormlyFieldConfig, value: any) => void): this;
97
+ withOnInit(onInit?: CommonsFormlyHookFn<FieldValue, EditorModel>): this;
98
+ withOnChanges(onChanges?: CommonsFormlyHookFn<FieldValue, EditorModel>): this;
99
+ withAfterContentInit(afterContentInit?: CommonsFormlyHookFn<FieldValue, EditorModel>): this;
100
+ withAfterViewInit(afterViewInit?: CommonsFormlyHookFn<FieldValue, EditorModel>): this;
101
+ withOnDestroy(onDestroy?: CommonsFormlyHookFn<FieldValue, EditorModel>): this;
102
+ withOnValueChange(onValueChange?: (field: CommonsFormlyFieldConfig<FieldValue, EditorModel>, value: FieldValue) => void): this;
103
103
  withDefaultValue(defaultValue: FieldValue): this;
104
104
  withGetter(fn?: GetterFn<FieldValue, EditorModel>): this;
105
105
  withSetter(fn?: (item: EditorModel, value: FieldValue) => void): this;
106
- withValidation(name: string, validator?: FieldValidator, message?: FieldValidationMessage): this;
106
+ withValidation<Value = FieldValue, EditorValue = EditorModel>(name: string, validator?: FieldValidator<Value, EditorValue>, message?: FieldValidationMessage<Value, EditorValue>): this;
107
107
  removeValidation(name: string): this;
108
- withAsyncValidation(name: string, asyncValidator?: FieldAsyncValidator, message?: FieldValidationMessage): this;
108
+ withAsyncValidation<Value = FieldValue, EditorValue = EditorModel>(name: string, asyncValidator?: FieldAsyncValidator<Value, EditorValue>, message?: FieldValidationMessage<Value, EditorValue>): this;
109
109
  removeAsyncValidation(name: string): this;
110
110
  withClassName(className: string, labelClassName?: string, inputClassName?: string, fieldClassName?: string): this;
111
111
  withSize(size?: FieldSizeEnum): this;
@@ -1,18 +1,18 @@
1
1
  import { IEditorDescriptor } from '@mediusinc/mng-commons/core';
2
- import { FieldGroupTypeEnum, FieldValidationMessage, FieldValidator } from '../models/field.model';
2
+ import { FieldGroupTypeEnum, FormValidationMessage, FormValidator } from '../models/field.model';
3
3
  import { AFieldDescriptor, AGenericFieldDescriptor } from './field-base.descriptor';
4
- import { FieldValidationDescriptor } from './field-validation.descriptor';
4
+ import { FieldValidationDescriptor, FieldValidationDescriptorOptsType } from './field-validation.descriptor';
5
5
  export declare abstract class AFieldGroupDescriptor<EditorModel> extends AGenericFieldDescriptor<EditorModel> {
6
6
  protected readonly _name: string;
7
7
  protected readonly _default: boolean;
8
8
  protected _title?: string;
9
9
  protected _fields: AGenericFieldDescriptor<EditorModel>[];
10
- protected _validations: Array<FieldValidationDescriptor>;
10
+ protected _validations: Array<FieldValidationDescriptor<any, any>>;
11
11
  protected constructor(editor: IEditorDescriptor<EditorModel>, name: string);
12
12
  removeField(property: string, filterFunction: (fields: AGenericFieldDescriptor<EditorModel>[]) => AGenericFieldDescriptor<EditorModel>[]): AGenericFieldDescriptor<EditorModel>[];
13
13
  get title(): string | undefined;
14
14
  abstract get fields(): AGenericFieldDescriptor<EditorModel>[];
15
- get validations(): FieldValidationDescriptor[];
15
+ get validations(): FieldValidationDescriptor<any, any>[];
16
16
  get baseName(): string;
17
17
  get name(): string;
18
18
  get default(): boolean;
@@ -20,7 +20,7 @@ export declare abstract class AFieldGroupDescriptor<EditorModel> extends AGeneri
20
20
  abstract addField(field: AGenericFieldDescriptor<EditorModel>): this;
21
21
  abstract copy(): AFieldGroupDescriptor<EditorModel>;
22
22
  withTitle(title: string): this;
23
- withValidation(name: string, validator?: FieldValidator, message?: FieldValidationMessage): this;
23
+ withValidation<Value = EditorModel>(name: string, validator?: FormValidator<Value>, message?: FormValidationMessage<Value>, opts?: FieldValidationDescriptorOptsType): this;
24
24
  }
25
25
  export declare class FieldTabGroupDescriptor<EditorModel> extends AFieldGroupDescriptor<EditorModel> {
26
26
  constructor(editor: IEditorDescriptor<EditorModel>, name: string);
@@ -1,19 +1,16 @@
1
- import { FormlyFieldConfig } from '@ngx-formly/core';
2
- import { Observable } from 'rxjs';
3
- import { FieldAsyncValidator, FieldValidationMessage, FieldValidator } from '../models/field.model';
4
- export declare class FieldValidationDescriptor {
1
+ import { FieldAsyncBaseValidator, FieldBaseValidator, FieldValidationMessage } from '../models/field.model';
2
+ export type FieldValidationDescriptorOptsType<Property = string> = {
3
+ errorPath?: Property;
4
+ };
5
+ export declare class FieldValidationDescriptor<FieldValue, EditorValue> {
5
6
  private readonly _name;
6
7
  private readonly _validator?;
7
8
  private readonly _message?;
8
9
  private readonly _options?;
9
- constructor(name: string, validator?: FieldValidator | FieldAsyncValidator, message?: string | ((error: any, field: FormlyFieldConfig) => string | Observable<string>), options?: {
10
- errorPath: string;
11
- });
10
+ constructor(name: string, validator?: FieldBaseValidator<FieldValue, EditorValue> | FieldAsyncBaseValidator<FieldValue, EditorValue>, message?: FieldValidationMessage<FieldValue, EditorValue>, options?: FieldValidationDescriptorOptsType);
12
11
  get name(): string;
13
- get validator(): FieldValidator | FieldAsyncValidator | undefined;
14
- get message(): FieldValidationMessage | undefined;
15
- get options(): {
16
- errorPath: string;
17
- } | undefined;
18
- copy(): FieldValidationDescriptor;
12
+ get validator(): FieldBaseValidator<FieldValue, EditorValue> | FieldAsyncBaseValidator<FieldValue, EditorValue> | undefined;
13
+ get message(): FieldValidationMessage<FieldValue, EditorValue> | undefined;
14
+ get options(): FieldValidationDescriptorOptsType<string> | undefined;
15
+ copy(): FieldValidationDescriptor<FieldValue, EditorValue>;
19
16
  }
@@ -47,6 +47,12 @@ export type FieldInputDatePickerOptsType = {
47
47
  max?: Date;
48
48
  showTime?: boolean;
49
49
  showSeconds?: boolean;
50
+ } & DateOptsType;
51
+ export type DateOptsType = {
52
+ asDateObj?: boolean;
53
+ utc?: boolean;
54
+ noTime?: boolean;
55
+ noTimeZone?: boolean;
50
56
  };
51
57
  export type FieldInputFileOpts = {
52
58
  multiple?: boolean;
@@ -84,6 +90,10 @@ export declare class FieldInputDescriptor<EditorModel, FieldModel = FieldInputDe
84
90
  private _datePickerMax?;
85
91
  private _datePickerShowTime?;
86
92
  private _datePickerShowSeconds?;
93
+ private _datePickerValueUtc?;
94
+ private _datePickerValueNoTimezone?;
95
+ private _datePickerValueNoTime?;
96
+ private _datePickerValueAsDateObj?;
87
97
  private _maxLength?;
88
98
  private _minLength?;
89
99
  private _pattern?;
@@ -121,6 +131,10 @@ export declare class FieldInputDescriptor<EditorModel, FieldModel = FieldInputDe
121
131
  get datePickerMax(): Date | undefined;
122
132
  get datePickerShowTime(): boolean | undefined;
123
133
  get datePickerShowSeconds(): boolean | undefined;
134
+ get datePickerValueUtc(): boolean | undefined;
135
+ get datePickerValueNoTimezone(): boolean | undefined;
136
+ get datePickerValueNoTime(): boolean | undefined;
137
+ get datePickerValueAsDateObj(): boolean | undefined;
124
138
  get maxLength(): number | undefined;
125
139
  get minLength(): number | undefined;
126
140
  get pattern(): string | RegExp | undefined;
@@ -162,6 +176,7 @@ export declare class FieldInputDescriptor<EditorModel, FieldModel = FieldInputDe
162
176
  withNumberGrouping(useGrouping?: boolean): this;
163
177
  withTextValidation(opts?: FieldInputTextValidationOptsType): this;
164
178
  withInputTrim(trimOption?: InputTrimType): this;
179
+ withDateValue(opts?: DateOptsType): this;
165
180
  withTextValidationEmail(email?: boolean): this;
166
181
  withFileOnSelectHandler(fn?: FieldInputFileOnSelectHandlerFnType): this;
167
182
  copy(): FieldInputDescriptor<EditorModel, FieldModel, FieldValue>;
@@ -1,3 +1,7 @@
1
1
  import { FieldValidator } from '../models/field.model';
2
- export declare const minDateValidator: (min: Date) => FieldValidator;
3
- export declare const maxDateValidator: (max: Date) => FieldValidator;
2
+ export declare const minDateValidationName = "minDate";
3
+ export declare const minDateValidator: (min: Date) => FieldValidator<Date | string | number | undefined | null, any>;
4
+ export declare const maxDateValidationName = "maxDate";
5
+ export declare const maxDateValidator: (max: Date | string | number) => FieldValidator<Date | string | number | undefined | null, any>;
6
+ export declare const emailValidationName = "email";
7
+ export declare const emailValidator: () => FieldValidator<string | undefined | null, any>;
@@ -4,8 +4,10 @@ import { ITableDataProvider, ITableDescriptorInternal } from '@mediusinc/mng-com
4
4
  import { AFieldDescriptor } from '../descriptors/field-base.descriptor';
5
5
  import { FieldLookupDescriptor, FieldLookupEnumDescriptor, FieldLookupProviderType } from '../descriptors/field-lookup.descriptor';
6
6
  import { FieldManyEditorDescriptor, FieldManyToManyEditorDescriptor } from '../descriptors/field-many.descriptor';
7
+ import { FieldValidationDescriptorOptsType } from '../descriptors/field-validation.descriptor';
7
8
  import { FieldInputDescriptor, FieldInputDescriptorType } from '../descriptors/field.descriptor';
8
9
  import { TableviewEditorTypeEnum } from './editor.model';
10
+ import { FormValidationMessage, FormValidator } from './field.model';
9
11
  export interface IFieldsManageInterface<EditorModel> {
10
12
  getField(property: keyof EditorModel, editorType: TableviewEditorTypeEnum): AFieldDescriptor<any, EditorModel> | null;
11
13
  getFieldUnsafe(property: string, editorType: TableviewEditorTypeEnum): AFieldDescriptor<any, EditorModel> | null;
@@ -27,8 +29,8 @@ export interface IFieldsManageInterface<EditorModel> {
27
29
  addFieldLookupEnumUnsafe<Enum = EnumConstantType>(property: string, enumModel: EnumDescriptor<Enum>, options?: Array<Enum>): FieldLookupEnumDescriptor<Enum, EditorModel>;
28
30
  addFieldManyEditor<Property extends keyof EditorModel, FieldModel = ArrayItemType<EditorModel[Property]>, FieldValue = EditorModel[Property]>(property: Property, tableviewDescriptor: ITableviewDescriptor<FieldModel, any, any>): FieldManyEditorDescriptor<FieldModel, EditorModel, FieldValue>;
29
31
  addFieldManyEditorUnsafe<FieldModel, FieldValue = FieldModel[]>(property: string, tableviewDescriptor: ITableviewDescriptor<FieldModel, any, any>): FieldManyEditorDescriptor<FieldModel, EditorModel, FieldValue>;
30
- addFieldManyToManyEditor<Property extends keyof EditorModel, FieldModel = ArrayItemType<EditorModel[Property]>, FieldValue = EditorModel[Property]>(property: Property, mainTableDescriptor: ITableDescriptorInternal<FieldModel>, lookupTableDescriptor: ITableDescriptorInternal<FieldModel>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, undefined, FieldValue>;
31
- addFieldManyToManyEditorUnsafe<FieldModel, FieldValue = FieldModel[]>(property: string, mainTableDescriptor: ITableDescriptorInternal<FieldModel>, lookupTableDescriptor: ITableDescriptorInternal<FieldModel>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, undefined, FieldValue>;
32
- addFieldManyToManyEditorWithProvider<Property extends keyof EditorModel, Service, FieldModel = ArrayItemType<EditorModel[Property]>, FieldValue = EditorModel[Property]>(property: Property, mainTableDescriptor: ITableDescriptorInternal<FieldModel>, lookupTableDescriptor: ITableDescriptorInternal<FieldModel>, lookupDataProvider: ITableDataProvider<FieldModel, Service>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, Service, FieldValue>;
33
- addFieldManyToManyEditorWithProviderUnsafe<FieldModel, Service, FieldValue = FieldModel[]>(property: string, mainTableDescriptor: ITableDescriptorInternal<FieldModel>, lookupTableDescriptor: ITableDescriptorInternal<FieldModel>, lookupDataProvider: ITableDataProvider<FieldModel, Service>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, Service, FieldValue>;
32
+ addFieldManyToManyEditor<Property extends keyof EditorModel, Service, FieldModel = ArrayItemType<EditorModel[Property]>, FieldValue = EditorModel[Property]>(property: Property, mainTableDescriptor: ITableDescriptorInternal<FieldModel>, lookupTableDescriptor: ITableDescriptorInternal<FieldModel>, lookupDataProvider: ITableDataProvider<FieldModel, Service>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, Service, FieldValue>;
33
+ addFieldManyToManyEditorUnsafe<FieldModel, Service, FieldValue = FieldModel[]>(property: string, mainTableDescriptor: ITableDescriptorInternal<FieldModel>, lookupTableDescriptor: ITableDescriptorInternal<FieldModel>, lookupDataProvider: ITableDataProvider<FieldModel, Service>): FieldManyToManyEditorDescriptor<FieldModel, EditorModel, Service, FieldValue>;
34
+ withValidation<Value = EditorModel>(name: string, validator?: FormValidator<Value>, message?: FormValidationMessage<Value>, opts?: FieldValidationDescriptorOptsType<keyof EditorModel>): this;
35
+ withValidationUnsafe<Value = EditorModel>(name: string, validator?: FormValidator<Value>, message?: FormValidationMessage<Value>, opts?: FieldValidationDescriptorOptsType): this;
34
36
  }
@@ -1,7 +1,7 @@
1
1
  import { Type } from '@angular/core';
2
- import { AbstractControl, ValidationErrors } from '@angular/forms';
3
- import { FormlyFieldConfig } from '@ngx-formly/core';
2
+ import { AbstractControl, FormControl, FormGroup } from '@angular/forms';
4
3
  import { Observable } from 'rxjs';
4
+ import { CommonsFormlyFieldConfig } from './formly-field.model';
5
5
  export declare enum FieldSizeEnum {
6
6
  Small = 0,
7
7
  Normal = 1,
@@ -49,13 +49,22 @@ export declare enum FieldGroupTypeEnum {
49
49
  Fieldset = 0,
50
50
  Logical = 1
51
51
  }
52
- export type FieldValidator = (control: AbstractControl, field: FormlyFieldConfig, options?: {
52
+ export type FieldBaseValidator<Value, FormValue, Control extends AbstractControl = AbstractControl> = (control: Control, field: CommonsFormlyFieldConfig<Value, FormValue>, options?: {
53
53
  [id: string]: any;
54
- }) => ValidationErrors | boolean | null;
55
- export type FieldAsyncValidator = (control: AbstractControl, field: FormlyFieldConfig, options?: {
54
+ }) => boolean;
55
+ export type FieldValidator<Value, FormValue, Control extends AbstractControl = FormControl<Value>> = FieldBaseValidator<Value, FormValue, Control>;
56
+ export type FormValidator<Value, Control extends AbstractControl = FormGroup<{
57
+ [K in keyof Value]: AbstractControl<Value[K]>;
58
+ }>> = FieldBaseValidator<Value, Value, Control>;
59
+ export type FieldAsyncBaseValidator<Value, FormValue, Control extends AbstractControl = AbstractControl> = (control: Control, field: CommonsFormlyFieldConfig<Value, FormValue>, options?: {
56
60
  [id: string]: any;
57
- }) => Observable<ValidationErrors | boolean | null>;
58
- export type FieldValidationMessage = string | ((error: any, field: FormlyFieldConfig) => string | Observable<string>);
61
+ }) => Observable<boolean>;
62
+ export type FieldAsyncValidator<Value, FormValue, Control extends AbstractControl = FormControl<Value>> = FieldAsyncBaseValidator<Value, FormValue, Control>;
63
+ export type FormAsyncValidator<Value, Control extends AbstractControl = FormGroup<{
64
+ [K in keyof Value]: AbstractControl;
65
+ }>> = FieldAsyncBaseValidator<Value, Value, Control>;
66
+ export type FieldValidationMessage<Value, FormValue> = string | ((error: any, field: CommonsFormlyFieldConfig<Value, FormValue>) => string | Observable<string>);
67
+ export type FormValidationMessage<Value> = FieldValidationMessage<Value, Value>;
59
68
  export interface FieldConfig {
60
69
  }
61
70
  export interface FieldLookupConfig extends FieldConfig {
@@ -1,4 +1,6 @@
1
1
  import { Type } from '@angular/core';
2
+ import { FieldType } from '@ngx-formly/core';
3
+ import { IFormEditorComponent } from './form-editor.interface';
2
4
  export interface FormEditorSubmitEvent<Item> {
3
5
  formItem: Item;
4
6
  success: boolean;
@@ -43,13 +45,13 @@ export interface FieldEventData<ET> {
43
45
  }
44
46
  export interface FormFieldEvent<T, ET> {
45
47
  type: FormFieldEventTypeEnum;
46
- componentType: Type<any>;
47
- componentInstance: any;
48
+ componentType: Type<FieldType>;
49
+ componentInstance: FieldType;
48
50
  data?: FormFieldEventData<T, ET>;
49
51
  }
50
52
  export interface FormEvent<ET> {
51
53
  type: FormEventTypeEnum;
52
- componentType: Type<any>;
53
- componentInstance: any;
54
+ componentType: Type<IFormEditorComponent<ET>>;
55
+ componentInstance: IFormEditorComponent<ET>;
54
56
  data?: FieldEventData<ET>;
55
57
  }
@@ -1,10 +1,39 @@
1
- import { AbstractControl } from '@angular/forms';
2
- export interface IFormEditorComponent<T> {
1
+ import { InputSignal, WritableSignal } from '@angular/core';
2
+ import { AbstractControl, FormGroup, UntypedFormGroup } from '@angular/forms';
3
+ import { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';
4
+ import { Message } from 'primeng/api';
5
+ import { EditorDescriptorInst } from '../descriptors/editor.descriptor';
6
+ export interface CommonsFormlyFormOptions<Item> {
7
+ formState?: {
8
+ descriptor?: EditorDescriptorInst<Item>;
9
+ add: boolean;
10
+ edit: boolean;
11
+ disabled: boolean;
12
+ };
13
+ }
14
+ export type FormEditorResetFormModelOpts = {
15
+ markAsPristine?: boolean;
16
+ };
17
+ export interface IFormEditorComponent<Item> {
18
+ descriptor: InputSignal<EditorDescriptorInst<Item>>;
19
+ isFormDisabled: InputSignal<boolean>;
20
+ formMessages: WritableSignal<Message[]>;
21
+ get form(): FormGroup<{
22
+ [K in keyof Item]: AbstractControl<Item[K]>;
23
+ }>;
24
+ get formUnsafe(): UntypedFormGroup;
25
+ get formlyOptions(): FormlyFormOptions & CommonsFormlyFormOptions<Item>;
26
+ get formlyFields(): FormlyFieldConfig[];
27
+ get formlyInitialItem(): any;
3
28
  submit(): void;
4
- getFormValue(): T;
5
- resetFormModel(item?: T): void;
6
- getFormField(key: string): AbstractControl | null;
7
- setFormFieldValue(key: string, value: any): boolean;
8
- patchFormFieldValue(key: string, value: any): boolean;
9
- resetFormFieldValue(key: string, value?: any): boolean;
29
+ getFormValue(): Item;
30
+ resetFormModel(item?: Item, opts?: FormEditorResetFormModelOpts): void;
31
+ getField(key: keyof Item): AbstractControl | null;
32
+ getFieldUnsafe(key: string): AbstractControl | null;
33
+ setFieldValue<Property extends keyof Item>(key: Property, value: Item[Property]): boolean;
34
+ setFieldValueUnsafe(key: string, value: any): boolean;
35
+ patchFieldValue<Property extends keyof Item>(key: Property, value: Item[Property]): boolean;
36
+ patchFieldValueUnsafe(key: string, value: any): boolean;
37
+ resetFieldValue<Property extends keyof Item>(key: Property, value?: Item[Property]): boolean;
38
+ resetFieldValueUnsafe(key: string, value?: any): boolean;
10
39
  }
@@ -18,7 +18,7 @@ export declare abstract class AFormlyCustomFieldComponent extends FieldType<Comm
18
18
  get options(): FormlyFormOptions;
19
19
  get key(): string | number | (string | number)[];
20
20
  get formControl(): AbstractControl<any, any>;
21
- get props(): import("./formly-field.model").CommonsFormlyFieldProps;
21
+ get props(): import("./formly-field.model").CommonsFormlyFieldProps<any, any>;
22
22
  get showError(): boolean;
23
23
  get id(): string;
24
24
  get formState(): any;
@@ -2,17 +2,19 @@ import { FieldType, FormlyFieldConfig, FormlyFieldProps } from '@ngx-formly/core
2
2
  import { AFieldDescriptor } from '../descriptors/field-base.descriptor';
3
3
  import { AFieldGroupDescriptor } from '../descriptors/field-group.descriptor';
4
4
  import { IFormEditorComponent } from './form-editor.interface';
5
- export type CommonsFormlyFieldProps = FormlyFieldProps & CommonsFormlyFieldAdditionalProps<unknown, unknown>;
6
- export interface CommonsFormlyFieldConfig<Props = CommonsFormlyFieldProps> extends FormlyFieldConfig<Props> {
5
+ export type CommonsFormlyFieldProps<T = any, ET = any> = FormlyFieldProps & CommonsFormlyFieldAdditionalProps<T, ET>;
6
+ export type CommonsFormlyValidation = FormlyFieldConfig['validators'];
7
+ export interface CommonsFormlyFieldConfig<T = any, ET = any, Props = CommonsFormlyFieldProps<T, ET>> extends FormlyFieldConfig<Props> {
7
8
  props: Props;
8
9
  }
9
- export type CommonsFormlyHookFn = (field: CommonsFormlyFieldConfig) => void;
10
- export interface CommonsFormlyFieldAdditionalProps<T, ET> {
11
- descriptor?: AFieldDescriptor<T, ET> | AFieldGroupDescriptor<ET>;
12
- formEditorComponent?: IFormEditorComponent<ET>;
13
- fieldComponent?: FieldType<CommonsFormlyFieldConfig>;
10
+ export type CommonsFormlyHookFn<T, ET> = (field: CommonsFormlyFieldConfig<T, ET>) => void;
11
+ export interface CommonsFormlyFieldAdditionalProps<Value, FormValue> {
12
+ descriptor?: AFieldDescriptor<Value, FormValue> | AFieldGroupDescriptor<FormValue>;
13
+ formEditorComponent?: IFormEditorComponent<FormValue>;
14
+ fieldComponent?: FieldType<CommonsFormlyFieldConfig<Value, FormValue>>;
14
15
  required?: boolean;
15
16
  hide?: boolean;
16
17
  disabled?: boolean;
18
+ onValueChange?: (field: CommonsFormlyFieldConfig<Value, FormValue>, value: Value) => void;
17
19
  [additionalProperties: string]: any;
18
20
  }