@infomaximum/widget-sdk 6.0.0-2 → 6.0.0-2508.1

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
@@ -35,12 +35,6 @@ var EViewOpenIn;
35
35
  EViewOpenIn["PLACEHOLDER"] = "PLACEHOLDER";
36
36
  EViewOpenIn["MODAL_WINDOW"] = "MODAL_WINDOW";
37
37
  EViewOpenIn["DRAWER_WINDOW"] = "DRAWER_WINDOW";
38
- // TODO: удалить при выполении BI-14979
39
- /** @deprecated необходимо использовать EViewOpenIn.WINDOW с флагом newWindow - true */
40
- EViewOpenIn["NEW_WINDOW"] = "NEW_WINDOW";
41
- // TODO: удалить при выполении BI-14979
42
- /** @deprecated необходимо использовать EViewOpenIn.WINDOW с флагом newWindow - false */
43
- EViewOpenIn["CURRENT_WINDOW"] = "CURRENT_WINDOW";
44
38
  })(EViewOpenIn || (EViewOpenIn = {}));
45
39
  var EDrawerPlacement;
46
40
  (function (EDrawerPlacement) {
@@ -138,6 +132,35 @@ function __rest(s, e) {
138
132
  return t;
139
133
  }
140
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
+
141
164
  function __makeTemplateObject(cooked, raw) {
142
165
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
143
166
  return cooked;
@@ -189,9 +212,18 @@ var EFormulaFilterFieldKeys;
189
212
  EFormulaFilterFieldKeys["lastTimeUnit"] = "lastTimeUnit";
190
213
  EFormulaFilterFieldKeys["durationUnit"] = "durationUnit";
191
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 = {}));
192
223
  var isFormulaFilterValue = function (value) {
193
224
  return "filteringMethod" in value;
194
225
  };
226
+ var isDimensionProcessFilter = function (filter) { return "value" in filter && "condition" in filter; };
195
227
 
196
228
  var compact = function (items) { return ((items === null || items === void 0 ? void 0 : items.filter(Boolean)) || []); };
197
229
  var compactMap = function (items, f) {
@@ -616,7 +648,7 @@ var formattingConfig = {
616
648
  },
617
649
  };
618
650
 
619
- var _a$4;
651
+ var _a$5;
620
652
  var EDimensionTemplateNames;
621
653
  (function (EDimensionTemplateNames) {
622
654
  EDimensionTemplateNames["dateTime"] = "dateTime";
@@ -632,19 +664,19 @@ var EDimensionTemplateNames;
632
664
  EDimensionTemplateNames["hour"] = "hour";
633
665
  })(EDimensionTemplateNames || (EDimensionTemplateNames = {}));
634
666
  /** Стандартные шаблоны разреза */
635
- var dimensionTemplateFormulas = (_a$4 = {},
636
- _a$4[EDimensionTemplateNames.dateTime] = "toDateTime({columnFormula})",
637
- _a$4[EDimensionTemplateNames.date] = "toDate({columnFormula})",
638
- _a$4[EDimensionTemplateNames.year] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}))",
639
- _a$4[EDimensionTemplateNames.yearAndQuarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}) * 10 + toQuarter({columnFormula}))",
640
- _a$4[EDimensionTemplateNames.quarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toQuarter({columnFormula}))",
641
- _a$4[EDimensionTemplateNames.yearAndMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYYYYMM({columnFormula}))",
642
- _a$4[EDimensionTemplateNames.month] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toMonth({columnFormula}))",
643
- _a$4[EDimensionTemplateNames.dayOfMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfMonth({columnFormula}))",
644
- _a$4[EDimensionTemplateNames.week] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toWeek({columnFormula}))",
645
- _a$4[EDimensionTemplateNames.dayOfWeek] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfWeek({columnFormula}))",
646
- _a$4[EDimensionTemplateNames.hour] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toHour({columnFormula}))",
647
- _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);
648
680
 
649
681
  var EWidgetIndicatorType;
650
682
  (function (EWidgetIndicatorType) {
@@ -686,6 +718,11 @@ var ESortingValueModes;
686
718
  /** Сортировка по показателю(разрезу или мере) виджета */
687
719
  ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
688
720
  })(ESortingValueModes || (ESortingValueModes = {}));
721
+ var EFormatOrFormattingMode;
722
+ (function (EFormatOrFormattingMode) {
723
+ EFormatOrFormattingMode["BASE"] = "BASE";
724
+ EFormatOrFormattingMode["TEMPLATE"] = "TEMPLATE";
725
+ })(EFormatOrFormattingMode || (EFormatOrFormattingMode = {}));
689
726
  /** Тип показателя */
690
727
  var EIndicatorType;
691
728
  (function (EIndicatorType) {
@@ -765,8 +802,41 @@ var minTemplate = createAggregationTemplate$1("minIf");
765
802
  var maxTemplate = createAggregationTemplate$1("maxIf");
766
803
  var sumTemplate = createAggregationTemplate$1("sumIf");
767
804
 
805
+ /** @deprecated - следует использовать fillTemplateSql */
768
806
  function fillTemplateString(templateString, params) {
769
- return templateString.replace(/\{(.*?)\}/g, function (_, key) { var _a; return (_a = params[key]) !== null && _a !== void 0 ? _a : ""; });
807
+ return templateString.replace(/\{(.*?)\}/g, function (_, key) {
808
+ var _a;
809
+ return (_a = params[key]) !== null && _a !== void 0 ? _a : "";
810
+ });
811
+ }
812
+ /** Функция для безопасного заполнения SQL шаблонов с защитой от однострочных SQL комментариев в подставляемых значениях. */
813
+ function fillTemplateSql(templateString, params) {
814
+ var e_1, _a;
815
+ var newParams = {};
816
+ try {
817
+ for (var _b = __values(Object.entries(params)), _c = _b.next(); !_c.done; _c = _b.next()) {
818
+ var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
819
+ if (!value) {
820
+ newParams[key] = value;
821
+ break;
822
+ }
823
+ /** Эвристическая проверка на возможное присутствие sql-комментария в значении подставляемом в template
824
+ */
825
+ if (typeof value === "string" && value.indexOf("--") >= 0) {
826
+ newParams[key] = "".concat(value, "\n");
827
+ break;
828
+ }
829
+ newParams[key] = value;
830
+ }
831
+ }
832
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
833
+ finally {
834
+ try {
835
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
836
+ }
837
+ finally { if (e_1) throw e_1.error; }
838
+ }
839
+ return fillTemplateString(templateString, newParams);
770
840
  }
771
841
 
772
842
  /** Создать функцию экранирования переданных `specialChars` внутри `str` */
@@ -922,7 +992,7 @@ var convertFiltersToFormula = function (filters) {
922
992
  return filters.length > 0 ? " AND ".concat(convertToFormulasChain(filters)) : "";
923
993
  };
924
994
 
925
- var _a$3;
995
+ var _a$4;
926
996
  var EDimensionAggregationTemplateName;
927
997
  (function (EDimensionAggregationTemplateName) {
928
998
  EDimensionAggregationTemplateName["avg"] = "avg";
@@ -939,20 +1009,20 @@ var EDimensionAggregationTemplateName;
939
1009
  EDimensionAggregationTemplateName["countReworks"] = "countReworks";
940
1010
  })(EDimensionAggregationTemplateName || (EDimensionAggregationTemplateName = {}));
941
1011
  /** Шаблоны процессных метрик разреза с режимом AGGREGATION */
942
- var dimensionAggregationTemplates = (_a$3 = {},
943
- _a$3[EDimensionAggregationTemplateName.avg] = avgTemplate,
944
- _a$3[EDimensionAggregationTemplateName.median] = medianTemplate,
945
- _a$3[EDimensionAggregationTemplateName.count] = countTemplate,
946
- _a$3[EDimensionAggregationTemplateName.countDistinct] = countDistinctTemplate,
947
- _a$3[EDimensionAggregationTemplateName.min] = minTemplate,
948
- _a$3[EDimensionAggregationTemplateName.max] = maxTemplate,
949
- _a$3[EDimensionAggregationTemplateName.sum] = sumTemplate,
950
- _a$3[EDimensionAggregationTemplateName.top] = topTemplate,
951
- _a$3[EDimensionAggregationTemplateName.firstValue] = firstValueTemplate,
952
- _a$3[EDimensionAggregationTemplateName.lastValue] = lastValueTemplate,
953
- _a$3[EDimensionAggregationTemplateName.countExecutions] = countExecutionsTemplate,
954
- _a$3[EDimensionAggregationTemplateName.countReworks] = countReworksTemplate,
955
- _a$3);
1012
+ var dimensionAggregationTemplates = (_a$4 = {},
1013
+ _a$4[EDimensionAggregationTemplateName.avg] = avgTemplate,
1014
+ _a$4[EDimensionAggregationTemplateName.median] = medianTemplate,
1015
+ _a$4[EDimensionAggregationTemplateName.count] = countTemplate,
1016
+ _a$4[EDimensionAggregationTemplateName.countDistinct] = countDistinctTemplate,
1017
+ _a$4[EDimensionAggregationTemplateName.min] = minTemplate,
1018
+ _a$4[EDimensionAggregationTemplateName.max] = maxTemplate,
1019
+ _a$4[EDimensionAggregationTemplateName.sum] = sumTemplate,
1020
+ _a$4[EDimensionAggregationTemplateName.top] = topTemplate,
1021
+ _a$4[EDimensionAggregationTemplateName.firstValue] = firstValueTemplate,
1022
+ _a$4[EDimensionAggregationTemplateName.lastValue] = lastValueTemplate,
1023
+ _a$4[EDimensionAggregationTemplateName.countExecutions] = countExecutionsTemplate,
1024
+ _a$4[EDimensionAggregationTemplateName.countReworks] = countReworksTemplate,
1025
+ _a$4);
956
1026
  /** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
957
1027
  var prepareDimensionAggregationParams = function (value) {
958
1028
  if (!value.eventName ||
@@ -966,7 +1036,6 @@ var prepareDimensionAggregationParams = function (value) {
966
1036
  eventNameFormula: value.eventNameFormula,
967
1037
  caseCaseIdFormula: value.caseCaseIdFormula,
968
1038
  eventName: value.eventName,
969
- objectFilters: "1",
970
1039
  filters: convertFiltersToFormula(value.filters),
971
1040
  eventTimeFormula: "",
972
1041
  columnFormula: "",
@@ -995,7 +1064,7 @@ var timeTemplates = (function () {
995
1064
  var generateTemplates = function (innerTemplate) {
996
1065
  var templates = {};
997
1066
  for (var key in dimensionTemplateFormulas) {
998
- templates[key] = fillTemplateString(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
1067
+ templates[key] = fillTemplateSql(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
999
1068
  }
1000
1069
  return templates;
1001
1070
  };
@@ -1024,7 +1093,7 @@ var prepareTimeParams = function (value) {
1024
1093
  };
1025
1094
 
1026
1095
  function getDimensionFormula(_a) {
1027
- var _b;
1096
+ var _b, _c;
1028
1097
  var value = _a.value;
1029
1098
  if (!value) {
1030
1099
  return "";
@@ -1038,10 +1107,13 @@ function getDimensionFormula(_a) {
1038
1107
  if (!templateFormula || !tableName || !columnName) {
1039
1108
  return "";
1040
1109
  }
1041
- return fillTemplateString(templateFormula, {
1110
+ return fillTemplateSql(templateFormula, {
1042
1111
  columnFormula: generateColumnFormula(tableName, columnName),
1043
1112
  });
1044
1113
  }
1114
+ return (_c = getProcessDimensionValueFormula(value)) !== null && _c !== void 0 ? _c : "";
1115
+ }
1116
+ function getProcessDimensionValueFormula(value) {
1045
1117
  if (value.mode === EWidgetIndicatorValueModes.AGGREGATION) {
1046
1118
  var preparedParams = prepareDimensionAggregationParams(value);
1047
1119
  if (!preparedParams) {
@@ -1051,10 +1123,10 @@ function getDimensionFormula(_a) {
1051
1123
  ? dimensionTemplateFormulas[value.innerTemplateName]
1052
1124
  : null;
1053
1125
  var columnFormula = innerTemplate
1054
- ? fillTemplateString(innerTemplate, { columnFormula: preparedParams.columnFormula })
1126
+ ? fillTemplateSql(innerTemplate, { columnFormula: preparedParams.columnFormula })
1055
1127
  : preparedParams.columnFormula;
1056
1128
  var dimensionAggregationTemplate = dimensionAggregationTemplates[value.templateName];
1057
- return fillTemplateString(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
1129
+ return fillTemplateSql(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
1058
1130
  }
1059
1131
  if (value.mode === EWidgetIndicatorValueModes.START_TIME ||
1060
1132
  value.mode === EWidgetIndicatorValueModes.END_TIME) {
@@ -1063,9 +1135,8 @@ function getDimensionFormula(_a) {
1063
1135
  return "";
1064
1136
  }
1065
1137
  var templateFormula = timeTemplates[value.mode][value.templateName];
1066
- return fillTemplateString(templateFormula, preparedParams);
1138
+ return fillTemplateSql(templateFormula, preparedParams);
1067
1139
  }
1068
- return "";
1069
1140
  }
1070
1141
 
1071
1142
  var EMeasureAggregationTemplateName;
@@ -1098,7 +1169,6 @@ var prepareMeasureAggregationParams = function (value) {
1098
1169
  eventNameFormula: value.eventNameFormula,
1099
1170
  caseCaseIdFormula: value.caseCaseIdFormula,
1100
1171
  eventName: value.eventName,
1101
- objectFilters: "1",
1102
1172
  filters: convertFiltersToFormula(value.filters),
1103
1173
  eventTimeFormula: "",
1104
1174
  columnFormula: "",
@@ -1119,7 +1189,7 @@ var prepareMeasureAggregationParams = function (value) {
1119
1189
  return columnParams;
1120
1190
  };
1121
1191
 
1122
- var _a$2;
1192
+ var _a$3;
1123
1193
  var EMeasureTemplateNames;
1124
1194
  (function (EMeasureTemplateNames) {
1125
1195
  EMeasureTemplateNames["avg"] = "avg";
@@ -1131,15 +1201,15 @@ var EMeasureTemplateNames;
1131
1201
  EMeasureTemplateNames["sum"] = "sum";
1132
1202
  })(EMeasureTemplateNames || (EMeasureTemplateNames = {}));
1133
1203
  /** Стандартные шаблоны меры */
1134
- var measureTemplateFormulas = (_a$2 = {},
1135
- _a$2[EMeasureTemplateNames.avg] = "avg({columnFormula})",
1136
- _a$2[EMeasureTemplateNames.count] = "count({columnFormula})",
1137
- _a$2[EMeasureTemplateNames.countDistinct] = "count(distinct {columnFormula})",
1138
- _a$2[EMeasureTemplateNames.median] = "medianExact({columnFormula})",
1139
- _a$2[EMeasureTemplateNames.min] = "min({columnFormula})",
1140
- _a$2[EMeasureTemplateNames.max] = "max({columnFormula})",
1141
- _a$2[EMeasureTemplateNames.sum] = "sum({columnFormula})",
1142
- _a$2);
1204
+ var measureTemplateFormulas = (_a$3 = {},
1205
+ _a$3[EMeasureTemplateNames.avg] = "avg({columnFormula})",
1206
+ _a$3[EMeasureTemplateNames.count] = "count({columnFormula})",
1207
+ _a$3[EMeasureTemplateNames.countDistinct] = "count(distinct {columnFormula})",
1208
+ _a$3[EMeasureTemplateNames.median] = "medianExact({columnFormula})",
1209
+ _a$3[EMeasureTemplateNames.min] = "min({columnFormula})",
1210
+ _a$3[EMeasureTemplateNames.max] = "max({columnFormula})",
1211
+ _a$3[EMeasureTemplateNames.sum] = "sum({columnFormula})",
1212
+ _a$3);
1143
1213
 
1144
1214
  /** Шаблон процессной метрики меры с режимом CONVERSION */
1145
1215
  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)";
@@ -1157,7 +1227,6 @@ var prepareConversionParams = function (value) {
1157
1227
  return null;
1158
1228
  }
1159
1229
  return {
1160
- objectFilters: "1",
1161
1230
  startEventTimeFormula: value.startEventTimeFormula,
1162
1231
  startEventNameFormula: value.startEventNameFormula,
1163
1232
  startEventFilters: convertFiltersToFormula(value.startEventFilters),
@@ -1196,7 +1265,6 @@ var prepareDurationParams = function (value) {
1196
1265
  return appearance === EEventAppearances.FIRST ? "minIf" : "maxIf";
1197
1266
  };
1198
1267
  return {
1199
- objectFilters: "1",
1200
1268
  startEventTimeFormula: value.startEventTimeFormula,
1201
1269
  startEventNameFormula: value.startEventNameFormula,
1202
1270
  startEventFilters: convertFiltersToFormula(value.startEventFilters),
@@ -1212,16 +1280,16 @@ var prepareDurationParams = function (value) {
1212
1280
  };
1213
1281
 
1214
1282
  function createAnyEventTemplate(aggregatePart) {
1215
- return "{outerAggregation}If(process(".concat(aggregatePart, ", {caseCaseIdFormula}), {objectFilters})");
1283
+ return "{outerAggregation}(process(".concat(aggregatePart, ", {caseCaseIdFormula}))");
1216
1284
  }
1217
1285
  function createSpecificEventTemplate(fn, additionalFn) {
1218
- return "{outerAggregation}If(process(".concat(fn, "(").concat(additionalFn ? "".concat(additionalFn, " ") : "", "{columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})");
1286
+ return "{outerAggregation}(process(".concat(fn, "(").concat(additionalFn ? "".concat(additionalFn, " ") : "", "{columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}))");
1219
1287
  }
1220
1288
  function createTopLikeTemplate(template) {
1221
1289
  return function (outerAggregation) {
1222
1290
  return outerAggregation === EOuterAggregation.top
1223
- ? "{outerAggregation}KIf(1)(".concat(template, ", {objectFilters})[1]")
1224
- : "{outerAggregation}If(".concat(template, ", {objectFilters})");
1291
+ ? "{outerAggregation}K(1)(".concat(template, ")[1]")
1292
+ : "{outerAggregation}(".concat(template, ")");
1225
1293
  };
1226
1294
  }
1227
1295
  function createAggregationTemplate(templateName, _a) {
@@ -1268,9 +1336,9 @@ function createAggregationTemplate(templateName, _a) {
1268
1336
  ? createAnyEventTemplate("argMax({columnFormula}, {eventTimeFormula})")
1269
1337
  : createTopLikeTemplate(lastValueTemplate)(outerAggregation);
1270
1338
  case EMeasureAggregationTemplateName.countExecutions:
1271
- return "{outerAggregation}If(".concat(countExecutionsTemplate, ", {objectFilters})");
1339
+ return "{outerAggregation}(".concat(countExecutionsTemplate, ")");
1272
1340
  case EMeasureAggregationTemplateName.countReworks:
1273
- return "{outerAggregation}If(".concat(countReworksTemplate, ", {objectFilters})");
1341
+ return "{outerAggregation}(".concat(countReworksTemplate, ")");
1274
1342
  }
1275
1343
  }
1276
1344
 
@@ -1289,14 +1357,14 @@ function getMeasureFormula(_a) {
1289
1357
  if (!templateFormula || !tableName || !columnName) {
1290
1358
  return "";
1291
1359
  }
1292
- return fillTemplateString(templateFormula, {
1360
+ return fillTemplateSql(templateFormula, {
1293
1361
  columnFormula: generateColumnFormula(tableName, columnName),
1294
1362
  });
1295
1363
  }
1296
1364
  if (value.mode === EWidgetIndicatorValueModes.AGGREGATION) {
1297
1365
  var preparedParams = prepareMeasureAggregationParams(value);
1298
1366
  return preparedParams
1299
- ? fillTemplateString(createAggregationTemplate(value.templateName, {
1367
+ ? fillTemplateSql(createAggregationTemplate(value.templateName, {
1300
1368
  outerAggregation: preparedParams.outerAggregation,
1301
1369
  anyEvent: value.anyEvent,
1302
1370
  }), preparedParams)
@@ -1307,28 +1375,28 @@ function getMeasureFormula(_a) {
1307
1375
  if (!preparedParams) {
1308
1376
  return "";
1309
1377
  }
1310
- return fillTemplateString(conversionTemplate, preparedParams);
1378
+ return fillTemplateSql(conversionTemplate, preparedParams);
1311
1379
  }
1312
1380
  if (value.mode === EWidgetIndicatorValueModes.DURATION) {
1313
1381
  var preparedParams = prepareDurationParams(value);
1314
1382
  if (!preparedParams) {
1315
1383
  return "";
1316
1384
  }
1317
- return fillTemplateString(durationTemplates[value.templateName], preparedParams);
1385
+ return fillTemplateSql(durationTemplates[value.templateName], preparedParams);
1318
1386
  }
1319
1387
  return "";
1320
1388
  }
1321
1389
 
1322
- var _a$1;
1390
+ var _a$2;
1323
1391
  var EEventMeasureTemplateNames;
1324
1392
  (function (EEventMeasureTemplateNames) {
1325
1393
  EEventMeasureTemplateNames["eventsCount"] = "eventsCount";
1326
1394
  EEventMeasureTemplateNames["reworksCount"] = "reworksCount";
1327
1395
  })(EEventMeasureTemplateNames || (EEventMeasureTemplateNames = {}));
1328
- var eventMeasureTemplateFormulas = (_a$1 = {},
1329
- _a$1[EEventMeasureTemplateNames.eventsCount] = "count()",
1330
- _a$1[EEventMeasureTemplateNames.reworksCount] = "count() - uniqExact({caseCaseIdFormula})",
1331
- _a$1);
1396
+ var eventMeasureTemplateFormulas = (_a$2 = {},
1397
+ _a$2[EEventMeasureTemplateNames.eventsCount] = "count()",
1398
+ _a$2[EEventMeasureTemplateNames.reworksCount] = "count() - uniqExact({caseCaseIdFormula})",
1399
+ _a$2);
1332
1400
 
1333
1401
  function getEventMeasureFormula(_a, process) {
1334
1402
  var value = _a.value;
@@ -1340,21 +1408,21 @@ function getEventMeasureFormula(_a, process) {
1340
1408
  }
1341
1409
  if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
1342
1410
  var templateFormula = eventMeasureTemplateFormulas[value.templateName];
1343
- return templateFormula && fillTemplateString(templateFormula, process);
1411
+ return templateFormula && fillTemplateSql(templateFormula, process);
1344
1412
  }
1345
1413
  return "";
1346
1414
  }
1347
1415
 
1348
- var _a;
1416
+ var _a$1;
1349
1417
  var ETransitionMeasureTemplateNames;
1350
1418
  (function (ETransitionMeasureTemplateNames) {
1351
1419
  ETransitionMeasureTemplateNames["transitionsCount"] = "transitionsCount";
1352
1420
  ETransitionMeasureTemplateNames["medianTime"] = "medianTime";
1353
1421
  })(ETransitionMeasureTemplateNames || (ETransitionMeasureTemplateNames = {}));
1354
- var transitionMeasureTemplateFormulas = (_a = {},
1355
- _a[ETransitionMeasureTemplateNames.transitionsCount] = "count()",
1356
- _a[ETransitionMeasureTemplateNames.medianTime] = "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))",
1357
- _a);
1422
+ var transitionMeasureTemplateFormulas = (_a$1 = {},
1423
+ _a$1[ETransitionMeasureTemplateNames.transitionsCount] = "count()",
1424
+ _a$1[ETransitionMeasureTemplateNames.medianTime] = "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))",
1425
+ _a$1);
1358
1426
 
1359
1427
  function getTransitionMeasureFormula(_a, process) {
1360
1428
  var value = _a.value;
@@ -1366,7 +1434,7 @@ function getTransitionMeasureFormula(_a, process) {
1366
1434
  }
1367
1435
  if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
1368
1436
  var templateFormula = transitionMeasureTemplateFormulas[value.templateName];
1369
- return templateFormula && fillTemplateString(templateFormula, process);
1437
+ return templateFormula && fillTemplateSql(templateFormula, process);
1370
1438
  }
1371
1439
  return "";
1372
1440
  }
@@ -1376,8 +1444,6 @@ var EWidgetFilterMode;
1376
1444
  (function (EWidgetFilterMode) {
1377
1445
  EWidgetFilterMode["DEFAULT"] = "DEFAULT";
1378
1446
  EWidgetFilterMode["SINGLE"] = "SINGLE";
1379
- /** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
1380
- EWidgetFilterMode["MULTI"] = "MULTI";
1381
1447
  EWidgetFilterMode["DISABLED"] = "DISABLED";
1382
1448
  })(EWidgetFilterMode || (EWidgetFilterMode = {}));
1383
1449
  var EMarkdownDisplayMode;
@@ -1560,7 +1626,7 @@ var mapFormulaFilterToCalculatorInput = function (filterValue) {
1560
1626
  if (!isFormulaFilterValue(filterValue)) {
1561
1627
  return {
1562
1628
  dbDataType: EClickHouseBaseTypes.Bool,
1563
- formula: fillTemplateString(displayConditionTemplate, {
1629
+ formula: fillTemplateSql(displayConditionTemplate, {
1564
1630
  formula: prepareFormulaForSql(filterValue.formula),
1565
1631
  }),
1566
1632
  values: ["true"],
@@ -1595,6 +1661,46 @@ var mapFormulaFiltersToInputs = function (filters) {
1595
1661
  return compactMap(filters, mapFormulaFilterToCalculatorInput);
1596
1662
  };
1597
1663
 
1664
+ var _a;
1665
+ var intervalByUnit = (_a = {},
1666
+ _a[EDimensionProcessFilterTimeUnit.YEARS] = "year",
1667
+ _a[EDimensionProcessFilterTimeUnit.MONTHS] = "month",
1668
+ _a[EDimensionProcessFilterTimeUnit.DAYS] = "day",
1669
+ _a[EDimensionProcessFilterTimeUnit.HOURS] = "hour",
1670
+ _a[EDimensionProcessFilterTimeUnit.MINUTES] = "minute",
1671
+ _a);
1672
+ function mapDimensionProcessFilterToCalculatorInput(filter) {
1673
+ var formula = filter.value.mode === EWidgetIndicatorValueModes.FORMULA
1674
+ ? filter.value.formula
1675
+ : getProcessDimensionValueFormula(filter.value);
1676
+ if (formula === undefined) {
1677
+ throw new Error("Formula generation error");
1678
+ }
1679
+ var _a = filter.condition, timeUnit = _a.timeUnit, filteringMethod = _a.filteringMethod, values = _a.values;
1680
+ if (filteringMethod === "LAST_TIME") {
1681
+ if (!timeUnit) {
1682
+ throw new Error("Missing time unit");
1683
+ }
1684
+ return {
1685
+ dbDataType: EClickHouseBaseTypes.Bool,
1686
+ formula: "date_diff('".concat(intervalByUnit[timeUnit], "', ").concat(formula, ", now())"),
1687
+ values: values,
1688
+ filteringMethod: formulaFilterMethods.LESS_THAN_OR_EQUAL_TO,
1689
+ };
1690
+ }
1691
+ return { formula: formula, filteringMethod: filteringMethod, values: values, dbDataType: filter.dbDataType };
1692
+ }
1693
+
1694
+ var mapSettingsFilterToCalculatorInput = function (filter) {
1695
+ if (isDimensionProcessFilter(filter)) {
1696
+ return mapDimensionProcessFilterToCalculatorInput(filter);
1697
+ }
1698
+ return mapFormulaFilterToCalculatorInput(filter);
1699
+ };
1700
+ var mapSettingsFiltersToInputs = function (filters) {
1701
+ return compactMap(filters, mapSettingsFilterToCalculatorInput);
1702
+ };
1703
+
1598
1704
  function mapMeasureToInput(measure, variables, addFormulas) {
1599
1705
  if (addFormulas === void 0) { addFormulas = function () { return new Map(); }; }
1600
1706
  var mainFormula = getMeasureFormula(measure);
@@ -1736,7 +1842,8 @@ var getDefaultSortOrders = function (_a) {
1736
1842
  }
1737
1843
  /** Если есть временной разрез, то авто-сортировка по первому такому разрезу (по возрастанию) */
1738
1844
  var timeDimension = dimensions.find(function (dimension) {
1739
- return dimension.format &&
1845
+ var _a;
1846
+ return ((_a = dimension.format) === null || _a === void 0 ? void 0 : _a.value) &&
1740
1847
  [
1741
1848
  EFormatTypes.DATE,
1742
1849
  EFormatTypes.MONTH,
@@ -1749,7 +1856,7 @@ var getDefaultSortOrders = function (_a) {
1749
1856
  EFormatTypes.QUARTER_YEAR,
1750
1857
  EFormatTypes.DAY_OF_MONTH,
1751
1858
  EFormatTypes.WEEK,
1752
- ].includes(dimension.format);
1859
+ ].includes(dimension.format.value);
1753
1860
  });
1754
1861
  if (timeDimension) {
1755
1862
  return [
@@ -1853,6 +1960,8 @@ var EControlType;
1853
1960
  (function (EControlType) {
1854
1961
  /** Ввод текста */
1855
1962
  EControlType["input"] = "input";
1963
+ /** Ввод текста с поддержкой шаблонной вставки сущностей */
1964
+ EControlType["inputTemplate"] = "inputTemplate";
1856
1965
  /** Ввод текста в формате markdown */
1857
1966
  EControlType["inputMarkdown"] = "inputMarkdown";
1858
1967
  /** Ввод числа */
@@ -1966,19 +2075,6 @@ var updateSingleModeSelection = function (selection, formula, value) {
1966
2075
  replacedFilter: null,
1967
2076
  });
1968
2077
  };
1969
- /** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
1970
- var updateMultiModeSelection = function (selection, formula, value) {
1971
- var _a;
1972
- var selectionItemValues = getSelectionItemValues(value, EWidgetFilterMode.MULTI, (_a = selection.get(formula)) === null || _a === void 0 ? void 0 : _a.values);
1973
- if (!selectionItemValues.size) {
1974
- selection.delete(formula);
1975
- return;
1976
- }
1977
- selection.set(formula, {
1978
- values: selectionItemValues,
1979
- replacedFilter: null,
1980
- });
1981
- };
1982
2078
  var replaceFiltersBySelection = function (filters, selection) {
1983
2079
  return filters.reduce(function (acc, filter) {
1984
2080
  var _a;
@@ -2099,4 +2195,4 @@ var getColorByIndex = function (index) {
2099
2195
  return color;
2100
2196
  };
2101
2197
 
2102
- export { EActionButtonsTypes, EActionTypes, EActivateConditionMode, EAutoUpdateMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, EDataModelOption, EDimensionAggregationTemplateName, EDimensionTemplateNames, EDisplayConditionMode, EDrawerPlacement, EDurationTemplateName, EDurationUnit, EEventAppearances, EEventMeasureTemplateNames, EFontWeight, EFormatTypes, EFormattingPresets, EFormulaFilterFieldKeys, EIndicatorType, ELastTimeUnit, EMarkdownDisplayMode, EMeasureAggregationTemplateName, EMeasureTemplateNames, EOuterAggregation, EProcessFilterNames, ESelectOptionTypes, ESimpleDataType, ESimpleInputType, ESortDirection, ESortingValueModes, ESystemRecordKey, ETransitionMeasureTemplateNames, EUnitMode, EViewMode, EViewOpenIn, EWidgetActionInputMethod, EWidgetFilterMode, EWidgetIndicatorType, EWidgetIndicatorValueModes, 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, updateMultiModeSelection, updateSingleModeSelection, workspaceLinkRegExp };
2198
+ export { EActionButtonsTypes, EActionTypes, EActivateConditionMode, EAutoUpdateMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, EDataModelOption, EDimensionAggregationTemplateName, EDimensionProcessFilterTimeUnit, EDimensionTemplateNames, EDisplayConditionMode, EDrawerPlacement, EDurationTemplateName, EDurationUnit, EEventAppearances, EEventMeasureTemplateNames, EFontWeight, EFormatOrFormattingMode, EFormatTypes, EFormattingPresets, EFormulaFilterFieldKeys, EIndicatorType, ELastTimeUnit, EMarkdownDisplayMode, EMeasureAggregationTemplateName, EMeasureTemplateNames, EOuterAggregation, EProcessFilterNames, ESelectOptionTypes, ESimpleDataType, ESimpleInputType, ESortDirection, ESortingValueModes, ESystemRecordKey, ETransitionMeasureTemplateNames, EUnitMode, EViewMode, EViewOpenIn, EWidgetActionInputMethod, EWidgetFilterMode, EWidgetIndicatorType, EWidgetIndicatorValueModes, 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, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareConversionParams, prepareDimensionAggregationParams, prepareDurationParams, prepareFormulaForSql, prepareMeasureAggregationParams, prepareSortOrders, prepareTimeParams, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, timeTemplates, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateSingleModeSelection, workspaceLinkRegExp };