@infomaximum/widget-sdk 6.0.0-wefi344-1 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1101 -0
- package/README.md +3 -1
- package/dist/index.d.ts +813 -782
- package/dist/index.esm.js +306 -163
- package/dist/index.js +315 -165
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -36,12 +36,6 @@ exports.EViewOpenIn = void 0;
|
|
|
36
36
|
EViewOpenIn["PLACEHOLDER"] = "PLACEHOLDER";
|
|
37
37
|
EViewOpenIn["MODAL_WINDOW"] = "MODAL_WINDOW";
|
|
38
38
|
EViewOpenIn["DRAWER_WINDOW"] = "DRAWER_WINDOW";
|
|
39
|
-
// TODO: удалить при выполении BI-14979
|
|
40
|
-
/** @deprecated необходимо использовать EViewOpenIn.WINDOW с флагом newWindow - true */
|
|
41
|
-
EViewOpenIn["NEW_WINDOW"] = "NEW_WINDOW";
|
|
42
|
-
// TODO: удалить при выполении BI-14979
|
|
43
|
-
/** @deprecated необходимо использовать EViewOpenIn.WINDOW с флагом newWindow - false */
|
|
44
|
-
EViewOpenIn["CURRENT_WINDOW"] = "CURRENT_WINDOW";
|
|
45
39
|
})(exports.EViewOpenIn || (exports.EViewOpenIn = {}));
|
|
46
40
|
exports.EDrawerPlacement = void 0;
|
|
47
41
|
(function (EDrawerPlacement) {
|
|
@@ -139,6 +133,39 @@ function __rest(s, e) {
|
|
|
139
133
|
return t;
|
|
140
134
|
}
|
|
141
135
|
|
|
136
|
+
function __values(o) {
|
|
137
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
138
|
+
if (m) return m.call(o);
|
|
139
|
+
if (o && typeof o.length === "number") return {
|
|
140
|
+
next: function () {
|
|
141
|
+
if (o && i >= o.length) o = void 0;
|
|
142
|
+
return { value: o && o[i++], done: !o };
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function __read(o, n) {
|
|
149
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
150
|
+
if (!m) return o;
|
|
151
|
+
var i = m.call(o), r, ar = [], e;
|
|
152
|
+
try {
|
|
153
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
154
|
+
}
|
|
155
|
+
catch (error) { e = { error: error }; }
|
|
156
|
+
finally {
|
|
157
|
+
try {
|
|
158
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
159
|
+
}
|
|
160
|
+
finally { if (e) throw e.error; }
|
|
161
|
+
}
|
|
162
|
+
return ar;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function __makeTemplateObject(cooked, raw) {
|
|
166
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
167
|
+
return cooked;
|
|
168
|
+
}
|
|
142
169
|
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
143
170
|
var e = new Error(message);
|
|
144
171
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
@@ -186,9 +213,18 @@ exports.EFormulaFilterFieldKeys = void 0;
|
|
|
186
213
|
EFormulaFilterFieldKeys["lastTimeUnit"] = "lastTimeUnit";
|
|
187
214
|
EFormulaFilterFieldKeys["durationUnit"] = "durationUnit";
|
|
188
215
|
})(exports.EFormulaFilterFieldKeys || (exports.EFormulaFilterFieldKeys = {}));
|
|
216
|
+
exports.EDimensionProcessFilterTimeUnit = void 0;
|
|
217
|
+
(function (EDimensionProcessFilterTimeUnit) {
|
|
218
|
+
EDimensionProcessFilterTimeUnit["YEARS"] = "YEARS";
|
|
219
|
+
EDimensionProcessFilterTimeUnit["MONTHS"] = "MONTHS";
|
|
220
|
+
EDimensionProcessFilterTimeUnit["HOURS"] = "HOURS";
|
|
221
|
+
EDimensionProcessFilterTimeUnit["DAYS"] = "DAYS";
|
|
222
|
+
EDimensionProcessFilterTimeUnit["MINUTES"] = "MINUTES";
|
|
223
|
+
})(exports.EDimensionProcessFilterTimeUnit || (exports.EDimensionProcessFilterTimeUnit = {}));
|
|
189
224
|
var isFormulaFilterValue = function (value) {
|
|
190
225
|
return "filteringMethod" in value;
|
|
191
226
|
};
|
|
227
|
+
var isDimensionProcessFilter = function (filter) { return "value" in filter && "condition" in filter; };
|
|
192
228
|
|
|
193
229
|
var compact = function (items) { return ((items === null || items === void 0 ? void 0 : items.filter(Boolean)) || []); };
|
|
194
230
|
var compactMap = function (items, f) {
|
|
@@ -613,7 +649,7 @@ var formattingConfig = {
|
|
|
613
649
|
},
|
|
614
650
|
};
|
|
615
651
|
|
|
616
|
-
var _a$
|
|
652
|
+
var _a$5;
|
|
617
653
|
exports.EDimensionTemplateNames = void 0;
|
|
618
654
|
(function (EDimensionTemplateNames) {
|
|
619
655
|
EDimensionTemplateNames["dateTime"] = "dateTime";
|
|
@@ -629,19 +665,19 @@ exports.EDimensionTemplateNames = void 0;
|
|
|
629
665
|
EDimensionTemplateNames["hour"] = "hour";
|
|
630
666
|
})(exports.EDimensionTemplateNames || (exports.EDimensionTemplateNames = {}));
|
|
631
667
|
/** Стандартные шаблоны разреза */
|
|
632
|
-
var dimensionTemplateFormulas = (_a$
|
|
633
|
-
_a$
|
|
634
|
-
_a$
|
|
635
|
-
_a$
|
|
636
|
-
_a$
|
|
637
|
-
_a$
|
|
638
|
-
_a$
|
|
639
|
-
_a$
|
|
640
|
-
_a$
|
|
641
|
-
_a$
|
|
642
|
-
_a$
|
|
643
|
-
_a$
|
|
644
|
-
_a$
|
|
668
|
+
var dimensionTemplateFormulas = (_a$5 = {},
|
|
669
|
+
_a$5[exports.EDimensionTemplateNames.dateTime] = "toDateTime({columnFormula})",
|
|
670
|
+
_a$5[exports.EDimensionTemplateNames.date] = "toDate({columnFormula})",
|
|
671
|
+
_a$5[exports.EDimensionTemplateNames.year] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}))",
|
|
672
|
+
_a$5[exports.EDimensionTemplateNames.yearAndQuarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYear({columnFormula}) * 10 + toQuarter({columnFormula}))",
|
|
673
|
+
_a$5[exports.EDimensionTemplateNames.quarter] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toQuarter({columnFormula}))",
|
|
674
|
+
_a$5[exports.EDimensionTemplateNames.yearAndMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toYYYYMM({columnFormula}))",
|
|
675
|
+
_a$5[exports.EDimensionTemplateNames.month] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toMonth({columnFormula}))",
|
|
676
|
+
_a$5[exports.EDimensionTemplateNames.dayOfMonth] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfMonth({columnFormula}))",
|
|
677
|
+
_a$5[exports.EDimensionTemplateNames.week] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toWeek({columnFormula}))",
|
|
678
|
+
_a$5[exports.EDimensionTemplateNames.dayOfWeek] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toDayOfWeek({columnFormula}))",
|
|
679
|
+
_a$5[exports.EDimensionTemplateNames.hour] = "if(defaultValueOfArgumentType({columnFormula}) = {columnFormula}, 0, toHour({columnFormula}))",
|
|
680
|
+
_a$5);
|
|
645
681
|
|
|
646
682
|
exports.EWidgetIndicatorType = void 0;
|
|
647
683
|
(function (EWidgetIndicatorType) {
|
|
@@ -683,6 +719,11 @@ exports.ESortingValueModes = void 0;
|
|
|
683
719
|
/** Сортировка по показателю(разрезу или мере) виджета */
|
|
684
720
|
ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
|
|
685
721
|
})(exports.ESortingValueModes || (exports.ESortingValueModes = {}));
|
|
722
|
+
exports.EFormatOrFormattingMode = void 0;
|
|
723
|
+
(function (EFormatOrFormattingMode) {
|
|
724
|
+
EFormatOrFormattingMode["BASE"] = "BASE";
|
|
725
|
+
EFormatOrFormattingMode["TEMPLATE"] = "TEMPLATE";
|
|
726
|
+
})(exports.EFormatOrFormattingMode || (exports.EFormatOrFormattingMode = {}));
|
|
686
727
|
/** Тип показателя */
|
|
687
728
|
exports.EIndicatorType = void 0;
|
|
688
729
|
(function (EIndicatorType) {
|
|
@@ -746,14 +787,14 @@ exports.EEventAppearances = void 0;
|
|
|
746
787
|
})(exports.EEventAppearances || (exports.EEventAppearances = {}));
|
|
747
788
|
|
|
748
789
|
function createAggregationTemplate$1(functionName, options) {
|
|
749
|
-
return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} =
|
|
790
|
+
return "process(".concat(functionName, "(").concat((options === null || options === void 0 ? void 0 : options.distinct) ? "distinct " : "", "{columnFormula}, {eventNameFormula} ={eventName}{filters}), {caseCaseIdFormula})");
|
|
750
791
|
}
|
|
751
792
|
|
|
752
|
-
var countReworksTemplate = "process(if(countIf({eventNameFormula} =
|
|
753
|
-
var countExecutionsTemplate = "process(countIf({eventNameFormula} in
|
|
754
|
-
var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} =
|
|
755
|
-
var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} =
|
|
756
|
-
var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} =
|
|
793
|
+
var countReworksTemplate = "process(if(countIf({eventNameFormula} = {eventName}{filters}) > 0, countIf({eventNameFormula} = {eventName}{filters}) - 1, 0), {caseCaseIdFormula})";
|
|
794
|
+
var countExecutionsTemplate = "process(countIf({eventNameFormula} in {eventName}{filters}), {caseCaseIdFormula})";
|
|
795
|
+
var lastValueTemplate = "process(argMaxIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})";
|
|
796
|
+
var firstValueTemplate = "process(argMinIf({columnFormula}, {eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})";
|
|
797
|
+
var topTemplate = "process(topKIf(1)({columnFormula}, {eventNameFormula} = {eventName}{filters})[1], {caseCaseIdFormula})";
|
|
757
798
|
var avgTemplate = createAggregationTemplate$1("avgIf");
|
|
758
799
|
var medianTemplate = createAggregationTemplate$1("medianIf");
|
|
759
800
|
var countTemplate = createAggregationTemplate$1("countIf");
|
|
@@ -762,24 +803,118 @@ var minTemplate = createAggregationTemplate$1("minIf");
|
|
|
762
803
|
var maxTemplate = createAggregationTemplate$1("maxIf");
|
|
763
804
|
var sumTemplate = createAggregationTemplate$1("sumIf");
|
|
764
805
|
|
|
806
|
+
function hasPossibleSingleLineComment(str) {
|
|
807
|
+
return str.indexOf("--") >= 0;
|
|
808
|
+
}
|
|
809
|
+
function sanitizeSingleLineComment(formula, wrapInBrackets) {
|
|
810
|
+
if (!hasPossibleSingleLineComment(formula)) {
|
|
811
|
+
return formula;
|
|
812
|
+
}
|
|
813
|
+
var lines = formula.split("\n");
|
|
814
|
+
var lastLine = lines[lines.length - 1];
|
|
815
|
+
// Кейс, когда хотим избежать повторного добавления переноса строки:
|
|
816
|
+
// уже есть переносы и после последнего переноса нет комментария
|
|
817
|
+
if (lines.length > 1 && lastLine && !hasPossibleSingleLineComment(lastLine)) {
|
|
818
|
+
return formula;
|
|
819
|
+
}
|
|
820
|
+
return wrapInBrackets ? "(".concat(formula, "\n)") : "".concat(formula, "\n");
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
/** @deprecated - следует использовать fillTemplateSql */
|
|
765
824
|
function fillTemplateString(templateString, params) {
|
|
766
|
-
return templateString.replace(/\{(.*?)\}/g, function (_, key) {
|
|
825
|
+
return templateString.replace(/\{(.*?)\}/g, function (_, key) {
|
|
826
|
+
var _a;
|
|
827
|
+
return (_a = params[key]) !== null && _a !== void 0 ? _a : "";
|
|
828
|
+
});
|
|
767
829
|
}
|
|
830
|
+
/** Функция для безопасного заполнения SQL шаблонов с защитой от однострочных SQL комментариев в подставляемых значениях. */
|
|
831
|
+
function fillTemplateSql(templateString, params) {
|
|
832
|
+
var e_1, _a;
|
|
833
|
+
var newParams = {};
|
|
834
|
+
if (templateString.indexOf("'{") >= 0) {
|
|
835
|
+
throw new Error("\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0448\u0430\u0431\u043B\u043E\u043D: \u043F\u043B\u0435\u0439\u0441\u0445\u043E\u043B\u0434\u0435\u0440\u044B \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u044B \u0437\u0430\u043A\u043B\u044E\u0447\u0430\u0442\u044C\u0441\u044F \u0432 \u043E\u0434\u0438\u043D\u0430\u0440\u043D\u044B\u0435 \u043A\u0430\u0432\u044B\u0447\u043A\u0438.\n \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 {placeholder} \u0432\u043C\u0435\u0441\u0442\u043E '{placeholder}'.\n \u041A\u0430\u0432\u044B\u0447\u043A\u0438 \u0434\u043E\u043B\u0436\u043D\u044B \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u0434\u043B\u044F \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0445 \u043F\u043E\u043B\u0435\u0439 \u043F\u0440\u0438 \u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432.");
|
|
836
|
+
}
|
|
837
|
+
try {
|
|
838
|
+
for (var _b = __values(Object.entries(params)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
839
|
+
var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
|
|
840
|
+
if (String(value).indexOf("--") >= 0) {
|
|
841
|
+
newParams[key] = "".concat(value, "\n");
|
|
842
|
+
continue;
|
|
843
|
+
}
|
|
844
|
+
newParams[key] = sanitizeSingleLineComment(String(value));
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
848
|
+
finally {
|
|
849
|
+
try {
|
|
850
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
851
|
+
}
|
|
852
|
+
finally { if (e_1) throw e_1.error; }
|
|
853
|
+
}
|
|
854
|
+
return fillTemplateString(templateString, newParams);
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
/** Создать функцию экранирования переданных `specialChars` внутри `str` */
|
|
858
|
+
var createEscaper = function (specialChars) { return function (str) {
|
|
859
|
+
return specialChars.reduce(function (escaped, char) { return escaped.replaceAll(char, "\\".concat(char)); }, str);
|
|
860
|
+
}; };
|
|
768
861
|
|
|
769
|
-
/**
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
862
|
+
/** Удалить из строки символы экранирования */
|
|
863
|
+
function unescapeSpecialCharacters(str) {
|
|
864
|
+
return str.replace(/\\(?!\\)/g, "").replace(/\\\\/g, "\\");
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
/**
|
|
868
|
+
* Создает RegExp-паттерн для подстроки с безопасными символами.
|
|
869
|
+
*
|
|
870
|
+
* Подстрока может содержать любой символ, кроме:
|
|
871
|
+
* 1. `restrictedChar` - запрещено появление без экранирования.
|
|
872
|
+
* 2. Обратного слэша (`\`) - запрещено появление без пары.
|
|
873
|
+
*
|
|
874
|
+
* Правило экранирования:
|
|
875
|
+
* - Любой символ, включая `restrictedChar` и `\`, можно использовать с префиксом `\`.
|
|
876
|
+
* - Последний символ в подстроке не может быть одинокий слэш.
|
|
877
|
+
*
|
|
878
|
+
* @param restrictedChar Символ, который нельзя использовать без экранирования.
|
|
879
|
+
* @returns Строка для вставки внутрь RegExp.
|
|
880
|
+
*/
|
|
881
|
+
var createEscapableCharPattern = function (restrictedChar) {
|
|
882
|
+
return String.raw(templateObject_1 || (templateObject_1 = __makeTemplateObject(["(?:\\.|[^", "\\])*"], ["(?:\\\\.|[^", "\\\\])*"])), restrictedChar);
|
|
883
|
+
};
|
|
884
|
+
/**
|
|
885
|
+
* Паттерн подстроки, валидной для использования внутри фигурных скобок.
|
|
886
|
+
* Требование к подстроке - отсутствие закрывающих фигурных скобок (кроме экранированных).
|
|
774
887
|
*/
|
|
775
|
-
var
|
|
776
|
-
|
|
888
|
+
var curlyBracketsContentPattern = createEscapableCharPattern("}");
|
|
889
|
+
/**
|
|
890
|
+
* Паттерн подстроки, валидной для использования внутри двойных кавычек.
|
|
891
|
+
* Требование к подстроке - отсутствие двойных кавычек (кроме экранированных).
|
|
892
|
+
*/
|
|
893
|
+
var doubleQuoteContentPattern = createEscapableCharPattern('"');
|
|
894
|
+
var dashboardLinkRegExp = new RegExp(String.raw(templateObject_2 || (templateObject_2 = __makeTemplateObject(["#{(", ")}(?!.{(", ")})"], ["#\\{(", ")\\}(?!\\.\\{(", ")\\})"])), curlyBracketsContentPattern, curlyBracketsContentPattern), "g");
|
|
895
|
+
var workspaceLinkRegExp = new RegExp(String.raw(templateObject_3 || (templateObject_3 = __makeTemplateObject(["#{(", ")}.{(", ")}"], ["#\\{(", ")\\}\\.\\{(", ")\\}"])), curlyBracketsContentPattern, curlyBracketsContentPattern), "g");
|
|
896
|
+
/** Экранирование спец.символов при подстановке названий таблиц и колонок */
|
|
897
|
+
var escapeDoubleQuoteLinkName = createEscaper(Array.from("\\\""));
|
|
898
|
+
/** Экранирование спец.символов при подстановке названий переменных и показателей */
|
|
899
|
+
var escapeCurlyBracketLinkName = createEscaper(Array.from("\\}.[]"));
|
|
900
|
+
var parseIndicatorLink = function (formula) {
|
|
901
|
+
var dashboardMatch = formula.match(dashboardLinkRegExp.source);
|
|
902
|
+
if (dashboardMatch) {
|
|
903
|
+
return { scopeName: null, indicatorName: dashboardMatch[1] };
|
|
904
|
+
}
|
|
905
|
+
var workspaceMatch = formula.match(workspaceLinkRegExp.source);
|
|
906
|
+
if (workspaceMatch) {
|
|
907
|
+
return {
|
|
908
|
+
scopeName: unescapeSpecialCharacters(workspaceMatch[1]),
|
|
909
|
+
indicatorName: unescapeSpecialCharacters(workspaceMatch[2]),
|
|
910
|
+
};
|
|
911
|
+
}
|
|
912
|
+
return null;
|
|
777
913
|
};
|
|
914
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
778
915
|
|
|
779
916
|
function generateColumnFormula(tableName, columnName) {
|
|
780
|
-
|
|
781
|
-
var preparedColumnName = escapeSpecialCharacters(columnName);
|
|
782
|
-
return "\"".concat(preparedTableName, "\".\"").concat(preparedColumnName, "\"");
|
|
917
|
+
return "\"".concat(escapeDoubleQuoteLinkName(tableName), "\".\"").concat(escapeDoubleQuoteLinkName(columnName), "\"");
|
|
783
918
|
}
|
|
784
919
|
|
|
785
920
|
var escapeSingularQuotes = function (formula) {
|
|
@@ -790,7 +925,7 @@ var escapeSingularQuotes = function (formula) {
|
|
|
790
925
|
};
|
|
791
926
|
|
|
792
927
|
var prepareFormulaForSql = function (formula, simpleType) {
|
|
793
|
-
formula =
|
|
928
|
+
formula = sanitizeSingleLineComment(formula, true);
|
|
794
929
|
return simpleType === exports.ESimpleDataType.OTHER ? "toString(".concat(formula, ")") : formula;
|
|
795
930
|
};
|
|
796
931
|
var clearSingleLineComments = function (formula) {
|
|
@@ -872,7 +1007,7 @@ var convertFiltersToFormula = function (filters) {
|
|
|
872
1007
|
return filters.length > 0 ? " AND ".concat(convertToFormulasChain(filters)) : "";
|
|
873
1008
|
};
|
|
874
1009
|
|
|
875
|
-
var _a$
|
|
1010
|
+
var _a$4;
|
|
876
1011
|
exports.EDimensionAggregationTemplateName = void 0;
|
|
877
1012
|
(function (EDimensionAggregationTemplateName) {
|
|
878
1013
|
EDimensionAggregationTemplateName["avg"] = "avg";
|
|
@@ -889,20 +1024,20 @@ exports.EDimensionAggregationTemplateName = void 0;
|
|
|
889
1024
|
EDimensionAggregationTemplateName["countReworks"] = "countReworks";
|
|
890
1025
|
})(exports.EDimensionAggregationTemplateName || (exports.EDimensionAggregationTemplateName = {}));
|
|
891
1026
|
/** Шаблоны процессных метрик разреза с режимом AGGREGATION */
|
|
892
|
-
var dimensionAggregationTemplates = (_a$
|
|
893
|
-
_a$
|
|
894
|
-
_a$
|
|
895
|
-
_a$
|
|
896
|
-
_a$
|
|
897
|
-
_a$
|
|
898
|
-
_a$
|
|
899
|
-
_a$
|
|
900
|
-
_a$
|
|
901
|
-
_a$
|
|
902
|
-
_a$
|
|
903
|
-
_a$
|
|
904
|
-
_a$
|
|
905
|
-
_a$
|
|
1027
|
+
var dimensionAggregationTemplates = (_a$4 = {},
|
|
1028
|
+
_a$4[exports.EDimensionAggregationTemplateName.avg] = avgTemplate,
|
|
1029
|
+
_a$4[exports.EDimensionAggregationTemplateName.median] = medianTemplate,
|
|
1030
|
+
_a$4[exports.EDimensionAggregationTemplateName.count] = countTemplate,
|
|
1031
|
+
_a$4[exports.EDimensionAggregationTemplateName.countDistinct] = countDistinctTemplate,
|
|
1032
|
+
_a$4[exports.EDimensionAggregationTemplateName.min] = minTemplate,
|
|
1033
|
+
_a$4[exports.EDimensionAggregationTemplateName.max] = maxTemplate,
|
|
1034
|
+
_a$4[exports.EDimensionAggregationTemplateName.sum] = sumTemplate,
|
|
1035
|
+
_a$4[exports.EDimensionAggregationTemplateName.top] = topTemplate,
|
|
1036
|
+
_a$4[exports.EDimensionAggregationTemplateName.firstValue] = firstValueTemplate,
|
|
1037
|
+
_a$4[exports.EDimensionAggregationTemplateName.lastValue] = lastValueTemplate,
|
|
1038
|
+
_a$4[exports.EDimensionAggregationTemplateName.countExecutions] = countExecutionsTemplate,
|
|
1039
|
+
_a$4[exports.EDimensionAggregationTemplateName.countReworks] = countReworksTemplate,
|
|
1040
|
+
_a$4);
|
|
906
1041
|
/** На основе значения режима AGGREGATION подготовить параметры для подстановки в шаблонную формулу */
|
|
907
1042
|
var prepareDimensionAggregationParams = function (value) {
|
|
908
1043
|
if (!value.eventName ||
|
|
@@ -915,8 +1050,7 @@ var prepareDimensionAggregationParams = function (value) {
|
|
|
915
1050
|
var commonParams = {
|
|
916
1051
|
eventNameFormula: value.eventNameFormula,
|
|
917
1052
|
caseCaseIdFormula: value.caseCaseIdFormula,
|
|
918
|
-
eventName: value.eventName,
|
|
919
|
-
objectFilters: "1",
|
|
1053
|
+
eventName: "'".concat(escapeSingularQuotes(value.eventName), "'"),
|
|
920
1054
|
filters: convertFiltersToFormula(value.filters),
|
|
921
1055
|
eventTimeFormula: "",
|
|
922
1056
|
columnFormula: "",
|
|
@@ -945,13 +1079,13 @@ var timeTemplates = (function () {
|
|
|
945
1079
|
var generateTemplates = function (innerTemplate) {
|
|
946
1080
|
var templates = {};
|
|
947
1081
|
for (var key in dimensionTemplateFormulas) {
|
|
948
|
-
templates[key] =
|
|
1082
|
+
templates[key] = fillTemplateSql(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
|
|
949
1083
|
}
|
|
950
1084
|
return templates;
|
|
951
1085
|
};
|
|
952
1086
|
return _a = {},
|
|
953
|
-
_a[exports.EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} =
|
|
954
|
-
_a[exports.EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} =
|
|
1087
|
+
_a[exports.EWidgetIndicatorValueModes.START_TIME] = generateTemplates("process(minIf({eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})"),
|
|
1088
|
+
_a[exports.EWidgetIndicatorValueModes.END_TIME] = generateTemplates("process(maxIf({eventTimeFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula})"),
|
|
955
1089
|
_a;
|
|
956
1090
|
})();
|
|
957
1091
|
/** На основе значения режимов START_TIME/END_TIME подготовить параметры для подстановки в шаблонную формулу */
|
|
@@ -969,12 +1103,12 @@ var prepareTimeParams = function (value) {
|
|
|
969
1103
|
eventNameFormula: value.eventNameFormula,
|
|
970
1104
|
caseCaseIdFormula: value.caseCaseIdFormula,
|
|
971
1105
|
filters: convertFiltersToFormula(value.filters),
|
|
972
|
-
eventName: value.eventName,
|
|
1106
|
+
eventName: "'".concat(escapeSingularQuotes(value.eventName), "'"),
|
|
973
1107
|
};
|
|
974
1108
|
};
|
|
975
1109
|
|
|
976
1110
|
function getDimensionFormula(_a) {
|
|
977
|
-
var _b;
|
|
1111
|
+
var _b, _c;
|
|
978
1112
|
var value = _a.value;
|
|
979
1113
|
if (!value) {
|
|
980
1114
|
return "";
|
|
@@ -988,10 +1122,13 @@ function getDimensionFormula(_a) {
|
|
|
988
1122
|
if (!templateFormula || !tableName || !columnName) {
|
|
989
1123
|
return "";
|
|
990
1124
|
}
|
|
991
|
-
return
|
|
1125
|
+
return fillTemplateSql(templateFormula, {
|
|
992
1126
|
columnFormula: generateColumnFormula(tableName, columnName),
|
|
993
1127
|
});
|
|
994
1128
|
}
|
|
1129
|
+
return (_c = getProcessDimensionValueFormula(value)) !== null && _c !== void 0 ? _c : "";
|
|
1130
|
+
}
|
|
1131
|
+
function getProcessDimensionValueFormula(value) {
|
|
995
1132
|
if (value.mode === exports.EWidgetIndicatorValueModes.AGGREGATION) {
|
|
996
1133
|
var preparedParams = prepareDimensionAggregationParams(value);
|
|
997
1134
|
if (!preparedParams) {
|
|
@@ -1001,10 +1138,10 @@ function getDimensionFormula(_a) {
|
|
|
1001
1138
|
? dimensionTemplateFormulas[value.innerTemplateName]
|
|
1002
1139
|
: null;
|
|
1003
1140
|
var columnFormula = innerTemplate
|
|
1004
|
-
?
|
|
1141
|
+
? fillTemplateSql(innerTemplate, { columnFormula: preparedParams.columnFormula })
|
|
1005
1142
|
: preparedParams.columnFormula;
|
|
1006
1143
|
var dimensionAggregationTemplate = dimensionAggregationTemplates[value.templateName];
|
|
1007
|
-
return
|
|
1144
|
+
return fillTemplateSql(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
|
|
1008
1145
|
}
|
|
1009
1146
|
if (value.mode === exports.EWidgetIndicatorValueModes.START_TIME ||
|
|
1010
1147
|
value.mode === exports.EWidgetIndicatorValueModes.END_TIME) {
|
|
@@ -1013,9 +1150,8 @@ function getDimensionFormula(_a) {
|
|
|
1013
1150
|
return "";
|
|
1014
1151
|
}
|
|
1015
1152
|
var templateFormula = timeTemplates[value.mode][value.templateName];
|
|
1016
|
-
return
|
|
1153
|
+
return fillTemplateSql(templateFormula, preparedParams);
|
|
1017
1154
|
}
|
|
1018
|
-
return "";
|
|
1019
1155
|
}
|
|
1020
1156
|
|
|
1021
1157
|
exports.EMeasureAggregationTemplateName = void 0;
|
|
@@ -1047,8 +1183,7 @@ var prepareMeasureAggregationParams = function (value) {
|
|
|
1047
1183
|
outerAggregation: value.outerAggregation,
|
|
1048
1184
|
eventNameFormula: value.eventNameFormula,
|
|
1049
1185
|
caseCaseIdFormula: value.caseCaseIdFormula,
|
|
1050
|
-
eventName: value.eventName,
|
|
1051
|
-
objectFilters: "1",
|
|
1186
|
+
eventName: value.eventName ? "'".concat(escapeSingularQuotes(value.eventName), "'") : "",
|
|
1052
1187
|
filters: convertFiltersToFormula(value.filters),
|
|
1053
1188
|
eventTimeFormula: "",
|
|
1054
1189
|
columnFormula: "",
|
|
@@ -1069,7 +1204,7 @@ var prepareMeasureAggregationParams = function (value) {
|
|
|
1069
1204
|
return columnParams;
|
|
1070
1205
|
};
|
|
1071
1206
|
|
|
1072
|
-
var _a$
|
|
1207
|
+
var _a$3, _b;
|
|
1073
1208
|
exports.EMeasureTemplateNames = void 0;
|
|
1074
1209
|
(function (EMeasureTemplateNames) {
|
|
1075
1210
|
EMeasureTemplateNames["avg"] = "avg";
|
|
@@ -1080,19 +1215,28 @@ exports.EMeasureTemplateNames = void 0;
|
|
|
1080
1215
|
EMeasureTemplateNames["max"] = "max";
|
|
1081
1216
|
EMeasureTemplateNames["sum"] = "sum";
|
|
1082
1217
|
})(exports.EMeasureTemplateNames || (exports.EMeasureTemplateNames = {}));
|
|
1218
|
+
exports.EMeasureInnerTemplateNames = void 0;
|
|
1219
|
+
(function (EMeasureInnerTemplateNames) {
|
|
1220
|
+
EMeasureInnerTemplateNames["begin"] = "begin";
|
|
1221
|
+
EMeasureInnerTemplateNames["end"] = "end";
|
|
1222
|
+
})(exports.EMeasureInnerTemplateNames || (exports.EMeasureInnerTemplateNames = {}));
|
|
1083
1223
|
/** Стандартные шаблоны меры */
|
|
1084
|
-
var measureTemplateFormulas = (_a$
|
|
1085
|
-
_a$
|
|
1086
|
-
_a$
|
|
1087
|
-
_a$
|
|
1088
|
-
_a$
|
|
1089
|
-
_a$
|
|
1090
|
-
_a$
|
|
1091
|
-
_a$
|
|
1092
|
-
_a$
|
|
1224
|
+
var measureTemplateFormulas = (_a$3 = {},
|
|
1225
|
+
_a$3[exports.EMeasureTemplateNames.avg] = "avg({columnFormula})",
|
|
1226
|
+
_a$3[exports.EMeasureTemplateNames.count] = "count({columnFormula})",
|
|
1227
|
+
_a$3[exports.EMeasureTemplateNames.countDistinct] = "count(distinct {columnFormula})",
|
|
1228
|
+
_a$3[exports.EMeasureTemplateNames.median] = "medianExact({columnFormula})",
|
|
1229
|
+
_a$3[exports.EMeasureTemplateNames.min] = "min({columnFormula})",
|
|
1230
|
+
_a$3[exports.EMeasureTemplateNames.max] = "max({columnFormula})",
|
|
1231
|
+
_a$3[exports.EMeasureTemplateNames.sum] = "sum({columnFormula})",
|
|
1232
|
+
_a$3);
|
|
1233
|
+
var measureInnerTemplateFormulas = (_b = {},
|
|
1234
|
+
_b[exports.EMeasureInnerTemplateNames.begin] = "begin({columnFormula})",
|
|
1235
|
+
_b[exports.EMeasureInnerTemplateNames.end] = "end({columnFormula})",
|
|
1236
|
+
_b);
|
|
1093
1237
|
|
|
1094
1238
|
/** Шаблон процессной метрики меры с режимом CONVERSION */
|
|
1095
|
-
var conversionTemplate = "countIf(\n process(\n minIf(\n {startEventTimeFormula}, \n {startEventNameFormula} =
|
|
1239
|
+
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)";
|
|
1096
1240
|
/** На основе значения режима CONVERSION подготовить параметры для подстановки в шаблонную формулу */
|
|
1097
1241
|
var prepareConversionParams = function (value) {
|
|
1098
1242
|
if (!value.startEventName ||
|
|
@@ -1107,15 +1251,14 @@ var prepareConversionParams = function (value) {
|
|
|
1107
1251
|
return null;
|
|
1108
1252
|
}
|
|
1109
1253
|
return {
|
|
1110
|
-
objectFilters: "1",
|
|
1111
1254
|
startEventTimeFormula: value.startEventTimeFormula,
|
|
1112
1255
|
startEventNameFormula: value.startEventNameFormula,
|
|
1113
1256
|
startEventFilters: convertFiltersToFormula(value.startEventFilters),
|
|
1114
|
-
startEventName: value.startEventName,
|
|
1257
|
+
startEventName: "'".concat(escapeSingularQuotes(value.startEventName), "'"),
|
|
1115
1258
|
endEventTimeFormula: value.endEventTimeFormula,
|
|
1116
1259
|
endCaseCaseIdFormula: value.endCaseCaseIdFormula,
|
|
1117
1260
|
endEventNameFormula: value.endEventNameFormula,
|
|
1118
|
-
endEventName: value.endEventName,
|
|
1261
|
+
endEventName: "'".concat(escapeSingularQuotes(value.endEventName), "'"),
|
|
1119
1262
|
endEventFilters: convertFiltersToFormula(value.endEventFilters),
|
|
1120
1263
|
};
|
|
1121
1264
|
};
|
|
@@ -1123,7 +1266,7 @@ var prepareConversionParams = function (value) {
|
|
|
1123
1266
|
/** Шаблоны процессных метрик меры с режимом DURATION */
|
|
1124
1267
|
var durationTemplates = (function () {
|
|
1125
1268
|
var _a;
|
|
1126
|
-
var innerTemplate = "\n timeDiff(\n process(\n {startEventAggregationName}(\n {startEventTimeFormula}, \n {startEventNameFormula} =
|
|
1269
|
+
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 ";
|
|
1127
1270
|
return _a = {},
|
|
1128
1271
|
_a[exports.EDurationTemplateName.avg] = "avgIf(".concat(innerTemplate, ")"),
|
|
1129
1272
|
_a[exports.EDurationTemplateName.median] = "medianIf(".concat(innerTemplate, ")"),
|
|
@@ -1146,32 +1289,31 @@ var prepareDurationParams = function (value) {
|
|
|
1146
1289
|
return appearance === exports.EEventAppearances.FIRST ? "minIf" : "maxIf";
|
|
1147
1290
|
};
|
|
1148
1291
|
return {
|
|
1149
|
-
objectFilters: "1",
|
|
1150
1292
|
startEventTimeFormula: value.startEventTimeFormula,
|
|
1151
1293
|
startEventNameFormula: value.startEventNameFormula,
|
|
1152
1294
|
startEventFilters: convertFiltersToFormula(value.startEventFilters),
|
|
1153
|
-
startEventName: value.startEventName,
|
|
1295
|
+
startEventName: "'".concat(escapeSingularQuotes(value.startEventName), "'"),
|
|
1154
1296
|
startEventAggregationName: getAggregationNameByAppearances(value.startEventAppearances),
|
|
1155
1297
|
endEventTimeFormula: value.endEventTimeFormula,
|
|
1156
1298
|
endCaseCaseIdFormula: value.endCaseCaseIdFormula,
|
|
1157
1299
|
endEventNameFormula: value.endEventNameFormula,
|
|
1158
|
-
endEventName: value.endEventName,
|
|
1300
|
+
endEventName: "'".concat(escapeSingularQuotes(value.endEventName), "'"),
|
|
1159
1301
|
endEventFilters: convertFiltersToFormula(value.endEventFilters),
|
|
1160
1302
|
endEventAggregationName: getAggregationNameByAppearances(value.endEventAppearances),
|
|
1161
1303
|
};
|
|
1162
1304
|
};
|
|
1163
1305
|
|
|
1164
1306
|
function createAnyEventTemplate(aggregatePart) {
|
|
1165
|
-
return "{outerAggregation}
|
|
1307
|
+
return "{outerAggregation}(process(".concat(aggregatePart, ", {caseCaseIdFormula}))");
|
|
1166
1308
|
}
|
|
1167
1309
|
function createSpecificEventTemplate(fn, additionalFn) {
|
|
1168
|
-
return "{outerAggregation}
|
|
1310
|
+
return "{outerAggregation}(process(".concat(fn, "(").concat(additionalFn ? "".concat(additionalFn, " ") : "", "{columnFormula}, {eventNameFormula} = {eventName}{filters}), {caseCaseIdFormula}))");
|
|
1169
1311
|
}
|
|
1170
1312
|
function createTopLikeTemplate(template) {
|
|
1171
1313
|
return function (outerAggregation) {
|
|
1172
1314
|
return outerAggregation === exports.EOuterAggregation.top
|
|
1173
|
-
? "{outerAggregation}
|
|
1174
|
-
: "{outerAggregation}
|
|
1315
|
+
? "{outerAggregation}K(1)(".concat(template, ")[1]")
|
|
1316
|
+
: "{outerAggregation}(".concat(template, ")");
|
|
1175
1317
|
};
|
|
1176
1318
|
}
|
|
1177
1319
|
function createAggregationTemplate(templateName, _a) {
|
|
@@ -1218,9 +1360,9 @@ function createAggregationTemplate(templateName, _a) {
|
|
|
1218
1360
|
? createAnyEventTemplate("argMax({columnFormula}, {eventTimeFormula})")
|
|
1219
1361
|
: createTopLikeTemplate(lastValueTemplate)(outerAggregation);
|
|
1220
1362
|
case exports.EMeasureAggregationTemplateName.countExecutions:
|
|
1221
|
-
return "{outerAggregation}
|
|
1363
|
+
return "{outerAggregation}(".concat(countExecutionsTemplate, ")");
|
|
1222
1364
|
case exports.EMeasureAggregationTemplateName.countReworks:
|
|
1223
|
-
return "{outerAggregation}
|
|
1365
|
+
return "{outerAggregation}(".concat(countReworksTemplate, ")");
|
|
1224
1366
|
}
|
|
1225
1367
|
}
|
|
1226
1368
|
|
|
@@ -1234,19 +1376,24 @@ function getMeasureFormula(_a) {
|
|
|
1234
1376
|
return (_b = value.formula) !== null && _b !== void 0 ? _b : "";
|
|
1235
1377
|
}
|
|
1236
1378
|
if (value.mode === exports.EWidgetIndicatorValueModes.TEMPLATE) {
|
|
1237
|
-
var templateName = value.templateName, tableName = value.tableName, columnName = value.columnName;
|
|
1379
|
+
var templateName = value.templateName, tableName = value.tableName, columnName = value.columnName, innerTemplateName = value.innerTemplateName;
|
|
1238
1380
|
var templateFormula = measureTemplateFormulas[templateName];
|
|
1239
1381
|
if (!templateFormula || !tableName || !columnName) {
|
|
1240
1382
|
return "";
|
|
1241
1383
|
}
|
|
1242
|
-
|
|
1243
|
-
|
|
1384
|
+
var columnFormula = innerTemplateName
|
|
1385
|
+
? fillTemplateSql(measureInnerTemplateFormulas[innerTemplateName], {
|
|
1386
|
+
columnFormula: generateColumnFormula(tableName, columnName),
|
|
1387
|
+
})
|
|
1388
|
+
: generateColumnFormula(tableName, columnName);
|
|
1389
|
+
return fillTemplateSql(templateFormula, {
|
|
1390
|
+
columnFormula: columnFormula,
|
|
1244
1391
|
});
|
|
1245
1392
|
}
|
|
1246
1393
|
if (value.mode === exports.EWidgetIndicatorValueModes.AGGREGATION) {
|
|
1247
1394
|
var preparedParams = prepareMeasureAggregationParams(value);
|
|
1248
1395
|
return preparedParams
|
|
1249
|
-
?
|
|
1396
|
+
? fillTemplateSql(createAggregationTemplate(value.templateName, {
|
|
1250
1397
|
outerAggregation: preparedParams.outerAggregation,
|
|
1251
1398
|
anyEvent: value.anyEvent,
|
|
1252
1399
|
}), preparedParams)
|
|
@@ -1257,28 +1404,28 @@ function getMeasureFormula(_a) {
|
|
|
1257
1404
|
if (!preparedParams) {
|
|
1258
1405
|
return "";
|
|
1259
1406
|
}
|
|
1260
|
-
return
|
|
1407
|
+
return fillTemplateSql(conversionTemplate, preparedParams);
|
|
1261
1408
|
}
|
|
1262
1409
|
if (value.mode === exports.EWidgetIndicatorValueModes.DURATION) {
|
|
1263
1410
|
var preparedParams = prepareDurationParams(value);
|
|
1264
1411
|
if (!preparedParams) {
|
|
1265
1412
|
return "";
|
|
1266
1413
|
}
|
|
1267
|
-
return
|
|
1414
|
+
return fillTemplateSql(durationTemplates[value.templateName], preparedParams);
|
|
1268
1415
|
}
|
|
1269
1416
|
return "";
|
|
1270
1417
|
}
|
|
1271
1418
|
|
|
1272
|
-
var _a$
|
|
1419
|
+
var _a$2;
|
|
1273
1420
|
exports.EEventMeasureTemplateNames = void 0;
|
|
1274
1421
|
(function (EEventMeasureTemplateNames) {
|
|
1275
1422
|
EEventMeasureTemplateNames["eventsCount"] = "eventsCount";
|
|
1276
1423
|
EEventMeasureTemplateNames["reworksCount"] = "reworksCount";
|
|
1277
1424
|
})(exports.EEventMeasureTemplateNames || (exports.EEventMeasureTemplateNames = {}));
|
|
1278
|
-
var eventMeasureTemplateFormulas = (_a$
|
|
1279
|
-
_a$
|
|
1280
|
-
_a$
|
|
1281
|
-
_a$
|
|
1425
|
+
var eventMeasureTemplateFormulas = (_a$2 = {},
|
|
1426
|
+
_a$2[exports.EEventMeasureTemplateNames.eventsCount] = "count()",
|
|
1427
|
+
_a$2[exports.EEventMeasureTemplateNames.reworksCount] = "count() - uniqExact({caseCaseIdFormula})",
|
|
1428
|
+
_a$2);
|
|
1282
1429
|
|
|
1283
1430
|
function getEventMeasureFormula(_a, process) {
|
|
1284
1431
|
var value = _a.value;
|
|
@@ -1290,21 +1437,21 @@ function getEventMeasureFormula(_a, process) {
|
|
|
1290
1437
|
}
|
|
1291
1438
|
if (value.mode === exports.EWidgetIndicatorValueModes.TEMPLATE) {
|
|
1292
1439
|
var templateFormula = eventMeasureTemplateFormulas[value.templateName];
|
|
1293
|
-
return templateFormula &&
|
|
1440
|
+
return templateFormula && fillTemplateSql(templateFormula, process);
|
|
1294
1441
|
}
|
|
1295
1442
|
return "";
|
|
1296
1443
|
}
|
|
1297
1444
|
|
|
1298
|
-
var _a;
|
|
1445
|
+
var _a$1;
|
|
1299
1446
|
exports.ETransitionMeasureTemplateNames = void 0;
|
|
1300
1447
|
(function (ETransitionMeasureTemplateNames) {
|
|
1301
1448
|
ETransitionMeasureTemplateNames["transitionsCount"] = "transitionsCount";
|
|
1302
1449
|
ETransitionMeasureTemplateNames["medianTime"] = "medianTime";
|
|
1303
1450
|
})(exports.ETransitionMeasureTemplateNames || (exports.ETransitionMeasureTemplateNames = {}));
|
|
1304
|
-
var transitionMeasureTemplateFormulas = (_a = {},
|
|
1305
|
-
_a[exports.ETransitionMeasureTemplateNames.transitionsCount] = "count()",
|
|
1306
|
-
_a[exports.ETransitionMeasureTemplateNames.medianTime] = "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))",
|
|
1307
|
-
_a);
|
|
1451
|
+
var transitionMeasureTemplateFormulas = (_a$1 = {},
|
|
1452
|
+
_a$1[exports.ETransitionMeasureTemplateNames.transitionsCount] = "count()",
|
|
1453
|
+
_a$1[exports.ETransitionMeasureTemplateNames.medianTime] = "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))",
|
|
1454
|
+
_a$1);
|
|
1308
1455
|
|
|
1309
1456
|
function getTransitionMeasureFormula(_a, process) {
|
|
1310
1457
|
var value = _a.value;
|
|
@@ -1316,52 +1463,16 @@ function getTransitionMeasureFormula(_a, process) {
|
|
|
1316
1463
|
}
|
|
1317
1464
|
if (value.mode === exports.EWidgetIndicatorValueModes.TEMPLATE) {
|
|
1318
1465
|
var templateFormula = transitionMeasureTemplateFormulas[value.templateName];
|
|
1319
|
-
return templateFormula &&
|
|
1466
|
+
return templateFormula && fillTemplateSql(templateFormula, process);
|
|
1320
1467
|
}
|
|
1321
1468
|
return "";
|
|
1322
1469
|
}
|
|
1323
1470
|
|
|
1324
|
-
/** Удалить из строки символы экранирования */
|
|
1325
|
-
function unescapeSpecialCharacters(str) {
|
|
1326
|
-
return str.replace(/\\(?!\\)/g, "").replace(/\\\\/g, "\\");
|
|
1327
|
-
}
|
|
1328
|
-
|
|
1329
|
-
/**
|
|
1330
|
-
* Регулярное выражение для поиска имени ссылки внутри формулы.
|
|
1331
|
-
* Учитывает, что имя внутри формулы содержит экраны.
|
|
1332
|
-
*
|
|
1333
|
-
* Принцип работы:
|
|
1334
|
-
* Пробовать следующие вхождения:
|
|
1335
|
-
* - \\\\ - экранированный символ обратного слэша.
|
|
1336
|
-
* - Иначе \\" - экранированный символ кавычки.
|
|
1337
|
-
* - Иначе [^"] - любой символ кроме кавычки.
|
|
1338
|
-
* Если встречается любой другой символ, то это закрывающая кавычка имени переменной.
|
|
1339
|
-
*/
|
|
1340
|
-
var linkNameRegExp = "(?:\\\\\\\\|\\\\\"|[^\"])+";
|
|
1341
|
-
var dashboardLinkRegExp = new RegExp("link: \"(".concat(linkNameRegExp, ")\"(?!\\.\"").concat(linkNameRegExp, "\")"), "g");
|
|
1342
|
-
var workspaceLinkRegExp = new RegExp("link: \"(".concat(linkNameRegExp, ")\"\\.\"(").concat(linkNameRegExp, ")\""), "g");
|
|
1343
|
-
var parseIndicatorLink = function (formula) {
|
|
1344
|
-
var dashboardMatch = formula.match(dashboardLinkRegExp.source);
|
|
1345
|
-
if (dashboardMatch) {
|
|
1346
|
-
return { scopeName: null, indicatorName: dashboardMatch[1] };
|
|
1347
|
-
}
|
|
1348
|
-
var workspaceMatch = formula.match(workspaceLinkRegExp.source);
|
|
1349
|
-
if (workspaceMatch) {
|
|
1350
|
-
return {
|
|
1351
|
-
scopeName: unescapeSpecialCharacters(workspaceMatch[1]),
|
|
1352
|
-
indicatorName: unescapeSpecialCharacters(workspaceMatch[2]),
|
|
1353
|
-
};
|
|
1354
|
-
}
|
|
1355
|
-
return null;
|
|
1356
|
-
};
|
|
1357
|
-
|
|
1358
1471
|
// Типы, используемые в значениях элементов управления.
|
|
1359
1472
|
exports.EWidgetFilterMode = void 0;
|
|
1360
1473
|
(function (EWidgetFilterMode) {
|
|
1361
1474
|
EWidgetFilterMode["DEFAULT"] = "DEFAULT";
|
|
1362
1475
|
EWidgetFilterMode["SINGLE"] = "SINGLE";
|
|
1363
|
-
/** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
|
|
1364
|
-
EWidgetFilterMode["MULTI"] = "MULTI";
|
|
1365
1476
|
EWidgetFilterMode["DISABLED"] = "DISABLED";
|
|
1366
1477
|
})(exports.EWidgetFilterMode || (exports.EWidgetFilterMode = {}));
|
|
1367
1478
|
exports.EMarkdownDisplayMode = void 0;
|
|
@@ -1536,7 +1647,9 @@ var getFormulaFilterValues = function (filterValue) {
|
|
|
1536
1647
|
}
|
|
1537
1648
|
return [];
|
|
1538
1649
|
};
|
|
1539
|
-
var applyIndexToArrayFormula = function (formula, index) {
|
|
1650
|
+
var applyIndexToArrayFormula = function (formula, index) {
|
|
1651
|
+
return "(".concat(formula, ")[").concat(index, "]");
|
|
1652
|
+
};
|
|
1540
1653
|
var mapFormulaFilterToCalculatorInput = function (filterValue) {
|
|
1541
1654
|
if (!filterValue) {
|
|
1542
1655
|
return null;
|
|
@@ -1544,7 +1657,7 @@ var mapFormulaFilterToCalculatorInput = function (filterValue) {
|
|
|
1544
1657
|
if (!isFormulaFilterValue(filterValue)) {
|
|
1545
1658
|
return {
|
|
1546
1659
|
dbDataType: exports.EClickHouseBaseTypes.Bool,
|
|
1547
|
-
formula:
|
|
1660
|
+
formula: fillTemplateSql(displayConditionTemplate, {
|
|
1548
1661
|
formula: prepareFormulaForSql(filterValue.formula),
|
|
1549
1662
|
}),
|
|
1550
1663
|
values: ["true"],
|
|
@@ -1579,6 +1692,46 @@ var mapFormulaFiltersToInputs = function (filters) {
|
|
|
1579
1692
|
return compactMap(filters, mapFormulaFilterToCalculatorInput);
|
|
1580
1693
|
};
|
|
1581
1694
|
|
|
1695
|
+
var _a;
|
|
1696
|
+
var intervalByUnit = (_a = {},
|
|
1697
|
+
_a[exports.EDimensionProcessFilterTimeUnit.YEARS] = "year",
|
|
1698
|
+
_a[exports.EDimensionProcessFilterTimeUnit.MONTHS] = "month",
|
|
1699
|
+
_a[exports.EDimensionProcessFilterTimeUnit.DAYS] = "day",
|
|
1700
|
+
_a[exports.EDimensionProcessFilterTimeUnit.HOURS] = "hour",
|
|
1701
|
+
_a[exports.EDimensionProcessFilterTimeUnit.MINUTES] = "minute",
|
|
1702
|
+
_a);
|
|
1703
|
+
function mapDimensionProcessFilterToCalculatorInput(filter) {
|
|
1704
|
+
var formula = filter.value.mode === exports.EWidgetIndicatorValueModes.FORMULA
|
|
1705
|
+
? filter.value.formula
|
|
1706
|
+
: getProcessDimensionValueFormula(filter.value);
|
|
1707
|
+
if (formula === undefined) {
|
|
1708
|
+
throw new Error("Formula generation error");
|
|
1709
|
+
}
|
|
1710
|
+
var _a = filter.condition, timeUnit = _a.timeUnit, filteringMethod = _a.filteringMethod, values = _a.values;
|
|
1711
|
+
if (filteringMethod === "LAST_TIME") {
|
|
1712
|
+
if (!timeUnit) {
|
|
1713
|
+
throw new Error("Missing time unit");
|
|
1714
|
+
}
|
|
1715
|
+
return {
|
|
1716
|
+
dbDataType: exports.EClickHouseBaseTypes.Bool,
|
|
1717
|
+
formula: "date_diff('".concat(intervalByUnit[timeUnit], "', ").concat(formula, ", now())"),
|
|
1718
|
+
values: values,
|
|
1719
|
+
filteringMethod: formulaFilterMethods.LESS_THAN_OR_EQUAL_TO,
|
|
1720
|
+
};
|
|
1721
|
+
}
|
|
1722
|
+
return { formula: formula, filteringMethod: filteringMethod, values: values, dbDataType: filter.dbDataType };
|
|
1723
|
+
}
|
|
1724
|
+
|
|
1725
|
+
var mapSettingsFilterToCalculatorInput = function (filter) {
|
|
1726
|
+
if (isDimensionProcessFilter(filter)) {
|
|
1727
|
+
return mapDimensionProcessFilterToCalculatorInput(filter);
|
|
1728
|
+
}
|
|
1729
|
+
return mapFormulaFilterToCalculatorInput(filter);
|
|
1730
|
+
};
|
|
1731
|
+
var mapSettingsFiltersToInputs = function (filters) {
|
|
1732
|
+
return compactMap(filters, mapSettingsFilterToCalculatorInput);
|
|
1733
|
+
};
|
|
1734
|
+
|
|
1582
1735
|
function mapMeasureToInput(measure, variables, addFormulas) {
|
|
1583
1736
|
if (addFormulas === void 0) { addFormulas = function () { return new Map(); }; }
|
|
1584
1737
|
var mainFormula = getMeasureFormula(measure);
|
|
@@ -1720,7 +1873,8 @@ var getDefaultSortOrders = function (_a) {
|
|
|
1720
1873
|
}
|
|
1721
1874
|
/** Если есть временной разрез, то авто-сортировка по первому такому разрезу (по возрастанию) */
|
|
1722
1875
|
var timeDimension = dimensions.find(function (dimension) {
|
|
1723
|
-
|
|
1876
|
+
var _a;
|
|
1877
|
+
return ((_a = dimension.format) === null || _a === void 0 ? void 0 : _a.value) &&
|
|
1724
1878
|
[
|
|
1725
1879
|
exports.EFormatTypes.DATE,
|
|
1726
1880
|
exports.EFormatTypes.MONTH,
|
|
@@ -1733,7 +1887,7 @@ var getDefaultSortOrders = function (_a) {
|
|
|
1733
1887
|
exports.EFormatTypes.QUARTER_YEAR,
|
|
1734
1888
|
exports.EFormatTypes.DAY_OF_MONTH,
|
|
1735
1889
|
exports.EFormatTypes.WEEK,
|
|
1736
|
-
].includes(dimension.format);
|
|
1890
|
+
].includes(dimension.format.value);
|
|
1737
1891
|
});
|
|
1738
1892
|
if (timeDimension) {
|
|
1739
1893
|
return [
|
|
@@ -1837,6 +1991,8 @@ exports.EControlType = void 0;
|
|
|
1837
1991
|
(function (EControlType) {
|
|
1838
1992
|
/** Ввод текста */
|
|
1839
1993
|
EControlType["input"] = "input";
|
|
1994
|
+
/** Ввод текста с поддержкой шаблонной вставки сущностей */
|
|
1995
|
+
EControlType["inputTemplate"] = "inputTemplate";
|
|
1840
1996
|
/** Ввод текста в формате markdown */
|
|
1841
1997
|
EControlType["inputMarkdown"] = "inputMarkdown";
|
|
1842
1998
|
/** Ввод числа */
|
|
@@ -1950,19 +2106,6 @@ var updateSingleModeSelection = function (selection, formula, value) {
|
|
|
1950
2106
|
replacedFilter: null,
|
|
1951
2107
|
});
|
|
1952
2108
|
};
|
|
1953
|
-
/** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
|
|
1954
|
-
var updateMultiModeSelection = function (selection, formula, value) {
|
|
1955
|
-
var _a;
|
|
1956
|
-
var selectionItemValues = getSelectionItemValues(value, exports.EWidgetFilterMode.MULTI, (_a = selection.get(formula)) === null || _a === void 0 ? void 0 : _a.values);
|
|
1957
|
-
if (!selectionItemValues.size) {
|
|
1958
|
-
selection.delete(formula);
|
|
1959
|
-
return;
|
|
1960
|
-
}
|
|
1961
|
-
selection.set(formula, {
|
|
1962
|
-
values: selectionItemValues,
|
|
1963
|
-
replacedFilter: null,
|
|
1964
|
-
});
|
|
1965
|
-
};
|
|
1966
2109
|
var replaceFiltersBySelection = function (filters, selection) {
|
|
1967
2110
|
return filters.reduce(function (acc, filter) {
|
|
1968
2111
|
var _a;
|
|
@@ -2102,14 +2245,19 @@ exports.conversionTemplate = conversionTemplate;
|
|
|
2102
2245
|
exports.convertFiltersToFormula = convertFiltersToFormula;
|
|
2103
2246
|
exports.convertToFormulasChain = convertToFormulasChain;
|
|
2104
2247
|
exports.countExecutionsTemplate = countExecutionsTemplate;
|
|
2248
|
+
exports.createEscaper = createEscaper;
|
|
2105
2249
|
exports.createMeasureAggregationTemplate = createAggregationTemplate;
|
|
2250
|
+
exports.curlyBracketsContentPattern = curlyBracketsContentPattern;
|
|
2106
2251
|
exports.dashboardLinkRegExp = dashboardLinkRegExp;
|
|
2107
2252
|
exports.dimensionAggregationTemplates = dimensionAggregationTemplates;
|
|
2108
2253
|
exports.dimensionTemplateFormulas = dimensionTemplateFormulas;
|
|
2109
2254
|
exports.displayConditionTemplate = displayConditionTemplate;
|
|
2255
|
+
exports.doubleQuoteContentPattern = doubleQuoteContentPattern;
|
|
2110
2256
|
exports.durationTemplates = durationTemplates;
|
|
2111
|
-
exports.
|
|
2257
|
+
exports.escapeCurlyBracketLinkName = escapeCurlyBracketLinkName;
|
|
2258
|
+
exports.escapeDoubleQuoteLinkName = escapeDoubleQuoteLinkName;
|
|
2112
2259
|
exports.eventMeasureTemplateFormulas = eventMeasureTemplateFormulas;
|
|
2260
|
+
exports.fillTemplateSql = fillTemplateSql;
|
|
2113
2261
|
exports.fillTemplateString = fillTemplateString;
|
|
2114
2262
|
exports.formattingConfig = formattingConfig;
|
|
2115
2263
|
exports.formulaFilterMethods = formulaFilterMethods;
|
|
@@ -2121,19 +2269,22 @@ exports.getDisplayConditionFormula = getDisplayConditionFormula;
|
|
|
2121
2269
|
exports.getEventMeasureFormula = getEventMeasureFormula;
|
|
2122
2270
|
exports.getLocalizedText = getLocalizedText;
|
|
2123
2271
|
exports.getMeasureFormula = getMeasureFormula;
|
|
2272
|
+
exports.getProcessDimensionValueFormula = getProcessDimensionValueFormula;
|
|
2124
2273
|
exports.getRuleColor = getRuleColor;
|
|
2125
2274
|
exports.getTransitionMeasureFormula = getTransitionMeasureFormula;
|
|
2275
|
+
exports.isDimensionProcessFilter = isDimensionProcessFilter;
|
|
2126
2276
|
exports.isDimensionsHierarchy = isDimensionsHierarchy;
|
|
2127
2277
|
exports.isFormulaFilterValue = isFormulaFilterValue;
|
|
2128
2278
|
exports.isValidColor = isValidColor;
|
|
2129
|
-
exports.linkNameRegExp = linkNameRegExp;
|
|
2130
2279
|
exports.mapDimensionsToInputs = mapDimensionsToInputs;
|
|
2131
2280
|
exports.mapEventMeasuresToInputs = mapEventMeasuresToInputs;
|
|
2132
2281
|
exports.mapFormulaFilterToCalculatorInput = mapFormulaFilterToCalculatorInput;
|
|
2133
2282
|
exports.mapFormulaFiltersToInputs = mapFormulaFiltersToInputs;
|
|
2134
2283
|
exports.mapMeasuresToInputs = mapMeasuresToInputs;
|
|
2284
|
+
exports.mapSettingsFiltersToInputs = mapSettingsFiltersToInputs;
|
|
2135
2285
|
exports.mapSortingToInputs = mapSortingToInputs;
|
|
2136
2286
|
exports.mapTransitionMeasuresToInputs = mapTransitionMeasuresToInputs;
|
|
2287
|
+
exports.measureInnerTemplateFormulas = measureInnerTemplateFormulas;
|
|
2137
2288
|
exports.measureTemplateFormulas = measureTemplateFormulas;
|
|
2138
2289
|
exports.parseClickHouseType = parseClickHouseType;
|
|
2139
2290
|
exports.parseIndicatorLink = parseIndicatorLink;
|
|
@@ -2153,6 +2304,5 @@ exports.timeTemplates = timeTemplates;
|
|
|
2153
2304
|
exports.transitionMeasureTemplateFormulas = transitionMeasureTemplateFormulas;
|
|
2154
2305
|
exports.unescapeSpecialCharacters = unescapeSpecialCharacters;
|
|
2155
2306
|
exports.updateDefaultModeSelection = updateDefaultModeSelection;
|
|
2156
|
-
exports.updateMultiModeSelection = updateMultiModeSelection;
|
|
2157
2307
|
exports.updateSingleModeSelection = updateSingleModeSelection;
|
|
2158
2308
|
exports.workspaceLinkRegExp = workspaceLinkRegExp;
|