mdt-client 31.3.2 → 31.3.3

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 (117) hide show
  1. package/dist/index.d.ts +11 -11
  2. package/dist/index.js +16 -16
  3. package/dist/tsconfig.tsbuildinfo +1 -1
  4. package/package.json +29 -29
  5. package/readme.md +15 -15
  6. package/types/common/Datasource.d.ts +9 -9
  7. package/types/common/Field.d.ts +42 -42
  8. package/types/common/MdtField.d.ts +9 -9
  9. package/types/common/MdtObject.d.ts +7 -7
  10. package/types/common/Record.d.ts +24 -24
  11. package/types/common/Table.d.ts +47 -47
  12. package/types/common/list/group/groupTypes.d.ts +26 -26
  13. package/types/common/list/hierarchy/hierarchyTypes.d.ts +48 -48
  14. package/types/components/baseFormControls/input/inputOptions.d.ts +31 -31
  15. package/types/components/button/baseButton/buttonOptions.d.ts +12 -12
  16. package/types/components/buttonGroup/buttonGroupOptions.d.ts +7 -7
  17. package/types/components/dropdown/menu/item/dropdownInputItemOptions.d.ts +5 -5
  18. package/types/components/dropdown/menu/item/dropdownItemWrapOptions.d.ts +19 -19
  19. package/types/components/dropdown/menuActionItem/dropdownMenuItemOptions.d.ts +30 -30
  20. package/types/components/form/fieldView/fieldViewOptions.d.ts +12 -12
  21. package/types/components/form/label/labelOptions.d.ts +22 -22
  22. package/types/components/icon/iconOptions.d.ts +22 -22
  23. package/types/components/iconButton/iconButtonOptions.d.ts +10 -10
  24. package/types/components/processPrincipalsList/ProcessPrincipalsListItem.d.ts +5 -5
  25. package/types/components/resizablePanels/panelTitle/panelTitleOptions.d.ts +16 -16
  26. package/types/components/resizablePanels/panelToolbar/panelToolbarOptions.d.ts +4 -4
  27. package/types/components/resizablePanels/resizablePanel/resizablePanelOptions.d.ts +24 -24
  28. package/types/components/resizablePanels/resizablePanelsOptions.d.ts +22 -22
  29. package/types/components/toggleablePanels/toggleablePanelsOptions.d.ts +40 -40
  30. package/types/data/active/ActivationListAdapterTypes.d.ts +6 -6
  31. package/types/datasources/FetchResult.d.ts +5 -5
  32. package/types/helpers/IUi.d.ts +1 -1
  33. package/types/helpers/deleteFromArray.d.ts +1 -1
  34. package/types/helpers/events/EventEmitter.d.ts +7 -7
  35. package/types/helpers/fireEvent.d.ts +4 -4
  36. package/types/helpers/formatOptions.d.ts +6 -6
  37. package/types/helpers/formattedText.d.ts +9 -9
  38. package/types/helpers/pipeline/Pipeline.d.ts +20 -20
  39. package/types/helpers/redraw.d.ts +16 -16
  40. package/types/helpers/types.d.ts +76 -76
  41. package/types/helpers/ui/elementModificators/focusableComponent.d.ts +15 -15
  42. package/types/helpers/ui/elementModificators/modificatorsTypes.d.ts +4 -4
  43. package/types/helpers/ui/keyboardUtils/keyboardUtils.d.ts +23 -23
  44. package/types/helpers/utils/classNames.d.ts +6 -6
  45. package/types/helpers/utils/keyStorage/KeyStorage.d.ts +6 -6
  46. package/types/helpers/utils/object.d.ts +3 -3
  47. package/types/helpers/utils/stringifyControlSize.d.ts +3 -3
  48. package/types/helpers/utils/valued/getValued.d.ts +18 -18
  49. package/types/helpers/zone/IZone.d.ts +8 -8
  50. package/types/security/PermissionLevel.d.ts +40 -40
  51. package/types/security/User.d.ts +19 -19
  52. package/types/services/HotkeyManager.d.ts +4 -4
  53. package/types/services/IFilter.d.ts +308 -308
  54. package/types/services/ModuleData.d.ts +9 -9
  55. package/types/services/api/ApiAccessor/apiV1Types.d.ts +266 -266
  56. package/types/services/api/ApiAccessor/apiV2Types.d.ts +529 -529
  57. package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/count/count.d.ts +10 -10
  58. package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/query/exts/hierarchy/hierarchyQueryHelpersTypes.d.ts +28 -28
  59. package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/query/exts/placeIn/placeInQueryTypes.d.ts +9 -9
  60. package/types/services/api/ApiAccessorRequestAdapter/handlers/messageTypes.d.ts +37 -37
  61. package/types/services/api/ApiRequestOptions.d.ts +27 -27
  62. package/types/services/api/BaseQuery.d.ts +16 -16
  63. package/types/services/api/Query.d.ts +59 -59
  64. package/types/services/api/QuerySorting.d.ts +8 -8
  65. package/types/services/api/ServerResonseType.d.ts +2 -2
  66. package/types/services/commands/Command.d.ts +22 -22
  67. package/types/services/commands/CommandGroup.d.ts +15 -15
  68. package/types/services/commands/CommandManager.d.ts +77 -77
  69. package/types/services/customModules/facades/Form/IFieldControlFacade.d.ts +26 -26
  70. package/types/services/customModules/facades/Form/IFieldControlManagerFacade.d.ts +36 -36
  71. package/types/services/customModules/facades/Form/IFieldStateFacade.d.ts +13 -13
  72. package/types/services/customModules/facades/Form/IFormControlFacade.d.ts +133 -133
  73. package/types/services/customModules/facades/Form/IFormFacade.d.ts +90 -90
  74. package/types/services/customModules/facades/IAppFacade.d.ts +38 -38
  75. package/types/services/customModules/facades/IAuthFacade.d.ts +9 -9
  76. package/types/services/customModules/facades/ILegacyFacade.d.ts +121 -119
  77. package/types/services/customModules/facades/IMdtFacade.d.ts +77 -77
  78. package/types/services/customModules/facades/IModuleRegistryFacade.d.ts +5 -5
  79. package/types/services/customModules/facades/IPageFacade.d.ts +7 -7
  80. package/types/services/customModules/facades/List/Column/IColumnFacade.d.ts +7 -7
  81. package/types/services/customModules/facades/List/IListCellFacade.d.ts +8 -8
  82. package/types/services/customModules/facades/List/IListComponentFacade.d.ts +10 -10
  83. package/types/services/customModules/facades/List/IListControlFacade.d.ts +69 -69
  84. package/types/services/customModules/facades/List/IListRowFacade.d.ts +2 -2
  85. package/types/services/customModules/facades/List/IListServiceFacade.d.ts +42 -42
  86. package/types/services/customModules/facades/components/CodeEditorFacade.d.ts +9 -9
  87. package/types/services/customModules/facades/components/ModalFacade.d.ts +4 -4
  88. package/types/services/customModules/facades/internalModules/importModuleFacade.d.ts +19 -19
  89. package/types/services/customModules/facades/internalModules/modulesFacadeTypes.d.ts +11 -11
  90. package/types/services/customModules/facades/internalModules/statusFacade.d.ts +13 -13
  91. package/types/services/customModules/facades/record/IRecordFacade.d.ts +13 -13
  92. package/types/services/customModules/facades/record/IRecordManagerFacade.d.ts +5 -5
  93. package/types/services/customModules/facades/schema/IFieldFacade.d.ts +9 -9
  94. package/types/services/customModules/facades/schema/IObjectFacade.d.ts +13 -13
  95. package/types/services/customModules/facades/schema/ISchemaFacade.d.ts +5 -5
  96. package/types/services/customModules/facades/services/CommandManagerFacade.d.ts +11 -11
  97. package/types/services/customModules/facades/services/IListButtonExtendPipelineService.d.ts +13 -13
  98. package/types/services/customModules/facades/services/INavigationFacade.d.ts +53 -53
  99. package/types/services/customModules/facades/services/ISecurityFacade.d.ts +13 -13
  100. package/types/services/customModules/facades/utils/IApiFacade.d.ts +54 -54
  101. package/types/services/customModules/facades/utils/IUiComponentsFacade.d.ts +57 -57
  102. package/types/services/customModules/facades/utils/IUiFacade.d.ts +84 -84
  103. package/types/services/customModules/facades/utils/IUtilsFacade.d.ts +19 -19
  104. package/types/services/customModules/facades/utils/ImUtilsFacade.d.ts +26 -26
  105. package/types/services/dropdown/IDropDownMenu.d.ts +41 -41
  106. package/types/views/controls/Control.d.ts +7 -7
  107. package/types/views/controls/panels/panelOptions.d.ts +15 -15
  108. package/types/views/form/controls/commonControl/ICommonControl.d.ts +29 -29
  109. package/types/views/form/controls/fileupload/FileInputFacade.types.d.ts +6 -6
  110. package/types/views/form/controls/monacoEditor/MonacoCodeOptions.schema.d.ts +23 -23
  111. package/types/views/form/controls/monacoEditor/jsonSchemas/Button.schema.d.ts +70 -70
  112. package/types/views/form/controls/toggleablePanels/editor/toggleablePanelsEditorFacadeOptions.d.ts +21 -21
  113. package/types/views/form/formTypes.d.ts +4 -4
  114. package/types/views/form/schema/FormPageOptions.schema.d.ts +17 -17
  115. package/types/views/list/IListView.d.ts +71 -71
  116. package/types/views/list/schema/ListPageOptions.schema.d.ts +114 -114
  117. package/types/views/page/PageZoneTypes.d.ts +1 -1
@@ -1,26 +1,26 @@
1
- export declare type FieldValue = any;
2
- export interface ErrorInfo {
3
- /** Текст ошибки */
4
- message: string;
5
- /** Код ошибки */
6
- key?: string;
7
- }
8
- export interface IFieldControlFacadeContstructor<T = FieldValue> {
9
- new (options: any, fieldCtrl: any): IFieldControlFacade<T>;
10
- }
11
- export interface IFieldControlFacade<T = FieldValue> {
12
- /** Получить значение поля */
13
- getValue: () => T;
14
- /** Установить значение поля */
15
- setValue: (val: T) => void;
16
- /** Проверка, является ли поле редактируемым */
17
- isEditable: () => boolean;
18
- /** Установить ошибку валидации для поля */
19
- setErrors: (errors: ErrorInfo[]) => void;
20
- /** Очистить ошибки валидации */
21
- clearErrors: (errorKey?: string) => void;
22
- /** Подписаться на событие обновления значения поля */
23
- onUpdated: (callback: (val: T) => void) => () => void;
24
- /** Заголовок поля */
25
- title: () => string;
26
- }
1
+ export declare type FieldValue = any;
2
+ export interface ErrorInfo {
3
+ /** Текст ошибки */
4
+ message: string;
5
+ /** Код ошибки */
6
+ key?: string;
7
+ }
8
+ export interface IFieldControlFacadeContstructor<T = FieldValue> {
9
+ new (options: any, fieldCtrl: any): IFieldControlFacade<T>;
10
+ }
11
+ export interface IFieldControlFacade<T = FieldValue> {
12
+ /** Получить значение поля */
13
+ getValue: () => T;
14
+ /** Установить значение поля */
15
+ setValue: (val: T) => void;
16
+ /** Проверка, является ли поле редактируемым */
17
+ isEditable: () => boolean;
18
+ /** Установить ошибку валидации для поля */
19
+ setErrors: (errors: ErrorInfo[]) => void;
20
+ /** Очистить ошибки валидации */
21
+ clearErrors: (errorKey?: string) => void;
22
+ /** Подписаться на событие обновления значения поля */
23
+ onUpdated: (callback: (val: T) => void) => () => void;
24
+ /** Заголовок поля */
25
+ title: () => string;
26
+ }
@@ -1,36 +1,36 @@
1
- import { IFieldControlFacade } from "./IFieldControlFacade";
2
- export interface MountContext<V> {
3
- /** Родительский DOM-элемент контрола */
4
- el: HTMLElement;
5
- /** Поле, к которому привязан контрол */
6
- field: IFieldControlFacade<V>;
7
- /** Опции контрола */
8
- options: any;
9
- /** Подписка на событие удаления контрола */
10
- onUnmount: (onUnmountCallback?: () => void) => void;
11
- /** Mithril класс контрола */
12
- control: any;
13
- }
14
- export interface IMithrilCustomControl<V> {
15
- new (options: any, field: IFieldControlFacade<V>): any;
16
- }
17
- export interface RegisterArgs<V> {
18
- /** Наименование контрола */
19
- title: string;
20
- /** Код контрола */
21
- code: string;
22
- /** Mithril класс контрола */
23
- control?: IMithrilCustomControl<V>;
24
- /** Типы полей, для которых предназначен контрол */
25
- types?: string | string[];
26
- /** Используется ли контрол для полей с внешним ключом */
27
- ref?: boolean;
28
- /** Скрыть контрол из списка в конструкторе форм */
29
- hidden?: boolean;
30
- /** Подписка на событие рендера контрола */
31
- onMount?: (params: MountContext<V>) => void;
32
- }
33
- export interface IFieldControlManagerFacade<V = any> {
34
- /** Зарегистрировать новый контрол */
35
- register: <T = V>(args: RegisterArgs<T>) => void;
36
- }
1
+ import { IFieldControlFacade } from "./IFieldControlFacade";
2
+ export interface MountContext<V> {
3
+ /** Родительский DOM-элемент контрола */
4
+ el: HTMLElement;
5
+ /** Поле, к которому привязан контрол */
6
+ field: IFieldControlFacade<V>;
7
+ /** Опции контрола */
8
+ options: any;
9
+ /** Подписка на событие удаления контрола */
10
+ onUnmount: (onUnmountCallback?: () => void) => void;
11
+ /** Mithril класс контрола */
12
+ control: any;
13
+ }
14
+ export interface IMithrilCustomControl<V> {
15
+ new (options: any, field: IFieldControlFacade<V>): any;
16
+ }
17
+ export interface RegisterArgs<V> {
18
+ /** Наименование контрола */
19
+ title: string;
20
+ /** Код контрола */
21
+ code: string;
22
+ /** Mithril класс контрола */
23
+ control?: IMithrilCustomControl<V>;
24
+ /** Типы полей, для которых предназначен контрол */
25
+ types?: string | string[];
26
+ /** Используется ли контрол для полей с внешним ключом */
27
+ ref?: boolean;
28
+ /** Скрыть контрол из списка в конструкторе форм */
29
+ hidden?: boolean;
30
+ /** Подписка на событие рендера контрола */
31
+ onMount?: (params: MountContext<V>) => void;
32
+ }
33
+ export interface IFieldControlManagerFacade<V = any> {
34
+ /** Зарегистрировать новый контрол */
35
+ register: <T = V>(args: RegisterArgs<T>) => void;
36
+ }
@@ -1,13 +1,13 @@
1
- import { IFilter } from "../../../IFilter";
2
- export interface IFieldStateFacade {
3
- /** Сделать поле недоступным для редактирования */
4
- setReadonly(readonly: boolean): void;
5
- /** Настроить фильтр для поля */
6
- setFilter(filter: IFilter): void;
7
- /** Скрыть/Показать поле */
8
- setVisible(isVisible: boolean): void;
9
- /** Добавить ошибку валидации для поля */
10
- addError(message: string, key: string): void;
11
- /** Убрать ранее добавленную ошибку валидации */
12
- removeError(key: string): void;
13
- }
1
+ import { IFilter } from "../../../IFilter";
2
+ export interface IFieldStateFacade {
3
+ /** Сделать поле недоступным для редактирования */
4
+ setReadonly(readonly: boolean): void;
5
+ /** Настроить фильтр для поля */
6
+ setFilter(filter: IFilter): void;
7
+ /** Скрыть/Показать поле */
8
+ setVisible(isVisible: boolean): void;
9
+ /** Добавить ошибку валидации для поля */
10
+ addError(message: string, key: string): void;
11
+ /** Убрать ранее добавленную ошибку валидации */
12
+ removeError(key: string): void;
13
+ }
@@ -1,133 +1,133 @@
1
- import { EventEmitter } from "../../../../helpers/events/EventEmitter";
2
- import { FormZones } from "../../../../views/form/formTypes";
3
- import { IFieldFacade } from "../schema/IFieldFacade";
4
- import { IObjectFacade } from "../schema/IObjectFacade";
5
- import { RecordId } from "../../../../common/Record";
6
- import { ParentCtrl } from "../utils/IUiFacade";
7
- import { ButtonFacade } from "./IFormFacade";
8
- import { FieldCode } from "mdtScripts/helpers/types";
9
- import { IFieldStateFacade } from "./IFieldStateFacade";
10
- export declare type IFormFieldOptionsConfig = {
11
- [fieldCode: string]: any;
12
- };
13
- export interface IFormControlFacadeContstructor {
14
- new (formCtrl: any): IFormControlFacade;
15
- }
16
- export interface FormControlFacadeEvents {
17
- saved: {
18
- recordId: RecordId;
19
- };
20
- }
21
- export interface IFormControlFacade extends ParentCtrl {
22
- eventEmitter: EventEmitter<FormControlFacadeEvents>;
23
- /** Получить оригинальный контрол формы */
24
- getFormCtrl(): any;
25
- /** Получить объект, к которому приязана форма */
26
- getObject(): IObjectFacade;
27
- /** Получить код формы */
28
- getCode(): string | undefined;
29
- /** Получить контекстный параметр формы */
30
- getContext(key: string): any;
31
- /** Установить контекстный параметр формы */
32
- setContext(key: string, value: any): void;
33
- /** Получить запись */
34
- getRecord(): Record<string, any>;
35
- /** Получить ID записи */
36
- getRecordId(): RecordId;
37
- /** Проверка, что запись в форме новая */
38
- isNewRecord(): boolean;
39
- /** Получить или установить значение для поля формы */
40
- value(field: string, val?: any, val$?: any, fireEvent?: boolean, setDirty?: boolean, updateData?: {}): any;
41
- /** Получение значения по пути */
42
- valueByPath(path: string): any;
43
- /** Добавить зависимость для запроса записи*/
44
- addRecordInitDependence(dependence: () => Promise<unknown>): void;
45
- /** Подписаться на событие инициализации записи формы */
46
- onBound(callback: () => void): void;
47
- /** Подписаться на событие сохранения записи */
48
- onSave<T = {
49
- [field: string]: any;
50
- }>(callback: (record: T) => void): void;
51
- /** Подписаться на событие закрытия формы */
52
- onClose(callback: () => void): void;
53
- /** Подписаться на событие создания макета формы */
54
- onLayoutCreated(callback: () => void): void;
55
- /** Установить команду на форму */
56
- addCommand(command: ButtonFacade, isExtended?: boolean): void;
57
- /** Установить настройки для полей формы */
58
- setFieldOptions(options: IFormFieldOptionsConfig): void;
59
- /** Установить настройки для компонента формы */
60
- setControlOptions(findControl: (col: any) => boolean, controlOptions: any): any;
61
- /** Установить флаг доступности редактирования формы */
62
- setReadonly(readonly: boolean): void;
63
- /** Проверка, доступна ли форма для редактирования */
64
- isReadonly(): boolean;
65
- /** Изменить свойства существующей кнопки */
66
- updateCommand(findCondition: (button: ButtonFacade) => boolean, command: Partial<ButtonFacade>): void;
67
- /** Повторно инициализировать форму */
68
- reinit(): void;
69
- /** Сохранить форму */
70
- save(): void;
71
- /** Открыть конструктор формы */
72
- openDesigner(): void;
73
- /** Получить зоны */
74
- getZones(): FormZones;
75
- /** Подписаться на событие обновление значения поля формы */
76
- onUpdated<V = string>(callback: (field: IFieldFacade, value: V) => void): void;
77
- /** Закрыть форму */
78
- close(): void;
79
- /** Сообщить подписчикам формы о внесении изменений в данные
80
- * Например, при вызове функции обновиться связанный список
81
- */
82
- notifyDataUpdated(): void;
83
- /**
84
- * Подписаться на обновление поля и выполнить запрос, проверку, настройку формы или другое действие
85
- *
86
- * **Примеры**
87
- *
88
- * Когда обновляется поле "Сотрудник", автоматически заполняется поле "Позиция":
89
- * ```js
90
- * form.onFieldsUpdated({
91
- * // Поля при изменении которых будет выполнено действие
92
- * fields: ["ID_Employee"],
93
- * // Действие, бизнес логика или вызов хранимой процедуры
94
- * execute: async () => {
95
- * const idEmployee = form.value("ID_Employee");
96
- * if (!idEmployee) return null;
97
- * // Допустим fetchPositionByEmployee выполняет запрос к базе и возвращает id позиции у сотрудника
98
- * const idPosition = await fetchPositionByEmployee(idEmployee);
99
- * return idPosition;
100
- * },
101
- * // Функция, которая будет выполнена после выполнения `execute`
102
- * onComplete: (idPosition) => {
103
- * form.value("ID_Position", idPosition);
104
- * },
105
- * // Поля, которые будут недоступны для редактирования, пока выполняются execute и onComplete
106
- * lock: ["ID_Position"]
107
- * });
108
- * ```
109
- */
110
- onFieldsUpdated<T = any>(options: OnFieldsUpdatedOptions<T>): void;
111
- /**
112
- * Состояние поля формы
113
- *
114
- * **Примеры**
115
- *
116
- * ```js
117
- * form.getFieldState("ID_Employee").setFilter(Filter.eq("MDT_FlagActive", true);
118
- * form.getFieldState("ID_Position").setReadonly(true);
119
- * form.getFieldState("ID_EmployeeType").setVisible(false);
120
- * ```
121
- */
122
- getFieldState(fieldCode: FieldCode): IFieldStateFacade | undefined;
123
- }
124
- export interface OnFieldsUpdatedOptions<T = any> {
125
- /** Поля при изменении которых будет выполнено действие */
126
- fields: FieldCode[];
127
- /** Действие, бизнес логика или вызов хранимой процедуры */
128
- execute: () => Promise<T> | T;
129
- /** Функция, которая будет выполнена после выполнения `execute` */
130
- onComplete: (value: T) => void;
131
- /** Поля, которые будут недоступны для редактирования, пока выполняются execute и onComplete */
132
- lock?: FieldCode[];
133
- }
1
+ import { EventEmitter } from "../../../../helpers/events/EventEmitter";
2
+ import { FormZones } from "../../../../views/form/formTypes";
3
+ import { IFieldFacade } from "../schema/IFieldFacade";
4
+ import { IObjectFacade } from "../schema/IObjectFacade";
5
+ import { RecordId } from "../../../../common/Record";
6
+ import { ParentCtrl } from "../utils/IUiFacade";
7
+ import { ButtonFacade } from "./IFormFacade";
8
+ import { FieldCode } from "mdtScripts/helpers/types";
9
+ import { IFieldStateFacade } from "./IFieldStateFacade";
10
+ export declare type IFormFieldOptionsConfig = {
11
+ [fieldCode: string]: any;
12
+ };
13
+ export interface IFormControlFacadeContstructor {
14
+ new (formCtrl: any): IFormControlFacade;
15
+ }
16
+ export interface FormControlFacadeEvents {
17
+ saved: {
18
+ recordId: RecordId;
19
+ };
20
+ }
21
+ export interface IFormControlFacade extends ParentCtrl {
22
+ eventEmitter: EventEmitter<FormControlFacadeEvents>;
23
+ /** Получить оригинальный контрол формы */
24
+ getFormCtrl(): any;
25
+ /** Получить объект, к которому приязана форма */
26
+ getObject(): IObjectFacade;
27
+ /** Получить код формы */
28
+ getCode(): string | undefined;
29
+ /** Получить контекстный параметр формы */
30
+ getContext(key: string): any;
31
+ /** Установить контекстный параметр формы */
32
+ setContext(key: string, value: any): void;
33
+ /** Получить запись */
34
+ getRecord(): Record<string, any>;
35
+ /** Получить ID записи */
36
+ getRecordId(): RecordId;
37
+ /** Проверка, что запись в форме новая */
38
+ isNewRecord(): boolean;
39
+ /** Получить или установить значение для поля формы */
40
+ value(field: string, val?: any, val$?: any, fireEvent?: boolean, setDirty?: boolean, updateData?: {}): any;
41
+ /** Получение значения по пути */
42
+ valueByPath(path: string): any;
43
+ /** Добавить зависимость для запроса записи*/
44
+ addRecordInitDependence(dependence: () => Promise<unknown>): void;
45
+ /** Подписаться на событие инициализации записи формы */
46
+ onBound(callback: () => void): void;
47
+ /** Подписаться на событие сохранения записи */
48
+ onSave<T = {
49
+ [field: string]: any;
50
+ }>(callback: (record: T) => void): void;
51
+ /** Подписаться на событие закрытия формы */
52
+ onClose(callback: () => void): void;
53
+ /** Подписаться на событие создания макета формы */
54
+ onLayoutCreated(callback: () => void): void;
55
+ /** Установить команду на форму */
56
+ addCommand(command: ButtonFacade, isExtended?: boolean): void;
57
+ /** Установить настройки для полей формы */
58
+ setFieldOptions(options: IFormFieldOptionsConfig): void;
59
+ /** Установить настройки для компонента формы */
60
+ setControlOptions(findControl: (col: any) => boolean, controlOptions: any): any;
61
+ /** Установить флаг доступности редактирования формы */
62
+ setReadonly(readonly: boolean): void;
63
+ /** Проверка, доступна ли форма для редактирования */
64
+ isReadonly(): boolean;
65
+ /** Изменить свойства существующей кнопки */
66
+ updateCommand(findCondition: (button: ButtonFacade) => boolean, command: Partial<ButtonFacade>): void;
67
+ /** Повторно инициализировать форму */
68
+ reinit(): void;
69
+ /** Сохранить форму */
70
+ save(): void;
71
+ /** Открыть конструктор формы */
72
+ openDesigner(): void;
73
+ /** Получить зоны */
74
+ getZones(): FormZones;
75
+ /** Подписаться на событие обновление значения поля формы */
76
+ onUpdated<V = string>(callback: (field: IFieldFacade, value: V) => void): void;
77
+ /** Закрыть форму */
78
+ close(): void;
79
+ /** Сообщить подписчикам формы о внесении изменений в данные
80
+ * Например, при вызове функции обновиться связанный список
81
+ */
82
+ notifyDataUpdated(): void;
83
+ /**
84
+ * Подписаться на обновление поля и выполнить запрос, проверку, настройку формы или другое действие
85
+ *
86
+ * **Примеры**
87
+ *
88
+ * Когда обновляется поле "Сотрудник", автоматически заполняется поле "Позиция":
89
+ * ```js
90
+ * form.onFieldsUpdated({
91
+ * // Поля при изменении которых будет выполнено действие
92
+ * fields: ["ID_Employee"],
93
+ * // Действие, бизнес логика или вызов хранимой процедуры
94
+ * execute: async () => {
95
+ * const idEmployee = form.value("ID_Employee");
96
+ * if (!idEmployee) return null;
97
+ * // Допустим fetchPositionByEmployee выполняет запрос к базе и возвращает id позиции у сотрудника
98
+ * const idPosition = await fetchPositionByEmployee(idEmployee);
99
+ * return idPosition;
100
+ * },
101
+ * // Функция, которая будет выполнена после выполнения `execute`
102
+ * onComplete: (idPosition) => {
103
+ * form.value("ID_Position", idPosition);
104
+ * },
105
+ * // Поля, которые будут недоступны для редактирования, пока выполняются execute и onComplete
106
+ * lock: ["ID_Position"]
107
+ * });
108
+ * ```
109
+ */
110
+ onFieldsUpdated<T = any>(options: OnFieldsUpdatedOptions<T>): void;
111
+ /**
112
+ * Состояние поля формы
113
+ *
114
+ * **Примеры**
115
+ *
116
+ * ```js
117
+ * form.getFieldState("ID_Employee").setFilter(Filter.eq("MDT_FlagActive", true);
118
+ * form.getFieldState("ID_Position").setReadonly(true);
119
+ * form.getFieldState("ID_EmployeeType").setVisible(false);
120
+ * ```
121
+ */
122
+ getFieldState(fieldCode: FieldCode): IFieldStateFacade | undefined;
123
+ }
124
+ export interface OnFieldsUpdatedOptions<T = any> {
125
+ /** Поля при изменении которых будет выполнено действие */
126
+ fields: FieldCode[];
127
+ /** Действие, бизнес логика или вызов хранимой процедуры */
128
+ execute: () => Promise<T> | T;
129
+ /** Функция, которая будет выполнена после выполнения `execute` */
130
+ onComplete: (value: T) => void;
131
+ /** Поля, которые будут недоступны для редактирования, пока выполняются execute и onComplete */
132
+ lock?: FieldCode[];
133
+ }
@@ -1,90 +1,90 @@
1
- import { MdtRecord, RecordId } from "../../../../common/Record";
2
- import { FormattedText } from "../../../../helpers/formattedText";
3
- import { AnyObject, MithrilControl, Valued, ViewControl } from "mdtScripts/helpers/types";
4
- import { Field } from "../../../../common/Field";
5
- import { IButton } from "../../../../views/form/controls/monacoEditor/jsonSchemas/Button.schema";
6
- import { IObjectFacade } from "../schema/IObjectFacade";
7
- import { IFormControlFacade } from "./IFormControlFacade";
8
- export declare type ActionButton = IButton & {
9
- /** Всплывающая подсказка */
10
- description?: Valued<FormattedText>;
11
- /** Подписка на событие нажатия на кнопку */
12
- execute?: () => void;
13
- /** Активность кнопки */
14
- enabled?: () => boolean;
15
- /** Видимость кнопки */
16
- visible?: () => boolean;
17
- /** CSS-класс кнопки */
18
- className?: string;
19
- };
20
- export interface ButtonFacade extends ActionButton {
21
- /** Дочерние элементы кнопки */
22
- items?: ButtonFacade[];
23
- }
24
- export interface IFormInitOptions {
25
- /** Уникальный код списка */
26
- code?: string;
27
- /** Настройки полей */
28
- fieldOptions?: {
29
- [fieldCode: string]: any;
30
- };
31
- }
32
- export interface IFormOptions {
33
- /** Код формы */
34
- code: string;
35
- /** Наименование формы */
36
- title?: string;
37
- /** Поля формы */
38
- fields?: ICustomField[];
39
- /** Настройки главной кнопки формы */
40
- primaryButton?: ButtonFacade;
41
- /** Подписаться на событие сохранения записи формы */
42
- onSave(record: Record<string, any>): any;
43
- /** Запись по умолчанию */
44
- defaultValues?: Partial<MdtRecord>;
45
- /** Описание лэйаута формы */
46
- layout?: CustomFormLayout;
47
- viewSettings?: FormViewSettings;
48
- }
49
- export interface FormViewSettings {
50
- hideSubTitle?: boolean;
51
- hideTitle?: boolean;
52
- }
53
- export interface IFormServiceFacade {
54
- /** Создать форму, привязанную объекту */
55
- create(tableCode: string, id?: RecordId, options?: any, extOptions?: any): IFormControlFacade;
56
- /** Создать кастомную форму */
57
- createCustom(options: IFormOptions): IFormControlFacade;
58
- /** Подписаться на событие инициализации формы */
59
- onInit(callback: (form: IFormControlFacade) => void): void;
60
- /** Подписаться на событие создания формы */
61
- onCreate(callback: (form: IFormControlFacade) => void): void;
62
- /** Подписаться на событие окончания создания формы */
63
- onCreated(callback: (form: IFormControlFacade) => void): void;
64
- /** Добавить настройки для полей формы */
65
- addFieldOptions(tableCode: string, options: IFormInitOptions): void;
66
- /** Зарегистрировать расширение формы
67
- * @param {string} alias - Имя свойства, которое можно использовать для установки опций экстендера
68
- */
69
- registerExtender<T>(extender: IFormExtenderFacade<T>, alias: string): void;
70
- /** Зарегистрировать новый контрол формы */
71
- registerControl<Options>(controlOptions: FormControlOptions<Options>): void;
72
- }
73
- export interface ICustomField extends Field {
74
- /** Опции контрола поля. Используются только в том случае, если не задан лэйаут для формы */
75
- options?: any;
76
- }
77
- declare type CustomFormLayout = any;
78
- export interface IFormExtenderFacade<T> extends Partial<ViewControl> {
79
- new (form: IFormControlFacade, options: any): T;
80
- }
81
- export interface FormControlOptions<Options = AnyObject> {
82
- code: string;
83
- title: string;
84
- enabled?: (object: IObjectFacade) => boolean;
85
- type: FormControlClass<Options>;
86
- }
87
- export interface FormControlClass<Options = AnyObject> {
88
- new (form: IFormControlFacade, options: Options): MithrilControl;
89
- }
90
- export {};
1
+ import { MdtRecord, RecordId } from "../../../../common/Record";
2
+ import { FormattedText } from "../../../../helpers/formattedText";
3
+ import { AnyObject, MithrilControl, Valued, ViewControl } from "mdtScripts/helpers/types";
4
+ import { Field } from "../../../../common/Field";
5
+ import { IButton } from "../../../../views/form/controls/monacoEditor/jsonSchemas/Button.schema";
6
+ import { IObjectFacade } from "../schema/IObjectFacade";
7
+ import { IFormControlFacade } from "./IFormControlFacade";
8
+ export declare type ActionButton = IButton & {
9
+ /** Всплывающая подсказка */
10
+ description?: Valued<FormattedText>;
11
+ /** Подписка на событие нажатия на кнопку */
12
+ execute?: () => void;
13
+ /** Активность кнопки */
14
+ enabled?: () => boolean;
15
+ /** Видимость кнопки */
16
+ visible?: () => boolean;
17
+ /** CSS-класс кнопки */
18
+ className?: string;
19
+ };
20
+ export interface ButtonFacade extends ActionButton {
21
+ /** Дочерние элементы кнопки */
22
+ items?: ButtonFacade[];
23
+ }
24
+ export interface IFormInitOptions {
25
+ /** Уникальный код списка */
26
+ code?: string;
27
+ /** Настройки полей */
28
+ fieldOptions?: {
29
+ [fieldCode: string]: any;
30
+ };
31
+ }
32
+ export interface IFormOptions {
33
+ /** Код формы */
34
+ code: string;
35
+ /** Наименование формы */
36
+ title?: string;
37
+ /** Поля формы */
38
+ fields?: ICustomField[];
39
+ /** Настройки главной кнопки формы */
40
+ primaryButton?: ButtonFacade;
41
+ /** Подписаться на событие сохранения записи формы */
42
+ onSave(record: Record<string, any>): any;
43
+ /** Запись по умолчанию */
44
+ defaultValues?: Partial<MdtRecord>;
45
+ /** Описание лэйаута формы */
46
+ layout?: CustomFormLayout;
47
+ viewSettings?: FormViewSettings;
48
+ }
49
+ export interface FormViewSettings {
50
+ hideSubTitle?: boolean;
51
+ hideTitle?: boolean;
52
+ }
53
+ export interface IFormServiceFacade {
54
+ /** Создать форму, привязанную объекту */
55
+ create(tableCode: string, id?: RecordId, options?: any, extOptions?: any): IFormControlFacade;
56
+ /** Создать кастомную форму */
57
+ createCustom(options: IFormOptions): IFormControlFacade;
58
+ /** Подписаться на событие инициализации формы */
59
+ onInit(callback: (form: IFormControlFacade) => void): void;
60
+ /** Подписаться на событие создания формы */
61
+ onCreate(callback: (form: IFormControlFacade) => void): void;
62
+ /** Подписаться на событие окончания создания формы */
63
+ onCreated(callback: (form: IFormControlFacade) => void): void;
64
+ /** Добавить настройки для полей формы */
65
+ addFieldOptions(tableCode: string, options: IFormInitOptions): void;
66
+ /** Зарегистрировать расширение формы
67
+ * @param {string} alias - Имя свойства, которое можно использовать для установки опций экстендера
68
+ */
69
+ registerExtender<T>(extender: IFormExtenderFacade<T>, alias: string): void;
70
+ /** Зарегистрировать новый контрол формы */
71
+ registerControl<Options>(controlOptions: FormControlOptions<Options>): void;
72
+ }
73
+ export interface ICustomField extends Field {
74
+ /** Опции контрола поля. Используются только в том случае, если не задан лэйаут для формы */
75
+ options?: any;
76
+ }
77
+ declare type CustomFormLayout = any;
78
+ export interface IFormExtenderFacade<T> extends Partial<ViewControl> {
79
+ new (form: IFormControlFacade, options: any): T;
80
+ }
81
+ export interface FormControlOptions<Options = AnyObject> {
82
+ code: string;
83
+ title: string;
84
+ enabled?: (object: IObjectFacade) => boolean;
85
+ type: FormControlClass<Options>;
86
+ }
87
+ export interface FormControlClass<Options = AnyObject> {
88
+ new (form: IFormControlFacade, options: Options): MithrilControl;
89
+ }
90
+ export {};