@infomaximum/widget-sdk 6.0.0-2 → 6.0.0-2508.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -35,12 +35,6 @@ var EViewOpenIn;
35
35
  EViewOpenIn["PLACEHOLDER"] = "PLACEHOLDER";
36
36
  EViewOpenIn["MODAL_WINDOW"] = "MODAL_WINDOW";
37
37
  EViewOpenIn["DRAWER_WINDOW"] = "DRAWER_WINDOW";
38
- // TODO: удалить при выполении BI-14979
39
- /** @deprecated необходимо использовать EViewOpenIn.WINDOW с флагом newWindow - true */
40
- EViewOpenIn["NEW_WINDOW"] = "NEW_WINDOW";
41
- // TODO: удалить при выполении BI-14979
42
- /** @deprecated необходимо использовать EViewOpenIn.WINDOW с флагом newWindow - false */
43
- EViewOpenIn["CURRENT_WINDOW"] = "CURRENT_WINDOW";
44
38
  })(EViewOpenIn || (EViewOpenIn = {}));
45
39
  var EDrawerPlacement;
46
40
  (function (EDrawerPlacement) {
@@ -138,6 +132,35 @@ function __rest(s, e) {
138
132
  return t;
139
133
  }
140
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
+
141
164
  function __makeTemplateObject(cooked, raw) {
142
165
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
143
166
  return cooked;
@@ -686,6 +709,11 @@ var ESortingValueModes;
686
709
  /** Сортировка по показателю(разрезу или мере) виджета */
687
710
  ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
688
711
  })(ESortingValueModes || (ESortingValueModes = {}));
712
+ var EFormatOrFormattingMode;
713
+ (function (EFormatOrFormattingMode) {
714
+ EFormatOrFormattingMode["BASE"] = "BASE";
715
+ EFormatOrFormattingMode["TEMPLATE"] = "TEMPLATE";
716
+ })(EFormatOrFormattingMode || (EFormatOrFormattingMode = {}));
689
717
  /** Тип показателя */
690
718
  var EIndicatorType;
691
719
  (function (EIndicatorType) {
@@ -765,8 +793,41 @@ var minTemplate = createAggregationTemplate$1("minIf");
765
793
  var maxTemplate = createAggregationTemplate$1("maxIf");
766
794
  var sumTemplate = createAggregationTemplate$1("sumIf");
767
795
 
796
+ /** @deprecated - следует использовать fillTemplateSql */
768
797
  function fillTemplateString(templateString, params) {
769
- return templateString.replace(/\{(.*?)\}/g, function (_, key) { var _a; return (_a = params[key]) !== null && _a !== void 0 ? _a : ""; });
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);
770
831
  }
771
832
 
772
833
  /** Создать функцию экранирования переданных `specialChars` внутри `str` */
@@ -995,7 +1056,7 @@ var timeTemplates = (function () {
995
1056
  var generateTemplates = function (innerTemplate) {
996
1057
  var templates = {};
997
1058
  for (var key in dimensionTemplateFormulas) {
998
- templates[key] = fillTemplateString(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
1059
+ templates[key] = fillTemplateSql(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
999
1060
  }
1000
1061
  return templates;
1001
1062
  };
@@ -1038,7 +1099,7 @@ function getDimensionFormula(_a) {
1038
1099
  if (!templateFormula || !tableName || !columnName) {
1039
1100
  return "";
1040
1101
  }
1041
- return fillTemplateString(templateFormula, {
1102
+ return fillTemplateSql(templateFormula, {
1042
1103
  columnFormula: generateColumnFormula(tableName, columnName),
1043
1104
  });
1044
1105
  }
@@ -1051,10 +1112,10 @@ function getDimensionFormula(_a) {
1051
1112
  ? dimensionTemplateFormulas[value.innerTemplateName]
1052
1113
  : null;
1053
1114
  var columnFormula = innerTemplate
1054
- ? fillTemplateString(innerTemplate, { columnFormula: preparedParams.columnFormula })
1115
+ ? fillTemplateSql(innerTemplate, { columnFormula: preparedParams.columnFormula })
1055
1116
  : preparedParams.columnFormula;
1056
1117
  var dimensionAggregationTemplate = dimensionAggregationTemplates[value.templateName];
1057
- return fillTemplateString(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
1118
+ return fillTemplateSql(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
1058
1119
  }
1059
1120
  if (value.mode === EWidgetIndicatorValueModes.START_TIME ||
1060
1121
  value.mode === EWidgetIndicatorValueModes.END_TIME) {
@@ -1063,7 +1124,7 @@ function getDimensionFormula(_a) {
1063
1124
  return "";
1064
1125
  }
1065
1126
  var templateFormula = timeTemplates[value.mode][value.templateName];
1066
- return fillTemplateString(templateFormula, preparedParams);
1127
+ return fillTemplateSql(templateFormula, preparedParams);
1067
1128
  }
1068
1129
  return "";
1069
1130
  }
@@ -1289,14 +1350,14 @@ function getMeasureFormula(_a) {
1289
1350
  if (!templateFormula || !tableName || !columnName) {
1290
1351
  return "";
1291
1352
  }
1292
- return fillTemplateString(templateFormula, {
1353
+ return fillTemplateSql(templateFormula, {
1293
1354
  columnFormula: generateColumnFormula(tableName, columnName),
1294
1355
  });
1295
1356
  }
1296
1357
  if (value.mode === EWidgetIndicatorValueModes.AGGREGATION) {
1297
1358
  var preparedParams = prepareMeasureAggregationParams(value);
1298
1359
  return preparedParams
1299
- ? fillTemplateString(createAggregationTemplate(value.templateName, {
1360
+ ? fillTemplateSql(createAggregationTemplate(value.templateName, {
1300
1361
  outerAggregation: preparedParams.outerAggregation,
1301
1362
  anyEvent: value.anyEvent,
1302
1363
  }), preparedParams)
@@ -1307,14 +1368,14 @@ function getMeasureFormula(_a) {
1307
1368
  if (!preparedParams) {
1308
1369
  return "";
1309
1370
  }
1310
- return fillTemplateString(conversionTemplate, preparedParams);
1371
+ return fillTemplateSql(conversionTemplate, preparedParams);
1311
1372
  }
1312
1373
  if (value.mode === EWidgetIndicatorValueModes.DURATION) {
1313
1374
  var preparedParams = prepareDurationParams(value);
1314
1375
  if (!preparedParams) {
1315
1376
  return "";
1316
1377
  }
1317
- return fillTemplateString(durationTemplates[value.templateName], preparedParams);
1378
+ return fillTemplateSql(durationTemplates[value.templateName], preparedParams);
1318
1379
  }
1319
1380
  return "";
1320
1381
  }
@@ -1340,7 +1401,7 @@ function getEventMeasureFormula(_a, process) {
1340
1401
  }
1341
1402
  if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
1342
1403
  var templateFormula = eventMeasureTemplateFormulas[value.templateName];
1343
- return templateFormula && fillTemplateString(templateFormula, process);
1404
+ return templateFormula && fillTemplateSql(templateFormula, process);
1344
1405
  }
1345
1406
  return "";
1346
1407
  }
@@ -1366,7 +1427,7 @@ function getTransitionMeasureFormula(_a, process) {
1366
1427
  }
1367
1428
  if (value.mode === EWidgetIndicatorValueModes.TEMPLATE) {
1368
1429
  var templateFormula = transitionMeasureTemplateFormulas[value.templateName];
1369
- return templateFormula && fillTemplateString(templateFormula, process);
1430
+ return templateFormula && fillTemplateSql(templateFormula, process);
1370
1431
  }
1371
1432
  return "";
1372
1433
  }
@@ -1376,8 +1437,6 @@ var EWidgetFilterMode;
1376
1437
  (function (EWidgetFilterMode) {
1377
1438
  EWidgetFilterMode["DEFAULT"] = "DEFAULT";
1378
1439
  EWidgetFilterMode["SINGLE"] = "SINGLE";
1379
- /** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
1380
- EWidgetFilterMode["MULTI"] = "MULTI";
1381
1440
  EWidgetFilterMode["DISABLED"] = "DISABLED";
1382
1441
  })(EWidgetFilterMode || (EWidgetFilterMode = {}));
1383
1442
  var EMarkdownDisplayMode;
@@ -1560,7 +1619,7 @@ var mapFormulaFilterToCalculatorInput = function (filterValue) {
1560
1619
  if (!isFormulaFilterValue(filterValue)) {
1561
1620
  return {
1562
1621
  dbDataType: EClickHouseBaseTypes.Bool,
1563
- formula: fillTemplateString(displayConditionTemplate, {
1622
+ formula: fillTemplateSql(displayConditionTemplate, {
1564
1623
  formula: prepareFormulaForSql(filterValue.formula),
1565
1624
  }),
1566
1625
  values: ["true"],
@@ -1736,7 +1795,8 @@ var getDefaultSortOrders = function (_a) {
1736
1795
  }
1737
1796
  /** Если есть временной разрез, то авто-сортировка по первому такому разрезу (по возрастанию) */
1738
1797
  var timeDimension = dimensions.find(function (dimension) {
1739
- return dimension.format &&
1798
+ var _a;
1799
+ return ((_a = dimension.format) === null || _a === void 0 ? void 0 : _a.value) &&
1740
1800
  [
1741
1801
  EFormatTypes.DATE,
1742
1802
  EFormatTypes.MONTH,
@@ -1749,7 +1809,7 @@ var getDefaultSortOrders = function (_a) {
1749
1809
  EFormatTypes.QUARTER_YEAR,
1750
1810
  EFormatTypes.DAY_OF_MONTH,
1751
1811
  EFormatTypes.WEEK,
1752
- ].includes(dimension.format);
1812
+ ].includes(dimension.format.value);
1753
1813
  });
1754
1814
  if (timeDimension) {
1755
1815
  return [
@@ -1853,6 +1913,8 @@ var EControlType;
1853
1913
  (function (EControlType) {
1854
1914
  /** Ввод текста */
1855
1915
  EControlType["input"] = "input";
1916
+ /** Ввод текста с поддержкой шаблонной вставки сущностей */
1917
+ EControlType["inputTemplate"] = "inputTemplate";
1856
1918
  /** Ввод текста в формате markdown */
1857
1919
  EControlType["inputMarkdown"] = "inputMarkdown";
1858
1920
  /** Ввод числа */
@@ -1966,19 +2028,6 @@ var updateSingleModeSelection = function (selection, formula, value) {
1966
2028
  replacedFilter: null,
1967
2029
  });
1968
2030
  };
1969
- /** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
1970
- var updateMultiModeSelection = function (selection, formula, value) {
1971
- var _a;
1972
- var selectionItemValues = getSelectionItemValues(value, EWidgetFilterMode.MULTI, (_a = selection.get(formula)) === null || _a === void 0 ? void 0 : _a.values);
1973
- if (!selectionItemValues.size) {
1974
- selection.delete(formula);
1975
- return;
1976
- }
1977
- selection.set(formula, {
1978
- values: selectionItemValues,
1979
- replacedFilter: null,
1980
- });
1981
- };
1982
2031
  var replaceFiltersBySelection = function (filters, selection) {
1983
2032
  return filters.reduce(function (acc, filter) {
1984
2033
  var _a;
@@ -2099,4 +2148,4 @@ var getColorByIndex = function (index) {
2099
2148
  return color;
2100
2149
  };
2101
2150
 
2102
- 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, updateMultiModeSelection, 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
@@ -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,35 @@ 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
+
142
165
  function __makeTemplateObject(cooked, raw) {
143
166
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
144
167
  return cooked;
@@ -687,6 +710,11 @@ exports.ESortingValueModes = void 0;
687
710
  /** Сортировка по показателю(разрезу или мере) виджета */
688
711
  ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
689
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 = {}));
690
718
  /** Тип показателя */
691
719
  exports.EIndicatorType = void 0;
692
720
  (function (EIndicatorType) {
@@ -766,8 +794,41 @@ var minTemplate = createAggregationTemplate$1("minIf");
766
794
  var maxTemplate = createAggregationTemplate$1("maxIf");
767
795
  var sumTemplate = createAggregationTemplate$1("sumIf");
768
796
 
797
+ /** @deprecated - следует использовать fillTemplateSql */
769
798
  function fillTemplateString(templateString, params) {
770
- return templateString.replace(/\{(.*?)\}/g, function (_, key) { var _a; return (_a = params[key]) !== null && _a !== void 0 ? _a : ""; });
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);
771
832
  }
772
833
 
773
834
  /** Создать функцию экранирования переданных `specialChars` внутри `str` */
@@ -996,7 +1057,7 @@ var timeTemplates = (function () {
996
1057
  var generateTemplates = function (innerTemplate) {
997
1058
  var templates = {};
998
1059
  for (var key in dimensionTemplateFormulas) {
999
- templates[key] = fillTemplateString(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
1060
+ templates[key] = fillTemplateSql(dimensionTemplateFormulas[key], { columnFormula: innerTemplate });
1000
1061
  }
1001
1062
  return templates;
1002
1063
  };
@@ -1039,7 +1100,7 @@ function getDimensionFormula(_a) {
1039
1100
  if (!templateFormula || !tableName || !columnName) {
1040
1101
  return "";
1041
1102
  }
1042
- return fillTemplateString(templateFormula, {
1103
+ return fillTemplateSql(templateFormula, {
1043
1104
  columnFormula: generateColumnFormula(tableName, columnName),
1044
1105
  });
1045
1106
  }
@@ -1052,10 +1113,10 @@ function getDimensionFormula(_a) {
1052
1113
  ? dimensionTemplateFormulas[value.innerTemplateName]
1053
1114
  : null;
1054
1115
  var columnFormula = innerTemplate
1055
- ? fillTemplateString(innerTemplate, { columnFormula: preparedParams.columnFormula })
1116
+ ? fillTemplateSql(innerTemplate, { columnFormula: preparedParams.columnFormula })
1056
1117
  : preparedParams.columnFormula;
1057
1118
  var dimensionAggregationTemplate = dimensionAggregationTemplates[value.templateName];
1058
- return fillTemplateString(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
1119
+ return fillTemplateSql(dimensionAggregationTemplate, __assign(__assign({}, preparedParams), { columnFormula: columnFormula }));
1059
1120
  }
1060
1121
  if (value.mode === exports.EWidgetIndicatorValueModes.START_TIME ||
1061
1122
  value.mode === exports.EWidgetIndicatorValueModes.END_TIME) {
@@ -1064,7 +1125,7 @@ function getDimensionFormula(_a) {
1064
1125
  return "";
1065
1126
  }
1066
1127
  var templateFormula = timeTemplates[value.mode][value.templateName];
1067
- return fillTemplateString(templateFormula, preparedParams);
1128
+ return fillTemplateSql(templateFormula, preparedParams);
1068
1129
  }
1069
1130
  return "";
1070
1131
  }
@@ -1290,14 +1351,14 @@ function getMeasureFormula(_a) {
1290
1351
  if (!templateFormula || !tableName || !columnName) {
1291
1352
  return "";
1292
1353
  }
1293
- return fillTemplateString(templateFormula, {
1354
+ return fillTemplateSql(templateFormula, {
1294
1355
  columnFormula: generateColumnFormula(tableName, columnName),
1295
1356
  });
1296
1357
  }
1297
1358
  if (value.mode === exports.EWidgetIndicatorValueModes.AGGREGATION) {
1298
1359
  var preparedParams = prepareMeasureAggregationParams(value);
1299
1360
  return preparedParams
1300
- ? fillTemplateString(createAggregationTemplate(value.templateName, {
1361
+ ? fillTemplateSql(createAggregationTemplate(value.templateName, {
1301
1362
  outerAggregation: preparedParams.outerAggregation,
1302
1363
  anyEvent: value.anyEvent,
1303
1364
  }), preparedParams)
@@ -1308,14 +1369,14 @@ function getMeasureFormula(_a) {
1308
1369
  if (!preparedParams) {
1309
1370
  return "";
1310
1371
  }
1311
- return fillTemplateString(conversionTemplate, preparedParams);
1372
+ return fillTemplateSql(conversionTemplate, preparedParams);
1312
1373
  }
1313
1374
  if (value.mode === exports.EWidgetIndicatorValueModes.DURATION) {
1314
1375
  var preparedParams = prepareDurationParams(value);
1315
1376
  if (!preparedParams) {
1316
1377
  return "";
1317
1378
  }
1318
- return fillTemplateString(durationTemplates[value.templateName], preparedParams);
1379
+ return fillTemplateSql(durationTemplates[value.templateName], preparedParams);
1319
1380
  }
1320
1381
  return "";
1321
1382
  }
@@ -1341,7 +1402,7 @@ function getEventMeasureFormula(_a, process) {
1341
1402
  }
1342
1403
  if (value.mode === exports.EWidgetIndicatorValueModes.TEMPLATE) {
1343
1404
  var templateFormula = eventMeasureTemplateFormulas[value.templateName];
1344
- return templateFormula && fillTemplateString(templateFormula, process);
1405
+ return templateFormula && fillTemplateSql(templateFormula, process);
1345
1406
  }
1346
1407
  return "";
1347
1408
  }
@@ -1367,7 +1428,7 @@ function getTransitionMeasureFormula(_a, process) {
1367
1428
  }
1368
1429
  if (value.mode === exports.EWidgetIndicatorValueModes.TEMPLATE) {
1369
1430
  var templateFormula = transitionMeasureTemplateFormulas[value.templateName];
1370
- return templateFormula && fillTemplateString(templateFormula, process);
1431
+ return templateFormula && fillTemplateSql(templateFormula, process);
1371
1432
  }
1372
1433
  return "";
1373
1434
  }
@@ -1377,8 +1438,6 @@ exports.EWidgetFilterMode = void 0;
1377
1438
  (function (EWidgetFilterMode) {
1378
1439
  EWidgetFilterMode["DEFAULT"] = "DEFAULT";
1379
1440
  EWidgetFilterMode["SINGLE"] = "SINGLE";
1380
- /** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
1381
- EWidgetFilterMode["MULTI"] = "MULTI";
1382
1441
  EWidgetFilterMode["DISABLED"] = "DISABLED";
1383
1442
  })(exports.EWidgetFilterMode || (exports.EWidgetFilterMode = {}));
1384
1443
  exports.EMarkdownDisplayMode = void 0;
@@ -1561,7 +1620,7 @@ var mapFormulaFilterToCalculatorInput = function (filterValue) {
1561
1620
  if (!isFormulaFilterValue(filterValue)) {
1562
1621
  return {
1563
1622
  dbDataType: exports.EClickHouseBaseTypes.Bool,
1564
- formula: fillTemplateString(displayConditionTemplate, {
1623
+ formula: fillTemplateSql(displayConditionTemplate, {
1565
1624
  formula: prepareFormulaForSql(filterValue.formula),
1566
1625
  }),
1567
1626
  values: ["true"],
@@ -1737,7 +1796,8 @@ var getDefaultSortOrders = function (_a) {
1737
1796
  }
1738
1797
  /** Если есть временной разрез, то авто-сортировка по первому такому разрезу (по возрастанию) */
1739
1798
  var timeDimension = dimensions.find(function (dimension) {
1740
- return dimension.format &&
1799
+ var _a;
1800
+ return ((_a = dimension.format) === null || _a === void 0 ? void 0 : _a.value) &&
1741
1801
  [
1742
1802
  exports.EFormatTypes.DATE,
1743
1803
  exports.EFormatTypes.MONTH,
@@ -1750,7 +1810,7 @@ var getDefaultSortOrders = function (_a) {
1750
1810
  exports.EFormatTypes.QUARTER_YEAR,
1751
1811
  exports.EFormatTypes.DAY_OF_MONTH,
1752
1812
  exports.EFormatTypes.WEEK,
1753
- ].includes(dimension.format);
1813
+ ].includes(dimension.format.value);
1754
1814
  });
1755
1815
  if (timeDimension) {
1756
1816
  return [
@@ -1854,6 +1914,8 @@ exports.EControlType = void 0;
1854
1914
  (function (EControlType) {
1855
1915
  /** Ввод текста */
1856
1916
  EControlType["input"] = "input";
1917
+ /** Ввод текста с поддержкой шаблонной вставки сущностей */
1918
+ EControlType["inputTemplate"] = "inputTemplate";
1857
1919
  /** Ввод текста в формате markdown */
1858
1920
  EControlType["inputMarkdown"] = "inputMarkdown";
1859
1921
  /** Ввод числа */
@@ -1967,19 +2029,6 @@ var updateSingleModeSelection = function (selection, formula, value) {
1967
2029
  replacedFilter: null,
1968
2030
  });
1969
2031
  };
1970
- /** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
1971
- var updateMultiModeSelection = function (selection, formula, value) {
1972
- var _a;
1973
- var selectionItemValues = getSelectionItemValues(value, exports.EWidgetFilterMode.MULTI, (_a = selection.get(formula)) === null || _a === void 0 ? void 0 : _a.values);
1974
- if (!selectionItemValues.size) {
1975
- selection.delete(formula);
1976
- return;
1977
- }
1978
- selection.set(formula, {
1979
- values: selectionItemValues,
1980
- replacedFilter: null,
1981
- });
1982
- };
1983
2032
  var replaceFiltersBySelection = function (filters, selection) {
1984
2033
  return filters.reduce(function (acc, filter) {
1985
2034
  var _a;
@@ -2131,6 +2180,7 @@ exports.durationTemplates = durationTemplates;
2131
2180
  exports.escapeCurlyBracketLinkName = escapeCurlyBracketLinkName;
2132
2181
  exports.escapeDoubleQuoteLinkName = escapeDoubleQuoteLinkName;
2133
2182
  exports.eventMeasureTemplateFormulas = eventMeasureTemplateFormulas;
2183
+ exports.fillTemplateSql = fillTemplateSql;
2134
2184
  exports.fillTemplateString = fillTemplateString;
2135
2185
  exports.formattingConfig = formattingConfig;
2136
2186
  exports.formulaFilterMethods = formulaFilterMethods;
@@ -2173,6 +2223,5 @@ exports.timeTemplates = timeTemplates;
2173
2223
  exports.transitionMeasureTemplateFormulas = transitionMeasureTemplateFormulas;
2174
2224
  exports.unescapeSpecialCharacters = unescapeSpecialCharacters;
2175
2225
  exports.updateDefaultModeSelection = updateDefaultModeSelection;
2176
- exports.updateMultiModeSelection = updateMultiModeSelection;
2177
2226
  exports.updateSingleModeSelection = updateSingleModeSelection;
2178
2227
  exports.workspaceLinkRegExp = workspaceLinkRegExp;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infomaximum/widget-sdk",
3
- "version": "6.0.0-2",
3
+ "version": "6.0.0-2508.0",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.esm.js",
6
6
  "types": "./dist/index.d.ts",