@infomaximum/widget-sdk 5.3.0 → 5.4.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.js CHANGED
@@ -72,13 +72,13 @@ var prepareValuesForSql = function (simpleType, values) {
72
72
  simpleType === exports.ESimpleDataType.BOOLEAN
73
73
  ? values
74
74
  : values.map(function (value) {
75
- return value === null ? null : "'".concat(escapeSingularQuotes(escapeReverseSlash(value)), "'");
75
+ return value === null ? null : "'".concat(escapeSingularQuotes$1(escapeReverseSlash(value)), "'");
76
76
  });
77
77
  };
78
78
  var escapeReverseSlash = function (formula) {
79
79
  return formula.replaceAll(/\\/gm, "\\\\");
80
80
  };
81
- var escapeSingularQuotes = function (formula) {
81
+ var escapeSingularQuotes$1 = function (formula) {
82
82
  return formula.replaceAll("'", "\\'");
83
83
  };
84
84
 
@@ -800,6 +800,16 @@ exports.EWidgetIndicatorType = void 0;
800
800
  EWidgetIndicatorType["DIMENSION"] = "DIMENSION";
801
801
  EWidgetIndicatorType["SORTING"] = "SORTING";
802
802
  })(exports.EWidgetIndicatorType || (exports.EWidgetIndicatorType = {}));
803
+ exports.EOuterAggregation = void 0;
804
+ (function (EOuterAggregation) {
805
+ EOuterAggregation["avg"] = "avg";
806
+ EOuterAggregation["median"] = "median";
807
+ EOuterAggregation["count"] = "count";
808
+ EOuterAggregation["countDistinct"] = "countDistinct";
809
+ EOuterAggregation["min"] = "min";
810
+ EOuterAggregation["max"] = "max";
811
+ EOuterAggregation["sum"] = "sum";
812
+ })(exports.EOuterAggregation || (exports.EOuterAggregation = {}));
803
813
  /** Режимы значения показателя (на основе чего генерируется формула) */
804
814
  exports.EWidgetIndicatorValueModes = void 0;
805
815
  (function (EWidgetIndicatorValueModes) {
@@ -807,6 +817,9 @@ exports.EWidgetIndicatorValueModes = void 0;
807
817
  EWidgetIndicatorValueModes["FORMULA"] = "FORMULA";
808
818
  /** Шаблон формулы, предоставляемый системой */
809
819
  EWidgetIndicatorValueModes["TEMPLATE"] = "TEMPLATE";
820
+ EWidgetIndicatorValueModes["AGGREGATION"] = "AGGREGATION";
821
+ EWidgetIndicatorValueModes["DURATION"] = "DURATION";
822
+ EWidgetIndicatorValueModes["CONVERSION"] = "CONVERSION";
810
823
  })(exports.EWidgetIndicatorValueModes || (exports.EWidgetIndicatorValueModes = {}));
811
824
  /** Режимы сортировки (на что ссылается сортировка) */
812
825
  exports.ESortingValueModes = void 0;
@@ -855,8 +868,28 @@ exports.ESimpleInputType = void 0;
855
868
  function isDimensionsHierarchy(indicator) {
856
869
  return "hierarchyDimensions" in indicator;
857
870
  }
871
+ exports.OuterAggregation = void 0;
872
+ (function (OuterAggregation) {
873
+ OuterAggregation["avg"] = "avgIf";
874
+ OuterAggregation["median"] = "medianIf";
875
+ OuterAggregation["count"] = "countIf";
876
+ OuterAggregation["countDistinct"] = "countIfDistinct";
877
+ OuterAggregation["min"] = "minIf";
878
+ OuterAggregation["max"] = "maxIf";
879
+ OuterAggregation["sum"] = "sumIf";
880
+ })(exports.OuterAggregation || (exports.OuterAggregation = {}));
881
+ exports.EDurationTemplateName = void 0;
882
+ (function (EDurationTemplateName) {
883
+ EDurationTemplateName["avg"] = "avg";
884
+ EDurationTemplateName["median"] = "median";
885
+ })(exports.EDurationTemplateName || (exports.EDurationTemplateName = {}));
886
+ exports.EEventAppearances = void 0;
887
+ (function (EEventAppearances) {
888
+ EEventAppearances["FIRST"] = "FIRST";
889
+ EEventAppearances["LAST"] = "LAST";
890
+ })(exports.EEventAppearances || (exports.EEventAppearances = {}));
858
891
 
859
- var _a$3;
892
+ var _a$4;
860
893
  exports.EDimensionTemplateNames = void 0;
861
894
  (function (EDimensionTemplateNames) {
862
895
  EDimensionTemplateNames["dateTime"] = "dateTime";
@@ -871,19 +904,19 @@ exports.EDimensionTemplateNames = void 0;
871
904
  EDimensionTemplateNames["dayOfWeek"] = "dayOfWeek";
872
905
  EDimensionTemplateNames["hour"] = "hour";
873
906
  })(exports.EDimensionTemplateNames || (exports.EDimensionTemplateNames = {}));
874
- var dimensionTemplateFormulas = (_a$3 = {},
875
- _a$3[exports.EDimensionTemplateNames.dateTime] = "toDateTime({columnFormula})",
876
- _a$3[exports.EDimensionTemplateNames.date] = "toDate({columnFormula})",
877
- _a$3[exports.EDimensionTemplateNames.year] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}))",
878
- _a$3[exports.EDimensionTemplateNames.yearAndQuarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}) * 10 + toQuarter({columnFormula}))",
879
- _a$3[exports.EDimensionTemplateNames.quarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toQuarter({columnFormula}))",
880
- _a$3[exports.EDimensionTemplateNames.yearAndMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYYYYMM({columnFormula}))",
881
- _a$3[exports.EDimensionTemplateNames.month] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toMonth({columnFormula}))",
882
- _a$3[exports.EDimensionTemplateNames.dayOfMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfMonth({columnFormula}))",
883
- _a$3[exports.EDimensionTemplateNames.week] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toWeek({columnFormula}))",
884
- _a$3[exports.EDimensionTemplateNames.dayOfWeek] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfWeek({columnFormula}))",
885
- _a$3[exports.EDimensionTemplateNames.hour] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toHour({columnFormula}))",
886
- _a$3);
907
+ var dimensionTemplateFormulas = (_a$4 = {},
908
+ _a$4[exports.EDimensionTemplateNames.dateTime] = "toDateTime({columnFormula})",
909
+ _a$4[exports.EDimensionTemplateNames.date] = "toDate({columnFormula})",
910
+ _a$4[exports.EDimensionTemplateNames.year] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}))",
911
+ _a$4[exports.EDimensionTemplateNames.yearAndQuarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}) * 10 + toQuarter({columnFormula}))",
912
+ _a$4[exports.EDimensionTemplateNames.quarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toQuarter({columnFormula}))",
913
+ _a$4[exports.EDimensionTemplateNames.yearAndMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYYYYMM({columnFormula}))",
914
+ _a$4[exports.EDimensionTemplateNames.month] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toMonth({columnFormula}))",
915
+ _a$4[exports.EDimensionTemplateNames.dayOfMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfMonth({columnFormula}))",
916
+ _a$4[exports.EDimensionTemplateNames.week] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toWeek({columnFormula}))",
917
+ _a$4[exports.EDimensionTemplateNames.dayOfWeek] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfWeek({columnFormula}))",
918
+ _a$4[exports.EDimensionTemplateNames.hour] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toHour({columnFormula}))",
919
+ _a$4);
887
920
  function getDimensionFormula(_a) {
888
921
  var _b;
889
922
  var value = _a.value;
@@ -906,6 +939,135 @@ function getDimensionFormula(_a) {
906
939
  return "";
907
940
  }
908
941
 
942
+ var _a$3, _b;
943
+ exports.EMeasureAggregationTemplateName = void 0;
944
+ (function (EMeasureAggregationTemplateName) {
945
+ EMeasureAggregationTemplateName["agvIf"] = "agvIf";
946
+ EMeasureAggregationTemplateName["medianIf"] = "medianIf";
947
+ EMeasureAggregationTemplateName["countIf"] = "countIf";
948
+ EMeasureAggregationTemplateName["countIfDistinct"] = "countIfDistinct";
949
+ EMeasureAggregationTemplateName["minIf"] = "minIf";
950
+ EMeasureAggregationTemplateName["maxIf"] = "maxIf";
951
+ EMeasureAggregationTemplateName["sumIf"] = "sumIf";
952
+ EMeasureAggregationTemplateName["top"] = "top";
953
+ EMeasureAggregationTemplateName["firstValue"] = "firstValue";
954
+ EMeasureAggregationTemplateName["lastValue"] = "lastValue";
955
+ EMeasureAggregationTemplateName["countExecutions"] = "countExecutions";
956
+ EMeasureAggregationTemplateName["countReworks"] = "countReworks";
957
+ })(exports.EMeasureAggregationTemplateName || (exports.EMeasureAggregationTemplateName = {}));
958
+ 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) * 100 / countIf(\n process(\n countIf(\n {startEventNameFormula} = '{startEventName}'{startEventFilters}\n ) != 0, \n {endCaseCaseIdFormula}\n ) != 0\n)";
959
+ var durationTemplate = "\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";
960
+ var durationTemplates = (_a$3 = {},
961
+ _a$3[exports.EDurationTemplateName.avg] = "avgIf(".concat(durationTemplate, ")"),
962
+ _a$3[exports.EDurationTemplateName.median] = "medianIf(".concat(durationTemplate, ")"),
963
+ _a$3);
964
+ var countReworksTemplate = "{outerAggregation}If(process(if(countIf({eventNameFormula} = {eventName}) > 0, countIf({eventNameFormula} = {eventName}) - 1, 0), {caseIdFormula}),{objectFilters})";
965
+ var countExecutionsTemplate = "process(countIf({eventNameFormula} in '{eventName}'{filters}), {caseIdFormula}";
966
+ var measureAggregationTemplates = (_b = {},
967
+ _b[exports.EMeasureAggregationTemplateName.agvIf] = "{outerAggregation}If(process(avgIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseIdFormula}), {objectFilters})",
968
+ _b[exports.EMeasureAggregationTemplateName.medianIf] = "{outerAggregation}If(process(medianIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseIdFormula}), {objectFilters})",
969
+ _b[exports.EMeasureAggregationTemplateName.countIf] = "{outerAggregation}If(process(countIf({eventNameFormula} = '{eventName}'{filters}), {caseIdFormula}), {objectFilters})",
970
+ _b[exports.EMeasureAggregationTemplateName.countIfDistinct] = "{outerAggregation}If(process(countIf(distinct {columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseIdFormula}), {objectFilters})",
971
+ _b[exports.EMeasureAggregationTemplateName.minIf] = "{outerAggregation}If(process(minIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseIdFormula}), {objectFilters})",
972
+ _b[exports.EMeasureAggregationTemplateName.maxIf] = "{outerAggregation}If(process(maxIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseIdFormula}), {objectFilters})",
973
+ _b[exports.EMeasureAggregationTemplateName.sumIf] = "{outerAggregation}If(process(sumIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseIdFormula}), {objectFilters})",
974
+ _b[exports.EMeasureAggregationTemplateName.top] = "{outerAggregation}If(process(topKIf(1)({columnFormula}, {eventNameFormula} = '{eventName}'{filters})[1], {caseIdFormula}), {objectFilters})",
975
+ _b[exports.EMeasureAggregationTemplateName.firstValue] = "{outerAggregation}If(process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseIdFormula}), {objectFilters})",
976
+ _b[exports.EMeasureAggregationTemplateName.lastValue] = "{outerAggregation}If(process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseIdFormula}), {objectFilters})",
977
+ _b[exports.EMeasureAggregationTemplateName.countExecutions] = "{outerAggregation}If(".concat(countExecutionsTemplate, "),{objectFilters})"),
978
+ _b[exports.EMeasureAggregationTemplateName.countReworks] = countReworksTemplate,
979
+ _b);
980
+
981
+ var escapeSingularQuotes = function (formula) {
982
+ if (typeof formula !== "string") {
983
+ return formula;
984
+ }
985
+ return formula.replaceAll("'", "\\'");
986
+ };
987
+
988
+ var prepareFormulaForSql = function (formula, simpleType) {
989
+ formula = clearSingleLineComments(clearMultiLineComments(formula)).trim();
990
+ return simpleType === exports.ESimpleDataType.OTHER ? "toString(".concat(formula, ")") : formula;
991
+ };
992
+ var clearSingleLineComments = function (formula) {
993
+ return formula.replaceAll(/--.*$/gm, "");
994
+ };
995
+ var clearMultiLineComments = function (formula) {
996
+ return formula.replace(/\/\*[\s\S]*?\*\//g, "");
997
+ };
998
+
999
+ function isDateSimpleType(simpleType) {
1000
+ return [exports.ESimpleDataType.DATE, exports.ESimpleDataType.DATETIME, exports.ESimpleDataType.DATETIME64].includes(simpleType);
1001
+ }
1002
+ var castToDateValue = function (simpleType) { return function (value) {
1003
+ return simpleType === exports.ESimpleDataType.DATE ? "toDate('".concat(value, "')") : "toDateTime('".concat(value, "')");
1004
+ }; };
1005
+ var convertCalculatorFilterToFormula = function (calculatorFilter) {
1006
+ var filterValueFormula = calculatorFilter.formula, filteringMethod = calculatorFilter.filteringMethod, dbDataType = calculatorFilter.dbDataType, rawValues = calculatorFilter.values;
1007
+ var simpleType = parseClickHouseType(dbDataType).simpleType;
1008
+ var formula = prepareFormulaForSql(filterValueFormula, simpleType);
1009
+ var values = isDateSimpleType(simpleType)
1010
+ ? rawValues.map(castToDateValue(simpleType))
1011
+ : rawValues.map(function (value) {
1012
+ return simpleType === exports.ESimpleDataType.INTEGER ||
1013
+ simpleType === exports.ESimpleDataType.FLOAT ||
1014
+ value === null
1015
+ ? value
1016
+ : "'".concat(escapeSingularQuotes(value), "'");
1017
+ });
1018
+ switch (filteringMethod) {
1019
+ case formulaFilterMethods.EQUAL_TO:
1020
+ return "".concat(formula, " = ").concat(values[0]);
1021
+ case formulaFilterMethods.NOT_EQUAL_TO:
1022
+ return "".concat(formula, " != ").concat(values[0]);
1023
+ case formulaFilterMethods.GREATER_THAN:
1024
+ return "".concat(formula, " > ").concat(values[0]);
1025
+ case formulaFilterMethods.GREATER_THAN_OR_EQUAL_TO:
1026
+ return "".concat(formula, " >= ").concat(values[0]);
1027
+ case formulaFilterMethods.LESS_THAN:
1028
+ return "".concat(formula, " < ").concat(values[0]);
1029
+ case formulaFilterMethods.LESS_THAN_OR_EQUAL_TO:
1030
+ return "".concat(formula, " <= ").concat(values[0]);
1031
+ case formulaFilterMethods.STARTS_WITH:
1032
+ return "startsWith(".concat(formula, ", ").concat(values[0], ")");
1033
+ case formulaFilterMethods.ENDS_WITH:
1034
+ return "endsWith(".concat(formula, ", ").concat(values[0], ")");
1035
+ case formulaFilterMethods.CONTAINS:
1036
+ return "ilike(".concat(formula, ", ").concat(values[0], ")");
1037
+ case formulaFilterMethods.NOT_CONTAINS:
1038
+ return "not ilike(".concat(formula, ", ").concat(values[0], ")");
1039
+ case formulaFilterMethods.EMPTY:
1040
+ return "assumeNotNull(".concat(formula, ") = assumeNotNull(defaultValueOfArgumentType(").concat(formula, "))");
1041
+ case formulaFilterMethods.NONEMPTY:
1042
+ return "assumeNotNull(".concat(formula, ") != assumeNotNull(defaultValueOfArgumentType(").concat(formula, "))");
1043
+ case formulaFilterMethods.INCLUDE:
1044
+ return "".concat(formula, " IN [").concat(String(values), "]");
1045
+ case formulaFilterMethods.EXCLUDE:
1046
+ return "".concat(formula, " NOT IN [").concat(String(values), "]");
1047
+ case formulaFilterMethods.IN_RANGE:
1048
+ case formulaFilterMethods.LAST_TIME:
1049
+ return "".concat(formula, " BETWEEN ").concat(values[0], " AND ").concat(values[1]);
1050
+ case formulaFilterMethods.NOT_IN_RANGE:
1051
+ return "".concat(formula, " NOT BETWEEN ").concat(values[0], " AND ").concat(values[1]);
1052
+ }
1053
+ };
1054
+ function convertToFormula(filterValue) {
1055
+ var calculatorFilter = mapFormulaFilterToCalculatorInput(filterValue);
1056
+ if (!calculatorFilter) {
1057
+ return;
1058
+ }
1059
+ return convertCalculatorFilterToFormula(calculatorFilter);
1060
+ }
1061
+ var convertToFormulasChain = function (values) {
1062
+ return compactMap(values, function (value) {
1063
+ var formula = isFormulaFilterValue(value) ? convertToFormula(value) : value.formula;
1064
+ return formula && "(".concat(formula, ")");
1065
+ }).join(" AND ");
1066
+ };
1067
+ var convertFiltersToFormula = function (filters) {
1068
+ return filters.length > 0 ? " AND ".concat(convertToFormulasChain(filters)) : "";
1069
+ };
1070
+
909
1071
  var _a$2;
910
1072
  exports.EMeasureTemplateNames = void 0;
911
1073
  (function (EMeasureTemplateNames) {
@@ -926,6 +1088,95 @@ var measureTemplateFormulas = (_a$2 = {},
926
1088
  _a$2[exports.EMeasureTemplateNames.max] = "max({columnFormula})",
927
1089
  _a$2[exports.EMeasureTemplateNames.sum] = "sum({columnFormula})",
928
1090
  _a$2);
1091
+ var prepareAggregationParams = function (value) {
1092
+ if (!value.eventName ||
1093
+ !value.caseIdFormula ||
1094
+ !value.eventNameFormula ||
1095
+ !value.outerAggregation ||
1096
+ !value.processName ||
1097
+ !value.templateName) {
1098
+ return null;
1099
+ }
1100
+ var commonParams = {
1101
+ outerAggregation: value.outerAggregation,
1102
+ eventNameFormula: value.eventNameFormula,
1103
+ caseIdFormula: value.caseIdFormula,
1104
+ eventName: value.eventName,
1105
+ objectFilters: "1",
1106
+ filters: convertFiltersToFormula(value.filters),
1107
+ eventTimeFormula: "",
1108
+ columnFormula: "",
1109
+ };
1110
+ if (value.templateName === "countReworks" || value.templateName === "countExecutions") {
1111
+ return commonParams;
1112
+ }
1113
+ if (!value.tableName || !value.columnName) {
1114
+ return null;
1115
+ }
1116
+ var columnParams = __assign(__assign({}, commonParams), { columnFormula: generateColumnFormula(value.tableName, value.columnName) });
1117
+ if (value.templateName === "lastValue" || value.templateName === "firstValue") {
1118
+ if (!value.eventTimeFormula) {
1119
+ return null;
1120
+ }
1121
+ return __assign(__assign({}, columnParams), { eventTimeFormula: value.eventTimeFormula });
1122
+ }
1123
+ return columnParams;
1124
+ };
1125
+ var prepareConversionParams = function (value) {
1126
+ if (!value.startEventName ||
1127
+ !value.endEventName ||
1128
+ !value.endCaseCaseIdFormula ||
1129
+ !value.endEventNameFormula ||
1130
+ !value.endEventProcessName ||
1131
+ !value.endEventTimeFormula ||
1132
+ !value.startEventNameFormula ||
1133
+ !value.startEventProcessName ||
1134
+ !value.startEventTimeFormula) {
1135
+ return null;
1136
+ }
1137
+ return {
1138
+ objectFilters: "1",
1139
+ startEventTimeFormula: value.startEventTimeFormula,
1140
+ startEventNameFormula: value.startEventNameFormula,
1141
+ startEventFilters: convertFiltersToFormula(value.startEventFilters),
1142
+ startEventName: value.startEventName,
1143
+ endEventTimeFormula: value.endEventTimeFormula,
1144
+ endCaseCaseIdFormula: value.endCaseCaseIdFormula,
1145
+ endEventNameFormula: value.endEventNameFormula,
1146
+ endEventName: value.endEventName,
1147
+ endEventFilters: convertFiltersToFormula(value.endEventFilters),
1148
+ };
1149
+ };
1150
+ var prepareDurationParams = function (value) {
1151
+ if (!value.startEventName ||
1152
+ !value.endEventName ||
1153
+ !value.endCaseCaseIdFormula ||
1154
+ !value.endEventNameFormula ||
1155
+ !value.endEventProcessName ||
1156
+ !value.endEventTimeFormula ||
1157
+ !value.startEventNameFormula ||
1158
+ !value.startEventProcessName ||
1159
+ !value.startEventTimeFormula) {
1160
+ return null;
1161
+ }
1162
+ var getAggregationNameByAppearances = function (appearance) {
1163
+ return appearance === "FIRST" ? "minIf" : "maxIf";
1164
+ };
1165
+ return {
1166
+ objectFilters: "1",
1167
+ startEventTimeFormula: value.startEventTimeFormula,
1168
+ startEventNameFormula: value.startEventNameFormula,
1169
+ startEventFilters: convertFiltersToFormula(value.startEventFilters),
1170
+ startEventName: value.startEventName,
1171
+ startEventAggregationName: getAggregationNameByAppearances(value.startEventAppearances),
1172
+ endEventTimeFormula: value.endEventTimeFormula,
1173
+ endCaseCaseIdFormula: value.endCaseCaseIdFormula,
1174
+ endEventNameFormula: value.endEventNameFormula,
1175
+ endEventName: value.endEventName,
1176
+ endEventFilters: convertFiltersToFormula(value.endEventFilters),
1177
+ endEventAggregationName: getAggregationNameByAppearances(value.endEventAppearances),
1178
+ };
1179
+ };
929
1180
  function getMeasureFormula(_a) {
930
1181
  var _b;
931
1182
  var value = _a.value;
@@ -945,6 +1196,28 @@ function getMeasureFormula(_a) {
945
1196
  columnFormula: generateColumnFormula(tableName, columnName),
946
1197
  });
947
1198
  }
1199
+ if (value.mode === exports.EWidgetIndicatorValueModes.AGGREGATION) {
1200
+ var preparedParams = prepareAggregationParams(value);
1201
+ if (!preparedParams) {
1202
+ return "";
1203
+ }
1204
+ var templateFormula = measureAggregationTemplates[value.templateName];
1205
+ return fillTemplateString(templateFormula, preparedParams);
1206
+ }
1207
+ if (value.mode === exports.EWidgetIndicatorValueModes.CONVERSION) {
1208
+ var preparedParams = prepareConversionParams(value);
1209
+ if (!preparedParams) {
1210
+ return "";
1211
+ }
1212
+ return fillTemplateString(conversionTemplate, preparedParams);
1213
+ }
1214
+ if (value.mode === exports.EWidgetIndicatorValueModes.DURATION) {
1215
+ var preparedParams = prepareDurationParams(value);
1216
+ if (!preparedParams) {
1217
+ return "";
1218
+ }
1219
+ return fillTemplateString(conversionTemplate, preparedParams);
1220
+ }
948
1221
  return "";
949
1222
  }
950
1223
 
@@ -1520,9 +1793,17 @@ Object.defineProperty(exports, "EFilteringMethodValues", {
1520
1793
  exports.bindContentWithIndicator = bindContentWithIndicator;
1521
1794
  exports.bindContentsWithIndicators = bindContentsWithIndicators;
1522
1795
  exports.checkDisplayCondition = checkDisplayCondition;
1796
+ exports.clearMultiLineComments = clearMultiLineComments;
1797
+ exports.clearSingleLineComments = clearSingleLineComments;
1523
1798
  exports.colors = colors;
1799
+ exports.conversionTemplate = conversionTemplate;
1800
+ exports.convertFiltersToFormula = convertFiltersToFormula;
1801
+ exports.convertToFormulasChain = convertToFormulasChain;
1802
+ exports.countExecutionsTemplate = countExecutionsTemplate;
1803
+ exports.countReworksTemplate = countReworksTemplate;
1524
1804
  exports.dashboardLinkRegExp = dashboardLinkRegExp;
1525
1805
  exports.dimensionTemplateFormulas = dimensionTemplateFormulas;
1806
+ exports.durationTemplates = durationTemplates;
1526
1807
  exports.escapeSpecialCharacters = escapeSpecialCharacters;
1527
1808
  exports.eventMeasureTemplateFormulas = eventMeasureTemplateFormulas;
1528
1809
  exports.fillTemplateString = fillTemplateString;
@@ -1549,9 +1830,14 @@ exports.mapFormulaFiltersToInputs = mapFormulaFiltersToInputs;
1549
1830
  exports.mapMeasuresToInputs = mapMeasuresToInputs;
1550
1831
  exports.mapSortingToInputs = mapSortingToInputs;
1551
1832
  exports.mapTransitionMeasuresToInputs = mapTransitionMeasuresToInputs;
1833
+ exports.measureAggregationTemplates = measureAggregationTemplates;
1552
1834
  exports.measureTemplateFormulas = measureTemplateFormulas;
1553
1835
  exports.parseClickHouseType = parseClickHouseType;
1554
1836
  exports.parseIndicatorLink = parseIndicatorLink;
1837
+ exports.prepareAggregationParams = prepareAggregationParams;
1838
+ exports.prepareConversionParams = prepareConversionParams;
1839
+ exports.prepareDurationParams = prepareDurationParams;
1840
+ exports.prepareFormulaForSql = prepareFormulaForSql;
1555
1841
  exports.prepareSortOrders = prepareSortOrders;
1556
1842
  exports.prepareValuesForSql = prepareValuesForSql;
1557
1843
  exports.replaceDisplayCondition = replaceDisplayCondition;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infomaximum/widget-sdk",
3
- "version": "5.3.0",
3
+ "version": "5.4.2",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.esm.js",
6
6
  "types": "./dist/index.d.ts",