mdt-client 31.3.20 → 31.3.21

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 (131) hide show
  1. package/dist/index.d.ts +10 -11
  2. package/dist/index.js +16 -16
  3. package/package.json +29 -29
  4. package/readme.md +15 -15
  5. package/types/common/Datasource.d.ts +9 -9
  6. package/types/common/Field.d.ts +51 -51
  7. package/types/common/FieldSettings.schema.d.ts +8 -8
  8. package/types/common/MdtField.d.ts +9 -9
  9. package/types/common/MdtObject.d.ts +7 -7
  10. package/types/common/Record.d.ts +27 -27
  11. package/types/common/Table.d.ts +66 -66
  12. package/types/common/list/group/groupTypes.d.ts +30 -30
  13. package/types/common/list/hierarchy/hierarchyTypes.d.ts +48 -48
  14. package/types/common/serverMessage/ServerMessageTypes.d.ts +17 -17
  15. package/types/components/baseFormControls/input/inputOptions.d.ts +30 -31
  16. package/types/components/baseFormControls/maskedInput/MaskFormatter.types.d.ts +2 -2
  17. package/types/components/button/baseButton/buttonOptions.d.ts +12 -12
  18. package/types/components/buttonGroup/buttonGroupOptions.d.ts +7 -7
  19. package/types/components/dropdown/menu/item/dropdownInputItemOptions.d.ts +5 -5
  20. package/types/components/dropdown/menu/item/dropdownItemWrapOptions.d.ts +19 -19
  21. package/types/components/dropdown/menuActionItem/dropdownMenuItemOptions.d.ts +32 -32
  22. package/types/components/form/fieldView/fieldViewOptions.d.ts +13 -13
  23. package/types/components/form/label/labelOptions.d.ts +22 -22
  24. package/types/components/icon/iconOptions.d.ts +21 -22
  25. package/types/components/iconButton/iconButtonOptions.d.ts +9 -10
  26. package/types/components/processPrincipalsList/ProcessPrincipalsListItem.d.ts +5 -5
  27. package/types/components/resizablePanels/panelTitle/panelTitleOptions.d.ts +16 -16
  28. package/types/components/resizablePanels/panelToolbar/panelToolbarOptions.d.ts +4 -4
  29. package/types/components/resizablePanels/resizablePanel/resizablePanelOptions.d.ts +24 -24
  30. package/types/components/resizablePanels/resizablePanelsOptions.d.ts +22 -22
  31. package/types/components/toggleablePanels/toggleablePanelsOptions.d.ts +40 -40
  32. package/types/data/active/ActivationListAdapterTypes.d.ts +6 -6
  33. package/types/datasources/FetchResult.d.ts +5 -5
  34. package/types/helpers/IUi.d.ts +2 -2
  35. package/types/helpers/deleteFromArray.d.ts +1 -1
  36. package/types/helpers/events/EventEmitter.d.ts +12 -12
  37. package/types/helpers/fireEvent.d.ts +4 -4
  38. package/types/helpers/formatOptions.d.ts +14 -14
  39. package/types/helpers/formattedText.d.ts +8 -8
  40. package/types/helpers/pipeline/ImmutableArgPipeline.d.ts +7 -7
  41. package/types/helpers/pipeline/Pipeline.d.ts +20 -20
  42. package/types/helpers/redraw.d.ts +16 -16
  43. package/types/helpers/types.d.ts +84 -85
  44. package/types/helpers/ui/elementModificators/focusableComponent.d.ts +14 -15
  45. package/types/helpers/ui/elementModificators/modificatorsTypes.d.ts +4 -4
  46. package/types/helpers/ui/keyboardUtils/getKeySymbol.d.ts +2 -2
  47. package/types/helpers/ui/keyboardUtils/keyboardUtils.d.ts +23 -23
  48. package/types/helpers/ui/keyboardUtils/osByUserAgent.d.ts +1 -1
  49. package/types/helpers/utils/classNames.d.ts +20 -20
  50. package/types/helpers/utils/keyStorage/KeyStorage.d.ts +6 -6
  51. package/types/helpers/utils/memoization/memoize.d.ts +18 -18
  52. package/types/helpers/utils/object.d.ts +4 -4
  53. package/types/helpers/utils/stringifyControlSize.d.ts +3 -3
  54. package/types/helpers/utils/valued/getValued.d.ts +18 -18
  55. package/types/helpers/zone/IZone.d.ts +7 -8
  56. package/types/security/PermissionLevel.d.ts +40 -40
  57. package/types/security/User.d.ts +19 -19
  58. package/types/services/HotkeyManager.d.ts +6 -6
  59. package/types/services/IFilter.d.ts +322 -322
  60. package/types/services/ModuleData.d.ts +9 -9
  61. package/types/services/api/ApiAccessor/apiV1Types.d.ts +266 -266
  62. package/types/services/api/ApiAccessor/apiV2Types.d.ts +583 -577
  63. package/types/services/api/ApiAccessor/binding/bindingApiTypes.d.ts +37 -0
  64. package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/count/count.d.ts +10 -10
  65. package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/query/exts/hierarchy/hierarchyQueryHelpersTypes.d.ts +28 -28
  66. package/types/services/api/ApiAccessorRequestAdapter/handlers/fetch/helpers/query/exts/placeIn/placeInQueryTypes.d.ts +9 -9
  67. package/types/services/api/ApiAccessorRequestAdapter/handlers/messageTypes.d.ts +37 -37
  68. package/types/services/api/ApiAccessorRequestAdapter/message/apiV2MessageTypes.d.ts +2 -2
  69. package/types/services/api/ApiRequestOptions.d.ts +43 -43
  70. package/types/services/api/BaseQuery.d.ts +23 -23
  71. package/types/services/api/Query.d.ts +59 -59
  72. package/types/services/api/QuerySorting.d.ts +18 -18
  73. package/types/services/api/ServerResonseType.d.ts +2 -2
  74. package/types/services/commands/Command.d.ts +22 -22
  75. package/types/services/commands/CommandGroup.d.ts +15 -15
  76. package/types/services/commands/CommandManager.d.ts +77 -77
  77. package/types/services/customModules/facades/Form/IFieldControlFacade.d.ts +26 -26
  78. package/types/services/customModules/facades/Form/IFieldControlManagerFacade.d.ts +36 -36
  79. package/types/services/customModules/facades/Form/IFieldStateFacade.d.ts +13 -13
  80. package/types/services/customModules/facades/Form/IFormControlFacade.d.ts +133 -133
  81. package/types/services/customModules/facades/Form/IFormFacade.d.ts +101 -101
  82. package/types/services/customModules/facades/IAppFacade.d.ts +38 -38
  83. package/types/services/customModules/facades/IAuthFacade.d.ts +9 -9
  84. package/types/services/customModules/facades/ILegacyFacade.d.ts +151 -147
  85. package/types/services/customModules/facades/IMdtFacade.d.ts +81 -82
  86. package/types/services/customModules/facades/IModuleRegistryFacade.d.ts +5 -5
  87. package/types/services/customModules/facades/IPageFacade.d.ts +7 -7
  88. package/types/services/customModules/facades/List/Column/IColumnFacade.d.ts +7 -7
  89. package/types/services/customModules/facades/List/IListCellFacade.d.ts +8 -8
  90. package/types/services/customModules/facades/List/IListComponentFacade.d.ts +10 -10
  91. package/types/services/customModules/facades/List/IListControlFacade.d.ts +88 -88
  92. package/types/services/customModules/facades/List/IListRowFacade.d.ts +2 -2
  93. package/types/services/customModules/facades/List/IListServiceFacade.d.ts +53 -53
  94. package/types/services/customModules/facades/components/CodeEditorFacade.d.ts +9 -9
  95. package/types/services/customModules/facades/components/ModalFacade.d.ts +4 -4
  96. package/types/services/customModules/facades/formDashboard/IFormDashboard.d.ts +15 -15
  97. package/types/services/customModules/facades/internalModules/importFormCtrl.types.d.ts +76 -76
  98. package/types/services/customModules/facades/internalModules/importModuleFacade.d.ts +48 -48
  99. package/types/services/customModules/facades/internalModules/modulesFacadeTypes.d.ts +11 -11
  100. package/types/services/customModules/facades/internalModules/statusFacade.d.ts +13 -13
  101. package/types/services/customModules/facades/record/IRecordFacade.d.ts +13 -13
  102. package/types/services/customModules/facades/record/IRecordManagerFacade.d.ts +5 -5
  103. package/types/services/customModules/facades/schema/IFieldFacade.d.ts +11 -11
  104. package/types/services/customModules/facades/schema/IObjectFacade.d.ts +15 -15
  105. package/types/services/customModules/facades/schema/ISchemaFacade.d.ts +11 -11
  106. package/types/services/customModules/facades/services/CommandManagerFacade.d.ts +11 -11
  107. package/types/services/customModules/facades/services/IListButtonExtendPipelineService.d.ts +13 -13
  108. package/types/services/customModules/facades/services/INavigationFacade.d.ts +87 -87
  109. package/types/services/customModules/facades/services/ISecurityFacade.d.ts +13 -13
  110. package/types/services/customModules/facades/utils/IApiFacade.d.ts +91 -92
  111. package/types/services/customModules/facades/utils/IUiComponentsFacade.d.ts +85 -81
  112. package/types/services/customModules/facades/utils/IUiFacade.d.ts +83 -84
  113. package/types/services/customModules/facades/utils/IUtilsFacade.d.ts +26 -26
  114. package/types/services/customModules/facades/utils/ImUtilsFacade.d.ts +25 -26
  115. package/types/services/dropdown/IDropDownMenu.d.ts +40 -41
  116. package/types/services/e2e/e2eServiceType.d.ts +11 -11
  117. package/types/views/controls/Control.d.ts +7 -7
  118. package/types/views/controls/panels/panelOptions.d.ts +15 -15
  119. package/types/views/form/controls/commonControl/ICommonControl.d.ts +28 -29
  120. package/types/views/form/controls/fileupload/FileInputFacade.types.d.ts +6 -6
  121. package/types/views/form/controls/monacoEditor/MonacoCodeOptions.schema.d.ts +23 -23
  122. package/types/views/form/controls/monacoEditor/jsonSchemas/Button.schema.d.ts +70 -70
  123. package/types/views/form/controls/picker/multiPickerFacade/IMultiPickerFacade.d.ts +36 -36
  124. package/types/views/form/controls/toggleablePanels/editor/toggleablePanelsEditorFacadeOptions.d.ts +21 -21
  125. package/types/views/form/formTypes.d.ts +4 -4
  126. package/types/views/form/schema/FormPageOptions.schema.d.ts +19 -19
  127. package/types/views/list/IListView.d.ts +70 -71
  128. package/types/views/list/schema/ListPageOptions.schema.d.ts +116 -116
  129. package/types/views/page/PageZoneTypes.d.ts +1 -1
  130. package/types/views/page/charts/ChartControlOptions.schema.d.ts +617 -569
  131. package/types/views/page/charts/facade/I/320/241hartControlFacade.d.ts +24 -23
@@ -1,322 +1,322 @@
1
- /**
2
- * Фильтр
3
- *
4
- * @default { "op": "eq", "p1": "", "p2": "" }
5
- */
6
- export declare type IFilter = IFilterItem | IFilterGroup | IFilterIn;
7
- export declare type FilterKeys = keyof IFilter | keyof IFilterItem | keyof IFilterGroup;
8
- export declare type FilterUserIdOp = "userId";
9
- export declare type FilterOp = "eq" | "ne" | "gt" | "ge" | "lt" | "le" | "startsWith" | "endsWith" | "contains" | "fulltext" | "equalTemplate" | "queryIn" | "notStartsWith" | "notContains" | "notEndsWith" | "null" | "notNull" | FilterUserIdOp | FilterInOperation;
10
- export declare type FilterGroupOp = "and" | "or";
11
- export declare type AnyFilterOp = FilterOp | FilterGroupOp;
12
- export interface QueryInValue {
13
- table?: string;
14
- field?: string;
15
- args?: string;
16
- filter?: IFilter;
17
- }
18
- /** Группировка фильтров */
19
- export interface IFilterGroup {
20
- op: FilterGroupOp;
21
- groups: IFilter[];
22
- not?: boolean;
23
- }
24
- /** Фильтр */
25
- export interface IFilterItem {
26
- op: FilterOp;
27
- /** Поле, по которому происходит фильтрация */
28
- p1: string;
29
- /** Значение фильтра */
30
- p2: string | number | Date | QueryInValue;
31
- not?: boolean;
32
- cast?: "date";
33
- }
34
- declare const filterInOp = "in";
35
- export declare type FilterInOperation = typeof filterInOp;
36
- /** Фильтр */
37
- export interface IFilterIn extends Omit<IFilterItem, "op" | "p2"> {
38
- op: FilterInOperation;
39
- p2: {
40
- table: string;
41
- field: string;
42
- filter?: IFilter;
43
- args?: QueryInArgs;
44
- } | (string | Date)[];
45
- }
46
- export declare type QueryInArgs = ArgValue[] | {
47
- [k: string]: ArgValue;
48
- };
49
- declare type ArgValue = any;
50
- export interface IFilterQueryIn extends Omit<IFilterIn, "op" | "p2"> {
51
- op: FilterInOperation | "queryIn";
52
- p2: QueryInValue;
53
- }
54
- export interface FilterSetterOptions {
55
- fireEvents?: boolean;
56
- }
57
- export interface FilterConstructor {
58
- new (): Filter;
59
- /**
60
- * Создает группу фильтров, где все условия должны быть выполнены
61
- *
62
- * @param groups Группа фильтров - указываются необходимые фильтры
63
- *
64
- * **Пример**
65
- *
66
- * Поле `Name` должно быть равно `Ivan` и поле `LastName` должно быть равно `Ivanov`
67
- * ```js
68
- * Filter.and(Filter.eq('Name', 'Ivan'), Filter.eq('LastName', 'Ivanov'))
69
- * ```
70
- */
71
- and(...groups: IFilter[]): IFilterGroup;
72
- /**
73
- * Создает группу фильтров, где хотя бы одно условие должно быть выполнено
74
- *
75
- * @param groups Группа фильтров - указываются необходимые фильтры
76
- *
77
- * Поле `Name` должно быть равно `Ivan` или поле `Name` должно быть равно `Petr`
78
- * **Пример**
79
- *
80
- * ```js
81
- * Filter.or(Filter.eq('Name', 'Ivan'), Filter.eq('Name', 'Petr'))
82
- * ```
83
- */
84
- or(...groups: IFilter[]): IFilterGroup;
85
- /**
86
- * Создает фильтр, который проверяет равенство значения поля заданному значению
87
- *
88
- * @param fieldPath Поле, по которому происходит фильтрация
89
- * @param value Значение фильтра
90
- *
91
- * **Пример**
92
- *
93
- * Поле `Name` должно быть равно `Ivan`
94
- * ```js
95
- * Filter.eq('Name', 'Ivan')
96
- * ```
97
- */
98
- eq(fieldPath: string, value: any): IFilterItem;
99
- /**
100
- * Создает фильтр, который проверяет неравенство значения поля заданному значению
101
- *
102
- * @param fieldPath Поле, по которому происходит фильтрация
103
- * @param value Значение фильтра
104
- *
105
- * **Пример**
106
- *
107
- * Поле `Name` не должно быть равно `Ivan`
108
- * ```js
109
- * Filter.ne('Name', 'Ivan')
110
- * ```
111
- */
112
- ne(fieldPath: string, value: any): IFilterItem;
113
- /**
114
- * Создает фильтр, который проверяет, что значение указанного поля больше заданного значения
115
- *
116
- * @param fieldPath Поле, по которому происходит фильтрация
117
- * @param value Значение фильтра
118
- *
119
- * **Пример**
120
- *
121
- * Поле `SumOrder` должно быть больше `100000`
122
- * ```js
123
- * Filter.gt('SumOrder', 100000)
124
- * ```
125
- */
126
- gt(fieldPath: string, value: any): IFilterItem;
127
- /**
128
- * Создает фильтр, который проверяет, что значение указанного поля больше или равно заданному значению
129
- *
130
- * @param fieldPath Поле, по которому происходит фильтрация
131
- * @param value Значение фильтра
132
- *
133
- * **Пример**
134
- *
135
- * Поле `SumOrder` должно быть больше или равно `100000`
136
- * ```js
137
- * Filter.ge('SumOrder', 100000)
138
- * ```
139
- */
140
- ge(fieldPath: string, value: any): IFilterItem;
141
- /**
142
- * Создает фильтр, который проверяет, что значение указанного поля меньше заданного значения
143
- *
144
- * @param fieldPath Поле, по которому происходит фильтрация
145
- * @param value Значение фильтра
146
- *
147
- * **Пример**
148
- *
149
- * Поле `SumOrder` должно быть меньше `100000`
150
- * ```js
151
- * Filter.lt('SumOrder', 100000)
152
- * ```
153
- */
154
- lt(fieldPath: string, value: any): IFilterItem;
155
- /**
156
- * Создает фильтр, который проверяет, что значение указанного поля меньше или равно заданному значению
157
- *
158
- * @param fieldPath Поле, по которому происходит фильтрация
159
- * @param value Значение фильтра
160
- *
161
- * **Пример**
162
- *
163
- * Поле `SumOrder` должно быть меньше или равно `100000`
164
- * ```js
165
- * Filter.le('SumOrder', 100000)
166
- * ```
167
- */
168
- le(fieldPath: string, value: any): IFilterItem;
169
- /**
170
- * Создает фильтр, который проверяет, начинается ли значение указанного поля с заданной подстроки
171
- *
172
- * @param fieldPath Поле, по которому происходит фильтрация
173
- * @param value Подстрока, с которой должно начинаться значение
174
- *
175
- * **Пример**
176
- *
177
- * Поле `LastName` должно начинаться с `Al`
178
- * ```js
179
- * Filter.startsWith('LastName', 'Al')
180
- * ```
181
- */
182
- startsWith(fieldPath: string, value: any): IFilterItem;
183
- /**
184
- * Создает фильтр, который проверяет, заканчивается ли значение указанного поля на заданную подстроку
185
- *
186
- * @param fieldPath Поле, по которому происходит фильтрация
187
- * @param value Подстрока, с которой должно заканчиваться значение
188
- *
189
- * **Пример**
190
- *
191
- * Поле `LastName` должно заканчиваться на `ov`
192
- * ```js
193
- * Filter.endsWith('LastName', 'ov')
194
- * ```
195
- */
196
- endsWith(fieldPath: string, value: any): IFilterItem;
197
- /**
198
- * Создает фильтр, который проверяет, содержит ли значение указанного поля заданную подстроку
199
- *
200
- * @param fieldPath Поле, по которому происходит фильтрация
201
- * @param value Подстрока, которую должно содержать значение
202
- *
203
- * **Пример**
204
- *
205
- * Поле `LastName` должно содержать `an`
206
- * ```js
207
- * Filter.contains('LastName', 'an')
208
- * ```
209
- */
210
- contains(fieldPath: string, value: any): IFilterItem;
211
- /**
212
- * Создает фильтр для полнотекстового поиска по указанному полю
213
- *
214
- * @param fieldPath Поле, по которому происходит фильтрация
215
- * @param value Подстрока, которую должно содержать значение
216
- *
217
- * **Пример**
218
- *
219
- * Поле `Description` должно содержать `example`
220
- * ```js
221
- * Filter.fulltext('Description', 'example');
222
- * ```
223
- */
224
- fulltext(fieldPath: string, value: any): IFilterItem;
225
- /**
226
- * Создает фильтр, который исключает значения, соответствующие указанному фильтру
227
- *
228
- * @param filter Фильтр
229
- *
230
- * **Пример**
231
- *
232
- * Поле `Name` должно содержать любое значение кроме `Ivan`
233
- * ```js
234
- * Filter.not(Filter.eq('Name', 'Ivan'))
235
- * ```
236
- */
237
- not(filter: IFilterItem | IFilterIn): IFilterItem;
238
- /**
239
- * Фильтр, проверяющий, что поле содержит одно из перечисленных значений
240
- *
241
- * @param fieldPath Поле, по которому происходит фильтрация
242
- * @param array Массив значений
243
- *
244
- * **Пример**
245
- *
246
- * Поле `Name` должно содержать либо значение `Ivan`, либо `Petr`
247
- * ```js
248
- * Filter.in('Name', ['Ivan', 'Petr'])
249
- * ```
250
- */
251
- in(fieldPath: string, array: any[]): IFilterIn;
252
- /**
253
- * Строится фильтр для поля на основании значений из другой таблицы
254
- * @param field Поле, по которому происходит фильтрация
255
- * @param objectCode Код объекта, из которой берутся значения. Может быть таблицей, представлением, функцей и т.д.
256
- * @param subField Поле, по которому происходит фильтрация в другой таблице
257
- * @param filter Фильтр, который применяется к другой таблице
258
- * @param args Аргументы для объекта (например для функции). Можно задать, например, в виде `{ Search: "Москва" }`.
259
- *
260
- * **Пример**
261
- *
262
- * Отфильтруется поле `Title` текущей таблицы по полю `Name` таблицы `mdt.Employee`, где поле `Name` равно `Ivan`
263
- * ```js
264
- * Filter.queryIn('Title', 'mdt.Employee', 'Name', Filter.eq('Name', 'Ivan'))
265
- * ```
266
- */
267
- queryIn(field: string, objectCode: string, subField: string, filter?: IFilter, args?: any): IFilterIn;
268
- /**
269
- * Преобразует тип данных фильтра
270
- *
271
- * @param filter Фильтр
272
- * @param cast Значение, к типу которого приводится фильтр
273
- *
274
- * **Пример**
275
- *
276
- * Значение поля `DateTime` приводится к типу `date` (`value` содержит значение типа `datetime`)
277
- * ```js
278
- * Filter.cast(Filter.eq('DateTime', value), 'date')
279
- * ```
280
- */
281
- cast(filter: IFilter, cast: string): IFilter;
282
- /**
283
- * Проверка, что фильтр пустой
284
- *
285
- * **Пример**
286
- *
287
- * Проверка, что `filter` пустой
288
- * ```js
289
- * if (filter === Filter.empty) { ... }
290
- * ```
291
- */
292
- empty: any;
293
- }
294
- export declare class Filter {
295
- static empty: IFilter;
296
- static isEmptyFilter(filter: IFilter): boolean;
297
- static mergeFilters(orig: IFilter, filter: IFilter): IFilter;
298
- static and(...groups: any[]): IFilterGroup;
299
- static or(...groups: any[]): IFilterGroup;
300
- static eq(p1: any, p2: any): IFilterItem;
301
- static ne(p1: any, p2: any): IFilterItem;
302
- static gt(p1: any, p2: any): IFilterItem;
303
- static ge(p1: any, p2: any): IFilterItem;
304
- static lt(p1: any, p2: any): IFilterItem;
305
- static le(p1: any, p2: any): IFilterItem;
306
- static startsWith(p1: any, p2: any): IFilterItem;
307
- static endsWith(p1: any, p2: any): IFilterItem;
308
- static contains(p1: any, p2: any): IFilterItem;
309
- static fulltext(p1: any, p2: any): IFilterItem;
310
- static not(f: any): IFilterItem;
311
- static in(p1: any, ar: any): IFilterIn;
312
- static queryIn(field: any, table: any, subField: any, filter?: any, args?: any): IFilterIn;
313
- static cast(filter: any, cast: any): IFilter;
314
- static equalTemplate(p1: any, p2: any): IFilter;
315
- static isFilter(filter: unknown): filter is IFilter;
316
- static isFilterGroup(filter: IFilter): filter is IFilterGroup;
317
- static isFilterItem(filter: IFilter): filter is IFilterItem;
318
- static isFilterIn(filter: IFilter): filter is IFilterIn;
319
- static isFilterQueryIn(filter: IFilter): filter is IFilterQueryIn;
320
- static getP2(filter: IFilter): string | number | QueryInValue | Date;
321
- }
322
- export {};
1
+ /**
2
+ * Фильтр
3
+ *
4
+ * @default { "op": "eq", "p1": "", "p2": "" }
5
+ */
6
+ export declare type IFilter = IFilterItem | IFilterGroup | IFilterIn;
7
+ export declare type FilterKeys = keyof IFilter | keyof IFilterItem | keyof IFilterGroup;
8
+ export declare type FilterUserIdOp = "userId";
9
+ export declare type FilterOp = "eq" | "ne" | "gt" | "ge" | "lt" | "le" | "startsWith" | "endsWith" | "contains" | "fulltext" | "equalTemplate" | "queryIn" | "notStartsWith" | "notContains" | "notEndsWith" | "null" | "notNull" | FilterUserIdOp | FilterInOperation;
10
+ export declare type FilterGroupOp = "and" | "or";
11
+ export declare type AnyFilterOp = FilterOp | FilterGroupOp;
12
+ export interface QueryInValue {
13
+ table?: string;
14
+ field?: string;
15
+ args?: string;
16
+ filter?: IFilter;
17
+ }
18
+ /** Группировка фильтров */
19
+ export interface IFilterGroup {
20
+ op: FilterGroupOp;
21
+ groups: IFilter[];
22
+ not?: boolean;
23
+ }
24
+ /** Фильтр */
25
+ export interface IFilterItem {
26
+ op: FilterOp;
27
+ /** Поле, по которому происходит фильтрация */
28
+ p1: string;
29
+ /** Значение фильтра */
30
+ p2: string | number | Date | QueryInValue;
31
+ not?: boolean;
32
+ cast?: "date";
33
+ }
34
+ declare const filterInOp = "in";
35
+ export declare type FilterInOperation = typeof filterInOp;
36
+ /** Фильтр */
37
+ export interface IFilterIn extends Omit<IFilterItem, "op" | "p2"> {
38
+ op: FilterInOperation;
39
+ p2: {
40
+ table: string;
41
+ field: string;
42
+ filter?: IFilter;
43
+ args?: QueryInArgs;
44
+ } | (string | Date)[];
45
+ }
46
+ export declare type QueryInArgs = ArgValue[] | {
47
+ [k: string]: ArgValue;
48
+ };
49
+ declare type ArgValue = any;
50
+ export interface IFilterQueryIn extends Omit<IFilterIn, "op" | "p2"> {
51
+ op: FilterInOperation | "queryIn";
52
+ p2: QueryInValue;
53
+ }
54
+ export interface FilterSetterOptions {
55
+ fireEvents?: boolean;
56
+ }
57
+ export interface FilterConstructor {
58
+ new (): Filter;
59
+ /**
60
+ * Создает группу фильтров, где все условия должны быть выполнены
61
+ *
62
+ * @param groups Группа фильтров - указываются необходимые фильтры
63
+ *
64
+ * **Пример**
65
+ *
66
+ * Поле `Name` должно быть равно `Ivan` и поле `LastName` должно быть равно `Ivanov`
67
+ * ```js
68
+ * Filter.and(Filter.eq('Name', 'Ivan'), Filter.eq('LastName', 'Ivanov'))
69
+ * ```
70
+ */
71
+ and(...groups: IFilter[]): IFilterGroup;
72
+ /**
73
+ * Создает группу фильтров, где хотя бы одно условие должно быть выполнено
74
+ *
75
+ * @param groups Группа фильтров - указываются необходимые фильтры
76
+ *
77
+ * Поле `Name` должно быть равно `Ivan` или поле `Name` должно быть равно `Petr`
78
+ * **Пример**
79
+ *
80
+ * ```js
81
+ * Filter.or(Filter.eq('Name', 'Ivan'), Filter.eq('Name', 'Petr'))
82
+ * ```
83
+ */
84
+ or(...groups: IFilter[]): IFilterGroup;
85
+ /**
86
+ * Создает фильтр, который проверяет равенство значения поля заданному значению
87
+ *
88
+ * @param fieldPath Поле, по которому происходит фильтрация
89
+ * @param value Значение фильтра
90
+ *
91
+ * **Пример**
92
+ *
93
+ * Поле `Name` должно быть равно `Ivan`
94
+ * ```js
95
+ * Filter.eq('Name', 'Ivan')
96
+ * ```
97
+ */
98
+ eq(fieldPath: string, value: any): IFilterItem;
99
+ /**
100
+ * Создает фильтр, который проверяет неравенство значения поля заданному значению
101
+ *
102
+ * @param fieldPath Поле, по которому происходит фильтрация
103
+ * @param value Значение фильтра
104
+ *
105
+ * **Пример**
106
+ *
107
+ * Поле `Name` не должно быть равно `Ivan`
108
+ * ```js
109
+ * Filter.ne('Name', 'Ivan')
110
+ * ```
111
+ */
112
+ ne(fieldPath: string, value: any): IFilterItem;
113
+ /**
114
+ * Создает фильтр, который проверяет, что значение указанного поля больше заданного значения
115
+ *
116
+ * @param fieldPath Поле, по которому происходит фильтрация
117
+ * @param value Значение фильтра
118
+ *
119
+ * **Пример**
120
+ *
121
+ * Поле `SumOrder` должно быть больше `100000`
122
+ * ```js
123
+ * Filter.gt('SumOrder', 100000)
124
+ * ```
125
+ */
126
+ gt(fieldPath: string, value: any): IFilterItem;
127
+ /**
128
+ * Создает фильтр, который проверяет, что значение указанного поля больше или равно заданному значению
129
+ *
130
+ * @param fieldPath Поле, по которому происходит фильтрация
131
+ * @param value Значение фильтра
132
+ *
133
+ * **Пример**
134
+ *
135
+ * Поле `SumOrder` должно быть больше или равно `100000`
136
+ * ```js
137
+ * Filter.ge('SumOrder', 100000)
138
+ * ```
139
+ */
140
+ ge(fieldPath: string, value: any): IFilterItem;
141
+ /**
142
+ * Создает фильтр, который проверяет, что значение указанного поля меньше заданного значения
143
+ *
144
+ * @param fieldPath Поле, по которому происходит фильтрация
145
+ * @param value Значение фильтра
146
+ *
147
+ * **Пример**
148
+ *
149
+ * Поле `SumOrder` должно быть меньше `100000`
150
+ * ```js
151
+ * Filter.lt('SumOrder', 100000)
152
+ * ```
153
+ */
154
+ lt(fieldPath: string, value: any): IFilterItem;
155
+ /**
156
+ * Создает фильтр, который проверяет, что значение указанного поля меньше или равно заданному значению
157
+ *
158
+ * @param fieldPath Поле, по которому происходит фильтрация
159
+ * @param value Значение фильтра
160
+ *
161
+ * **Пример**
162
+ *
163
+ * Поле `SumOrder` должно быть меньше или равно `100000`
164
+ * ```js
165
+ * Filter.le('SumOrder', 100000)
166
+ * ```
167
+ */
168
+ le(fieldPath: string, value: any): IFilterItem;
169
+ /**
170
+ * Создает фильтр, который проверяет, начинается ли значение указанного поля с заданной подстроки
171
+ *
172
+ * @param fieldPath Поле, по которому происходит фильтрация
173
+ * @param value Подстрока, с которой должно начинаться значение
174
+ *
175
+ * **Пример**
176
+ *
177
+ * Поле `LastName` должно начинаться с `Al`
178
+ * ```js
179
+ * Filter.startsWith('LastName', 'Al')
180
+ * ```
181
+ */
182
+ startsWith(fieldPath: string, value: any): IFilterItem;
183
+ /**
184
+ * Создает фильтр, который проверяет, заканчивается ли значение указанного поля на заданную подстроку
185
+ *
186
+ * @param fieldPath Поле, по которому происходит фильтрация
187
+ * @param value Подстрока, с которой должно заканчиваться значение
188
+ *
189
+ * **Пример**
190
+ *
191
+ * Поле `LastName` должно заканчиваться на `ov`
192
+ * ```js
193
+ * Filter.endsWith('LastName', 'ov')
194
+ * ```
195
+ */
196
+ endsWith(fieldPath: string, value: any): IFilterItem;
197
+ /**
198
+ * Создает фильтр, который проверяет, содержит ли значение указанного поля заданную подстроку
199
+ *
200
+ * @param fieldPath Поле, по которому происходит фильтрация
201
+ * @param value Подстрока, которую должно содержать значение
202
+ *
203
+ * **Пример**
204
+ *
205
+ * Поле `LastName` должно содержать `an`
206
+ * ```js
207
+ * Filter.contains('LastName', 'an')
208
+ * ```
209
+ */
210
+ contains(fieldPath: string, value: any): IFilterItem;
211
+ /**
212
+ * Создает фильтр для полнотекстового поиска по указанному полю
213
+ *
214
+ * @param fieldPath Поле, по которому происходит фильтрация
215
+ * @param value Подстрока, которую должно содержать значение
216
+ *
217
+ * **Пример**
218
+ *
219
+ * Поле `Description` должно содержать `example`
220
+ * ```js
221
+ * Filter.fulltext('Description', 'example');
222
+ * ```
223
+ */
224
+ fulltext(fieldPath: string, value: any): IFilterItem;
225
+ /**
226
+ * Создает фильтр, который исключает значения, соответствующие указанному фильтру
227
+ *
228
+ * @param filter Фильтр
229
+ *
230
+ * **Пример**
231
+ *
232
+ * Поле `Name` должно содержать любое значение кроме `Ivan`
233
+ * ```js
234
+ * Filter.not(Filter.eq('Name', 'Ivan'))
235
+ * ```
236
+ */
237
+ not(filter: IFilterItem | IFilterIn): IFilterItem;
238
+ /**
239
+ * Фильтр, проверяющий, что поле содержит одно из перечисленных значений
240
+ *
241
+ * @param fieldPath Поле, по которому происходит фильтрация
242
+ * @param array Массив значений
243
+ *
244
+ * **Пример**
245
+ *
246
+ * Поле `Name` должно содержать либо значение `Ivan`, либо `Petr`
247
+ * ```js
248
+ * Filter.in('Name', ['Ivan', 'Petr'])
249
+ * ```
250
+ */
251
+ in(fieldPath: string, array: any[]): IFilterIn;
252
+ /**
253
+ * Строится фильтр для поля на основании значений из другой таблицы
254
+ * @param field Поле, по которому происходит фильтрация
255
+ * @param objectCode Код объекта, из которой берутся значения. Может быть таблицей, представлением, функцей и т.д.
256
+ * @param subField Поле, по которому происходит фильтрация в другой таблице
257
+ * @param filter Фильтр, который применяется к другой таблице
258
+ * @param args Аргументы для объекта (например для функции). Можно задать, например, в виде `{ Search: "Москва" }`.
259
+ *
260
+ * **Пример**
261
+ *
262
+ * Отфильтруется поле `Title` текущей таблицы по полю `Name` таблицы `mdt.Employee`, где поле `Name` равно `Ivan`
263
+ * ```js
264
+ * Filter.queryIn('Title', 'mdt.Employee', 'Name', Filter.eq('Name', 'Ivan'))
265
+ * ```
266
+ */
267
+ queryIn(field: string, objectCode: string, subField: string, filter?: IFilter, args?: any): IFilterIn;
268
+ /**
269
+ * Преобразует тип данных фильтра
270
+ *
271
+ * @param filter Фильтр
272
+ * @param cast Значение, к типу которого приводится фильтр
273
+ *
274
+ * **Пример**
275
+ *
276
+ * Значение поля `DateTime` приводится к типу `date` (`value` содержит значение типа `datetime`)
277
+ * ```js
278
+ * Filter.cast(Filter.eq('DateTime', value), 'date')
279
+ * ```
280
+ */
281
+ cast(filter: IFilter, cast: string): IFilter;
282
+ /**
283
+ * Проверка, что фильтр пустой
284
+ *
285
+ * **Пример**
286
+ *
287
+ * Проверка, что `filter` пустой
288
+ * ```js
289
+ * if (filter === Filter.empty) { ... }
290
+ * ```
291
+ */
292
+ empty: any;
293
+ }
294
+ export declare class Filter {
295
+ static empty: IFilter;
296
+ static isEmptyFilter(filter: IFilter): boolean;
297
+ static mergeFilters(orig: IFilter, filter: IFilter): IFilter;
298
+ static and(...groups: any[]): IFilterGroup;
299
+ static or(...groups: any[]): IFilterGroup;
300
+ static eq(p1: any, p2: any): IFilterItem;
301
+ static ne(p1: any, p2: any): IFilterItem;
302
+ static gt(p1: any, p2: any): IFilterItem;
303
+ static ge(p1: any, p2: any): IFilterItem;
304
+ static lt(p1: any, p2: any): IFilterItem;
305
+ static le(p1: any, p2: any): IFilterItem;
306
+ static startsWith(p1: any, p2: any): IFilterItem;
307
+ static endsWith(p1: any, p2: any): IFilterItem;
308
+ static contains(p1: any, p2: any): IFilterItem;
309
+ static fulltext(p1: any, p2: any): IFilterItem;
310
+ static not(f: any): IFilterItem;
311
+ static in(p1: any, ar: any): IFilterIn;
312
+ static queryIn(field: any, table: any, subField: any, filter?: any, args?: any): IFilterIn;
313
+ static cast(filter: any, cast: any): IFilter;
314
+ static equalTemplate(p1: any, p2: any): IFilter;
315
+ static isFilter(filter: unknown): filter is IFilter;
316
+ static isFilterGroup(filter: IFilter): filter is IFilterGroup;
317
+ static isFilterItem(filter: IFilter): filter is IFilterItem;
318
+ static isFilterIn(filter: IFilter): filter is IFilterIn;
319
+ static isFilterQueryIn(filter: IFilter): filter is IFilterQueryIn;
320
+ static getP2(filter: IFilter): string | number | QueryInValue | Date;
321
+ }
322
+ export {};