mdt-client 1.2.0 → 28.20.0
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/tsconfig.tsbuildinfo +325 -23
- package/package.json +1 -1
- package/types/common/list/group/groupTypes.d.ts +26 -0
- package/types/common/list/hierarchy/hierarchyTypes.d.ts +39 -0
- package/types/components/baseFormControls/input/inputOptions.d.ts +26 -0
- package/types/components/button/baseButton/buttonOptions.d.ts +12 -0
- package/types/components/buttonGroup/buttonGroupOptions.d.ts +7 -0
- package/types/components/form/label/labelOptions.d.ts +18 -0
- package/types/components/iconButton/iconButtonOptions.d.ts +7 -0
- package/types/components/resizablePanels/panelTitle/panelTitleOptions.d.ts +11 -0
- package/types/components/resizablePanels/panelToolbar/panelToolbarOptions.d.ts +4 -0
- package/types/components/resizablePanels/resizablePanel/resizablePanelOptions.d.ts +20 -0
- package/types/components/resizablePanels/resizablePanelsOptions.d.ts +22 -0
- package/types/components/toggleablePanels/toggleablePanelsOptions.d.ts +36 -0
- package/types/data/active/ActivationListAdapterTypes.d.ts +6 -0
- package/types/helpers/IUi.d.ts +1 -0
- package/types/helpers/deleteFromArray.d.ts +1 -0
- package/types/helpers/events/EventEmitter.d.ts +7 -0
- package/types/helpers/fireEvent.d.ts +4 -0
- package/types/helpers/pipeline/Pipeline.d.ts +19 -0
- package/types/helpers/redraw.d.ts +16 -0
- package/types/helpers/ui/keyboardUtils/keyboardUtils.d.ts +3 -3
- package/types/helpers/utils/keyStorage/KeyStorage.d.ts +6 -0
- package/types/security/User.d.ts +29 -0
- package/types/services/api/QuerySorting.d.ts +8 -0
- package/types/services/customModules/facades/Form/IFormFacade.d.ts +13 -1
- package/types/services/customModules/facades/List/IListControlFacade.d.ts +4 -3
- package/types/services/customModules/facades/List/IListServiceFacade.d.ts +16 -0
- package/types/services/customModules/facades/components/CodeEditorFacade.d.ts +9 -0
- package/types/services/customModules/facades/services/IJobService.d.ts +13 -0
- package/types/services/customModules/facades/services/IListButtonExtendPipelineService.d.ts +13 -0
- package/types/services/customModules/facades/utils/IUiComponentsFacade.d.ts +5 -1
- package/types/services/customModules/facades/utils/IUiFacade.d.ts +2 -1
- package/types/services/customModules/facades/utils/IUtilsFacade.d.ts +2 -0
- package/types/views/form/controls/monacoEditor/MonacoCodeOptions.schema.d.ts +21 -0
- package/types/views/form/controls/toggleablePanels/editor/toggleablePanelsEditorFacadeOptions.d.ts +15 -0
- package/types/views/form/schema/FormPageOptions.schema.d.ts +17 -0
- package/types/views/list/schema/ListPageOptions.schema.d.ts +16 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FieldPath } from "../../../helpers/types";
|
|
2
|
+
import { QuerySortingObject } from "../../../services//api/QuerySorting";
|
|
3
|
+
export declare namespace Grouping {
|
|
4
|
+
interface Group {
|
|
5
|
+
groups?: GroupItem[];
|
|
6
|
+
allParents?: boolean;
|
|
7
|
+
orphans?: boolean;
|
|
8
|
+
toggledValues?: string[][];
|
|
9
|
+
}
|
|
10
|
+
interface GroupItem {
|
|
11
|
+
fieldPath: FieldPath;
|
|
12
|
+
collapsed?: boolean;
|
|
13
|
+
select?: FieldPath[];
|
|
14
|
+
sorting?: QuerySortingObject[];
|
|
15
|
+
label?: GroupLabel | false;
|
|
16
|
+
toggledValues?: any[];
|
|
17
|
+
withEmpty?: boolean;
|
|
18
|
+
sortDesc?: boolean;
|
|
19
|
+
}
|
|
20
|
+
type GroupLabel = {
|
|
21
|
+
title?: string;
|
|
22
|
+
icon?: string;
|
|
23
|
+
color?: string;
|
|
24
|
+
textColor?: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Table } from "../../../common/Table";
|
|
2
|
+
import { FieldCode } from "../../../helpers/types";
|
|
3
|
+
import { IFilter } from "../../../services/IFilter";
|
|
4
|
+
export declare type HierarchyMode = "" | "-" | "+" | "#";
|
|
5
|
+
export interface HierarchyQuery {
|
|
6
|
+
/** Поле с ID родительской записи */
|
|
7
|
+
parentField?: FieldCode;
|
|
8
|
+
/** Поле ID записи */
|
|
9
|
+
primaryField?: FieldCode;
|
|
10
|
+
/**
|
|
11
|
+
* Режим фильтрации иерархии.
|
|
12
|
+
* "-" - Отображать всех родителей отфильтрованной записи,
|
|
13
|
+
* "+" - Отображать все дочерние записи отфильтрованной записи,
|
|
14
|
+
* "#" - Оторбражать все родительские и дочерние записи
|
|
15
|
+
*/
|
|
16
|
+
mode?: HierarchyMode;
|
|
17
|
+
/** Фильтр для дочерних и родительских записей, не попадающих под критерии основной фильтрации списка */
|
|
18
|
+
filter?: IFilter;
|
|
19
|
+
table?: Table;
|
|
20
|
+
}
|
|
21
|
+
export interface HierarchyListExtenderPublicOptions extends Exclude<HierarchyQuery, "table"> {
|
|
22
|
+
/**
|
|
23
|
+
* Ключи наборов фильтров, при которых фильтрация считается наложенной. Используется для отображения кнопок режима фильтрации.
|
|
24
|
+
* Например: "default", "extended"
|
|
25
|
+
*/
|
|
26
|
+
defaultFilterKeys?: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Изменение иерархии с помощью перетаскивания
|
|
29
|
+
*/
|
|
30
|
+
dragDropEnabled?: boolean;
|
|
31
|
+
/** Расширение кнопки типа иерархии
|
|
32
|
+
* @ignore
|
|
33
|
+
*/
|
|
34
|
+
buttonExtend?: any;
|
|
35
|
+
/**
|
|
36
|
+
* Уровень до которого будут раскрыты узлы
|
|
37
|
+
*/
|
|
38
|
+
expandedLevel?: number;
|
|
39
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/// <reference types="../../../../mithril" />
|
|
2
|
+
/// <reference types="mithril" />
|
|
3
|
+
import { CSSClassName } from "../../../helpers/types";
|
|
4
|
+
import { KeyboardActions } from "../../../helpers/ui/elementModificators/focusableComponent";
|
|
5
|
+
import { ComponentSize } from "../../../helpers/utils/stringifyControlSize";
|
|
6
|
+
export interface InputOptions {
|
|
7
|
+
id?: string;
|
|
8
|
+
value?: string | number;
|
|
9
|
+
type?: string;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
autofocus?: boolean;
|
|
12
|
+
autocomplete?: "on" | "off";
|
|
13
|
+
min?: number;
|
|
14
|
+
max?: number;
|
|
15
|
+
size?: ComponentSize;
|
|
16
|
+
readonly?: boolean;
|
|
17
|
+
hasError?: boolean;
|
|
18
|
+
keyboardActions?: KeyboardActions;
|
|
19
|
+
className?: CSSClassName;
|
|
20
|
+
onCreated?: (el: HTMLInputElement) => void;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @deprecated
|
|
24
|
+
*/
|
|
25
|
+
attrs?: _mithril.MithrilAttributes;
|
|
26
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ViewElement } from "mdtScripts/helpers/types";
|
|
2
|
+
import { ComponentSize } from "mdtScripts/helpers/utils/stringifyControlSize";
|
|
3
|
+
export interface ButtonOptions {
|
|
4
|
+
title?: string;
|
|
5
|
+
command?: () => void;
|
|
6
|
+
className?: string;
|
|
7
|
+
tooltip?: string;
|
|
8
|
+
enabled?: boolean;
|
|
9
|
+
icon?: string;
|
|
10
|
+
endElement?: ViewElement;
|
|
11
|
+
size?: ComponentSize;
|
|
12
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IconButtonOptions } from "mdtScripts/components/iconButton/iconButtonOptions";
|
|
2
|
+
import { CSSClassName } from "mdtScripts/helpers/types";
|
|
3
|
+
export interface LabelIconButton {
|
|
4
|
+
name: string;
|
|
5
|
+
options: IconButtonOptions;
|
|
6
|
+
}
|
|
7
|
+
export interface LabelOptions {
|
|
8
|
+
title: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
error?: string;
|
|
12
|
+
iconButtons?: LabelIconButton[];
|
|
13
|
+
}
|
|
14
|
+
export interface LabelViewOptions extends LabelOptions {
|
|
15
|
+
for?: string;
|
|
16
|
+
onClick?: () => void;
|
|
17
|
+
className?: CSSClassName;
|
|
18
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UiType } from "../../helpers/IUi";
|
|
2
|
+
import { CommandEvent } from "../../helpers/types";
|
|
3
|
+
import { IconOptions } from "../icon/iconOptions";
|
|
4
|
+
export interface IconButtonOptions extends IconOptions {
|
|
5
|
+
command?: (e: CommandEvent) => void;
|
|
6
|
+
type?: UiType;
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ViewElement } from "mdtScripts/helpers/types";
|
|
2
|
+
export declare type PanelTitleTextContent = string;
|
|
3
|
+
export interface PanelTitleOptions {
|
|
4
|
+
text: PanelTitleTextContent;
|
|
5
|
+
endZone?: PanelTitleEndZone;
|
|
6
|
+
className?: string;
|
|
7
|
+
wrapperClassName?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface PanelTitleEndZone {
|
|
10
|
+
view: () => ViewElement;
|
|
11
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ViewElement } from "mdtScripts/helpers/types";
|
|
2
|
+
import { PanelToolbarOptions } from "../panelToolbar/panelToolbarOptions";
|
|
3
|
+
import { PanelTitleOptions } from "../panelTitle/panelTitleOptions";
|
|
4
|
+
export interface ResizablePanelOptions {
|
|
5
|
+
content: ResizablePanelContent;
|
|
6
|
+
onCreated?: (el: HTMLElement) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare type OnPanelResize = () => void;
|
|
9
|
+
export interface ResizablePanelContent {
|
|
10
|
+
view: () => ViewElement;
|
|
11
|
+
onResize?: OnPanelResize;
|
|
12
|
+
title?: ResizablePanelTitleOptions;
|
|
13
|
+
toolbar?: PanelToolbarOptions;
|
|
14
|
+
topZone?: PanelTopZone;
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PanelTopZone {
|
|
18
|
+
view: () => ViewElement;
|
|
19
|
+
}
|
|
20
|
+
export declare type ResizablePanelTitleOptions = PanelTitleOptions;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { MithrilVirtualElementKey } from "../../helpers/types";
|
|
2
|
+
import { ResizablePanelContent } from "./resizablePanel/resizablePanelOptions";
|
|
3
|
+
export declare type PanelsDirection = "row" | "column";
|
|
4
|
+
export declare type PanelSizeFactor = number;
|
|
5
|
+
export interface PanelWithSizeFactor {
|
|
6
|
+
/**
|
|
7
|
+
* Размер панели в долях. Все панели по-умолчанию имеют размер 1. Если, например, задать 2, то панель будет больше остальных в два раза.
|
|
8
|
+
* @default 1
|
|
9
|
+
*/
|
|
10
|
+
size?: PanelSizeFactor;
|
|
11
|
+
}
|
|
12
|
+
export interface ResizablePanelsItemContent extends ResizablePanelContent, PanelWithSizeFactor {
|
|
13
|
+
}
|
|
14
|
+
export interface ResizablePanelsContentItem extends ResizablePanelsItemContent {
|
|
15
|
+
key: MithrilVirtualElementKey;
|
|
16
|
+
}
|
|
17
|
+
export interface ResizablePanelsOptions {
|
|
18
|
+
direction: PanelsDirection;
|
|
19
|
+
content: ResizablePanelsContentItem[];
|
|
20
|
+
resizerSize?: number;
|
|
21
|
+
highlightFocusedPanel?: boolean;
|
|
22
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ViewElement } from "mdtScripts/helpers/types";
|
|
2
|
+
import { PanelTitleOptions } from "../resizablePanels/panelTitle/panelTitleOptions";
|
|
3
|
+
import { ResizablePanelContent } from "../resizablePanels/resizablePanel/resizablePanelOptions";
|
|
4
|
+
export interface ToggleablePanel {
|
|
5
|
+
title: PanelTitleOptions;
|
|
6
|
+
content: ResizablePanelContent;
|
|
7
|
+
isShown: boolean;
|
|
8
|
+
onToggle?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export interface ToggleablePanelsToolbarOptions {
|
|
11
|
+
className?: string;
|
|
12
|
+
leftZone?: ToolbarZone;
|
|
13
|
+
rightZone?: ToolbarZone;
|
|
14
|
+
}
|
|
15
|
+
interface ToolbarZone {
|
|
16
|
+
view: () => ViewElement;
|
|
17
|
+
}
|
|
18
|
+
export declare type ToggleablePanelsRowDirection = "vertical" | "horizontal";
|
|
19
|
+
export interface ToggleableRotatablePanelsOptions {
|
|
20
|
+
/**
|
|
21
|
+
* @default "horizontal"
|
|
22
|
+
*/
|
|
23
|
+
rowDirection?: ToggleablePanelsRowDirection;
|
|
24
|
+
}
|
|
25
|
+
export interface ToggleablePanelsOptions extends ToggleableRotatablePanelsOptions {
|
|
26
|
+
highlightFocusedPanel?: boolean;
|
|
27
|
+
panels: PanelsGrid<ToggleablePanel>;
|
|
28
|
+
toolbar?: ToggleablePanelsToolbarOptions;
|
|
29
|
+
resizerSize?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface PanelsGrid<T> {
|
|
32
|
+
rows: {
|
|
33
|
+
cols: T[];
|
|
34
|
+
}[];
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare type UiType = "success" | "danger" | "warning" | "info" | "primary" | "fatal";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function deleteFromArray<T = any>(array: T[], item: T): void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AnyObject } from "../types";
|
|
2
|
+
export declare class EventEmitter<E = Record<string, AnyObject>> {
|
|
3
|
+
private events;
|
|
4
|
+
subscribe<T extends keyof E>(code: T, listener: (args: E[T]) => void): () => void;
|
|
5
|
+
unsubscribe<T extends keyof E>(code: T, listener: (args: E[T]) => void): void;
|
|
6
|
+
emit<T extends keyof E>(code: T, args?: E[T]): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AnyError } from "../types";
|
|
2
|
+
declare type Next<D> = (args?: D) => void;
|
|
3
|
+
declare type Middleware<D> = (args: D, next: Next<D>) => void;
|
|
4
|
+
export declare class Pipeline<D = any> {
|
|
5
|
+
private middlewaresStorage;
|
|
6
|
+
constructor(middlewares?: Middleware<D>[]);
|
|
7
|
+
push(middleware: Middleware<D>): () => void;
|
|
8
|
+
remove(middleware: Middleware<D>): void;
|
|
9
|
+
execute(args: D, onComplete: (args: D) => void, onError?: (e: AnyError) => void): void;
|
|
10
|
+
}
|
|
11
|
+
declare type MiddlewareOrSyncPipeline<D> = (args: D) => D;
|
|
12
|
+
export declare class PipelineSync<D = any> {
|
|
13
|
+
private middlewaresStorage;
|
|
14
|
+
constructor(middlewares?: MiddlewareOrSyncPipeline<D>[]);
|
|
15
|
+
push(middleware: MiddlewareOrSyncPipeline<D>): () => void;
|
|
16
|
+
remove(middleware: MiddlewareOrSyncPipeline<D>): void;
|
|
17
|
+
execute(args: D): D;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare type RedrawEventHandler = () => void;
|
|
2
|
+
export interface RedrawFn {
|
|
3
|
+
(x?: any): void;
|
|
4
|
+
events: {
|
|
5
|
+
after?: RedrawEventHandler[];
|
|
6
|
+
before?: RedrawEventHandler[];
|
|
7
|
+
beforeOnce: RedrawEventHandler[];
|
|
8
|
+
afterOnce: RedrawEventHandler[];
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export declare const uiRedraw: {
|
|
12
|
+
redrawing: boolean;
|
|
13
|
+
animating: boolean;
|
|
14
|
+
redraw: RedrawFn;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -5,10 +5,10 @@ interface EventModifierKeys {
|
|
|
5
5
|
alt: boolean;
|
|
6
6
|
ctrl: boolean;
|
|
7
7
|
}
|
|
8
|
-
declare type
|
|
9
|
-
export declare function checkKeydownModifiers(e: KeyboardEvent, pressedModifierKeys?:
|
|
8
|
+
export declare type EventModifierKey = keyof EventModifierKeys;
|
|
9
|
+
export declare function checkKeydownModifiers(e: KeyboardEvent, pressedModifierKeys?: EventModifierKey[]): boolean;
|
|
10
10
|
interface KeydownEventKeyCheckingOptions {
|
|
11
|
-
requiredModifiers?:
|
|
11
|
+
requiredModifiers?: EventModifierKey[];
|
|
12
12
|
/** @default true */
|
|
13
13
|
checkModifiers?: boolean;
|
|
14
14
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { PermissionLevel } from "./PermissionLevel";
|
|
2
|
+
export interface User {
|
|
3
|
+
$id: number;
|
|
4
|
+
id: any;
|
|
5
|
+
permissions: {
|
|
6
|
+
object: {
|
|
7
|
+
[objectId: number]: {
|
|
8
|
+
level: PermissionLevel;
|
|
9
|
+
fields?: {
|
|
10
|
+
[fieldId: number]: {
|
|
11
|
+
level: PermissionLevel;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
listview: PermissionLevel;
|
|
17
|
+
namedfilters: PermissionLevel;
|
|
18
|
+
};
|
|
19
|
+
login: string;
|
|
20
|
+
fullName: string;
|
|
21
|
+
email?: string;
|
|
22
|
+
identityName: string;
|
|
23
|
+
isAdmin: boolean;
|
|
24
|
+
isAnonymous: boolean;
|
|
25
|
+
roles: string[];
|
|
26
|
+
languageId: number;
|
|
27
|
+
languageCode: string;
|
|
28
|
+
isImpersonated: boolean;
|
|
29
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { MdtRecord } from "mdtScripts/common/Record";
|
|
2
2
|
import { FormattedText } from "mdtScripts/helpers/formattedText";
|
|
3
|
-
import { Valued } from "mdtScripts/helpers/types";
|
|
3
|
+
import { AnyObject, MithrilControl, Valued } from "mdtScripts/helpers/types";
|
|
4
4
|
import { Field } from "../../../../common/Field";
|
|
5
5
|
import { IButton } from "../../../../views/form/controls/monacoEditor/jsonSchemas/Button.schema";
|
|
6
|
+
import { IObjectFacade } from "../schema/IObjectFacade";
|
|
6
7
|
import { RecordId } from "../utils/IApiFacade";
|
|
7
8
|
import { IFormControlFacade } from "./IFormControlFacade";
|
|
8
9
|
export declare type ActionButton = IButton & {
|
|
@@ -60,6 +61,8 @@ export interface IFormServiceFacade {
|
|
|
60
61
|
* @param {string} alias - Имя свойства, которое можно использовать для установки опций экстендера
|
|
61
62
|
*/
|
|
62
63
|
registerExtender<T>(extender: IFormExtenderFacade<T>, alias: string): void;
|
|
64
|
+
/** Зарегистрировать новый контрол формы */
|
|
65
|
+
registerControl<Options>(controlOptions: FormControlOptions<Options>): void;
|
|
63
66
|
}
|
|
64
67
|
export interface ICustomField extends Field {
|
|
65
68
|
/** Опции контрола поля */
|
|
@@ -68,3 +71,12 @@ export interface ICustomField extends Field {
|
|
|
68
71
|
export interface IFormExtenderFacade<T> {
|
|
69
72
|
new (form: IFormControlFacade, options: any): T;
|
|
70
73
|
}
|
|
74
|
+
export interface FormControlOptions<Options = AnyObject> {
|
|
75
|
+
code: string;
|
|
76
|
+
title: string;
|
|
77
|
+
enabled?: (object: IObjectFacade) => boolean;
|
|
78
|
+
type: FormControlClass<Options>;
|
|
79
|
+
}
|
|
80
|
+
export interface FormControlClass<Options = AnyObject> {
|
|
81
|
+
new (form: IFormControlFacade, options: Options): MithrilControl;
|
|
82
|
+
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="../../../../mithril" />
|
|
2
|
-
/// <reference types="mithril" />
|
|
3
1
|
import { FilterSetterOptions, IFilter } from "../../../../services/IFilter";
|
|
4
2
|
import { ButtonFacade } from "../Form/IFormFacade";
|
|
5
3
|
import { ParentCtrl } from "../utils/IUiFacade";
|
|
@@ -7,6 +5,7 @@ import { IListRowFacade } from "./IListRowFacade";
|
|
|
7
5
|
import { IListCellFacade } from "./IListCellFacade";
|
|
8
6
|
import { IObjectFacade } from "../schema/IObjectFacade";
|
|
9
7
|
import { ListPageOptions } from "../../../../views/list/schema/ListPageOptions.schema";
|
|
8
|
+
import { ViewElement } from "mdtScripts/helpers/types";
|
|
10
9
|
export interface IListControlFacadeContstructor {
|
|
11
10
|
new (listCtrl: any): IListControlFacade;
|
|
12
11
|
}
|
|
@@ -24,7 +23,7 @@ export interface IListControlFacade extends ParentCtrl {
|
|
|
24
23
|
/** Установить фильтр на список */
|
|
25
24
|
setFilter(filter: IFilter | null, options?: FilterSetterOptions, key?: string): void;
|
|
26
25
|
/** Обновить данные списка */
|
|
27
|
-
refresh():
|
|
26
|
+
refresh(): PromiseLike<unknown>;
|
|
28
27
|
/** Изменить отображение строк списка */
|
|
29
28
|
addTransformerForRow(callback: (row: IListRowFacade) => void): void;
|
|
30
29
|
/** Изменить отображение ячеек списка */
|
|
@@ -41,4 +40,6 @@ export interface IListControlFacade extends ParentCtrl {
|
|
|
41
40
|
removeSelectedRows(): void;
|
|
42
41
|
/** Открыть конструктор списка */
|
|
43
42
|
openDesigner(): void;
|
|
43
|
+
/** Получить виртуальный элемент списка */
|
|
44
|
+
getViewElement(): ViewElement;
|
|
44
45
|
}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { Field } from "mdtScripts/common/Field";
|
|
2
|
+
import { MdtRecord } from "mdtScripts/common/Record";
|
|
3
|
+
import { ObjectCode } from "mdtScripts/helpers/types";
|
|
1
4
|
import { IListControlFacade } from "./IListControlFacade";
|
|
2
5
|
export interface IListInitOptions {
|
|
3
6
|
/** Уникальный код списка */
|
|
@@ -20,7 +23,20 @@ export interface IListServiceFacade {
|
|
|
20
23
|
* @param {string} alias - Имя свойства, которое можно использовать для установки опций экстендера в extConfig или extOptions списка
|
|
21
24
|
*/
|
|
22
25
|
registerExtender<T>(extender: IListExtenderFacade<T>, alias: string): void;
|
|
26
|
+
createCustom(options: CustomListOptions): IListControlFacade;
|
|
23
27
|
}
|
|
24
28
|
export interface IListExtenderFacade<T> {
|
|
25
29
|
new (list: IListControlFacade, options: any): T;
|
|
26
30
|
}
|
|
31
|
+
export interface CustomListOptions<R = MdtRecord> {
|
|
32
|
+
/** Код объекта списка */
|
|
33
|
+
code: ObjectCode;
|
|
34
|
+
/** Поля списка */
|
|
35
|
+
fields: Field[];
|
|
36
|
+
/** Записи списка */
|
|
37
|
+
records: R[];
|
|
38
|
+
/** Опции списка */
|
|
39
|
+
listOptions?: any;
|
|
40
|
+
/** Настройки расширений списка */
|
|
41
|
+
extConfig?: any;
|
|
42
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ViewControl } from "../../../../helpers/types";
|
|
2
|
+
import { MonacoCodeOptions } from "../../../../views/form/controls/monacoEditor/MonacoCodeOptions.schema";
|
|
3
|
+
export interface CodeEditorFacadeOptions extends MonacoCodeOptions {
|
|
4
|
+
/** Адаптировать высоту редактора под высоту родительского элемента */
|
|
5
|
+
fillParentMode?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface CodeEditorFacade extends ViewControl {
|
|
8
|
+
pasteSnippet(snippetContent: string): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Pipeline, PipelineSync } from "../../../../helpers/pipeline/Pipeline";
|
|
2
|
+
import { IListControlFacade } from "../List/IListControlFacade";
|
|
3
|
+
export declare type JobButtonCreateHandler = (list: IListControlFacade, pipelines: JobExtPipelines) => void;
|
|
4
|
+
interface JobExtPipelines {
|
|
5
|
+
flagSendIdsAvailable: PipelineSync<boolean | undefined>;
|
|
6
|
+
preExecute: Pipeline<{
|
|
7
|
+
RecordIds?: number[];
|
|
8
|
+
} | undefined>;
|
|
9
|
+
}
|
|
10
|
+
export interface IJobServiceFacade {
|
|
11
|
+
onJobButtonCreate(handler: JobButtonCreateHandler): void;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Pipeline, PipelineSync } from "../../../../helpers/pipeline/Pipeline";
|
|
2
|
+
import { IListControlFacade } from "../List/IListControlFacade";
|
|
3
|
+
import { MdtRecord } from "../utils/IApiFacade";
|
|
4
|
+
export declare type JobButtonCreateHandler = (list: IListControlFacade, pipelines: ListButtonExtendPipelines) => void;
|
|
5
|
+
export interface ListButtonExtendPipelines {
|
|
6
|
+
/** Определить активность кнопок службы и удаления записи */
|
|
7
|
+
buttonEnabled: PipelineSync<boolean>;
|
|
8
|
+
/** Добавить дополнительные записи перед выполнением операции над записями */
|
|
9
|
+
preExecute: Pipeline<MdtRecord[]>;
|
|
10
|
+
}
|
|
11
|
+
export interface IListButtonExtendPipelineService {
|
|
12
|
+
onJobButtonCreate(handler: JobButtonCreateHandler): void;
|
|
13
|
+
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/// <reference types="../../../../mithril" />
|
|
2
2
|
/// <reference types="mithril" />
|
|
3
3
|
import { ProcessPrincipalsListItem } from "../../../../components/processPrincipalsList/ProcessPrincipalsListItem";
|
|
4
|
-
import { Markdown, MithrilAttributes, Valued, ViewElement } from "../../../../helpers/types";
|
|
4
|
+
import { Markdown, MithrilAttributes, Valued, ViewControl, ViewElement } from "../../../../helpers/types";
|
|
5
5
|
import { Icon, IconElOptions, IconOptions } from "../../../../components/icon/iconOptions";
|
|
6
6
|
import { InputOptions } from "../../../../components/baseFormControls/input/inputView";
|
|
7
7
|
import { CommonControlOptions } from "../../../../views/form/controls/commonControl/ICommonControl";
|
|
8
8
|
import { ButtonFacade } from "../Form/IFormFacade";
|
|
9
9
|
import { DropdownInputItemOptions } from "../../../../components/dropdown/menu/item/dropdownInputItemOptions";
|
|
10
10
|
import { DropdownItemViewOptions } from "../../../../components/dropdown/menu/item/dropdownItemWrapOptions";
|
|
11
|
+
import { MonacoCodeOptions } from "mdtScripts/views/form/controls/monacoEditor/MonacoCodeOptions.schema";
|
|
12
|
+
import { ToggleablePanelsEditorFacadeOptions } from "mdtScripts/views/form/controls/toggleablePanels/editor/toggleablePanelsEditorFacadeOptions";
|
|
11
13
|
export interface IUiComponentsFacade {
|
|
12
14
|
button(button: ButtonFacade, translate?: boolean): ViewElement;
|
|
13
15
|
topNavButton(options: TopNavButton): _mithril.MithrilVirtualElement;
|
|
@@ -19,6 +21,8 @@ export interface IUiComponentsFacade {
|
|
|
19
21
|
input(options: InputOptions): _mithril.MithrilVirtualElement;
|
|
20
22
|
dropdownItem(options: DropdownItemViewOptions): _mithril.MithrilVirtualElement;
|
|
21
23
|
dropdownInputItem(options: DropdownInputItemOptions): _mithril.MithrilVirtualElement;
|
|
24
|
+
toggleablePanelsCtrl(options: ToggleablePanelsEditorFacadeOptions): ViewControl;
|
|
25
|
+
fullScreenCodeEditor(options: MonacoCodeOptions): _mithril.MithrilVirtualElement;
|
|
22
26
|
}
|
|
23
27
|
export interface IProcessFormBlockOptions {
|
|
24
28
|
title: string;
|
|
@@ -12,6 +12,7 @@ export interface IType<T> {
|
|
|
12
12
|
export interface ParentCtrl {
|
|
13
13
|
getViewControl(): MithrilControl;
|
|
14
14
|
}
|
|
15
|
+
export declare type NotificationType = "default" | "info" | "success" | "warning" | "danger";
|
|
15
16
|
export interface CustomNotification {
|
|
16
17
|
/** Заголовок сообщения */
|
|
17
18
|
title: string;
|
|
@@ -20,7 +21,7 @@ export interface CustomNotification {
|
|
|
20
21
|
/** Наименование иконки */
|
|
21
22
|
icon?: string;
|
|
22
23
|
/** Тип выводимого сообщения*/
|
|
23
|
-
type?:
|
|
24
|
+
type?: NotificationType;
|
|
24
25
|
/** Кнопки, отображаемые в сообщении*/
|
|
25
26
|
actions?: ButtonFacade[];
|
|
26
27
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { FormatOptions } from "../../../../helpers/formatOptions";
|
|
2
|
+
import { IListButtonExtendPipelineService } from "../services/IListButtonExtendPipelineService";
|
|
2
3
|
export interface IUtilsFacade {
|
|
4
|
+
ListButtonExtendPipelineService: IListButtonExtendPipelineService;
|
|
3
5
|
getText(textCode: string, args?: any): string;
|
|
4
6
|
format(value: any, options?: FormatOptions): any;
|
|
5
7
|
guid(): string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CSSClassName } from "mdtScripts/helpers/types";
|
|
2
|
+
import * as monaco from "monaco-editor";
|
|
3
|
+
export interface MonacoCodeOptions {
|
|
4
|
+
lang?: string;
|
|
5
|
+
guid?: string;
|
|
6
|
+
value?: () => string;
|
|
7
|
+
onChange?: (value: string) => void;
|
|
8
|
+
onChangeErrorState?: (errMessage?: string) => void;
|
|
9
|
+
jsonSchema?: string;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
className?: CSSClassName;
|
|
12
|
+
/**
|
|
13
|
+
* @TJS-type any
|
|
14
|
+
*/
|
|
15
|
+
editorOptions?: monaco.editor.IStandaloneEditorConstructionOptions;
|
|
16
|
+
showDescription?: boolean;
|
|
17
|
+
enableFullscreen?: boolean;
|
|
18
|
+
enableSuggestionOnEnter?: boolean;
|
|
19
|
+
/** Игнорировать валидационные ошибки формата данных */
|
|
20
|
+
ignoreControlValidation?: boolean;
|
|
21
|
+
}
|
package/types/views/form/controls/toggleablePanels/editor/toggleablePanelsEditorFacadeOptions.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PanelTitleTextContent } from "mdtScripts/components/resizablePanels/panelTitle/panelTitleOptions";
|
|
2
|
+
import { PanelsGrid, ToggleableRotatablePanelsOptions } from "mdtScripts/components/toggleablePanels/toggleablePanelsOptions";
|
|
3
|
+
import { ViewElement } from "mdtScripts/helpers/types";
|
|
4
|
+
import { ButtonFacade } from "mdtServices/customModules/facades/Form/IFormFacade";
|
|
5
|
+
export interface ToggleablePanelsEditorFacadeOptions extends ToggleableRotatablePanelsOptions {
|
|
6
|
+
toolbarButtons?: ButtonFacade[];
|
|
7
|
+
panels: PanelsGrid<ToggleablePanelsEditorPanelFacadeOptions>;
|
|
8
|
+
runButton: ButtonFacade;
|
|
9
|
+
}
|
|
10
|
+
interface ToggleablePanelsEditorPanelFacadeOptions {
|
|
11
|
+
title: PanelTitleTextContent;
|
|
12
|
+
isShown?: boolean;
|
|
13
|
+
content: () => ViewElement;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Button } from "../controls/monacoEditor/jsonSchemas/Button.schema";
|
|
2
|
+
export interface FormPageOptions {
|
|
3
|
+
/** Форма только для чтения */
|
|
4
|
+
readonly?: boolean | (() => boolean);
|
|
5
|
+
/** Создавать автоматически новую запись, если не существует */
|
|
6
|
+
createIfNotExists?: boolean;
|
|
7
|
+
/** Настройки кнопки */
|
|
8
|
+
primaryButton?: Button;
|
|
9
|
+
/** Скрывать заголовок */
|
|
10
|
+
hideTitle?: boolean;
|
|
11
|
+
/** Скрывать подзаголовок */
|
|
12
|
+
hideSubtitle?: boolean;
|
|
13
|
+
/** Дополнительные данные для загрузки */
|
|
14
|
+
hintSelect?: string[];
|
|
15
|
+
/** Код макета формы */
|
|
16
|
+
layoutCode?: string;
|
|
17
|
+
}
|