@infomaximum/widget-sdk 6.0.0-1 → 6.0.0-10

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
@@ -73,377 +73,14 @@ interface IExportColumnOrder {
73
73
  exportName: string;
74
74
  }
75
75
 
76
- declare enum EFormatTypes {
77
- /** Дата */
78
- DATE = "DATE",
79
- /** Число */
80
- NUMBER = "NUMBER",
81
- /** Месяц */
82
- MONTH = "MONTH",
83
- /** Дата и время */
84
- DATETIME = "DATETIME",
85
- /** Строка */
86
- STRING = "STRING",
87
- /** День недели */
88
- DAY_OF_WEEK = "DAY_OF_WEEK",
89
- /** Длительность */
90
- DURATION = "DURATION",
91
- /** Час */
92
- HOUR = "HOUR",
93
- /** Месяц и год */
94
- MONTH_YEAR = "MONTH_YEAR",
95
- /** Год */
96
- YEAR = "YEAR",
97
- /** Квартал */
98
- QUARTER = "QUARTER",
99
- /** Квартал и год */
100
- QUARTER_YEAR = "QUARTER_YEAR",
101
- /** День месяца */
102
- DAY_OF_MONTH = "DAY_OF_MONTH",
103
- /** Неделя */
104
- WEEK = "WEEK",
105
- /** Логический */
106
- BOOLEAN = "BOOLEAN",
107
- PERCENT = "PERCENT"
108
- }
109
- declare enum EFormattingPresets {
110
- "AUTO" = "AUTO",
111
- "CUSTOM" = "CUSTOM",
112
- "DD/M/YYYY" = "DD/M/YYYY",
113
- "DD-MM-YYYY" = "DD-MM-YYYY",
114
- "DD-MM-YY" = "DD-MM-YY",
115
- "YYYY-MM-DD" = "YYYY-MM-DD",
116
- "YY-MM-DD" = "YY-MM-DD",
117
- "DD MM YYYY" = "DD MM YYYY",
118
- "DD MMM YYYY" = "DD MMM YYYY",
119
- "DD MMM YY" = "DD MMM YY",
120
- "MM.DD.YYYY" = "MM.DD.YYYY",
121
- "MM.DD.YY" = "MM.DD.YY",
122
- "DD MMMM YYYY" = "DD MMMM YYYY",
123
- "DD MMMM YY" = "DD MMMM YY",
124
- "DD/MM/YYYY" = "DD/MM/YYYY",
125
- "DD/MM/YY" = "DD/MM/YY",
126
- "MM/DD/YYYY" = "MM/DD/YYYY",
127
- "MM/DD/YY" = "MM/DD/YY",
128
- "MMMM DD, YYYY" = "MMMM DD, YYYY",
129
- "MMMM DD, YY" = "MMMM DD, YY",
130
- "DD.MM.YYYY" = "DD.MM.YYYY",
131
- "DD.MM.YY" = "DD.MM.YY",
132
- "MM-DD-YY" = "MM-DD-YY",
133
- "MM-DD-YYYY" = "MM-DD-YYYY",
134
- "DD/M/YYYY HH:mm" = "DD/M/YYYY HH:mm",
135
- "DD/MM/YYYY, HH:mm" = "DD/MM/YYYY, HH:mm",
136
- "DD/MM/YY, HH:mm" = "DD/MM/YY, HH:mm",
137
- "MM/DD/YY, hh:mm a" = "MM/DD/YY, hh:mm a",
138
- "MM/DD/YYYY, hh:mm a" = "MM/DD/YYYY, hh:mm a",
139
- "YYYY-MM-DD HH:mm" = "YYYY-MM-DD HH:mm",
140
- "YY-MM-DD, HH:mm" = "YY-MM-DD, HH:mm",
141
- "YYYY-MM-DD, HH:mm" = "YYYY-MM-DD, HH:mm",
142
- "YYYY-MM-DD HH:mm:ss" = "YYYY-MM-DD HH:mm:ss",
143
- "DD MM YYYY HH:mm" = "DD MM YYYY HH:mm",
144
- "DD MMMM YYYY, HH:mm" = "DD MMMM YYYY, HH:mm",
145
- "DD.MM.YY, HH:mm" = "DD.MM.YY, HH:mm",
146
- "DD.MM.YYYY, HH:mm" = "DD.MM.YYYY, HH:mm",
147
- "MM-DD-YY, hh:mm a" = "MM-DD-YY, hh:mm a",
148
- "MM-DD-YYYY, hh:mm a" = "MM-DD-YYYY, hh:mm a",
149
- "MM.DD.YY, hh:mm a" = "MM.DD.YY, hh:mm a",
150
- "MM.DD.YYYY, hh:mm a" = "MM.DD.YYYY, hh:mm a",
151
- "MM.DD.YYYY hh:mm a" = "MM.DD.YYYY hh:mm a",
152
- "DD MMM YY, HH:mm" = "DD MMM YY, HH:mm",
153
- "DD MMM YYYY, HH:mm" = "DD MMM YYYY, HH:mm",
154
- "MMMM DD, YY, HH:mm" = "MMMM DD, YY, HH:mm",
155
- "MMMM DD, YYYY, HH:mm" = "MMMM DD, YYYY, HH:mm",
156
- "DD MMMM YY, HH:mm" = "DD MMMM YY, HH:mm",
157
- "DD.MM.YYYY, HH:mm:ss" = "DD.MM.YYYY, HH:mm:ss",
158
- "DD.MM.YYYY HH:mm:ss" = "DD.MM.YYYY HH:mm:ss",
159
- "DD/MM/YYYY HH:mm:ss" = "DD/MM/YYYY HH:mm:ss",
160
- "DD" = "DD",
161
- "D" = "D",
162
- "DDDD" = "DDDD",
163
- "MMM" = "MMM",
164
- "MM" = "MM",
165
- "MMMM" = "MMMM",
166
- "k" = "k",
167
- "x" = "x",
168
- "#,##x" = "#,##x",
169
- "#,##x.x" = "#,##x.x",
170
- "#,##x.xx" = "#,##x.xx",
171
- "x[%]" = "x[%]",
172
- "x.x[%]" = "x.x[%]",
173
- "[$]x" = "[$]x",
174
- "zx.xx[%]" = "zx.xx[%]",
175
- "hh:mm:ss" = "hh:mm:ss",
176
- "dd:hh:mm:ss" = "dd:hh:mm:ss",
177
- "d" = "d",
178
- "h" = "h",
179
- "dk" = "dk",
180
- "hk" = "hk",
181
- "dd" = "dd",
182
- "HH" = "HH",
183
- "hh a" = "hh a",
184
- "MMM, YYYY" = "MMM, YYYY",
185
- "MMM, YY" = "MMM, YY",
186
- "MM.YYYY" = "MM.YYYY",
187
- "MM.YY" = "MM.YY",
188
- "MMMM YYYY" = "MMMM YYYY",
189
- "MMMM YY" = "MMMM YY",
190
- "[Q]q" = "[Q]q",
191
- "R" = "R",
192
- "[Q]q[-]YYYY" = "[Q]q[-]YYYY",
193
- "[Q]q[-]YY" = "[Q]q[-]YY",
194
- "R[-]YYYY" = "R[-]YYYY",
195
- "R[-]YY" = "R[-]YY"
196
- }
197
- interface IWidgetFormatting {
198
- getFormattedValue: (value: string, formatType: EFormatTypes, formatting: EFormattingPresets, formatTemplate: TNullable<string>) => string;
199
- }
200
- declare const formattingConfig: {
201
- readonly availableFormatsBySimpleType: {
202
- OTHER: EFormatTypes[];
203
- STRING: EFormatTypes[];
204
- FLOAT: EFormatTypes[];
205
- INTEGER: EFormatTypes[];
206
- DATE: EFormatTypes[];
207
- DATETIME: EFormatTypes[];
208
- DATETIME64: EFormatTypes[];
209
- BOOLEAN: EFormatTypes[];
210
- };
211
- readonly availableFormattingByFormat: {
212
- DATE: EFormattingPresets[];
213
- DATETIME: EFormattingPresets[];
214
- DAY_OF_WEEK: EFormattingPresets[];
215
- MONTH: EFormattingPresets[];
216
- NUMBER: EFormattingPresets[];
217
- DURATION: EFormattingPresets[];
218
- HOUR: EFormattingPresets[];
219
- MONTH_YEAR: EFormattingPresets[];
220
- QUARTER: EFormattingPresets[];
221
- QUARTER_YEAR: EFormattingPresets[];
222
- STRING: never[];
223
- DAY_OF_MONTH: never[];
224
- WEEK: never[];
225
- YEAR: never[];
226
- BOOLEAN: never[];
227
- PERCENT: EFormattingPresets[];
228
- };
229
- };
230
-
231
- declare enum ELastTimeUnit {
232
- DAYS = "DAYS",
233
- MONTHS = "MONTHS",
234
- YEARS = "YEARS"
235
- }
236
- declare enum EDurationUnit {
237
- DAYS = "DAYS",
238
- HOURS = "HOURS",
239
- MINUTES = "MINUTES",
240
- SECONDS = "SECONDS"
241
- }
242
- declare const applyIndexToArrayFormula: (formula: string, index: number) => string;
243
- declare const mapFormulaFilterToCalculatorInput: (filterValue: TExtendedFormulaFilterValue) => TNullable<ICalculatorFilter>;
244
- declare const mapFormulaFiltersToInputs: (filters: TExtendedFormulaFilterValue[]) => ICalculatorFilter[];
245
-
246
- type TSelectivePartial<T, Keys extends keyof T> = Omit<T, Keys> & Partial<Pick<T, Keys>>;
247
- declare const formulaFilterMethods: {
248
- readonly LAST_TIME: "LAST_TIME";
249
- readonly EQUAL_TO: ECalculatorFilterMethods.EQUAL_TO;
250
- readonly NOT_EQUAL_TO: ECalculatorFilterMethods.NOT_EQUAL_TO;
251
- readonly GREATER_THAN: ECalculatorFilterMethods.GREATER_THAN;
252
- readonly LESS_THAN: ECalculatorFilterMethods.LESS_THAN;
253
- readonly GREATER_THAN_OR_EQUAL_TO: ECalculatorFilterMethods.GREATER_THAN_OR_EQUAL_TO;
254
- readonly LESS_THAN_OR_EQUAL_TO: ECalculatorFilterMethods.LESS_THAN_OR_EQUAL_TO;
255
- readonly STARTS_WITH: ECalculatorFilterMethods.STARTS_WITH;
256
- readonly ENDS_WITH: ECalculatorFilterMethods.ENDS_WITH;
257
- readonly CONTAINS: ECalculatorFilterMethods.CONTAINS;
258
- readonly NOT_CONTAINS: ECalculatorFilterMethods.NOT_CONTAINS;
259
- readonly IN_RANGE: ECalculatorFilterMethods.IN_RANGE;
260
- readonly NOT_IN_RANGE: ECalculatorFilterMethods.NOT_IN_RANGE;
261
- readonly INCLUDE: ECalculatorFilterMethods.INCLUDE;
262
- readonly EXCLUDE: ECalculatorFilterMethods.EXCLUDE;
263
- readonly NONEMPTY: ECalculatorFilterMethods.NONEMPTY;
264
- readonly EMPTY: ECalculatorFilterMethods.EMPTY;
265
- };
266
- declare enum EProcessFilterNames {
267
- /** Наличие события */
268
- presenceOfEvent = "presenceOfEvent",
269
- /** Количество повторов события */
270
- repetitionOfEvent = "repetitionOfEvent",
271
- /** Наличие перехода */
272
- presenceOfTransition = "presenceOfTransition",
273
- /** Длительность перехода */
274
- durationOfTransition = "durationOfTransition"
275
- }
276
- interface IProcessFilterValue {
277
- /** @deprecated необходимо передавать посредством IProcessFilterPreviewParams [2502] */
278
- eventsNamesByProcessNameMap?: Map<string, (string | null)[]>;
279
- }
280
- /**
281
- * Параметры, которые влияют на отображаемый контент в окне настройки процессного фильтра,
282
- * но не учитываются при применении фильтра.
283
- */
284
- interface IProcessFilterPreviewParams {
285
- /** @deprecated необходимо использовать eventsNamesByProcessKey */
286
- eventsNamesByProcessName?: Map<string, (string | null)[]>;
287
- /**
288
- * События, доступные при выборе процесса.
289
- * Если параметр не передан, используются все события процесса на основе запроса к вычислителю.
290
- */
291
- eventsNamesByProcessKey?: Map<string, (string | null)[]>;
292
- /** Фильтры событий */
293
- eventFilters?: TExtendedFormulaFilterValue[];
294
- }
295
- interface IProcessEventFilterValue extends IProcessFilterValue {
296
- /** @deprecated необходимо использовать processKey */
297
- processName?: string;
298
- processKey: string;
299
- eventName: string;
300
- }
301
- interface IProcessTransitionFilterValue extends IProcessFilterValue {
302
- /** @deprecated необходимо использовать startEventProcessKey */
303
- startEventProcessName?: string;
304
- startEventProcessKey: string;
305
- startEventName: string;
306
- /** @deprecated необходимо использовать endEventProcessKey */
307
- endEventProcessName?: string;
308
- endEventProcessKey: string;
309
- endEventName: string;
310
- }
311
- interface IClickPosition {
312
- x: number;
313
- y: number;
314
- elementWidth?: number;
315
- elementHeight?: number;
316
- }
317
- interface IPositionConfig extends IClickPosition {
318
- offsetX?: number;
319
- offsetY?: number;
320
- }
321
- interface IAddPresenceOfEventFilter {
322
- (name: EProcessFilterNames.presenceOfEvent, value: IProcessEventFilterValue, positionConfig?: IPositionConfig, previewParams?: IProcessFilterPreviewParams): void;
323
- }
324
- interface IAddRepetitionOfEventFilter {
325
- (name: EProcessFilterNames.repetitionOfEvent, value: IProcessEventFilterValue, positionConfig?: IPositionConfig, previewParams?: IProcessFilterPreviewParams): void;
326
- }
327
- interface IAddPresenceOfTransitionFilter {
328
- (name: EProcessFilterNames.presenceOfTransition, value: IProcessTransitionFilterValue, positionConfig?: IPositionConfig, previewParams?: IProcessFilterPreviewParams): void;
329
- }
330
- interface IAddDurationOfTransitionFilter {
331
- (name: EProcessFilterNames.durationOfTransition, value: IProcessTransitionFilterValue, positionConfig?: IPositionConfig, previewParams?: IProcessFilterPreviewParams): void;
332
- }
333
- declare enum EFormulaFilterFieldKeys {
334
- date = "date",
335
- dateRange = "dateRange",
336
- numberRange = "numberRange",
337
- string = "string",
338
- lastTimeValue = "lastTimeValue",
339
- lastTimeUnit = "lastTimeUnit",
340
- durationUnit = "durationUnit"
341
- }
342
- interface IFormulaFilterValue {
343
- /** Заголовок фильтра */
344
- name: TNullable<string>;
345
- /** Формула */
346
- formula: string;
347
- /**
348
- * Индекс элемента в результате вычисления формулы (если результат - массив).
349
- *
350
- * Используется, когда формула возвращает массив значений, но требуется работать только с одним конкретным элементом.
351
- * Индекс добавляется к вычисляемой формуле, позволяя выбрать нужный элемент из результирующего массива.
352
- *
353
- * **Важно:** Индексация начинается с 1, т.к. используется ClickHouse (1-based).
354
- */
355
- sliceIndex?: number;
356
- /** Тип данных формулы (без учета `sliceIndex`) */
357
- dbDataType: string;
358
- /** Формат */
359
- format: EFormatTypes;
360
- /** Метод фильтрации */
361
- filteringMethod: valueof<typeof formulaFilterMethods>;
362
- /** Выбранные в списке значения в виде моделей */
363
- checkedValues?: (string | null)[];
364
- /** Значения полей формы редактора */
365
- formValues?: Partial<{
366
- [EFormulaFilterFieldKeys.date]: string | null;
367
- [EFormulaFilterFieldKeys.dateRange]: [string, string];
368
- [EFormulaFilterFieldKeys.numberRange]: Partial<[number, number]>;
369
- [EFormulaFilterFieldKeys.string]: string;
370
- [EFormulaFilterFieldKeys.lastTimeValue]: number;
371
- [EFormulaFilterFieldKeys.lastTimeUnit]: ELastTimeUnit;
372
- [EFormulaFilterFieldKeys.durationUnit]: EDurationUnit;
373
- }>;
374
- }
375
- type TExtendedFormulaFilterValue = {
376
- formula: string;
377
- } | IFormulaFilterValue;
378
- interface IStagesFilterItem {
379
- id: number;
380
- /** Название этапа */
381
- name: string;
382
- /** Формула фильтра этапа */
383
- formula: string;
384
- isSelected: boolean;
385
- }
386
- interface IStagesFilterValue {
387
- /** Ключ виджета */
388
- widgetKey: string;
389
- /** Заголовок фильтра */
390
- name: TNullable<string>;
391
- /** Этапы */
392
- stages: IStagesFilterItem[];
393
- }
394
- type TWidgetFilterValue = TExtendedFormulaFilterValue | IStagesFilterValue | IProcessEventFilterValue | IProcessTransitionFilterValue;
395
- interface IWidgetFilter {
396
- /** Значение фильтра */
397
- filterValue: TWidgetFilterValue;
398
- /** Значение фильтра, подготовленное для передачи в вычислитель */
399
- preparedFilterValue: ICalculatorFilter;
400
- /** Информация о возможности менять фильтр из виджета */
401
- isReadonly: boolean;
402
- }
403
- interface IWidgetFiltration {
404
- /** Информация о внешних фильтрах виджета */
405
- filters: IWidgetFilter[];
406
- /**
407
- * Значения внешних фильтров виджета, подготовленные для передачи в вычислитель.
408
- * Использует данные из filters, но предоставлено отдельным полем для удобства разработки.
409
- */
410
- preparedFilterValues: ICalculatorFilter[];
411
- /** Добавить фильтр по формуле */
412
- addFormulaFilter(value: TSelectivePartial<IFormulaFilterValue, "format" | "formValues">): void;
413
- /**
414
- * Удалить фильтр, заданный формулой, из текущего набора фильтров
415
- *
416
- * @param formula Формула фильтра, который необходимо удалить. Должна точно соответствовать
417
- * формуле ранее добавленного фильтра (с учетом регистра и пробелов).
418
- * @param [sliceIndex] Опциональный индекс элемента массива. См. {@link IFormulaFilterValue.sliceIndex}.
419
- *
420
- * @remarks
421
- * - Если фильтр был добавлен без указания индекса, его нужно удалять без указания индекса.
422
- * - Если фильтр был добавлен с индексом, тот же индекс должен быть указан при удалении.
423
- * - Удаление происходит по точному совпадению формулы и индекса (если он был указан).
424
- */
425
- removeFormulaFilter(formula: string, sliceIndex?: number): void;
426
- /** Добавить процессный фильтр */
427
- addProcessFilter(...args: Parameters<IAddPresenceOfEventFilter> | Parameters<IAddRepetitionOfEventFilter> | Parameters<IAddPresenceOfTransitionFilter> | Parameters<IAddDurationOfTransitionFilter>): void;
428
- /** Добавить фильтр по этапам */
429
- addStagesFilter(value: Omit<IStagesFilterValue, "widgetKey">): void;
430
- /** Удалить фильтр по этапам */
431
- removeStagesFilter(widgetKey: string): void;
432
- }
433
- declare const isFormulaFilterValue: (value: TExtendedFormulaFilterValue) => value is IFormulaFilterValue;
434
-
435
76
  declare enum EWidgetFilterMode {
436
77
  DEFAULT = "DEFAULT",
437
78
  SINGLE = "SINGLE",
438
- /** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
439
- MULTI = "MULTI",
440
79
  DISABLED = "DISABLED"
441
80
  }
442
81
  type TWidgetFiltering = {
443
82
  ignore: true;
444
- mode: EWidgetFilterMode.SINGLE
445
- /** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
446
- | EWidgetFilterMode.MULTI;
83
+ mode: EWidgetFilterMode.SINGLE;
447
84
  } | {
448
85
  ignore: false;
449
86
  mode: EWidgetFilterMode;
@@ -461,21 +98,169 @@ declare enum EDisplayConditionMode {
461
98
  type TDisplayCondition = {
462
99
  mode: EDisplayConditionMode.DISABLED;
463
100
  } | {
464
- mode: EDisplayConditionMode.FORMULA;
465
- formula: TNullable<string>;
101
+ mode: EDisplayConditionMode.FORMULA;
102
+ formula: TNullable<string>;
103
+ } | {
104
+ mode: EDisplayConditionMode.VARIABLE;
105
+ variableName: TNullable<string>;
106
+ variableValue: TNullable<string>;
107
+ };
108
+ interface IRange {
109
+ unit?: string;
110
+ min?: number;
111
+ max?: number;
112
+ }
113
+ declare enum EFontWeight {
114
+ NORMAL = "NORMAL",
115
+ BOLD = "BOLD"
116
+ }
117
+
118
+ interface IWidgetTableColumn {
119
+ /** Имя колонки */
120
+ name: string;
121
+ /** Тип данных колонки */
122
+ dbDataType: string;
123
+ }
124
+ interface IScriptField {
125
+ name: string;
126
+ isRequired: boolean;
127
+ isArray: boolean;
128
+ }
129
+ interface IActionScript {
130
+ key: string;
131
+ name: string;
132
+ fields: IScriptField[];
133
+ }
134
+ interface IWidgetTable {
135
+ /** Имя таблицы */
136
+ name: string;
137
+ /** Колонки таблицы */
138
+ columns: Map<string, IWidgetTableColumn>;
139
+ }
140
+ interface IDisplayRule {
141
+ color: TColor;
142
+ }
143
+ interface IGlobalContext {
144
+ /** Используемый язык системы */
145
+ language: ELanguages;
146
+ /** Имя отчета */
147
+ reportName: string;
148
+ /** Имена образов по их ключу(в текущем отчете) */
149
+ viewNameByKey: Map<string, string>;
150
+ /** Меры уровня отчета */
151
+ reportMeasures: TNullable<Map<string, ICommonMeasures>>;
152
+ /** Меры уровня пространства(из модели данных) */
153
+ workspaceMeasures: TNullable<Map<string, Map<string, ICommonMeasures>>>;
154
+ /** Разрезы уровня отчета */
155
+ reportDimensions: TNullable<Map<string, ICommonDimensions>>;
156
+ /** Разрезы уровня пространства(из модели данных) */
157
+ workspaceDimensions: TNullable<Map<string, Map<string, ICommonDimensions>>>;
158
+ /** Правила отображения уровня */
159
+ reportDisplayRules: Map<string, IDisplayRule>;
160
+ /** Правила отображения уровня пространства(из модели данных) */
161
+ workspaceDisplayRules: Map<string, Map<string, IDisplayRule>>;
162
+ /** Пользовательские переменные уровня отчета */
163
+ variables: Map<string, TWidgetVariable>;
164
+ /** Метод установки значения пользовательской переменной уровня отчета */
165
+ setVariableValue(name: string, value: TWidgetVariable["value"]): TWidgetVariable["value"];
166
+ /** Метод очистки значения пользовательской переменной уровня отчета */
167
+ unsetVariableValue(name: string): TWidgetVariable["value"];
168
+ /** Состояния(название сущности) отчета */
169
+ states: Map<string, ICommonState>;
170
+ /** Процессы из модели данных (по ключу) */
171
+ processByKey: Map<string, IWidgetProcess>;
172
+ /** Имена таблиц из модели данных */
173
+ tables: Set<string>;
174
+ /** Функция для запроса информации о колонках таблицы из модели данных */
175
+ fetchColumnsByTableName(tableName: string): Promise<IWidgetTableColumn[] | undefined>;
176
+ /** Скрипты, доступные для запуска из отчета */
177
+ scripts: Map<string, IActionScript>;
178
+ }
179
+
180
+ declare enum EColorMode {
181
+ /** Окрашивание отключено */
182
+ DISABLED = "DISABLED",
183
+ /** Цвет каждого значения вычисляется по формуле */
184
+ FORMULA = "FORMULA",
185
+ /** Один цвет для всех значений */
186
+ BASE = "BASE",
187
+ /** Окрашивание каждого значения по градиенту относительно минимального и максимального значений */
188
+ GRADIENT = "GRADIENT",
189
+ /** Использовать автоматический цвет: по умолчанию определяется порядковым номером показателя */
190
+ AUTO = "AUTO",
191
+ /** Использовать цвет из правила отображения (в правиле отображения рекурсивно определен цвет) */
192
+ RULE = "RULE",
193
+ /** Задать цвет конкретным значениям разреза */
194
+ VALUES = "VALUES",
195
+ /** Задать цвет конкретным значениям общего разреза. Режим используется только для настроек правила отображения */
196
+ BY_DIMENSION = "BY_DIMENSION"
197
+ }
198
+ type TColorBase = {
199
+ mode: EColorMode.BASE;
200
+ value?: string;
201
+ };
202
+ type TColorRule = {
203
+ mode: EColorMode.RULE;
204
+ formula: string;
205
+ };
206
+ interface IColoredValue {
207
+ value: string;
208
+ color: TColorBase | TColorRule;
209
+ }
210
+ /** Настройка цвета */
211
+ type TColor = {
212
+ mode: EColorMode.FORMULA;
213
+ formula: string;
214
+ } | TColorBase | {
215
+ mode: EColorMode.GRADIENT;
216
+ startValue: string;
217
+ endValue: string;
218
+ classCount?: TNullable<number>;
219
+ } | {
220
+ mode: EColorMode.AUTO;
221
+ } | TColorRule | {
222
+ mode: EColorMode.VALUES;
223
+ items: IColoredValue[];
466
224
  } | {
467
- mode: EDisplayConditionMode.VARIABLE;
468
- variableName: TNullable<string>;
469
- variableValue: TNullable<string>;
225
+ mode: EColorMode.BY_DIMENSION;
226
+ /** Имя разреза из области видимости правила отображения */
227
+ dimensionName: string;
228
+ items: IColoredValue[];
229
+ } | {
230
+ mode: EColorMode.DISABLED;
470
231
  };
471
- interface IRange {
472
- unit?: string;
473
- min?: number;
474
- max?: number;
232
+ declare const getRuleColor: (ruleFormula: string, globalContext: Pick<IGlobalContext, "reportDisplayRules" | "workspaceDisplayRules">) => TColor | undefined;
233
+ declare const isValidColor: (color: TColor, globalContext: Pick<IGlobalContext, "reportDisplayRules" | "workspaceDisplayRules">) => boolean;
234
+ declare const colors: string[];
235
+ /**
236
+ * Получить цвет по индексу элемента
237
+ * @param index - индекс элемента, которому требуется цвет
238
+ */
239
+ declare const getColorByIndex: (index: number) => string;
240
+
241
+ interface IAutoIdentifiedArrayItem {
242
+ /**
243
+ * Идентификатор, добавляемый системой "на лету" для удобства разработки, не сохраняется на сервер.
244
+ * Гарантируется уникальность id в пределах settings виджета.
245
+ */
246
+ id: number;
475
247
  }
476
- declare enum EFontWeight {
477
- NORMAL = "NORMAL",
478
- BOLD = "BOLD"
248
+ interface IBaseWidgetSettings {
249
+ title?: string;
250
+ titleSize?: number;
251
+ titleColor?: TColor;
252
+ titleWeight?: EFontWeight;
253
+ stateName?: string | null;
254
+ showMarkdown?: boolean;
255
+ markdownMeasures?: IMarkdownMeasure[];
256
+ markdownText?: string;
257
+ markdownTextSize?: number;
258
+ filters?: TSettingsFilter[];
259
+ filterMode?: EWidgetFilterMode;
260
+ ignoreFilters?: boolean;
261
+ sorting?: IWidgetSortingIndicator[];
262
+ actionButtons?: IActionButton[];
263
+ paddings?: number | string;
479
264
  }
480
265
 
481
266
  declare enum ESortDirection {
@@ -536,9 +321,8 @@ type TProcessIndicatorValue = {
536
321
  interface IProcessIndicator extends IWidgetIndicator {
537
322
  value?: TProcessIndicatorValue;
538
323
  dbDataType?: string;
539
- format?: EFormatTypes;
540
- formatting?: EFormattingPresets;
541
- formattingTemplate?: string;
324
+ format?: IWidgetColumnIndicator["format"];
325
+ formatting?: IWidgetColumnIndicator["formatting"];
542
326
  displayCondition?: TDisplayCondition;
543
327
  }
544
328
  interface IProcessEventIndicator extends IProcessIndicator {
@@ -592,12 +376,21 @@ type TColumnIndicatorValue = {
592
376
  /** Имя колонки */
593
377
  columnName?: string;
594
378
  };
379
+ declare enum EFormatOrFormattingMode {
380
+ BASE = "BASE",
381
+ TEMPLATE = "TEMPLATE"
382
+ }
595
383
  /** Общий интерфейс разреза и меры */
596
384
  interface IWidgetColumnIndicator extends IWidgetIndicator {
597
385
  dbDataType?: string;
598
- format?: EFormatTypes;
599
- formatting?: EFormattingPresets;
600
- formattingTemplate?: string;
386
+ format?: {
387
+ value?: EFormatTypes;
388
+ mode: EFormatOrFormattingMode;
389
+ };
390
+ formatting?: {
391
+ value?: EFormattingPresets;
392
+ mode: EFormatOrFormattingMode;
393
+ };
601
394
  displayCondition?: TDisplayCondition;
602
395
  onClick?: TActionsOnClick[];
603
396
  }
@@ -618,7 +411,6 @@ interface IWidgetMeasure extends Omit<IWidgetColumnIndicator, "value"> {
618
411
  }) | TWidgetIndicatorConversionValue | TWidgetIndicatorDurationValue;
619
412
  }
620
413
  interface IMarkdownMeasure extends IWidgetMeasure {
621
- format: EFormatTypes;
622
414
  displaySign: EMarkdownDisplayMode;
623
415
  }
624
416
  /** Тип показателя */
@@ -678,9 +470,6 @@ interface IWidgetStaticListVariable extends IBaseWidgetVariable {
678
470
  type: EIndicatorType.STATIC_LIST;
679
471
  /** Значение */
680
472
  value: string | string[] | null;
681
- /** Элементы статического списка */
682
- /** @deprecated поле будет удалено, необходимо использовать labeledOptions */
683
- options: string[];
684
473
  /** Объект ключ значение для статического списка */
685
474
  labeledOptions: IStaticListLabeledOption[];
686
475
  /** Множественный выбор */
@@ -756,172 +545,389 @@ type TWidgetIndicatorConversionValue = {
756
545
  endCaseCaseIdFormula: string | null;
757
546
  endEventTimeFormula: string | null;
758
547
  };
759
- type TWidgetIndicatorDurationValue = {
760
- mode: EWidgetIndicatorValueModes.DURATION;
761
- templateName: string;
762
- startEventAppearances: EEventAppearances;
763
- endEventAppearances: EEventAppearances;
764
- } & Omit<TWidgetIndicatorConversionValue, "mode">;
765
- type TWidgetIndicatorTimeValue = {
766
- templateName: string;
767
- mode: EWidgetIndicatorValueModes.START_TIME | EWidgetIndicatorValueModes.END_TIME;
548
+ type TWidgetIndicatorDurationValue = {
549
+ mode: EWidgetIndicatorValueModes.DURATION;
550
+ templateName: string;
551
+ startEventAppearances: EEventAppearances;
552
+ endEventAppearances: EEventAppearances;
553
+ } & Omit<TWidgetIndicatorConversionValue, "mode">;
554
+ type TWidgetIndicatorTimeValue = {
555
+ templateName: string;
556
+ mode: EWidgetIndicatorValueModes.START_TIME | EWidgetIndicatorValueModes.END_TIME;
557
+ processKey: string | null;
558
+ eventName: string | null;
559
+ eventTimeFormula: string | null;
560
+ caseCaseIdFormula: string | null;
561
+ eventNameFormula: string | null;
562
+ filters: TExtendedFormulaFilterValue[];
563
+ };
564
+
565
+ declare enum EFormatTypes {
566
+ /** Дата */
567
+ DATE = "DATE",
568
+ /** Число */
569
+ NUMBER = "NUMBER",
570
+ /** Месяц */
571
+ MONTH = "MONTH",
572
+ /** Дата и время */
573
+ DATETIME = "DATETIME",
574
+ /** Строка */
575
+ STRING = "STRING",
576
+ /** День недели */
577
+ DAY_OF_WEEK = "DAY_OF_WEEK",
578
+ /** Длительность */
579
+ DURATION = "DURATION",
580
+ /** Час */
581
+ HOUR = "HOUR",
582
+ /** Месяц и год */
583
+ MONTH_YEAR = "MONTH_YEAR",
584
+ /** Год */
585
+ YEAR = "YEAR",
586
+ /** Квартал */
587
+ QUARTER = "QUARTER",
588
+ /** Квартал и год */
589
+ QUARTER_YEAR = "QUARTER_YEAR",
590
+ /** День месяца */
591
+ DAY_OF_MONTH = "DAY_OF_MONTH",
592
+ /** Неделя */
593
+ WEEK = "WEEK",
594
+ /** Логический */
595
+ BOOLEAN = "BOOLEAN",
596
+ PERCENT = "PERCENT"
597
+ }
598
+ declare enum EFormattingPresets {
599
+ "AUTO" = "AUTO",
600
+ "CUSTOM" = "CUSTOM",
601
+ "DD/M/YYYY" = "DD/M/YYYY",
602
+ "DD-MM-YYYY" = "DD-MM-YYYY",
603
+ "DD-MM-YY" = "DD-MM-YY",
604
+ "YYYY-MM-DD" = "YYYY-MM-DD",
605
+ "YY-MM-DD" = "YY-MM-DD",
606
+ "DD MM YYYY" = "DD MM YYYY",
607
+ "DD MMM YYYY" = "DD MMM YYYY",
608
+ "DD MMM YY" = "DD MMM YY",
609
+ "MM.DD.YYYY" = "MM.DD.YYYY",
610
+ "MM.DD.YY" = "MM.DD.YY",
611
+ "DD MMMM YYYY" = "DD MMMM YYYY",
612
+ "DD MMMM YY" = "DD MMMM YY",
613
+ "DD/MM/YYYY" = "DD/MM/YYYY",
614
+ "DD/MM/YY" = "DD/MM/YY",
615
+ "MM/DD/YYYY" = "MM/DD/YYYY",
616
+ "MM/DD/YY" = "MM/DD/YY",
617
+ "MMMM DD, YYYY" = "MMMM DD, YYYY",
618
+ "MMMM DD, YY" = "MMMM DD, YY",
619
+ "DD.MM.YYYY" = "DD.MM.YYYY",
620
+ "DD.MM.YY" = "DD.MM.YY",
621
+ "MM-DD-YY" = "MM-DD-YY",
622
+ "MM-DD-YYYY" = "MM-DD-YYYY",
623
+ "DD/M/YYYY HH:mm" = "DD/M/YYYY HH:mm",
624
+ "DD/MM/YYYY, HH:mm" = "DD/MM/YYYY, HH:mm",
625
+ "DD/MM/YY, HH:mm" = "DD/MM/YY, HH:mm",
626
+ "MM/DD/YY, hh:mm a" = "MM/DD/YY, hh:mm a",
627
+ "MM/DD/YYYY, hh:mm a" = "MM/DD/YYYY, hh:mm a",
628
+ "YYYY-MM-DD HH:mm" = "YYYY-MM-DD HH:mm",
629
+ "YY-MM-DD, HH:mm" = "YY-MM-DD, HH:mm",
630
+ "YYYY-MM-DD, HH:mm" = "YYYY-MM-DD, HH:mm",
631
+ "YYYY-MM-DD HH:mm:ss" = "YYYY-MM-DD HH:mm:ss",
632
+ "DD MM YYYY HH:mm" = "DD MM YYYY HH:mm",
633
+ "DD MMMM YYYY, HH:mm" = "DD MMMM YYYY, HH:mm",
634
+ "DD.MM.YY, HH:mm" = "DD.MM.YY, HH:mm",
635
+ "DD.MM.YYYY, HH:mm" = "DD.MM.YYYY, HH:mm",
636
+ "MM-DD-YY, hh:mm a" = "MM-DD-YY, hh:mm a",
637
+ "MM-DD-YYYY, hh:mm a" = "MM-DD-YYYY, hh:mm a",
638
+ "MM.DD.YY, hh:mm a" = "MM.DD.YY, hh:mm a",
639
+ "MM.DD.YYYY, hh:mm a" = "MM.DD.YYYY, hh:mm a",
640
+ "MM.DD.YYYY hh:mm a" = "MM.DD.YYYY hh:mm a",
641
+ "DD MMM YY, HH:mm" = "DD MMM YY, HH:mm",
642
+ "DD MMM YYYY, HH:mm" = "DD MMM YYYY, HH:mm",
643
+ "MMMM DD, YY, HH:mm" = "MMMM DD, YY, HH:mm",
644
+ "MMMM DD, YYYY, HH:mm" = "MMMM DD, YYYY, HH:mm",
645
+ "DD MMMM YY, HH:mm" = "DD MMMM YY, HH:mm",
646
+ "DD.MM.YYYY, HH:mm:ss" = "DD.MM.YYYY, HH:mm:ss",
647
+ "DD.MM.YYYY HH:mm:ss" = "DD.MM.YYYY HH:mm:ss",
648
+ "DD/MM/YYYY HH:mm:ss" = "DD/MM/YYYY HH:mm:ss",
649
+ "DD" = "DD",
650
+ "D" = "D",
651
+ "DDDD" = "DDDD",
652
+ "MMM" = "MMM",
653
+ "MM" = "MM",
654
+ "MMMM" = "MMMM",
655
+ "k" = "k",
656
+ "x" = "x",
657
+ "#,##x" = "#,##x",
658
+ "#,##x.x" = "#,##x.x",
659
+ "#,##x.xx" = "#,##x.xx",
660
+ "x[%]" = "x[%]",
661
+ "x.x[%]" = "x.x[%]",
662
+ "[$]x" = "[$]x",
663
+ "zx.xx[%]" = "zx.xx[%]",
664
+ "hh:mm:ss" = "hh:mm:ss",
665
+ "dd:hh:mm:ss" = "dd:hh:mm:ss",
666
+ "d" = "d",
667
+ "h" = "h",
668
+ "dk" = "dk",
669
+ "hk" = "hk",
670
+ "dd" = "dd",
671
+ "HH" = "HH",
672
+ "hh a" = "hh a",
673
+ "MMM, YYYY" = "MMM, YYYY",
674
+ "MMM, YY" = "MMM, YY",
675
+ "MM.YYYY" = "MM.YYYY",
676
+ "MM.YY" = "MM.YY",
677
+ "MMMM YYYY" = "MMMM YYYY",
678
+ "MMMM YY" = "MMMM YY",
679
+ "[Q]q" = "[Q]q",
680
+ "R" = "R",
681
+ "[Q]q[-]YYYY" = "[Q]q[-]YYYY",
682
+ "[Q]q[-]YY" = "[Q]q[-]YY",
683
+ "R[-]YYYY" = "R[-]YYYY",
684
+ "R[-]YY" = "R[-]YY"
685
+ }
686
+ interface IWidgetFormatting {
687
+ getFormattedValue: (value: string, formatType: EFormatTypes, formatting: IWidgetColumnIndicator["formatting"]) => string;
688
+ }
689
+ declare const formattingConfig: {
690
+ readonly availableFormatsBySimpleType: {
691
+ OTHER: EFormatTypes[];
692
+ STRING: EFormatTypes[];
693
+ FLOAT: EFormatTypes[];
694
+ INTEGER: EFormatTypes[];
695
+ DATE: EFormatTypes[];
696
+ DATETIME: EFormatTypes[];
697
+ DATETIME64: EFormatTypes[];
698
+ BOOLEAN: EFormatTypes[];
699
+ };
700
+ readonly availableFormattingByFormat: {
701
+ DATE: EFormattingPresets[];
702
+ DATETIME: EFormattingPresets[];
703
+ DAY_OF_WEEK: EFormattingPresets[];
704
+ MONTH: EFormattingPresets[];
705
+ NUMBER: EFormattingPresets[];
706
+ DURATION: EFormattingPresets[];
707
+ HOUR: EFormattingPresets[];
708
+ MONTH_YEAR: EFormattingPresets[];
709
+ QUARTER: EFormattingPresets[];
710
+ QUARTER_YEAR: EFormattingPresets[];
711
+ STRING: never[];
712
+ DAY_OF_MONTH: never[];
713
+ WEEK: never[];
714
+ YEAR: never[];
715
+ BOOLEAN: never[];
716
+ PERCENT: EFormattingPresets[];
717
+ };
718
+ };
719
+
720
+ declare enum ELastTimeUnit {
721
+ DAYS = "DAYS",
722
+ MONTHS = "MONTHS",
723
+ YEARS = "YEARS"
724
+ }
725
+ declare enum EDurationUnit {
726
+ DAYS = "DAYS",
727
+ HOURS = "HOURS",
728
+ MINUTES = "MINUTES",
729
+ SECONDS = "SECONDS"
730
+ }
731
+ declare const applyIndexToArrayFormula: (formula: string, index: number) => string;
732
+ declare const mapFormulaFilterToCalculatorInput: (filterValue: TExtendedFormulaFilterValue) => TNullable<ICalculatorFilter>;
733
+ declare const mapFormulaFiltersToInputs: (filters: TExtendedFormulaFilterValue[]) => ICalculatorFilter[];
734
+
735
+ type TSelectivePartial<T, Keys extends keyof T> = Omit<T, Keys> & Partial<Pick<T, Keys>>;
736
+ declare const formulaFilterMethods: {
737
+ readonly LAST_TIME: "LAST_TIME";
738
+ readonly EQUAL_TO: ECalculatorFilterMethods.EQUAL_TO;
739
+ readonly NOT_EQUAL_TO: ECalculatorFilterMethods.NOT_EQUAL_TO;
740
+ readonly GREATER_THAN: ECalculatorFilterMethods.GREATER_THAN;
741
+ readonly LESS_THAN: ECalculatorFilterMethods.LESS_THAN;
742
+ readonly GREATER_THAN_OR_EQUAL_TO: ECalculatorFilterMethods.GREATER_THAN_OR_EQUAL_TO;
743
+ readonly LESS_THAN_OR_EQUAL_TO: ECalculatorFilterMethods.LESS_THAN_OR_EQUAL_TO;
744
+ readonly STARTS_WITH: ECalculatorFilterMethods.STARTS_WITH;
745
+ readonly ENDS_WITH: ECalculatorFilterMethods.ENDS_WITH;
746
+ readonly CONTAINS: ECalculatorFilterMethods.CONTAINS;
747
+ readonly NOT_CONTAINS: ECalculatorFilterMethods.NOT_CONTAINS;
748
+ readonly IN_RANGE: ECalculatorFilterMethods.IN_RANGE;
749
+ readonly NOT_IN_RANGE: ECalculatorFilterMethods.NOT_IN_RANGE;
750
+ readonly INCLUDE: ECalculatorFilterMethods.INCLUDE;
751
+ readonly EXCLUDE: ECalculatorFilterMethods.EXCLUDE;
752
+ readonly NONEMPTY: ECalculatorFilterMethods.NONEMPTY;
753
+ readonly EMPTY: ECalculatorFilterMethods.EMPTY;
754
+ };
755
+ declare enum EProcessFilterNames {
756
+ /** Наличие события */
757
+ presenceOfEvent = "presenceOfEvent",
758
+ /** Количество повторов события */
759
+ repetitionOfEvent = "repetitionOfEvent",
760
+ /** Наличие перехода */
761
+ presenceOfTransition = "presenceOfTransition",
762
+ /** Длительность перехода */
763
+ durationOfTransition = "durationOfTransition"
764
+ }
765
+ /**
766
+ * Параметры, которые влияют на отображаемый контент в окне настройки процессного фильтра,
767
+ * но не учитываются при применении фильтра.
768
+ */
769
+ interface IProcessFilterPreviewParams {
770
+ /**
771
+ * События, доступные при выборе процесса.
772
+ * Если параметр не передан, используются все события процесса на основе запроса к вычислителю.
773
+ */
774
+ eventsNamesByProcessKey?: Map<string, (string | null)[]>;
775
+ /** Фильтры событий */
776
+ eventFilters?: TExtendedFormulaFilterValue[];
777
+ }
778
+ interface IProcessEventFilterValue {
768
779
  processKey: string;
769
780
  eventName: string;
770
- eventTimeFormula: string;
771
- caseCaseIdFormula: string;
772
- eventNameFormula: string;
773
- filters: TExtendedFormulaFilterValue[];
774
- };
775
-
776
- interface IWidgetTableColumn {
777
- /** Имя колонки */
778
- name: string;
779
- /** Тип данных колонки */
780
- dbDataType: string;
781
781
  }
782
- interface IScriptField {
783
- name: string;
784
- isRequired: boolean;
785
- isArray: boolean;
782
+ interface IProcessTransitionFilterValue {
783
+ startEventProcessKey: string;
784
+ startEventName: string;
785
+ endEventProcessKey: string;
786
+ endEventName: string;
786
787
  }
787
- interface IActionScript {
788
- key: string;
789
- name: string;
790
- fields: IScriptField[];
788
+ interface IClickPosition {
789
+ x: number;
790
+ y: number;
791
+ elementWidth?: number;
792
+ elementHeight?: number;
791
793
  }
792
- interface IWidgetTable {
793
- /** Имя таблицы */
794
- name: string;
795
- /** Колонки таблицы */
796
- columns: Map<string, IWidgetTableColumn>;
794
+ interface IPositionConfig extends IClickPosition {
795
+ offsetX?: number;
796
+ offsetY?: number;
797
797
  }
798
- interface IDisplayRule {
799
- color: TColor;
798
+ interface IAddPresenceOfEventFilter {
799
+ (name: EProcessFilterNames.presenceOfEvent, value: IProcessEventFilterValue, positionConfig?: IPositionConfig, previewParams?: IProcessFilterPreviewParams): void;
800
800
  }
801
- interface IGlobalContext {
802
- /** Используемый язык системы */
803
- language: ELanguages;
804
- /** Имя отчета */
805
- reportName: string;
806
- /** Имена образов по их ключу(в текущем отчете) */
807
- viewNameByKey: Map<string, string>;
808
- /** Меры уровня отчета */
809
- reportMeasures: TNullable<Map<string, ICommonMeasures>>;
810
- /** Меры уровня пространства(из модели данных) */
811
- workspaceMeasures: TNullable<Map<string, Map<string, ICommonMeasures>>>;
812
- /** Разрезы уровня отчета */
813
- reportDimensions: TNullable<Map<string, ICommonDimensions>>;
814
- /** Разрезы уровня пространства(из модели данных) */
815
- workspaceDimensions: TNullable<Map<string, Map<string, ICommonDimensions>>>;
816
- /** Правила отображения уровня */
817
- reportDisplayRules: Map<string, IDisplayRule>;
818
- /** Правила отображения уровня пространства(из модели данных) */
819
- workspaceDisplayRules: Map<string, Map<string, IDisplayRule>>;
820
- /** Пользовательские переменные уровня отчета */
821
- variables: Map<string, TWidgetVariable>;
822
- /** Метод установки значения пользовательской переменной уровня отчета */
823
- setVariableValue(name: string, value: TWidgetVariable["value"]): TWidgetVariable["value"];
824
- /** Метод очистки значения пользовательской переменной уровня отчета */
825
- unsetVariableValue(name: string): TWidgetVariable["value"];
826
- /** Состояния(название сущности) отчета */
827
- states: Map<string, ICommonState>;
828
- /** @deprecated Процессы из модели данных (по имени) */
829
- processes: Map<string, IWidgetProcess>;
830
- /** Процессы из модели данных (по ключу) */
831
- processByKey: Map<string, IWidgetProcess>;
832
- /** Имена таблиц из модели данных */
833
- tables: Set<string>;
834
- /** Функция для запроса информации о колонках таблицы из модели данных */
835
- fetchColumnsByTableName(tableName: string): Promise<IWidgetTableColumn[] | undefined>;
836
- /** Скрипты, доступные для запуска из отчета */
837
- scripts: Map<string, IActionScript>;
801
+ interface IAddRepetitionOfEventFilter {
802
+ (name: EProcessFilterNames.repetitionOfEvent, value: IProcessEventFilterValue, positionConfig?: IPositionConfig, previewParams?: IProcessFilterPreviewParams): void;
838
803
  }
839
-
840
- declare enum EColorMode {
841
- /** Окрашивание отключено */
842
- DISABLED = "DISABLED",
843
- /** Цвет каждого значения вычисляется по формуле */
844
- FORMULA = "FORMULA",
845
- /** Один цвет для всех значений */
846
- BASE = "BASE",
847
- /** Окрашивание каждого значения по градиенту относительно минимального и максимального значений */
848
- GRADIENT = "GRADIENT",
849
- /** Использовать автоматический цвет: по умолчанию определяется порядковым номером показателя */
850
- AUTO = "AUTO",
851
- /** Использовать цвет из правила отображения (в правиле отображения рекурсивно определен цвет) */
852
- RULE = "RULE",
853
- /** Задать цвет конкретным значениям разреза */
854
- VALUES = "VALUES",
855
- /** Задать цвет конкретным значениям общего разреза. Режим используется только для настроек правила отображения */
856
- BY_DIMENSION = "BY_DIMENSION"
804
+ interface IAddPresenceOfTransitionFilter {
805
+ (name: EProcessFilterNames.presenceOfTransition, value: IProcessTransitionFilterValue, positionConfig?: IPositionConfig, previewParams?: IProcessFilterPreviewParams): void;
857
806
  }
858
- type TColorBase = {
859
- mode: EColorMode.BASE;
860
- value?: string;
861
- };
862
- type TColorRule = {
863
- mode: EColorMode.RULE;
807
+ interface IAddDurationOfTransitionFilter {
808
+ (name: EProcessFilterNames.durationOfTransition, value: IProcessTransitionFilterValue, positionConfig?: IPositionConfig, previewParams?: IProcessFilterPreviewParams): void;
809
+ }
810
+ declare enum EFormulaFilterFieldKeys {
811
+ date = "date",
812
+ dateRange = "dateRange",
813
+ numberRange = "numberRange",
814
+ string = "string",
815
+ lastTimeValue = "lastTimeValue",
816
+ lastTimeUnit = "lastTimeUnit",
817
+ durationUnit = "durationUnit"
818
+ }
819
+ interface IFormulaFilterValue {
820
+ /** Заголовок фильтра */
821
+ name: TNullable<string>;
822
+ /** Формула */
864
823
  formula: string;
865
- };
866
- interface IColoredValue {
867
- value: string;
868
- color: TColorBase | TColorRule;
824
+ /**
825
+ * Индекс элемента в результате вычисления формулы (если результат - массив).
826
+ *
827
+ * Используется, когда формула возвращает массив значений, но требуется работать только с одним конкретным элементом.
828
+ * Индекс добавляется к вычисляемой формуле, позволяя выбрать нужный элемент из результирующего массива.
829
+ *
830
+ * **Важно:** Индексация начинается с 1, т.к. используется ClickHouse (1-based).
831
+ */
832
+ sliceIndex?: number;
833
+ /** Тип данных формулы (без учета `sliceIndex`) */
834
+ dbDataType: string;
835
+ /** Формат */
836
+ format: EFormatTypes;
837
+ /** Метод фильтрации */
838
+ filteringMethod: valueof<typeof formulaFilterMethods>;
839
+ /** Выбранные в списке значения в виде моделей */
840
+ checkedValues?: (string | null)[];
841
+ /** Значения полей формы редактора */
842
+ formValues?: Partial<{
843
+ [EFormulaFilterFieldKeys.date]: string | null;
844
+ [EFormulaFilterFieldKeys.dateRange]: [string, string];
845
+ [EFormulaFilterFieldKeys.numberRange]: Partial<[number, number]>;
846
+ [EFormulaFilterFieldKeys.string]: string;
847
+ [EFormulaFilterFieldKeys.lastTimeValue]: number;
848
+ [EFormulaFilterFieldKeys.lastTimeUnit]: ELastTimeUnit;
849
+ [EFormulaFilterFieldKeys.durationUnit]: EDurationUnit;
850
+ }>;
869
851
  }
870
- /** Настройка цвета */
871
- type TColor = {
872
- mode: EColorMode.FORMULA;
852
+ declare enum EDimensionProcessFilterTimeUnit {
853
+ YEARS = "YEARS",
854
+ MONTHS = "MONTHS",
855
+ HOURS = "HOURS",
856
+ DAYS = "DAYS",
857
+ MINUTES = "MINUTES"
858
+ }
859
+ interface IDimensionProcessFilter {
860
+ value: Extract<IFormulaControl["value"]["value"], {
861
+ mode: EWidgetIndicatorValueModes.AGGREGATION | EWidgetIndicatorValueModes.START_TIME | EWidgetIndicatorValueModes.END_TIME | EWidgetIndicatorValueModes.FORMULA;
862
+ }>;
863
+ dbDataType: string;
864
+ condition: {
865
+ filteringMethod: valueof<typeof formulaFilterMethods>;
866
+ timeUnit?: EDimensionProcessFilterTimeUnit;
867
+ values: (string | null)[];
868
+ };
869
+ }
870
+ type TExtendedFormulaFilterValue = {
873
871
  formula: string;
874
- } | TColorBase | {
875
- mode: EColorMode.GRADIENT;
876
- startValue: string;
877
- endValue: string;
878
- classCount?: TNullable<number>;
879
- } | {
880
- mode: EColorMode.AUTO;
881
- } | TColorRule | {
882
- mode: EColorMode.VALUES;
883
- items: IColoredValue[];
884
- } | {
885
- mode: EColorMode.BY_DIMENSION;
886
- /** Имя разреза из области видимости правила отображения */
887
- dimensionName: string;
888
- items: IColoredValue[];
889
- } | {
890
- mode: EColorMode.DISABLED;
891
- };
892
- declare const getRuleColor: (ruleFormula: string, globalContext: Pick<IGlobalContext, "reportDisplayRules" | "workspaceDisplayRules">) => TColor | undefined;
893
- declare const isValidColor: (color: TColor, globalContext: Pick<IGlobalContext, "reportDisplayRules" | "workspaceDisplayRules">) => boolean;
894
- declare const colors: string[];
895
- /**
896
- * Получить цвет по индексу элемента
897
- * @param index - индекс элемента, которому требуется цвет
898
- */
899
- declare const getColorByIndex: (index: number) => string;
900
-
901
- interface IAutoIdentifiedArrayItem {
872
+ } | IFormulaFilterValue;
873
+ interface IStagesFilterItem {
874
+ id: number;
875
+ /** Название этапа */
876
+ name: string;
877
+ /** Формула фильтра этапа */
878
+ formula: string;
879
+ isSelected: boolean;
880
+ }
881
+ interface IStagesFilterValue {
882
+ /** Ключ виджета */
883
+ widgetKey: string;
884
+ /** Заголовок фильтра */
885
+ name: TNullable<string>;
886
+ /** Этапы */
887
+ stages: IStagesFilterItem[];
888
+ }
889
+ type TWidgetFilterValue = TExtendedFormulaFilterValue | IStagesFilterValue | IProcessEventFilterValue | IProcessTransitionFilterValue;
890
+ interface IWidgetFilter {
891
+ /** Значение фильтра */
892
+ filterValue: TWidgetFilterValue;
893
+ /** Значение фильтра, подготовленное для передачи в вычислитель */
894
+ preparedFilterValue: ICalculatorFilter;
895
+ /** Информация о возможности менять фильтр из виджета */
896
+ isReadonly: boolean;
897
+ }
898
+ interface IWidgetFiltration {
899
+ /** Информация о внешних фильтрах виджета */
900
+ filters: IWidgetFilter[];
902
901
  /**
903
- * Идентификатор, добавляемый системой "на лету" для удобства разработки, не сохраняется на сервер.
904
- * Гарантируется уникальность id в пределах settings виджета.
902
+ * Значения внешних фильтров виджета, подготовленные для передачи в вычислитель.
903
+ * Использует данные из filters, но предоставлено отдельным полем для удобства разработки.
905
904
  */
906
- id: number;
907
- }
908
- interface IBaseWidgetSettings {
909
- title?: string;
910
- titleSize?: number;
911
- titleColor?: TColor;
912
- titleWeight?: EFontWeight;
913
- stateName?: string | null;
914
- showMarkdown?: boolean;
915
- markdownMeasures?: IMarkdownMeasure[];
916
- markdownText?: string;
917
- markdownTextSize?: number;
918
- filters?: TExtendedFormulaFilterValue[];
919
- filterMode?: EWidgetFilterMode;
920
- ignoreFilters?: boolean;
921
- sorting?: IWidgetSortingIndicator[];
922
- actionButtons?: IActionButton[];
923
- paddings?: number | string;
905
+ preparedFilterValues: ICalculatorFilter[];
906
+ /** Добавить фильтр по формуле */
907
+ addFormulaFilter(value: TSelectivePartial<IFormulaFilterValue, "format" | "formValues">): void;
908
+ /**
909
+ * Удалить фильтр, заданный формулой, из текущего набора фильтров
910
+ *
911
+ * @param formula Формула фильтра, который необходимо удалить. Должна точно соответствовать
912
+ * формуле ранее добавленного фильтра (с учетом регистра и пробелов).
913
+ * @param [sliceIndex] Опциональный индекс элемента массива. См. {@link IFormulaFilterValue.sliceIndex}.
914
+ *
915
+ * @remarks
916
+ * - Если фильтр был добавлен без указания индекса, его нужно удалять без указания индекса.
917
+ * - Если фильтр был добавлен с индексом, тот же индекс должен быть указан при удалении.
918
+ * - Удаление происходит по точному совпадению формулы и индекса (если он был указан).
919
+ */
920
+ removeFormulaFilter(formula: string, sliceIndex?: number): void;
921
+ /** Добавить процессный фильтр */
922
+ addProcessFilter(...args: Parameters<IAddPresenceOfEventFilter> | Parameters<IAddRepetitionOfEventFilter> | Parameters<IAddPresenceOfTransitionFilter> | Parameters<IAddDurationOfTransitionFilter>): void;
923
+ /** Добавить фильтр по этапам */
924
+ addStagesFilter(value: Omit<IStagesFilterValue, "widgetKey">): void;
925
+ /** Удалить фильтр по этапам */
926
+ removeStagesFilter(widgetKey: string): void;
924
927
  }
928
+ type TSettingsFilter = TExtendedFormulaFilterValue | IDimensionProcessFilter;
929
+ declare const isFormulaFilterValue: (value: TExtendedFormulaFilterValue) => value is IFormulaFilterValue;
930
+ declare const isDimensionProcessFilter: (filter: TSettingsFilter) => filter is IDimensionProcessFilter;
925
931
 
926
932
  declare enum EWidgetActionInputMethod {
927
933
  COLUMN = "COLUMN",
@@ -951,11 +957,7 @@ declare enum EViewOpenIn {
951
957
  WINDOW = "WINDOW",
952
958
  PLACEHOLDER = "PLACEHOLDER",
953
959
  MODAL_WINDOW = "MODAL_WINDOW",
954
- DRAWER_WINDOW = "DRAWER_WINDOW",
955
- /** @deprecated необходимо использовать EViewOpenIn.WINDOW с флагом newWindow - true */
956
- NEW_WINDOW = "NEW_WINDOW",
957
- /** @deprecated необходимо использовать EViewOpenIn.WINDOW с флагом newWindow - false */
958
- CURRENT_WINDOW = "CURRENT_WINDOW"
960
+ DRAWER_WINDOW = "DRAWER_WINDOW"
959
961
  }
960
962
  declare enum EDrawerPlacement {
961
963
  LEFT = "LEFT",
@@ -1085,17 +1087,9 @@ type TActionOpenIn = {
1085
1087
  } | {
1086
1088
  openIn: EViewOpenIn.PLACEHOLDER;
1087
1089
  placeholderName: string;
1088
- }
1089
- /** @deprecated необходимо использовать EViewOpenIn.WINDOW с флагом newWindow - true */
1090
- | {
1091
- openIn: EViewOpenIn.NEW_WINDOW;
1092
1090
  } | {
1093
1091
  openIn: EViewOpenIn.MODAL_WINDOW;
1094
1092
  positionByClick?: boolean;
1095
- }
1096
- /** @deprecated необходимо использовать EViewOpenIn.WINDOW с флагом newWindow - false */
1097
- | {
1098
- openIn: EViewOpenIn.CURRENT_WINDOW;
1099
1093
  } | {
1100
1094
  openIn: EViewOpenIn.WINDOW;
1101
1095
  newWindow: boolean;
@@ -1146,253 +1140,57 @@ interface IActionButton extends IAutoIdentifiedArrayItem {
1146
1140
  backgroundColor?: TColor;
1147
1141
  borderColor?: TColor;
1148
1142
  color: TColor;
1149
- hint?: string;
1150
- }
1151
- type TViewActionParameter = (IParameterFromAggregation | IParameterFromVariable) & {
1152
- name: string;
1153
- };
1154
- interface IViewAction {
1155
- name: string;
1156
- buttonType: EActionButtonsTypes;
1157
- type: EActionTypes.EXECUTE_SCRIPT;
1158
- parameters: TViewActionParameter[];
1159
- scriptKey: string;
1160
- id?: number;
1161
- autoUpdate?: EAutoUpdateMode.NONE | EAutoUpdateMode.ALL_VIEWS;
1162
- }
1163
- type TAction = TActionsOnClick | IWidgetAction | IViewAction;
1164
- type TActionValidator = (action: TAction) => boolean;
1165
- declare enum EActionButtonsTypes {
1166
- LINK = "link",
1167
- BASE = "primary",
1168
- SECONDARY = "primary-outlined"
1169
- }
1170
-
1171
- declare enum ESimpleDataType {
1172
- OTHER = "OTHER",
1173
- DATE = "DATE",
1174
- FLOAT = "FLOAT",
1175
- DATETIME = "DATETIME",
1176
- STRING = "STRING",
1177
- INTEGER = "INTEGER",
1178
- DATETIME64 = "DATETIME64",
1179
- BOOLEAN = "BOOLEAN"
1180
- }
1181
- type TDbTypeContainer = "Array" | "Nullable";
1182
- /** Результат разбора типа данных из базы данных (в будущем возможна поддержка других СУБД помимо ClickHouse) */
1183
- interface IParsedDbType<T extends TNullable<string> = string> {
1184
- /** Контейнеры над базовым типом в порядке от внешнего к внутреннему */
1185
- containers: TDbTypeContainer[];
1186
- /** Исходный базовый тип (без контейнеров) */
1187
- dbBaseDataType: T;
1188
- /** Обобщенный базовый тип */
1189
- simpleBaseType: ESimpleDataType;
1190
- /** Обобщенный исходный тип (при наличии контейнера `Array` классифицируется как `OTHER`) */
1191
- simpleType: ESimpleDataType;
1192
- }
1193
-
1194
- declare enum EDimensionTemplateNames {
1195
- dateTime = "dateTime",
1196
- date = "date",
1197
- year = "year",
1198
- yearAndQuarter = "yearAndQuarter",
1199
- quarter = "quarter",
1200
- yearAndMonth = "yearAndMonth",
1201
- dayOfMonth = "dayOfMonth",
1202
- month = "month",
1203
- week = "week",
1204
- dayOfWeek = "dayOfWeek",
1205
- hour = "hour"
1206
- }
1207
- /** Стандартные шаблоны разреза */
1208
- declare const dimensionTemplateFormulas: Record<EDimensionTemplateNames, string>;
1209
-
1210
- declare function getDimensionFormula({ value }: IWidgetDimension): string;
1211
-
1212
- declare enum EDimensionAggregationTemplateName {
1213
- avg = "avg",
1214
- median = "median",
1215
- count = "count",
1216
- countDistinct = "countDistinct",
1217
- min = "min",
1218
- max = "max",
1219
- sum = "sum",
1220
- top = "top",
1221
- firstValue = "firstValue",
1222
- lastValue = "lastValue",
1223
- countExecutions = "countExecutions",
1224
- countReworks = "countReworks"
1225
- }
1226
- /** Шаблоны процессных метрик разреза с режимом AGGREGATION */
1227
- declare const dimensionAggregationTemplates: Record<EDimensionAggregationTemplateName, string>;
1228
- /** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
1229
- declare const prepareDimensionAggregationParams: (value: Extract<IWidgetDimension["value"], {
1230
- mode: EWidgetIndicatorValueModes.AGGREGATION;
1231
- }>) => {
1232
- eventNameFormula: string;
1233
- caseCaseIdFormula: string;
1234
- eventName: string;
1235
- objectFilters: string;
1236
- filters: string;
1237
- eventTimeFormula: string;
1238
- columnFormula: string;
1239
- } | null;
1240
-
1241
- /** Шаблоны процессных метрик разреза с режимами START_TIME/END_TIME */
1242
- declare const timeTemplates: {
1243
- START_TIME: Record<EDimensionTemplateNames, string>;
1244
- END_TIME: Record<EDimensionTemplateNames, string>;
1245
- };
1246
- /** На основе значения режимов START_TIME/END_TIME подготовить параметры для подстановки в шаблонную формулу */
1247
- declare const prepareTimeParams: (value: TWidgetIndicatorTimeValue) => {
1248
- eventTimeFormula: string;
1249
- eventNameFormula: string;
1250
- caseCaseIdFormula: string;
1251
- filters: string;
1252
- eventName: string;
1253
- } | undefined;
1254
-
1255
- declare function getMeasureFormula({ value }: IWidgetMeasure): string;
1256
-
1257
- declare enum EMeasureTemplateNames {
1258
- avg = "avg",
1259
- median = "median",
1260
- count = "count",
1261
- countDistinct = "countDistinct",
1262
- min = "min",
1263
- max = "max",
1264
- sum = "sum"
1265
- }
1266
- /** Стандартные шаблоны меры */
1267
- declare const measureTemplateFormulas: {
1268
- readonly avg: "avg({columnFormula})";
1269
- readonly count: "count({columnFormula})";
1270
- readonly countDistinct: "count(distinct {columnFormula})";
1271
- readonly median: "medianExact({columnFormula})";
1272
- readonly min: "min({columnFormula})";
1273
- readonly max: "max({columnFormula})";
1274
- readonly sum: "sum({columnFormula})";
1275
- };
1276
-
1277
- declare enum EMeasureAggregationTemplateName {
1278
- agvIf = "agvIf",
1279
- medianIf = "medianIf",
1280
- countIf = "countIf",
1281
- countIfDistinct = "countIfDistinct",
1282
- minIf = "minIf",
1283
- maxIf = "maxIf",
1284
- sumIf = "sumIf",
1285
- top = "top",
1286
- firstValue = "firstValue",
1287
- lastValue = "lastValue",
1288
- countExecutions = "countExecutions",
1289
- countReworks = "countReworks"
1290
- }
1291
- /** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
1292
- declare const prepareMeasureAggregationParams: (value: Extract<IWidgetMeasure["value"], {
1293
- mode: EWidgetIndicatorValueModes.AGGREGATION;
1294
- }>) => {
1295
- outerAggregation: EOuterAggregation;
1296
- eventNameFormula: string;
1297
- caseCaseIdFormula: string;
1298
- eventName: string | null;
1299
- objectFilters: string;
1300
- filters: string;
1301
- eventTimeFormula: string;
1302
- columnFormula: string;
1303
- } | null;
1304
-
1305
- /** Шаблон процессной метрики меры с режимом CONVERSION */
1306
- declare const conversionTemplate = "countIf(\n process(\n minIf(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n maxIf(\n {endEventTimeFormula}, \n {endEventNameFormula} = '{endEventName}'{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n) / countIf(\n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n)";
1307
- /** На основе значения режима CONVERSION подготовить параметры для подстановки в шаблонную формулу */
1308
- declare const prepareConversionParams: (value: TWidgetIndicatorConversionValue) => {
1309
- objectFilters: string;
1310
- startEventTimeFormula: string;
1311
- startEventNameFormula: string;
1312
- startEventFilters: string;
1313
- startEventName: string;
1314
- endEventTimeFormula: string;
1315
- endCaseCaseIdFormula: string;
1316
- endEventNameFormula: string;
1317
- endEventName: string;
1318
- endEventFilters: string;
1319
- } | null;
1320
-
1321
- declare function createAggregationTemplate(templateName: EMeasureAggregationTemplateName, { outerAggregation, anyEvent, }: Pick<TWidgetIndicatorAggregationValue, "anyEvent"> & {
1322
- outerAggregation: EOuterAggregation;
1323
- }): string;
1324
-
1325
- /** Шаблоны процессных метрик меры с режимом DURATION */
1326
- declare const durationTemplates: Record<EDurationTemplateName, string>;
1327
- /** На основе значения режима DURATION подготовить параметры для подстановки в шаблонную формулу */
1328
- declare const prepareDurationParams: (value: TWidgetIndicatorDurationValue) => {
1329
- objectFilters: string;
1330
- startEventTimeFormula: string;
1331
- startEventNameFormula: string;
1332
- startEventFilters: string;
1333
- startEventName: string;
1334
- startEventAggregationName: string;
1335
- endEventTimeFormula: string;
1336
- endCaseCaseIdFormula: string;
1337
- endEventNameFormula: string;
1338
- endEventName: string;
1339
- endEventFilters: string;
1340
- endEventAggregationName: string;
1341
- } | null;
1342
-
1343
- declare function getEventMeasureFormula({ value }: IProcessIndicator, process: IWidgetProcess): string;
1344
-
1345
- declare enum EEventMeasureTemplateNames {
1346
- eventsCount = "eventsCount",
1347
- reworksCount = "reworksCount"
1348
- }
1349
- declare const eventMeasureTemplateFormulas: {
1350
- readonly eventsCount: "count()";
1351
- readonly reworksCount: "count() - uniqExact({caseCaseIdFormula})";
1352
- };
1353
-
1354
- declare function getTransitionMeasureFormula({ value }: IProcessIndicator, process: IWidgetProcess): string;
1355
-
1356
- declare enum ETransitionMeasureTemplateNames {
1357
- transitionsCount = "transitionsCount",
1358
- medianTime = "medianTime"
1143
+ hint?: string;
1359
1144
  }
1360
- declare const transitionMeasureTemplateFormulas: {
1361
- readonly transitionsCount: "count()";
1362
- readonly medianTime: "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))";
1145
+ type TViewActionParameter = (IParameterFromAggregation | IParameterFromVariable) & {
1146
+ name: string;
1363
1147
  };
1148
+ interface IViewAction {
1149
+ name: string;
1150
+ buttonType: EActionButtonsTypes;
1151
+ type: EActionTypes.EXECUTE_SCRIPT;
1152
+ parameters: TViewActionParameter[];
1153
+ scriptKey: string;
1154
+ id?: number;
1155
+ autoUpdate?: EAutoUpdateMode.NONE | EAutoUpdateMode.ALL_VIEWS;
1156
+ }
1157
+ type TAction = TActionsOnClick | IWidgetAction | IViewAction;
1158
+ type TActionValidator = (action: TAction) => boolean;
1159
+ declare enum EActionButtonsTypes {
1160
+ LINK = "link",
1161
+ BASE = "primary",
1162
+ SECONDARY = "primary-outlined"
1163
+ }
1364
1164
 
1365
- declare const countExecutionsTemplate = "process(countIf({eventNameFormula} in '{eventName}'{filters}), {caseCaseIdFormula})";
1366
-
1367
- declare function fillTemplateString(templateString: string, params: Record<string, any>): string;
1368
-
1369
- declare function generateColumnFormula(tableName: string, columnName: string): string;
1370
-
1371
- /**
1372
- * Регулярное выражение для поиска имени ссылки внутри формулы.
1373
- * Учитывает, что имя внутри формулы содержит экраны.
1374
- *
1375
- * Принцип работы:
1376
- * Пробовать следующие вхождения:
1377
- * - \\\\ - экранированный символ обратного слэша.
1378
- * - Иначе \\" - экранированный символ кавычки.
1379
- * - Иначе [^"] - любой символ кроме кавычки.
1380
- * Если встречается любой другой символ, то это закрывающая кавычка имени переменной.
1381
- */
1382
- declare const linkNameRegExp = "(?:\\\\\\\\|\\\\\"|[^\"])+";
1383
- declare const dashboardLinkRegExp: RegExp;
1384
- declare const workspaceLinkRegExp: RegExp;
1385
- interface IIndicatorLink {
1386
- /** string - имя группы пространства, null - используется текущий отчет */
1387
- scopeName: string | null;
1388
- indicatorName: string;
1165
+ declare enum ESimpleDataType {
1166
+ OTHER = "OTHER",
1167
+ DATE = "DATE",
1168
+ FLOAT = "FLOAT",
1169
+ DATETIME = "DATETIME",
1170
+ STRING = "STRING",
1171
+ INTEGER = "INTEGER",
1172
+ DATETIME64 = "DATETIME64",
1173
+ BOOLEAN = "BOOLEAN"
1174
+ }
1175
+ type TDbTypeContainer = "Array" | "Nullable";
1176
+ /** Результат разбора типа данных из базы данных (в будущем возможна поддержка других СУБД помимо ClickHouse) */
1177
+ interface IParsedDbType<T extends TNullable<string> = string> {
1178
+ /** Контейнеры над базовым типом в порядке от внешнего к внутреннему */
1179
+ containers: TDbTypeContainer[];
1180
+ /** Исходный базовый тип (без контейнеров) */
1181
+ dbBaseDataType: T;
1182
+ /** Обобщенный базовый тип */
1183
+ simpleBaseType: ESimpleDataType;
1184
+ /** Обобщенный исходный тип (при наличии контейнера `Array` классифицируется как `OTHER`) */
1185
+ simpleType: ESimpleDataType;
1389
1186
  }
1390
- declare const parseIndicatorLink: (formula: string) => IIndicatorLink | null;
1391
1187
 
1392
1188
  type THintPlacement = "top" | "left" | "right" | "bottom" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom";
1393
1189
  declare enum EControlType {
1394
1190
  /** Ввод текста */
1395
1191
  input = "input",
1192
+ /** Ввод текста с поддержкой шаблонной вставки сущностей */
1193
+ inputTemplate = "inputTemplate",
1396
1194
  /** Ввод текста в формате markdown */
1397
1195
  inputMarkdown = "inputMarkdown",
1398
1196
  /** Ввод числа */
@@ -1435,6 +1233,7 @@ declare enum EControlType {
1435
1233
  }
1436
1234
  type ControlsMap = {
1437
1235
  [EControlType.input]: IInputControl;
1236
+ [EControlType.inputTemplate]: IInputTemplatedControl;
1438
1237
  [EControlType.inputMarkdown]: IInputMarkdownControl;
1439
1238
  [EControlType.inputNumber]: IInputNumberControl;
1440
1239
  [EControlType.inputRange]: IInputRangeControl;
@@ -1548,6 +1347,11 @@ interface IInputControl {
1548
1347
  hintPlacement?: THintPlacement;
1549
1348
  };
1550
1349
  }
1350
+ interface IInputTemplatedControl {
1351
+ type: EControlType.inputTemplate;
1352
+ value: string;
1353
+ props: {};
1354
+ }
1551
1355
  interface IInputMarkdownControl {
1552
1356
  type: EControlType.inputMarkdown;
1553
1357
  value: string;
@@ -1663,9 +1467,9 @@ interface IFormulaControl {
1663
1467
  dbDataType: string | undefined;
1664
1468
  };
1665
1469
  props: {
1666
- showModeToggle?: boolean;
1667
1470
  indicatorConfig?: ({
1668
1471
  type: "measure";
1472
+ templates?: TWidgetMeasureData["templates"];
1669
1473
  } & {
1670
1474
  /** @deprecated временное решение для виджета "Воронка", не следует использовать [BI-14710] */
1671
1475
  allowClear?: boolean;
@@ -1677,9 +1481,12 @@ interface IFormulaControl {
1677
1481
  options?: TMeasureAddButtonSelectOption[];
1678
1482
  }) | {
1679
1483
  type: "dimension";
1680
- templates?: EDimensionTemplateNames[];
1484
+ templates?: TWidgetDimensionData["templates"];
1485
+ processTimeTemplates?: TWidgetDimensionData["processTimeTemplates"];
1681
1486
  };
1682
1487
  disabled?: boolean;
1488
+ /** Ключи процессов для фильтрации таблиц, доступных для выбора */
1489
+ processKeys?: Iterable<string>;
1683
1490
  titleModal?: string;
1684
1491
  };
1685
1492
  }
@@ -1697,9 +1504,14 @@ interface ITypedFormulaControl {
1697
1504
  interface IFormattingControl {
1698
1505
  type: EControlType.formatting;
1699
1506
  value: {
1700
- format: EFormatTypes;
1701
- formatting: EFormattingPresets;
1702
- formattingTemplate?: string;
1507
+ format: {
1508
+ value?: EFormatTypes;
1509
+ mode: EFormatOrFormattingMode;
1510
+ };
1511
+ formatting: {
1512
+ value?: EFormattingPresets;
1513
+ mode: EFormatOrFormattingMode;
1514
+ };
1703
1515
  };
1704
1516
  props: {
1705
1517
  formats?: Partial<Record<ESimpleDataType, EFormatTypes[]>>;
@@ -1732,6 +1544,8 @@ interface IFilterControl {
1732
1544
  value: TExtendedFormulaFilterValue[];
1733
1545
  props: {
1734
1546
  buttonTitle?: string;
1547
+ /** Ключи процессов для фильтрации таблиц, доступных для выбора */
1548
+ processKeys?: Iterable<string>;
1735
1549
  };
1736
1550
  }
1737
1551
  interface IDisplayConditionControl {
@@ -1877,8 +1691,6 @@ interface IEdge extends IGraphElement {
1877
1691
  endName: string | null;
1878
1692
  }
1879
1693
  interface IProcessGraphCalculatorInput {
1880
- /** @deprecated необходимо использовать processKey */
1881
- processName?: string;
1882
1694
  processKey: string;
1883
1695
  vertexLimit: number | null;
1884
1696
  edgeLimit: number;
@@ -1960,6 +1772,8 @@ interface ITypeCalculator extends ICalculator<ITypeCalculatorInput, ITypeCalcula
1960
1772
 
1961
1773
  declare const prepareValuesForSql: (simpleType: ESimpleDataType, values: (string | null)[]) => (string | null)[];
1962
1774
 
1775
+ declare const mapSettingsFiltersToInputs: (filters: TSettingsFilter[]) => ICalculatorFilter[];
1776
+
1963
1777
  declare function checkDisplayCondition(displayCondition: TNullable<TDisplayCondition>, variables: Map<string, TWidgetVariable>): boolean;
1964
1778
  declare function getDisplayConditionFormula(displayCondition: TNullable<TDisplayCondition>): TNullable<string>;
1965
1779
  declare const replaceDisplayCondition: <I extends IWidgetColumnIndicator>(dimension: I, displayCondition: TNullable<TDisplayCondition>) => TNullable<I>;
@@ -2031,13 +1845,8 @@ declare function bindContentWithIndicator<Output extends ICalculatorIndicatorOut
2031
1845
  */
2032
1846
  declare function bindContentsWithIndicators<Output extends ICalculatorIndicatorOutput, Indicator extends IWidgetIndicator>(outputs: Map<string, Output>, indicators: Indicator[]): TBoundedContentWithIndicator<Output, Indicator>[];
2033
1847
 
2034
- /** Функция для экранирования специальных символов
2035
- * при подстановке названий таблиц, колонок, переменных или показателей в SQL-формулы.
2036
- * Пример: Если название переменной содержит кавычки или обратные слеши,
2037
- * например: `te"s\t`, то перед подстановкой в SQL-формулу его следует экранировать.
2038
- * Результат должен выглядеть так: `"inputs"."te\"s\\t"`
2039
- */
2040
- declare const escapeSpecialCharacters: (value: string) => string;
1848
+ /** Создать функцию экранирования переданных `specialChars` внутри `str` */
1849
+ declare const createEscaper: (specialChars: string[]) => (str: string) => string;
2041
1850
 
2042
1851
  /** Удалить из строки символы экранирования */
2043
1852
  declare function unescapeSpecialCharacters(str: string): string;
@@ -2106,6 +1915,208 @@ interface ICalculatorFactory {
2106
1915
  type: (options?: ICalculatorOptions) => ITypeCalculator;
2107
1916
  }
2108
1917
 
1918
+ declare enum EDimensionTemplateNames {
1919
+ dateTime = "dateTime",
1920
+ date = "date",
1921
+ year = "year",
1922
+ yearAndQuarter = "yearAndQuarter",
1923
+ quarter = "quarter",
1924
+ yearAndMonth = "yearAndMonth",
1925
+ dayOfMonth = "dayOfMonth",
1926
+ month = "month",
1927
+ week = "week",
1928
+ dayOfWeek = "dayOfWeek",
1929
+ hour = "hour"
1930
+ }
1931
+ /** Стандартные шаблоны разреза */
1932
+ declare const dimensionTemplateFormulas: Record<EDimensionTemplateNames, string>;
1933
+
1934
+ declare function getDimensionFormula({ value }: IWidgetDimension): string;
1935
+ declare function getProcessDimensionValueFormula(value: (TWidgetIndicatorAggregationValue & {
1936
+ innerTemplateName?: string;
1937
+ }) | TWidgetIndicatorTimeValue): string | undefined;
1938
+
1939
+ declare enum EDimensionAggregationTemplateName {
1940
+ avg = "avg",
1941
+ median = "median",
1942
+ count = "count",
1943
+ countDistinct = "countDistinct",
1944
+ min = "min",
1945
+ max = "max",
1946
+ sum = "sum",
1947
+ top = "top",
1948
+ firstValue = "firstValue",
1949
+ lastValue = "lastValue",
1950
+ countExecutions = "countExecutions",
1951
+ countReworks = "countReworks"
1952
+ }
1953
+ /** Шаблоны процессных метрик разреза с режимом AGGREGATION */
1954
+ declare const dimensionAggregationTemplates: Record<EDimensionAggregationTemplateName, string>;
1955
+ /** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
1956
+ declare const prepareDimensionAggregationParams: (value: Extract<IWidgetDimension["value"], {
1957
+ mode: EWidgetIndicatorValueModes.AGGREGATION;
1958
+ }>) => {
1959
+ eventNameFormula: string;
1960
+ caseCaseIdFormula: string;
1961
+ eventName: string;
1962
+ filters: string;
1963
+ eventTimeFormula: string;
1964
+ columnFormula: string;
1965
+ } | null;
1966
+
1967
+ /** Шаблоны процессных метрик разреза с режимами START_TIME/END_TIME */
1968
+ declare const timeTemplates: {
1969
+ START_TIME: Record<EDimensionTemplateNames, string>;
1970
+ END_TIME: Record<EDimensionTemplateNames, string>;
1971
+ };
1972
+ /** На основе значения режимов START_TIME/END_TIME подготовить параметры для подстановки в шаблонную формулу */
1973
+ declare const prepareTimeParams: (value: TWidgetIndicatorTimeValue) => {
1974
+ eventTimeFormula: string;
1975
+ eventNameFormula: string;
1976
+ caseCaseIdFormula: string;
1977
+ filters: string;
1978
+ eventName: string;
1979
+ } | undefined;
1980
+
1981
+ declare function getMeasureFormula({ value }: IWidgetMeasure): string;
1982
+
1983
+ declare enum EMeasureTemplateNames {
1984
+ avg = "avg",
1985
+ median = "median",
1986
+ count = "count",
1987
+ countDistinct = "countDistinct",
1988
+ min = "min",
1989
+ max = "max",
1990
+ sum = "sum"
1991
+ }
1992
+ /** Стандартные шаблоны меры */
1993
+ declare const measureTemplateFormulas: {
1994
+ readonly avg: "avg({columnFormula})";
1995
+ readonly count: "count({columnFormula})";
1996
+ readonly countDistinct: "count(distinct {columnFormula})";
1997
+ readonly median: "medianExact({columnFormula})";
1998
+ readonly min: "min({columnFormula})";
1999
+ readonly max: "max({columnFormula})";
2000
+ readonly sum: "sum({columnFormula})";
2001
+ };
2002
+
2003
+ declare enum EMeasureAggregationTemplateName {
2004
+ agvIf = "agvIf",
2005
+ medianIf = "medianIf",
2006
+ countIf = "countIf",
2007
+ countIfDistinct = "countIfDistinct",
2008
+ minIf = "minIf",
2009
+ maxIf = "maxIf",
2010
+ sumIf = "sumIf",
2011
+ top = "top",
2012
+ firstValue = "firstValue",
2013
+ lastValue = "lastValue",
2014
+ countExecutions = "countExecutions",
2015
+ countReworks = "countReworks"
2016
+ }
2017
+ /** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
2018
+ declare const prepareMeasureAggregationParams: (value: Extract<IWidgetMeasure["value"], {
2019
+ mode: EWidgetIndicatorValueModes.AGGREGATION;
2020
+ }>) => {
2021
+ outerAggregation: EOuterAggregation;
2022
+ eventNameFormula: string;
2023
+ caseCaseIdFormula: string;
2024
+ eventName: string;
2025
+ filters: string;
2026
+ eventTimeFormula: string;
2027
+ columnFormula: string;
2028
+ } | null;
2029
+
2030
+ /** Шаблон процессной метрики меры с режимом CONVERSION */
2031
+ declare const conversionTemplate = "countIf(\n process(\n minIf(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n maxIf(\n {endEventTimeFormula}, \n {endEventNameFormula} = '{endEventName}'{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) \n and \n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n) / countIf(\n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n)";
2032
+ /** На основе значения режима CONVERSION подготовить параметры для подстановки в шаблонную формулу */
2033
+ declare const prepareConversionParams: (value: TWidgetIndicatorConversionValue) => {
2034
+ startEventTimeFormula: string;
2035
+ startEventNameFormula: string;
2036
+ startEventFilters: string;
2037
+ startEventName: string;
2038
+ endEventTimeFormula: string;
2039
+ endCaseCaseIdFormula: string;
2040
+ endEventNameFormula: string;
2041
+ endEventName: string;
2042
+ endEventFilters: string;
2043
+ } | null;
2044
+
2045
+ declare function createAggregationTemplate(templateName: EMeasureAggregationTemplateName, { outerAggregation, anyEvent, }: Pick<TWidgetIndicatorAggregationValue, "anyEvent"> & {
2046
+ outerAggregation: EOuterAggregation;
2047
+ }): string;
2048
+
2049
+ /** Шаблоны процессных метрик меры с режимом DURATION */
2050
+ declare const durationTemplates: Record<EDurationTemplateName, string>;
2051
+ /** На основе значения режима DURATION подготовить параметры для подстановки в шаблонную формулу */
2052
+ declare const prepareDurationParams: (value: TWidgetIndicatorDurationValue) => {
2053
+ startEventTimeFormula: string;
2054
+ startEventNameFormula: string;
2055
+ startEventFilters: string;
2056
+ startEventName: string;
2057
+ startEventAggregationName: string;
2058
+ endEventTimeFormula: string;
2059
+ endCaseCaseIdFormula: string;
2060
+ endEventNameFormula: string;
2061
+ endEventName: string;
2062
+ endEventFilters: string;
2063
+ endEventAggregationName: string;
2064
+ } | null;
2065
+
2066
+ declare function getEventMeasureFormula({ value }: IProcessIndicator, process: Omit<IWidgetProcess, "isValid">): string;
2067
+
2068
+ declare enum EEventMeasureTemplateNames {
2069
+ eventsCount = "eventsCount",
2070
+ reworksCount = "reworksCount"
2071
+ }
2072
+ declare const eventMeasureTemplateFormulas: {
2073
+ readonly eventsCount: "count()";
2074
+ readonly reworksCount: "count() - uniqExact({caseCaseIdFormula})";
2075
+ };
2076
+
2077
+ declare function getTransitionMeasureFormula({ value }: IProcessIndicator, process: Omit<IWidgetProcess, "isValid">): string;
2078
+
2079
+ declare enum ETransitionMeasureTemplateNames {
2080
+ transitionsCount = "transitionsCount",
2081
+ medianTime = "medianTime"
2082
+ }
2083
+ declare const transitionMeasureTemplateFormulas: {
2084
+ readonly transitionsCount: "count()";
2085
+ readonly medianTime: "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))";
2086
+ };
2087
+
2088
+ declare const countExecutionsTemplate = "process(countIf({eventNameFormula} in '{eventName}'{filters}), {caseCaseIdFormula})";
2089
+
2090
+ /** @deprecated - следует использовать fillTemplateSql */
2091
+ declare function fillTemplateString(templateString: string, params: Record<string, any>): string;
2092
+ /** Функция для безопасного заполнения SQL шаблонов с защитой от однострочных SQL комментариев в подставляемых значениях. */
2093
+ declare function fillTemplateSql(templateString: string, params: Record<string, string>): string;
2094
+
2095
+ declare function generateColumnFormula(tableName: string, columnName: string): string;
2096
+
2097
+ /**
2098
+ * Паттерн подстроки, валидной для использования внутри фигурных скобок.
2099
+ * Требование к подстроке - отсутствие закрывающих фигурных скобок (кроме экранированных).
2100
+ */
2101
+ declare const curlyBracketsContentPattern: string;
2102
+ /**
2103
+ * Паттерн подстроки, валидной для использования внутри двойных кавычек.
2104
+ * Требование к подстроке - отсутствие двойных кавычек (кроме экранированных).
2105
+ */
2106
+ declare const doubleQuoteContentPattern: string;
2107
+ declare const dashboardLinkRegExp: RegExp;
2108
+ declare const workspaceLinkRegExp: RegExp;
2109
+ /** Экранирование спец.символов при подстановке названий таблиц и колонок */
2110
+ declare const escapeDoubleQuoteLinkName: (str: string) => string;
2111
+ /** Экранирование спец.символов при подстановке названий переменных и показателей */
2112
+ declare const escapeCurlyBracketLinkName: (str: string) => string;
2113
+ interface IIndicatorLink {
2114
+ /** string - имя группы пространства, null - используется текущий отчет */
2115
+ scopeName: string | null;
2116
+ indicatorName: string;
2117
+ }
2118
+ declare const parseIndicatorLink: (formula: string) => IIndicatorLink | null;
2119
+
2109
2120
  interface ILens<T extends TNullable<object>, Value> {
2110
2121
  get(obj: T): TNullable<Value>;
2111
2122
  set(obj: T, value: Value): void;
@@ -2220,7 +2231,10 @@ interface IInitialSettings extends Record<string, any> {
2220
2231
  /** Кнопка добавления группы в набор */
2221
2232
  type TAddButton = {
2222
2233
  title: string;
2223
- props?: ICustomAddButtonProps | IMeasureAddButtonProps | ISortingAddButtonProps;
2234
+ props?: (ICustomAddButtonProps | IMeasureAddButtonProps | ISortingAddButtonProps) & {
2235
+ /** Ключи процессов для фильтрации таблиц, доступных для выбора */
2236
+ processKeys?: Iterable<string>;
2237
+ };
2224
2238
  /**
2225
2239
  * Начальные настройки, которые получит показатель при создании через кнопку добавления.
2226
2240
  * Возможность не поддерживается для иерархии разрезов.
@@ -2237,16 +2251,25 @@ type TWidgetDimensionData = {
2237
2251
  type: EWidgetIndicatorType.DIMENSION;
2238
2252
  /** Обобщенные типы данных, поддерживаемые разрезом */
2239
2253
  simpleTypes?: ESimpleDataType[];
2240
- /** Шаблоны формул, доступные для выбора в разрезе */
2241
- templates?: Partial<Record<ESimpleDataType, EDimensionTemplateNames[]>>;
2242
- /** Переопределение доступных форматов и их порядка */
2243
- formats?: Record<ESimpleDataType, EFormatTypes[]>;
2254
+ /**
2255
+ * Шаблоны формул, доступные к выбору шаблоны на основе колонок (по типу колонки)
2256
+ * Фильтрация применяется только для указанных типов колонки
2257
+ */
2258
+ templates?: Partial<Record<ESimpleDataType, (EDimensionTemplateNames | EDimensionAggregationTemplateName)[]>>;
2259
+ /**
2260
+ * Шаблоны формул, доступные к выбору в процессных разрезах по времени
2261
+ */
2262
+ processTimeTemplates?: EDimensionTemplateNames[];
2263
+ /** Переопределение доступных форматов */
2264
+ formats?: Partial<Record<ESimpleDataType, EFormatTypes[]>>;
2244
2265
  };
2245
2266
  /** Конфигурация меры */
2246
2267
  type TWidgetMeasureData = {
2247
2268
  type: EWidgetIndicatorType.MEASURE;
2248
- /** Переопределение доступных форматов и их порядка */
2249
- formats?: Record<ESimpleDataType, EFormatTypes[]>;
2269
+ /** Переопределение доступных форматов */
2270
+ formats?: Partial<Record<ESimpleDataType, EFormatTypes[]>>;
2271
+ /** Шаблоны формул, доступные для выбора в мере */
2272
+ templates?: Partial<Record<ESimpleDataType, EMeasureTemplateNames[]>>;
2250
2273
  };
2251
2274
  /** Конфигурация показателя */
2252
2275
  type TWidgetIndicatorData = TWidgetDimensionData | TWidgetMeasureData;
@@ -2337,10 +2360,6 @@ interface IWidgetProcess {
2337
2360
  caseCaseIdFormula: string;
2338
2361
  /** Имя колонки CaseId события */
2339
2362
  eventCaseIdColumnName: string;
2340
- /** Тип данных CaseId */
2341
- caseIdDbDataType: string;
2342
- /** Тип данных времени события */
2343
- eventTimeDbDataType: string;
2344
2363
  /** Является ли процесс валидным */
2345
2364
  isValid: boolean;
2346
2365
  }
@@ -2495,7 +2514,7 @@ type TContextMenuButtonOptions = {
2495
2514
 
2496
2515
  /** Контекст с данными образа (будет заполняться по мере необходимости) */
2497
2516
  interface IViewContext {
2498
- filters: TExtendedFormulaFilterValue[];
2517
+ filters: TSettingsFilter[];
2499
2518
  }
2500
2519
 
2501
2520
  type TLaunchActionParams = {
@@ -2680,8 +2699,6 @@ interface IDimensionSelectionByFormula extends Map<string, IDimensionSelection>
2680
2699
  type TUpdateSelection = (selection: IDimensionSelectionByFormula, formula: string, value: string, filters: ICalculatorFilter[]) => void;
2681
2700
  declare const updateDefaultModeSelection: TUpdateSelection;
2682
2701
  declare const updateSingleModeSelection: TUpdateSelection;
2683
- /** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
2684
- declare const updateMultiModeSelection: TUpdateSelection;
2685
2702
  declare const replaceFiltersBySelection: (filters: ICalculatorFilter[], selection: IDimensionSelectionByFormula) => ICalculatorFilter[];
2686
2703
 
2687
2704
  /**
@@ -2736,4 +2753,4 @@ declare global {
2736
2753
  }
2737
2754
  }
2738
2755
 
2739
- export { EActionButtonsTypes, EActionTypes, EActivateConditionMode, EAutoUpdateMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, EDataModelOption, EDimensionAggregationTemplateName, EDimensionTemplateNames, EDisplayConditionMode, EDrawerPlacement, EDurationTemplateName, EDurationUnit, EEventAppearances, EEventMeasureTemplateNames, EFontWeight, EFormatTypes, EFormattingPresets, EFormulaFilterFieldKeys, EIndicatorType, ELastTimeUnit, EMarkdownDisplayMode, EMeasureAggregationTemplateName, EMeasureTemplateNames, EOuterAggregation, EProcessFilterNames, ESelectOptionTypes, ESimpleDataType, ESimpleInputType, ESortDirection, ESortingValueModes, ESystemRecordKey, ETransitionMeasureTemplateNames, EUnitMode, EViewMode, EViewOpenIn, EWidgetActionInputMethod, EWidgetFilterMode, EWidgetIndicatorType, EWidgetIndicatorValueModes, type IActionButton, type IActionGoToUrl, type IActionOnClickControl, type IActionRunScript, type IActionScript, type IActionUpdateVariable, type IAddButtonSelectOption, type IAddDurationOfTransitionFilter, type IAddPresenceOfEventFilter, type IAddPresenceOfTransitionFilter, type IAddRepetitionOfEventFilter, type IAutoIdentifiedArrayItem, type IBaseDimensionsAndMeasuresCalculator, type IBaseDimensionsAndMeasuresCalculatorInput, type IBaseDimensionsAndMeasuresCalculatorOutput, type IBaseWidgetSettings, type ICalculator, type ICalculatorDimensionInput, type ICalculatorDimensionOutput, type ICalculatorFactory, type ICalculatorFilter, type ICalculatorIndicatorInput, type ICalculatorIndicatorOutput, type ICalculatorMeasureInput, type ICalculatorMeasureOutput, type ICalculatorOptions, type ICollapseRecord, type IColorPickerControl, type IColoredValue, type ICommonDimensions, type ICommonMeasures, type ICommonState, type IControlRecord, type ICustomAddButtonProps, type ICustomWidgetProps, type IDefinition, type IDimensionSelection, type IDimensionSelectionByFormula, type IDisplayConditionControl, type IDisplayPredicate, type IDisplayRule, type IDivePanelDescription, type IDividerRecord, type IEdge, type IEventsColorControl, type IEventsPickerControl, type IExportColumnOrder, type IFillSettings, type IFilterControl, type IFormattingControl, type IFormattingTemplateControl, type IFormulaControl, type IFormulaFilterValue, type IGeneralCalculator, type IGeneralCalculatorExportInput, type IGeneralCalculatorInput, type IGeneralCalculatorOutput, type IGlobalContext, type IGraphElement, type IGroupSetDescription, type IGroupSetRecord, type IGroupSettings, type IHistogramBin, type IHistogramCalculator, type IHistogramCalculatorInput, type IHistogramCalculatorOutput, type IIndicatorLink, type IInitialSettings, type IInputControl, type IInputMarkdownControl, type IInputNumberControl, type IInputRangeControl, type ILens, type IMarkdownMeasure, type IMeasureAddButtonProps, type IPanelDescription, type IPanelDescriptionCreator, type IParameterColumnList, type IParameterFromAggregation, type IParameterFromColumn, type IParameterFromDynamicList, type IParameterFromEndEvent, type IParameterFromEvent, type IParameterFromFormula, type IParameterFromManualInput, type IParameterFromStartEvent, type IParameterFromStaticList, type IParameterFromVariable, type IParameterTableList, type IPieCalculator, type IPieCalculatorInput, type IPieCalculatorOutput, type IProcessEventFilterValue, type IProcessEventIndicator, type IProcessFilterPreviewParams, type IProcessGraphCalculator, type IProcessGraphCalculatorInput, type IProcessGraphCalculatorOutput, type IProcessIndicator, type IProcessTransitionFilterValue, type IProcessTransitionIndicator, type IRadioIconGroupControl, type IRange, type ISelectBranchOption, type ISelectControl, type ISelectDividerOption, type ISelectGroupOption, type ISelectLeafOption, type ISelectNode, type ISelectOption, type ISelectSystemOption, type ISettingsMigratorParams, type ISizeControl, type ISortOrder, type ISortingAddButtonProps, type IStagesFilterValue, type IStaticListLabeledOption, type ISwitchControl, type ITagSetControl, type ITwoLimitsCalculator, type ITwoLimitsCalculatorExportInput, type ITwoLimitsCalculatorInput, type ITwoLimitsCalculatorOutput, type ITypeCalculator, type ITypeCalculatorInput, type ITypeCalculatorOutput, type ITypeCalculatorOutputItem, type ITypedFormulaControl, type IVertex, type IViewAction, type IViewContext, type IWidget, type IWidgetAction, type IWidgetColumnIndicator, type IWidgetColumnListVariable, type IWidgetDimension, type IWidgetDimensionHierarchy, type IWidgetDynamicListVariable, type IWidgetEntity, type IWidgetFilter, type IWidgetFiltration, type IWidgetFormatting, type IWidgetIndicator, type IWidgetIndicatorAddButtonProps, type IWidgetManifest, type IWidgetMeasure, type IWidgetMigrator, type IWidgetPersistValue, type IWidgetPlaceholderController, type IWidgetPlaceholderValues, type IWidgetPresetSettings, type IWidgetProcess, type IWidgetProps, type IWidgetSortingIndicator, type IWidgetStaticListVariable, type IWidgetStaticVariable, type IWidgetStruct, type IWidgetTable, type IWidgetTableColumn, OuterAggregation, type TAction, type TActionOnClickParameter, type TActionOpenView, type TActionValidator, type TActionsOnClick, type TAddButton, type TBoundedContentWithIndicator, type TColor, type TColorBase, type TColorRule, type TColumnIndicatorValue, type TContextMenu, type TContextMenuButton, type TContextMenuButtonActions, type TContextMenuButtonApply, type TContextMenuButtonClose, type TContextMenuButtonCustom, type TContextMenuButtonGroup, type TContextMenuButtonOptions, type TContextMenuList, type TContextMenuPositionUnit, type TContextMenuRow, type TControlUnion, type TCustomAddButtonSelectOption, type TDefineWidgetOptions, type TDisplayCondition, type TDisplayMode, type TEmptyRecord, type TExtendedFormulaFilterValue, type TFiltrationAccessibility, type TGroupLevelRecord, type THintPlacement, type TLaunchActionParams, type TMeasureAddButtonSelectOption, type TMigrateProcessor, type TMigrationStruct, type TParameterFromDataModel, type TProcessIndicatorValue, type TRecordAccessor, type TSelectChildOptions, type TSelectFetchNodes, type TSelectivePartial, type TSortDirection, type TUpdateSelection, type TValuePath, type TVersion, type TViewActionParameter, type TWidgetActionParameter, type TWidgetContainer, type TWidgetDimensionData, type TWidgetFilterValue, type TWidgetFiltering, type TWidgetIndicatorAggregationValue, type TWidgetIndicatorConversionValue, type TWidgetIndicatorDurationValue, type TWidgetIndicatorTimeValue, type TWidgetLevelRecord, type TWidgetMeasureData, type TWidgetSortingValue, type TWidgetVariable, applyIndexToArrayFormula, bindContentWithIndicator, bindContentsWithIndicators, checkDisplayCondition, clearMultiLineComments, clearSingleLineComments, colors, conversionTemplate, convertFiltersToFormula, convertToFormulasChain, countExecutionsTemplate, createAggregationTemplate as createMeasureAggregationTemplate, dashboardLinkRegExp, dimensionAggregationTemplates, dimensionTemplateFormulas, displayConditionTemplate, durationTemplates, escapeSpecialCharacters, eventMeasureTemplateFormulas, fillTemplateString, formattingConfig, formulaFilterMethods, generateColumnFormula, getColorByIndex, getDefaultSortOrders, getDimensionFormula, getDisplayConditionFormula, getEventMeasureFormula, getLocalizedText, getMeasureFormula, getRuleColor, getTransitionMeasureFormula, isDimensionsHierarchy, isFormulaFilterValue, isValidColor, linkNameRegExp, mapDimensionsToInputs, mapEventMeasuresToInputs, mapFormulaFilterToCalculatorInput, mapFormulaFiltersToInputs, mapMeasuresToInputs, mapSortingToInputs, mapTransitionMeasuresToInputs, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareConversionParams, prepareDimensionAggregationParams, prepareDurationParams, prepareFormulaForSql, prepareMeasureAggregationParams, prepareSortOrders, prepareTimeParams, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, timeTemplates, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateMultiModeSelection, updateSingleModeSelection, workspaceLinkRegExp };
2756
+ export { EActionButtonsTypes, EActionTypes, EActivateConditionMode, EAutoUpdateMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, EDataModelOption, EDimensionAggregationTemplateName, EDimensionProcessFilterTimeUnit, EDimensionTemplateNames, EDisplayConditionMode, EDrawerPlacement, EDurationTemplateName, EDurationUnit, EEventAppearances, EEventMeasureTemplateNames, EFontWeight, EFormatOrFormattingMode, EFormatTypes, EFormattingPresets, EFormulaFilterFieldKeys, EIndicatorType, ELastTimeUnit, EMarkdownDisplayMode, EMeasureAggregationTemplateName, EMeasureTemplateNames, EOuterAggregation, EProcessFilterNames, ESelectOptionTypes, ESimpleDataType, ESimpleInputType, ESortDirection, ESortingValueModes, ESystemRecordKey, ETransitionMeasureTemplateNames, EUnitMode, EViewMode, EViewOpenIn, EWidgetActionInputMethod, EWidgetFilterMode, EWidgetIndicatorType, EWidgetIndicatorValueModes, type IActionButton, type IActionGoToUrl, type IActionOnClickControl, type IActionRunScript, type IActionScript, type IActionUpdateVariable, type IAddButtonSelectOption, type IAddDurationOfTransitionFilter, type IAddPresenceOfEventFilter, type IAddPresenceOfTransitionFilter, type IAddRepetitionOfEventFilter, type IAutoIdentifiedArrayItem, type IBaseDimensionsAndMeasuresCalculator, type IBaseDimensionsAndMeasuresCalculatorInput, type IBaseDimensionsAndMeasuresCalculatorOutput, type IBaseWidgetSettings, type ICalculator, type ICalculatorDimensionInput, type ICalculatorDimensionOutput, type ICalculatorFactory, type ICalculatorFilter, type ICalculatorIndicatorInput, type ICalculatorIndicatorOutput, type ICalculatorMeasureInput, type ICalculatorMeasureOutput, type ICalculatorOptions, type ICollapseRecord, type IColorPickerControl, type IColoredValue, type ICommonDimensions, type ICommonMeasures, type ICommonState, type IControlRecord, type ICustomAddButtonProps, type ICustomWidgetProps, type IDefinition, type IDimensionProcessFilter, type IDimensionSelection, type IDimensionSelectionByFormula, type IDisplayConditionControl, type IDisplayPredicate, type IDisplayRule, type IDivePanelDescription, type IDividerRecord, type IEdge, type IEventsColorControl, type IEventsPickerControl, type IExportColumnOrder, type IFillSettings, type IFilterControl, type IFormattingControl, type IFormattingTemplateControl, type IFormulaControl, type IFormulaFilterValue, type IGeneralCalculator, type IGeneralCalculatorExportInput, type IGeneralCalculatorInput, type IGeneralCalculatorOutput, type IGlobalContext, type IGraphElement, type IGroupSetDescription, type IGroupSetRecord, type IGroupSettings, type IHistogramBin, type IHistogramCalculator, type IHistogramCalculatorInput, type IHistogramCalculatorOutput, type IIndicatorLink, type IInitialSettings, type IInputControl, type IInputMarkdownControl, type IInputNumberControl, type IInputRangeControl, type IInputTemplatedControl, type ILens, type IMarkdownMeasure, type IMeasureAddButtonProps, type IPanelDescription, type IPanelDescriptionCreator, type IParameterColumnList, type IParameterFromAggregation, type IParameterFromColumn, type IParameterFromDynamicList, type IParameterFromEndEvent, type IParameterFromEvent, type IParameterFromFormula, type IParameterFromManualInput, type IParameterFromStartEvent, type IParameterFromStaticList, type IParameterFromVariable, type IParameterTableList, type IPieCalculator, type IPieCalculatorInput, type IPieCalculatorOutput, type IProcessEventFilterValue, type IProcessEventIndicator, type IProcessFilterPreviewParams, type IProcessGraphCalculator, type IProcessGraphCalculatorInput, type IProcessGraphCalculatorOutput, type IProcessIndicator, type IProcessTransitionFilterValue, type IProcessTransitionIndicator, type IRadioIconGroupControl, type IRange, type ISelectBranchOption, type ISelectControl, type ISelectDividerOption, type ISelectGroupOption, type ISelectLeafOption, type ISelectNode, type ISelectOption, type ISelectSystemOption, type ISettingsMigratorParams, type ISizeControl, type ISortOrder, type ISortingAddButtonProps, type IStagesFilterValue, type IStaticListLabeledOption, type ISwitchControl, type ITagSetControl, type ITwoLimitsCalculator, type ITwoLimitsCalculatorExportInput, type ITwoLimitsCalculatorInput, type ITwoLimitsCalculatorOutput, type ITypeCalculator, type ITypeCalculatorInput, type ITypeCalculatorOutput, type ITypeCalculatorOutputItem, type ITypedFormulaControl, type IVertex, type IViewAction, type IViewContext, type IWidget, type IWidgetAction, type IWidgetColumnIndicator, type IWidgetColumnListVariable, type IWidgetDimension, type IWidgetDimensionHierarchy, type IWidgetDynamicListVariable, type IWidgetEntity, type IWidgetFilter, type IWidgetFiltration, type IWidgetFormatting, type IWidgetIndicator, type IWidgetIndicatorAddButtonProps, type IWidgetManifest, type IWidgetMeasure, type IWidgetMigrator, type IWidgetPersistValue, type IWidgetPlaceholderController, type IWidgetPlaceholderValues, type IWidgetPresetSettings, type IWidgetProcess, type IWidgetProps, type IWidgetSortingIndicator, type IWidgetStaticListVariable, type IWidgetStaticVariable, type IWidgetStruct, type IWidgetTable, type IWidgetTableColumn, OuterAggregation, type TAction, type TActionOnClickParameter, type TActionOpenView, type TActionValidator, type TActionsOnClick, type TAddButton, type TBoundedContentWithIndicator, type TColor, type TColorBase, type TColorRule, type TColumnIndicatorValue, type TContextMenu, type TContextMenuButton, type TContextMenuButtonActions, type TContextMenuButtonApply, type TContextMenuButtonClose, type TContextMenuButtonCustom, type TContextMenuButtonGroup, type TContextMenuButtonOptions, type TContextMenuList, type TContextMenuPositionUnit, type TContextMenuRow, type TControlUnion, type TCustomAddButtonSelectOption, type TDefineWidgetOptions, type TDisplayCondition, type TDisplayMode, type TEmptyRecord, type TExtendedFormulaFilterValue, type TFiltrationAccessibility, type TGroupLevelRecord, type THintPlacement, type TLaunchActionParams, type TMeasureAddButtonSelectOption, type TMigrateProcessor, type TMigrationStruct, type TParameterFromDataModel, type TProcessIndicatorValue, type TRecordAccessor, type TSelectChildOptions, type TSelectFetchNodes, type TSelectivePartial, type TSettingsFilter, type TSortDirection, type TUpdateSelection, type TValuePath, type TVersion, type TViewActionParameter, type TWidgetActionParameter, type TWidgetContainer, type TWidgetDimensionData, type TWidgetFilterValue, type TWidgetFiltering, type TWidgetIndicatorAggregationValue, type TWidgetIndicatorConversionValue, type TWidgetIndicatorDurationValue, type TWidgetIndicatorTimeValue, type TWidgetLevelRecord, type TWidgetMeasureData, type TWidgetSortingValue, type TWidgetVariable, applyIndexToArrayFormula, bindContentWithIndicator, bindContentsWithIndicators, checkDisplayCondition, clearMultiLineComments, clearSingleLineComments, colors, conversionTemplate, convertFiltersToFormula, convertToFormulasChain, countExecutionsTemplate, createEscaper, createAggregationTemplate as createMeasureAggregationTemplate, curlyBracketsContentPattern, dashboardLinkRegExp, dimensionAggregationTemplates, dimensionTemplateFormulas, displayConditionTemplate, doubleQuoteContentPattern, durationTemplates, escapeCurlyBracketLinkName, escapeDoubleQuoteLinkName, eventMeasureTemplateFormulas, fillTemplateSql, fillTemplateString, formattingConfig, formulaFilterMethods, generateColumnFormula, getColorByIndex, getDefaultSortOrders, getDimensionFormula, getDisplayConditionFormula, getEventMeasureFormula, getLocalizedText, getMeasureFormula, getProcessDimensionValueFormula, getRuleColor, getTransitionMeasureFormula, isDimensionProcessFilter, isDimensionsHierarchy, isFormulaFilterValue, isValidColor, mapDimensionsToInputs, mapEventMeasuresToInputs, mapFormulaFilterToCalculatorInput, mapFormulaFiltersToInputs, mapMeasuresToInputs, mapSettingsFiltersToInputs, mapSortingToInputs, mapTransitionMeasuresToInputs, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareConversionParams, prepareDimensionAggregationParams, prepareDurationParams, prepareFormulaForSql, prepareMeasureAggregationParams, prepareSortOrders, prepareTimeParams, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, timeTemplates, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateSingleModeSelection, workspaceLinkRegExp };