mdt-client 31.3.16 → 31.3.17

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 CHANGED
@@ -2,7 +2,7 @@
2
2
  import { IFieldControlFacade as IFieldControlFacadeOrig } from "../types/services/customModules/facades/Form/IFieldControlFacade";
3
3
  import { IMDTFacade } from "../types/services/customModules/facades/IMdtFacade";
4
4
  export declare const MDT: IMDTFacade;
5
- export declare const Navigation: import("../types/services/customModules/facades/services/INavigationFacade").INavigationFacade, SecurityManager: import("../types/services/customModules/facades/services/ISecurityFacade").ISecurityFacade, ListService: import("../types/services/customModules/facades/List/IListServiceFacade").IListServiceFacade, List: import("../types/services/customModules/facades/List/IListControlFacade").IListControlFacadeContstructor, FormService: import("../types/services/customModules/facades/Form/IFormFacade").IFormServiceFacade, Form: import("../types/services/customModules/facades/Form/IFormControlFacade").IFormControlFacadeContstructor, ControlManager: import("../types/services/customModules/facades/Form/IFieldControlManagerFacade").IFieldControlManagerFacade<any>, FieldControl: import("../types/services/customModules/facades/Form/IFieldControlFacade").IFieldControlFacadeContstructor<any>, mUtils: import("../types/services/customModules/facades/utils/ImUtilsFacade").ImUtilsFacade, Utils: import("../types/services/customModules/facades/utils/IUtilsFacade").IUtilsFacade, Ui: import("../types/services/customModules/facades/utils/IUiFacade").IUiFacade, Api: import("../types/services/customModules/facades/utils/IApiFacade").IApiFacade, m: _mithril.MithrilStatic, Filter: import("../types/services/IFilter").FilterConstructor, Auth: import("../types/services/customModules/facades/IAuthFacade").IAuthFacade, Page: import("../types/services/customModules/facades/IPageFacade").IPageFacade, CommandManager: import("../types/services/customModules/facades/services/CommandManagerFacade").CommandManagerFacade, RecordManager: import("../types/services/customModules/facades/record/IRecordManagerFacade").IRecordManagerFacade, ModuleRegistry: import("../types/services/customModules/facades/IModuleRegistryFacade").IModuleRegistryFacade, UiComponents: import("../types/services/customModules/facades/utils/IUiComponentsFacade").IUiComponentsFacade, Schema: import("../types/services/customModules/facades/schema/ISchemaFacade").ISchemaFacade, App: import("../types/services/customModules/facades/IAppFacade").IAppFacade, modules: import("../types/services/customModules/facades/internalModules/modulesFacadeTypes").InternalModulesFacade, legacy: import("../types/services/customModules/facades/ILegacyFacade").ILegacyFacade;
5
+ export declare const Navigation: import("../types/services/customModules/facades/services/INavigationFacade").INavigationFacade, SecurityManager: import("../types/services/customModules/facades/services/ISecurityFacade").ISecurityFacade, ListService: import("../types/services/customModules/facades/List/IListServiceFacade").IListServiceFacade, List: import("../types/services/customModules/facades/List/IListControlFacade").IListControlFacadeContstructor, FormService: import("../types/services/customModules/facades/Form/IFormFacade").IFormServiceFacade, Form: import("../types/services/customModules/facades/Form/IFormControlFacade").IFormControlFacadeContstructor, FormDashboard: import("../types/services/customModules/facades/formDashboard/IFormDashboard").IFormDashboard, ControlManager: import("../types/services/customModules/facades/Form/IFieldControlManagerFacade").IFieldControlManagerFacade<any>, FieldControl: import("../types/services/customModules/facades/Form/IFieldControlFacade").IFieldControlFacadeContstructor<any>, mUtils: import("../types/services/customModules/facades/utils/ImUtilsFacade").ImUtilsFacade, Utils: import("../types/services/customModules/facades/utils/IUtilsFacade").IUtilsFacade, Ui: import("../types/services/customModules/facades/utils/IUiFacade").IUiFacade, Api: import("../types/services/customModules/facades/utils/IApiFacade").IApiFacade, m: _mithril.MithrilStatic, Filter: import("../types/services/IFilter").FilterConstructor, Auth: import("../types/services/customModules/facades/IAuthFacade").IAuthFacade, Page: import("../types/services/customModules/facades/IPageFacade").IPageFacade, CommandManager: import("../types/services/customModules/facades/services/CommandManagerFacade").CommandManagerFacade, RecordManager: import("../types/services/customModules/facades/record/IRecordManagerFacade").IRecordManagerFacade, ModuleRegistry: import("../types/services/customModules/facades/IModuleRegistryFacade").IModuleRegistryFacade, UiComponents: import("../types/services/customModules/facades/utils/IUiComponentsFacade").IUiComponentsFacade, Schema: import("../types/services/customModules/facades/schema/ISchemaFacade").ISchemaFacade, App: import("../types/services/customModules/facades/IAppFacade").IAppFacade, modules: import("../types/services/customModules/facades/internalModules/modulesFacadeTypes").InternalModulesFacade, legacy: import("../types/services/customModules/facades/ILegacyFacade").ILegacyFacade;
6
6
  interface ModuleContext {
7
7
  name: string;
8
8
  }
package/dist/index.js CHANGED
@@ -3,10 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.registerModule = exports.legacy = exports.modules = exports.App = exports.Schema = exports.UiComponents = exports.ModuleRegistry = exports.RecordManager = exports.CommandManager = exports.Page = exports.Auth = exports.Filter = exports.m = exports.Api = exports.Ui = exports.Utils = exports.mUtils = exports.FieldControl = exports.ControlManager = exports.Form = exports.FormService = exports.List = exports.ListService = exports.SecurityManager = exports.Navigation = exports.MDT = void 0;
6
+ exports.registerModule = exports.legacy = exports.modules = exports.App = exports.Schema = exports.UiComponents = exports.ModuleRegistry = exports.RecordManager = exports.CommandManager = exports.Page = exports.Auth = exports.Filter = exports.m = exports.Api = exports.Ui = exports.Utils = exports.mUtils = exports.FieldControl = exports.ControlManager = exports.FormDashboard = exports.Form = exports.FormService = exports.List = exports.ListService = exports.SecurityManager = exports.Navigation = exports.MDT = void 0;
7
7
  var package_json_1 = __importDefault(require("../package.json"));
8
8
  exports.MDT = window.MDT;
9
- exports.Navigation = exports.MDT.Navigation, exports.SecurityManager = exports.MDT.SecurityManager, exports.ListService = exports.MDT.ListService, exports.List = exports.MDT.List, exports.FormService = exports.MDT.FormService, exports.Form = exports.MDT.Form, exports.ControlManager = exports.MDT.ControlManager, exports.FieldControl = exports.MDT.FieldControl, exports.mUtils = exports.MDT.mUtils, exports.Utils = exports.MDT.Utils, exports.Ui = exports.MDT.Ui, exports.Api = exports.MDT.Api, exports.m = exports.MDT.m, exports.Filter = exports.MDT.Filter, exports.Auth = exports.MDT.Auth, exports.Page = exports.MDT.Page, exports.CommandManager = exports.MDT.CommandManager, exports.RecordManager = exports.MDT.RecordManager, exports.ModuleRegistry = exports.MDT.ModuleRegistry, exports.UiComponents = exports.MDT.UiComponents, exports.Schema = exports.MDT.Schema, exports.App = exports.MDT.App, exports.modules = exports.MDT.modules, exports.legacy = exports.MDT.legacy;
9
+ exports.Navigation = exports.MDT.Navigation, exports.SecurityManager = exports.MDT.SecurityManager, exports.ListService = exports.MDT.ListService, exports.List = exports.MDT.List, exports.FormService = exports.MDT.FormService, exports.Form = exports.MDT.Form, exports.FormDashboard = exports.MDT.FormDashboard, exports.ControlManager = exports.MDT.ControlManager, exports.FieldControl = exports.MDT.FieldControl, exports.mUtils = exports.MDT.mUtils, exports.Utils = exports.MDT.Utils, exports.Ui = exports.MDT.Ui, exports.Api = exports.MDT.Api, exports.m = exports.MDT.m, exports.Filter = exports.MDT.Filter, exports.Auth = exports.MDT.Auth, exports.Page = exports.MDT.Page, exports.CommandManager = exports.MDT.CommandManager, exports.RecordManager = exports.MDT.RecordManager, exports.ModuleRegistry = exports.MDT.ModuleRegistry, exports.UiComponents = exports.MDT.UiComponents, exports.Schema = exports.MDT.Schema, exports.App = exports.MDT.App, exports.modules = exports.MDT.modules, exports.legacy = exports.MDT.legacy;
10
10
  function registerModule(callback, context) {
11
11
  exports.MDT.registerModule(callback, {
12
12
  version: package_json_1.default.version,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,iEAA0C;AAE7B,QAAA,GAAG,GAAgB,MAAc,CAAC,GAAG,CAAC;AAGlD,QAAA,UAAU,GAwBP,WAAG,aAvBN,QAAA,eAAe,GAuBZ,WAAG,kBAtBN,QAAA,WAAW,GAsBR,WAAG,cArBN,QAAA,IAAI,GAqBD,WAAG,OApBN,QAAA,WAAW,GAoBR,WAAG,cAnBN,QAAA,IAAI,GAmBD,WAAG,OAlBN,QAAA,cAAc,GAkBX,WAAG,iBAjBN,QAAA,YAAY,GAiBT,WAAG,eAhBN,QAAA,MAAM,GAgBH,WAAG,SAfN,QAAA,KAAK,GAeF,WAAG,QAdN,QAAA,EAAE,GAcC,WAAG,KAbN,QAAA,GAAG,GAaA,WAAG,MAZN,QAAA,CAAC,GAYE,WAAG,IAXN,QAAA,MAAM,GAWH,WAAG,SAVN,QAAA,IAAI,GAUD,WAAG,OATN,QAAA,IAAI,GASD,WAAG,OARN,QAAA,cAAc,GAQX,WAAG,iBAPN,QAAA,aAAa,GAOV,WAAG,gBANN,QAAA,cAAc,GAMX,WAAG,iBALN,QAAA,YAAY,GAKT,WAAG,eAJN,QAAA,MAAM,GAIH,WAAG,SAHN,QAAA,GAAG,GAGA,WAAG,MAFN,QAAA,OAAO,GAEJ,WAAG,UADN,QAAA,MAAM,GACH,WAAG,QAAC;AAMR,SAAgB,cAAc,CAAC,QAAoB,EAAE,OAAuB;IAC3E,WAAG,CAAC,cAAc,CAAC,QAAQ,EAAE;QAC5B,OAAO,EAAE,sBAAW,CAAC,OAAO;QAC5B,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;KACnB,CAAC,CAAC;AACJ,CAAC;AALD,wCAKC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,iEAA0C;AAE7B,QAAA,GAAG,GAAgB,MAAc,CAAC,GAAG,CAAC;AAGlD,QAAA,UAAU,GAyBP,WAAG,aAxBN,QAAA,eAAe,GAwBZ,WAAG,kBAvBN,QAAA,WAAW,GAuBR,WAAG,cAtBN,QAAA,IAAI,GAsBD,WAAG,OArBN,QAAA,WAAW,GAqBR,WAAG,cApBN,QAAA,IAAI,GAoBD,WAAG,OAnBN,QAAA,aAAa,GAmBV,WAAG,gBAlBN,QAAA,cAAc,GAkBX,WAAG,iBAjBN,QAAA,YAAY,GAiBT,WAAG,eAhBN,QAAA,MAAM,GAgBH,WAAG,SAfN,QAAA,KAAK,GAeF,WAAG,QAdN,QAAA,EAAE,GAcC,WAAG,KAbN,QAAA,GAAG,GAaA,WAAG,MAZN,QAAA,CAAC,GAYE,WAAG,IAXN,QAAA,MAAM,GAWH,WAAG,SAVN,QAAA,IAAI,GAUD,WAAG,OATN,QAAA,IAAI,GASD,WAAG,OARN,QAAA,cAAc,GAQX,WAAG,iBAPN,QAAA,aAAa,GAOV,WAAG,gBANN,QAAA,cAAc,GAMX,WAAG,iBALN,QAAA,YAAY,GAKT,WAAG,eAJN,QAAA,MAAM,GAIH,WAAG,SAHN,QAAA,GAAG,GAGA,WAAG,MAFN,QAAA,OAAO,GAEJ,WAAG,UADN,QAAA,MAAM,GACH,WAAG,QAAC;AAMR,SAAgB,cAAc,CAAC,QAAoB,EAAE,OAAuB;IAC3E,WAAG,CAAC,cAAc,CAAC,QAAQ,EAAE;QAC5B,OAAO,EAAE,sBAAW,CAAC,OAAO;QAC5B,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;KACnB,CAAC,CAAC;AACJ,CAAC;AALD,wCAKC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mdt-client",
3
- "version": "31.3.16",
3
+ "version": "31.3.17",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -39,6 +39,12 @@ export interface Field extends Record {
39
39
  flagHiddenByDefault?: boolean;
40
40
  min?: number;
41
41
  max?: number;
42
+ /**
43
+ * `FieldSettings` {@link module ui/_core/scripts/common/FieldSettings.schema} в JSON формате.
44
+ * Задается через форму редактирования поля в пользовательском интерфейсе, приходит с API в виде строки.
45
+ * Не следует использовать напрямую, вместо этого используйте SchemaManager.getFieldSettings.
46
+ */
47
+ settings?: string;
42
48
  dynamicFkObjectPath?: string;
43
49
  id_DynamicFkRecordObjectField?: number;
44
50
  dynamicFkRecordObjectFieldCode?: string;
@@ -0,0 +1,8 @@
1
+ import IMask from "imask";
2
+ export interface FieldSettings {
3
+ /**
4
+ * Маска отображает значение в заданном формате в списке и на форме. Например, число можно отобразить как "1 234,56" или "1234.56".
5
+ * [Подробнее о маске в документации](https://ics-it.gram.ax/mdt/content/list/dataView/formatMask).
6
+ */
7
+ maskOptions?: IMask.AnyMaskedOptions;
8
+ }
@@ -0,0 +1,2 @@
1
+ import IMask from "imask";
2
+ export declare type MaskOptions = IMask.AnyMaskedOptions;
@@ -1,6 +1,14 @@
1
+ import { MaskOptions } from "mdtScripts/components/baseFormControls/maskedInput/MaskFormatter.types";
1
2
  export interface FormatOptions {
2
3
  type?: string;
3
4
  title?: string;
4
5
  empty?: string;
6
+ /**
7
+ * @deprecated
8
+ */
5
9
  mask?: string;
10
+ /**
11
+ * Настройки маски
12
+ */
13
+ maskOptions?: MaskOptions;
6
14
  }
@@ -0,0 +1,2 @@
1
+ export declare type KeySymbolCode = "Cmd" | "Option" | "Alt" | "Shift" | "Ctrl" | "Enter" | "Left" | "Right" | "Up" | "Down";
2
+ export declare function getKeySymbol(key: KeySymbolCode): string;
@@ -0,0 +1,18 @@
1
+ export declare class Memoize<A extends any[] = any[], R = any> {
2
+ private calculate;
3
+ private store;
4
+ constructor(calculate: (...args: A) => R);
5
+ exec(args: A): R;
6
+ }
7
+ export declare class MemoizeStore {
8
+ private store;
9
+ exec<A extends any[] = any[], R = any>(key: string, calculate: (...args: A) => R, args: A): R;
10
+ clearKey(key: string): void;
11
+ }
12
+ export declare class MultiMemoize<A extends any[] = any[], R = any> {
13
+ private calculate;
14
+ private store;
15
+ constructor(calculate: (...args: A) => R);
16
+ exec(...args: A): R;
17
+ clear(): void;
18
+ }
@@ -1,3 +1,4 @@
1
1
  export declare function hasOwnProperty(object: Record<never, unknown>, name: string): boolean;
2
2
  export declare function shallowCopy<T>(obj: T): T;
3
3
  export declare function copyWithIgnore<T, K extends keyof T = null>(obj: T, ignore: K[]): Omit<T, K>;
4
+ export declare function shallowEqual(objA: Record<never, unknown>, objB: Record<never, unknown>): boolean;
@@ -1,15 +1,23 @@
1
1
  /// <reference types="../../../../mithril" />
2
2
  /// <reference types="mithril" />
3
+ import { E2eServiceType } from "mdtServices/e2e/e2eServiceType";
3
4
  import { FilterConstructor } from "../../../services/IFilter";
4
5
  import { IFieldControlFacadeContstructor } from "./Form/IFieldControlFacade";
5
6
  import { IFieldControlManagerFacade } from "./Form/IFieldControlManagerFacade";
6
7
  import { IFormControlFacadeContstructor } from "./Form/IFormControlFacade";
8
+ import { IFormDashboard } from "./formDashboard/IFormDashboard";
7
9
  import { IFormServiceFacade } from "./Form/IFormFacade";
10
+ import { IAppFacade } from "./IAppFacade";
8
11
  import { IAuthFacade } from "./IAuthFacade";
12
+ import { ILegacyFacade } from "./ILegacyFacade";
9
13
  import { IModuleRegistryFacade } from "./IModuleRegistryFacade";
10
- import { ISchemaFacade } from "./schema/ISchemaFacade";
14
+ import { InternalModulesFacade } from "./internalModules/modulesFacadeTypes";
15
+ import { IPageFacade } from "./IPageFacade";
11
16
  import { IListControlFacadeContstructor } from "./List/IListControlFacade";
12
17
  import { IListServiceFacade } from "./List/IListServiceFacade";
18
+ import { IRecordManagerFacade } from "./record/IRecordManagerFacade";
19
+ import { ISchemaFacade } from "./schema/ISchemaFacade";
20
+ import { CommandManagerFacade } from "./services/CommandManagerFacade";
13
21
  import { INavigationFacade } from "./services/INavigationFacade";
14
22
  import { ISecurityFacade } from "./services/ISecurityFacade";
15
23
  import { IApiFacade } from "./utils/IApiFacade";
@@ -17,13 +25,6 @@ import { ImUtilsFacade } from "./utils/ImUtilsFacade";
17
25
  import { IUiComponentsFacade } from "./utils/IUiComponentsFacade";
18
26
  import { IUiFacade } from "./utils/IUiFacade";
19
27
  import { IUtilsFacade } from "./utils/IUtilsFacade";
20
- import { IPageFacade } from "./IPageFacade";
21
- import { CommandManagerFacade } from "./services/CommandManagerFacade";
22
- import { IRecordManagerFacade } from "./record/IRecordManagerFacade";
23
- import { ILegacyFacade } from "./ILegacyFacade";
24
- import { IAppFacade } from "./IAppFacade";
25
- import { InternalModulesFacade } from "./internalModules/modulesFacadeTypes";
26
- import { E2eServiceType } from "../../../services/e2e/e2eServiceType";
27
28
  export declare type ModulePackageInfo = {
28
29
  version: string;
29
30
  name?: string;
@@ -48,6 +49,8 @@ export interface IMDTFacade {
48
49
  ControlManager: IFieldControlManagerFacade;
49
50
  /** Компонент контрола */
50
51
  FieldControl: IFieldControlFacadeContstructor;
52
+ /** Управление дашбордом */
53
+ FormDashboard: IFormDashboard;
51
54
  /** Утилиты для Mithril */
52
55
  mUtils: ImUtilsFacade;
53
56
  /** Утилиты */
@@ -1,3 +1,4 @@
1
+ import { ApiV2 } from "mdtServices/api/ApiAccessor/apiV2Types";
1
2
  import { Field } from "../../../../../scripts/common/Field";
2
3
  import { ObjectCode, ViewControl } from "../../../../helpers/types";
3
4
  import { MdtRecord } from "../utils/IApiFacade";
@@ -39,10 +40,14 @@ export interface CustomListOptions<R = MdtRecord> {
39
40
  code: ObjectCode;
40
41
  /** Поля списка */
41
42
  fields: Field[];
42
- /** Записи списка */
43
- records: R[];
43
+ /**
44
+ * Записи списка
45
+ */
46
+ records?: R[];
44
47
  /** Опции списка */
45
48
  listOptions?: any;
46
49
  /** Настройки расширений списка */
47
50
  extConfig?: any;
51
+ /** Функция для получения записей списка с возможностью обновления данных или использования пользовательского API */
52
+ fetch?: (query: ApiV2.Request.Fetch | ApiV2.Request.Fetch[]) => Promise<MdtRecord[]>;
48
53
  }
@@ -0,0 +1,15 @@
1
+ import { MithrilControl } from "mdtScripts/helpers/types";
2
+ export interface IFormDashboard {
3
+ /**
4
+ * Настройка дашборда. Возвращает объект для управления дашбордом.
5
+ * @param code - Код дашборда. Его можно узнать в настройках узла навигации в "Расширенной конфигурации"
6
+ */
7
+ setup: (code: string) => IFormDashboardFacade;
8
+ }
9
+ export declare type ComponentPosition = "title-right";
10
+ export interface IFormDashboardFacade {
11
+ /**
12
+ * Добавляет компонент на дашборд в указанную позицию
13
+ */
14
+ addComponent: (component: () => MithrilControl, position: ComponentPosition) => void;
15
+ }
@@ -4,10 +4,10 @@ import { Field } from "mdtScripts/common/Field";
4
4
  import { Table } from "mdtScripts/common/Table";
5
5
  import { FieldPath } from "mdtScripts/helpers/types";
6
6
  interface ImportMapping {
7
- columns: {
7
+ columns?: {
8
8
  [fieldPath: string]: string;
9
9
  };
10
- keys: string[];
10
+ keys?: string[];
11
11
  }
12
12
  export interface ImportUploadData {
13
13
  /** id записи */
@@ -1,3 +1,4 @@
1
+ import { FieldSettings } from "mdtScripts/common/FieldSettings.schema";
1
2
  export interface IFieldFacade {
2
3
  getCode(): string;
3
4
  getTitle(): string | undefined;
@@ -7,3 +8,4 @@ export interface IFieldFacade {
7
8
  isOne2Many(): boolean;
8
9
  isHistory(): boolean;
9
10
  }
11
+ export declare type IFieldSettings = FieldSettings;
@@ -1,8 +1,11 @@
1
+ import { IFieldSettings } from "./IFieldFacade";
1
2
  import { IObjectFacade } from "./IObjectFacade";
2
3
  declare const allFieldPhysicalTypes: readonly ["bigint", "binary", "bit", "char", "date", "datetime", "datetime2", "datetimeoffset", "decimal", "float", "geography", "geometry", "hierarchyid", "image", "int", "money", "nchar", "ntext", "numeric", "nvarchar", "real", "smalldatetime", "smallint", "smallmoney", "sql_variant", "sysname", "text", "time", "timestamp", "tinyint", "uniqueidentifier", "varbinary", "varchar", "xml"];
3
4
  export declare type FieldPhysicalType = typeof allFieldPhysicalTypes[number];
4
5
  export interface ISchemaFacade {
5
6
  /** Получить объект по коду или по ID */
6
7
  getObject(idOrCode: string | number, check?: boolean): IObjectFacade;
8
+ /** Установить настройки для поля */
9
+ setFieldSettings(objectCode: string, settings: Record<string, IFieldSettings>): void;
7
10
  }
8
11
  export {};
@@ -1,4 +1,10 @@
1
- import { URLString, Valued } from "mdtScripts/helpers/types";
1
+ import { AnyObject, URLString, Valued } from "mdtScripts/helpers/types";
2
+ export interface CustomPageCtrl {
3
+ new (node: ICustomNodeNavigationFacade): any;
4
+ }
5
+ export interface ICustomNodeNavigationFacade {
6
+ getSettings<T = AnyObject>(): T;
7
+ }
2
8
  /** Управление навигацией */
3
9
  export interface INavigationFacade {
4
10
  /** Добавить узел навигации */
@@ -13,7 +19,7 @@ export interface INavigationFacade {
13
19
  * Зарегистрировать новый контрол для узла навигации.
14
20
  * Использование: Чтобы отобразить контрол на странице, нужно в узле навигации указать название контрола в поле "Идентификатор подключаемого элемента" (Control)
15
21
  */
16
- registerPageCtrl: (ctrl: Function, name: string) => void;
22
+ registerPageCtrl: (ctrl: CustomPageCtrl, name: string) => void;
17
23
  /**
18
24
  * Очистить кеш отображения верхней и боковой навигации.
19
25
  * Используется в случае, если условия отображения узлов навигации изменились.
@@ -14,9 +14,9 @@ import { CodeEditorFacade, CodeEditorFacadeOptions } from "../components/CodeEdi
14
14
  import { FileInputFacadeOptions } from "../../../../views/form/controls/fileupload/FileInputFacade.types";
15
15
  import { FieldViewOptions } from "../../../../components/form/fieldView/fieldViewOptions";
16
16
  import { ComponentConfigParams } from "mdtScripts/helpers/ui/elementModificators/modificatorsTypes";
17
- import { FormattedText } from "mdtScripts/helpers/formattedText";
18
- import { ChartFormControlFacadeOptions, IChartControlFacade } from "mdtScripts/views/page/charts/facade/IСhartControlFacade";
19
- import { IMultiPickerFacade, MultiPickerFacadeOptions, MultiPickerItem } from "mdtScripts/views/form/controls/picker/multiPickerFacade/IMultiPickerFacade";
17
+ import { FormattedText } from "../../../../helpers/formattedText";
18
+ import { ChartFormControlFacadeOptions, IChartControlFacade } from "../../../../views/page/charts/facade/IСhartControlFacade";
19
+ import { IMultiPickerFacade, MultiPickerFacadeOptions, MultiPickerItem } from "../../../../views/form/controls/picker/multiPickerFacade/IMultiPickerFacade";
20
20
  export interface IUiComponentsFacade {
21
21
  button(button: ButtonFacade, translate?: boolean): ViewElement;
22
22
  topNavButton(options: TopNavButton): _mithril.MithrilVirtualElement;
@@ -43,6 +43,18 @@ export interface IUiComponentsFacade {
43
43
  * @deprecated
44
44
  */
45
45
  multiPicker<T extends MultiPickerItem = MultiPickerItem>(options: MultiPickerFacadeOptions<T>): IMultiPickerFacade<T>;
46
+ /**
47
+ *
48
+ * **Пример**
49
+ *
50
+ * ```js
51
+ * const markdownText = 'Удалено записей: **9**';
52
+ * Ui.showModal({
53
+ * $view: () => UiComponents.markdown(markdownText)
54
+ * })
55
+ * ```
56
+ */
57
+ markdown(content: string): ViewElement;
46
58
  }
47
59
  export interface IProcessFormBlockOptions {
48
60
  title: string;
@@ -19,6 +19,7 @@ export interface IUtilsFacade {
19
19
  */
20
20
  downloadFile(url: string): void;
21
21
  getValued: typeof getValued;
22
+ mergeDeep<T = AnyObject>(object1: T, object2: T): void;
22
23
  EventEmitter: typeof EventEmitter;
23
24
  Pipeline: typeof Pipeline;
24
25
  ImmutableArgPipeline: typeof ImmutableArgPipeline;
@@ -1,6 +1,6 @@
1
- import { EventEmitterSubscribeController } from "mdtScripts/helpers/events/EventEmitter";
2
- import { FormattedText } from "mdtScripts/helpers/formattedText";
3
- import { Valued, ViewControl } from "mdtScripts/helpers/types";
1
+ import { EventEmitterSubscribeController } from "../../../../../helpers/events/EventEmitter";
2
+ import { FormattedText } from "../../../../../helpers/formattedText";
3
+ import { Valued, ViewControl } from "../../../../../helpers/types";
4
4
  interface FetchQuery {
5
5
  searchString?: string;
6
6
  }
@@ -7,6 +7,7 @@ declare type Title = string | TitleFunction;
7
7
  export declare type Orientation = "horizontal" | "vertical";
8
8
  declare type AxisPosition = "start" | "end";
9
9
  export declare type AxisLabelPosition = "vertical" | "horizontal";
10
+ export declare type TwoDimChartLegendPosition = "top" | "bottom";
10
11
  declare type ChartField = string;
11
12
  export declare type TwoDimensionalValueField = ChartField | {
12
13
  name: string;
@@ -223,6 +224,9 @@ export interface Axes {
223
224
  formatValue?: string;
224
225
  /** @title Размер отступа между подписями в px */
225
226
  stepSize?: number;
227
+ line?: {
228
+ visible?: boolean;
229
+ };
226
230
  };
227
231
  }
228
232
  interface BaseChartBlockOptions {
@@ -254,11 +258,6 @@ interface GraphicChartBlockOptions extends BaseChartBlockOptions {
254
258
  * @default 50
255
259
  */
256
260
  maxRecordCount?: number;
257
- /**
258
- * @title Отображение легенды
259
- * @description По умолчанию для круговых диаграмм отображается всегда, а для двумерных диаграмм - когда количество полей значений больше одного
260
- */
261
- legend?: boolean;
262
261
  }
263
262
  export interface CommonCanvasOptions {
264
263
  bar?: BarCanvasOptions;
@@ -296,6 +295,10 @@ export interface TwoDimensionalOptions extends GraphicChartBlockOptions {
296
295
  * @title Общие параметры холста графика
297
296
  */
298
297
  commonCanvasOptions?: CommonCanvasOptions;
298
+ legend?: boolean | {
299
+ show?: boolean;
300
+ position?: TwoDimChartLegendPosition;
301
+ };
299
302
  }
300
303
  /**
301
304
  * @title Круговая диаграмма
@@ -314,8 +317,13 @@ export interface PolarOptions extends GraphicChartBlockOptions {
314
317
  * @description Наименование поля, в котором хранится цвет для сегментов диаграммы.
315
318
  */
316
319
  colorField?: string;
320
+ /**
321
+ * @title Отображение легенды
322
+ * @description По умолчанию для круговых диаграмм отображается всегда
323
+ */
324
+ legend?: boolean;
317
325
  }
318
- export declare type TwoDimensionalChart = BarChart | LineChart | AreaChart;
326
+ export declare type TwoDimensionalChart = BarChart | LineChart | AreaChart | DotChart;
319
327
  interface TwoDimensionalChartOptions {
320
328
  /**
321
329
  * @title Параметры данных, привязанных к диаграмме
@@ -331,6 +339,10 @@ interface TwoDimensionalChartOptions {
331
339
  * @title Отображение диаграммы в сегментированном виде
332
340
  */
333
341
  isSegmented?: boolean;
342
+ /**
343
+ * @title Отображение подписей значений на диаграмме
344
+ */
345
+ valueLabels?: boolean;
334
346
  }
335
347
  /**
336
348
  * @title Гистограмма
@@ -423,6 +435,10 @@ interface BarChart extends TwoDimensionalChartOptions {
423
435
  labels?: boolean;
424
436
  /** @title Отображать в заштрихованном виде */
425
437
  hatched?: boolean;
438
+ borderRadius?: BarChartBorderRadius;
439
+ }
440
+ interface BarChartBorderRadius {
441
+ value?: number;
426
442
  }
427
443
  /**
428
444
  * @title Линейная диаграмма
@@ -439,6 +455,8 @@ interface AreaChart extends LineAreaChart {
439
455
  * @title Тип 2D-диаграммы
440
456
  */
441
457
  type: "area";
458
+ /** @title Включить градиент */
459
+ gradient?: boolean;
442
460
  }
443
461
  interface LineChart extends LineAreaChart {
444
462
  /**
@@ -447,6 +465,7 @@ interface LineChart extends LineAreaChart {
447
465
  type: "line";
448
466
  /** @title Управление пунктиром */
449
467
  dash?: LineDash;
468
+ width?: number;
450
469
  }
451
470
  interface LineDash {
452
471
  /** @title Включить пунктир */
@@ -456,6 +475,9 @@ interface LineDash {
456
475
  /** @title Размер между чертами в px */
457
476
  gapSize?: number;
458
477
  }
478
+ export interface DotChart extends TwoDimensionalChartOptions {
479
+ type: "dot";
480
+ }
459
481
  export interface PolarChart {
460
482
  /**
461
483
  * @title Наименование отображаемого поля-значения
@@ -1,6 +1,7 @@
1
1
  import { ChartControlOptions } from "../ChartControlOptions.schema";
2
- import { MdtRecord } from "mdtServices/customModules/facades/utils/IApiFacade";
3
- import { EventEmitterSubscribeController } from "mdtScripts/helpers/events/EventEmitter";
2
+ import { MdtRecord } from "../../../../services/customModules/facades/utils/IApiFacade";
3
+ import { EventEmitterSubscribeController } from "../../../../helpers/events/EventEmitter";
4
+ import { ViewControl } from "../../../../helpers/types";
4
5
  export interface ChartControlFacadeData {
5
6
  refresh?: number;
6
7
  fetch?: () => Promise<MdtRecord[]>;
@@ -14,7 +15,7 @@ export interface ChartEvents {
14
15
  records: MdtRecord[];
15
16
  };
16
17
  }
17
- export interface IChartControlFacade {
18
+ export interface IChartControlFacade extends ViewControl {
18
19
  readonly on: EventEmitterSubscribeController<ChartEvents>["subscribe"];
19
20
  refreshData(): void;
20
21
  reCreate(newOptionsCreator?: () => ChartFormControlFacadeOptions): void;