mdt-client 31.3.4 → 31.3.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mdt-client",
3
- "version": "31.3.4",
3
+ "version": "31.3.6",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,7 +20,6 @@ export interface Field extends Record {
20
20
  id_RefObject?: number;
21
21
  id_RefObjectField?: number;
22
22
  kind?: FieldKind;
23
- role?: string;
24
23
  length?: number;
25
24
  hasDefault?: boolean;
26
25
  extended?: boolean;
@@ -1,5 +1,19 @@
1
1
  import { CSSClassName } from "../types";
2
2
  declare type ClassNamesSimpleArg = CSSClassName | number | Record<CSSClassName, any> | undefined;
3
+ /**
4
+ * Тип для параметров функций classNames и mClassNames.
5
+ * Функции принимают любое количество аргументов, которые могут быть строкой, объектом или массивом.
6
+ *
7
+ * @example
8
+ * classNames('foo', 'bar'); // => 'foo bar'
9
+ * classNames('foo', { bar: true }); // => 'foo bar'
10
+ * classNames({ 'foo-bar': true }); // => 'foo-bar'
11
+ * classNames({ 'foo-bar': false }); // => ''
12
+ * classNames({ foo: true }, { bar: true }); // => 'foo bar'
13
+ * classNames({ foo: true, bar: true }); // => 'foo bar'
14
+ * classNames('foo', { bar: true, duck: false }, 'baz', { quux: true }); // => 'foo bar baz quux'
15
+ * classNames(null, false, 'bar', undefined, 0, { baz: null }, ''); // => 'bar'
16
+ */
3
17
  export declare type ClassNamesArg = ClassNamesSimpleArg | ClassNamesSimpleArg[];
4
18
  export declare function classNames(...args: ClassNamesArg[]): string;
5
19
  export declare function mClassNames(...args: ClassNamesArg[]): string;
@@ -243,10 +243,10 @@ export interface FilterConstructor {
243
243
  /**
244
244
  * Строится фильтр для поля на основании значений из другой таблицы
245
245
  * @param field Поле, по которому происходит фильтрация
246
- * @param table Таблица, из которой берутся значения
246
+ * @param objectCode Код объекта, из которой берутся значения. Может быть таблицей, представлением, функцей и т.д.
247
247
  * @param subField Поле, по которому происходит фильтрация в другой таблице
248
248
  * @param filter Фильтр, который применяется к другой таблице
249
- * @param args Аргументы фильтра
249
+ * @param args Аргументы для объекта (например для функции). Можно задать, например, в виде `{ Search: "Москва" }`.
250
250
  *
251
251
  * **Пример**
252
252
  *
@@ -255,7 +255,7 @@ export interface FilterConstructor {
255
255
  * Filter.queryIn('Title', 'mdt.Employee', 'Name', Filter.eq('Name', 'Ivan'))
256
256
  * ```
257
257
  */
258
- queryIn(field: string, table: string, subField: string, filter?: IFilter, args?: any[]): IFilterIn;
258
+ queryIn(field: string, objectCode: string, subField: string, filter?: IFilter, args?: any): IFilterIn;
259
259
  /**
260
260
  * Преобразует тип данных фильтра
261
261
  *
@@ -305,4 +305,5 @@ export declare class Filter {
305
305
  static equalTemplate(p1: any, p2: any): IFilter;
306
306
  static isFilterGroup(filter: IFilter): filter is IFilterGroup;
307
307
  static isFilterItem(filter: IFilter): filter is IFilterItem;
308
+ static getP2(filter: IFilter): string | number | QueryInValue | Date;
308
309
  }
@@ -25,3 +25,11 @@ export interface ApiRequestOptions {
25
25
  config?(xhr: XMLHttpRequest, options?: ApiRequestOptions): XMLHttpRequest;
26
26
  dataType?: string;
27
27
  }
28
+ export interface ApiRequestPromiseOptions extends ApiRequestOptions {
29
+ /**
30
+ * Определяет, нужно ли вызывать reject при ошибке. По умолчанию false, reject вызываться не будет.
31
+ *
32
+ * Нужно выставить true, если нужна явная обработка, все остальные серверные ошибки обрабатываются стандартным механизмом.
33
+ */
34
+ rejectPromiseOnError?: boolean;
35
+ }
@@ -40,6 +40,8 @@ export interface IFormOptions {
40
40
  primaryButton?: ButtonFacade;
41
41
  /** Подписаться на событие сохранения записи формы */
42
42
  onSave(record: Record<string, any>): any;
43
+ /** Подписаться на событие изменения записи формы */
44
+ onFieldUpdate?(field: Field, value: string, value$?: string, record?: MdtRecord): any;
43
45
  /** Запись по умолчанию */
44
46
  defaultValues?: Partial<MdtRecord>;
45
47
  /** Описание лэйаута формы */
@@ -122,4 +122,5 @@ export interface ILegacyFacade {
122
122
  layoutFormGroup: any;
123
123
  FilterSettings: any;
124
124
  TextFieldCtrl: any;
125
+ QuickFilterPipelines: any;
125
126
  }
@@ -11,6 +11,12 @@ export interface IListInitOptions {
11
11
  extConfig?: any;
12
12
  }
13
13
  export interface IListServiceFacade {
14
+ /** Переопределить опции и настройки компонента перед его инициализацией */
15
+ preConfig(callback: (args: {
16
+ list: IListControlFacade;
17
+ options: any;
18
+ extConfig: any;
19
+ }) => void): void;
14
20
  /** Подписаться на событие создания списка */
15
21
  onCreate(callback: (list: IListControlFacade) => void): void;
16
22
  /** Подписаться на событие окончания создания списка */
@@ -0,0 +1,70 @@
1
+ import { MdtRecord } from "mdtScripts/common/Record";
2
+ import { PredefinedValues } from "mdtServices/customModules/facades/internalModules/importModuleFacade";
3
+ import { Field } from "mdtScripts/common/Field";
4
+ import { Table } from "mdtScripts/common/Table";
5
+ interface ImportMapping {
6
+ columns: {
7
+ [fieldPath: string]: string;
8
+ };
9
+ keys: string[];
10
+ }
11
+ export interface ImportUploadData {
12
+ /** id записи */
13
+ entryId?: number;
14
+ /** Данные для маппинга */
15
+ mapping?: ImportMapping;
16
+ /** Данные для превью */
17
+ preview?: MdtRecord[];
18
+ }
19
+ /** Опции поля для импорта файла */
20
+ export interface ImportUploadCtrlOptions {
21
+ /** Изменение данных после загрузки либо удаления файла */
22
+ onChange?: (record: MdtRecord) => void;
23
+ /** id таблицы, в которую осуществляется импорт */
24
+ objectId?: number;
25
+ }
26
+ /** Опции для предпросмотра */
27
+ declare type ImportPreviewData = {
28
+ /** Данные для маппинга */
29
+ mapping?: ImportMapping;
30
+ /** Данные для превью */
31
+ preview?: MdtRecord[];
32
+ };
33
+ export interface ImportPreviewCtrlOptions {
34
+ getData: () => ImportPreviewData;
35
+ }
36
+ export interface MappingCtrlData extends PredefinedValues {
37
+ /** Игнорировать обязательное поле */
38
+ ignoreRequiredField?(field: Field): boolean;
39
+ /** Пропустить новую запись */
40
+ skipNew?: boolean;
41
+ /** Таблица */
42
+ table?: Table;
43
+ /** Можно ли добавлять записи */
44
+ canAdd?: number;
45
+ /** Скрыть чекбокс "Пропускать новые записи" */
46
+ hideCheckbox?: boolean;
47
+ /** Данные для маппинга */
48
+ mapping?: ImportMapping;
49
+ }
50
+ /** Опции для сопоставления колонок */
51
+ export interface MappingCtrlOptions {
52
+ getData: () => MappingCtrlData;
53
+ }
54
+ export interface ImportDefaultData {
55
+ /** Таблица */
56
+ table?: Table;
57
+ /** id записи */
58
+ entryId?: number;
59
+ }
60
+ /** Опции для значений по умолчанию */
61
+ export interface ImportDefaultValuesOptions {
62
+ getData: () => ImportDefaultData;
63
+ }
64
+ export interface ImportFormData extends PredefinedValues {
65
+ /** id записи */
66
+ entryId: number;
67
+ /** Пропустить новую запись */
68
+ skipNew: boolean;
69
+ }
70
+ export {};
@@ -1,12 +1,34 @@
1
1
  import { ViewControl } from "mdtScripts/helpers/types";
2
+ import { ImportFormData, ImportUploadCtrlOptions, ImportPreviewCtrlOptions, MappingCtrlOptions, ImportDefaultValuesOptions } from "./importFormCtrl.types";
2
3
  export interface ImportModuleFacade {
3
4
  "mdt.import": {
4
5
  ImportForm: ImportFormFacade;
6
+ ImportUploadCtrl: ImportUploadCtrlFacade;
7
+ ImportPreviewCtrl: ImportPreviewCtrlFacade;
8
+ ImportMappingCtrl: ImportMappingCtrlFacade;
9
+ ImportDefaultValues: ImportDefaultValuesFacade;
10
+ ImportService: ImportServiceFacade;
5
11
  };
6
12
  }
7
13
  export interface ImportFormFacade {
8
14
  new (objectCode: string, options?: ImportFormOptions): ViewControl;
9
15
  }
16
+ export interface ImportServiceFacade {
17
+ import(data: ImportFormData, { onSuccessfullyCompleted }: ImportManagerImportOptions): void;
18
+ getUploadUrl(tableId: number): void;
19
+ }
20
+ export interface ImportUploadCtrlFacade {
21
+ new (options: ImportUploadCtrlOptions): ViewControl;
22
+ }
23
+ export interface ImportPreviewCtrlFacade {
24
+ new (options: ImportPreviewCtrlOptions): ViewControl;
25
+ }
26
+ export interface ImportMappingCtrlFacade {
27
+ new (options: MappingCtrlOptions): ViewControl;
28
+ }
29
+ export interface ImportDefaultValuesFacade {
30
+ new (options: ImportDefaultValuesOptions): ViewControl;
31
+ }
10
32
  export interface PredefinedValues {
11
33
  predefinedValues?: PredefinedValue[];
12
34
  }
@@ -14,6 +36,13 @@ export interface PredefinedValue {
14
36
  field: string;
15
37
  value: string | number;
16
38
  }
17
- export interface ImportFormOptions extends PredefinedValues {
39
+ export interface ImportFormSkipRequired {
40
+ /** Позволяет импортировать данные, даже если не все обязательные поля заполнены */
41
+ skipRequiredFieldsCheck?: boolean;
42
+ }
43
+ export interface ImportFormOptions extends PredefinedValues, ImportFormSkipRequired {
18
44
  onSuccessfullyCompleted?: () => void;
19
45
  }
46
+ export interface ImportManagerImportOptions {
47
+ onSuccessfullyCompleted: () => void;
48
+ }
@@ -1,3 +1,4 @@
1
+ import { Table } from "mdtScripts/common/Table";
1
2
  import { ObjectId } from "../../../../helpers/types";
2
3
  import { IFieldFacade } from "./IFieldFacade";
3
4
  export interface IObjectFacade {
@@ -6,6 +7,7 @@ export interface IObjectFacade {
6
7
  getIcon(): string | undefined;
7
8
  getPrimaryField(): IFieldFacade | undefined;
8
9
  getDefaultField(): IFieldFacade | undefined;
10
+ getObject(): Table;
9
11
  isReadonly(): boolean;
10
12
  getField(code: string, check?: boolean): IFieldFacade | undefined;
11
13
  getId(): ObjectId | undefined;
@@ -4,6 +4,8 @@ export interface FormPageOptions {
4
4
  readonly?: boolean | (() => boolean);
5
5
  /** Создавать автоматически новую запись, если не существует */
6
6
  createIfNotExists?: boolean;
7
+ /** Кнопка удаления на форме */
8
+ deleteButton?: false | Button;
7
9
  /** Настройки кнопки */
8
10
  primaryButton?: Button;
9
11
  /** Скрывать заголовок */