@infomaximum/widget-sdk 6.0.2 → 7.0.0-2

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.esm.js CHANGED
@@ -2,6 +2,40 @@ import { Localization } from '@infomaximum/localization';
2
2
  export { ELanguages } from '@infomaximum/localization';
3
3
  export { EFilteringMethodValues } from '@infomaximum/base-filter';
4
4
 
5
+ /** Массив версий в строгом порядке, по которому последовательно выполняется миграция */
6
+ var apiVersions = [
7
+ "1",
8
+ "2",
9
+ "3",
10
+ "4",
11
+ "5",
12
+ "6",
13
+ "7", // Версии от 7 и старше пока не удаляем [BI-15416]
14
+ "8",
15
+ "9",
16
+ "10",
17
+ "10.1",
18
+ "10.2",
19
+ "10.3", // 241223
20
+ "11",
21
+ "12",
22
+ "13", // 2503
23
+ "13.1", // 250314
24
+ "14",
25
+ "15", // Для версии системы 2505
26
+ "15.1", // Для версии системы 250609
27
+ "15.2", // Для версии системы 250614
28
+ "16", // Для версии системы 2507
29
+ "16.1", // Для версии системы 250703
30
+ "16.2", // Для версии системы 250709
31
+ "17", // 2508
32
+ ];
33
+ /**
34
+ * Актуальная версия settings, с которой работает система.
35
+ * Используется единая версия для settings виджетов и показателей.
36
+ */
37
+ var apiVersion = apiVersions.at(-1);
38
+
5
39
  var EWidgetActionInputMethod;
6
40
  (function (EWidgetActionInputMethod) {
7
41
  EWidgetActionInputMethod["COLUMN"] = "COLUMN";
@@ -22,6 +56,7 @@ var EActionTypes;
22
56
  EActionTypes["UPDATE_VARIABLE"] = "UPDATE_VARIABLE";
23
57
  EActionTypes["EXECUTE_SCRIPT"] = "EXECUTE_SCRIPT";
24
58
  EActionTypes["OPEN_VIEW"] = "OPEN_VIEW";
59
+ EActionTypes["DRILL_DOWN"] = "DRILL_DOWN";
25
60
  })(EActionTypes || (EActionTypes = {}));
26
61
  var EViewMode;
27
62
  (function (EViewMode) {
@@ -64,6 +99,46 @@ var EActionButtonsTypes;
64
99
  EActionButtonsTypes["SECONDARY"] = "primary-outlined";
65
100
  })(EActionButtonsTypes || (EActionButtonsTypes = {}));
66
101
 
102
+ /**
103
+ * Глобальный счетчик для генерации ID.
104
+ *
105
+ * @todo
106
+ * В будущем можно заменить единый счетчик на изолированные счетчики в разных контекстах.
107
+ */
108
+ var id = 1;
109
+ var AutoIdentifiedArrayItemSchema = function (z) {
110
+ return z.object({
111
+ /**
112
+ * Идентификатор, добавляемый системой "на лету" для удобства разработки, не сохраняется на сервер.
113
+ * Гарантируется уникальность id в пределах settings виджета.
114
+ */
115
+ id: z
116
+ .number()
117
+ .default(-1)
118
+ .transform(function (currentId) { return (currentId === -1 ? id++ : currentId); }),
119
+ });
120
+ };
121
+ var BaseWidgetSettingsSchema = function (z) {
122
+ return z.object({
123
+ title: z.string().default(""),
124
+ titleSize: themed(z.number().default(14), function (theme) { return theme.widgets.titleSize; }),
125
+ titleColor: themed(ColorSchema(z), function (theme) { return theme.widgets.titleColor; }),
126
+ titleWeight: themed(z.enum(EFontWeight).default(EFontWeight.NORMAL), function (theme) { return theme.widgets.titleWeight; }),
127
+ stateName: z.string().nullable().default(null),
128
+ showMarkdown: z.boolean().default(false),
129
+ markdownMeasures: z.array(MarkdownMeasureSchema(z)).default([]),
130
+ markdownText: z.string().default(""),
131
+ markdownTextSize: z.number().default(14),
132
+ filters: z.array(SettingsFilterSchema(z)).default([]),
133
+ filterMode: z.enum(EWidgetFilterMode).default(EWidgetFilterMode.DEFAULT),
134
+ ignoreFilters: z.boolean().default(false),
135
+ sorting: z.array(WidgetSortingIndicatorSchema(z)).default([]),
136
+ actionButtons: z.array(ActionButtonSchema(z)).default([]),
137
+ paddings: themed(z.union([z.number(), z.string()]).default(8), function (theme) { return theme.widgets.paddings; }),
138
+ viewTheme: z.boolean().default(false),
139
+ });
140
+ };
141
+
67
142
  var ESimpleDataType;
68
143
  (function (ESimpleDataType) {
69
144
  ESimpleDataType["OTHER"] = "OTHER";
@@ -76,285 +151,6 @@ var ESimpleDataType;
76
151
  ESimpleDataType["BOOLEAN"] = "BOOLEAN";
77
152
  })(ESimpleDataType || (ESimpleDataType = {}));
78
153
 
79
- var prepareValuesForSql = function (simpleType, values) {
80
- return simpleType === ESimpleDataType.INTEGER ||
81
- simpleType === ESimpleDataType.FLOAT ||
82
- simpleType === ESimpleDataType.BOOLEAN
83
- ? values
84
- : values.map(function (value) {
85
- return value === null ? null : "'".concat(escapeSingularQuotes$1(escapeReverseSlash(value)), "'");
86
- });
87
- };
88
- var escapeReverseSlash = function (formula) {
89
- return formula.replaceAll(/\\/gm, "\\\\");
90
- };
91
- var escapeSingularQuotes$1 = function (formula) {
92
- return formula.replaceAll("'", "\\'");
93
- };
94
-
95
- /******************************************************************************
96
- Copyright (c) Microsoft Corporation.
97
-
98
- Permission to use, copy, modify, and/or distribute this software for any
99
- purpose with or without fee is hereby granted.
100
-
101
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
102
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
103
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
104
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
105
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
106
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
107
- PERFORMANCE OF THIS SOFTWARE.
108
- ***************************************************************************** */
109
- /* global Reflect, Promise, SuppressedError, Symbol */
110
-
111
-
112
- var __assign = function() {
113
- __assign = Object.assign || function __assign(t) {
114
- for (var s, i = 1, n = arguments.length; i < n; i++) {
115
- s = arguments[i];
116
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
117
- }
118
- return t;
119
- };
120
- return __assign.apply(this, arguments);
121
- };
122
-
123
- function __rest(s, e) {
124
- var t = {};
125
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
126
- t[p] = s[p];
127
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
128
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
129
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
130
- t[p[i]] = s[p[i]];
131
- }
132
- return t;
133
- }
134
-
135
- function __values(o) {
136
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
137
- if (m) return m.call(o);
138
- if (o && typeof o.length === "number") return {
139
- next: function () {
140
- if (o && i >= o.length) o = void 0;
141
- return { value: o && o[i++], done: !o };
142
- }
143
- };
144
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
145
- }
146
-
147
- function __read(o, n) {
148
- var m = typeof Symbol === "function" && o[Symbol.iterator];
149
- if (!m) return o;
150
- var i = m.call(o), r, ar = [], e;
151
- try {
152
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
153
- }
154
- catch (error) { e = { error: error }; }
155
- finally {
156
- try {
157
- if (r && !r.done && (m = i["return"])) m.call(i);
158
- }
159
- finally { if (e) throw e.error; }
160
- }
161
- return ar;
162
- }
163
-
164
- function __makeTemplateObject(cooked, raw) {
165
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
166
- return cooked;
167
- }
168
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
169
- var e = new Error(message);
170
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
171
- };
172
-
173
- var ECalculatorFilterMethods;
174
- (function (ECalculatorFilterMethods) {
175
- ECalculatorFilterMethods["EQUAL_TO"] = "EQUAL_TO";
176
- ECalculatorFilterMethods["NOT_EQUAL_TO"] = "NOT_EQUAL_TO";
177
- ECalculatorFilterMethods["GREATER_THAN"] = "GREATER_THAN";
178
- ECalculatorFilterMethods["LESS_THAN"] = "LESS_THAN";
179
- ECalculatorFilterMethods["GREATER_THAN_OR_EQUAL_TO"] = "GREATER_THAN_OR_EQUAL_TO";
180
- ECalculatorFilterMethods["LESS_THAN_OR_EQUAL_TO"] = "LESS_THAN_OR_EQUAL_TO";
181
- ECalculatorFilterMethods["STARTS_WITH"] = "STARTS_WITH";
182
- ECalculatorFilterMethods["ENDS_WITH"] = "ENDS_WITH";
183
- ECalculatorFilterMethods["CONTAINS"] = "CONTAINS";
184
- ECalculatorFilterMethods["NOT_CONTAINS"] = "NOT_CONTAINS";
185
- ECalculatorFilterMethods["IN_RANGE"] = "IN_RANGE";
186
- ECalculatorFilterMethods["NOT_IN_RANGE"] = "NOT_IN_RANGE";
187
- ECalculatorFilterMethods["INCLUDE"] = "INCLUDE";
188
- ECalculatorFilterMethods["EXCLUDE"] = "EXCLUDE";
189
- ECalculatorFilterMethods["NONEMPTY"] = "NONEMPTY";
190
- ECalculatorFilterMethods["EMPTY"] = "EMPTY";
191
- })(ECalculatorFilterMethods || (ECalculatorFilterMethods = {}));
192
-
193
- var formulaFilterMethods = __assign(__assign({}, ECalculatorFilterMethods), { LAST_TIME: "LAST_TIME" });
194
- var EProcessFilterNames;
195
- (function (EProcessFilterNames) {
196
- /** Наличие события */
197
- EProcessFilterNames["presenceOfEvent"] = "presenceOfEvent";
198
- /** Количество повторов события */
199
- EProcessFilterNames["repetitionOfEvent"] = "repetitionOfEvent";
200
- /** Наличие перехода */
201
- EProcessFilterNames["presenceOfTransition"] = "presenceOfTransition";
202
- /** Длительность перехода */
203
- EProcessFilterNames["durationOfTransition"] = "durationOfTransition";
204
- })(EProcessFilterNames || (EProcessFilterNames = {}));
205
- var EFormulaFilterFieldKeys;
206
- (function (EFormulaFilterFieldKeys) {
207
- EFormulaFilterFieldKeys["date"] = "date";
208
- EFormulaFilterFieldKeys["dateRange"] = "dateRange";
209
- EFormulaFilterFieldKeys["numberRange"] = "numberRange";
210
- EFormulaFilterFieldKeys["string"] = "string";
211
- EFormulaFilterFieldKeys["lastTimeValue"] = "lastTimeValue";
212
- EFormulaFilterFieldKeys["lastTimeUnit"] = "lastTimeUnit";
213
- EFormulaFilterFieldKeys["durationUnit"] = "durationUnit";
214
- })(EFormulaFilterFieldKeys || (EFormulaFilterFieldKeys = {}));
215
- var EDimensionProcessFilterTimeUnit;
216
- (function (EDimensionProcessFilterTimeUnit) {
217
- EDimensionProcessFilterTimeUnit["YEARS"] = "YEARS";
218
- EDimensionProcessFilterTimeUnit["MONTHS"] = "MONTHS";
219
- EDimensionProcessFilterTimeUnit["HOURS"] = "HOURS";
220
- EDimensionProcessFilterTimeUnit["DAYS"] = "DAYS";
221
- EDimensionProcessFilterTimeUnit["MINUTES"] = "MINUTES";
222
- })(EDimensionProcessFilterTimeUnit || (EDimensionProcessFilterTimeUnit = {}));
223
- var isFormulaFilterValue = function (value) {
224
- return "filteringMethod" in value;
225
- };
226
- var isDimensionProcessFilter = function (filter) { return "value" in filter && "condition" in filter; };
227
-
228
- var compact = function (items) { return ((items === null || items === void 0 ? void 0 : items.filter(Boolean)) || []); };
229
- var compactMap = function (items, f) {
230
- return compact(items === null || items === void 0 ? void 0 : items.map(f));
231
- };
232
- var isNil = function (value) {
233
- return value === null || value === undefined;
234
- };
235
- function memoize(fn) {
236
- var cache = new Map();
237
- return function (arg) {
238
- if (cache.has(arg)) {
239
- return cache.get(arg);
240
- }
241
- var result = fn(arg);
242
- cache.set(arg, result);
243
- return result;
244
- };
245
- }
246
-
247
- var EClickHouseBaseTypes;
248
- (function (EClickHouseBaseTypes) {
249
- // DATE
250
- EClickHouseBaseTypes["Date"] = "Date";
251
- EClickHouseBaseTypes["Date32"] = "Date32";
252
- // DATETIME
253
- EClickHouseBaseTypes["DateTime"] = "DateTime";
254
- EClickHouseBaseTypes["DateTime32"] = "DateTime32";
255
- // DATETIME64
256
- EClickHouseBaseTypes["DateTime64"] = "DateTime64";
257
- // STRING
258
- EClickHouseBaseTypes["FixedString"] = "FixedString";
259
- EClickHouseBaseTypes["String"] = "String";
260
- // FLOAT
261
- EClickHouseBaseTypes["Decimal"] = "Decimal";
262
- EClickHouseBaseTypes["Decimal32"] = "Decimal32";
263
- EClickHouseBaseTypes["Decimal64"] = "Decimal64";
264
- EClickHouseBaseTypes["Decimal128"] = "Decimal128";
265
- EClickHouseBaseTypes["Decimal256"] = "Decimal256";
266
- EClickHouseBaseTypes["Float32"] = "Float32";
267
- EClickHouseBaseTypes["Float64"] = "Float64";
268
- // INTEGER
269
- EClickHouseBaseTypes["Int8"] = "Int8";
270
- EClickHouseBaseTypes["Int16"] = "Int16";
271
- EClickHouseBaseTypes["Int32"] = "Int32";
272
- EClickHouseBaseTypes["Int64"] = "Int64";
273
- EClickHouseBaseTypes["Int128"] = "Int128";
274
- EClickHouseBaseTypes["Int256"] = "Int256";
275
- EClickHouseBaseTypes["UInt8"] = "UInt8";
276
- EClickHouseBaseTypes["UInt16"] = "UInt16";
277
- EClickHouseBaseTypes["UInt32"] = "UInt32";
278
- EClickHouseBaseTypes["UInt64"] = "UInt64";
279
- EClickHouseBaseTypes["UInt128"] = "UInt128";
280
- EClickHouseBaseTypes["UInt256"] = "UInt256";
281
- // BOOLEAN
282
- EClickHouseBaseTypes["Bool"] = "Bool";
283
- })(EClickHouseBaseTypes || (EClickHouseBaseTypes = {}));
284
- var stringTypes = ["String", "FixedString"];
285
- var parseClickHouseType = memoize(function (type) {
286
- if (isNil(type)) {
287
- return {
288
- simpleBaseType: ESimpleDataType.OTHER,
289
- dbBaseDataType: undefined,
290
- containers: [],
291
- simpleType: ESimpleDataType.OTHER,
292
- };
293
- }
294
- var _a = extractInnerType(type), containers = _a.containers, dbBaseDataType = _a.dbBaseDataType;
295
- if (!dbBaseDataType) {
296
- throw new Error("Invalid ClickHouse type: ".concat(type));
297
- }
298
- return {
299
- dbBaseDataType: dbBaseDataType,
300
- simpleBaseType: simplifyBaseType(dbBaseDataType),
301
- containers: containers,
302
- get simpleType() {
303
- return containers.includes("Array") ? ESimpleDataType.OTHER : this.simpleBaseType;
304
- },
305
- };
306
- });
307
- /** 'A(B(C))' -> ['A', 'B', 'C'] */
308
- var splitByBrackets = function (input) { return input.split(/[\(\)]/).filter(Boolean); };
309
- /**
310
- * Отделить внутренний тип от оберток.
311
- * Не поддерживаются обертки Tuple и LowCardinality.
312
- */
313
- var extractInnerType = function (type) {
314
- var tokens = splitByBrackets(type);
315
- // Удаление параметров типа.
316
- if (tokens.length > 0 && isTypeParameters(tokens.at(-1))) {
317
- tokens.pop();
318
- }
319
- var dbBaseDataType = tokens.pop();
320
- return { containers: tokens, dbBaseDataType: dbBaseDataType };
321
- };
322
- var simplifyBaseType = function (dbBaseType) {
323
- var isSourceTypeStartsWith = function (prefix) { return dbBaseType.startsWith(prefix); };
324
- if (isSourceTypeStartsWith("Int") || isSourceTypeStartsWith("UInt")) {
325
- return ESimpleDataType.INTEGER;
326
- }
327
- if (isSourceTypeStartsWith("Decimal") || isSourceTypeStartsWith("Float")) {
328
- return ESimpleDataType.FLOAT;
329
- }
330
- if (stringTypes.some(isSourceTypeStartsWith)) {
331
- return ESimpleDataType.STRING;
332
- }
333
- if (isSourceTypeStartsWith("DateTime64")) {
334
- return ESimpleDataType.DATETIME64;
335
- }
336
- if (isSourceTypeStartsWith("DateTime")) {
337
- return ESimpleDataType.DATETIME;
338
- }
339
- if (isSourceTypeStartsWith("Date")) {
340
- return ESimpleDataType.DATE;
341
- }
342
- if (isSourceTypeStartsWith("Bool")) {
343
- return ESimpleDataType.BOOLEAN;
344
- }
345
- return ESimpleDataType.OTHER;
346
- };
347
- /**
348
- * - `3` -> true
349
- * - `3, 'Europe/Moscow'` -> true
350
- * - `3, Europe/Moscow` -> false
351
- *
352
- * Пример типа с параметрами: `DateTime64(3, 'Europe/Moscow')`
353
- */
354
- var isTypeParameters = function (stringifiedParameters) {
355
- return stringifiedParameters.split(", ").some(function (p) { return !Number.isNaN(Number(p)) || p.startsWith("'"); });
356
- };
357
-
358
154
  var EFormatTypes;
359
155
  (function (EFormatTypes) {
360
156
  /** Дата */
@@ -648,6 +444,1051 @@ var formattingConfig = {
648
444
  },
649
445
  };
650
446
 
447
+ /******************************************************************************
448
+ Copyright (c) Microsoft Corporation.
449
+
450
+ Permission to use, copy, modify, and/or distribute this software for any
451
+ purpose with or without fee is hereby granted.
452
+
453
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
454
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
455
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
456
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
457
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
458
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
459
+ PERFORMANCE OF THIS SOFTWARE.
460
+ ***************************************************************************** */
461
+ /* global Reflect, Promise, SuppressedError, Symbol */
462
+
463
+
464
+ var __assign = function() {
465
+ __assign = Object.assign || function __assign(t) {
466
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
467
+ s = arguments[i];
468
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
469
+ }
470
+ return t;
471
+ };
472
+ return __assign.apply(this, arguments);
473
+ };
474
+
475
+ function __rest(s, e) {
476
+ var t = {};
477
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
478
+ t[p] = s[p];
479
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
480
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
481
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
482
+ t[p[i]] = s[p[i]];
483
+ }
484
+ return t;
485
+ }
486
+
487
+ function __values(o) {
488
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
489
+ if (m) return m.call(o);
490
+ if (o && typeof o.length === "number") return {
491
+ next: function () {
492
+ if (o && i >= o.length) o = void 0;
493
+ return { value: o && o[i++], done: !o };
494
+ }
495
+ };
496
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
497
+ }
498
+
499
+ function __read(o, n) {
500
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
501
+ if (!m) return o;
502
+ var i = m.call(o), r, ar = [], e;
503
+ try {
504
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
505
+ }
506
+ catch (error) { e = { error: error }; }
507
+ finally {
508
+ try {
509
+ if (r && !r.done && (m = i["return"])) m.call(i);
510
+ }
511
+ finally { if (e) throw e.error; }
512
+ }
513
+ return ar;
514
+ }
515
+
516
+ function __makeTemplateObject(cooked, raw) {
517
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
518
+ return cooked;
519
+ }
520
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
521
+ var e = new Error(message);
522
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
523
+ };
524
+
525
+ var EWidgetIndicatorType;
526
+ (function (EWidgetIndicatorType) {
527
+ EWidgetIndicatorType["MEASURE"] = "MEASURE";
528
+ EWidgetIndicatorType["EVENT_INDICATOR"] = "EVENT_INDICATOR";
529
+ EWidgetIndicatorType["TRANSITION_INDICATOR"] = "TRANSITION_INDICATOR";
530
+ EWidgetIndicatorType["DIMENSION"] = "DIMENSION";
531
+ EWidgetIndicatorType["SORTING"] = "SORTING";
532
+ })(EWidgetIndicatorType || (EWidgetIndicatorType = {}));
533
+ var EOuterAggregation;
534
+ (function (EOuterAggregation) {
535
+ EOuterAggregation["avg"] = "avg";
536
+ EOuterAggregation["median"] = "median";
537
+ EOuterAggregation["count"] = "count";
538
+ EOuterAggregation["countDistinct"] = "countDistinct";
539
+ EOuterAggregation["min"] = "min";
540
+ EOuterAggregation["max"] = "max";
541
+ EOuterAggregation["sum"] = "sum";
542
+ EOuterAggregation["top"] = "top";
543
+ })(EOuterAggregation || (EOuterAggregation = {}));
544
+ /** Режимы значения показателя (на основе чего генерируется формула) */
545
+ var EWidgetIndicatorValueModes;
546
+ (function (EWidgetIndicatorValueModes) {
547
+ /** Готовая формула (как правило, введенная пользователем через редактор формул) */
548
+ EWidgetIndicatorValueModes["FORMULA"] = "FORMULA";
549
+ /** Шаблон формулы, предоставляемый системой */
550
+ EWidgetIndicatorValueModes["TEMPLATE"] = "TEMPLATE";
551
+ EWidgetIndicatorValueModes["AGGREGATION"] = "AGGREGATION";
552
+ EWidgetIndicatorValueModes["DURATION"] = "DURATION";
553
+ EWidgetIndicatorValueModes["CONVERSION"] = "CONVERSION";
554
+ EWidgetIndicatorValueModes["START_TIME"] = "START_TIME";
555
+ EWidgetIndicatorValueModes["END_TIME"] = "END_TIME";
556
+ })(EWidgetIndicatorValueModes || (EWidgetIndicatorValueModes = {}));
557
+ /** Режимы сортировки (на что ссылается сортировка) */
558
+ var ESortingValueModes;
559
+ (function (ESortingValueModes) {
560
+ /** Сортировка по формуле */
561
+ ESortingValueModes["FORMULA"] = "FORMULA";
562
+ /** Сортировка по показателю(разрезу или мере) виджета */
563
+ ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
564
+ })(ESortingValueModes || (ESortingValueModes = {}));
565
+ var EFormatOrFormattingMode;
566
+ (function (EFormatOrFormattingMode) {
567
+ EFormatOrFormattingMode["BASE"] = "BASE";
568
+ EFormatOrFormattingMode["TEMPLATE"] = "TEMPLATE";
569
+ })(EFormatOrFormattingMode || (EFormatOrFormattingMode = {}));
570
+ function inheritDisplayConditionFromHierarchy(dimension, hierarchy) {
571
+ return __assign(__assign({}, dimension), { displayCondition: hierarchy.displayCondition });
572
+ }
573
+ /** Тип показателя */
574
+ var EIndicatorType;
575
+ (function (EIndicatorType) {
576
+ /** Показатели процесса */
577
+ EIndicatorType["PROCESS_MEASURE"] = "PROCESS_MEASURE";
578
+ /** Вводимое значение */
579
+ EIndicatorType["STATIC"] = "STATIC";
580
+ /** Статический список */
581
+ EIndicatorType["STATIC_LIST"] = "STATIC_LIST";
582
+ /** Динамический список */
583
+ EIndicatorType["DYNAMIC_LIST"] = "DYNAMIC_LIST";
584
+ /** Список колонок */
585
+ EIndicatorType["COLUMN_LIST"] = "COLUMN_LIST";
586
+ /** Разрез */
587
+ EIndicatorType["DIMENSION"] = "DIMENSION";
588
+ /** Мера */
589
+ EIndicatorType["MEASURE"] = "MEASURE";
590
+ /** Иерархия */
591
+ EIndicatorType["DYNAMIC_DIMENSION"] = "DYNAMIC_DIMENSION";
592
+ /** Пользовательская сортировка */
593
+ EIndicatorType["USER_SORTING"] = "USER_SORTING";
594
+ })(EIndicatorType || (EIndicatorType = {}));
595
+ /** Обобщенные типы значений переменных */
596
+ var ESimpleInputType;
597
+ (function (ESimpleInputType) {
598
+ /** Число (точность Float64) */
599
+ ESimpleInputType["NUMBER"] = "FLOAT";
600
+ /** Целое число (точность Int64) */
601
+ ESimpleInputType["INTEGER_NUMBER"] = "INTEGER";
602
+ /** Текст */
603
+ ESimpleInputType["TEXT"] = "STRING";
604
+ /** Дата (точность Date) */
605
+ ESimpleInputType["DATE"] = "DATE";
606
+ /** Дата и время (точность DateTime64) */
607
+ ESimpleInputType["DATE_AND_TIME"] = "DATETIME";
608
+ /** Логический тип */
609
+ ESimpleInputType["BOOLEAN"] = "BOOLEAN";
610
+ })(ESimpleInputType || (ESimpleInputType = {}));
611
+ function isDimensionsHierarchy(indicator) {
612
+ return "hierarchyDimensions" in indicator;
613
+ }
614
+ var OuterAggregation;
615
+ (function (OuterAggregation) {
616
+ OuterAggregation["avg"] = "avgIf";
617
+ OuterAggregation["median"] = "medianIf";
618
+ OuterAggregation["count"] = "countIf";
619
+ OuterAggregation["countDistinct"] = "countIfDistinct";
620
+ OuterAggregation["min"] = "minIf";
621
+ OuterAggregation["max"] = "maxIf";
622
+ OuterAggregation["sum"] = "sumIf";
623
+ })(OuterAggregation || (OuterAggregation = {}));
624
+ var EDurationTemplateName;
625
+ (function (EDurationTemplateName) {
626
+ EDurationTemplateName["avg"] = "avg";
627
+ EDurationTemplateName["median"] = "median";
628
+ })(EDurationTemplateName || (EDurationTemplateName = {}));
629
+ var EEventAppearances;
630
+ (function (EEventAppearances) {
631
+ EEventAppearances["FIRST"] = "FIRST";
632
+ EEventAppearances["LAST"] = "LAST";
633
+ })(EEventAppearances || (EEventAppearances = {}));
634
+
635
+ // Типы, используемые в значениях элементов управления.
636
+ var EWidgetFilterMode;
637
+ (function (EWidgetFilterMode) {
638
+ EWidgetFilterMode["DEFAULT"] = "DEFAULT";
639
+ EWidgetFilterMode["SINGLE"] = "SINGLE";
640
+ EWidgetFilterMode["DISABLED"] = "DISABLED";
641
+ })(EWidgetFilterMode || (EWidgetFilterMode = {}));
642
+ var EMarkdownDisplayMode;
643
+ (function (EMarkdownDisplayMode) {
644
+ EMarkdownDisplayMode["NONE"] = "NONE";
645
+ EMarkdownDisplayMode["INDICATOR"] = "INDICATOR";
646
+ })(EMarkdownDisplayMode || (EMarkdownDisplayMode = {}));
647
+ var EDisplayConditionMode;
648
+ (function (EDisplayConditionMode) {
649
+ EDisplayConditionMode["DISABLED"] = "DISABLED";
650
+ EDisplayConditionMode["FORMULA"] = "FORMULA";
651
+ EDisplayConditionMode["VARIABLE"] = "VARIABLE";
652
+ })(EDisplayConditionMode || (EDisplayConditionMode = {}));
653
+ var EFontWeight;
654
+ (function (EFontWeight) {
655
+ EFontWeight["NORMAL"] = "NORMAL";
656
+ EFontWeight["BOLD"] = "BOLD";
657
+ })(EFontWeight || (EFontWeight = {}));
658
+ var EHeightMode;
659
+ (function (EHeightMode) {
660
+ EHeightMode["FIXED"] = "FIXED";
661
+ EHeightMode["PERCENT"] = "PERCENT";
662
+ })(EHeightMode || (EHeightMode = {}));
663
+
664
+ var SortDirectionSchema = function (z) {
665
+ return z.union([z.literal(ESortDirection.ascend), z.literal(ESortDirection.descend)]);
666
+ };
667
+ var SortOrderSchema = function (z) {
668
+ return z.object({
669
+ /** Формула сортировки */
670
+ formula: FormulaSchema(z),
671
+ /** Тип данных формулы */
672
+ dbDataType: z.string().optional(),
673
+ /** Направление сортировки */
674
+ direction: SortDirectionSchema(z),
675
+ /** Условие применения сортировки */
676
+ displayCondition: FormulaSchema(z).optional(),
677
+ });
678
+ };
679
+ var WidgetSortingValueSchema = function (z) {
680
+ return z.discriminatedUnion("mode", [
681
+ z.object({
682
+ mode: z.literal(ESortingValueModes.FORMULA),
683
+ formula: FormulaSchema(z),
684
+ dbDataType: z.string().optional(),
685
+ }),
686
+ z.object({
687
+ mode: z.literal(ESortingValueModes.IN_WIDGET),
688
+ group: z.string(),
689
+ index: z.number(),
690
+ }),
691
+ ]);
692
+ };
693
+
694
+ /** Ключи мета-данных внутри схем настроек */
695
+ var ESettingsSchemaMetaKey;
696
+ (function (ESettingsSchemaMetaKey) {
697
+ /** Привязка значения из темы к настройке */
698
+ ESettingsSchemaMetaKey["themeValue"] = "themeValue";
699
+ /** Тип сущности */
700
+ ESettingsSchemaMetaKey["entity"] = "entity";
701
+ })(ESettingsSchemaMetaKey || (ESettingsSchemaMetaKey = {}));
702
+
703
+ var _a$6;
704
+ var RangeSchema = function (z) {
705
+ return z.object({
706
+ unit: z.string().optional(),
707
+ min: z.number().optional(),
708
+ max: z.number().optional(),
709
+ });
710
+ };
711
+ var DisplayConditionSchema = function (z) {
712
+ return z
713
+ .discriminatedUnion("mode", [
714
+ z.object({
715
+ mode: z.literal(EDisplayConditionMode.DISABLED),
716
+ }),
717
+ z.object({
718
+ mode: z.literal(EDisplayConditionMode.FORMULA),
719
+ formula: FormulaSchema(z),
720
+ }),
721
+ z.object({
722
+ mode: z.literal(EDisplayConditionMode.VARIABLE),
723
+ variableName: NameNullableSchema(z),
724
+ variableValue: z.string().nullable().default(null),
725
+ }),
726
+ ])
727
+ .default({ mode: EDisplayConditionMode.DISABLED });
728
+ };
729
+ /** Схема ключа сущности (с возможностью находиться в неинициализированном состоянии) */
730
+ var KeyNullableSchema = function (z) { return z.string().nullable().default(null); };
731
+ /** Схема имени сущности (с возможностью находиться в неинициализированном состоянии) */
732
+ var NameNullableSchema = function (z) { return z.string().nullable().default(null); };
733
+ /**
734
+ * Перечисление системных типов сущностей в схеме настроек виджетов.
735
+ * @note при расширении лучше положить на более общий уровень.
736
+ */
737
+ var EEntity;
738
+ (function (EEntity) {
739
+ EEntity["formula"] = "formula";
740
+ })(EEntity || (EEntity = {}));
741
+ var formulaMeta = Object.freeze((_a$6 = {}, _a$6[ESettingsSchemaMetaKey.entity] = EEntity.formula, _a$6));
742
+ /** Схема формулы */
743
+ var FormulaSchema = function (z) { return z.string().default("").meta(formulaMeta); };
744
+ /**
745
+ * Схема формулы, которая не может быть пустой строкой, но может быть в
746
+ * неинициализированном состоянии null (вместо пустой строки)
747
+ *
748
+ * @note для обратной совместимости без необходимости писать миграции
749
+ */
750
+ var FormulaNullableSchema = function (z) {
751
+ return z.string().nullable().default(null).meta(formulaMeta);
752
+ };
753
+
754
+ var WidgetIndicatorSchema = function (z) {
755
+ return AutoIdentifiedArrayItemSchema(z).extend({
756
+ name: z.string(),
757
+ });
758
+ };
759
+ var FormatSchema = function (z) {
760
+ return z
761
+ .object({
762
+ mode: z.enum(EFormatOrFormattingMode),
763
+ value: z.enum(EFormatTypes).optional(),
764
+ })
765
+ .default({ mode: EFormatOrFormattingMode.BASE, value: EFormatTypes.STRING });
766
+ };
767
+ var FormattingSchema = function (z) {
768
+ return z
769
+ .discriminatedUnion("mode", [
770
+ z.object({
771
+ mode: z.literal(EFormatOrFormattingMode.BASE),
772
+ value: z.enum(EFormattingPresets).default(EFormattingPresets.AUTO),
773
+ }),
774
+ z.object({
775
+ mode: z.literal(EFormatOrFormattingMode.TEMPLATE),
776
+ value: z.string().default(""),
777
+ }),
778
+ ])
779
+ .default({ mode: EFormatOrFormattingMode.BASE, value: EFormattingPresets.AUTO });
780
+ };
781
+ var WidgetColumnIndicatorSchema = function (z) {
782
+ return WidgetIndicatorSchema(z).extend({
783
+ dbDataType: z.string().optional(),
784
+ format: FormatSchema(z).optional(),
785
+ formatting: FormattingSchema(z).optional(),
786
+ displayCondition: DisplayConditionSchema(z),
787
+ onClick: z.array(ActionsOnClickSchema(z)).optional(),
788
+ });
789
+ };
790
+ var WidgetIndicatorFormulaValueSchema = function (z) {
791
+ return z.object({
792
+ mode: z.literal(EWidgetIndicatorValueModes.FORMULA),
793
+ formula: FormulaSchema(z).optional(),
794
+ });
795
+ };
796
+ var WidgetIndicatorTemplateValueSchema = function (z) {
797
+ return z.object({
798
+ mode: z.literal(EWidgetIndicatorValueModes.TEMPLATE),
799
+ /** Имя шаблонной формулы, использующей колонку таблицы */
800
+ templateName: z.string().optional(),
801
+ /** Имя таблицы */
802
+ tableName: z.string().optional(),
803
+ /** Имя колонки */
804
+ columnName: z.string().optional(),
805
+ });
806
+ };
807
+ var ColumnIndicatorValueSchema = function (z) {
808
+ return z.union([MeasureValueSchema(z), DimensionValueSchema(z)]);
809
+ };
810
+ var MeasureValueSchema = function (z) {
811
+ return z.discriminatedUnion("mode", [
812
+ WidgetIndicatorFormulaValueSchema(z),
813
+ WidgetIndicatorTemplateValueSchema(z).extend({
814
+ innerTemplateName: z.enum(EMeasureInnerTemplateNames).optional(),
815
+ }),
816
+ ]);
817
+ };
818
+ var DimensionValueSchema = function (z) {
819
+ return z.discriminatedUnion("mode", [
820
+ WidgetIndicatorFormulaValueSchema(z),
821
+ WidgetIndicatorTemplateValueSchema(z).extend({
822
+ innerTemplateName: z.never().optional(),
823
+ }),
824
+ ]);
825
+ };
826
+ var WidgetIndicatorAggregationValueSchema = function (z) {
827
+ return z.object({
828
+ mode: z.literal(EWidgetIndicatorValueModes.AGGREGATION),
829
+ templateName: z.string(),
830
+ processKey: KeyNullableSchema(z),
831
+ eventName: NameNullableSchema(z),
832
+ eventNameFormula: FormulaNullableSchema(z),
833
+ anyEvent: z.literal(true).optional(),
834
+ caseCaseIdFormula: FormulaNullableSchema(z),
835
+ filters: z.array(ExtendedFormulaFilterValueSchema(z)).default([]),
836
+ tableName: z.string().optional(),
837
+ columnName: z.string().optional(),
838
+ eventTimeFormula: FormulaNullableSchema(z).optional(),
839
+ });
840
+ };
841
+ var WidgetMeasureAggregationValueSchema = function (z) {
842
+ return WidgetIndicatorAggregationValueSchema(z).extend({ outerAggregation: z.enum(EOuterAggregation) });
843
+ };
844
+ var WidgetIndicatorTimeValueSchema = function (z) {
845
+ return z.object({
846
+ templateName: z.string(),
847
+ mode: z.union([
848
+ z.literal(EWidgetIndicatorValueModes.START_TIME),
849
+ z.literal(EWidgetIndicatorValueModes.END_TIME),
850
+ ]),
851
+ processKey: KeyNullableSchema(z),
852
+ eventName: NameNullableSchema(z),
853
+ eventTimeFormula: FormulaNullableSchema(z),
854
+ caseCaseIdFormula: FormulaNullableSchema(z),
855
+ eventNameFormula: FormulaNullableSchema(z),
856
+ filters: z.array(ExtendedFormulaFilterValueSchema(z)).default([]),
857
+ });
858
+ };
859
+ var WidgetDimensionSchema = function (z) {
860
+ return WidgetColumnIndicatorSchema(z).extend({
861
+ value: z
862
+ .discriminatedUnion("mode", [
863
+ DimensionValueSchema(z),
864
+ WidgetIndicatorAggregationValueSchema(z).extend({
865
+ innerTemplateName: z.string().optional(),
866
+ }),
867
+ WidgetIndicatorTimeValueSchema(z),
868
+ ])
869
+ .optional(),
870
+ hideEmptyValues: z.boolean().default(false),
871
+ });
872
+ };
873
+ var WidgetDimensionInHierarchySchema = function (z) {
874
+ return WidgetDimensionSchema(z).omit({ displayCondition: true });
875
+ };
876
+ var WidgetDimensionHierarchySchema = function (z, dimensionSchema) {
877
+ return AutoIdentifiedArrayItemSchema(z).extend({
878
+ name: z.string(),
879
+ // Для иерархии является дискриминатором, для него нельзя задавать дефолтное значение.
880
+ hierarchyDimensions: z.array(dimensionSchema),
881
+ displayCondition: DisplayConditionSchema(z),
882
+ });
883
+ };
884
+ var WidgetIndicatorConversionValueSchema = function (z) {
885
+ return z.object({
886
+ mode: z.literal(EWidgetIndicatorValueModes.CONVERSION),
887
+ startEventNameFormula: FormulaNullableSchema(z),
888
+ startEventProcessKey: KeyNullableSchema(z),
889
+ startEventName: NameNullableSchema(z),
890
+ startEventFilters: z.array(ExtendedFormulaFilterValueSchema(z)).default([]),
891
+ startEventTimeFormula: FormulaNullableSchema(z),
892
+ endEventNameFormula: FormulaNullableSchema(z),
893
+ endEventProcessKey: KeyNullableSchema(z),
894
+ endEventName: NameNullableSchema(z),
895
+ endEventFilters: z.array(ExtendedFormulaFilterValueSchema(z)).default([]),
896
+ endCaseCaseIdFormula: FormulaNullableSchema(z),
897
+ endEventTimeFormula: FormulaNullableSchema(z),
898
+ });
899
+ };
900
+ var WidgetIndicatorDurationValueSchema = function (z) {
901
+ return WidgetIndicatorConversionValueSchema(z).extend({
902
+ mode: z.literal(EWidgetIndicatorValueModes.DURATION),
903
+ templateName: z.string(),
904
+ startEventAppearances: z.enum(EEventAppearances),
905
+ endEventAppearances: z.enum(EEventAppearances),
906
+ });
907
+ };
908
+ var WidgetMeasureSchema = function (z) {
909
+ return WidgetColumnIndicatorSchema(z).extend({
910
+ value: z
911
+ .discriminatedUnion("mode", [
912
+ MeasureValueSchema(z),
913
+ WidgetMeasureAggregationValueSchema(z),
914
+ WidgetIndicatorConversionValueSchema(z),
915
+ WidgetIndicatorDurationValueSchema(z),
916
+ ])
917
+ .optional(),
918
+ });
919
+ };
920
+ var MarkdownMeasureSchema = function (z) {
921
+ return WidgetMeasureSchema(z).extend({
922
+ displaySign: z.enum(EMarkdownDisplayMode).default(EMarkdownDisplayMode.NONE),
923
+ });
924
+ };
925
+ var WidgetSortingIndicatorSchema = function (z) {
926
+ return WidgetIndicatorSchema(z).extend({
927
+ direction: SortDirectionSchema(z),
928
+ value: WidgetSortingValueSchema(z),
929
+ });
930
+ };
931
+ var ProcessIndicatorValueSchema = function (z) {
932
+ return z.discriminatedUnion("mode", [
933
+ z.object({
934
+ mode: z.literal(EWidgetIndicatorValueModes.FORMULA),
935
+ formula: FormulaSchema(z),
936
+ }),
937
+ z.object({
938
+ mode: z.literal(EWidgetIndicatorValueModes.TEMPLATE),
939
+ /** Имя шаблонной формулы, использующей колонку таблицы */
940
+ templateName: z.string(),
941
+ }),
942
+ ]);
943
+ };
944
+ var ProcessIndicatorSchema = function (z) {
945
+ return WidgetIndicatorSchema(z).extend({
946
+ value: ProcessIndicatorValueSchema(z).optional(),
947
+ dbDataType: z.string().optional(),
948
+ format: FormatSchema(z).optional(),
949
+ formatting: FormattingSchema(z).optional(),
950
+ displayCondition: DisplayConditionSchema(z),
951
+ });
952
+ };
953
+
954
+ var FormulaFilterValueSchema = function (z) {
955
+ var _a;
956
+ return z.object({
957
+ name: z.string().nullish(),
958
+ formula: z.string(),
959
+ sliceIndex: z.number().optional(),
960
+ dbDataType: z.string(),
961
+ format: z.enum(EFormatTypes),
962
+ filteringMethod: z.enum(Object.values(formulaFilterMethods)),
963
+ checkedValues: z.array(z.string().nullable()).optional(),
964
+ formValues: z
965
+ .object((_a = {},
966
+ _a[EFormulaFilterFieldKeys.date] = z.string().nullable(),
967
+ _a[EFormulaFilterFieldKeys.dateRange] = z.tuple([z.string(), z.string()]),
968
+ _a[EFormulaFilterFieldKeys.numberRange] = z.tuple([
969
+ z.number().optional(),
970
+ z.number().optional(),
971
+ ]),
972
+ _a[EFormulaFilterFieldKeys.string] = z.string(),
973
+ // todo: отказаться от использования z.string(), оставить только z.number() [BI-15912]
974
+ _a[EFormulaFilterFieldKeys.lastTimeValue] = z.number().or(z.string()),
975
+ _a[EFormulaFilterFieldKeys.lastTimeUnit] = z.enum(ELastTimeUnit),
976
+ _a[EFormulaFilterFieldKeys.durationUnit] = z.enum(EDurationUnit),
977
+ _a))
978
+ .partial()
979
+ .optional(),
980
+ });
981
+ };
982
+ var ExtendedFormulaFilterValueSchema = function (z) {
983
+ return z.union([FormulaFilterValueSchema(z), z.object({ formula: z.string() })]);
984
+ };
985
+ var DimensionProcessFilterSchema = function (z) {
986
+ return z.object({
987
+ value: z.union([
988
+ WidgetIndicatorAggregationValueSchema(z).extend({
989
+ outerAggregation: z.enum(EOuterAggregation),
990
+ }),
991
+ WidgetIndicatorAggregationValueSchema(z).extend({
992
+ innerTemplateName: z.string().optional(),
993
+ }),
994
+ WidgetIndicatorTimeValueSchema(z),
995
+ z.object({
996
+ mode: z.literal(EWidgetIndicatorValueModes.FORMULA),
997
+ formula: z.string().optional(),
998
+ }),
999
+ ]),
1000
+ dbDataType: z.string(),
1001
+ condition: z.object({
1002
+ filteringMethod: z.enum(Object.values(formulaFilterMethods)),
1003
+ timeUnit: z.enum(EDimensionProcessFilterTimeUnit).optional(),
1004
+ values: z.array(z.string().nullable()),
1005
+ }),
1006
+ });
1007
+ };
1008
+ var SettingsFilterSchema = function (z) {
1009
+ return z.union([ExtendedFormulaFilterValueSchema(z), DimensionProcessFilterSchema(z)]);
1010
+ };
1011
+
1012
+ var ActionOnClickParameterCommonSchema = function (z) {
1013
+ return AutoIdentifiedArrayItemSchema(z).extend({
1014
+ name: z.string(),
1015
+ });
1016
+ };
1017
+ var ParameterFromColumnSchema = function (z) {
1018
+ return z.object({
1019
+ inputMethod: z.literal(EWidgetActionInputMethod.COLUMN),
1020
+ tableName: z.string().nullable().default(null),
1021
+ columnName: z.string().nullable().default(null),
1022
+ dbDataType: z.string().optional(),
1023
+ });
1024
+ };
1025
+ var ParameterFromVariableSchema = function (z) {
1026
+ return z.object({
1027
+ inputMethod: z.literal(EWidgetActionInputMethod.VARIABLE),
1028
+ sourceVariable: z.string().nullable().default(null),
1029
+ });
1030
+ };
1031
+ var ParameterFromFormulaSchema = function (z) {
1032
+ return z.object({
1033
+ inputMethod: z.literal(EWidgetActionInputMethod.FORMULA),
1034
+ formula: FormulaSchema(z),
1035
+ considerFilters: z.boolean().default(false),
1036
+ dbDataType: z.string().optional(),
1037
+ });
1038
+ };
1039
+ var ParameterFromEventSchema = function (z) {
1040
+ return z.object({
1041
+ inputMethod: z.literal(EWidgetActionInputMethod.EVENT),
1042
+ });
1043
+ };
1044
+ var ParameterFromStartEventSchema = function (z) {
1045
+ return z.object({
1046
+ inputMethod: z.literal(EWidgetActionInputMethod.START_EVENT),
1047
+ });
1048
+ };
1049
+ var ParameterFromEndEventSchema = function (z) {
1050
+ return z.object({
1051
+ inputMethod: z.literal(EWidgetActionInputMethod.FINISH_EVENT),
1052
+ });
1053
+ };
1054
+ var ParameterFromAggregationSchema = function (z) {
1055
+ return z.object({
1056
+ inputMethod: z.literal(EWidgetActionInputMethod.AGGREGATION),
1057
+ formula: FormulaSchema(z),
1058
+ considerFilters: z.boolean().default(false),
1059
+ dbDataType: z.string().optional(),
1060
+ });
1061
+ };
1062
+ var ParameterFromManualInputSchema = function (z) {
1063
+ return z.object({
1064
+ inputMethod: z.literal(EWidgetActionInputMethod.MANUALLY),
1065
+ description: z.string().default(""),
1066
+ defaultValue: FormulaSchema(z),
1067
+ dbDataType: z.string().optional(),
1068
+ filterByRows: z.boolean().default(false),
1069
+ validation: FormulaSchema(z),
1070
+ acceptEmptyValue: z.boolean().default(false),
1071
+ });
1072
+ };
1073
+ var ParameterFromStaticListSchema = function (z) {
1074
+ return z.object({
1075
+ inputMethod: z.literal(EWidgetActionInputMethod.STATIC_LIST),
1076
+ options: z.string().default(""),
1077
+ defaultValue: z
1078
+ .union([z.string(), z.array(z.string())])
1079
+ .nullable()
1080
+ .default(null),
1081
+ acceptEmptyValue: z.boolean().default(false),
1082
+ });
1083
+ };
1084
+ var ParameterFromDynamicListSchema = function (z) {
1085
+ return z.object({
1086
+ inputMethod: z.literal(EWidgetActionInputMethod.DYNAMIC_LIST),
1087
+ options: FormulaSchema(z),
1088
+ defaultValue: FormulaSchema(z),
1089
+ dbDataType: z.string().optional(),
1090
+ displayOptions: FormulaSchema(z),
1091
+ filters: z.array(ExtendedFormulaFilterValueSchema(z)).default([]),
1092
+ filterByRows: z.boolean().default(false),
1093
+ considerFilters: z.boolean().default(false),
1094
+ insertAnyValues: z.boolean().default(false),
1095
+ validation: FormulaSchema(z),
1096
+ acceptEmptyValue: z.boolean().default(false),
1097
+ });
1098
+ };
1099
+ var ParameterFromDataModelSchema = function (z) {
1100
+ return z.object({
1101
+ inputMethod: z.literal(EWidgetActionInputMethod.DATA_MODEL),
1102
+ option: z.enum(EDataModelOption).default(EDataModelOption.TABLE_LIST),
1103
+ /**
1104
+ * Используется только при COLUMN_LIST. Не делаем union по option, чтобы сохранить
1105
+ * одновременно default для option и работоспособность внешнего discriminated union.
1106
+ */
1107
+ parent: NameNullableSchema(z),
1108
+ });
1109
+ };
1110
+ var ActionOnClickParameterSchema = function (z) {
1111
+ return z.intersection(ActionOnClickParameterCommonSchema(z), z.discriminatedUnion("inputMethod", [
1112
+ ParameterFromColumnSchema(z),
1113
+ ParameterFromVariableSchema(z),
1114
+ ParameterFromFormulaSchema(z),
1115
+ ParameterFromEventSchema(z),
1116
+ ParameterFromStartEventSchema(z),
1117
+ ParameterFromEndEventSchema(z),
1118
+ ParameterFromAggregationSchema(z),
1119
+ ParameterFromManualInputSchema(z),
1120
+ ParameterFromStaticListSchema(z),
1121
+ ParameterFromDynamicListSchema(z),
1122
+ ParameterFromDataModelSchema(z),
1123
+ ]));
1124
+ };
1125
+ var ActionCommonSchema = function (z) {
1126
+ return AutoIdentifiedArrayItemSchema(z).extend({
1127
+ name: z.string(),
1128
+ });
1129
+ };
1130
+ var ActionDrillDownSchema = function (z) {
1131
+ return ActionCommonSchema(z).extend({ type: z.literal(EActionTypes.DRILL_DOWN) });
1132
+ };
1133
+ var ActionGoToURLSchema = function (z) {
1134
+ return ActionCommonSchema(z).extend({
1135
+ type: z.literal(EActionTypes.OPEN_URL),
1136
+ url: z.string(),
1137
+ newWindow: z.boolean().default(true),
1138
+ });
1139
+ };
1140
+ var ActivateConditionSchema = function (z) {
1141
+ return z
1142
+ .discriminatedUnion("mode", [
1143
+ z.object({
1144
+ mode: z.literal(EActivateConditionMode.FORMULA),
1145
+ formula: FormulaSchema(z),
1146
+ }),
1147
+ z.object({
1148
+ mode: z.literal(EActivateConditionMode.VARIABLE),
1149
+ variableName: z.string().nullable().default(null),
1150
+ variableValue: z.string().nullable().default(null),
1151
+ }),
1152
+ ])
1153
+ .default({ mode: EActivateConditionMode.FORMULA, formula: "" });
1154
+ };
1155
+ var ActionRunScriptSchema = function (z) {
1156
+ return ActionCommonSchema(z).extend({
1157
+ type: z.literal(EActionTypes.EXECUTE_SCRIPT),
1158
+ parameters: z.array(ActionOnClickParameterSchema(z)).default([]),
1159
+ scriptKey: z.string(),
1160
+ autoUpdate: z.enum(EAutoUpdateMode).default(EAutoUpdateMode.THIS_WIDGET),
1161
+ hideInactiveButton: z.boolean().default(false),
1162
+ activateCondition: ActivateConditionSchema(z),
1163
+ hint: z.string().default(""),
1164
+ });
1165
+ };
1166
+ var ActionUpdateVariableSchema = function (z) {
1167
+ return ActionCommonSchema(z).extend({
1168
+ type: z.literal(EActionTypes.UPDATE_VARIABLE),
1169
+ variables: z.array(ActionOnClickParameterSchema(z)).default([]),
1170
+ });
1171
+ };
1172
+ var ActionOpenInSchema = function (z) {
1173
+ return z.discriminatedUnion("openIn", [
1174
+ z.object({
1175
+ openIn: z.literal(EViewOpenIn.DRAWER_WINDOW),
1176
+ alignment: z.enum(EDrawerPlacement).default(EDrawerPlacement.RIGHT),
1177
+ inheritFilter: z.boolean().default(true),
1178
+ }),
1179
+ z.object({
1180
+ openIn: z.literal(EViewOpenIn.PLACEHOLDER),
1181
+ placeholderName: z.string(),
1182
+ }),
1183
+ z.object({
1184
+ openIn: z.literal(EViewOpenIn.MODAL_WINDOW),
1185
+ positionByClick: z.boolean().default(false),
1186
+ inheritFilter: z.boolean().default(true),
1187
+ }),
1188
+ z.object({
1189
+ openIn: z.literal(EViewOpenIn.WINDOW),
1190
+ newWindow: z.boolean().default(true),
1191
+ inheritFilter: z.boolean().default(true),
1192
+ }),
1193
+ ]);
1194
+ };
1195
+ var ActionOpenViewCommonSchema = function (z) {
1196
+ return ActionCommonSchema(z).extend({ type: z.literal(EActionTypes.OPEN_VIEW) });
1197
+ };
1198
+ var ActionOpenViewSchema = function (z) {
1199
+ return z.intersection(z.discriminatedUnion("mode", [
1200
+ ActionOpenViewCommonSchema(z).extend({
1201
+ mode: z.literal(EViewMode.GENERATED_BY_SCRIPT),
1202
+ scriptKey: z.string(),
1203
+ parameters: z.array(ActionOnClickParameterSchema(z)).default([]),
1204
+ displayName: z.string().default(""),
1205
+ }),
1206
+ ActionOpenViewCommonSchema(z).extend({
1207
+ mode: z.literal(EViewMode.EXISTED_VIEW),
1208
+ viewKey: z.string(),
1209
+ parameters: z.array(ActionOnClickParameterSchema(z)).default([]),
1210
+ }),
1211
+ ActionOpenViewCommonSchema(z).extend({
1212
+ mode: z.literal(EViewMode.EMPTY),
1213
+ placeholderName: z.string(),
1214
+ openIn: z.literal(EViewOpenIn.PLACEHOLDER),
1215
+ }),
1216
+ ]), ActionOpenInSchema(z));
1217
+ };
1218
+ var ActionsOnClickSchema = function (z) {
1219
+ return z.union([
1220
+ ActionGoToURLSchema(z),
1221
+ ActionRunScriptSchema(z),
1222
+ ActionUpdateVariableSchema(z),
1223
+ ActionOpenViewSchema(z),
1224
+ ActionDrillDownSchema(z),
1225
+ ]);
1226
+ };
1227
+ var WidgetActionParameterCommonSchema = function (z) {
1228
+ return AutoIdentifiedArrayItemSchema(z).extend({
1229
+ name: z.string(),
1230
+ displayName: z.string().default(""),
1231
+ isHidden: z.boolean().default(false),
1232
+ });
1233
+ };
1234
+ var WidgetActionParameterSchema = function (z) {
1235
+ return z.intersection(WidgetActionParameterCommonSchema(z), z.discriminatedUnion("inputMethod", [
1236
+ ParameterFromColumnSchema(z),
1237
+ ParameterFromVariableSchema(z),
1238
+ ParameterFromFormulaSchema(z),
1239
+ ParameterFromManualInputSchema(z),
1240
+ ParameterFromStaticListSchema(z),
1241
+ ParameterFromDynamicListSchema(z),
1242
+ ParameterFromAggregationSchema(z),
1243
+ ParameterFromDataModelSchema(z),
1244
+ ]));
1245
+ };
1246
+ var WidgetActionSchema = function (z) {
1247
+ return ActionCommonSchema(z).extend({
1248
+ parameters: z.array(WidgetActionParameterSchema(z)).default([]),
1249
+ type: z.literal(EActionTypes.EXECUTE_SCRIPT),
1250
+ scriptKey: z.string(),
1251
+ autoUpdate: z.enum(EAutoUpdateMode).default(EAutoUpdateMode.THIS_WIDGET),
1252
+ description: z.string().default(""),
1253
+ hideInactiveButton: z.boolean().default(false),
1254
+ hint: z.string().default(""),
1255
+ activateCondition: ActivateConditionSchema(z),
1256
+ });
1257
+ };
1258
+ var ViewActionParameterSchema = function (z) {
1259
+ return z.intersection(AutoIdentifiedArrayItemSchema(z).extend({ name: z.string() }), z.discriminatedUnion("inputMethod", [
1260
+ ParameterFromAggregationSchema(z),
1261
+ ParameterFromVariableSchema(z),
1262
+ ]));
1263
+ };
1264
+ var ViewActionSchema = function (z) {
1265
+ return AutoIdentifiedArrayItemSchema(z).extend({
1266
+ name: z.string(),
1267
+ buttonType: z.enum(EActionButtonsTypes).default(EActionButtonsTypes.BASE),
1268
+ type: z.literal(EActionTypes.EXECUTE_SCRIPT).default(EActionTypes.EXECUTE_SCRIPT),
1269
+ parameters: z.array(ViewActionParameterSchema(z)).default([]),
1270
+ scriptKey: KeyNullableSchema(z),
1271
+ autoUpdate: z
1272
+ .union([z.literal(EAutoUpdateMode.NONE), z.literal(EAutoUpdateMode.ALL_VIEWS)])
1273
+ .default(EAutoUpdateMode.NONE),
1274
+ });
1275
+ };
1276
+ var ActionSchema = function (z) {
1277
+ return z.union([ActionsOnClickSchema(z), WidgetActionSchema(z), ViewActionSchema(z)]);
1278
+ };
1279
+ var ActionButtonSchema = function (z) {
1280
+ return AutoIdentifiedArrayItemSchema(z).extend({
1281
+ name: z.string(),
1282
+ onClick: z.array(WidgetActionSchema(z)).default([]),
1283
+ buttonType: z.enum(EActionButtonsTypes).default(EActionButtonsTypes.BASE),
1284
+ backgroundColor: ColorSchema(z),
1285
+ borderColor: ColorSchema(z),
1286
+ color: ColorSchema(z),
1287
+ hint: z.string().default(""),
1288
+ });
1289
+ };
1290
+
1291
+ var prepareValuesForSql = function (simpleType, values) {
1292
+ return simpleType === ESimpleDataType.INTEGER ||
1293
+ simpleType === ESimpleDataType.FLOAT ||
1294
+ simpleType === ESimpleDataType.BOOLEAN
1295
+ ? values
1296
+ : values.map(function (value) {
1297
+ return value === null ? null : "'".concat(escapeSingularQuotes$1(escapeReverseSlash(value)), "'");
1298
+ });
1299
+ };
1300
+ var escapeReverseSlash = function (formula) {
1301
+ return formula.replaceAll(/\\/gm, "\\\\");
1302
+ };
1303
+ var escapeSingularQuotes$1 = function (formula) {
1304
+ return formula.replaceAll("'", "\\'");
1305
+ };
1306
+
1307
+ var ECalculatorFilterMethods;
1308
+ (function (ECalculatorFilterMethods) {
1309
+ ECalculatorFilterMethods["EQUAL_TO"] = "EQUAL_TO";
1310
+ ECalculatorFilterMethods["NOT_EQUAL_TO"] = "NOT_EQUAL_TO";
1311
+ ECalculatorFilterMethods["GREATER_THAN"] = "GREATER_THAN";
1312
+ ECalculatorFilterMethods["LESS_THAN"] = "LESS_THAN";
1313
+ ECalculatorFilterMethods["GREATER_THAN_OR_EQUAL_TO"] = "GREATER_THAN_OR_EQUAL_TO";
1314
+ ECalculatorFilterMethods["LESS_THAN_OR_EQUAL_TO"] = "LESS_THAN_OR_EQUAL_TO";
1315
+ ECalculatorFilterMethods["STARTS_WITH"] = "STARTS_WITH";
1316
+ ECalculatorFilterMethods["ENDS_WITH"] = "ENDS_WITH";
1317
+ ECalculatorFilterMethods["CONTAINS"] = "CONTAINS";
1318
+ ECalculatorFilterMethods["NOT_CONTAINS"] = "NOT_CONTAINS";
1319
+ ECalculatorFilterMethods["IN_RANGE"] = "IN_RANGE";
1320
+ ECalculatorFilterMethods["NOT_IN_RANGE"] = "NOT_IN_RANGE";
1321
+ ECalculatorFilterMethods["INCLUDE"] = "INCLUDE";
1322
+ ECalculatorFilterMethods["EXCLUDE"] = "EXCLUDE";
1323
+ ECalculatorFilterMethods["NONEMPTY"] = "NONEMPTY";
1324
+ ECalculatorFilterMethods["EMPTY"] = "EMPTY";
1325
+ })(ECalculatorFilterMethods || (ECalculatorFilterMethods = {}));
1326
+
1327
+ var formulaFilterMethods = __assign(__assign({}, ECalculatorFilterMethods), { LAST_TIME: "LAST_TIME" });
1328
+ var EProcessFilterNames;
1329
+ (function (EProcessFilterNames) {
1330
+ /** Наличие события */
1331
+ EProcessFilterNames["presenceOfEvent"] = "presenceOfEvent";
1332
+ /** Количество повторов события */
1333
+ EProcessFilterNames["repetitionOfEvent"] = "repetitionOfEvent";
1334
+ /** Наличие перехода */
1335
+ EProcessFilterNames["presenceOfTransition"] = "presenceOfTransition";
1336
+ /** Длительность перехода */
1337
+ EProcessFilterNames["durationOfTransition"] = "durationOfTransition";
1338
+ })(EProcessFilterNames || (EProcessFilterNames = {}));
1339
+ var EFormulaFilterFieldKeys;
1340
+ (function (EFormulaFilterFieldKeys) {
1341
+ EFormulaFilterFieldKeys["date"] = "date";
1342
+ EFormulaFilterFieldKeys["dateRange"] = "dateRange";
1343
+ EFormulaFilterFieldKeys["numberRange"] = "numberRange";
1344
+ EFormulaFilterFieldKeys["string"] = "string";
1345
+ EFormulaFilterFieldKeys["lastTimeValue"] = "lastTimeValue";
1346
+ EFormulaFilterFieldKeys["lastTimeUnit"] = "lastTimeUnit";
1347
+ EFormulaFilterFieldKeys["durationUnit"] = "durationUnit";
1348
+ })(EFormulaFilterFieldKeys || (EFormulaFilterFieldKeys = {}));
1349
+ var EDimensionProcessFilterTimeUnit;
1350
+ (function (EDimensionProcessFilterTimeUnit) {
1351
+ EDimensionProcessFilterTimeUnit["YEARS"] = "YEARS";
1352
+ EDimensionProcessFilterTimeUnit["MONTHS"] = "MONTHS";
1353
+ EDimensionProcessFilterTimeUnit["HOURS"] = "HOURS";
1354
+ EDimensionProcessFilterTimeUnit["DAYS"] = "DAYS";
1355
+ EDimensionProcessFilterTimeUnit["MINUTES"] = "MINUTES";
1356
+ })(EDimensionProcessFilterTimeUnit || (EDimensionProcessFilterTimeUnit = {}));
1357
+ var isFormulaFilterValue = function (value) {
1358
+ return "filteringMethod" in value;
1359
+ };
1360
+ var isDimensionProcessFilter = function (filter) { return "value" in filter && "condition" in filter; };
1361
+
1362
+ var compact = function (items) { return ((items === null || items === void 0 ? void 0 : items.filter(Boolean)) || []); };
1363
+ var compactMap = function (items, f) {
1364
+ return compact(items === null || items === void 0 ? void 0 : items.map(f));
1365
+ };
1366
+ var isNil = function (value) {
1367
+ return value === null || value === undefined;
1368
+ };
1369
+ function memoize(fn) {
1370
+ var cache = new Map();
1371
+ return function (arg) {
1372
+ if (cache.has(arg)) {
1373
+ return cache.get(arg);
1374
+ }
1375
+ var result = fn(arg);
1376
+ cache.set(arg, result);
1377
+ return result;
1378
+ };
1379
+ }
1380
+
1381
+ var EClickHouseBaseTypes;
1382
+ (function (EClickHouseBaseTypes) {
1383
+ // DATE
1384
+ EClickHouseBaseTypes["Date"] = "Date";
1385
+ EClickHouseBaseTypes["Date32"] = "Date32";
1386
+ // DATETIME
1387
+ EClickHouseBaseTypes["DateTime"] = "DateTime";
1388
+ EClickHouseBaseTypes["DateTime32"] = "DateTime32";
1389
+ // DATETIME64
1390
+ EClickHouseBaseTypes["DateTime64"] = "DateTime64";
1391
+ // STRING
1392
+ EClickHouseBaseTypes["FixedString"] = "FixedString";
1393
+ EClickHouseBaseTypes["String"] = "String";
1394
+ // FLOAT
1395
+ EClickHouseBaseTypes["Decimal"] = "Decimal";
1396
+ EClickHouseBaseTypes["Decimal32"] = "Decimal32";
1397
+ EClickHouseBaseTypes["Decimal64"] = "Decimal64";
1398
+ EClickHouseBaseTypes["Decimal128"] = "Decimal128";
1399
+ EClickHouseBaseTypes["Decimal256"] = "Decimal256";
1400
+ EClickHouseBaseTypes["Float32"] = "Float32";
1401
+ EClickHouseBaseTypes["Float64"] = "Float64";
1402
+ // INTEGER
1403
+ EClickHouseBaseTypes["Int8"] = "Int8";
1404
+ EClickHouseBaseTypes["Int16"] = "Int16";
1405
+ EClickHouseBaseTypes["Int32"] = "Int32";
1406
+ EClickHouseBaseTypes["Int64"] = "Int64";
1407
+ EClickHouseBaseTypes["Int128"] = "Int128";
1408
+ EClickHouseBaseTypes["Int256"] = "Int256";
1409
+ EClickHouseBaseTypes["UInt8"] = "UInt8";
1410
+ EClickHouseBaseTypes["UInt16"] = "UInt16";
1411
+ EClickHouseBaseTypes["UInt32"] = "UInt32";
1412
+ EClickHouseBaseTypes["UInt64"] = "UInt64";
1413
+ EClickHouseBaseTypes["UInt128"] = "UInt128";
1414
+ EClickHouseBaseTypes["UInt256"] = "UInt256";
1415
+ // BOOLEAN
1416
+ EClickHouseBaseTypes["Bool"] = "Bool";
1417
+ })(EClickHouseBaseTypes || (EClickHouseBaseTypes = {}));
1418
+ var stringTypes = ["String", "FixedString"];
1419
+ var parseClickHouseType = memoize(function (type) {
1420
+ if (isNil(type)) {
1421
+ return {
1422
+ simpleBaseType: ESimpleDataType.OTHER,
1423
+ dbBaseDataType: undefined,
1424
+ containers: [],
1425
+ simpleType: ESimpleDataType.OTHER,
1426
+ };
1427
+ }
1428
+ var _a = extractInnerType(type), containers = _a.containers, dbBaseDataType = _a.dbBaseDataType;
1429
+ if (!dbBaseDataType) {
1430
+ throw new Error("Invalid ClickHouse type: ".concat(type));
1431
+ }
1432
+ return {
1433
+ dbBaseDataType: dbBaseDataType,
1434
+ simpleBaseType: simplifyBaseType(dbBaseDataType),
1435
+ containers: containers,
1436
+ get simpleType() {
1437
+ return containers.includes("Array") ? ESimpleDataType.OTHER : this.simpleBaseType;
1438
+ },
1439
+ };
1440
+ });
1441
+ /** 'A(B(C))' -> ['A', 'B', 'C'] */
1442
+ var splitByBrackets = function (input) { return input.split(/[\(\)]/).filter(Boolean); };
1443
+ /**
1444
+ * Отделить внутренний тип от оберток.
1445
+ * Не поддерживаются обертки Tuple и LowCardinality.
1446
+ */
1447
+ var extractInnerType = function (type) {
1448
+ var tokens = splitByBrackets(type);
1449
+ // Удаление параметров типа.
1450
+ if (tokens.length > 0 && isTypeParameters(tokens.at(-1))) {
1451
+ tokens.pop();
1452
+ }
1453
+ var dbBaseDataType = tokens.pop();
1454
+ return { containers: tokens, dbBaseDataType: dbBaseDataType };
1455
+ };
1456
+ var simplifyBaseType = function (dbBaseType) {
1457
+ var isSourceTypeStartsWith = function (prefix) { return dbBaseType.startsWith(prefix); };
1458
+ if (isSourceTypeStartsWith("Int") || isSourceTypeStartsWith("UInt")) {
1459
+ return ESimpleDataType.INTEGER;
1460
+ }
1461
+ if (isSourceTypeStartsWith("Decimal") || isSourceTypeStartsWith("Float")) {
1462
+ return ESimpleDataType.FLOAT;
1463
+ }
1464
+ if (stringTypes.some(isSourceTypeStartsWith)) {
1465
+ return ESimpleDataType.STRING;
1466
+ }
1467
+ if (isSourceTypeStartsWith("DateTime64")) {
1468
+ return ESimpleDataType.DATETIME64;
1469
+ }
1470
+ if (isSourceTypeStartsWith("DateTime")) {
1471
+ return ESimpleDataType.DATETIME;
1472
+ }
1473
+ if (isSourceTypeStartsWith("Date")) {
1474
+ return ESimpleDataType.DATE;
1475
+ }
1476
+ if (isSourceTypeStartsWith("Bool")) {
1477
+ return ESimpleDataType.BOOLEAN;
1478
+ }
1479
+ return ESimpleDataType.OTHER;
1480
+ };
1481
+ /**
1482
+ * - `3` -> true
1483
+ * - `3, 'Europe/Moscow'` -> true
1484
+ * - `3, Europe/Moscow` -> false
1485
+ *
1486
+ * Пример типа с параметрами: `DateTime64(3, 'Europe/Moscow')`
1487
+ */
1488
+ var isTypeParameters = function (stringifiedParameters) {
1489
+ return stringifiedParameters.split(", ").some(function (p) { return !Number.isNaN(Number(p)) || p.startsWith("'"); });
1490
+ };
1491
+
651
1492
  var _a$5;
652
1493
  var EDimensionTemplateNames;
653
1494
  (function (EDimensionTemplateNames) {
@@ -678,113 +1519,6 @@ var dimensionTemplateFormulas = (_a$5 = {},
678
1519
  _a$5[EDimensionTemplateNames.hour] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toHour({columnFormula}))",
679
1520
  _a$5);
680
1521
 
681
- var EWidgetIndicatorType;
682
- (function (EWidgetIndicatorType) {
683
- EWidgetIndicatorType["MEASURE"] = "MEASURE";
684
- EWidgetIndicatorType["EVENT_INDICATOR"] = "EVENT_INDICATOR";
685
- EWidgetIndicatorType["TRANSITION_INDICATOR"] = "TRANSITION_INDICATOR";
686
- EWidgetIndicatorType["DIMENSION"] = "DIMENSION";
687
- EWidgetIndicatorType["SORTING"] = "SORTING";
688
- })(EWidgetIndicatorType || (EWidgetIndicatorType = {}));
689
- var EOuterAggregation;
690
- (function (EOuterAggregation) {
691
- EOuterAggregation["avg"] = "avg";
692
- EOuterAggregation["median"] = "median";
693
- EOuterAggregation["count"] = "count";
694
- EOuterAggregation["countDistinct"] = "countDistinct";
695
- EOuterAggregation["min"] = "min";
696
- EOuterAggregation["max"] = "max";
697
- EOuterAggregation["sum"] = "sum";
698
- EOuterAggregation["top"] = "top";
699
- })(EOuterAggregation || (EOuterAggregation = {}));
700
- /** Режимы значения показателя (на основе чего генерируется формула) */
701
- var EWidgetIndicatorValueModes;
702
- (function (EWidgetIndicatorValueModes) {
703
- /** Готовая формула (как правило, введенная пользователем через редактор формул) */
704
- EWidgetIndicatorValueModes["FORMULA"] = "FORMULA";
705
- /** Шаблон формулы, предоставляемый системой */
706
- EWidgetIndicatorValueModes["TEMPLATE"] = "TEMPLATE";
707
- EWidgetIndicatorValueModes["AGGREGATION"] = "AGGREGATION";
708
- EWidgetIndicatorValueModes["DURATION"] = "DURATION";
709
- EWidgetIndicatorValueModes["CONVERSION"] = "CONVERSION";
710
- EWidgetIndicatorValueModes["START_TIME"] = "START_TIME";
711
- EWidgetIndicatorValueModes["END_TIME"] = "END_TIME";
712
- })(EWidgetIndicatorValueModes || (EWidgetIndicatorValueModes = {}));
713
- /** Режимы сортировки (на что ссылается сортировка) */
714
- var ESortingValueModes;
715
- (function (ESortingValueModes) {
716
- /** Сортировка по формуле */
717
- ESortingValueModes["FORMULA"] = "FORMULA";
718
- /** Сортировка по показателю(разрезу или мере) виджета */
719
- ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
720
- })(ESortingValueModes || (ESortingValueModes = {}));
721
- var EFormatOrFormattingMode;
722
- (function (EFormatOrFormattingMode) {
723
- EFormatOrFormattingMode["BASE"] = "BASE";
724
- EFormatOrFormattingMode["TEMPLATE"] = "TEMPLATE";
725
- })(EFormatOrFormattingMode || (EFormatOrFormattingMode = {}));
726
- /** Тип показателя */
727
- var EIndicatorType;
728
- (function (EIndicatorType) {
729
- /** Показатели процесса */
730
- EIndicatorType["PROCESS_MEASURE"] = "PROCESS_MEASURE";
731
- /** Вводимое значение */
732
- EIndicatorType["STATIC"] = "STATIC";
733
- /** Статический список */
734
- EIndicatorType["STATIC_LIST"] = "STATIC_LIST";
735
- /** Динамический список */
736
- EIndicatorType["DYNAMIC_LIST"] = "DYNAMIC_LIST";
737
- /** Список колонок */
738
- EIndicatorType["COLUMN_LIST"] = "COLUMN_LIST";
739
- /** Разрез */
740
- EIndicatorType["DIMENSION"] = "DIMENSION";
741
- /** Мера */
742
- EIndicatorType["MEASURE"] = "MEASURE";
743
- /** Иерархия */
744
- EIndicatorType["DYNAMIC_DIMENSION"] = "DYNAMIC_DIMENSION";
745
- /** Пользовательская сортировка */
746
- EIndicatorType["USER_SORTING"] = "USER_SORTING";
747
- })(EIndicatorType || (EIndicatorType = {}));
748
- /** Обобщенные типы значений переменных */
749
- var ESimpleInputType;
750
- (function (ESimpleInputType) {
751
- /** Число (точность Float64) */
752
- ESimpleInputType["NUMBER"] = "FLOAT";
753
- /** Целое число (точность Int64) */
754
- ESimpleInputType["INTEGER_NUMBER"] = "INTEGER";
755
- /** Текст */
756
- ESimpleInputType["TEXT"] = "STRING";
757
- /** Дата (точность Date) */
758
- ESimpleInputType["DATE"] = "DATE";
759
- /** Дата и время (точность DateTime64) */
760
- ESimpleInputType["DATE_AND_TIME"] = "DATETIME";
761
- /** Логический тип */
762
- ESimpleInputType["BOOLEAN"] = "BOOLEAN";
763
- })(ESimpleInputType || (ESimpleInputType = {}));
764
- function isDimensionsHierarchy(indicator) {
765
- return "hierarchyDimensions" in indicator;
766
- }
767
- var OuterAggregation;
768
- (function (OuterAggregation) {
769
- OuterAggregation["avg"] = "avgIf";
770
- OuterAggregation["median"] = "medianIf";
771
- OuterAggregation["count"] = "countIf";
772
- OuterAggregation["countDistinct"] = "countIfDistinct";
773
- OuterAggregation["min"] = "minIf";
774
- OuterAggregation["max"] = "maxIf";
775
- OuterAggregation["sum"] = "sumIf";
776
- })(OuterAggregation || (OuterAggregation = {}));
777
- var EDurationTemplateName;
778
- (function (EDurationTemplateName) {
779
- EDurationTemplateName["avg"] = "avg";
780
- EDurationTemplateName["median"] = "median";
781
- })(EDurationTemplateName || (EDurationTemplateName = {}));
782
- var EEventAppearances;
783
- (function (EEventAppearances) {
784
- EEventAppearances["FIRST"] = "FIRST";
785
- EEventAppearances["LAST"] = "LAST";
786
- })(EEventAppearances || (EEventAppearances = {}));
787
-
788
1522
  function createAggregationTemplate$1(functionName, options) {
789
1523
  return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} ={eventName}{filters}), {caseCaseIdFormula})");
790
1524
  }
@@ -819,13 +1553,6 @@ function sanitizeSingleLineComment(formula, wrapInBrackets) {
819
1553
  return wrapInBrackets ? "(".concat(formula, "\n)") : "".concat(formula, "\n");
820
1554
  }
821
1555
 
822
- /** @deprecated - следует использовать fillTemplateSql */
823
- function fillTemplateString(templateString, params) {
824
- return templateString.replace(/\{(.*?)\}/g, function (_, key) {
825
- var _a;
826
- return (_a = params[key]) !== null && _a !== void 0 ? _a : "";
827
- });
828
- }
829
1556
  /** Функция для безопасного заполнения SQL шаблонов с защитой от однострочных SQL комментариев в подставляемых значениях. */
830
1557
  function fillTemplateSql(templateString, params) {
831
1558
  var e_1, _a;
@@ -850,7 +1577,10 @@ function fillTemplateSql(templateString, params) {
850
1577
  }
851
1578
  finally { if (e_1) throw e_1.error; }
852
1579
  }
853
- return fillTemplateString(templateString, newParams);
1580
+ return templateString.replace(/\{(.*?)\}/g, function (_, key) {
1581
+ var _a;
1582
+ return (_a = newParams[key]) !== null && _a !== void 0 ? _a : "";
1583
+ });
854
1584
  }
855
1585
 
856
1586
  /** Создать функцию экранирования переданных `specialChars` внутри `str` */
@@ -1467,30 +2197,6 @@ function getTransitionMeasureFormula(_a, process) {
1467
2197
  return "";
1468
2198
  }
1469
2199
 
1470
- // Типы, используемые в значениях элементов управления.
1471
- var EWidgetFilterMode;
1472
- (function (EWidgetFilterMode) {
1473
- EWidgetFilterMode["DEFAULT"] = "DEFAULT";
1474
- EWidgetFilterMode["SINGLE"] = "SINGLE";
1475
- EWidgetFilterMode["DISABLED"] = "DISABLED";
1476
- })(EWidgetFilterMode || (EWidgetFilterMode = {}));
1477
- var EMarkdownDisplayMode;
1478
- (function (EMarkdownDisplayMode) {
1479
- EMarkdownDisplayMode["NONE"] = "NONE";
1480
- EMarkdownDisplayMode["INDICATOR"] = "INDICATOR";
1481
- })(EMarkdownDisplayMode || (EMarkdownDisplayMode = {}));
1482
- var EDisplayConditionMode;
1483
- (function (EDisplayConditionMode) {
1484
- EDisplayConditionMode["DISABLED"] = "DISABLED";
1485
- EDisplayConditionMode["FORMULA"] = "FORMULA";
1486
- EDisplayConditionMode["VARIABLE"] = "VARIABLE";
1487
- })(EDisplayConditionMode || (EDisplayConditionMode = {}));
1488
- var EFontWeight;
1489
- (function (EFontWeight) {
1490
- EFontWeight["NORMAL"] = "NORMAL";
1491
- EFontWeight["BOLD"] = "BOLD";
1492
- })(EFontWeight || (EFontWeight = {}));
1493
-
1494
2200
  function checkDisplayCondition(displayCondition, variables) {
1495
2201
  var _a;
1496
2202
  if ((displayCondition === null || displayCondition === void 0 ? void 0 : displayCondition.mode) === EDisplayConditionMode.VARIABLE) {
@@ -1624,7 +2330,7 @@ var getFormulaFilterValues = function (filterValue) {
1624
2330
  if (filteringMethod === formulaFilterMethods.LAST_TIME) {
1625
2331
  var showTime = format === EFormatTypes.DATETIME;
1626
2332
  return compact([
1627
- convertDateToClickHouse(subtractDurationFromDate(new Date(), lastTimeValue !== null && lastTimeValue !== void 0 ? lastTimeValue : 0, lastTimeUnit), showTime),
2333
+ convertDateToClickHouse(subtractDurationFromDate(new Date(), Number(lastTimeValue !== null && lastTimeValue !== void 0 ? lastTimeValue : 0), lastTimeUnit), showTime),
1628
2334
  convertDateToClickHouse(new Date(), showTime),
1629
2335
  ]);
1630
2336
  }
@@ -1836,8 +2542,8 @@ var ESortDirection;
1836
2542
  * Если к разрезу иерархии применяется INCLUDE-фильтр с одним значением - выбираем следующий за ним разрез
1837
2543
  * Если к разрезу иерархии применяется INCLUDE-фильтр с несколькими значениями - выбираем данный разрез
1838
2544
  */
1839
- function selectDimensionFromHierarchy(_a, filters) {
1840
- var hierarchyDimensions = _a.hierarchyDimensions;
2545
+ function selectDimensionFromHierarchy(hierarchy, filters) {
2546
+ var hierarchyDimensions = hierarchy.hierarchyDimensions; hierarchy.displayCondition;
1841
2547
  var _loop_1 = function (i) {
1842
2548
  var dimension = hierarchyDimensions[i];
1843
2549
  // todo: widgets - возможно, стоит использовать Map фильтров для быстрого поиска
@@ -1850,14 +2556,18 @@ function selectDimensionFromHierarchy(_a, filters) {
1850
2556
  return "continue";
1851
2557
  }
1852
2558
  var selectionIndex = matchedFilter.values.length > 1 ? i : Math.min(i + 1, hierarchyDimensions.length - 1);
1853
- return { value: hierarchyDimensions[selectionIndex] };
2559
+ var dimensionFromHierarchy_1 = hierarchyDimensions[selectionIndex];
2560
+ return { value: (dimensionFromHierarchy_1 &&
2561
+ inheritDisplayConditionFromHierarchy(dimensionFromHierarchy_1, hierarchy)) };
1854
2562
  };
1855
2563
  for (var i = hierarchyDimensions.length - 1; i >= 0; i--) {
1856
2564
  var state_1 = _loop_1(i);
1857
2565
  if (typeof state_1 === "object")
1858
2566
  return state_1.value;
1859
2567
  }
1860
- return hierarchyDimensions[0];
2568
+ var dimensionFromHierarchy = hierarchyDimensions[0];
2569
+ return (dimensionFromHierarchy &&
2570
+ inheritDisplayConditionFromHierarchy(dimensionFromHierarchy, hierarchy));
1861
2571
  }
1862
2572
 
1863
2573
  var getDefaultSortOrders = function (_a) {
@@ -1873,7 +2583,8 @@ var getDefaultSortOrders = function (_a) {
1873
2583
  /** Если есть временной разрез, то авто-сортировка по первому такому разрезу (по возрастанию) */
1874
2584
  var timeDimension = dimensions.find(function (dimension) {
1875
2585
  var _a;
1876
- return ((_a = dimension.format) === null || _a === void 0 ? void 0 : _a.value) &&
2586
+ return ((_a = dimension.format) === null || _a === void 0 ? void 0 : _a.mode) === EFormatOrFormattingMode.BASE &&
2587
+ dimension.format.value !== undefined &&
1877
2588
  [
1878
2589
  EFormatTypes.DATE,
1879
2590
  EFormatTypes.MONTH,
@@ -1932,9 +2643,9 @@ function mapSortingToInputs(_a) {
1932
2643
  return;
1933
2644
  }
1934
2645
  if (getIndicatorType(value.group, indicator) === EWidgetIndicatorType.DIMENSION) {
1935
- var activeDimensions = isDimensionsHierarchy(indicator)
2646
+ var activeDimensions = (isDimensionsHierarchy(indicator)
1936
2647
  ? selectDimensionFromHierarchy(indicator, filters)
1937
- : indicator;
2648
+ : indicator);
1938
2649
  var formula = activeDimensions && getDimensionFormula(activeDimensions);
1939
2650
  if (!formula || !checkDisplayCondition(indicator.displayCondition, variables)) {
1940
2651
  return;
@@ -1948,10 +2659,11 @@ function mapSortingToInputs(_a) {
1948
2659
  : undefined,
1949
2660
  };
1950
2661
  }
2662
+ var measure = indicator;
1951
2663
  return {
1952
- formula: getMeasureFormula(indicator),
2664
+ formula: getMeasureFormula(measure),
1953
2665
  direction: direction,
1954
- dbDataType: indicator.dbDataType,
2666
+ dbDataType: measure.dbDataType,
1955
2667
  };
1956
2668
  });
1957
2669
  return sortOrder;
@@ -1965,8 +2677,7 @@ function prepareSortOrders(_a) {
1965
2677
  var replaceHierarchiesWithDimensions = function (dimensions, filters) {
1966
2678
  return compactMap(dimensions, function (indicator) {
1967
2679
  if (isDimensionsHierarchy(indicator)) {
1968
- var selectedDimension = selectDimensionFromHierarchy(indicator, filters);
1969
- return (selectedDimension && replaceDisplayCondition(selectedDimension, indicator.displayCondition));
2680
+ return selectDimensionFromHierarchy(indicator, filters);
1970
2681
  }
1971
2682
  return indicator;
1972
2683
  });
@@ -2037,6 +2748,12 @@ var EUnitMode;
2037
2748
  EUnitMode["PIXEL"] = "PIXEL";
2038
2749
  EUnitMode["PERCENT"] = "PERCENT";
2039
2750
  })(EUnitMode || (EUnitMode = {}));
2751
+ var defaultActionsConfig = {
2752
+ OPEN_URL: { availability: true },
2753
+ UPDATE_VARIABLE: { availability: true },
2754
+ EXECUTE_SCRIPT: { availability: true },
2755
+ OPEN_VIEW: { availability: true },
2756
+ };
2040
2757
 
2041
2758
  var ESelectOptionTypes;
2042
2759
  (function (ESelectOptionTypes) {
@@ -2225,4 +2942,118 @@ var getColorByIndex = function (index) {
2225
2942
  return color;
2226
2943
  };
2227
2944
 
2228
- 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, EMeasureInnerTemplateNames, EMeasureTemplateNames, EOuterAggregation, EProcessFilterNames, ESelectOptionTypes, ESimpleDataType, ESimpleInputType, ESortDirection, ESortingValueModes, ESystemRecordKey, ETransitionMeasureTemplateNames, EUnitMode, EViewMode, EViewOpenIn, EWidgetActionInputMethod, EWidgetFilterMode, EWidgetIndicatorType, EWidgetIndicatorValueModes, OuterAggregation, 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, measureInnerTemplateFormulas, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareConversionParams, prepareDimensionAggregationParams, prepareDurationParams, prepareFormulaForSql, prepareMeasureAggregationParams, prepareSortOrders, prepareTimeParams, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, timeTemplates, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateSingleModeSelection, workspaceLinkRegExp };
2945
+ var WidgetPresetSettingsSchema = function (z) {
2946
+ return BaseWidgetSettingsSchema(z)
2947
+ .pick({
2948
+ filterMode: true,
2949
+ ignoreFilters: true,
2950
+ stateName: true,
2951
+ titleColor: true,
2952
+ titleSize: true,
2953
+ titleWeight: true,
2954
+ paddings: true,
2955
+ })
2956
+ .extend({
2957
+ textSize: z.number().default(12),
2958
+ });
2959
+ };
2960
+
2961
+ /**
2962
+ * Привязывает мета-информацию о теме к Zod-схеме
2963
+ *
2964
+ * @template Value - Тип значения схемы
2965
+ * @template Theme - Тип темы (по умолчанию ITheme)
2966
+ *
2967
+ * @param scheme - Zod схема для привязки
2968
+ * @param selectThemeValue - Функция, возвращающая значение из темы
2969
+ *
2970
+ * @returns Zod схему с мета-информацией о теме
2971
+ *
2972
+ * @example
2973
+ * // Базовое использование
2974
+ * textSize: themed(
2975
+ * z.number().default(12),
2976
+ * (theme) => theme.textSize
2977
+ * )
2978
+ */
2979
+ var themed = function (scheme, selectThemeValue) {
2980
+ var _a;
2981
+ return scheme.meta((_a = {}, _a[ESettingsSchemaMetaKey.themeValue] = selectThemeValue, _a));
2982
+ };
2983
+
2984
+ var ColorBaseSchema = function (z) {
2985
+ return z.object({
2986
+ mode: z.literal(EColorMode.BASE),
2987
+ value: z.string(),
2988
+ });
2989
+ };
2990
+ var ColorRuleSchema = function (z) {
2991
+ return z.object({
2992
+ mode: z.literal(EColorMode.RULE),
2993
+ formula: FormulaSchema(z),
2994
+ });
2995
+ };
2996
+ var ColorAutoSchema = function (z) {
2997
+ return z.object({
2998
+ mode: z.literal(EColorMode.AUTO),
2999
+ });
3000
+ };
3001
+ var ColorDisabledSchema = function (z) {
3002
+ return z.object({
3003
+ mode: z.literal(EColorMode.DISABLED),
3004
+ });
3005
+ };
3006
+ var ColorGradientSchema = function (z) {
3007
+ return z.object({
3008
+ mode: z.literal(EColorMode.GRADIENT),
3009
+ startValue: z.string(),
3010
+ endValue: z.string(),
3011
+ classCount: z.number().min(3).max(10).nullish(),
3012
+ });
3013
+ };
3014
+ var ColorFormulaSchema = function (z) {
3015
+ return z.object({
3016
+ mode: z.literal(EColorMode.FORMULA),
3017
+ formula: FormulaSchema(z),
3018
+ });
3019
+ };
3020
+ var ColorValuesSchema = function (z) {
3021
+ return z.object({
3022
+ mode: z.literal(EColorMode.VALUES),
3023
+ items: z
3024
+ .array(z.object({ value: z.string(), color: z.union([ColorBaseSchema(z), ColorRuleSchema(z)]) }))
3025
+ .default([]),
3026
+ });
3027
+ };
3028
+ var ColorByDimensionSchema = function (z) {
3029
+ return z.object({
3030
+ mode: z.literal(EColorMode.BY_DIMENSION),
3031
+ /** Имя разреза из области видимости правила отображения */
3032
+ dimensionName: z.string(),
3033
+ items: z
3034
+ .array(z.object({ value: z.string(), color: z.union([ColorBaseSchema(z), ColorRuleSchema(z)]) }))
3035
+ .default([]),
3036
+ });
3037
+ };
3038
+ var ColoredValueSchema = function (z) {
3039
+ return z.object({
3040
+ value: z.string(),
3041
+ color: z.union([ColorBaseSchema(z), ColorRuleSchema(z)]),
3042
+ });
3043
+ };
3044
+ var ColorSchema = function (z) {
3045
+ return z
3046
+ .discriminatedUnion("mode", [
3047
+ ColorAutoSchema(z),
3048
+ ColorDisabledSchema(z),
3049
+ ColorBaseSchema(z),
3050
+ ColorRuleSchema(z),
3051
+ ColorGradientSchema(z),
3052
+ ColorFormulaSchema(z),
3053
+ ColorValuesSchema(z),
3054
+ ColorByDimensionSchema(z),
3055
+ ])
3056
+ .default({ mode: EColorMode.AUTO });
3057
+ };
3058
+
3059
+ export { ActionButtonSchema, ActionDrillDownSchema, ActionGoToURLSchema, ActionOnClickParameterSchema, ActionOpenInSchema, ActionOpenViewSchema, ActionRunScriptSchema, ActionSchema, ActionUpdateVariableSchema, ActionsOnClickSchema, AutoIdentifiedArrayItemSchema, BaseWidgetSettingsSchema, ColorAutoSchema, ColorBaseSchema, ColorByDimensionSchema, ColorDisabledSchema, ColorFormulaSchema, ColorGradientSchema, ColorRuleSchema, ColorSchema, ColorValuesSchema, ColoredValueSchema, ColumnIndicatorValueSchema, DimensionProcessFilterSchema, DimensionValueSchema, DisplayConditionSchema, EActionButtonsTypes, EActionTypes, EActivateConditionMode, EAutoUpdateMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, EDataModelOption, EDimensionAggregationTemplateName, EDimensionProcessFilterTimeUnit, EDimensionTemplateNames, EDisplayConditionMode, EDrawerPlacement, EDurationTemplateName, EDurationUnit, EEventAppearances, EEventMeasureTemplateNames, EFontWeight, EFormatOrFormattingMode, EFormatTypes, EFormattingPresets, EFormulaFilterFieldKeys, EHeightMode, EIndicatorType, ELastTimeUnit, EMarkdownDisplayMode, EMeasureAggregationTemplateName, EMeasureInnerTemplateNames, EMeasureTemplateNames, EOuterAggregation, EProcessFilterNames, ESelectOptionTypes, ESettingsSchemaMetaKey, ESimpleDataType, ESimpleInputType, ESortDirection, ESortingValueModes, ESystemRecordKey, ETransitionMeasureTemplateNames, EUnitMode, EViewMode, EViewOpenIn, EWidgetActionInputMethod, EWidgetFilterMode, EWidgetIndicatorType, EWidgetIndicatorValueModes, ExtendedFormulaFilterValueSchema, FormatSchema, FormattingSchema, FormulaFilterValueSchema, FormulaNullableSchema, FormulaSchema, KeyNullableSchema, MarkdownMeasureSchema, MeasureValueSchema, NameNullableSchema, OuterAggregation, ParameterFromAggregationSchema, ParameterFromColumnSchema, ParameterFromDataModelSchema, ParameterFromDynamicListSchema, ParameterFromEndEventSchema, ParameterFromEventSchema, ParameterFromFormulaSchema, ParameterFromManualInputSchema, ParameterFromStartEventSchema, ParameterFromStaticListSchema, ParameterFromVariableSchema, ProcessIndicatorSchema, ProcessIndicatorValueSchema, RangeSchema, SettingsFilterSchema, SortDirectionSchema, SortOrderSchema, ViewActionParameterSchema, ViewActionSchema, WidgetActionParameterSchema, WidgetActionSchema, WidgetColumnIndicatorSchema, WidgetDimensionHierarchySchema, WidgetDimensionInHierarchySchema, WidgetDimensionSchema, WidgetIndicatorAggregationValueSchema, WidgetIndicatorConversionValueSchema, WidgetIndicatorDurationValueSchema, WidgetIndicatorFormulaValueSchema, WidgetIndicatorSchema, WidgetIndicatorTemplateValueSchema, WidgetIndicatorTimeValueSchema, WidgetMeasureAggregationValueSchema, WidgetMeasureSchema, WidgetPresetSettingsSchema, WidgetSortingIndicatorSchema, WidgetSortingValueSchema, apiVersion, apiVersions, applyIndexToArrayFormula, bindContentWithIndicator, bindContentsWithIndicators, checkDisplayCondition, clearMultiLineComments, clearSingleLineComments, colors, conversionTemplate, convertFiltersToFormula, convertToFormulasChain, countExecutionsTemplate, createEscaper, createAggregationTemplate as createMeasureAggregationTemplate, curlyBracketsContentPattern, dashboardLinkRegExp, defaultActionsConfig, dimensionAggregationTemplates, dimensionTemplateFormulas, displayConditionTemplate, doubleQuoteContentPattern, durationTemplates, escapeCurlyBracketLinkName, escapeDoubleQuoteLinkName, eventMeasureTemplateFormulas, fillTemplateSql, formattingConfig, formulaFilterMethods, generateColumnFormula, getColorByIndex, getDefaultSortOrders, getDimensionFormula, getDisplayConditionFormula, getEventMeasureFormula, getLocalizedText, getMeasureFormula, getProcessDimensionValueFormula, getRuleColor, getTransitionMeasureFormula, inheritDisplayConditionFromHierarchy, isDimensionProcessFilter, isDimensionsHierarchy, isFormulaFilterValue, isValidColor, mapDimensionsToInputs, mapEventMeasuresToInputs, mapFormulaFilterToCalculatorInput, mapFormulaFiltersToInputs, mapMeasuresToInputs, mapSettingsFiltersToInputs, mapSortingToInputs, mapTransitionMeasuresToInputs, measureInnerTemplateFormulas, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareConversionParams, prepareDimensionAggregationParams, prepareDurationParams, prepareFormulaForSql, prepareMeasureAggregationParams, prepareSortOrders, prepareTimeParams, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, themed, timeTemplates, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateSingleModeSelection, workspaceLinkRegExp };