mdt-client 1.3.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.
Files changed (43) hide show
  1. package/dist/tsconfig.tsbuildinfo +332 -38
  2. package/package.json +1 -1
  3. package/readme.md +15 -15
  4. package/types/common/Field.d.ts +3 -4
  5. package/types/common/list/group/groupTypes.d.ts +26 -0
  6. package/types/common/list/hierarchy/hierarchyTypes.d.ts +39 -0
  7. package/types/components/baseFormControls/input/inputOptions.d.ts +26 -0
  8. package/types/components/baseFormControls/input/inputView.d.ts +0 -1
  9. package/types/components/button/baseButton/buttonOptions.d.ts +12 -0
  10. package/types/components/buttonGroup/buttonGroupOptions.d.ts +7 -0
  11. package/types/components/form/label/labelOptions.d.ts +18 -0
  12. package/types/components/iconButton/iconButtonOptions.d.ts +7 -0
  13. package/types/components/resizablePanels/panelTitle/panelTitleOptions.d.ts +11 -0
  14. package/types/components/resizablePanels/panelToolbar/panelToolbarOptions.d.ts +4 -0
  15. package/types/components/resizablePanels/resizablePanel/resizablePanelOptions.d.ts +20 -0
  16. package/types/components/resizablePanels/resizablePanelsOptions.d.ts +22 -0
  17. package/types/components/toggleablePanels/toggleablePanelsOptions.d.ts +36 -0
  18. package/types/helpers/IUi.d.ts +1 -0
  19. package/types/helpers/deleteFromArray.d.ts +1 -0
  20. package/types/helpers/events/EventEmitter.d.ts +7 -0
  21. package/types/helpers/fireEvent.d.ts +4 -0
  22. package/types/helpers/pipeline/Pipeline.d.ts +19 -0
  23. package/types/helpers/redraw.d.ts +16 -0
  24. package/types/helpers/types.d.ts +0 -2
  25. package/types/helpers/utils/keyStorage/KeyStorage.d.ts +6 -0
  26. package/types/security/User.d.ts +29 -0
  27. package/types/services/IFilter.d.ts +0 -1
  28. package/types/services/api/QuerySorting.d.ts +8 -0
  29. package/types/services/customModules/facades/Form/IFormFacade.d.ts +13 -1
  30. package/types/services/customModules/facades/List/IListControlFacade.d.ts +4 -3
  31. package/types/services/customModules/facades/List/IListServiceFacade.d.ts +16 -0
  32. package/types/services/customModules/facades/components/CodeEditorFacade.d.ts +9 -0
  33. package/types/services/customModules/facades/services/CommandManagerFacade.d.ts +1 -3
  34. package/types/services/customModules/facades/services/IJobService.d.ts +13 -0
  35. package/types/services/customModules/facades/services/IListButtonExtendPipelineService.d.ts +13 -0
  36. package/types/services/customModules/facades/utils/IUiComponentsFacade.d.ts +5 -1
  37. package/types/services/customModules/facades/utils/IUiFacade.d.ts +2 -1
  38. package/types/services/customModules/facades/utils/IUtilsFacade.d.ts +2 -0
  39. package/types/services/dropdown/IDropDownMenu.d.ts +0 -2
  40. package/types/views/form/controls/monacoEditor/MonacoCodeOptions.schema.d.ts +21 -0
  41. package/types/views/form/controls/toggleablePanels/editor/toggleablePanelsEditorFacadeOptions.d.ts +15 -0
  42. package/types/views/form/schema/FormPageOptions.schema.d.ts +17 -0
  43. package/types/views/list/schema/ListPageOptions.schema.d.ts +10 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mdt-client",
3
- "version": "1.3.0",
3
+ "version": "28.20.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/readme.md CHANGED
@@ -1,15 +1,15 @@
1
- ### Установка
2
-
3
- Установка с помощью `npm`
4
-
5
- ```
6
- npm install mdt-client
7
- ```
8
-
9
- ### Использование
10
-
11
- Для использования нужно импортировать нужный компонент
12
-
13
- ```js
14
- import { Navigation } from "mdt-client";
15
- ```
1
+ ### Установка
2
+
3
+ Установка с помощью `npm`
4
+
5
+ ```
6
+ npm install mdt-client
7
+ ```
8
+
9
+ ### Использование
10
+
11
+ Для использования нужно импортировать нужный компонент
12
+
13
+ ```js
14
+ import { Navigation } from "mdt-client";
15
+ ```
@@ -1,5 +1,4 @@
1
- import { FieldCode, FieldKind, Valued } from "mdtScripts/helpers/types";
2
- import { IFilter } from "mdtServices/IFilter";
1
+ import { FieldCode } from "mdtScripts/helpers/types";
3
2
  import { Record } from "./Record";
4
3
  import { Table } from "./Table";
5
4
  export interface Field extends Record {
@@ -19,7 +18,7 @@ export interface Field extends Record {
19
18
  hidden?: boolean;
20
19
  id_RefObject?: number;
21
20
  id_RefObjectField?: number;
22
- kind?: FieldKind;
21
+ kind?: string;
23
22
  role?: string;
24
23
  length?: number;
25
24
  hasDefault?: boolean;
@@ -30,7 +29,7 @@ export interface Field extends Record {
30
29
  refTable?: Table;
31
30
  readonly?: boolean;
32
31
  multiple?: boolean;
33
- refFilter?: Valued<IFilter>;
32
+ refFilter?: any;
34
33
  validate?: Function;
35
34
  min?: number;
36
35
  max?: number;
@@ -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
+ }
@@ -19,7 +19,6 @@ export interface InputOptions {
19
19
  hasError?: boolean;
20
20
  keyboardActions?: KeyboardActions;
21
21
  className?: CSSClassName;
22
- onCreated?: (el: HTMLInputElement) => void;
23
22
  /**
24
23
  *
25
24
  * @deprecated
@@ -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,7 @@
1
+ import { ButtonOptions } from "../button/baseButton/buttonOptions";
2
+ export declare type GroupButtonOptions = ButtonOptions & {
3
+ selected: boolean;
4
+ };
5
+ export interface ButtonGroupOptions {
6
+ buttons: GroupButtonOptions[];
7
+ }
@@ -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,4 @@
1
+ import { ButtonGroupOptions } from "mdtScripts/components/buttonGroup/buttonGroupOptions";
2
+ export interface PanelToolbarOptions {
3
+ buttonGroup: ButtonGroupOptions;
4
+ }
@@ -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,4 @@
1
+ export declare const fireEvent: FireEventType;
2
+ declare type FireEventType = (...args: any[]) => any;
3
+ export declare function addDisposableEvent<T extends FireEventType = FireEventType>(event: Array<FireEventType>, callback: T): void;
4
+ export {};
@@ -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 {};
@@ -19,7 +19,6 @@ export interface Notifier {
19
19
  }
20
20
  export declare type ViewElement = _mithril.MithrilVirtualElement | _mithril.MithrilVirtualElement[] | string;
21
21
  export declare type CommandEvent = Event | _mithril.MithrilEvent;
22
- export declare type InputChangeEvent = Event | _mithril.MithrilEvent;
23
22
  export declare type CSSClassName = string;
24
23
  export declare type MithrilControl = ViewControl | ContentControl;
25
24
  export interface ViewControl {
@@ -51,7 +50,6 @@ export declare type AnyError = any;
51
50
  export declare type FieldPath = string;
52
51
  export declare type FieldId = number;
53
52
  export declare type FieldCode = string;
54
- export declare type FieldKind = "dfk" | "o2m" | "o2o" | "hist" | "dfk-list";
55
53
  export declare type KeyboardKeyCode = string;
56
54
  export declare type LanguageCode = "ru" | "en";
57
55
  export declare type LanguageId = number;
@@ -0,0 +1,6 @@
1
+ export interface KeyStorage<T> {
2
+ get(): T;
3
+ set(value: T): void;
4
+ clear(): void;
5
+ }
6
+ export declare type KeyStorageInvalidateKey = number | string;
@@ -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
+ }
@@ -64,7 +64,6 @@ export interface FilterConstructor {
64
64
  queryIn(field: any, table: any, subField: any, filter: any, args?: any): IFilterIn;
65
65
  cast(filter: any, cast: any): IFilter;
66
66
  equalTemplate(p1: any, p2: any): any;
67
- empty: any;
68
67
  }
69
68
  export declare class Filter {
70
69
  static empty: IFilter;
@@ -0,0 +1,8 @@
1
+ declare type Cast = "date";
2
+ export declare type QuerySortingObject = {
3
+ path: string;
4
+ asc?: boolean;
5
+ cast?: Cast;
6
+ };
7
+ export declare type QuerySorting = string | QuerySortingObject;
8
+ export {};
@@ -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(): _mithril.MithrilPromise<_mithril.MithrilPromise<void>>;
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
+ }
@@ -5,7 +5,5 @@ export declare class CommandManagerFacade {
5
5
  /** Добавить группу команд */
6
6
  addGroup(group: CommandGroupProps): CommandGroup<CommandManagerContext>;
7
7
  /** Добавить команды */
8
- addCommands(commands: CommandBase<CommandManagerContext>[], groupCode?: string): void;
9
- /** Получить существующую команду */
10
- getCommand(code: string): import("../../../commands/Command").Command<CommandManagerContext>;
8
+ addCommands(commands: CommandBase<CommandManagerContext>[]): void;
11
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?: "default" | "info" | "success" | "warning" | "danger";
24
+ type?: NotificationType;
24
25
  /** Кнопки, отображаемые в сообщении*/
25
26
  actions?: ButtonFacade[];
26
27
  }