@infomaximum/widget-sdk 6.0.0-9 → 6.0.0-view-theme.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/CHANGELOG.md +91 -40
- package/README.md +3 -1
- package/dist/index.d.ts +39 -18
- package/dist/index.esm.js +156 -147
- package/dist/index.js +158 -147
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -132,35 +132,6 @@ function __rest(s, e) {
|
|
|
132
132
|
return t;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
function __values(o) {
|
|
136
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
137
|
-
if (m) return m.call(o);
|
|
138
|
-
if (o && typeof o.length === "number") return {
|
|
139
|
-
next: function () {
|
|
140
|
-
if (o && i >= o.length) o = void 0;
|
|
141
|
-
return { value: o && o[i++], done: !o };
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
function __read(o, n) {
|
|
148
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
149
|
-
if (!m) return o;
|
|
150
|
-
var i = m.call(o), r, ar = [], e;
|
|
151
|
-
try {
|
|
152
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
153
|
-
}
|
|
154
|
-
catch (error) { e = { error: error }; }
|
|
155
|
-
finally {
|
|
156
|
-
try {
|
|
157
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
158
|
-
}
|
|
159
|
-
finally { if (e) throw e.error; }
|
|
160
|
-
}
|
|
161
|
-
return ar;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
135
|
function __makeTemplateObject(cooked, raw) {
|
|
165
136
|
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
166
137
|
return cooked;
|
|
@@ -212,9 +183,18 @@ var EFormulaFilterFieldKeys;
|
|
|
212
183
|
EFormulaFilterFieldKeys["lastTimeUnit"] = "lastTimeUnit";
|
|
213
184
|
EFormulaFilterFieldKeys["durationUnit"] = "durationUnit";
|
|
214
185
|
})(EFormulaFilterFieldKeys || (EFormulaFilterFieldKeys = {}));
|
|
186
|
+
var EDimensionProcessFilterTimeUnit;
|
|
187
|
+
(function (EDimensionProcessFilterTimeUnit) {
|
|
188
|
+
EDimensionProcessFilterTimeUnit["YEARS"] = "YEARS";
|
|
189
|
+
EDimensionProcessFilterTimeUnit["MONTHS"] = "MONTHS";
|
|
190
|
+
EDimensionProcessFilterTimeUnit["HOURS"] = "HOURS";
|
|
191
|
+
EDimensionProcessFilterTimeUnit["DAYS"] = "DAYS";
|
|
192
|
+
EDimensionProcessFilterTimeUnit["MINUTES"] = "MINUTES";
|
|
193
|
+
})(EDimensionProcessFilterTimeUnit || (EDimensionProcessFilterTimeUnit = {}));
|
|
215
194
|
var isFormulaFilterValue = function (value) {
|
|
216
195
|
return "filteringMethod" in value;
|
|
217
196
|
};
|
|
197
|
+
var isDimensionProcessFilter = function (filter) { return "value" in filter && "condition" in filter; };
|
|
218
198
|
|
|
219
199
|
var compact = function (items) { return ((items === null || items === void 0 ? void 0 : items.filter(Boolean)) || []); };
|
|
220
200
|
var compactMap = function (items, f) {
|
|
@@ -639,7 +619,7 @@ var formattingConfig = {
|
|
|
639
619
|
},
|
|
640
620
|
};
|
|
641
621
|
|
|
642
|
-
var _a$
|
|
622
|
+
var _a$5;
|
|
643
623
|
var EDimensionTemplateNames;
|
|
644
624
|
(function (EDimensionTemplateNames) {
|
|
645
625
|
EDimensionTemplateNames["dateTime"] = "dateTime";
|
|
@@ -655,19 +635,19 @@ var EDimensionTemplateNames;
|
|
|
655
635
|
EDimensionTemplateNames["hour"] = "hour";
|
|
656
636
|
})(EDimensionTemplateNames || (EDimensionTemplateNames = {}));
|
|
657
637
|
/** Стандартные шаблоны разреза */
|
|
658
|
-
var dimensionTemplateFormulas = (_a$
|
|
659
|
-
_a$
|
|
660
|
-
_a$
|
|
661
|
-
_a$
|
|
662
|
-
_a$
|
|
663
|
-
_a$
|
|
664
|
-
_a$
|
|
665
|
-
_a$
|
|
666
|
-
_a$
|
|
667
|
-
_a$
|
|
668
|
-
_a$
|
|
669
|
-
_a$
|
|
670
|
-
_a$
|
|
638
|
+
var dimensionTemplateFormulas = (_a$5 = {},
|
|
639
|
+
_a$5[EDimensionTemplateNames.dateTime] = "toDateTime({columnFormula})",
|
|
640
|
+
_a$5[EDimensionTemplateNames.date] = "toDate({columnFormula})",
|
|
641
|
+
_a$5[EDimensionTemplateNames.year] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}))",
|
|
642
|
+
_a$5[EDimensionTemplateNames.yearAndQuarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}) * 10 + toQuarter({columnFormula}))",
|
|
643
|
+
_a$5[EDimensionTemplateNames.quarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toQuarter({columnFormula}))",
|
|
644
|
+
_a$5[EDimensionTemplateNames.yearAndMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYYYYMM({columnFormula}))",
|
|
645
|
+
_a$5[EDimensionTemplateNames.month] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toMonth({columnFormula}))",
|
|
646
|
+
_a$5[EDimensionTemplateNames.dayOfMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfMonth({columnFormula}))",
|
|
647
|
+
_a$5[EDimensionTemplateNames.week] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toWeek({columnFormula}))",
|
|
648
|
+
_a$5[EDimensionTemplateNames.dayOfWeek] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfWeek({columnFormula}))",
|
|
649
|
+
_a$5[EDimensionTemplateNames.hour] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toHour({columnFormula}))",
|
|
650
|
+
_a$5);
|
|
671
651
|
|
|
672
652
|
var EWidgetIndicatorType;
|
|
673
653
|
(function (EWidgetIndicatorType) {
|
|
@@ -777,14 +757,14 @@ var EEventAppearances;
|
|
|
777
757
|
})(EEventAppearances || (EEventAppearances = {}));
|
|
778
758
|
|
|
779
759
|
function createAggregationTemplate$1(functionName, options) {
|
|
780
|
-
return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} =
|
|
760
|
+
return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} ={eventName}{filters}), {caseCaseIdFormula})");
|
|
781
761
|
}
|
|
782
762
|
|
|
783
|
-
var countReworksTemplate = "process(if(countIf({eventNameFormula} =
|
|
784
|
-
var countExecutionsTemplate = "process(countIf({eventNameFormula} in
|
|
785
|
-
var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} =
|
|
786
|
-
var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} =
|
|
787
|
-
var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} =
|
|
763
|
+
var countReworksTemplate = "process(if(countIf({eventNameFormula} = {eventName}{filters}) > 0, countIf({eventNameFormula} = {eventName}{filters}) - 1, 0), {caseCaseIdFormula})";
|
|
764
|
+
var countExecutionsTemplate = "process(countIf({eventNameFormula} in {eventName}{filters}), {caseCaseIdFormula})";
|
|
765
|
+
var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})";
|
|
766
|
+
var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})";
|
|
767
|
+
var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} = {eventName}{filters})[1], {caseCaseIdFormula})";
|
|
788
768
|
var avgTemplate = createAggregationTemplate$1("avgIf");
|
|
789
769
|
var medianTemplate = createAggregationTemplate$1("medianIf");
|
|
790
770
|
var countTemplate = createAggregationTemplate$1("countIf");
|
|
@@ -793,6 +773,23 @@ var minTemplate = createAggregationTemplate$1("minIf");
|
|
|
793
773
|
var maxTemplate = createAggregationTemplate$1("maxIf");
|
|
794
774
|
var sumTemplate = createAggregationTemplate$1("sumIf");
|
|
795
775
|
|
|
776
|
+
function hasPossibleSingleLineComment(str) {
|
|
777
|
+
return str.indexOf("--") >= 0;
|
|
778
|
+
}
|
|
779
|
+
function sanitizeSingleLineComment(formula, wrapInBrackets) {
|
|
780
|
+
if (!hasPossibleSingleLineComment(formula)) {
|
|
781
|
+
return formula;
|
|
782
|
+
}
|
|
783
|
+
var lines = formula.split("\n");
|
|
784
|
+
var lastLine = lines[lines.length - 1];
|
|
785
|
+
// Кейс, когда хотим избежать повторного добавления переноса строки:
|
|
786
|
+
// уже есть переносы и после последнего переноса нет комментария
|
|
787
|
+
if (lines.length > 1 && lastLine && !hasPossibleSingleLineComment(lastLine)) {
|
|
788
|
+
return formula;
|
|
789
|
+
}
|
|
790
|
+
return wrapInBrackets ? "(".concat(formula, "\n)") : "".concat(formula, "\n");
|
|
791
|
+
}
|
|
792
|
+
|
|
796
793
|
/** @deprecated - следует использовать fillTemplateSql */
|
|
797
794
|
function fillTemplateString(templateString, params) {
|
|
798
795
|
return templateString.replace(/\{(.*?)\}/g, function (_, key) {
|
|
@@ -800,31 +797,6 @@ function fillTemplateString(templateString, params) {
|
|
|
800
797
|
return (_a = params[key]) !== null && _a !== void 0 ? _a : "";
|
|
801
798
|
});
|
|
802
799
|
}
|
|
803
|
-
/** Функция для безопасного заполнения SQL шаблонов с защитой от однострочных SQL комментариев в подставляемых значениях. */
|
|
804
|
-
function fillTemplateSql(templateString, params) {
|
|
805
|
-
var e_1, _a;
|
|
806
|
-
var newParams = {};
|
|
807
|
-
try {
|
|
808
|
-
for (var _b = __values(Object.entries(params)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
809
|
-
var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
|
|
810
|
-
/** Эвристическая проверка на возможное присутствие sql-комментария в значении подставляемом в template
|
|
811
|
-
*/
|
|
812
|
-
if (String(value).indexOf("--") >= 0) {
|
|
813
|
-
newParams[key] = "".concat(value, "\n");
|
|
814
|
-
continue;
|
|
815
|
-
}
|
|
816
|
-
newParams[key] = String(value);
|
|
817
|
-
}
|
|
818
|
-
}
|
|
819
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
820
|
-
finally {
|
|
821
|
-
try {
|
|
822
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
823
|
-
}
|
|
824
|
-
finally { if (e_1) throw e_1.error; }
|
|
825
|
-
}
|
|
826
|
-
return fillTemplateString(templateString, newParams);
|
|
827
|
-
}
|
|
828
800
|
|
|
829
801
|
/** Создать функцию экранирования переданных `specialChars` внутри `str` */
|
|
830
802
|
var createEscaper = function (specialChars) { return function (str) {
|
|
@@ -897,7 +869,7 @@ var escapeSingularQuotes = function (formula) {
|
|
|
897
869
|
};
|
|
898
870
|
|
|
899
871
|
var prepareFormulaForSql = function (formula, simpleType) {
|
|
900
|
-
formula =
|
|
872
|
+
formula = sanitizeSingleLineComment(formula, true);
|
|
901
873
|
return simpleType === ESimpleDataType.OTHER ? "toString(".concat(formula, ")") : formula;
|
|
902
874
|
};
|
|
903
875
|
var clearSingleLineComments = function (formula) {
|
|
@@ -979,7 +951,7 @@ var convertFiltersToFormula = function (filters) {
|
|
|
979
951
|
return filters.length > 0 ? " AND ".concat(convertToFormulasChain(filters)) : "";
|
|
980
952
|
};
|
|
981
953
|
|
|
982
|
-
var _a$
|
|
954
|
+
var _a$4;
|
|
983
955
|
var EDimensionAggregationTemplateName;
|
|
984
956
|
(function (EDimensionAggregationTemplateName) {
|
|
985
957
|
EDimensionAggregationTemplateName["avg"] = "avg";
|
|
@@ -996,20 +968,20 @@ var EDimensionAggregationTemplateName;
|
|
|
996
968
|
EDimensionAggregationTemplateName["countReworks"] = "countReworks";
|
|
997
969
|
})(EDimensionAggregationTemplateName || (EDimensionAggregationTemplateName = {}));
|
|
998
970
|
/** Шаблоны процессных метрик разреза с режимом AGGREGATION */
|
|
999
|
-
var dimensionAggregationTemplates = (_a$
|
|
1000
|
-
_a$
|
|
1001
|
-
_a$
|
|
1002
|
-
_a$
|
|
1003
|
-
_a$
|
|
1004
|
-
_a$
|
|
1005
|
-
_a$
|
|
1006
|
-
_a$
|
|
1007
|
-
_a$
|
|
1008
|
-
_a$
|
|
1009
|
-
_a$
|
|
1010
|
-
_a$
|
|
1011
|
-
_a$
|
|
1012
|
-
_a$
|
|
971
|
+
var dimensionAggregationTemplates = (_a$4 = {},
|
|
972
|
+
_a$4[EDimensionAggregationTemplateName.avg] = avgTemplate,
|
|
973
|
+
_a$4[EDimensionAggregationTemplateName.median] = medianTemplate,
|
|
974
|
+
_a$4[EDimensionAggregationTemplateName.count] = countTemplate,
|
|
975
|
+
_a$4[EDimensionAggregationTemplateName.countDistinct] = countDistinctTemplate,
|
|
976
|
+
_a$4[EDimensionAggregationTemplateName.min] = minTemplate,
|
|
977
|
+
_a$4[EDimensionAggregationTemplateName.max] = maxTemplate,
|
|
978
|
+
_a$4[EDimensionAggregationTemplateName.sum] = sumTemplate,
|
|
979
|
+
_a$4[EDimensionAggregationTemplateName.top] = topTemplate,
|
|
980
|
+
_a$4[EDimensionAggregationTemplateName.firstValue] = firstValueTemplate,
|
|
981
|
+
_a$4[EDimensionAggregationTemplateName.lastValue] = lastValueTemplate,
|
|
982
|
+
_a$4[EDimensionAggregationTemplateName.countExecutions] = countExecutionsTemplate,
|
|
983
|
+
_a$4[EDimensionAggregationTemplateName.countReworks] = countReworksTemplate,
|
|
984
|
+
_a$4);
|
|
1013
985
|
/** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
|
|
1014
986
|
var prepareDimensionAggregationParams = function (value) {
|
|
1015
987
|
if (!value.eventName ||
|
|
@@ -1022,8 +994,7 @@ var prepareDimensionAggregationParams = function (value) {
|
|
|
1022
994
|
var commonParams = {
|
|
1023
995
|
eventNameFormula: value.eventNameFormula,
|
|
1024
996
|
caseCaseIdFormula: value.caseCaseIdFormula,
|
|
1025
|
-
eventName: value.eventName,
|
|
1026
|
-
objectFilters: "1",
|
|
997
|
+
eventName: "'".concat(escapeSingularQuotes(value.eventName), "'"),
|
|
1027
998
|
filters: convertFiltersToFormula(value.filters),
|
|
1028
999
|
eventTimeFormula: "",
|
|
1029
1000
|
columnFormula: "",
|
|
@@ -1052,13 +1023,13 @@ var timeTemplates = (function () {
|
|
|
1052
1023
|
var generateTemplates = function (innerTemplate) {
|
|
1053
1024
|
var templates = {};
|
|
1054
1025
|
for (var key in dimensionTemplateFormulas) {
|
|
1055
|
-
templates[key] =
|
|
1026
|
+
templates[key] = fillTemplateString(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
|
|
1056
1027
|
}
|
|
1057
1028
|
return templates;
|
|
1058
1029
|
};
|
|
1059
1030
|
return _a = {},
|
|
1060
|
-
_a[EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} =
|
|
1061
|
-
_a[EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} =
|
|
1031
|
+
_a[EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})"),
|
|
1032
|
+
_a[EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})"),
|
|
1062
1033
|
_a;
|
|
1063
1034
|
})();
|
|
1064
1035
|
/** На основе значения режимов START_TIME/END_TIME подготовить параметры для подстановки в шаблонную формулу */
|
|
@@ -1076,12 +1047,12 @@ var prepareTimeParams = function (value) {
|
|
|
1076
1047
|
eventNameFormula: value.eventNameFormula,
|
|
1077
1048
|
caseCaseIdFormula: value.caseCaseIdFormula,
|
|
1078
1049
|
filters: convertFiltersToFormula(value.filters),
|
|
1079
|
-
eventName: value.eventName,
|
|
1050
|
+
eventName: "'".concat(escapeSingularQuotes(value.eventName), "'"),
|
|
1080
1051
|
};
|
|
1081
1052
|
};
|
|
1082
1053
|
|
|
1083
1054
|
function getDimensionFormula(_a) {
|
|
1084
|
-
var _b;
|
|
1055
|
+
var _b, _c;
|
|
1085
1056
|
var value = _a.value;
|
|
1086
1057
|
if (!value) {
|
|
1087
1058
|
return "";
|
|
@@ -1095,10 +1066,13 @@ function getDimensionFormula(_a) {
|
|
|
1095
1066
|
if (!templateFormula || !tableName || !columnName) {
|
|
1096
1067
|
return "";
|
|
1097
1068
|
}
|
|
1098
|
-
return
|
|
1069
|
+
return fillTemplateString(templateFormula, {
|
|
1099
1070
|
columnFormula: generateColumnFormula(tableName, columnName),
|
|
1100
1071
|
});
|
|
1101
1072
|
}
|
|
1073
|
+
return (_c = getProcessDimensionValueFormula(value)) !== null && _c !== void 0 ? _c : "";
|
|
1074
|
+
}
|
|
1075
|
+
function getProcessDimensionValueFormula(value) {
|
|
1102
1076
|
if (value.mode === EWidgetIndicatorValueModes.AGGREGATION) {
|
|
1103
1077
|
var preparedParams = prepareDimensionAggregationParams(value);
|
|
1104
1078
|
if (!preparedParams) {
|
|
@@ -1108,10 +1082,10 @@ function getDimensionFormula(_a) {
|
|
|
1108
1082
|
? dimensionTemplateFormulas[value.innerTemplateName]
|
|
1109
1083
|
: null;
|
|
1110
1084
|
var columnFormula = innerTemplate
|
|
1111
|
-
?
|
|
1085
|
+
? fillTemplateString(innerTemplate, { columnFormula: preparedParams.columnFormula })
|
|
1112
1086
|
: preparedParams.columnFormula;
|
|
1113
1087
|
var dimensionAggregationTemplate = dimensionAggregationTemplates[value.templateName];
|
|
1114
|
-
return
|
|
1088
|
+
return fillTemplateString(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
|
|
1115
1089
|
}
|
|
1116
1090
|
if (value.mode === EWidgetIndicatorValueModes.START_TIME ||
|
|
1117
1091
|
value.mode === EWidgetIndicatorValueModes.END_TIME) {
|
|
@@ -1120,9 +1094,8 @@ function getDimensionFormula(_a) {
|
|
|
1120
1094
|
return "";
|
|
1121
1095
|
}
|
|
1122
1096
|
var templateFormula = timeTemplates[value.mode][value.templateName];
|
|
1123
|
-
return
|
|
1097
|
+
return fillTemplateString(templateFormula, preparedParams);
|
|
1124
1098
|
}
|
|
1125
|
-
return "";
|
|
1126
1099
|
}
|
|
1127
1100
|
|
|
1128
1101
|
var EMeasureAggregationTemplateName;
|
|
@@ -1142,7 +1115,6 @@ var EMeasureAggregationTemplateName;
|
|
|
1142
1115
|
})(EMeasureAggregationTemplateName || (EMeasureAggregationTemplateName = {}));
|
|
1143
1116
|
/** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
|
|
1144
1117
|
var prepareMeasureAggregationParams = function (value) {
|
|
1145
|
-
var _a;
|
|
1146
1118
|
if ((!value.anyEvent && !value.eventName) ||
|
|
1147
1119
|
!value.caseCaseIdFormula ||
|
|
1148
1120
|
!value.eventNameFormula ||
|
|
@@ -1155,8 +1127,7 @@ var prepareMeasureAggregationParams = function (value) {
|
|
|
1155
1127
|
outerAggregation: value.outerAggregation,
|
|
1156
1128
|
eventNameFormula: value.eventNameFormula,
|
|
1157
1129
|
caseCaseIdFormula: value.caseCaseIdFormula,
|
|
1158
|
-
eventName:
|
|
1159
|
-
objectFilters: "1",
|
|
1130
|
+
eventName: value.eventName ? "'".concat(escapeSingularQuotes(value.eventName), "'") : "",
|
|
1160
1131
|
filters: convertFiltersToFormula(value.filters),
|
|
1161
1132
|
eventTimeFormula: "",
|
|
1162
1133
|
columnFormula: "",
|
|
@@ -1177,7 +1148,7 @@ var prepareMeasureAggregationParams = function (value) {
|
|
|
1177
1148
|
return columnParams;
|
|
1178
1149
|
};
|
|
1179
1150
|
|
|
1180
|
-
var _a$
|
|
1151
|
+
var _a$3;
|
|
1181
1152
|
var EMeasureTemplateNames;
|
|
1182
1153
|
(function (EMeasureTemplateNames) {
|
|
1183
1154
|
EMeasureTemplateNames["avg"] = "avg";
|
|
@@ -1189,18 +1160,18 @@ var EMeasureTemplateNames;
|
|
|
1189
1160
|
EMeasureTemplateNames["sum"] = "sum";
|
|
1190
1161
|
})(EMeasureTemplateNames || (EMeasureTemplateNames = {}));
|
|
1191
1162
|
/** Стандартные шаблоны меры */
|
|
1192
|
-
var measureTemplateFormulas = (_a$
|
|
1193
|
-
_a$
|
|
1194
|
-
_a$
|
|
1195
|
-
_a$
|
|
1196
|
-
_a$
|
|
1197
|
-
_a$
|
|
1198
|
-
_a$
|
|
1199
|
-
_a$
|
|
1200
|
-
_a$
|
|
1163
|
+
var measureTemplateFormulas = (_a$3 = {},
|
|
1164
|
+
_a$3[EMeasureTemplateNames.avg] = "avg({columnFormula})",
|
|
1165
|
+
_a$3[EMeasureTemplateNames.count] = "count({columnFormula})",
|
|
1166
|
+
_a$3[EMeasureTemplateNames.countDistinct] = "count(distinct {columnFormula})",
|
|
1167
|
+
_a$3[EMeasureTemplateNames.median] = "medianExact({columnFormula})",
|
|
1168
|
+
_a$3[EMeasureTemplateNames.min] = "min({columnFormula})",
|
|
1169
|
+
_a$3[EMeasureTemplateNames.max] = "max({columnFormula})",
|
|
1170
|
+
_a$3[EMeasureTemplateNames.sum] = "sum({columnFormula})",
|
|
1171
|
+
_a$3);
|
|
1201
1172
|
|
|
1202
1173
|
/** Шаблон процессной метрики меры с режимом CONVERSION */
|
|
1203
|
-
var conversionTemplate = "countIf(\n process(\n minIf(\n {startEventTimeFormula}, \n {startEventNameFormula} =
|
|
1174
|
+
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)";
|
|
1204
1175
|
/** На основе значения режима CONVERSION подготовить параметры для подстановки в шаблонную формулу */
|
|
1205
1176
|
var prepareConversionParams = function (value) {
|
|
1206
1177
|
if (!value.startEventName ||
|
|
@@ -1215,15 +1186,14 @@ var prepareConversionParams = function (value) {
|
|
|
1215
1186
|
return null;
|
|
1216
1187
|
}
|
|
1217
1188
|
return {
|
|
1218
|
-
objectFilters: "1",
|
|
1219
1189
|
startEventTimeFormula: value.startEventTimeFormula,
|
|
1220
1190
|
startEventNameFormula: value.startEventNameFormula,
|
|
1221
1191
|
startEventFilters: convertFiltersToFormula(value.startEventFilters),
|
|
1222
|
-
startEventName: value.startEventName,
|
|
1192
|
+
startEventName: "'".concat(escapeSingularQuotes(value.startEventName), "'"),
|
|
1223
1193
|
endEventTimeFormula: value.endEventTimeFormula,
|
|
1224
1194
|
endCaseCaseIdFormula: value.endCaseCaseIdFormula,
|
|
1225
1195
|
endEventNameFormula: value.endEventNameFormula,
|
|
1226
|
-
endEventName: value.endEventName,
|
|
1196
|
+
endEventName: "'".concat(escapeSingularQuotes(value.endEventName), "'"),
|
|
1227
1197
|
endEventFilters: convertFiltersToFormula(value.endEventFilters),
|
|
1228
1198
|
};
|
|
1229
1199
|
};
|
|
@@ -1231,7 +1201,7 @@ var prepareConversionParams = function (value) {
|
|
|
1231
1201
|
/** Шаблоны процессных метрик меры с режимом DURATION */
|
|
1232
1202
|
var durationTemplates = (function () {
|
|
1233
1203
|
var _a;
|
|
1234
|
-
var innerTemplate = "\n timeDiff(\n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} =
|
|
1204
|
+
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 ";
|
|
1235
1205
|
return _a = {},
|
|
1236
1206
|
_a[EDurationTemplateName.avg] = "avgIf(".concat(innerTemplate, ")"),
|
|
1237
1207
|
_a[EDurationTemplateName.median] = "medianIf(".concat(innerTemplate, ")"),
|
|
@@ -1254,32 +1224,31 @@ var prepareDurationParams = function (value) {
|
|
|
1254
1224
|
return appearance === EEventAppearances.FIRST ? "minIf" : "maxIf";
|
|
1255
1225
|
};
|
|
1256
1226
|
return {
|
|
1257
|
-
objectFilters: "1",
|
|
1258
1227
|
startEventTimeFormula: value.startEventTimeFormula,
|
|
1259
1228
|
startEventNameFormula: value.startEventNameFormula,
|
|
1260
1229
|
startEventFilters: convertFiltersToFormula(value.startEventFilters),
|
|
1261
|
-
startEventName: value.startEventName,
|
|
1230
|
+
startEventName: "'".concat(escapeSingularQuotes(value.startEventName), "'"),
|
|
1262
1231
|
startEventAggregationName: getAggregationNameByAppearances(value.startEventAppearances),
|
|
1263
1232
|
endEventTimeFormula: value.endEventTimeFormula,
|
|
1264
1233
|
endCaseCaseIdFormula: value.endCaseCaseIdFormula,
|
|
1265
1234
|
endEventNameFormula: value.endEventNameFormula,
|
|
1266
|
-
endEventName: value.endEventName,
|
|
1235
|
+
endEventName: "'".concat(escapeSingularQuotes(value.endEventName), "'"),
|
|
1267
1236
|
endEventFilters: convertFiltersToFormula(value.endEventFilters),
|
|
1268
1237
|
endEventAggregationName: getAggregationNameByAppearances(value.endEventAppearances),
|
|
1269
1238
|
};
|
|
1270
1239
|
};
|
|
1271
1240
|
|
|
1272
1241
|
function createAnyEventTemplate(aggregatePart) {
|
|
1273
|
-
return "{outerAggregation}
|
|
1242
|
+
return "{outerAggregation}(process(".concat(aggregatePart, ", {caseCaseIdFormula}))");
|
|
1274
1243
|
}
|
|
1275
1244
|
function createSpecificEventTemplate(fn, additionalFn) {
|
|
1276
|
-
return "{outerAggregation}
|
|
1245
|
+
return "{outerAggregation}(process(".concat(fn, "(").concat(additionalFn ? "".concat(additionalFn, " ") : "", "{columnFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula}))");
|
|
1277
1246
|
}
|
|
1278
1247
|
function createTopLikeTemplate(template) {
|
|
1279
1248
|
return function (outerAggregation) {
|
|
1280
1249
|
return outerAggregation === EOuterAggregation.top
|
|
1281
|
-
? "{outerAggregation}
|
|
1282
|
-
: "{outerAggregation}
|
|
1250
|
+
? "{outerAggregation}K(1)(".concat(template, ")[1]")
|
|
1251
|
+
: "{outerAggregation}(".concat(template, ")");
|
|
1283
1252
|
};
|
|
1284
1253
|
}
|
|
1285
1254
|
function createAggregationTemplate(templateName, _a) {
|
|
@@ -1326,9 +1295,9 @@ function createAggregationTemplate(templateName, _a) {
|
|
|
1326
1295
|
? createAnyEventTemplate("argMax({columnFormula}, {eventTimeFormula})")
|
|
1327
1296
|
: createTopLikeTemplate(lastValueTemplate)(outerAggregation);
|
|
1328
1297
|
case EMeasureAggregationTemplateName.countExecutions:
|
|
1329
|
-
return "{outerAggregation}
|
|
1298
|
+
return "{outerAggregation}(".concat(countExecutionsTemplate, ")");
|
|
1330
1299
|
case EMeasureAggregationTemplateName.countReworks:
|
|
1331
|
-
return "{outerAggregation}
|
|
1300
|
+
return "{outerAggregation}(".concat(countReworksTemplate, ")");
|
|
1332
1301
|
}
|
|
1333
1302
|
}
|
|
1334
1303
|
|
|
@@ -1347,14 +1316,14 @@ function getMeasureFormula(_a) {
|
|
|
1347
1316
|
if (!templateFormula || !tableName || !columnName) {
|
|
1348
1317
|
return "";
|
|
1349
1318
|
}
|
|
1350
|
-
return
|
|
1319
|
+
return fillTemplateString(templateFormula, {
|
|
1351
1320
|
columnFormula: generateColumnFormula(tableName, columnName),
|
|
1352
1321
|
});
|
|
1353
1322
|
}
|
|
1354
1323
|
if (value.mode === EWidgetIndicatorValueModes.AGGREGATION) {
|
|
1355
1324
|
var preparedParams = prepareMeasureAggregationParams(value);
|
|
1356
1325
|
return preparedParams
|
|
1357
|
-
?
|
|
1326
|
+
? fillTemplateString(createAggregationTemplate(value.templateName, {
|
|
1358
1327
|
outerAggregation: preparedParams.outerAggregation,
|
|
1359
1328
|
anyEvent: value.anyEvent,
|
|
1360
1329
|
}), preparedParams)
|
|
@@ -1365,28 +1334,28 @@ function getMeasureFormula(_a) {
|
|
|
1365
1334
|
if (!preparedParams) {
|
|
1366
1335
|
return "";
|
|
1367
1336
|
}
|
|
1368
|
-
return
|
|
1337
|
+
return fillTemplateString(conversionTemplate, preparedParams);
|
|
1369
1338
|
}
|
|
1370
1339
|
if (value.mode === EWidgetIndicatorValueModes.DURATION) {
|
|
1371
1340
|
var preparedParams = prepareDurationParams(value);
|
|
1372
1341
|
if (!preparedParams) {
|
|
1373
1342
|
return "";
|
|
1374
1343
|
}
|
|
1375
|
-
return
|
|
1344
|
+
return fillTemplateString(durationTemplates[value.templateName], preparedParams);
|
|
1376
1345
|
}
|
|
1377
1346
|
return "";
|
|
1378
1347
|
}
|
|
1379
1348
|
|
|
1380
|
-
var _a$
|
|
1349
|
+
var _a$2;
|
|
1381
1350
|
var EEventMeasureTemplateNames;
|
|
1382
1351
|
(function (EEventMeasureTemplateNames) {
|
|
1383
1352
|
EEventMeasureTemplateNames["eventsCount"] = "eventsCount";
|
|
1384
1353
|
EEventMeasureTemplateNames["reworksCount"] = "reworksCount";
|
|
1385
1354
|
})(EEventMeasureTemplateNames || (EEventMeasureTemplateNames = {}));
|
|
1386
|
-
var eventMeasureTemplateFormulas = (_a$
|
|
1387
|
-
_a$
|
|
1388
|
-
_a$
|
|
1389
|
-
_a$
|
|
1355
|
+
var eventMeasureTemplateFormulas = (_a$2 = {},
|
|
1356
|
+
_a$2[EEventMeasureTemplateNames.eventsCount] = "count()",
|
|
1357
|
+
_a$2[EEventMeasureTemplateNames.reworksCount] = "count() - uniqExact({caseCaseIdFormula})",
|
|
1358
|
+
_a$2);
|
|
1390
1359
|
|
|
1391
1360
|
function getEventMeasureFormula(_a, process) {
|
|
1392
1361
|
var value = _a.value;
|
|
@@ -1398,21 +1367,21 @@ function getEventMeasureFormula(_a, process) {
|
|
|
1398
1367
|
}
|
|
1399
1368
|
if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
|
|
1400
1369
|
var templateFormula = eventMeasureTemplateFormulas[value.templateName];
|
|
1401
|
-
return templateFormula &&
|
|
1370
|
+
return templateFormula && fillTemplateString(templateFormula, process);
|
|
1402
1371
|
}
|
|
1403
1372
|
return "";
|
|
1404
1373
|
}
|
|
1405
1374
|
|
|
1406
|
-
var _a;
|
|
1375
|
+
var _a$1;
|
|
1407
1376
|
var ETransitionMeasureTemplateNames;
|
|
1408
1377
|
(function (ETransitionMeasureTemplateNames) {
|
|
1409
1378
|
ETransitionMeasureTemplateNames["transitionsCount"] = "transitionsCount";
|
|
1410
1379
|
ETransitionMeasureTemplateNames["medianTime"] = "medianTime";
|
|
1411
1380
|
})(ETransitionMeasureTemplateNames || (ETransitionMeasureTemplateNames = {}));
|
|
1412
|
-
var transitionMeasureTemplateFormulas = (_a = {},
|
|
1413
|
-
_a[ETransitionMeasureTemplateNames.transitionsCount] = "count()",
|
|
1414
|
-
_a[ETransitionMeasureTemplateNames.medianTime] = "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))",
|
|
1415
|
-
_a);
|
|
1381
|
+
var transitionMeasureTemplateFormulas = (_a$1 = {},
|
|
1382
|
+
_a$1[ETransitionMeasureTemplateNames.transitionsCount] = "count()",
|
|
1383
|
+
_a$1[ETransitionMeasureTemplateNames.medianTime] = "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))",
|
|
1384
|
+
_a$1);
|
|
1416
1385
|
|
|
1417
1386
|
function getTransitionMeasureFormula(_a, process) {
|
|
1418
1387
|
var value = _a.value;
|
|
@@ -1424,7 +1393,7 @@ function getTransitionMeasureFormula(_a, process) {
|
|
|
1424
1393
|
}
|
|
1425
1394
|
if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
|
|
1426
1395
|
var templateFormula = transitionMeasureTemplateFormulas[value.templateName];
|
|
1427
|
-
return templateFormula &&
|
|
1396
|
+
return templateFormula && fillTemplateString(templateFormula, process);
|
|
1428
1397
|
}
|
|
1429
1398
|
return "";
|
|
1430
1399
|
}
|
|
@@ -1616,7 +1585,7 @@ var mapFormulaFilterToCalculatorInput = function (filterValue) {
|
|
|
1616
1585
|
if (!isFormulaFilterValue(filterValue)) {
|
|
1617
1586
|
return {
|
|
1618
1587
|
dbDataType: EClickHouseBaseTypes.Bool,
|
|
1619
|
-
formula:
|
|
1588
|
+
formula: fillTemplateString(displayConditionTemplate, {
|
|
1620
1589
|
formula: prepareFormulaForSql(filterValue.formula),
|
|
1621
1590
|
}),
|
|
1622
1591
|
values: ["true"],
|
|
@@ -1651,6 +1620,46 @@ var mapFormulaFiltersToInputs = function (filters) {
|
|
|
1651
1620
|
return compactMap(filters, mapFormulaFilterToCalculatorInput);
|
|
1652
1621
|
};
|
|
1653
1622
|
|
|
1623
|
+
var _a;
|
|
1624
|
+
var intervalByUnit = (_a = {},
|
|
1625
|
+
_a[EDimensionProcessFilterTimeUnit.YEARS] = "year",
|
|
1626
|
+
_a[EDimensionProcessFilterTimeUnit.MONTHS] = "month",
|
|
1627
|
+
_a[EDimensionProcessFilterTimeUnit.DAYS] = "day",
|
|
1628
|
+
_a[EDimensionProcessFilterTimeUnit.HOURS] = "hour",
|
|
1629
|
+
_a[EDimensionProcessFilterTimeUnit.MINUTES] = "minute",
|
|
1630
|
+
_a);
|
|
1631
|
+
function mapDimensionProcessFilterToCalculatorInput(filter) {
|
|
1632
|
+
var formula = filter.value.mode === EWidgetIndicatorValueModes.FORMULA
|
|
1633
|
+
? filter.value.formula
|
|
1634
|
+
: getProcessDimensionValueFormula(filter.value);
|
|
1635
|
+
if (formula === undefined) {
|
|
1636
|
+
throw new Error("Formula generation error");
|
|
1637
|
+
}
|
|
1638
|
+
var _a = filter.condition, timeUnit = _a.timeUnit, filteringMethod = _a.filteringMethod, values = _a.values;
|
|
1639
|
+
if (filteringMethod === "LAST_TIME") {
|
|
1640
|
+
if (!timeUnit) {
|
|
1641
|
+
throw new Error("Missing time unit");
|
|
1642
|
+
}
|
|
1643
|
+
return {
|
|
1644
|
+
dbDataType: EClickHouseBaseTypes.Bool,
|
|
1645
|
+
formula: "date_diff('".concat(intervalByUnit[timeUnit], "', ").concat(formula, ", now())"),
|
|
1646
|
+
values: values,
|
|
1647
|
+
filteringMethod: formulaFilterMethods.LESS_THAN_OR_EQUAL_TO,
|
|
1648
|
+
};
|
|
1649
|
+
}
|
|
1650
|
+
return { formula: formula, filteringMethod: filteringMethod, values: values, dbDataType: filter.dbDataType };
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
var mapSettingsFilterToCalculatorInput = function (filter) {
|
|
1654
|
+
if (isDimensionProcessFilter(filter)) {
|
|
1655
|
+
return mapDimensionProcessFilterToCalculatorInput(filter);
|
|
1656
|
+
}
|
|
1657
|
+
return mapFormulaFilterToCalculatorInput(filter);
|
|
1658
|
+
};
|
|
1659
|
+
var mapSettingsFiltersToInputs = function (filters) {
|
|
1660
|
+
return compactMap(filters, mapSettingsFilterToCalculatorInput);
|
|
1661
|
+
};
|
|
1662
|
+
|
|
1654
1663
|
function mapMeasureToInput(measure, variables, addFormulas) {
|
|
1655
1664
|
if (addFormulas === void 0) { addFormulas = function () { return new Map(); }; }
|
|
1656
1665
|
var mainFormula = getMeasureFormula(measure);
|
|
@@ -2145,4 +2154,4 @@ var getColorByIndex = function (index) {
|
|
|
2145
2154
|
return color;
|
|
2146
2155
|
};
|
|
2147
2156
|
|
|
2148
|
-
export { EActionButtonsTypes, EActionTypes, EActivateConditionMode, EAutoUpdateMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, EDataModelOption, EDimensionAggregationTemplateName, EDimensionTemplateNames, EDisplayConditionMode, EDrawerPlacement, EDurationTemplateName, EDurationUnit, EEventAppearances, EEventMeasureTemplateNames, EFontWeight, EFormatOrFormattingMode, EFormatTypes, EFormattingPresets, EFormulaFilterFieldKeys, EIndicatorType, ELastTimeUnit, EMarkdownDisplayMode, EMeasureAggregationTemplateName, EMeasureTemplateNames, EOuterAggregation, EProcessFilterNames, ESelectOptionTypes, ESimpleDataType, ESimpleInputType, ESortDirection, ESortingValueModes, ESystemRecordKey, ETransitionMeasureTemplateNames, EUnitMode, EViewMode, EViewOpenIn, EWidgetActionInputMethod, EWidgetFilterMode, EWidgetIndicatorType, EWidgetIndicatorValueModes, OuterAggregation, applyIndexToArrayFormula, bindContentWithIndicator, bindContentsWithIndicators, checkDisplayCondition, clearMultiLineComments, clearSingleLineComments, colors, conversionTemplate, convertFiltersToFormula, convertToFormulasChain, countExecutionsTemplate, createEscaper, createAggregationTemplate as createMeasureAggregationTemplate, curlyBracketsContentPattern, dashboardLinkRegExp, dimensionAggregationTemplates, dimensionTemplateFormulas, displayConditionTemplate, doubleQuoteContentPattern, durationTemplates, escapeCurlyBracketLinkName, escapeDoubleQuoteLinkName, eventMeasureTemplateFormulas,
|
|
2157
|
+
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, 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 };
|