mdt-client 31.3.16 → 31.3.18

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 (30) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +2 -2
  3. package/dist/index.js.map +1 -1
  4. package/package.json +1 -1
  5. package/types/common/Field.d.ts +6 -0
  6. package/types/common/FieldSettings.schema.d.ts +8 -0
  7. package/types/components/baseFormControls/maskedInput/MaskFormatter.types.d.ts +2 -0
  8. package/types/helpers/formatOptions.d.ts +8 -0
  9. package/types/helpers/ui/keyboardUtils/getKeySymbol.d.ts +2 -0
  10. package/types/helpers/utils/memoization/memoize.d.ts +18 -0
  11. package/types/helpers/utils/object.d.ts +1 -0
  12. package/types/services/api/ApiAccessor/apiV2Types.d.ts +4 -4
  13. package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/count/count.d.ts +1 -1
  14. package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/query/exts/hierarchy/hierarchyQueryHelpersTypes.d.ts +3 -3
  15. package/types/services/api/ApiAccessorRequestAdapter/handlers/messageTypes.d.ts +3 -3
  16. package/types/services/customModules/facades/ILegacyFacade.d.ts +2 -0
  17. package/types/services/customModules/facades/IMdtFacade.d.ts +11 -8
  18. package/types/services/customModules/facades/List/IListServiceFacade.d.ts +7 -2
  19. package/types/services/customModules/facades/formDashboard/IFormDashboard.d.ts +15 -0
  20. package/types/services/customModules/facades/internalModules/importFormCtrl.types.d.ts +2 -2
  21. package/types/services/customModules/facades/schema/IFieldFacade.d.ts +2 -0
  22. package/types/services/customModules/facades/schema/ISchemaFacade.d.ts +3 -0
  23. package/types/services/customModules/facades/services/INavigationFacade.d.ts +8 -2
  24. package/types/services/customModules/facades/utils/IApiFacade.d.ts +3 -3
  25. package/types/services/customModules/facades/utils/IUiComponentsFacade.d.ts +15 -3
  26. package/types/services/customModules/facades/utils/IUtilsFacade.d.ts +1 -0
  27. package/types/views/form/controls/picker/multiPickerFacade/IMultiPickerFacade.d.ts +3 -3
  28. package/types/views/page/charts/ChartControlOptions.schema.d.ts +59 -6
  29. package/types/views/page/charts/facade/I/320/241hartControlFacade.d.ts +4 -3
  30. package/types/helpers/ui/keyboardUtils/getCommandKey.d.ts +0 -2
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.18",
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,11 +1,11 @@
1
- import { HierarchicalRecord, MdtRecord, RecordId } from "mdtScripts/common/Record";
2
- import { AnyObject, ColorStyle, FieldPath, LanguageId, Markdown, ModuleId, ObjectCode, ObjectId, ObjectTitle } from "mdtScripts/helpers/types";
1
+ import { HierarchicalRecord, MdtRecord, RecordId } from "../../../../scripts/common/Record";
2
+ import { AnyObject, ColorStyle, FieldPath, LanguageId, Markdown, ModuleId, ObjectCode, ObjectId, ObjectTitle } from "../../../../scripts/helpers/types";
3
3
  import { FETCH_COUNT_ALIAS } from "../ApiAccessorRequestAdapter/handlers/fetch/helpers/count/count";
4
4
  import { DataExtraInformation } from "../ApiAccessorRequestAdapter/handlers/messageTypes";
5
5
  import { ApiV1 } from "./apiV1Types";
6
6
  import { WithExpandedIds } from "../ApiAccessorRequestAdapter/handlers/fetch/helpers/query/exts/hierarchy/hierarchyQueryHelpersTypes";
7
- import { PermissionLevelString } from "mdtScripts/security/PermissionLevel";
8
- import { MessageUiType, UiType } from "mdtScripts/helpers/IUi";
7
+ import { PermissionLevelString } from "../../../../scripts/security/PermissionLevel";
8
+ import { MessageUiType, UiType } from "../../../../scripts/helpers/IUi";
9
9
  export declare namespace ApiV2 {
10
10
  namespace Request {
11
11
  type Common = (Save | AnyObject) & WithMessageAction;
@@ -1,4 +1,4 @@
1
- import { Query } from "mdtServices/api/Query";
1
+ import { Query } from "../../../../../../../../scripts/services/api/Query";
2
2
  export declare const FETCH_COUNT_ALIAS = "$Count";
3
3
  export declare type CountMap = {
4
4
  queryIdx: number;
@@ -1,6 +1,6 @@
1
- import { RecordId } from "mdtScripts/common/Record";
2
- import { FieldPath } from "mdtScripts/helpers/types";
3
- import { IFilter } from "mdtServices/IFilter";
1
+ import { RecordId } from "../../../../../../../../../common/Record";
2
+ import { FieldPath } from "../../../../../../../../../helpers/types";
3
+ import { IFilter } from "../../../../../../../../../services/IFilter";
4
4
  export declare type HierarchyQueryMeta = {
5
5
  hierarchy?: QueryHierarchyBaseData;
6
6
  hierarchyLoadMore?: QueryHierarchyLoadMoreData;
@@ -1,6 +1,6 @@
1
- import { MdtRecord, RecordId } from "mdtScripts/common/Record";
2
- import { UiType } from "mdtScripts/helpers/IUi";
3
- import { ServerResponseType } from "mdtServices/api/ServerResonseType";
1
+ import { MdtRecord, RecordId } from "../../../../../scripts/common/Record";
2
+ import { UiType } from "../../../../../scripts/helpers/IUi";
3
+ import { ServerResponseType } from "../../../../services/api/ServerResonseType";
4
4
  export interface DataExtraInformation {
5
5
  items: DataExtraInformationItems;
6
6
  type: ServerResponseType;
@@ -109,6 +109,8 @@ export interface ILegacyFacade {
109
109
  };
110
110
  PlaceInQueryHelpers: any;
111
111
  isApiV2: () => boolean;
112
+ ProgressBarCtrl: any;
113
+ ProgressBarStateController: any;
112
114
  }
113
115
  export interface ModulesLegacyFacade {
114
116
  pbi?: {
@@ -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
  * Используется в случае, если условия отображения узлов навигации изменились.
@@ -2,9 +2,9 @@ import { BaseQuery } from "../../../../services/api/BaseQuery";
2
2
  import { FetchResult } from "../../../../datasources/FetchResult";
3
3
  import { ApiRequestOptions } from "../../../../services/api/ApiRequestOptions";
4
4
  import { RecordId } from "../../../../common/Record";
5
- import { AnyObject } from "mdtScripts/helpers/types";
6
- import { MessageMetaData } from "mdtServices/api/ApiAccessorRequestAdapter/message/apiV2MessageTypes";
7
- import { ApiV2 } from "mdtServices/api/ApiAccessor/apiV2Types";
5
+ import { AnyObject } from "../../../../../scripts/helpers/types";
6
+ import { MessageMetaData } from "../../../../services/api/ApiAccessorRequestAdapter/message/apiV2MessageTypes";
7
+ import { ApiV2 } from "../../../../services/api/ApiAccessor/apiV2Types";
8
8
  export interface QueryParams {
9
9
  [param: string]: string | number;
10
10
  }
@@ -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,12 +258,24 @@ interface GraphicChartBlockOptions extends BaseChartBlockOptions {
254
258
  * @default 50
255
259
  */
256
260
  maxRecordCount?: number;
257
- /**
258
- * @title Отображение легенды
259
- * @description По умолчанию для круговых диаграмм отображается всегда, а для двумерных диаграмм - когда количество полей значений больше одного
260
- */
261
- legend?: boolean;
261
+ tooltip?: {
262
+ aggregator?: TooltipAggregator;
263
+ };
264
+ }
265
+ interface TooltipAggregator {
266
+ content?: (options: {
267
+ row: MdtChartsDataRow;
268
+ }) => TooltipAggregatorContent;
269
+ position?: "underKey" | "underValues";
262
270
  }
271
+ declare type TooltipAggregatorContent = {
272
+ type: "plainText";
273
+ textContent: string;
274
+ } | {
275
+ type: "captionValue";
276
+ caption: string;
277
+ value: any;
278
+ };
263
279
  export interface CommonCanvasOptions {
264
280
  bar?: BarCanvasOptions;
265
281
  }
@@ -296,6 +312,24 @@ export interface TwoDimensionalOptions extends GraphicChartBlockOptions {
296
312
  * @title Общие параметры холста графика
297
313
  */
298
314
  commonCanvasOptions?: CommonCanvasOptions;
315
+ legend?: boolean | {
316
+ show?: boolean;
317
+ position?: TwoDimChartLegendPosition;
318
+ };
319
+ valueLabels?: {
320
+ style?: ValueLabelsStyleOptions;
321
+ };
322
+ }
323
+ interface ValueLabelsStyleOptions {
324
+ cssClassName?: string;
325
+ /**
326
+ * @default 10
327
+ */
328
+ fontSize?: number;
329
+ /**
330
+ * @default rgba(68, 68, 68, 0.5)
331
+ */
332
+ color?: string;
299
333
  }
300
334
  /**
301
335
  * @title Круговая диаграмма
@@ -314,8 +348,13 @@ export interface PolarOptions extends GraphicChartBlockOptions {
314
348
  * @description Наименование поля, в котором хранится цвет для сегментов диаграммы.
315
349
  */
316
350
  colorField?: string;
351
+ /**
352
+ * @title Отображение легенды
353
+ * @description По умолчанию для круговых диаграмм отображается всегда
354
+ */
355
+ legend?: boolean;
317
356
  }
318
- export declare type TwoDimensionalChart = BarChart | LineChart | AreaChart;
357
+ export declare type TwoDimensionalChart = BarChart | LineChart | AreaChart | DotChart;
319
358
  interface TwoDimensionalChartOptions {
320
359
  /**
321
360
  * @title Параметры данных, привязанных к диаграмме
@@ -331,6 +370,10 @@ interface TwoDimensionalChartOptions {
331
370
  * @title Отображение диаграммы в сегментированном виде
332
371
  */
333
372
  isSegmented?: boolean;
373
+ /**
374
+ * @title Отображение подписей значений на диаграмме
375
+ */
376
+ valueLabels?: boolean;
334
377
  }
335
378
  /**
336
379
  * @title Гистограмма
@@ -423,6 +466,10 @@ interface BarChart extends TwoDimensionalChartOptions {
423
466
  labels?: boolean;
424
467
  /** @title Отображать в заштрихованном виде */
425
468
  hatched?: boolean;
469
+ borderRadius?: BarChartBorderRadius;
470
+ }
471
+ interface BarChartBorderRadius {
472
+ value?: number;
426
473
  }
427
474
  /**
428
475
  * @title Линейная диаграмма
@@ -439,6 +486,8 @@ interface AreaChart extends LineAreaChart {
439
486
  * @title Тип 2D-диаграммы
440
487
  */
441
488
  type: "area";
489
+ /** @title Включить градиент */
490
+ gradient?: boolean;
442
491
  }
443
492
  interface LineChart extends LineAreaChart {
444
493
  /**
@@ -447,6 +496,7 @@ interface LineChart extends LineAreaChart {
447
496
  type: "line";
448
497
  /** @title Управление пунктиром */
449
498
  dash?: LineDash;
499
+ width?: number;
450
500
  }
451
501
  interface LineDash {
452
502
  /** @title Включить пунктир */
@@ -456,6 +506,9 @@ interface LineDash {
456
506
  /** @title Размер между чертами в px */
457
507
  gapSize?: number;
458
508
  }
509
+ export interface DotChart extends TwoDimensionalChartOptions {
510
+ type: "dot";
511
+ }
459
512
  export interface PolarChart {
460
513
  /**
461
514
  * @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;
@@ -1,2 +0,0 @@
1
- export declare function getCommandKey(): "⌘" | "Ctrl";
2
- export declare function getModifierKey(): "⌥" | "Alt";