@infomaximum/widget-sdk 6.0.0-wefi344-2 → 6.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
@@ -132,6 +132,35 @@ function __rest(s, e) {
132
132
  return t;
133
133
  }
134
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
+
135
164
  function __makeTemplateObject(cooked, raw) {
136
165
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
137
166
  return cooked;
@@ -183,9 +212,18 @@ var EFormulaFilterFieldKeys;
183
212
  EFormulaFilterFieldKeys["lastTimeUnit"] = "lastTimeUnit";
184
213
  EFormulaFilterFieldKeys["durationUnit"] = "durationUnit";
185
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 = {}));
186
223
  var isFormulaFilterValue = function (value) {
187
224
  return "filteringMethod" in value;
188
225
  };
226
+ var isDimensionProcessFilter = function (filter) { return "value" in filter && "condition" in filter; };
189
227
 
190
228
  var compact = function (items) { return ((items === null || items === void 0 ? void 0 : items.filter(Boolean)) || []); };
191
229
  var compactMap = function (items, f) {
@@ -610,7 +648,7 @@ var formattingConfig = {
610
648
  },
611
649
  };
612
650
 
613
- var _a$4;
651
+ var _a$5;
614
652
  var EDimensionTemplateNames;
615
653
  (function (EDimensionTemplateNames) {
616
654
  EDimensionTemplateNames["dateTime"] = "dateTime";
@@ -626,19 +664,19 @@ var EDimensionTemplateNames;
626
664
  EDimensionTemplateNames["hour"] = "hour";
627
665
  })(EDimensionTemplateNames || (EDimensionTemplateNames = {}));
628
666
  /** Стандартные шаблоны разреза */
629
- var dimensionTemplateFormulas = (_a$4 = {},
630
- _a$4[EDimensionTemplateNames.dateTime] = "toDateTime({columnFormula})",
631
- _a$4[EDimensionTemplateNames.date] = "toDate({columnFormula})",
632
- _a$4[EDimensionTemplateNames.year] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}))",
633
- _a$4[EDimensionTemplateNames.yearAndQuarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}) * 10 + toQuarter({columnFormula}))",
634
- _a$4[EDimensionTemplateNames.quarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toQuarter({columnFormula}))",
635
- _a$4[EDimensionTemplateNames.yearAndMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYYYYMM({columnFormula}))",
636
- _a$4[EDimensionTemplateNames.month] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toMonth({columnFormula}))",
637
- _a$4[EDimensionTemplateNames.dayOfMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfMonth({columnFormula}))",
638
- _a$4[EDimensionTemplateNames.week] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toWeek({columnFormula}))",
639
- _a$4[EDimensionTemplateNames.dayOfWeek] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfWeek({columnFormula}))",
640
- _a$4[EDimensionTemplateNames.hour] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toHour({columnFormula}))",
641
- _a$4);
667
+ var dimensionTemplateFormulas = (_a$5 = {},
668
+ _a$5[EDimensionTemplateNames.dateTime] = "toDateTime({columnFormula})",
669
+ _a$5[EDimensionTemplateNames.date] = "toDate({columnFormula})",
670
+ _a$5[EDimensionTemplateNames.year] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}))",
671
+ _a$5[EDimensionTemplateNames.yearAndQuarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}) * 10 + toQuarter({columnFormula}))",
672
+ _a$5[EDimensionTemplateNames.quarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toQuarter({columnFormula}))",
673
+ _a$5[EDimensionTemplateNames.yearAndMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYYYYMM({columnFormula}))",
674
+ _a$5[EDimensionTemplateNames.month] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toMonth({columnFormula}))",
675
+ _a$5[EDimensionTemplateNames.dayOfMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfMonth({columnFormula}))",
676
+ _a$5[EDimensionTemplateNames.week] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toWeek({columnFormula}))",
677
+ _a$5[EDimensionTemplateNames.dayOfWeek] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfWeek({columnFormula}))",
678
+ _a$5[EDimensionTemplateNames.hour] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toHour({columnFormula}))",
679
+ _a$5);
642
680
 
643
681
  var EWidgetIndicatorType;
644
682
  (function (EWidgetIndicatorType) {
@@ -748,14 +786,14 @@ var EEventAppearances;
748
786
  })(EEventAppearances || (EEventAppearances = {}));
749
787
 
750
788
  function createAggregationTemplate$1(functionName, options) {
751
- return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})");
789
+ return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} ={eventName}{filters}), {caseCaseIdFormula})");
752
790
  }
753
791
 
754
- var countReworksTemplate = "process(if(countIf({eventNameFormula} = '{eventName}'{filters}) > 0, countIf({eventNameFormula} = '{eventName}'{filters}) - 1, 0), {caseCaseIdFormula})";
755
- var countExecutionsTemplate = "process(countIf({eventNameFormula} in '{eventName}'{filters}), {caseCaseIdFormula})";
756
- var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})";
757
- var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})";
758
- var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} = '{eventName}'{filters})[1], {caseCaseIdFormula})";
792
+ var countReworksTemplate = "process(if(countIf({eventNameFormula} = {eventName}{filters}) > 0, countIf({eventNameFormula} = {eventName}{filters}) - 1, 0), {caseCaseIdFormula})";
793
+ var countExecutionsTemplate = "process(countIf({eventNameFormula} in {eventName}{filters}), {caseCaseIdFormula})";
794
+ var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})";
795
+ var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})";
796
+ var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} = {eventName}{filters})[1], {caseCaseIdFormula})";
759
797
  var avgTemplate = createAggregationTemplate$1("avgIf");
760
798
  var medianTemplate = createAggregationTemplate$1("medianIf");
761
799
  var countTemplate = createAggregationTemplate$1("countIf");
@@ -764,8 +802,55 @@ var minTemplate = createAggregationTemplate$1("minIf");
764
802
  var maxTemplate = createAggregationTemplate$1("maxIf");
765
803
  var sumTemplate = createAggregationTemplate$1("sumIf");
766
804
 
805
+ function hasPossibleSingleLineComment(str) {
806
+ return str.indexOf("--") >= 0;
807
+ }
808
+ function sanitizeSingleLineComment(formula, wrapInBrackets) {
809
+ if (!hasPossibleSingleLineComment(formula)) {
810
+ return formula;
811
+ }
812
+ var lines = formula.split("\n");
813
+ var lastLine = lines[lines.length - 1];
814
+ // Кейс, когда хотим избежать повторного добавления переноса строки:
815
+ // уже есть переносы и после последнего переноса нет комментария
816
+ if (lines.length > 1 && lastLine && !hasPossibleSingleLineComment(lastLine)) {
817
+ return formula;
818
+ }
819
+ return wrapInBrackets ? "(".concat(formula, "\n)") : "".concat(formula, "\n");
820
+ }
821
+
822
+ /** @deprecated - следует использовать fillTemplateSql */
767
823
  function fillTemplateString(templateString, params) {
768
- return templateString.replace(/\{(.*?)\}/g, function (_, key) { var _a; return (_a = params[key]) !== null && _a !== void 0 ? _a : ""; });
824
+ return templateString.replace(/\{(.*?)\}/g, function (_, key) {
825
+ var _a;
826
+ return (_a = params[key]) !== null && _a !== void 0 ? _a : "";
827
+ });
828
+ }
829
+ /** Функция для безопасного заполнения SQL шаблонов с защитой от однострочных SQL комментариев в подставляемых значениях. */
830
+ function fillTemplateSql(templateString, params) {
831
+ var e_1, _a;
832
+ var newParams = {};
833
+ if (templateString.indexOf("'{") >= 0) {
834
+ throw new Error("\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0448\u0430\u0431\u043B\u043E\u043D: \u043F\u043B\u0435\u0439\u0441\u0445\u043E\u043B\u0434\u0435\u0440\u044B \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u044B \u0437\u0430\u043A\u043B\u044E\u0447\u0430\u0442\u044C\u0441\u044F \u0432 \u043E\u0434\u0438\u043D\u0430\u0440\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438.\n \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {placeholder} \u0432\u043C\u0435\u0441\u0442\u043E '{placeholder}'.\n \u041A\u0430\u0432\u044B\u0447\u043A\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0445 \u043F\u043E\u043B\u0435\u0439 \u043F\u0440\u0438 \u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432.");
835
+ }
836
+ try {
837
+ for (var _b = __values(Object.entries(params)), _c = _b.next(); !_c.done; _c = _b.next()) {
838
+ var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
839
+ if (String(value).indexOf("--") >= 0) {
840
+ newParams[key] = "".concat(value, "\n");
841
+ continue;
842
+ }
843
+ newParams[key] = sanitizeSingleLineComment(String(value));
844
+ }
845
+ }
846
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
847
+ finally {
848
+ try {
849
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
850
+ }
851
+ finally { if (e_1) throw e_1.error; }
852
+ }
853
+ return fillTemplateString(templateString, newParams);
769
854
  }
770
855
 
771
856
  /** Создать функцию экранирования переданных `specialChars` внутри `str` */
@@ -839,7 +924,7 @@ var escapeSingularQuotes = function (formula) {
839
924
  };
840
925
 
841
926
  var prepareFormulaForSql = function (formula, simpleType) {
842
- formula = clearSingleLineComments(clearMultiLineComments(formula)).trim();
927
+ formula = sanitizeSingleLineComment(formula, true);
843
928
  return simpleType === ESimpleDataType.OTHER ? "toString(".concat(formula, ")") : formula;
844
929
  };
845
930
  var clearSingleLineComments = function (formula) {
@@ -921,7 +1006,7 @@ var convertFiltersToFormula = function (filters) {
921
1006
  return filters.length > 0 ? " AND ".concat(convertToFormulasChain(filters)) : "";
922
1007
  };
923
1008
 
924
- var _a$3;
1009
+ var _a$4;
925
1010
  var EDimensionAggregationTemplateName;
926
1011
  (function (EDimensionAggregationTemplateName) {
927
1012
  EDimensionAggregationTemplateName["avg"] = "avg";
@@ -938,20 +1023,20 @@ var EDimensionAggregationTemplateName;
938
1023
  EDimensionAggregationTemplateName["countReworks"] = "countReworks";
939
1024
  })(EDimensionAggregationTemplateName || (EDimensionAggregationTemplateName = {}));
940
1025
  /** Шаблоны процессных метрик разреза с режимом AGGREGATION */
941
- var dimensionAggregationTemplates = (_a$3 = {},
942
- _a$3[EDimensionAggregationTemplateName.avg] = avgTemplate,
943
- _a$3[EDimensionAggregationTemplateName.median] = medianTemplate,
944
- _a$3[EDimensionAggregationTemplateName.count] = countTemplate,
945
- _a$3[EDimensionAggregationTemplateName.countDistinct] = countDistinctTemplate,
946
- _a$3[EDimensionAggregationTemplateName.min] = minTemplate,
947
- _a$3[EDimensionAggregationTemplateName.max] = maxTemplate,
948
- _a$3[EDimensionAggregationTemplateName.sum] = sumTemplate,
949
- _a$3[EDimensionAggregationTemplateName.top] = topTemplate,
950
- _a$3[EDimensionAggregationTemplateName.firstValue] = firstValueTemplate,
951
- _a$3[EDimensionAggregationTemplateName.lastValue] = lastValueTemplate,
952
- _a$3[EDimensionAggregationTemplateName.countExecutions] = countExecutionsTemplate,
953
- _a$3[EDimensionAggregationTemplateName.countReworks] = countReworksTemplate,
954
- _a$3);
1026
+ var dimensionAggregationTemplates = (_a$4 = {},
1027
+ _a$4[EDimensionAggregationTemplateName.avg] = avgTemplate,
1028
+ _a$4[EDimensionAggregationTemplateName.median] = medianTemplate,
1029
+ _a$4[EDimensionAggregationTemplateName.count] = countTemplate,
1030
+ _a$4[EDimensionAggregationTemplateName.countDistinct] = countDistinctTemplate,
1031
+ _a$4[EDimensionAggregationTemplateName.min] = minTemplate,
1032
+ _a$4[EDimensionAggregationTemplateName.max] = maxTemplate,
1033
+ _a$4[EDimensionAggregationTemplateName.sum] = sumTemplate,
1034
+ _a$4[EDimensionAggregationTemplateName.top] = topTemplate,
1035
+ _a$4[EDimensionAggregationTemplateName.firstValue] = firstValueTemplate,
1036
+ _a$4[EDimensionAggregationTemplateName.lastValue] = lastValueTemplate,
1037
+ _a$4[EDimensionAggregationTemplateName.countExecutions] = countExecutionsTemplate,
1038
+ _a$4[EDimensionAggregationTemplateName.countReworks] = countReworksTemplate,
1039
+ _a$4);
955
1040
  /** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
956
1041
  var prepareDimensionAggregationParams = function (value) {
957
1042
  if (!value.eventName ||
@@ -964,8 +1049,7 @@ var prepareDimensionAggregationParams = function (value) {
964
1049
  var commonParams = {
965
1050
  eventNameFormula: value.eventNameFormula,
966
1051
  caseCaseIdFormula: value.caseCaseIdFormula,
967
- eventName: value.eventName,
968
- objectFilters: "1",
1052
+ eventName: "'".concat(escapeSingularQuotes(value.eventName), "'"),
969
1053
  filters: convertFiltersToFormula(value.filters),
970
1054
  eventTimeFormula: "",
971
1055
  columnFormula: "",
@@ -994,13 +1078,13 @@ var timeTemplates = (function () {
994
1078
  var generateTemplates = function (innerTemplate) {
995
1079
  var templates = {};
996
1080
  for (var key in dimensionTemplateFormulas) {
997
- templates[key] = fillTemplateString(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
1081
+ templates[key] = fillTemplateSql(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
998
1082
  }
999
1083
  return templates;
1000
1084
  };
1001
1085
  return _a = {},
1002
- _a[EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})"),
1003
- _a[EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})"),
1086
+ _a[EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})"),
1087
+ _a[EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})"),
1004
1088
  _a;
1005
1089
  })();
1006
1090
  /** На основе значения режимов START_TIME/END_TIME подготовить параметры для подстановки в шаблонную формулу */
@@ -1018,12 +1102,12 @@ var prepareTimeParams = function (value) {
1018
1102
  eventNameFormula: value.eventNameFormula,
1019
1103
  caseCaseIdFormula: value.caseCaseIdFormula,
1020
1104
  filters: convertFiltersToFormula(value.filters),
1021
- eventName: value.eventName,
1105
+ eventName: "'".concat(escapeSingularQuotes(value.eventName), "'"),
1022
1106
  };
1023
1107
  };
1024
1108
 
1025
1109
  function getDimensionFormula(_a) {
1026
- var _b;
1110
+ var _b, _c;
1027
1111
  var value = _a.value;
1028
1112
  if (!value) {
1029
1113
  return "";
@@ -1037,10 +1121,13 @@ function getDimensionFormula(_a) {
1037
1121
  if (!templateFormula || !tableName || !columnName) {
1038
1122
  return "";
1039
1123
  }
1040
- return fillTemplateString(templateFormula, {
1124
+ return fillTemplateSql(templateFormula, {
1041
1125
  columnFormula: generateColumnFormula(tableName, columnName),
1042
1126
  });
1043
1127
  }
1128
+ return (_c = getProcessDimensionValueFormula(value)) !== null && _c !== void 0 ? _c : "";
1129
+ }
1130
+ function getProcessDimensionValueFormula(value) {
1044
1131
  if (value.mode === EWidgetIndicatorValueModes.AGGREGATION) {
1045
1132
  var preparedParams = prepareDimensionAggregationParams(value);
1046
1133
  if (!preparedParams) {
@@ -1050,10 +1137,10 @@ function getDimensionFormula(_a) {
1050
1137
  ? dimensionTemplateFormulas[value.innerTemplateName]
1051
1138
  : null;
1052
1139
  var columnFormula = innerTemplate
1053
- ? fillTemplateString(innerTemplate, { columnFormula: preparedParams.columnFormula })
1140
+ ? fillTemplateSql(innerTemplate, { columnFormula: preparedParams.columnFormula })
1054
1141
  : preparedParams.columnFormula;
1055
1142
  var dimensionAggregationTemplate = dimensionAggregationTemplates[value.templateName];
1056
- return fillTemplateString(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
1143
+ return fillTemplateSql(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
1057
1144
  }
1058
1145
  if (value.mode === EWidgetIndicatorValueModes.START_TIME ||
1059
1146
  value.mode === EWidgetIndicatorValueModes.END_TIME) {
@@ -1062,9 +1149,8 @@ function getDimensionFormula(_a) {
1062
1149
  return "";
1063
1150
  }
1064
1151
  var templateFormula = timeTemplates[value.mode][value.templateName];
1065
- return fillTemplateString(templateFormula, preparedParams);
1152
+ return fillTemplateSql(templateFormula, preparedParams);
1066
1153
  }
1067
- return "";
1068
1154
  }
1069
1155
 
1070
1156
  var EMeasureAggregationTemplateName;
@@ -1096,8 +1182,7 @@ var prepareMeasureAggregationParams = function (value) {
1096
1182
  outerAggregation: value.outerAggregation,
1097
1183
  eventNameFormula: value.eventNameFormula,
1098
1184
  caseCaseIdFormula: value.caseCaseIdFormula,
1099
- eventName: value.eventName,
1100
- objectFilters: "1",
1185
+ eventName: value.eventName ? "'".concat(escapeSingularQuotes(value.eventName), "'") : "",
1101
1186
  filters: convertFiltersToFormula(value.filters),
1102
1187
  eventTimeFormula: "",
1103
1188
  columnFormula: "",
@@ -1118,7 +1203,7 @@ var prepareMeasureAggregationParams = function (value) {
1118
1203
  return columnParams;
1119
1204
  };
1120
1205
 
1121
- var _a$2;
1206
+ var _a$3, _b;
1122
1207
  var EMeasureTemplateNames;
1123
1208
  (function (EMeasureTemplateNames) {
1124
1209
  EMeasureTemplateNames["avg"] = "avg";
@@ -1129,19 +1214,28 @@ var EMeasureTemplateNames;
1129
1214
  EMeasureTemplateNames["max"] = "max";
1130
1215
  EMeasureTemplateNames["sum"] = "sum";
1131
1216
  })(EMeasureTemplateNames || (EMeasureTemplateNames = {}));
1217
+ var EMeasureInnerTemplateNames;
1218
+ (function (EMeasureInnerTemplateNames) {
1219
+ EMeasureInnerTemplateNames["begin"] = "begin";
1220
+ EMeasureInnerTemplateNames["end"] = "end";
1221
+ })(EMeasureInnerTemplateNames || (EMeasureInnerTemplateNames = {}));
1132
1222
  /** Стандартные шаблоны меры */
1133
- var measureTemplateFormulas = (_a$2 = {},
1134
- _a$2[EMeasureTemplateNames.avg] = "avg({columnFormula})",
1135
- _a$2[EMeasureTemplateNames.count] = "count({columnFormula})",
1136
- _a$2[EMeasureTemplateNames.countDistinct] = "count(distinct {columnFormula})",
1137
- _a$2[EMeasureTemplateNames.median] = "medianExact({columnFormula})",
1138
- _a$2[EMeasureTemplateNames.min] = "min({columnFormula})",
1139
- _a$2[EMeasureTemplateNames.max] = "max({columnFormula})",
1140
- _a$2[EMeasureTemplateNames.sum] = "sum({columnFormula})",
1141
- _a$2);
1223
+ var measureTemplateFormulas = (_a$3 = {},
1224
+ _a$3[EMeasureTemplateNames.avg] = "avg({columnFormula})",
1225
+ _a$3[EMeasureTemplateNames.count] = "count({columnFormula})",
1226
+ _a$3[EMeasureTemplateNames.countDistinct] = "count(distinct {columnFormula})",
1227
+ _a$3[EMeasureTemplateNames.median] = "medianExact({columnFormula})",
1228
+ _a$3[EMeasureTemplateNames.min] = "min({columnFormula})",
1229
+ _a$3[EMeasureTemplateNames.max] = "max({columnFormula})",
1230
+ _a$3[EMeasureTemplateNames.sum] = "sum({columnFormula})",
1231
+ _a$3);
1232
+ var measureInnerTemplateFormulas = (_b = {},
1233
+ _b[EMeasureInnerTemplateNames.begin] = "begin({columnFormula})",
1234
+ _b[EMeasureInnerTemplateNames.end] = "end({columnFormula})",
1235
+ _b);
1142
1236
 
1143
1237
  /** Шаблон процессной метрики меры с режимом CONVERSION */
1144
- var 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)";
1238
+ var 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)";
1145
1239
  /** На основе значения режима CONVERSION подготовить параметры для подстановки в шаблонную формулу */
1146
1240
  var prepareConversionParams = function (value) {
1147
1241
  if (!value.startEventName ||
@@ -1156,15 +1250,14 @@ var prepareConversionParams = function (value) {
1156
1250
  return null;
1157
1251
  }
1158
1252
  return {
1159
- objectFilters: "1",
1160
1253
  startEventTimeFormula: value.startEventTimeFormula,
1161
1254
  startEventNameFormula: value.startEventNameFormula,
1162
1255
  startEventFilters: convertFiltersToFormula(value.startEventFilters),
1163
- startEventName: value.startEventName,
1256
+ startEventName: "'".concat(escapeSingularQuotes(value.startEventName), "'"),
1164
1257
  endEventTimeFormula: value.endEventTimeFormula,
1165
1258
  endCaseCaseIdFormula: value.endCaseCaseIdFormula,
1166
1259
  endEventNameFormula: value.endEventNameFormula,
1167
- endEventName: value.endEventName,
1260
+ endEventName: "'".concat(escapeSingularQuotes(value.endEventName), "'"),
1168
1261
  endEventFilters: convertFiltersToFormula(value.endEventFilters),
1169
1262
  };
1170
1263
  };
@@ -1172,7 +1265,7 @@ var prepareConversionParams = function (value) {
1172
1265
  /** Шаблоны процессных метрик меры с режимом DURATION */
1173
1266
  var durationTemplates = (function () {
1174
1267
  var _a;
1175
- var innerTemplate = "\n timeDiff(\n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ), \n process(\n {endEventAggregationName}(\n {endEventTimeFormula}, \n {endEventNameFormula} = '{endEventName}'{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n )\n ), \n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n {endEventAggregationName}(\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 ";
1268
+ var innerTemplate = "\n timeDiff(\n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = {startEventName}{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ), \n process(\n {endEventAggregationName}(\n {endEventTimeFormula}, \n {endEventNameFormula} = {endEventName}{endEventFilters}\n ), \n {endCaseCaseIdFormula}\n )\n ), \n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} = {startEventName}{startEventFilters}\n ), \n {endCaseCaseIdFormula}\n ) < \n process(\n {endEventAggregationName}(\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 ";
1176
1269
  return _a = {},
1177
1270
  _a[EDurationTemplateName.avg] = "avgIf(".concat(innerTemplate, ")"),
1178
1271
  _a[EDurationTemplateName.median] = "medianIf(".concat(innerTemplate, ")"),
@@ -1195,32 +1288,31 @@ var prepareDurationParams = function (value) {
1195
1288
  return appearance === EEventAppearances.FIRST ? "minIf" : "maxIf";
1196
1289
  };
1197
1290
  return {
1198
- objectFilters: "1",
1199
1291
  startEventTimeFormula: value.startEventTimeFormula,
1200
1292
  startEventNameFormula: value.startEventNameFormula,
1201
1293
  startEventFilters: convertFiltersToFormula(value.startEventFilters),
1202
- startEventName: value.startEventName,
1294
+ startEventName: "'".concat(escapeSingularQuotes(value.startEventName), "'"),
1203
1295
  startEventAggregationName: getAggregationNameByAppearances(value.startEventAppearances),
1204
1296
  endEventTimeFormula: value.endEventTimeFormula,
1205
1297
  endCaseCaseIdFormula: value.endCaseCaseIdFormula,
1206
1298
  endEventNameFormula: value.endEventNameFormula,
1207
- endEventName: value.endEventName,
1299
+ endEventName: "'".concat(escapeSingularQuotes(value.endEventName), "'"),
1208
1300
  endEventFilters: convertFiltersToFormula(value.endEventFilters),
1209
1301
  endEventAggregationName: getAggregationNameByAppearances(value.endEventAppearances),
1210
1302
  };
1211
1303
  };
1212
1304
 
1213
1305
  function createAnyEventTemplate(aggregatePart) {
1214
- return "{outerAggregation}If(process(".concat(aggregatePart, ", {caseCaseIdFormula}), {objectFilters})");
1306
+ return "{outerAggregation}(process(".concat(aggregatePart, ", {caseCaseIdFormula}))");
1215
1307
  }
1216
1308
  function createSpecificEventTemplate(fn, additionalFn) {
1217
- return "{outerAggregation}If(process(".concat(fn, "(").concat(additionalFn ? "".concat(additionalFn, " ") : "", "{columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})");
1309
+ return "{outerAggregation}(process(".concat(fn, "(").concat(additionalFn ? "".concat(additionalFn, " ") : "", "{columnFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula}))");
1218
1310
  }
1219
1311
  function createTopLikeTemplate(template) {
1220
1312
  return function (outerAggregation) {
1221
1313
  return outerAggregation === EOuterAggregation.top
1222
- ? "{outerAggregation}KIf(1)(".concat(template, ", {objectFilters})[1]")
1223
- : "{outerAggregation}If(".concat(template, ", {objectFilters})");
1314
+ ? "{outerAggregation}K(1)(".concat(template, ")[1]")
1315
+ : "{outerAggregation}(".concat(template, ")");
1224
1316
  };
1225
1317
  }
1226
1318
  function createAggregationTemplate(templateName, _a) {
@@ -1267,9 +1359,9 @@ function createAggregationTemplate(templateName, _a) {
1267
1359
  ? createAnyEventTemplate("argMax({columnFormula}, {eventTimeFormula})")
1268
1360
  : createTopLikeTemplate(lastValueTemplate)(outerAggregation);
1269
1361
  case EMeasureAggregationTemplateName.countExecutions:
1270
- return "{outerAggregation}If(".concat(countExecutionsTemplate, ", {objectFilters})");
1362
+ return "{outerAggregation}(".concat(countExecutionsTemplate, ")");
1271
1363
  case EMeasureAggregationTemplateName.countReworks:
1272
- return "{outerAggregation}If(".concat(countReworksTemplate, ", {objectFilters})");
1364
+ return "{outerAggregation}(".concat(countReworksTemplate, ")");
1273
1365
  }
1274
1366
  }
1275
1367
 
@@ -1283,19 +1375,24 @@ function getMeasureFormula(_a) {
1283
1375
  return (_b = value.formula) !== null && _b !== void 0 ? _b : "";
1284
1376
  }
1285
1377
  if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
1286
- var templateName = value.templateName, tableName = value.tableName, columnName = value.columnName;
1378
+ var templateName = value.templateName, tableName = value.tableName, columnName = value.columnName, innerTemplateName = value.innerTemplateName;
1287
1379
  var templateFormula = measureTemplateFormulas[templateName];
1288
1380
  if (!templateFormula || !tableName || !columnName) {
1289
1381
  return "";
1290
1382
  }
1291
- return fillTemplateString(templateFormula, {
1292
- columnFormula: generateColumnFormula(tableName, columnName),
1383
+ var columnFormula = innerTemplateName
1384
+ ? fillTemplateSql(measureInnerTemplateFormulas[innerTemplateName], {
1385
+ columnFormula: generateColumnFormula(tableName, columnName),
1386
+ })
1387
+ : generateColumnFormula(tableName, columnName);
1388
+ return fillTemplateSql(templateFormula, {
1389
+ columnFormula: columnFormula,
1293
1390
  });
1294
1391
  }
1295
1392
  if (value.mode === EWidgetIndicatorValueModes.AGGREGATION) {
1296
1393
  var preparedParams = prepareMeasureAggregationParams(value);
1297
1394
  return preparedParams
1298
- ? fillTemplateString(createAggregationTemplate(value.templateName, {
1395
+ ? fillTemplateSql(createAggregationTemplate(value.templateName, {
1299
1396
  outerAggregation: preparedParams.outerAggregation,
1300
1397
  anyEvent: value.anyEvent,
1301
1398
  }), preparedParams)
@@ -1306,28 +1403,28 @@ function getMeasureFormula(_a) {
1306
1403
  if (!preparedParams) {
1307
1404
  return "";
1308
1405
  }
1309
- return fillTemplateString(conversionTemplate, preparedParams);
1406
+ return fillTemplateSql(conversionTemplate, preparedParams);
1310
1407
  }
1311
1408
  if (value.mode === EWidgetIndicatorValueModes.DURATION) {
1312
1409
  var preparedParams = prepareDurationParams(value);
1313
1410
  if (!preparedParams) {
1314
1411
  return "";
1315
1412
  }
1316
- return fillTemplateString(durationTemplates[value.templateName], preparedParams);
1413
+ return fillTemplateSql(durationTemplates[value.templateName], preparedParams);
1317
1414
  }
1318
1415
  return "";
1319
1416
  }
1320
1417
 
1321
- var _a$1;
1418
+ var _a$2;
1322
1419
  var EEventMeasureTemplateNames;
1323
1420
  (function (EEventMeasureTemplateNames) {
1324
1421
  EEventMeasureTemplateNames["eventsCount"] = "eventsCount";
1325
1422
  EEventMeasureTemplateNames["reworksCount"] = "reworksCount";
1326
1423
  })(EEventMeasureTemplateNames || (EEventMeasureTemplateNames = {}));
1327
- var eventMeasureTemplateFormulas = (_a$1 = {},
1328
- _a$1[EEventMeasureTemplateNames.eventsCount] = "count()",
1329
- _a$1[EEventMeasureTemplateNames.reworksCount] = "count() - uniqExact({caseCaseIdFormula})",
1330
- _a$1);
1424
+ var eventMeasureTemplateFormulas = (_a$2 = {},
1425
+ _a$2[EEventMeasureTemplateNames.eventsCount] = "count()",
1426
+ _a$2[EEventMeasureTemplateNames.reworksCount] = "count() - uniqExact({caseCaseIdFormula})",
1427
+ _a$2);
1331
1428
 
1332
1429
  function getEventMeasureFormula(_a, process) {
1333
1430
  var value = _a.value;
@@ -1339,21 +1436,21 @@ function getEventMeasureFormula(_a, process) {
1339
1436
  }
1340
1437
  if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
1341
1438
  var templateFormula = eventMeasureTemplateFormulas[value.templateName];
1342
- return templateFormula && fillTemplateString(templateFormula, process);
1439
+ return templateFormula && fillTemplateSql(templateFormula, process);
1343
1440
  }
1344
1441
  return "";
1345
1442
  }
1346
1443
 
1347
- var _a;
1444
+ var _a$1;
1348
1445
  var ETransitionMeasureTemplateNames;
1349
1446
  (function (ETransitionMeasureTemplateNames) {
1350
1447
  ETransitionMeasureTemplateNames["transitionsCount"] = "transitionsCount";
1351
1448
  ETransitionMeasureTemplateNames["medianTime"] = "medianTime";
1352
1449
  })(ETransitionMeasureTemplateNames || (ETransitionMeasureTemplateNames = {}));
1353
- var transitionMeasureTemplateFormulas = (_a = {},
1354
- _a[ETransitionMeasureTemplateNames.transitionsCount] = "count()",
1355
- _a[ETransitionMeasureTemplateNames.medianTime] = "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))",
1356
- _a);
1450
+ var transitionMeasureTemplateFormulas = (_a$1 = {},
1451
+ _a$1[ETransitionMeasureTemplateNames.transitionsCount] = "count()",
1452
+ _a$1[ETransitionMeasureTemplateNames.medianTime] = "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))",
1453
+ _a$1);
1357
1454
 
1358
1455
  function getTransitionMeasureFormula(_a, process) {
1359
1456
  var value = _a.value;
@@ -1365,7 +1462,7 @@ function getTransitionMeasureFormula(_a, process) {
1365
1462
  }
1366
1463
  if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
1367
1464
  var templateFormula = transitionMeasureTemplateFormulas[value.templateName];
1368
- return templateFormula && fillTemplateString(templateFormula, process);
1465
+ return templateFormula && fillTemplateSql(templateFormula, process);
1369
1466
  }
1370
1467
  return "";
1371
1468
  }
@@ -1549,7 +1646,9 @@ var getFormulaFilterValues = function (filterValue) {
1549
1646
  }
1550
1647
  return [];
1551
1648
  };
1552
- var applyIndexToArrayFormula = function (formula, index) { return "".concat(formula, "[").concat(index, "]"); };
1649
+ var applyIndexToArrayFormula = function (formula, index) {
1650
+ return "(".concat(formula, ")[").concat(index, "]");
1651
+ };
1553
1652
  var mapFormulaFilterToCalculatorInput = function (filterValue) {
1554
1653
  if (!filterValue) {
1555
1654
  return null;
@@ -1557,7 +1656,7 @@ var mapFormulaFilterToCalculatorInput = function (filterValue) {
1557
1656
  if (!isFormulaFilterValue(filterValue)) {
1558
1657
  return {
1559
1658
  dbDataType: EClickHouseBaseTypes.Bool,
1560
- formula: fillTemplateString(displayConditionTemplate, {
1659
+ formula: fillTemplateSql(displayConditionTemplate, {
1561
1660
  formula: prepareFormulaForSql(filterValue.formula),
1562
1661
  }),
1563
1662
  values: ["true"],
@@ -1592,6 +1691,46 @@ var mapFormulaFiltersToInputs = function (filters) {
1592
1691
  return compactMap(filters, mapFormulaFilterToCalculatorInput);
1593
1692
  };
1594
1693
 
1694
+ var _a;
1695
+ var intervalByUnit = (_a = {},
1696
+ _a[EDimensionProcessFilterTimeUnit.YEARS] = "year",
1697
+ _a[EDimensionProcessFilterTimeUnit.MONTHS] = "month",
1698
+ _a[EDimensionProcessFilterTimeUnit.DAYS] = "day",
1699
+ _a[EDimensionProcessFilterTimeUnit.HOURS] = "hour",
1700
+ _a[EDimensionProcessFilterTimeUnit.MINUTES] = "minute",
1701
+ _a);
1702
+ function mapDimensionProcessFilterToCalculatorInput(filter) {
1703
+ var formula = filter.value.mode === EWidgetIndicatorValueModes.FORMULA
1704
+ ? filter.value.formula
1705
+ : getProcessDimensionValueFormula(filter.value);
1706
+ if (formula === undefined) {
1707
+ throw new Error("Formula generation error");
1708
+ }
1709
+ var _a = filter.condition, timeUnit = _a.timeUnit, filteringMethod = _a.filteringMethod, values = _a.values;
1710
+ if (filteringMethod === "LAST_TIME") {
1711
+ if (!timeUnit) {
1712
+ throw new Error("Missing time unit");
1713
+ }
1714
+ return {
1715
+ dbDataType: EClickHouseBaseTypes.Bool,
1716
+ formula: "date_diff('".concat(intervalByUnit[timeUnit], "', ").concat(formula, ", now())"),
1717
+ values: values,
1718
+ filteringMethod: formulaFilterMethods.LESS_THAN_OR_EQUAL_TO,
1719
+ };
1720
+ }
1721
+ return { formula: formula, filteringMethod: filteringMethod, values: values, dbDataType: filter.dbDataType };
1722
+ }
1723
+
1724
+ var mapSettingsFilterToCalculatorInput = function (filter) {
1725
+ if (isDimensionProcessFilter(filter)) {
1726
+ return mapDimensionProcessFilterToCalculatorInput(filter);
1727
+ }
1728
+ return mapFormulaFilterToCalculatorInput(filter);
1729
+ };
1730
+ var mapSettingsFiltersToInputs = function (filters) {
1731
+ return compactMap(filters, mapSettingsFilterToCalculatorInput);
1732
+ };
1733
+
1595
1734
  function mapMeasureToInput(measure, variables, addFormulas) {
1596
1735
  if (addFormulas === void 0) { addFormulas = function () { return new Map(); }; }
1597
1736
  var mainFormula = getMeasureFormula(measure);
@@ -2086,4 +2225,4 @@ var getColorByIndex = function (index) {
2086
2225
  return color;
2087
2226
  };
2088
2227
 
2089
- export { EActionButtonsTypes, EActionTypes, EActivateConditionMode, EAutoUpdateMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, EDataModelOption, EDimensionAggregationTemplateName, 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, 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, fillTemplateString, formattingConfig, formulaFilterMethods, generateColumnFormula, getColorByIndex, getDefaultSortOrders, getDimensionFormula, getDisplayConditionFormula, getEventMeasureFormula, getLocalizedText, getMeasureFormula, getRuleColor, getTransitionMeasureFormula, isDimensionsHierarchy, isFormulaFilterValue, isValidColor, 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, updateSingleModeSelection, workspaceLinkRegExp };
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 };