@infomaximum/widget-sdk 5.7.1 → 5.9.0

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
@@ -775,21 +775,35 @@ var replaceDisplayCondition = function (dimension, displayCondition) {
775
775
  return isNil(displayCondition) ? dimension : __assign(__assign({}, dimension), { displayCondition: displayCondition });
776
776
  };
777
777
 
778
- var escapeSpecialCharacters = function (formula) {
779
- return formula
780
- .replaceAll("\\", "\\\\")
781
- .replaceAll('"', '\\"')
782
- .replaceAll("`", "\\`");
783
- };
784
-
785
- function generateColumnFormula(tableName, columnName) {
786
- var preparedTableName = escapeSpecialCharacters(tableName);
787
- var preparedColumnName = escapeSpecialCharacters(columnName);
788
- return "\"".concat(preparedTableName, "\".\"").concat(preparedColumnName, "\"");
789
- }
790
- function fillTemplateString(templateString, params) {
791
- return templateString.replace(/\{(.*?)\}/g, function (_, key) { var _a; return (_a = params[key]) !== null && _a !== void 0 ? _a : ""; });
792
- }
778
+ var _a$5;
779
+ var EDimensionTemplateNames;
780
+ (function (EDimensionTemplateNames) {
781
+ EDimensionTemplateNames["dateTime"] = "dateTime";
782
+ EDimensionTemplateNames["date"] = "date";
783
+ EDimensionTemplateNames["year"] = "year";
784
+ EDimensionTemplateNames["yearAndQuarter"] = "yearAndQuarter";
785
+ EDimensionTemplateNames["quarter"] = "quarter";
786
+ EDimensionTemplateNames["yearAndMonth"] = "yearAndMonth";
787
+ EDimensionTemplateNames["dayOfMonth"] = "dayOfMonth";
788
+ EDimensionTemplateNames["month"] = "month";
789
+ EDimensionTemplateNames["week"] = "week";
790
+ EDimensionTemplateNames["dayOfWeek"] = "dayOfWeek";
791
+ EDimensionTemplateNames["hour"] = "hour";
792
+ })(EDimensionTemplateNames || (EDimensionTemplateNames = {}));
793
+ /** Стандартные шаблоны разреза */
794
+ var dimensionTemplateFormulas = (_a$5 = {},
795
+ _a$5[EDimensionTemplateNames.dateTime] = "toDateTime({columnFormula})",
796
+ _a$5[EDimensionTemplateNames.date] = "toDate({columnFormula})",
797
+ _a$5[EDimensionTemplateNames.year] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}))",
798
+ _a$5[EDimensionTemplateNames.yearAndQuarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}) * 10 + toQuarter({columnFormula}))",
799
+ _a$5[EDimensionTemplateNames.quarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toQuarter({columnFormula}))",
800
+ _a$5[EDimensionTemplateNames.yearAndMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYYYYMM({columnFormula}))",
801
+ _a$5[EDimensionTemplateNames.month] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toMonth({columnFormula}))",
802
+ _a$5[EDimensionTemplateNames.dayOfMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfMonth({columnFormula}))",
803
+ _a$5[EDimensionTemplateNames.week] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toWeek({columnFormula}))",
804
+ _a$5[EDimensionTemplateNames.dayOfWeek] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfWeek({columnFormula}))",
805
+ _a$5[EDimensionTemplateNames.hour] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toHour({columnFormula}))",
806
+ _a$5);
793
807
 
794
808
  var EWidgetIndicatorType;
795
809
  (function (EWidgetIndicatorType) {
@@ -819,6 +833,8 @@ var EWidgetIndicatorValueModes;
819
833
  EWidgetIndicatorValueModes["AGGREGATION"] = "AGGREGATION";
820
834
  EWidgetIndicatorValueModes["DURATION"] = "DURATION";
821
835
  EWidgetIndicatorValueModes["CONVERSION"] = "CONVERSION";
836
+ EWidgetIndicatorValueModes["START_TIME"] = "START_TIME";
837
+ EWidgetIndicatorValueModes["END_TIME"] = "END_TIME";
822
838
  })(EWidgetIndicatorValueModes || (EWidgetIndicatorValueModes = {}));
823
839
  /** Режимы сортировки (на что ссылается сортировка) */
824
840
  var ESortingValueModes;
@@ -888,94 +904,28 @@ var EEventAppearances;
888
904
  EEventAppearances["LAST"] = "LAST";
889
905
  })(EEventAppearances || (EEventAppearances = {}));
890
906
 
891
- var _a$4;
892
- var EDimensionTemplateNames;
893
- (function (EDimensionTemplateNames) {
894
- EDimensionTemplateNames["dateTime"] = "dateTime";
895
- EDimensionTemplateNames["date"] = "date";
896
- EDimensionTemplateNames["year"] = "year";
897
- EDimensionTemplateNames["yearAndQuarter"] = "yearAndQuarter";
898
- EDimensionTemplateNames["quarter"] = "quarter";
899
- EDimensionTemplateNames["yearAndMonth"] = "yearAndMonth";
900
- EDimensionTemplateNames["dayOfMonth"] = "dayOfMonth";
901
- EDimensionTemplateNames["month"] = "month";
902
- EDimensionTemplateNames["week"] = "week";
903
- EDimensionTemplateNames["dayOfWeek"] = "dayOfWeek";
904
- EDimensionTemplateNames["hour"] = "hour";
905
- })(EDimensionTemplateNames || (EDimensionTemplateNames = {}));
906
- var dimensionTemplateFormulas = (_a$4 = {},
907
- _a$4[EDimensionTemplateNames.dateTime] = "toDateTime({columnFormula})",
908
- _a$4[EDimensionTemplateNames.date] = "toDate({columnFormula})",
909
- _a$4[EDimensionTemplateNames.year] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}))",
910
- _a$4[EDimensionTemplateNames.yearAndQuarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}) * 10 + toQuarter({columnFormula}))",
911
- _a$4[EDimensionTemplateNames.quarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toQuarter({columnFormula}))",
912
- _a$4[EDimensionTemplateNames.yearAndMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYYYYMM({columnFormula}))",
913
- _a$4[EDimensionTemplateNames.month] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toMonth({columnFormula}))",
914
- _a$4[EDimensionTemplateNames.dayOfMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfMonth({columnFormula}))",
915
- _a$4[EDimensionTemplateNames.week] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toWeek({columnFormula}))",
916
- _a$4[EDimensionTemplateNames.dayOfWeek] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfWeek({columnFormula}))",
917
- _a$4[EDimensionTemplateNames.hour] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toHour({columnFormula}))",
918
- _a$4);
919
- function getDimensionFormula(_a) {
920
- var _b;
921
- var value = _a.value;
922
- if (!value) {
923
- return "";
924
- }
925
- if (value.mode === EWidgetIndicatorValueModes.FORMULA) {
926
- return (_b = value.formula) !== null && _b !== void 0 ? _b : "";
927
- }
928
- if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
929
- var templateName = value.templateName, tableName = value.tableName, columnName = value.columnName;
930
- var templateFormula = dimensionTemplateFormulas[templateName];
931
- if (!templateFormula || !tableName || !columnName) {
932
- return "";
933
- }
934
- return fillTemplateString(templateFormula, {
935
- columnFormula: generateColumnFormula(tableName, columnName),
936
- });
937
- }
938
- return "";
907
+ var countReworksTemplate = "process(if(countIf({eventNameFormula} = '{eventName}'{filters}) > 0, countIf({eventNameFormula} = '{eventName}'{filters}) - 1, 0), {caseCaseIdFormula})";
908
+ var countExecutionsTemplate = "process(countIf({eventNameFormula} in '{eventName}'{filters}), {caseCaseIdFormula})";
909
+ var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})";
910
+ var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})";
911
+ var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} = '{eventName}'{filters})[1], {caseCaseIdFormula})";
912
+
913
+ function fillTemplateString(templateString, params) {
914
+ return templateString.replace(/\{(.*?)\}/g, function (_, key) { var _a; return (_a = params[key]) !== null && _a !== void 0 ? _a : ""; });
939
915
  }
940
916
 
941
- var _a$3, _b;
942
- var EMeasureAggregationTemplateName;
943
- (function (EMeasureAggregationTemplateName) {
944
- EMeasureAggregationTemplateName["agvIf"] = "agvIf";
945
- EMeasureAggregationTemplateName["medianIf"] = "medianIf";
946
- EMeasureAggregationTemplateName["countIf"] = "countIf";
947
- EMeasureAggregationTemplateName["countIfDistinct"] = "countIfDistinct";
948
- EMeasureAggregationTemplateName["minIf"] = "minIf";
949
- EMeasureAggregationTemplateName["maxIf"] = "maxIf";
950
- EMeasureAggregationTemplateName["sumIf"] = "sumIf";
951
- EMeasureAggregationTemplateName["top"] = "top";
952
- EMeasureAggregationTemplateName["firstValue"] = "firstValue";
953
- EMeasureAggregationTemplateName["lastValue"] = "lastValue";
954
- EMeasureAggregationTemplateName["countExecutions"] = "countExecutions";
955
- EMeasureAggregationTemplateName["countReworks"] = "countReworks";
956
- })(EMeasureAggregationTemplateName || (EMeasureAggregationTemplateName = {}));
957
- 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)";
958
- 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";
959
- var durationTemplates = (_a$3 = {},
960
- _a$3[EDurationTemplateName.avg] = "avgIf(".concat(durationTemplate, ")"),
961
- _a$3[EDurationTemplateName.median] = "medianIf(".concat(durationTemplate, ")"),
962
- _a$3);
963
- var countReworksTemplate = "{outerAggregation}If(process(if(countIf({eventNameFormula} = '{eventName}'{filters}) > 0, countIf({eventNameFormula} = '{eventName}'{filters}) - 1, 0), {caseCaseIdFormula}),{objectFilters})";
964
- var countExecutionsTemplate = "process(countIf({eventNameFormula} in '{eventName}'{filters}), {caseCaseIdFormula})";
965
- var measureAggregationTemplates = (_b = {},
966
- _b[EMeasureAggregationTemplateName.agvIf] = "{outerAggregation}If(process(avgIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
967
- _b[EMeasureAggregationTemplateName.medianIf] = "{outerAggregation}If(process(medianIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
968
- _b[EMeasureAggregationTemplateName.countIf] = "{outerAggregation}If(process(countIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
969
- _b[EMeasureAggregationTemplateName.countIfDistinct] = "{outerAggregation}If(process(countIf(distinct {columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
970
- _b[EMeasureAggregationTemplateName.minIf] = "{outerAggregation}If(process(minIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
971
- _b[EMeasureAggregationTemplateName.maxIf] = "{outerAggregation}If(process(maxIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
972
- _b[EMeasureAggregationTemplateName.sumIf] = "{outerAggregation}If(process(sumIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
973
- _b[EMeasureAggregationTemplateName.top] = "{outerAggregation}If(process(topKIf(1)({columnFormula}, {eventNameFormula} = '{eventName}'{filters})[1], {caseCaseIdFormula}), {objectFilters})",
974
- _b[EMeasureAggregationTemplateName.firstValue] = "{outerAggregation}If(process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
975
- _b[EMeasureAggregationTemplateName.lastValue] = "{outerAggregation}If(process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
976
- _b[EMeasureAggregationTemplateName.countExecutions] = "{outerAggregation}If(".concat(countExecutionsTemplate, ",{objectFilters})"),
977
- _b[EMeasureAggregationTemplateName.countReworks] = countReworksTemplate,
978
- _b);
917
+ var escapeSpecialCharacters = function (formula) {
918
+ return formula
919
+ .replaceAll("\\", "\\\\")
920
+ .replaceAll('"', '\\"')
921
+ .replaceAll("`", "\\`");
922
+ };
923
+
924
+ function generateColumnFormula(tableName, columnName) {
925
+ var preparedTableName = escapeSpecialCharacters(tableName);
926
+ var preparedColumnName = escapeSpecialCharacters(columnName);
927
+ return "\"".concat(preparedTableName, "\".\"").concat(preparedColumnName, "\"");
928
+ }
979
929
 
980
930
  var escapeSingularQuotes = function (formula) {
981
931
  if (typeof formula !== "string") {
@@ -1067,27 +1017,171 @@ var convertFiltersToFormula = function (filters) {
1067
1017
  return filters.length > 0 ? " AND ".concat(convertToFormulasChain(filters)) : "";
1068
1018
  };
1069
1019
 
1070
- var _a$2;
1071
- var EMeasureTemplateNames;
1072
- (function (EMeasureTemplateNames) {
1073
- EMeasureTemplateNames["avg"] = "avg";
1074
- EMeasureTemplateNames["median"] = "median";
1075
- EMeasureTemplateNames["count"] = "count";
1076
- EMeasureTemplateNames["countDistinct"] = "countDistinct";
1077
- EMeasureTemplateNames["min"] = "min";
1078
- EMeasureTemplateNames["max"] = "max";
1079
- EMeasureTemplateNames["sum"] = "sum";
1080
- })(EMeasureTemplateNames || (EMeasureTemplateNames = {}));
1081
- var measureTemplateFormulas = (_a$2 = {},
1082
- _a$2[EMeasureTemplateNames.avg] = "avg({columnFormula})",
1083
- _a$2[EMeasureTemplateNames.count] = "count({columnFormula})",
1084
- _a$2[EMeasureTemplateNames.countDistinct] = "count(distinct {columnFormula})",
1085
- _a$2[EMeasureTemplateNames.median] = "medianExact({columnFormula})",
1086
- _a$2[EMeasureTemplateNames.min] = "min({columnFormula})",
1087
- _a$2[EMeasureTemplateNames.max] = "max({columnFormula})",
1088
- _a$2[EMeasureTemplateNames.sum] = "sum({columnFormula})",
1089
- _a$2);
1090
- var prepareAggregationParams = function (value) {
1020
+ var _a$4;
1021
+ var EDimensionAggregationTemplateName;
1022
+ (function (EDimensionAggregationTemplateName) {
1023
+ EDimensionAggregationTemplateName["top"] = "top";
1024
+ EDimensionAggregationTemplateName["firstValue"] = "firstValue";
1025
+ EDimensionAggregationTemplateName["lastValue"] = "lastValue";
1026
+ EDimensionAggregationTemplateName["countExecutions"] = "countExecutions";
1027
+ EDimensionAggregationTemplateName["countReworks"] = "countReworks";
1028
+ })(EDimensionAggregationTemplateName || (EDimensionAggregationTemplateName = {}));
1029
+ /** Шаблоны процессных метрик разреза с режимом AGGREGATION */
1030
+ var dimensionAggregationTemplates = (_a$4 = {},
1031
+ _a$4[EDimensionAggregationTemplateName.top] = topTemplate,
1032
+ _a$4[EDimensionAggregationTemplateName.firstValue] = firstValueTemplate,
1033
+ _a$4[EDimensionAggregationTemplateName.lastValue] = lastValueTemplate,
1034
+ _a$4[EDimensionAggregationTemplateName.countExecutions] = countExecutionsTemplate,
1035
+ _a$4[EDimensionAggregationTemplateName.countReworks] = countReworksTemplate,
1036
+ _a$4);
1037
+ /** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
1038
+ var prepareDimensionAggregationParams = function (value) {
1039
+ if (!value.eventName ||
1040
+ !value.caseCaseIdFormula ||
1041
+ !value.eventNameFormula ||
1042
+ !value.processName ||
1043
+ !value.templateName) {
1044
+ return null;
1045
+ }
1046
+ var commonParams = {
1047
+ eventNameFormula: value.eventNameFormula,
1048
+ caseCaseIdFormula: value.caseCaseIdFormula,
1049
+ eventName: value.eventName,
1050
+ objectFilters: "1",
1051
+ filters: convertFiltersToFormula(value.filters),
1052
+ eventTimeFormula: "",
1053
+ columnFormula: "",
1054
+ };
1055
+ if (value.templateName === EDimensionAggregationTemplateName.countReworks ||
1056
+ value.templateName === EDimensionAggregationTemplateName.countExecutions) {
1057
+ return commonParams;
1058
+ }
1059
+ if (!value.tableName || !value.columnName) {
1060
+ return null;
1061
+ }
1062
+ var columnParams = __assign(__assign(__assign({}, commonParams), (value.innerTemplateName && { innerTemplateName: value.innerTemplateName })), { columnFormula: generateColumnFormula(value.tableName, value.columnName) });
1063
+ if (value.templateName === EDimensionAggregationTemplateName.firstValue ||
1064
+ value.templateName === EDimensionAggregationTemplateName.lastValue) {
1065
+ if (!value.eventTimeFormula) {
1066
+ return null;
1067
+ }
1068
+ return __assign(__assign({}, columnParams), { eventTimeFormula: value.eventTimeFormula });
1069
+ }
1070
+ return columnParams;
1071
+ };
1072
+
1073
+ /** Шаблоны процессных метрик разреза с режимами START_TIME/END_TIME */
1074
+ var timeTemplates = (function () {
1075
+ var _a;
1076
+ var generateTemplates = function (innerTemplate) {
1077
+ var templates = {};
1078
+ for (var key in dimensionTemplateFormulas) {
1079
+ templates[key] = fillTemplateString(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
1080
+ }
1081
+ return templates;
1082
+ };
1083
+ return _a = {},
1084
+ _a[EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})"),
1085
+ _a[EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula})"),
1086
+ _a;
1087
+ })();
1088
+ /** На основе значения режимов START_TIME/END_TIME подготовить параметры для подстановки в шаблонную формулу */
1089
+ var prepareTimeParams = function (value) {
1090
+ if (!value.eventName ||
1091
+ !value.caseCaseIdFormula ||
1092
+ !value.eventNameFormula ||
1093
+ !value.processName ||
1094
+ !value.templateName ||
1095
+ !value.eventTimeFormula) {
1096
+ return;
1097
+ }
1098
+ return {
1099
+ eventTimeFormula: value.eventTimeFormula,
1100
+ eventNameFormula: value.eventNameFormula,
1101
+ caseCaseIdFormula: value.caseCaseIdFormula,
1102
+ filters: convertFiltersToFormula(value.filters),
1103
+ eventName: value.eventName,
1104
+ };
1105
+ };
1106
+
1107
+ function getDimensionFormula(_a) {
1108
+ var _b;
1109
+ var value = _a.value;
1110
+ if (!value) {
1111
+ return "";
1112
+ }
1113
+ if (value.mode === EWidgetIndicatorValueModes.FORMULA) {
1114
+ return (_b = value.formula) !== null && _b !== void 0 ? _b : "";
1115
+ }
1116
+ if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
1117
+ var templateName = value.templateName, tableName = value.tableName, columnName = value.columnName;
1118
+ var templateFormula = dimensionTemplateFormulas[templateName];
1119
+ if (!templateFormula || !tableName || !columnName) {
1120
+ return "";
1121
+ }
1122
+ return fillTemplateString(templateFormula, {
1123
+ columnFormula: generateColumnFormula(tableName, columnName),
1124
+ });
1125
+ }
1126
+ if (value.mode === EWidgetIndicatorValueModes.AGGREGATION) {
1127
+ var preparedParams = prepareDimensionAggregationParams(value);
1128
+ if (!preparedParams) {
1129
+ return "";
1130
+ }
1131
+ var innerTemplate = value.innerTemplateName
1132
+ ? dimensionTemplateFormulas[value.innerTemplateName]
1133
+ : null;
1134
+ var columnFormula = innerTemplate
1135
+ ? fillTemplateString(innerTemplate, { columnFormula: preparedParams.columnFormula })
1136
+ : preparedParams.columnFormula;
1137
+ var dimensionAggregationTemplate = dimensionAggregationTemplates[value.templateName];
1138
+ return fillTemplateString(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
1139
+ }
1140
+ if (value.mode === EWidgetIndicatorValueModes.START_TIME ||
1141
+ value.mode === EWidgetIndicatorValueModes.END_TIME) {
1142
+ var preparedParams = prepareTimeParams(value);
1143
+ if (!preparedParams) {
1144
+ return "";
1145
+ }
1146
+ var templateFormula = timeTemplates[value.mode][value.templateName];
1147
+ return fillTemplateString(templateFormula, preparedParams);
1148
+ }
1149
+ return "";
1150
+ }
1151
+
1152
+ var _a$3;
1153
+ var EMeasureAggregationTemplateName;
1154
+ (function (EMeasureAggregationTemplateName) {
1155
+ EMeasureAggregationTemplateName["agvIf"] = "agvIf";
1156
+ EMeasureAggregationTemplateName["medianIf"] = "medianIf";
1157
+ EMeasureAggregationTemplateName["countIf"] = "countIf";
1158
+ EMeasureAggregationTemplateName["countIfDistinct"] = "countIfDistinct";
1159
+ EMeasureAggregationTemplateName["minIf"] = "minIf";
1160
+ EMeasureAggregationTemplateName["maxIf"] = "maxIf";
1161
+ EMeasureAggregationTemplateName["sumIf"] = "sumIf";
1162
+ EMeasureAggregationTemplateName["top"] = "top";
1163
+ EMeasureAggregationTemplateName["firstValue"] = "firstValue";
1164
+ EMeasureAggregationTemplateName["lastValue"] = "lastValue";
1165
+ EMeasureAggregationTemplateName["countExecutions"] = "countExecutions";
1166
+ EMeasureAggregationTemplateName["countReworks"] = "countReworks";
1167
+ })(EMeasureAggregationTemplateName || (EMeasureAggregationTemplateName = {}));
1168
+ /** Шаблоны процессных метрик меры с режимом AGGREGATION */
1169
+ var measureAggregationTemplates = (_a$3 = {},
1170
+ _a$3[EMeasureAggregationTemplateName.agvIf] = "{outerAggregation}If(process(avgIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
1171
+ _a$3[EMeasureAggregationTemplateName.medianIf] = "{outerAggregation}If(process(medianIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
1172
+ _a$3[EMeasureAggregationTemplateName.countIf] = "{outerAggregation}If(process(countIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
1173
+ _a$3[EMeasureAggregationTemplateName.countIfDistinct] = "{outerAggregation}If(process(countIf(distinct {columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
1174
+ _a$3[EMeasureAggregationTemplateName.minIf] = "{outerAggregation}If(process(minIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
1175
+ _a$3[EMeasureAggregationTemplateName.maxIf] = "{outerAggregation}If(process(maxIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
1176
+ _a$3[EMeasureAggregationTemplateName.sumIf] = "{outerAggregation}If(process(sumIf({columnFormula}, {eventNameFormula} = '{eventName}'{filters}), {caseCaseIdFormula}), {objectFilters})",
1177
+ _a$3[EMeasureAggregationTemplateName.top] = "{outerAggregation}If(".concat(topTemplate, ", {objectFilters})"),
1178
+ _a$3[EMeasureAggregationTemplateName.firstValue] = "{outerAggregation}If(".concat(firstValueTemplate, ", {objectFilters})"),
1179
+ _a$3[EMeasureAggregationTemplateName.lastValue] = "{outerAggregation}If(".concat(lastValueTemplate, ", {objectFilters})"),
1180
+ _a$3[EMeasureAggregationTemplateName.countExecutions] = "{outerAggregation}If(".concat(countExecutionsTemplate, ",{objectFilters})"),
1181
+ _a$3[EMeasureAggregationTemplateName.countReworks] = "{outerAggregation}If(".concat(countReworksTemplate, ",{objectFilters})"),
1182
+ _a$3);
1183
+ /** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
1184
+ var prepareMeasureAggregationParams = function (value) {
1091
1185
  if (!value.eventName ||
1092
1186
  !value.caseCaseIdFormula ||
1093
1187
  !value.eventNameFormula ||
@@ -1121,6 +1215,32 @@ var prepareAggregationParams = function (value) {
1121
1215
  }
1122
1216
  return columnParams;
1123
1217
  };
1218
+
1219
+ var _a$2;
1220
+ var EMeasureTemplateNames;
1221
+ (function (EMeasureTemplateNames) {
1222
+ EMeasureTemplateNames["avg"] = "avg";
1223
+ EMeasureTemplateNames["median"] = "median";
1224
+ EMeasureTemplateNames["count"] = "count";
1225
+ EMeasureTemplateNames["countDistinct"] = "countDistinct";
1226
+ EMeasureTemplateNames["min"] = "min";
1227
+ EMeasureTemplateNames["max"] = "max";
1228
+ EMeasureTemplateNames["sum"] = "sum";
1229
+ })(EMeasureTemplateNames || (EMeasureTemplateNames = {}));
1230
+ /** Стандартные шаблоны меры */
1231
+ var measureTemplateFormulas = (_a$2 = {},
1232
+ _a$2[EMeasureTemplateNames.avg] = "avg({columnFormula})",
1233
+ _a$2[EMeasureTemplateNames.count] = "count({columnFormula})",
1234
+ _a$2[EMeasureTemplateNames.countDistinct] = "count(distinct {columnFormula})",
1235
+ _a$2[EMeasureTemplateNames.median] = "medianExact({columnFormula})",
1236
+ _a$2[EMeasureTemplateNames.min] = "min({columnFormula})",
1237
+ _a$2[EMeasureTemplateNames.max] = "max({columnFormula})",
1238
+ _a$2[EMeasureTemplateNames.sum] = "sum({columnFormula})",
1239
+ _a$2);
1240
+
1241
+ /** Шаблон процессной метрики меры с режимом CONVERSION */
1242
+ 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)";
1243
+ /** На основе значения режима CONVERSION подготовить параметры для подстановки в шаблонную формулу */
1124
1244
  var prepareConversionParams = function (value) {
1125
1245
  if (!value.startEventName ||
1126
1246
  !value.endEventName ||
@@ -1146,6 +1266,17 @@ var prepareConversionParams = function (value) {
1146
1266
  endEventFilters: convertFiltersToFormula(value.endEventFilters),
1147
1267
  };
1148
1268
  };
1269
+
1270
+ /** Шаблоны процессных метрик меры с режимом DURATION */
1271
+ var durationTemplates = (function () {
1272
+ var _a;
1273
+ 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 ";
1274
+ return _a = {},
1275
+ _a[EDurationTemplateName.avg] = "avgIf(".concat(innerTemplate, ")"),
1276
+ _a[EDurationTemplateName.median] = "medianIf(".concat(innerTemplate, ")"),
1277
+ _a;
1278
+ })();
1279
+ /** На основе значения режима DURATION подготовить параметры для подстановки в шаблонную формулу */
1149
1280
  var prepareDurationParams = function (value) {
1150
1281
  if (!value.startEventName ||
1151
1282
  !value.endEventName ||
@@ -1159,7 +1290,7 @@ var prepareDurationParams = function (value) {
1159
1290
  return null;
1160
1291
  }
1161
1292
  var getAggregationNameByAppearances = function (appearance) {
1162
- return appearance === "FIRST" ? "minIf" : "maxIf";
1293
+ return appearance === EEventAppearances.FIRST ? "minIf" : "maxIf";
1163
1294
  };
1164
1295
  return {
1165
1296
  objectFilters: "1",
@@ -1176,6 +1307,7 @@ var prepareDurationParams = function (value) {
1176
1307
  endEventAggregationName: getAggregationNameByAppearances(value.endEventAppearances),
1177
1308
  };
1178
1309
  };
1310
+
1179
1311
  function getMeasureFormula(_a) {
1180
1312
  var _b;
1181
1313
  var value = _a.value;
@@ -1196,7 +1328,7 @@ function getMeasureFormula(_a) {
1196
1328
  });
1197
1329
  }
1198
1330
  if (value.mode === EWidgetIndicatorValueModes.AGGREGATION) {
1199
- var preparedParams = prepareAggregationParams(value);
1331
+ var preparedParams = prepareMeasureAggregationParams(value);
1200
1332
  if (!preparedParams) {
1201
1333
  return "";
1202
1334
  }
@@ -1230,6 +1362,7 @@ var eventMeasureTemplateFormulas = (_a$1 = {},
1230
1362
  _a$1[EEventMeasureTemplateNames.eventsCount] = "count()",
1231
1363
  _a$1[EEventMeasureTemplateNames.reworksCount] = "count() - uniqExact({caseCaseIdFormula})",
1232
1364
  _a$1);
1365
+
1233
1366
  function getEventMeasureFormula(_a, process) {
1234
1367
  var value = _a.value;
1235
1368
  if (!value) {
@@ -1255,6 +1388,7 @@ var transitionMeasureTemplateFormulas = (_a = {},
1255
1388
  _a[ETransitionMeasureTemplateNames.transitionsCount] = "count()",
1256
1389
  _a[ETransitionMeasureTemplateNames.medianTime] = "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))",
1257
1390
  _a);
1391
+
1258
1392
  function getTransitionMeasureFormula(_a, process) {
1259
1393
  var value = _a.value;
1260
1394
  if (!value) {
@@ -1781,4 +1915,4 @@ var getColorByIndex = function (index) {
1781
1915
  return color;
1782
1916
  };
1783
1917
 
1784
- export { EActionButtonsTypes, EActionTypes, EBlockingConditionMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, 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, bindContentWithIndicator, bindContentsWithIndicators, checkDisplayCondition, clearMultiLineComments, clearSingleLineComments, colors, conversionTemplate, convertFiltersToFormula, convertToFormulasChain, countExecutionsTemplate, countReworksTemplate, dashboardLinkRegExp, dimensionTemplateFormulas, durationTemplates, escapeSpecialCharacters, eventMeasureTemplateFormulas, fillTemplateString, formattingConfig, formulaFilterMethods, generateColumnFormula, getColorByIndex, getDefaultSortOrders, getDimensionFormula, getDisplayConditionFormula, getEventMeasureFormula, getLocalizedText, getMeasureFormula, getRuleColor, getTransitionMeasureFormula, isDimensionsHierarchy, isFormulaFilterValue, isValidColor, linkNameRegExp, mapDimensionsToInputs, mapEventMeasuresToInputs, mapFormulaFilterToCalculatorInput, mapFormulaFiltersToInputs, mapMeasuresToInputs, mapSortingToInputs, mapTransitionMeasuresToInputs, measureAggregationTemplates, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareAggregationParams, prepareConversionParams, prepareDurationParams, prepareFormulaForSql, prepareSortOrders, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateMultiModeSelection, updateSingleModeSelection, workspaceLinkRegExp };
1918
+ export { EActionButtonsTypes, EActionTypes, EBlockingConditionMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, 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, bindContentWithIndicator, bindContentsWithIndicators, checkDisplayCondition, clearMultiLineComments, clearSingleLineComments, colors, conversionTemplate, convertFiltersToFormula, convertToFormulasChain, countExecutionsTemplate, dashboardLinkRegExp, dimensionAggregationTemplates, dimensionTemplateFormulas, durationTemplates, escapeSpecialCharacters, eventMeasureTemplateFormulas, fillTemplateString, formattingConfig, formulaFilterMethods, generateColumnFormula, getColorByIndex, getDefaultSortOrders, getDimensionFormula, getDisplayConditionFormula, getEventMeasureFormula, getLocalizedText, getMeasureFormula, getRuleColor, getTransitionMeasureFormula, isDimensionsHierarchy, isFormulaFilterValue, isValidColor, linkNameRegExp, mapDimensionsToInputs, mapEventMeasuresToInputs, mapFormulaFilterToCalculatorInput, mapFormulaFiltersToInputs, mapMeasuresToInputs, mapSortingToInputs, mapTransitionMeasuresToInputs, measureAggregationTemplates, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareConversionParams, prepareDimensionAggregationParams, prepareDurationParams, prepareFormulaForSql, prepareMeasureAggregationParams, prepareSortOrders, prepareTimeParams, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, timeTemplates, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateMultiModeSelection, updateSingleModeSelection, workspaceLinkRegExp };