@infomaximum/widget-sdk 6.0.0-wefi344-1 → 6.0.0-wefi344-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/dist/index.d.ts +806 -812
- package/dist/index.esm.js +72 -68
- package/dist/index.js +76 -70
- package/package.json +1 -1
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,10 @@ function __rest(s, e) {
|
|
|
138
132
|
return t;
|
|
139
133
|
}
|
|
140
134
|
|
|
135
|
+
function __makeTemplateObject(cooked, raw) {
|
|
136
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
137
|
+
return cooked;
|
|
138
|
+
}
|
|
141
139
|
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
142
140
|
var e = new Error(message);
|
|
143
141
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
@@ -682,6 +680,11 @@ var ESortingValueModes;
|
|
|
682
680
|
/** Сортировка по показателю(разрезу или мере) виджета */
|
|
683
681
|
ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
|
|
684
682
|
})(ESortingValueModes || (ESortingValueModes = {}));
|
|
683
|
+
var EFormatOrFormattingMode;
|
|
684
|
+
(function (EFormatOrFormattingMode) {
|
|
685
|
+
EFormatOrFormattingMode["BASE"] = "BASE";
|
|
686
|
+
EFormatOrFormattingMode["TEMPLATE"] = "TEMPLATE";
|
|
687
|
+
})(EFormatOrFormattingMode || (EFormatOrFormattingMode = {}));
|
|
685
688
|
/** Тип показателя */
|
|
686
689
|
var EIndicatorType;
|
|
687
690
|
(function (EIndicatorType) {
|
|
@@ -765,20 +768,67 @@ function fillTemplateString(templateString, params) {
|
|
|
765
768
|
return templateString.replace(/\{(.*?)\}/g, function (_, key) { var _a; return (_a = params[key]) !== null && _a !== void 0 ? _a : ""; });
|
|
766
769
|
}
|
|
767
770
|
|
|
768
|
-
/**
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
771
|
+
/** Создать функцию экранирования переданных `specialChars` внутри `str` */
|
|
772
|
+
var createEscaper = function (specialChars) { return function (str) {
|
|
773
|
+
return specialChars.reduce(function (escaped, char) { return escaped.replaceAll(char, "\\".concat(char)); }, str);
|
|
774
|
+
}; };
|
|
775
|
+
|
|
776
|
+
/** Удалить из строки символы экранирования */
|
|
777
|
+
function unescapeSpecialCharacters(str) {
|
|
778
|
+
return str.replace(/\\(?!\\)/g, "").replace(/\\\\/g, "\\");
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
/**
|
|
782
|
+
* Создает RegExp-паттерн для подстроки с безопасными символами.
|
|
783
|
+
*
|
|
784
|
+
* Подстрока может содержать любой символ, кроме:
|
|
785
|
+
* 1. `restrictedChar` - запрещено появление без экранирования.
|
|
786
|
+
* 2. Обратного слэша (`\`) - запрещено появление без пары.
|
|
787
|
+
*
|
|
788
|
+
* Правило экранирования:
|
|
789
|
+
* - Любой символ, включая `restrictedChar` и `\`, можно использовать с префиксом `\`.
|
|
790
|
+
* - Последний символ в подстроке не может быть одинокий слэш.
|
|
791
|
+
*
|
|
792
|
+
* @param restrictedChar Символ, который нельзя использовать без экранирования.
|
|
793
|
+
* @returns Строка для вставки внутрь RegExp.
|
|
794
|
+
*/
|
|
795
|
+
var createEscapableCharPattern = function (restrictedChar) {
|
|
796
|
+
return String.raw(templateObject_1 || (templateObject_1 = __makeTemplateObject(["(?:\\.|[^", "\\])*"], ["(?:\\\\.|[^", "\\\\])*"])), restrictedChar);
|
|
797
|
+
};
|
|
798
|
+
/**
|
|
799
|
+
* Паттерн подстроки, валидной для использования внутри фигурных скобок.
|
|
800
|
+
* Требование к подстроке - отсутствие закрывающих фигурных скобок (кроме экранированных).
|
|
801
|
+
*/
|
|
802
|
+
var curlyBracketsContentPattern = createEscapableCharPattern("}");
|
|
803
|
+
/**
|
|
804
|
+
* Паттерн подстроки, валидной для использования внутри двойных кавычек.
|
|
805
|
+
* Требование к подстроке - отсутствие двойных кавычек (кроме экранированных).
|
|
773
806
|
*/
|
|
774
|
-
var
|
|
775
|
-
|
|
807
|
+
var doubleQuoteContentPattern = createEscapableCharPattern('"');
|
|
808
|
+
var dashboardLinkRegExp = new RegExp(String.raw(templateObject_2 || (templateObject_2 = __makeTemplateObject(["#{(", ")}(?!.{(", ")})"], ["#\\{(", ")\\}(?!\\.\\{(", ")\\})"])), curlyBracketsContentPattern, curlyBracketsContentPattern), "g");
|
|
809
|
+
var workspaceLinkRegExp = new RegExp(String.raw(templateObject_3 || (templateObject_3 = __makeTemplateObject(["#{(", ")}.{(", ")}"], ["#\\{(", ")\\}\\.\\{(", ")\\}"])), curlyBracketsContentPattern, curlyBracketsContentPattern), "g");
|
|
810
|
+
/** Экранирование спец.символов при подстановке названий таблиц и колонок */
|
|
811
|
+
var escapeDoubleQuoteLinkName = createEscaper(Array.from("\\\""));
|
|
812
|
+
/** Экранирование спец.символов при подстановке названий переменных и показателей */
|
|
813
|
+
var escapeCurlyBracketLinkName = createEscaper(Array.from("\\}.[]"));
|
|
814
|
+
var parseIndicatorLink = function (formula) {
|
|
815
|
+
var dashboardMatch = formula.match(dashboardLinkRegExp.source);
|
|
816
|
+
if (dashboardMatch) {
|
|
817
|
+
return { scopeName: null, indicatorName: dashboardMatch[1] };
|
|
818
|
+
}
|
|
819
|
+
var workspaceMatch = formula.match(workspaceLinkRegExp.source);
|
|
820
|
+
if (workspaceMatch) {
|
|
821
|
+
return {
|
|
822
|
+
scopeName: unescapeSpecialCharacters(workspaceMatch[1]),
|
|
823
|
+
indicatorName: unescapeSpecialCharacters(workspaceMatch[2]),
|
|
824
|
+
};
|
|
825
|
+
}
|
|
826
|
+
return null;
|
|
776
827
|
};
|
|
828
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
777
829
|
|
|
778
830
|
function generateColumnFormula(tableName, columnName) {
|
|
779
|
-
|
|
780
|
-
var preparedColumnName = escapeSpecialCharacters(columnName);
|
|
781
|
-
return "\"".concat(preparedTableName, "\".\"").concat(preparedColumnName, "\"");
|
|
831
|
+
return "\"".concat(escapeDoubleQuoteLinkName(tableName), "\".\"").concat(escapeDoubleQuoteLinkName(columnName), "\"");
|
|
782
832
|
}
|
|
783
833
|
|
|
784
834
|
var escapeSingularQuotes = function (formula) {
|
|
@@ -1320,47 +1370,11 @@ function getTransitionMeasureFormula(_a, process) {
|
|
|
1320
1370
|
return "";
|
|
1321
1371
|
}
|
|
1322
1372
|
|
|
1323
|
-
/** Удалить из строки символы экранирования */
|
|
1324
|
-
function unescapeSpecialCharacters(str) {
|
|
1325
|
-
return str.replace(/\\(?!\\)/g, "").replace(/\\\\/g, "\\");
|
|
1326
|
-
}
|
|
1327
|
-
|
|
1328
|
-
/**
|
|
1329
|
-
* Регулярное выражение для поиска имени ссылки внутри формулы.
|
|
1330
|
-
* Учитывает, что имя внутри формулы содержит экраны.
|
|
1331
|
-
*
|
|
1332
|
-
* Принцип работы:
|
|
1333
|
-
* Пробовать следующие вхождения:
|
|
1334
|
-
* - \\\\ - экранированный символ обратного слэша.
|
|
1335
|
-
* - Иначе \\" - экранированный символ кавычки.
|
|
1336
|
-
* - Иначе [^"] - любой символ кроме кавычки.
|
|
1337
|
-
* Если встречается любой другой символ, то это закрывающая кавычка имени переменной.
|
|
1338
|
-
*/
|
|
1339
|
-
var linkNameRegExp = "(?:\\\\\\\\|\\\\\"|[^\"])+";
|
|
1340
|
-
var dashboardLinkRegExp = new RegExp("link: \"(".concat(linkNameRegExp, ")\"(?!\\.\"").concat(linkNameRegExp, "\")"), "g");
|
|
1341
|
-
var workspaceLinkRegExp = new RegExp("link: \"(".concat(linkNameRegExp, ")\"\\.\"(").concat(linkNameRegExp, ")\""), "g");
|
|
1342
|
-
var parseIndicatorLink = function (formula) {
|
|
1343
|
-
var dashboardMatch = formula.match(dashboardLinkRegExp.source);
|
|
1344
|
-
if (dashboardMatch) {
|
|
1345
|
-
return { scopeName: null, indicatorName: dashboardMatch[1] };
|
|
1346
|
-
}
|
|
1347
|
-
var workspaceMatch = formula.match(workspaceLinkRegExp.source);
|
|
1348
|
-
if (workspaceMatch) {
|
|
1349
|
-
return {
|
|
1350
|
-
scopeName: unescapeSpecialCharacters(workspaceMatch[1]),
|
|
1351
|
-
indicatorName: unescapeSpecialCharacters(workspaceMatch[2]),
|
|
1352
|
-
};
|
|
1353
|
-
}
|
|
1354
|
-
return null;
|
|
1355
|
-
};
|
|
1356
|
-
|
|
1357
1373
|
// Типы, используемые в значениях элементов управления.
|
|
1358
1374
|
var EWidgetFilterMode;
|
|
1359
1375
|
(function (EWidgetFilterMode) {
|
|
1360
1376
|
EWidgetFilterMode["DEFAULT"] = "DEFAULT";
|
|
1361
1377
|
EWidgetFilterMode["SINGLE"] = "SINGLE";
|
|
1362
|
-
/** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
|
|
1363
|
-
EWidgetFilterMode["MULTI"] = "MULTI";
|
|
1364
1378
|
EWidgetFilterMode["DISABLED"] = "DISABLED";
|
|
1365
1379
|
})(EWidgetFilterMode || (EWidgetFilterMode = {}));
|
|
1366
1380
|
var EMarkdownDisplayMode;
|
|
@@ -1719,7 +1733,8 @@ var getDefaultSortOrders = function (_a) {
|
|
|
1719
1733
|
}
|
|
1720
1734
|
/** Если есть временной разрез, то авто-сортировка по первому такому разрезу (по возрастанию) */
|
|
1721
1735
|
var timeDimension = dimensions.find(function (dimension) {
|
|
1722
|
-
|
|
1736
|
+
var _a;
|
|
1737
|
+
return ((_a = dimension.format) === null || _a === void 0 ? void 0 : _a.value) &&
|
|
1723
1738
|
[
|
|
1724
1739
|
EFormatTypes.DATE,
|
|
1725
1740
|
EFormatTypes.MONTH,
|
|
@@ -1732,7 +1747,7 @@ var getDefaultSortOrders = function (_a) {
|
|
|
1732
1747
|
EFormatTypes.QUARTER_YEAR,
|
|
1733
1748
|
EFormatTypes.DAY_OF_MONTH,
|
|
1734
1749
|
EFormatTypes.WEEK,
|
|
1735
|
-
].includes(dimension.format);
|
|
1750
|
+
].includes(dimension.format.value);
|
|
1736
1751
|
});
|
|
1737
1752
|
if (timeDimension) {
|
|
1738
1753
|
return [
|
|
@@ -1836,6 +1851,8 @@ var EControlType;
|
|
|
1836
1851
|
(function (EControlType) {
|
|
1837
1852
|
/** Ввод текста */
|
|
1838
1853
|
EControlType["input"] = "input";
|
|
1854
|
+
/** Ввод текста с поддержкой шаблонной вставки сущностей */
|
|
1855
|
+
EControlType["inputTemplate"] = "inputTemplate";
|
|
1839
1856
|
/** Ввод текста в формате markdown */
|
|
1840
1857
|
EControlType["inputMarkdown"] = "inputMarkdown";
|
|
1841
1858
|
/** Ввод числа */
|
|
@@ -1949,19 +1966,6 @@ var updateSingleModeSelection = function (selection, formula, value) {
|
|
|
1949
1966
|
replacedFilter: null,
|
|
1950
1967
|
});
|
|
1951
1968
|
};
|
|
1952
|
-
/** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
|
|
1953
|
-
var updateMultiModeSelection = function (selection, formula, value) {
|
|
1954
|
-
var _a;
|
|
1955
|
-
var selectionItemValues = getSelectionItemValues(value, EWidgetFilterMode.MULTI, (_a = selection.get(formula)) === null || _a === void 0 ? void 0 : _a.values);
|
|
1956
|
-
if (!selectionItemValues.size) {
|
|
1957
|
-
selection.delete(formula);
|
|
1958
|
-
return;
|
|
1959
|
-
}
|
|
1960
|
-
selection.set(formula, {
|
|
1961
|
-
values: selectionItemValues,
|
|
1962
|
-
replacedFilter: null,
|
|
1963
|
-
});
|
|
1964
|
-
};
|
|
1965
1969
|
var replaceFiltersBySelection = function (filters, selection) {
|
|
1966
1970
|
return filters.reduce(function (acc, filter) {
|
|
1967
1971
|
var _a;
|
|
@@ -2082,4 +2086,4 @@ var getColorByIndex = function (index) {
|
|
|
2082
2086
|
return color;
|
|
2083
2087
|
};
|
|
2084
2088
|
|
|
2085
|
-
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, createAggregationTemplate as createMeasureAggregationTemplate, dashboardLinkRegExp, dimensionAggregationTemplates, dimensionTemplateFormulas, displayConditionTemplate, durationTemplates,
|
|
2089
|
+
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, 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,10 @@ function __rest(s, e) {
|
|
|
139
133
|
return t;
|
|
140
134
|
}
|
|
141
135
|
|
|
136
|
+
function __makeTemplateObject(cooked, raw) {
|
|
137
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
138
|
+
return cooked;
|
|
139
|
+
}
|
|
142
140
|
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
143
141
|
var e = new Error(message);
|
|
144
142
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
@@ -683,6 +681,11 @@ exports.ESortingValueModes = void 0;
|
|
|
683
681
|
/** Сортировка по показателю(разрезу или мере) виджета */
|
|
684
682
|
ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
|
|
685
683
|
})(exports.ESortingValueModes || (exports.ESortingValueModes = {}));
|
|
684
|
+
exports.EFormatOrFormattingMode = void 0;
|
|
685
|
+
(function (EFormatOrFormattingMode) {
|
|
686
|
+
EFormatOrFormattingMode["BASE"] = "BASE";
|
|
687
|
+
EFormatOrFormattingMode["TEMPLATE"] = "TEMPLATE";
|
|
688
|
+
})(exports.EFormatOrFormattingMode || (exports.EFormatOrFormattingMode = {}));
|
|
686
689
|
/** Тип показателя */
|
|
687
690
|
exports.EIndicatorType = void 0;
|
|
688
691
|
(function (EIndicatorType) {
|
|
@@ -766,20 +769,67 @@ function fillTemplateString(templateString, params) {
|
|
|
766
769
|
return templateString.replace(/\{(.*?)\}/g, function (_, key) { var _a; return (_a = params[key]) !== null && _a !== void 0 ? _a : ""; });
|
|
767
770
|
}
|
|
768
771
|
|
|
769
|
-
/**
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
772
|
+
/** Создать функцию экранирования переданных `specialChars` внутри `str` */
|
|
773
|
+
var createEscaper = function (specialChars) { return function (str) {
|
|
774
|
+
return specialChars.reduce(function (escaped, char) { return escaped.replaceAll(char, "\\".concat(char)); }, str);
|
|
775
|
+
}; };
|
|
776
|
+
|
|
777
|
+
/** Удалить из строки символы экранирования */
|
|
778
|
+
function unescapeSpecialCharacters(str) {
|
|
779
|
+
return str.replace(/\\(?!\\)/g, "").replace(/\\\\/g, "\\");
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
/**
|
|
783
|
+
* Создает RegExp-паттерн для подстроки с безопасными символами.
|
|
784
|
+
*
|
|
785
|
+
* Подстрока может содержать любой символ, кроме:
|
|
786
|
+
* 1. `restrictedChar` - запрещено появление без экранирования.
|
|
787
|
+
* 2. Обратного слэша (`\`) - запрещено появление без пары.
|
|
788
|
+
*
|
|
789
|
+
* Правило экранирования:
|
|
790
|
+
* - Любой символ, включая `restrictedChar` и `\`, можно использовать с префиксом `\`.
|
|
791
|
+
* - Последний символ в подстроке не может быть одинокий слэш.
|
|
792
|
+
*
|
|
793
|
+
* @param restrictedChar Символ, который нельзя использовать без экранирования.
|
|
794
|
+
* @returns Строка для вставки внутрь RegExp.
|
|
795
|
+
*/
|
|
796
|
+
var createEscapableCharPattern = function (restrictedChar) {
|
|
797
|
+
return String.raw(templateObject_1 || (templateObject_1 = __makeTemplateObject(["(?:\\.|[^", "\\])*"], ["(?:\\\\.|[^", "\\\\])*"])), restrictedChar);
|
|
798
|
+
};
|
|
799
|
+
/**
|
|
800
|
+
* Паттерн подстроки, валидной для использования внутри фигурных скобок.
|
|
801
|
+
* Требование к подстроке - отсутствие закрывающих фигурных скобок (кроме экранированных).
|
|
802
|
+
*/
|
|
803
|
+
var curlyBracketsContentPattern = createEscapableCharPattern("}");
|
|
804
|
+
/**
|
|
805
|
+
* Паттерн подстроки, валидной для использования внутри двойных кавычек.
|
|
806
|
+
* Требование к подстроке - отсутствие двойных кавычек (кроме экранированных).
|
|
774
807
|
*/
|
|
775
|
-
var
|
|
776
|
-
|
|
808
|
+
var doubleQuoteContentPattern = createEscapableCharPattern('"');
|
|
809
|
+
var dashboardLinkRegExp = new RegExp(String.raw(templateObject_2 || (templateObject_2 = __makeTemplateObject(["#{(", ")}(?!.{(", ")})"], ["#\\{(", ")\\}(?!\\.\\{(", ")\\})"])), curlyBracketsContentPattern, curlyBracketsContentPattern), "g");
|
|
810
|
+
var workspaceLinkRegExp = new RegExp(String.raw(templateObject_3 || (templateObject_3 = __makeTemplateObject(["#{(", ")}.{(", ")}"], ["#\\{(", ")\\}\\.\\{(", ")\\}"])), curlyBracketsContentPattern, curlyBracketsContentPattern), "g");
|
|
811
|
+
/** Экранирование спец.символов при подстановке названий таблиц и колонок */
|
|
812
|
+
var escapeDoubleQuoteLinkName = createEscaper(Array.from("\\\""));
|
|
813
|
+
/** Экранирование спец.символов при подстановке названий переменных и показателей */
|
|
814
|
+
var escapeCurlyBracketLinkName = createEscaper(Array.from("\\}.[]"));
|
|
815
|
+
var parseIndicatorLink = function (formula) {
|
|
816
|
+
var dashboardMatch = formula.match(dashboardLinkRegExp.source);
|
|
817
|
+
if (dashboardMatch) {
|
|
818
|
+
return { scopeName: null, indicatorName: dashboardMatch[1] };
|
|
819
|
+
}
|
|
820
|
+
var workspaceMatch = formula.match(workspaceLinkRegExp.source);
|
|
821
|
+
if (workspaceMatch) {
|
|
822
|
+
return {
|
|
823
|
+
scopeName: unescapeSpecialCharacters(workspaceMatch[1]),
|
|
824
|
+
indicatorName: unescapeSpecialCharacters(workspaceMatch[2]),
|
|
825
|
+
};
|
|
826
|
+
}
|
|
827
|
+
return null;
|
|
777
828
|
};
|
|
829
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
778
830
|
|
|
779
831
|
function generateColumnFormula(tableName, columnName) {
|
|
780
|
-
|
|
781
|
-
var preparedColumnName = escapeSpecialCharacters(columnName);
|
|
782
|
-
return "\"".concat(preparedTableName, "\".\"").concat(preparedColumnName, "\"");
|
|
832
|
+
return "\"".concat(escapeDoubleQuoteLinkName(tableName), "\".\"").concat(escapeDoubleQuoteLinkName(columnName), "\"");
|
|
783
833
|
}
|
|
784
834
|
|
|
785
835
|
var escapeSingularQuotes = function (formula) {
|
|
@@ -1321,47 +1371,11 @@ function getTransitionMeasureFormula(_a, process) {
|
|
|
1321
1371
|
return "";
|
|
1322
1372
|
}
|
|
1323
1373
|
|
|
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
1374
|
// Типы, используемые в значениях элементов управления.
|
|
1359
1375
|
exports.EWidgetFilterMode = void 0;
|
|
1360
1376
|
(function (EWidgetFilterMode) {
|
|
1361
1377
|
EWidgetFilterMode["DEFAULT"] = "DEFAULT";
|
|
1362
1378
|
EWidgetFilterMode["SINGLE"] = "SINGLE";
|
|
1363
|
-
/** @deprecated Отказ от режима фильтрации "Множественный выбор"*/
|
|
1364
|
-
EWidgetFilterMode["MULTI"] = "MULTI";
|
|
1365
1379
|
EWidgetFilterMode["DISABLED"] = "DISABLED";
|
|
1366
1380
|
})(exports.EWidgetFilterMode || (exports.EWidgetFilterMode = {}));
|
|
1367
1381
|
exports.EMarkdownDisplayMode = void 0;
|
|
@@ -1720,7 +1734,8 @@ var getDefaultSortOrders = function (_a) {
|
|
|
1720
1734
|
}
|
|
1721
1735
|
/** Если есть временной разрез, то авто-сортировка по первому такому разрезу (по возрастанию) */
|
|
1722
1736
|
var timeDimension = dimensions.find(function (dimension) {
|
|
1723
|
-
|
|
1737
|
+
var _a;
|
|
1738
|
+
return ((_a = dimension.format) === null || _a === void 0 ? void 0 : _a.value) &&
|
|
1724
1739
|
[
|
|
1725
1740
|
exports.EFormatTypes.DATE,
|
|
1726
1741
|
exports.EFormatTypes.MONTH,
|
|
@@ -1733,7 +1748,7 @@ var getDefaultSortOrders = function (_a) {
|
|
|
1733
1748
|
exports.EFormatTypes.QUARTER_YEAR,
|
|
1734
1749
|
exports.EFormatTypes.DAY_OF_MONTH,
|
|
1735
1750
|
exports.EFormatTypes.WEEK,
|
|
1736
|
-
].includes(dimension.format);
|
|
1751
|
+
].includes(dimension.format.value);
|
|
1737
1752
|
});
|
|
1738
1753
|
if (timeDimension) {
|
|
1739
1754
|
return [
|
|
@@ -1837,6 +1852,8 @@ exports.EControlType = void 0;
|
|
|
1837
1852
|
(function (EControlType) {
|
|
1838
1853
|
/** Ввод текста */
|
|
1839
1854
|
EControlType["input"] = "input";
|
|
1855
|
+
/** Ввод текста с поддержкой шаблонной вставки сущностей */
|
|
1856
|
+
EControlType["inputTemplate"] = "inputTemplate";
|
|
1840
1857
|
/** Ввод текста в формате markdown */
|
|
1841
1858
|
EControlType["inputMarkdown"] = "inputMarkdown";
|
|
1842
1859
|
/** Ввод числа */
|
|
@@ -1950,19 +1967,6 @@ var updateSingleModeSelection = function (selection, formula, value) {
|
|
|
1950
1967
|
replacedFilter: null,
|
|
1951
1968
|
});
|
|
1952
1969
|
};
|
|
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
1970
|
var replaceFiltersBySelection = function (filters, selection) {
|
|
1967
1971
|
return filters.reduce(function (acc, filter) {
|
|
1968
1972
|
var _a;
|
|
@@ -2102,13 +2106,17 @@ exports.conversionTemplate = conversionTemplate;
|
|
|
2102
2106
|
exports.convertFiltersToFormula = convertFiltersToFormula;
|
|
2103
2107
|
exports.convertToFormulasChain = convertToFormulasChain;
|
|
2104
2108
|
exports.countExecutionsTemplate = countExecutionsTemplate;
|
|
2109
|
+
exports.createEscaper = createEscaper;
|
|
2105
2110
|
exports.createMeasureAggregationTemplate = createAggregationTemplate;
|
|
2111
|
+
exports.curlyBracketsContentPattern = curlyBracketsContentPattern;
|
|
2106
2112
|
exports.dashboardLinkRegExp = dashboardLinkRegExp;
|
|
2107
2113
|
exports.dimensionAggregationTemplates = dimensionAggregationTemplates;
|
|
2108
2114
|
exports.dimensionTemplateFormulas = dimensionTemplateFormulas;
|
|
2109
2115
|
exports.displayConditionTemplate = displayConditionTemplate;
|
|
2116
|
+
exports.doubleQuoteContentPattern = doubleQuoteContentPattern;
|
|
2110
2117
|
exports.durationTemplates = durationTemplates;
|
|
2111
|
-
exports.
|
|
2118
|
+
exports.escapeCurlyBracketLinkName = escapeCurlyBracketLinkName;
|
|
2119
|
+
exports.escapeDoubleQuoteLinkName = escapeDoubleQuoteLinkName;
|
|
2112
2120
|
exports.eventMeasureTemplateFormulas = eventMeasureTemplateFormulas;
|
|
2113
2121
|
exports.fillTemplateString = fillTemplateString;
|
|
2114
2122
|
exports.formattingConfig = formattingConfig;
|
|
@@ -2126,7 +2134,6 @@ exports.getTransitionMeasureFormula = getTransitionMeasureFormula;
|
|
|
2126
2134
|
exports.isDimensionsHierarchy = isDimensionsHierarchy;
|
|
2127
2135
|
exports.isFormulaFilterValue = isFormulaFilterValue;
|
|
2128
2136
|
exports.isValidColor = isValidColor;
|
|
2129
|
-
exports.linkNameRegExp = linkNameRegExp;
|
|
2130
2137
|
exports.mapDimensionsToInputs = mapDimensionsToInputs;
|
|
2131
2138
|
exports.mapEventMeasuresToInputs = mapEventMeasuresToInputs;
|
|
2132
2139
|
exports.mapFormulaFilterToCalculatorInput = mapFormulaFilterToCalculatorInput;
|
|
@@ -2153,6 +2160,5 @@ exports.timeTemplates = timeTemplates;
|
|
|
2153
2160
|
exports.transitionMeasureTemplateFormulas = transitionMeasureTemplateFormulas;
|
|
2154
2161
|
exports.unescapeSpecialCharacters = unescapeSpecialCharacters;
|
|
2155
2162
|
exports.updateDefaultModeSelection = updateDefaultModeSelection;
|
|
2156
|
-
exports.updateMultiModeSelection = updateMultiModeSelection;
|
|
2157
2163
|
exports.updateSingleModeSelection = updateSingleModeSelection;
|
|
2158
2164
|
exports.workspaceLinkRegExp = workspaceLinkRegExp;
|