mdt-client 31.3.21 → 31.3.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +11 -10
- package/dist/index.js +16 -16
- package/package.json +29 -29
- package/readme.md +15 -15
- package/types/common/Datasource.d.ts +9 -9
- package/types/common/Field.d.ts +51 -51
- package/types/common/FieldSettings.schema.d.ts +8 -8
- package/types/common/MdtField.d.ts +9 -9
- package/types/common/MdtObject.d.ts +7 -7
- package/types/common/Record.d.ts +27 -27
- package/types/common/Table.d.ts +66 -66
- package/types/common/list/group/groupTypes.d.ts +30 -30
- package/types/common/list/hierarchy/hierarchyTypes.d.ts +48 -48
- package/types/common/serverMessage/ServerMessageTypes.d.ts +17 -17
- package/types/components/baseFormControls/input/inputOptions.d.ts +31 -30
- package/types/components/baseFormControls/maskedInput/MaskFormatter.types.d.ts +2 -2
- package/types/components/button/baseButton/buttonOptions.d.ts +12 -12
- package/types/components/buttonGroup/buttonGroupOptions.d.ts +7 -7
- package/types/components/dropdown/menu/item/dropdownInputItemOptions.d.ts +5 -5
- package/types/components/dropdown/menu/item/dropdownItemWrapOptions.d.ts +19 -19
- package/types/components/dropdown/menuActionItem/dropdownMenuItemOptions.d.ts +32 -32
- package/types/components/form/fieldView/fieldViewOptions.d.ts +13 -13
- package/types/components/form/header/types.d.ts +14 -0
- package/types/components/form/label/labelOptions.d.ts +22 -22
- package/types/components/icon/iconOptions.d.ts +22 -21
- package/types/components/iconButton/iconButtonOptions.d.ts +10 -9
- package/types/components/processPrincipalsList/ProcessPrincipalsListItem.d.ts +5 -5
- package/types/components/resizablePanels/panelTitle/panelTitleOptions.d.ts +16 -16
- package/types/components/resizablePanels/panelToolbar/panelToolbarOptions.d.ts +4 -4
- package/types/components/resizablePanels/resizablePanel/resizablePanelOptions.d.ts +24 -24
- package/types/components/resizablePanels/resizablePanelsOptions.d.ts +22 -22
- package/types/components/toggleablePanels/toggleablePanelsOptions.d.ts +40 -40
- package/types/data/active/ActivationListAdapterTypes.d.ts +6 -6
- package/types/data/periods/helpers/types.d.ts +4 -0
- package/types/datasources/FetchResult.d.ts +5 -5
- package/types/helpers/IUi.d.ts +2 -2
- package/types/helpers/deleteFromArray.d.ts +1 -1
- package/types/helpers/events/EventEmitter.d.ts +12 -12
- package/types/helpers/fireEvent.d.ts +4 -4
- package/types/helpers/formatOptions.d.ts +16 -14
- package/types/helpers/formattedText.d.ts +8 -8
- package/types/helpers/pipeline/ImmutableArgPipeline.d.ts +7 -7
- package/types/helpers/pipeline/Pipeline.d.ts +20 -20
- package/types/helpers/redraw.d.ts +16 -16
- package/types/helpers/types.d.ts +85 -84
- package/types/helpers/ui/elementModificators/focusableComponent.d.ts +15 -14
- package/types/helpers/ui/elementModificators/modificatorsTypes.d.ts +4 -4
- package/types/helpers/ui/keyboardUtils/getKeySymbol.d.ts +2 -2
- package/types/helpers/ui/keyboardUtils/keyboardUtils.d.ts +23 -23
- package/types/helpers/ui/keyboardUtils/osByUserAgent.d.ts +1 -1
- package/types/helpers/utils/classNames.d.ts +20 -20
- package/types/helpers/utils/keyStorage/KeyStorage.d.ts +6 -6
- package/types/helpers/utils/memoization/memoize.d.ts +18 -18
- package/types/helpers/utils/object.d.ts +4 -4
- package/types/helpers/utils/stringifyControlSize.d.ts +3 -3
- package/types/helpers/utils/valued/getValued.d.ts +18 -18
- package/types/helpers/zone/IZone.d.ts +8 -7
- package/types/security/PermissionLevel.d.ts +40 -40
- package/types/security/User.d.ts +19 -19
- package/types/services/HotkeyManager.d.ts +6 -6
- package/types/services/IFilter.d.ts +322 -322
- package/types/services/ModuleData.d.ts +9 -9
- package/types/services/api/ApiAccessor/apiV1Types.d.ts +266 -266
- package/types/services/api/ApiAccessor/apiV2Types.d.ts +583 -583
- package/types/services/api/ApiAccessor/binding/bindingApiTypes.d.ts +37 -37
- package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/count/count.d.ts +10 -10
- package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/query/exts/hierarchy/hierarchyQueryHelpersTypes.d.ts +28 -28
- package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/query/exts/placeIn/placeInQueryTypes.d.ts +9 -9
- package/types/services/api/ApiAccessorRequestAdapter/handlers/messageTypes.d.ts +37 -37
- package/types/services/api/ApiAccessorRequestAdapter/message/apiV2MessageTypes.d.ts +2 -2
- package/types/services/api/ApiRequestOptions.d.ts +43 -43
- package/types/services/api/BaseQuery.d.ts +23 -23
- package/types/services/api/Query.d.ts +59 -59
- package/types/services/api/QuerySorting.d.ts +18 -18
- package/types/services/api/ServerResonseType.d.ts +2 -2
- package/types/services/commands/Command.d.ts +22 -22
- package/types/services/commands/CommandGroup.d.ts +15 -15
- package/types/services/commands/CommandManager.d.ts +77 -77
- package/types/services/customModules/facades/Form/IFieldControlFacade.d.ts +26 -26
- package/types/services/customModules/facades/Form/IFieldControlManagerFacade.d.ts +36 -36
- package/types/services/customModules/facades/Form/IFieldStateFacade.d.ts +13 -13
- package/types/services/customModules/facades/Form/IFormControlFacade.d.ts +133 -133
- package/types/services/customModules/facades/Form/IFormFacade.d.ts +101 -101
- package/types/services/customModules/facades/Form/IFormLayout.d.ts +12 -0
- package/types/services/customModules/facades/IAppFacade.d.ts +38 -38
- package/types/services/customModules/facades/IAuthFacade.d.ts +9 -9
- package/types/services/customModules/facades/ILegacyFacade.d.ts +152 -151
- package/types/services/customModules/facades/IMdtFacade.d.ts +82 -81
- package/types/services/customModules/facades/IModuleRegistryFacade.d.ts +5 -5
- package/types/services/customModules/facades/IPageFacade.d.ts +7 -7
- package/types/services/customModules/facades/List/Column/IColumnFacade.d.ts +7 -7
- package/types/services/customModules/facades/List/IListCellFacade.d.ts +8 -8
- package/types/services/customModules/facades/List/IListComponentFacade.d.ts +10 -10
- package/types/services/customModules/facades/List/IListControlFacade.d.ts +88 -88
- package/types/services/customModules/facades/List/IListRowFacade.d.ts +2 -2
- package/types/services/customModules/facades/List/IListServiceFacade.d.ts +53 -53
- package/types/services/customModules/facades/components/CodeEditorFacade.d.ts +9 -9
- package/types/services/customModules/facades/components/ModalFacade.d.ts +4 -4
- package/types/services/customModules/facades/formDashboard/IFormDashboard.d.ts +20 -15
- package/types/services/customModules/facades/internalModules/importFormCtrl.types.d.ts +76 -76
- package/types/services/customModules/facades/internalModules/importModuleFacade.d.ts +48 -48
- package/types/services/customModules/facades/internalModules/modulesFacadeTypes.d.ts +11 -11
- package/types/services/customModules/facades/internalModules/statusFacade.d.ts +13 -13
- package/types/services/customModules/facades/record/IRecordFacade.d.ts +13 -13
- package/types/services/customModules/facades/record/IRecordManagerFacade.d.ts +5 -5
- package/types/services/customModules/facades/schema/IFieldFacade.d.ts +12 -11
- package/types/services/customModules/facades/schema/IObjectFacade.d.ts +15 -15
- package/types/services/customModules/facades/schema/ISchemaFacade.d.ts +11 -11
- package/types/services/customModules/facades/services/CommandManagerFacade.d.ts +11 -11
- package/types/services/customModules/facades/services/IListButtonExtendPipelineService.d.ts +13 -13
- package/types/services/customModules/facades/services/INavigationFacade.d.ts +87 -87
- package/types/services/customModules/facades/services/ISecurityFacade.d.ts +13 -13
- package/types/services/customModules/facades/utils/IApiFacade.d.ts +91 -91
- package/types/services/customModules/facades/utils/IUiComponentsFacade.d.ts +92 -85
- package/types/services/customModules/facades/utils/IUiFacade.d.ts +84 -83
- package/types/services/customModules/facades/utils/IUtilsFacade.d.ts +26 -26
- package/types/services/customModules/facades/utils/ImUtilsFacade.d.ts +26 -25
- package/types/services/dropdown/IDropDownMenu.d.ts +41 -40
- package/types/services/e2e/e2eServiceType.d.ts +11 -11
- package/types/views/controls/Control.d.ts +7 -7
- package/types/views/controls/panels/panelOptions.d.ts +15 -15
- package/types/views/form/controls/commonControl/ICommonControl.d.ts +29 -28
- package/types/views/form/controls/fileupload/FileInputFacade.types.d.ts +6 -6
- package/types/views/form/controls/monacoEditor/MonacoCodeOptions.schema.d.ts +23 -23
- package/types/views/form/controls/monacoEditor/jsonSchemas/Button.schema.d.ts +70 -70
- package/types/views/form/controls/picker/multiPickerFacade/IMultiPickerFacade.d.ts +36 -36
- package/types/views/form/controls/toggleablePanels/editor/toggleablePanelsEditorFacadeOptions.d.ts +21 -21
- package/types/views/form/formTypes.d.ts +4 -4
- package/types/views/form/schema/FormPageOptions.schema.d.ts +19 -19
- package/types/views/list/IListView.d.ts +71 -70
- package/types/views/list/schema/ListPageOptions.schema.d.ts +116 -116
- package/types/views/page/PageZoneTypes.d.ts +1 -1
- package/types/views/page/charts/ChartControlOptions.schema.d.ts +617 -617
- package/types/views/page/charts/facade/IChartControlFacade.d.ts +25 -0
- package/types/views/page/charts/facade/I/320/241hartControlFacade.d.ts +24 -24
- package/types/views/page/charts/reportDashboard/config/chartConfig.d.ts +31 -0
- package/types/views/page/charts/reportDashboard/config/filterConfig.d.ts +52 -0
- package/types/views/page/charts/reportDashboard/config/listConfig.d.ts +9 -0
- package/types/views/page/charts/reportDashboard/config/reportDashboardConfig.d.ts +45 -0
- package/types/views/page/charts/reportDashboard/controls/dynamicChart/dynamicChartControlPublicOptions.d.ts +3 -0
- package/types/views/page/charts/reportDashboard/index.d.ts +5 -0
- package/types/views/page/charts/reportDashboard/utils/formJsonVarParser.d.ts +13 -0
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
import { Icon } from "../../components/icon/iconOptions";
|
|
2
|
-
import { FormattedText } from "../../helpers/formattedText";
|
|
3
|
-
import { AnyObject, CommandEvent, Valued } from "../../helpers/types";
|
|
4
|
-
import { IFormControlFacade } from "../customModules/facades/Form/IFormControlFacade";
|
|
5
|
-
import { IListControlFacade } from "../customModules/facades/List/IListControlFacade";
|
|
6
|
-
import { Command } from "./Command";
|
|
7
|
-
import { CommandGroup } from "./CommandGroup";
|
|
8
|
-
export interface CommandGroupProps {
|
|
9
|
-
/** Уникальный код группы команд */
|
|
10
|
-
code: string;
|
|
11
|
-
/** Наименование группы команд */
|
|
12
|
-
title: string;
|
|
13
|
-
/** Описание группы команд */
|
|
14
|
-
description?: string;
|
|
15
|
-
/** Иконка группы команд */
|
|
16
|
-
icon?: Icon;
|
|
17
|
-
}
|
|
18
|
-
export declare type Hotkey = string;
|
|
19
|
-
export interface CommandProps {
|
|
20
|
-
/** Уникальный код команды */
|
|
21
|
-
code: string;
|
|
22
|
-
/** Наименование команды */
|
|
23
|
-
title: string;
|
|
24
|
-
/** Описание команды */
|
|
25
|
-
description?: Valued<FormattedText>;
|
|
26
|
-
/** Иконка команды */
|
|
27
|
-
icon?: Valued<Icon>;
|
|
28
|
-
/**
|
|
29
|
-
* Горячие клавиши для вызова команды.
|
|
30
|
-
*
|
|
31
|
-
* Комбинаций клавиш для команды может быть несколько.
|
|
32
|
-
*
|
|
33
|
-
* Комбинация клавиш задается строкой и указывается в следующем порядке `Ctrl/Cmd + Alt + Shift + Любая другая клавиша`.
|
|
34
|
-
*
|
|
35
|
-
* Клавиши разделяются двумя пробелами и символом "+" между ними.
|
|
36
|
-
*
|
|
37
|
-
* Например `Alt + Shift + Y`.
|
|
38
|
-
*/
|
|
39
|
-
hotkeys?: Hotkey[];
|
|
40
|
-
/** Группа которой принадлежит команда */
|
|
41
|
-
group?: CommandGroupProps;
|
|
42
|
-
}
|
|
43
|
-
export interface CommandBase<Context = AnyObject> extends CommandProps {
|
|
44
|
-
/** Функция которая будет вызвана при выполнении команды */
|
|
45
|
-
execute: (context: Context) => void;
|
|
46
|
-
/** Условие активности команды */
|
|
47
|
-
enabled?: (context: Context) => boolean;
|
|
48
|
-
/** Условие видимости команды в быстрых командах */
|
|
49
|
-
visible?: (context: Context) => boolean;
|
|
50
|
-
}
|
|
51
|
-
export declare type HotkeyCommands = {
|
|
52
|
-
[hotkey: string]: () => void;
|
|
53
|
-
};
|
|
54
|
-
export interface CommandManagerContext {
|
|
55
|
-
list?: IListControlFacade;
|
|
56
|
-
form?: IFormControlFacade;
|
|
57
|
-
[contextProp: string]: any;
|
|
58
|
-
}
|
|
59
|
-
export declare class CommandManagerClass<Context> {
|
|
60
|
-
private groups;
|
|
61
|
-
private commands;
|
|
62
|
-
private hotkeyCommands;
|
|
63
|
-
private context;
|
|
64
|
-
addGroup(group: CommandGroupProps, commands?: CommandBase<Context>[]): CommandGroup<Context>;
|
|
65
|
-
addCommands(commands: CommandBase<Context>[], groupCode?: string): void;
|
|
66
|
-
getCommand(code: string): Command<Context>;
|
|
67
|
-
getCommandList(): Command<Context>[];
|
|
68
|
-
execByEvent(event: CommandEvent): void;
|
|
69
|
-
setContext(key: keyof Context, value: Context[keyof Context]): void;
|
|
70
|
-
removeContext(key: keyof Context): void;
|
|
71
|
-
private createGroup;
|
|
72
|
-
private validateGroup;
|
|
73
|
-
private findGroup;
|
|
74
|
-
private validateCommand;
|
|
75
|
-
private pushCommands;
|
|
76
|
-
}
|
|
77
|
-
export declare const CommandManager: CommandManagerClass<CommandManagerContext>;
|
|
1
|
+
import { Icon } from "../../components/icon/iconOptions";
|
|
2
|
+
import { FormattedText } from "../../helpers/formattedText";
|
|
3
|
+
import { AnyObject, CommandEvent, Valued } from "../../helpers/types";
|
|
4
|
+
import { IFormControlFacade } from "../customModules/facades/Form/IFormControlFacade";
|
|
5
|
+
import { IListControlFacade } from "../customModules/facades/List/IListControlFacade";
|
|
6
|
+
import { Command } from "./Command";
|
|
7
|
+
import { CommandGroup } from "./CommandGroup";
|
|
8
|
+
export interface CommandGroupProps {
|
|
9
|
+
/** Уникальный код группы команд */
|
|
10
|
+
code: string;
|
|
11
|
+
/** Наименование группы команд */
|
|
12
|
+
title: string;
|
|
13
|
+
/** Описание группы команд */
|
|
14
|
+
description?: string;
|
|
15
|
+
/** Иконка группы команд */
|
|
16
|
+
icon?: Icon;
|
|
17
|
+
}
|
|
18
|
+
export declare type Hotkey = string;
|
|
19
|
+
export interface CommandProps {
|
|
20
|
+
/** Уникальный код команды */
|
|
21
|
+
code: string;
|
|
22
|
+
/** Наименование команды */
|
|
23
|
+
title: string;
|
|
24
|
+
/** Описание команды */
|
|
25
|
+
description?: Valued<FormattedText>;
|
|
26
|
+
/** Иконка команды */
|
|
27
|
+
icon?: Valued<Icon>;
|
|
28
|
+
/**
|
|
29
|
+
* Горячие клавиши для вызова команды.
|
|
30
|
+
*
|
|
31
|
+
* Комбинаций клавиш для команды может быть несколько.
|
|
32
|
+
*
|
|
33
|
+
* Комбинация клавиш задается строкой и указывается в следующем порядке `Ctrl/Cmd + Alt + Shift + Любая другая клавиша`.
|
|
34
|
+
*
|
|
35
|
+
* Клавиши разделяются двумя пробелами и символом "+" между ними.
|
|
36
|
+
*
|
|
37
|
+
* Например `Alt + Shift + Y`.
|
|
38
|
+
*/
|
|
39
|
+
hotkeys?: Hotkey[];
|
|
40
|
+
/** Группа которой принадлежит команда */
|
|
41
|
+
group?: CommandGroupProps;
|
|
42
|
+
}
|
|
43
|
+
export interface CommandBase<Context = AnyObject> extends CommandProps {
|
|
44
|
+
/** Функция которая будет вызвана при выполнении команды */
|
|
45
|
+
execute: (context: Context) => void;
|
|
46
|
+
/** Условие активности команды */
|
|
47
|
+
enabled?: (context: Context) => boolean;
|
|
48
|
+
/** Условие видимости команды в быстрых командах */
|
|
49
|
+
visible?: (context: Context) => boolean;
|
|
50
|
+
}
|
|
51
|
+
export declare type HotkeyCommands = {
|
|
52
|
+
[hotkey: string]: () => void;
|
|
53
|
+
};
|
|
54
|
+
export interface CommandManagerContext {
|
|
55
|
+
list?: IListControlFacade;
|
|
56
|
+
form?: IFormControlFacade;
|
|
57
|
+
[contextProp: string]: any;
|
|
58
|
+
}
|
|
59
|
+
export declare class CommandManagerClass<Context> {
|
|
60
|
+
private groups;
|
|
61
|
+
private commands;
|
|
62
|
+
private hotkeyCommands;
|
|
63
|
+
private context;
|
|
64
|
+
addGroup(group: CommandGroupProps, commands?: CommandBase<Context>[]): CommandGroup<Context>;
|
|
65
|
+
addCommands(commands: CommandBase<Context>[], groupCode?: string): void;
|
|
66
|
+
getCommand(code: string): Command<Context>;
|
|
67
|
+
getCommandList(): Command<Context>[];
|
|
68
|
+
execByEvent(event: CommandEvent): void;
|
|
69
|
+
setContext(key: keyof Context, value: Context[keyof Context]): void;
|
|
70
|
+
removeContext(key: keyof Context): void;
|
|
71
|
+
private createGroup;
|
|
72
|
+
private validateGroup;
|
|
73
|
+
private findGroup;
|
|
74
|
+
private validateCommand;
|
|
75
|
+
private pushCommands;
|
|
76
|
+
}
|
|
77
|
+
export declare const CommandManager: CommandManagerClass<CommandManagerContext>;
|
|
@@ -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
|
+
}
|