@infomaximum/widget-sdk 6.0.0-5 → 6.0.0-7
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 +18 -0
- package/dist/index.d.ts +521 -498
- package/dist/index.esm.js +86 -16
- package/dist/index.js +86 -15
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -132,6 +132,35 @@ 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
|
+
|
|
135
164
|
function __makeTemplateObject(cooked, raw) {
|
|
136
165
|
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
137
166
|
return cooked;
|
|
@@ -680,6 +709,11 @@ var ESortingValueModes;
|
|
|
680
709
|
/** Сортировка по показателю(разрезу или мере) виджета */
|
|
681
710
|
ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
|
|
682
711
|
})(ESortingValueModes || (ESortingValueModes = {}));
|
|
712
|
+
var EFormatOrFormattingMode;
|
|
713
|
+
(function (EFormatOrFormattingMode) {
|
|
714
|
+
EFormatOrFormattingMode["BASE"] = "BASE";
|
|
715
|
+
EFormatOrFormattingMode["TEMPLATE"] = "TEMPLATE";
|
|
716
|
+
})(EFormatOrFormattingMode || (EFormatOrFormattingMode = {}));
|
|
683
717
|
/** Тип показателя */
|
|
684
718
|
var EIndicatorType;
|
|
685
719
|
(function (EIndicatorType) {
|
|
@@ -759,8 +793,41 @@ var minTemplate = createAggregationTemplate$1("minIf");
|
|
|
759
793
|
var maxTemplate = createAggregationTemplate$1("maxIf");
|
|
760
794
|
var sumTemplate = createAggregationTemplate$1("sumIf");
|
|
761
795
|
|
|
796
|
+
/** @deprecated - следует использовать fillTemplateSql */
|
|
762
797
|
function fillTemplateString(templateString, params) {
|
|
763
|
-
return templateString.replace(/\{(.*?)\}/g, function (_, key) {
|
|
798
|
+
return templateString.replace(/\{(.*?)\}/g, function (_, key) {
|
|
799
|
+
var _a;
|
|
800
|
+
return (_a = params[key]) !== null && _a !== void 0 ? _a : "";
|
|
801
|
+
});
|
|
802
|
+
}
|
|
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
|
+
if (!value) {
|
|
811
|
+
newParams[key] = value;
|
|
812
|
+
break;
|
|
813
|
+
}
|
|
814
|
+
/** Эвристическая проверка на возможное присутствие sql-комментария в значении подставляемом в template
|
|
815
|
+
*/
|
|
816
|
+
if (typeof value === "string" && value.indexOf("--") >= 0) {
|
|
817
|
+
newParams[key] = "".concat(value, "\n");
|
|
818
|
+
break;
|
|
819
|
+
}
|
|
820
|
+
newParams[key] = value;
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
824
|
+
finally {
|
|
825
|
+
try {
|
|
826
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
827
|
+
}
|
|
828
|
+
finally { if (e_1) throw e_1.error; }
|
|
829
|
+
}
|
|
830
|
+
return fillTemplateString(templateString, newParams);
|
|
764
831
|
}
|
|
765
832
|
|
|
766
833
|
/** Создать функцию экранирования переданных `specialChars` внутри `str` */
|
|
@@ -989,7 +1056,7 @@ var timeTemplates = (function () {
|
|
|
989
1056
|
var generateTemplates = function (innerTemplate) {
|
|
990
1057
|
var templates = {};
|
|
991
1058
|
for (var key in dimensionTemplateFormulas) {
|
|
992
|
-
templates[key] =
|
|
1059
|
+
templates[key] = fillTemplateSql(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
|
|
993
1060
|
}
|
|
994
1061
|
return templates;
|
|
995
1062
|
};
|
|
@@ -1032,7 +1099,7 @@ function getDimensionFormula(_a) {
|
|
|
1032
1099
|
if (!templateFormula || !tableName || !columnName) {
|
|
1033
1100
|
return "";
|
|
1034
1101
|
}
|
|
1035
|
-
return
|
|
1102
|
+
return fillTemplateSql(templateFormula, {
|
|
1036
1103
|
columnFormula: generateColumnFormula(tableName, columnName),
|
|
1037
1104
|
});
|
|
1038
1105
|
}
|
|
@@ -1045,10 +1112,10 @@ function getDimensionFormula(_a) {
|
|
|
1045
1112
|
? dimensionTemplateFormulas[value.innerTemplateName]
|
|
1046
1113
|
: null;
|
|
1047
1114
|
var columnFormula = innerTemplate
|
|
1048
|
-
?
|
|
1115
|
+
? fillTemplateSql(innerTemplate, { columnFormula: preparedParams.columnFormula })
|
|
1049
1116
|
: preparedParams.columnFormula;
|
|
1050
1117
|
var dimensionAggregationTemplate = dimensionAggregationTemplates[value.templateName];
|
|
1051
|
-
return
|
|
1118
|
+
return fillTemplateSql(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
|
|
1052
1119
|
}
|
|
1053
1120
|
if (value.mode === EWidgetIndicatorValueModes.START_TIME ||
|
|
1054
1121
|
value.mode === EWidgetIndicatorValueModes.END_TIME) {
|
|
@@ -1057,7 +1124,7 @@ function getDimensionFormula(_a) {
|
|
|
1057
1124
|
return "";
|
|
1058
1125
|
}
|
|
1059
1126
|
var templateFormula = timeTemplates[value.mode][value.templateName];
|
|
1060
|
-
return
|
|
1127
|
+
return fillTemplateSql(templateFormula, preparedParams);
|
|
1061
1128
|
}
|
|
1062
1129
|
return "";
|
|
1063
1130
|
}
|
|
@@ -1283,14 +1350,14 @@ function getMeasureFormula(_a) {
|
|
|
1283
1350
|
if (!templateFormula || !tableName || !columnName) {
|
|
1284
1351
|
return "";
|
|
1285
1352
|
}
|
|
1286
|
-
return
|
|
1353
|
+
return fillTemplateSql(templateFormula, {
|
|
1287
1354
|
columnFormula: generateColumnFormula(tableName, columnName),
|
|
1288
1355
|
});
|
|
1289
1356
|
}
|
|
1290
1357
|
if (value.mode === EWidgetIndicatorValueModes.AGGREGATION) {
|
|
1291
1358
|
var preparedParams = prepareMeasureAggregationParams(value);
|
|
1292
1359
|
return preparedParams
|
|
1293
|
-
?
|
|
1360
|
+
? fillTemplateSql(createAggregationTemplate(value.templateName, {
|
|
1294
1361
|
outerAggregation: preparedParams.outerAggregation,
|
|
1295
1362
|
anyEvent: value.anyEvent,
|
|
1296
1363
|
}), preparedParams)
|
|
@@ -1301,14 +1368,14 @@ function getMeasureFormula(_a) {
|
|
|
1301
1368
|
if (!preparedParams) {
|
|
1302
1369
|
return "";
|
|
1303
1370
|
}
|
|
1304
|
-
return
|
|
1371
|
+
return fillTemplateSql(conversionTemplate, preparedParams);
|
|
1305
1372
|
}
|
|
1306
1373
|
if (value.mode === EWidgetIndicatorValueModes.DURATION) {
|
|
1307
1374
|
var preparedParams = prepareDurationParams(value);
|
|
1308
1375
|
if (!preparedParams) {
|
|
1309
1376
|
return "";
|
|
1310
1377
|
}
|
|
1311
|
-
return
|
|
1378
|
+
return fillTemplateSql(durationTemplates[value.templateName], preparedParams);
|
|
1312
1379
|
}
|
|
1313
1380
|
return "";
|
|
1314
1381
|
}
|
|
@@ -1334,7 +1401,7 @@ function getEventMeasureFormula(_a, process) {
|
|
|
1334
1401
|
}
|
|
1335
1402
|
if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
|
|
1336
1403
|
var templateFormula = eventMeasureTemplateFormulas[value.templateName];
|
|
1337
|
-
return templateFormula &&
|
|
1404
|
+
return templateFormula && fillTemplateSql(templateFormula, process);
|
|
1338
1405
|
}
|
|
1339
1406
|
return "";
|
|
1340
1407
|
}
|
|
@@ -1360,7 +1427,7 @@ function getTransitionMeasureFormula(_a, process) {
|
|
|
1360
1427
|
}
|
|
1361
1428
|
if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
|
|
1362
1429
|
var templateFormula = transitionMeasureTemplateFormulas[value.templateName];
|
|
1363
|
-
return templateFormula &&
|
|
1430
|
+
return templateFormula && fillTemplateSql(templateFormula, process);
|
|
1364
1431
|
}
|
|
1365
1432
|
return "";
|
|
1366
1433
|
}
|
|
@@ -1552,7 +1619,7 @@ var mapFormulaFilterToCalculatorInput = function (filterValue) {
|
|
|
1552
1619
|
if (!isFormulaFilterValue(filterValue)) {
|
|
1553
1620
|
return {
|
|
1554
1621
|
dbDataType: EClickHouseBaseTypes.Bool,
|
|
1555
|
-
formula:
|
|
1622
|
+
formula: fillTemplateSql(displayConditionTemplate, {
|
|
1556
1623
|
formula: prepareFormulaForSql(filterValue.formula),
|
|
1557
1624
|
}),
|
|
1558
1625
|
values: ["true"],
|
|
@@ -1728,7 +1795,8 @@ var getDefaultSortOrders = function (_a) {
|
|
|
1728
1795
|
}
|
|
1729
1796
|
/** Если есть временной разрез, то авто-сортировка по первому такому разрезу (по возрастанию) */
|
|
1730
1797
|
var timeDimension = dimensions.find(function (dimension) {
|
|
1731
|
-
|
|
1798
|
+
var _a;
|
|
1799
|
+
return ((_a = dimension.format) === null || _a === void 0 ? void 0 : _a.value) &&
|
|
1732
1800
|
[
|
|
1733
1801
|
EFormatTypes.DATE,
|
|
1734
1802
|
EFormatTypes.MONTH,
|
|
@@ -1741,7 +1809,7 @@ var getDefaultSortOrders = function (_a) {
|
|
|
1741
1809
|
EFormatTypes.QUARTER_YEAR,
|
|
1742
1810
|
EFormatTypes.DAY_OF_MONTH,
|
|
1743
1811
|
EFormatTypes.WEEK,
|
|
1744
|
-
].includes(dimension.format);
|
|
1812
|
+
].includes(dimension.format.value);
|
|
1745
1813
|
});
|
|
1746
1814
|
if (timeDimension) {
|
|
1747
1815
|
return [
|
|
@@ -1845,6 +1913,8 @@ var EControlType;
|
|
|
1845
1913
|
(function (EControlType) {
|
|
1846
1914
|
/** Ввод текста */
|
|
1847
1915
|
EControlType["input"] = "input";
|
|
1916
|
+
/** Ввод текста с поддержкой шаблонной вставки сущностей */
|
|
1917
|
+
EControlType["inputTemplate"] = "inputTemplate";
|
|
1848
1918
|
/** Ввод текста в формате markdown */
|
|
1849
1919
|
EControlType["inputMarkdown"] = "inputMarkdown";
|
|
1850
1920
|
/** Ввод числа */
|
|
@@ -2078,4 +2148,4 @@ var getColorByIndex = function (index) {
|
|
|
2078
2148
|
return color;
|
|
2079
2149
|
};
|
|
2080
2150
|
|
|
2081
|
-
export { EActionButtonsTypes, EActionTypes, EActivateConditionMode, EAutoUpdateMode, ECalculatorFilterMethods, EClickHouseBaseTypes, EColorMode, EControlType, ECustomSelectTemplates, EDataModelOption, EDimensionAggregationTemplateName, EDimensionTemplateNames, EDisplayConditionMode, EDrawerPlacement, EDurationTemplateName, EDurationUnit, EEventAppearances, EEventMeasureTemplateNames, EFontWeight, EFormatTypes, EFormattingPresets, EFormulaFilterFieldKeys, EIndicatorType, ELastTimeUnit, EMarkdownDisplayMode, EMeasureAggregationTemplateName, EMeasureTemplateNames, EOuterAggregation, EProcessFilterNames, ESelectOptionTypes, ESimpleDataType, ESimpleInputType, ESortDirection, ESortingValueModes, ESystemRecordKey, ETransitionMeasureTemplateNames, EUnitMode, EViewMode, EViewOpenIn, EWidgetActionInputMethod, EWidgetFilterMode, EWidgetIndicatorType, EWidgetIndicatorValueModes, OuterAggregation, applyIndexToArrayFormula, bindContentWithIndicator, bindContentsWithIndicators, checkDisplayCondition, clearMultiLineComments, clearSingleLineComments, colors, conversionTemplate, convertFiltersToFormula, convertToFormulasChain, countExecutionsTemplate, createEscaper, createAggregationTemplate as createMeasureAggregationTemplate, curlyBracketsContentPattern, dashboardLinkRegExp, dimensionAggregationTemplates, dimensionTemplateFormulas, displayConditionTemplate, doubleQuoteContentPattern, durationTemplates, escapeCurlyBracketLinkName, escapeDoubleQuoteLinkName, eventMeasureTemplateFormulas, fillTemplateString, formattingConfig, formulaFilterMethods, generateColumnFormula, getColorByIndex, getDefaultSortOrders, getDimensionFormula, getDisplayConditionFormula, getEventMeasureFormula, getLocalizedText, getMeasureFormula, getRuleColor, getTransitionMeasureFormula, isDimensionsHierarchy, isFormulaFilterValue, isValidColor, mapDimensionsToInputs, mapEventMeasuresToInputs, mapFormulaFilterToCalculatorInput, mapFormulaFiltersToInputs, mapMeasuresToInputs, mapSortingToInputs, mapTransitionMeasuresToInputs, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareConversionParams, prepareDimensionAggregationParams, prepareDurationParams, prepareFormulaForSql, prepareMeasureAggregationParams, prepareSortOrders, prepareTimeParams, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, timeTemplates, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateSingleModeSelection, workspaceLinkRegExp };
|
|
2151
|
+
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, fillTemplateSql, fillTemplateString, formattingConfig, formulaFilterMethods, generateColumnFormula, getColorByIndex, getDefaultSortOrders, getDimensionFormula, getDisplayConditionFormula, getEventMeasureFormula, getLocalizedText, getMeasureFormula, getRuleColor, getTransitionMeasureFormula, isDimensionsHierarchy, isFormulaFilterValue, isValidColor, mapDimensionsToInputs, mapEventMeasuresToInputs, mapFormulaFilterToCalculatorInput, mapFormulaFiltersToInputs, mapMeasuresToInputs, mapSortingToInputs, mapTransitionMeasuresToInputs, measureTemplateFormulas, parseClickHouseType, parseIndicatorLink, prepareConversionParams, prepareDimensionAggregationParams, prepareDurationParams, prepareFormulaForSql, prepareMeasureAggregationParams, prepareSortOrders, prepareTimeParams, prepareValuesForSql, replaceDisplayCondition, replaceFiltersBySelection, replaceHierarchiesWithDimensions, selectDimensionFromHierarchy, timeTemplates, transitionMeasureTemplateFormulas, unescapeSpecialCharacters, updateDefaultModeSelection, updateSingleModeSelection, workspaceLinkRegExp };
|
package/dist/index.js
CHANGED
|
@@ -133,6 +133,35 @@ function __rest(s, e) {
|
|
|
133
133
|
return t;
|
|
134
134
|
}
|
|
135
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
|
+
|
|
136
165
|
function __makeTemplateObject(cooked, raw) {
|
|
137
166
|
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
138
167
|
return cooked;
|
|
@@ -681,6 +710,11 @@ exports.ESortingValueModes = void 0;
|
|
|
681
710
|
/** Сортировка по показателю(разрезу или мере) виджета */
|
|
682
711
|
ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
|
|
683
712
|
})(exports.ESortingValueModes || (exports.ESortingValueModes = {}));
|
|
713
|
+
exports.EFormatOrFormattingMode = void 0;
|
|
714
|
+
(function (EFormatOrFormattingMode) {
|
|
715
|
+
EFormatOrFormattingMode["BASE"] = "BASE";
|
|
716
|
+
EFormatOrFormattingMode["TEMPLATE"] = "TEMPLATE";
|
|
717
|
+
})(exports.EFormatOrFormattingMode || (exports.EFormatOrFormattingMode = {}));
|
|
684
718
|
/** Тип показателя */
|
|
685
719
|
exports.EIndicatorType = void 0;
|
|
686
720
|
(function (EIndicatorType) {
|
|
@@ -760,8 +794,41 @@ var minTemplate = createAggregationTemplate$1("minIf");
|
|
|
760
794
|
var maxTemplate = createAggregationTemplate$1("maxIf");
|
|
761
795
|
var sumTemplate = createAggregationTemplate$1("sumIf");
|
|
762
796
|
|
|
797
|
+
/** @deprecated - следует использовать fillTemplateSql */
|
|
763
798
|
function fillTemplateString(templateString, params) {
|
|
764
|
-
return templateString.replace(/\{(.*?)\}/g, function (_, key) {
|
|
799
|
+
return templateString.replace(/\{(.*?)\}/g, function (_, key) {
|
|
800
|
+
var _a;
|
|
801
|
+
return (_a = params[key]) !== null && _a !== void 0 ? _a : "";
|
|
802
|
+
});
|
|
803
|
+
}
|
|
804
|
+
/** Функция для безопасного заполнения SQL шаблонов с защитой от однострочных SQL комментариев в подставляемых значениях. */
|
|
805
|
+
function fillTemplateSql(templateString, params) {
|
|
806
|
+
var e_1, _a;
|
|
807
|
+
var newParams = {};
|
|
808
|
+
try {
|
|
809
|
+
for (var _b = __values(Object.entries(params)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
810
|
+
var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
|
|
811
|
+
if (!value) {
|
|
812
|
+
newParams[key] = value;
|
|
813
|
+
break;
|
|
814
|
+
}
|
|
815
|
+
/** Эвристическая проверка на возможное присутствие sql-комментария в значении подставляемом в template
|
|
816
|
+
*/
|
|
817
|
+
if (typeof value === "string" && value.indexOf("--") >= 0) {
|
|
818
|
+
newParams[key] = "".concat(value, "\n");
|
|
819
|
+
break;
|
|
820
|
+
}
|
|
821
|
+
newParams[key] = value;
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
825
|
+
finally {
|
|
826
|
+
try {
|
|
827
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
828
|
+
}
|
|
829
|
+
finally { if (e_1) throw e_1.error; }
|
|
830
|
+
}
|
|
831
|
+
return fillTemplateString(templateString, newParams);
|
|
765
832
|
}
|
|
766
833
|
|
|
767
834
|
/** Создать функцию экранирования переданных `specialChars` внутри `str` */
|
|
@@ -990,7 +1057,7 @@ var timeTemplates = (function () {
|
|
|
990
1057
|
var generateTemplates = function (innerTemplate) {
|
|
991
1058
|
var templates = {};
|
|
992
1059
|
for (var key in dimensionTemplateFormulas) {
|
|
993
|
-
templates[key] =
|
|
1060
|
+
templates[key] = fillTemplateSql(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
|
|
994
1061
|
}
|
|
995
1062
|
return templates;
|
|
996
1063
|
};
|
|
@@ -1033,7 +1100,7 @@ function getDimensionFormula(_a) {
|
|
|
1033
1100
|
if (!templateFormula || !tableName || !columnName) {
|
|
1034
1101
|
return "";
|
|
1035
1102
|
}
|
|
1036
|
-
return
|
|
1103
|
+
return fillTemplateSql(templateFormula, {
|
|
1037
1104
|
columnFormula: generateColumnFormula(tableName, columnName),
|
|
1038
1105
|
});
|
|
1039
1106
|
}
|
|
@@ -1046,10 +1113,10 @@ function getDimensionFormula(_a) {
|
|
|
1046
1113
|
? dimensionTemplateFormulas[value.innerTemplateName]
|
|
1047
1114
|
: null;
|
|
1048
1115
|
var columnFormula = innerTemplate
|
|
1049
|
-
?
|
|
1116
|
+
? fillTemplateSql(innerTemplate, { columnFormula: preparedParams.columnFormula })
|
|
1050
1117
|
: preparedParams.columnFormula;
|
|
1051
1118
|
var dimensionAggregationTemplate = dimensionAggregationTemplates[value.templateName];
|
|
1052
|
-
return
|
|
1119
|
+
return fillTemplateSql(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
|
|
1053
1120
|
}
|
|
1054
1121
|
if (value.mode === exports.EWidgetIndicatorValueModes.START_TIME ||
|
|
1055
1122
|
value.mode === exports.EWidgetIndicatorValueModes.END_TIME) {
|
|
@@ -1058,7 +1125,7 @@ function getDimensionFormula(_a) {
|
|
|
1058
1125
|
return "";
|
|
1059
1126
|
}
|
|
1060
1127
|
var templateFormula = timeTemplates[value.mode][value.templateName];
|
|
1061
|
-
return
|
|
1128
|
+
return fillTemplateSql(templateFormula, preparedParams);
|
|
1062
1129
|
}
|
|
1063
1130
|
return "";
|
|
1064
1131
|
}
|
|
@@ -1284,14 +1351,14 @@ function getMeasureFormula(_a) {
|
|
|
1284
1351
|
if (!templateFormula || !tableName || !columnName) {
|
|
1285
1352
|
return "";
|
|
1286
1353
|
}
|
|
1287
|
-
return
|
|
1354
|
+
return fillTemplateSql(templateFormula, {
|
|
1288
1355
|
columnFormula: generateColumnFormula(tableName, columnName),
|
|
1289
1356
|
});
|
|
1290
1357
|
}
|
|
1291
1358
|
if (value.mode === exports.EWidgetIndicatorValueModes.AGGREGATION) {
|
|
1292
1359
|
var preparedParams = prepareMeasureAggregationParams(value);
|
|
1293
1360
|
return preparedParams
|
|
1294
|
-
?
|
|
1361
|
+
? fillTemplateSql(createAggregationTemplate(value.templateName, {
|
|
1295
1362
|
outerAggregation: preparedParams.outerAggregation,
|
|
1296
1363
|
anyEvent: value.anyEvent,
|
|
1297
1364
|
}), preparedParams)
|
|
@@ -1302,14 +1369,14 @@ function getMeasureFormula(_a) {
|
|
|
1302
1369
|
if (!preparedParams) {
|
|
1303
1370
|
return "";
|
|
1304
1371
|
}
|
|
1305
|
-
return
|
|
1372
|
+
return fillTemplateSql(conversionTemplate, preparedParams);
|
|
1306
1373
|
}
|
|
1307
1374
|
if (value.mode === exports.EWidgetIndicatorValueModes.DURATION) {
|
|
1308
1375
|
var preparedParams = prepareDurationParams(value);
|
|
1309
1376
|
if (!preparedParams) {
|
|
1310
1377
|
return "";
|
|
1311
1378
|
}
|
|
1312
|
-
return
|
|
1379
|
+
return fillTemplateSql(durationTemplates[value.templateName], preparedParams);
|
|
1313
1380
|
}
|
|
1314
1381
|
return "";
|
|
1315
1382
|
}
|
|
@@ -1335,7 +1402,7 @@ function getEventMeasureFormula(_a, process) {
|
|
|
1335
1402
|
}
|
|
1336
1403
|
if (value.mode === exports.EWidgetIndicatorValueModes.TEMPLATE) {
|
|
1337
1404
|
var templateFormula = eventMeasureTemplateFormulas[value.templateName];
|
|
1338
|
-
return templateFormula &&
|
|
1405
|
+
return templateFormula && fillTemplateSql(templateFormula, process);
|
|
1339
1406
|
}
|
|
1340
1407
|
return "";
|
|
1341
1408
|
}
|
|
@@ -1361,7 +1428,7 @@ function getTransitionMeasureFormula(_a, process) {
|
|
|
1361
1428
|
}
|
|
1362
1429
|
if (value.mode === exports.EWidgetIndicatorValueModes.TEMPLATE) {
|
|
1363
1430
|
var templateFormula = transitionMeasureTemplateFormulas[value.templateName];
|
|
1364
|
-
return templateFormula &&
|
|
1431
|
+
return templateFormula && fillTemplateSql(templateFormula, process);
|
|
1365
1432
|
}
|
|
1366
1433
|
return "";
|
|
1367
1434
|
}
|
|
@@ -1553,7 +1620,7 @@ var mapFormulaFilterToCalculatorInput = function (filterValue) {
|
|
|
1553
1620
|
if (!isFormulaFilterValue(filterValue)) {
|
|
1554
1621
|
return {
|
|
1555
1622
|
dbDataType: exports.EClickHouseBaseTypes.Bool,
|
|
1556
|
-
formula:
|
|
1623
|
+
formula: fillTemplateSql(displayConditionTemplate, {
|
|
1557
1624
|
formula: prepareFormulaForSql(filterValue.formula),
|
|
1558
1625
|
}),
|
|
1559
1626
|
values: ["true"],
|
|
@@ -1729,7 +1796,8 @@ var getDefaultSortOrders = function (_a) {
|
|
|
1729
1796
|
}
|
|
1730
1797
|
/** Если есть временной разрез, то авто-сортировка по первому такому разрезу (по возрастанию) */
|
|
1731
1798
|
var timeDimension = dimensions.find(function (dimension) {
|
|
1732
|
-
|
|
1799
|
+
var _a;
|
|
1800
|
+
return ((_a = dimension.format) === null || _a === void 0 ? void 0 : _a.value) &&
|
|
1733
1801
|
[
|
|
1734
1802
|
exports.EFormatTypes.DATE,
|
|
1735
1803
|
exports.EFormatTypes.MONTH,
|
|
@@ -1742,7 +1810,7 @@ var getDefaultSortOrders = function (_a) {
|
|
|
1742
1810
|
exports.EFormatTypes.QUARTER_YEAR,
|
|
1743
1811
|
exports.EFormatTypes.DAY_OF_MONTH,
|
|
1744
1812
|
exports.EFormatTypes.WEEK,
|
|
1745
|
-
].includes(dimension.format);
|
|
1813
|
+
].includes(dimension.format.value);
|
|
1746
1814
|
});
|
|
1747
1815
|
if (timeDimension) {
|
|
1748
1816
|
return [
|
|
@@ -1846,6 +1914,8 @@ exports.EControlType = void 0;
|
|
|
1846
1914
|
(function (EControlType) {
|
|
1847
1915
|
/** Ввод текста */
|
|
1848
1916
|
EControlType["input"] = "input";
|
|
1917
|
+
/** Ввод текста с поддержкой шаблонной вставки сущностей */
|
|
1918
|
+
EControlType["inputTemplate"] = "inputTemplate";
|
|
1849
1919
|
/** Ввод текста в формате markdown */
|
|
1850
1920
|
EControlType["inputMarkdown"] = "inputMarkdown";
|
|
1851
1921
|
/** Ввод числа */
|
|
@@ -2110,6 +2180,7 @@ exports.durationTemplates = durationTemplates;
|
|
|
2110
2180
|
exports.escapeCurlyBracketLinkName = escapeCurlyBracketLinkName;
|
|
2111
2181
|
exports.escapeDoubleQuoteLinkName = escapeDoubleQuoteLinkName;
|
|
2112
2182
|
exports.eventMeasureTemplateFormulas = eventMeasureTemplateFormulas;
|
|
2183
|
+
exports.fillTemplateSql = fillTemplateSql;
|
|
2113
2184
|
exports.fillTemplateString = fillTemplateString;
|
|
2114
2185
|
exports.formattingConfig = formattingConfig;
|
|
2115
2186
|
exports.formulaFilterMethods = formulaFilterMethods;
|