@infomaximum/widget-sdk 4.0.0-beta58 → 4.0.0-beta59

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.js CHANGED
@@ -230,7 +230,7 @@ exports.EFormattingPresets = void 0;
230
230
  (function (EFormattingPresets) {
231
231
  //Общая группа шаблонов
232
232
  EFormattingPresets["AUTO"] = "AUTO";
233
- EFormattingPresets["TUNE"] = "TUNE";
233
+ EFormattingPresets["CUSTOM"] = "CUSTOM";
234
234
  //Группа шаблонов для формата DATE
235
235
  EFormattingPresets["DD/M/YYYY"] = "DD/M/YYYY";
236
236
  EFormattingPresets["DD-MM-YYYY"] = "DD-MM-YYYY";
@@ -474,22 +474,6 @@ exports.EWidgetFilterMode = void 0;
474
474
  EWidgetFilterMode["MULTI"] = "MULTI";
475
475
  EWidgetFilterMode["DISABLED"] = "DISABLED";
476
476
  })(exports.EWidgetFilterMode || (exports.EWidgetFilterMode = {}));
477
- exports.EColorMode = void 0;
478
- (function (EColorMode) {
479
- EColorMode["DISABLED"] = "DISABLED";
480
- EColorMode["FORMULA"] = "FORMULA";
481
- EColorMode["BASE"] = "BASE";
482
- EColorMode["GRADIENT"] = "GRADIENT";
483
- EColorMode["AUTO"] = "AUTO";
484
- EColorMode["RULE"] = "RULE";
485
- EColorMode["VALUES"] = "VALUES";
486
- EColorMode["BY_DIMENSION"] = "BY_DIMENSION";
487
- })(exports.EColorMode || (exports.EColorMode = {}));
488
- exports.EColorScope = void 0;
489
- (function (EColorScope) {
490
- EColorScope["WORKSPACE"] = "WORKSPACE";
491
- EColorScope["DASHBOARD"] = "DASHBOARD";
492
- })(exports.EColorScope || (exports.EColorScope = {}));
493
477
  exports.EMarkdownDisplayMode = void 0;
494
478
  (function (EMarkdownDisplayMode) {
495
479
  EMarkdownDisplayMode["NONE"] = "NONE";
@@ -552,9 +536,7 @@ exports.EWidgetIndicatorType = void 0;
552
536
  EWidgetIndicatorType["EVENT_INDICATOR"] = "EVENT_INDICATOR";
553
537
  EWidgetIndicatorType["TRANSITION_INDICATOR"] = "TRANSITION_INDICATOR";
554
538
  EWidgetIndicatorType["DIMENSION"] = "DIMENSION";
555
- EWidgetIndicatorType["DIMENSION_HIERARCHY"] = "DIMENSION_HIERARCHY";
556
539
  EWidgetIndicatorType["SORTING"] = "SORTING";
557
- EWidgetIndicatorType["CUSTOM"] = "CUSTOM";
558
540
  })(exports.EWidgetIndicatorType || (exports.EWidgetIndicatorType = {}));
559
541
  exports.EDbType = void 0;
560
542
  (function (EDbType) {
@@ -574,18 +556,8 @@ exports.ESortingValueModes = void 0;
574
556
  (function (ESortingValueModes) {
575
557
  /** Сортировка по формуле */
576
558
  ESortingValueModes["FORMULA"] = "FORMULA";
577
- /** Пункт "Количество" */
578
- ESortingValueModes["QUANTITY"] = "QUANTITY";
579
- /** @deprecated Для сортировки по иерархии используется режим DIMENSION_IN_WIDGET */
580
- ESortingValueModes["HIERARCHY"] = "HIERARCHY";
581
- /** Сортировка по мере виджета */
582
- ESortingValueModes["MEASURE_IN_WIDGET"] = "MEASURE_IN_WIDGET";
583
- /** Сортировка по разрезу(в т.ч. по иерархии) виджета */
584
- ESortingValueModes["DIMENSION_IN_WIDGET"] = "DIMENSION_IN_WIDGET";
585
- /** Сортировка по мере отчета */
586
- ESortingValueModes["IN_DASHBOARD"] = "IN_DASHBOARD";
587
- /** Сортировка по мере пространства */
588
- ESortingValueModes["IN_WORKSPACE"] = "IN_WORKSPACE";
559
+ /** Сортировка по показателю(разрезу или мере) виджета */
560
+ ESortingValueModes["IN_WIDGET"] = "IN_WIDGET";
589
561
  })(exports.ESortingValueModes || (exports.ESortingValueModes = {}));
590
562
  /** Тип показателя */
591
563
  exports.EIndicatorType = void 0;
@@ -607,8 +579,8 @@ exports.EIndicatorType = void 0;
607
579
  /** Пользовательская сортировка */
608
580
  EIndicatorType["USER_SORTING"] = "USER_SORTING";
609
581
  })(exports.EIndicatorType || (exports.EIndicatorType = {}));
610
- function isHierarchy(indicator) {
611
- return indicator.type === exports.EWidgetIndicatorType.DIMENSION_HIERARCHY;
582
+ function isDimensionsHierarchy(indicator) {
583
+ return "hierarchyDimensions" in indicator;
612
584
  }
613
585
 
614
586
  var _a$3;
@@ -704,11 +676,11 @@ function getMeasureFormula(_a) {
704
676
  var _a$1;
705
677
  exports.EEventMeasureTemplateNames = void 0;
706
678
  (function (EEventMeasureTemplateNames) {
707
- EEventMeasureTemplateNames["count"] = "count";
679
+ EEventMeasureTemplateNames["eventsCount"] = "eventsCount";
708
680
  EEventMeasureTemplateNames["reworksCount"] = "reworksCount";
709
681
  })(exports.EEventMeasureTemplateNames || (exports.EEventMeasureTemplateNames = {}));
710
682
  var eventMeasureTemplateFormulas = (_a$1 = {},
711
- _a$1[exports.EEventMeasureTemplateNames.count] = "count()",
683
+ _a$1[exports.EEventMeasureTemplateNames.eventsCount] = "count()",
712
684
  _a$1[exports.EEventMeasureTemplateNames.reworksCount] = "count() - uniqExact({caseCaseIdFormula})",
713
685
  _a$1);
714
686
  function getEventMeasureFormula(_a, process) {
@@ -729,11 +701,11 @@ function getEventMeasureFormula(_a, process) {
729
701
  var _a;
730
702
  exports.ETransitionMeasureTemplateNames = void 0;
731
703
  (function (ETransitionMeasureTemplateNames) {
732
- ETransitionMeasureTemplateNames["count"] = "count";
704
+ ETransitionMeasureTemplateNames["transitionsCount"] = "transitionsCount";
733
705
  ETransitionMeasureTemplateNames["medianTime"] = "medianTime";
734
706
  })(exports.ETransitionMeasureTemplateNames || (exports.ETransitionMeasureTemplateNames = {}));
735
707
  var transitionMeasureTemplateFormulas = (_a = {},
736
- _a[exports.ETransitionMeasureTemplateNames.count] = "count()",
708
+ _a[exports.ETransitionMeasureTemplateNames.transitionsCount] = "count()",
737
709
  _a[exports.ETransitionMeasureTemplateNames.medianTime] = "medianExact(date_diff(second, begin({eventTimeFormula}), end({eventTimeFormula})))",
738
710
  _a);
739
711
  function getTransitionMeasureFormula(_a, process) {
@@ -751,6 +723,32 @@ function getTransitionMeasureFormula(_a, process) {
751
723
  return "";
752
724
  }
753
725
 
726
+ /**
727
+ * Регулярное выражение для поиска имени ссылки внутри формулы.
728
+ * Учитывает, что имя внутри формулы содержит экраны.
729
+ *
730
+ * Принцип работы:
731
+ * Пробовать следующие вхождения:
732
+ * - \\\\ - экранированный символ обратного слэша.
733
+ * - Иначе \\" - экранированный символ кавычки.
734
+ * - Иначе [^"] - любой символ кроме кавычки.
735
+ * Если встречается любой другой символ, то это закрывающая кавычка имени переменной.
736
+ */
737
+ var linkNameRegExp = "(?:\\\\\\\\|\\\\\"|[^\"])+";
738
+ var dashboardLinkRegExp = new RegExp("link: \"(".concat(linkNameRegExp, ")\"(?!\\.\"").concat(linkNameRegExp, "\")"), "g");
739
+ var workspaceLinkRegExp = new RegExp("link: \"(".concat(linkNameRegExp, ")\"\\.\"(").concat(linkNameRegExp, ")\""), "g");
740
+ var parseIndicatorLink = function (formula) {
741
+ var dashboardMatch = formula.match(dashboardLinkRegExp.source);
742
+ if (dashboardMatch) {
743
+ return { scopeName: null, indicatorName: dashboardMatch[1] };
744
+ }
745
+ var workspaceMatch = formula.match(workspaceLinkRegExp.source);
746
+ if (workspaceMatch) {
747
+ return { scopeName: workspaceMatch[1], indicatorName: workspaceMatch[2] };
748
+ }
749
+ return null;
750
+ };
751
+
754
752
  function mapMeasureToInput(measure, variables, addFormulas) {
755
753
  if (addFormulas === void 0) { addFormulas = function () { return new Map(); }; }
756
754
  var mainFormula = getMeasureFormula(measure);
@@ -773,8 +771,7 @@ function mapMeasuresToInputs(measures, variables, addFormulas) {
773
771
  return compactMap(measures, function (measure) { return mapMeasureToInput(measure, variables, addFormulas); });
774
772
  }
775
773
 
776
- function mapDimensionToInput(dimension, variables, addFormulas) {
777
- if (addFormulas === void 0) { addFormulas = function () { return new Map(); }; }
774
+ function mapDimensionToInput(dimension, variables) {
778
775
  var formula = getDimensionFormula(dimension);
779
776
  if (!formula) {
780
777
  return null;
@@ -788,14 +785,11 @@ function mapDimensionToInput(dimension, variables, addFormulas) {
788
785
  dataType: dimension.dataType,
789
786
  hideEmpty: dimension.hideEmptyValues,
790
787
  displayConditionFormula: getDisplayConditionFormula(dimension.displayCondition),
791
- additionalFormulas: addFormulas(dimension),
792
788
  };
793
789
  }
794
790
  /** Конвертировать разрезы виджета во входы для вычислителя */
795
- function mapDimensionsToInputs(dimensions, variables, addFormulas) {
796
- return compactMap(dimensions, function (dimension) {
797
- return mapDimensionToInput(dimension, variables, addFormulas);
798
- });
791
+ function mapDimensionsToInputs(dimensions, variables) {
792
+ return compactMap(dimensions, function (dimension) { return mapDimensionToInput(dimension, variables); });
799
793
  }
800
794
 
801
795
  function mapTransitionMeasureToInput(indicator, process, variables, addFormulas) {
@@ -854,15 +848,45 @@ exports.ESortDirection = void 0;
854
848
  ESortDirection["DESC"] = "descend";
855
849
  })(exports.ESortDirection || (exports.ESortDirection = {}));
856
850
 
851
+ /**
852
+ * Выбрать активный разрез иерархии на основе активных фильтров.
853
+ * Принцип:
854
+ * Если к разрезу иерархии применяется INCLUDE-фильтр с одним значением - выбираем следующий за ним разрез
855
+ * Если к разрезу иерархии применяется INCLUDE-фильтр с несколькими значениями - выбираем данный разрез
856
+ */
857
+ function selectDimensionFromHierarchy(_a, filters) {
858
+ var hierarchyDimensions = _a.hierarchyDimensions;
859
+ var _loop_1 = function (i) {
860
+ var dimension = hierarchyDimensions[i];
861
+ // todo: widgets - возможно, стоит использовать Map фильтров для быстрого поиска
862
+ var matchedFilter = filters.find(function (_a) {
863
+ var formula = _a.formula, filteringMethod = _a.filteringMethod;
864
+ return formula === getDimensionFormula(dimension) &&
865
+ filteringMethod === exports.ECalculatorFilterMethods.INCLUDE;
866
+ });
867
+ if (!matchedFilter) {
868
+ return "continue";
869
+ }
870
+ var selectionIndex = matchedFilter.values.length > 1 ? i : Math.min(i + 1, hierarchyDimensions.length - 1);
871
+ return { value: hierarchyDimensions[selectionIndex] };
872
+ };
873
+ for (var i = hierarchyDimensions.length - 1; i >= 0; i--) {
874
+ var state_1 = _loop_1(i);
875
+ if (typeof state_1 === "object")
876
+ return state_1.value;
877
+ }
878
+ return hierarchyDimensions[0];
879
+ }
880
+
857
881
  var getDefaultSortOrder = function (dimensions, measures) {
858
- /** Если есть условие отображения, то не делаем автосортировку */
882
+ /** Если есть условие отображения, то не делаем авто-сортировку */
859
883
  if (dimensions.some(function (dimension) {
860
884
  return dimension.displayCondition &&
861
885
  dimension.displayCondition.mode !== exports.EDisplayConditionMode.DISABLED;
862
886
  })) {
863
887
  return [];
864
888
  }
865
- /** Если есть временной разрез, то автосортировка по первому такому разрезу (по возрастанию) */
889
+ /** Если есть временной разрез, то авто-сортировка по первому такому разрезу (по возрастанию) */
866
890
  var timeDimension = dimensions.find(function (dimension) {
867
891
  return dimension.format &&
868
892
  [
@@ -895,88 +919,69 @@ var getDefaultSortOrder = function (dimensions, measures) {
895
919
  }
896
920
  return [];
897
921
  };
898
- /**
899
- * Преобразовать объекты сортировок из settings виджета в sortOrders вычислителя
900
- * @param sortingIndicators объекты сортировок из settings виджета
901
- * @param dimensionsInOriginalOrder разрезы виджета (конкретный разрез будет браться по индексу)
902
- * @param measuresInOriginalOrder меры виджета (конкретная мера будет браться по индексу)
903
- * @returns
904
- */
905
- function mapSortingToInputs(sortingIndicators, dimensionsInOriginalOrder, measuresInOriginalOrder, variables, withDefaultSortOrder) {
906
- if (sortingIndicators === void 0) { sortingIndicators = []; }
907
- if (dimensionsInOriginalOrder === void 0) { dimensionsInOriginalOrder = []; }
908
- if (measuresInOriginalOrder === void 0) { measuresInOriginalOrder = []; }
909
- if (withDefaultSortOrder === void 0) { withDefaultSortOrder = true; }
910
- var sortOrder = compactMap(sortingIndicators, function (_a) {
922
+ function mapSortingToInputs(_a) {
923
+ var _b;
924
+ var settings = _a.settings, variables = _a.variables, filters = _a.filters, getIndicatorType = _a.getIndicatorType, _c = _a.withDefaultSortOrder, withDefaultSortOrder = _c === void 0 ? true : _c, _d = _a.sortableIndicatorsKeys, sortableIndicatorsKeys = _d === void 0 ? [] : _d;
925
+ var sortOrder = compactMap((_b = settings["sorting"]) !== null && _b !== void 0 ? _b : [], function (_a) {
911
926
  var _b;
912
- var value = _a.value, direction = _a.direction;
913
- if (value.mode === exports.ESortingValueModes.FORMULA ||
914
- value.mode === exports.ESortingValueModes.QUANTITY ||
915
- value.mode === exports.ESortingValueModes.IN_DASHBOARD ||
916
- value.mode === exports.ESortingValueModes.IN_WORKSPACE) {
927
+ var direction = _a.direction, value = _a.value;
928
+ if (value.mode === exports.ESortingValueModes.FORMULA) {
917
929
  return value.formula ? { formula: value.formula, direction: direction } : undefined;
918
930
  }
919
- if (value.mode === exports.ESortingValueModes.DIMENSION_IN_WIDGET ||
920
- value.mode === exports.ESortingValueModes.HIERARCHY) {
921
- var dimension = dimensionsInOriginalOrder[value.index];
922
- if (!dimension) {
923
- return;
924
- }
925
- var formula = getDimensionFormula(dimension);
926
- if (!formula || !checkDisplayCondition(dimension.displayCondition, variables)) {
931
+ var indicatorsGroup = settings[value.group];
932
+ var indicator = indicatorsGroup === null || indicatorsGroup === void 0 ? void 0 : indicatorsGroup[value.index];
933
+ if (!indicator) {
934
+ return;
935
+ }
936
+ if (getIndicatorType(value.group, indicator) === exports.EWidgetIndicatorType.DIMENSION) {
937
+ var activeDimensions = isDimensionsHierarchy(indicator)
938
+ ? selectDimensionFromHierarchy(indicator, filters)
939
+ : indicator;
940
+ var formula = activeDimensions && getDimensionFormula(activeDimensions);
941
+ if (!formula || !checkDisplayCondition(indicator.displayCondition, variables)) {
927
942
  return;
928
943
  }
929
944
  return {
930
- formula: getDimensionFormula(dimension),
945
+ formula: formula,
931
946
  direction: direction,
932
- displayCondition: ((_b = dimension.displayCondition) === null || _b === void 0 ? void 0 : _b.mode) === exports.EDisplayConditionMode.FORMULA
933
- ? dimension.displayCondition.formula
947
+ displayCondition: ((_b = indicator.displayCondition) === null || _b === void 0 ? void 0 : _b.mode) === exports.EDisplayConditionMode.FORMULA
948
+ ? indicator.displayCondition.formula
934
949
  : undefined,
935
950
  };
936
951
  }
937
- if (value.mode === exports.ESortingValueModes.MEASURE_IN_WIDGET) {
938
- var measure = measuresInOriginalOrder[value.index];
939
- return measure && { formula: getMeasureFormula(measure), direction: direction };
940
- }
952
+ return {
953
+ formula: getMeasureFormula(indicator),
954
+ direction: direction,
955
+ };
941
956
  });
942
- return withDefaultSortOrder && sortOrder.length === 0
943
- ? getDefaultSortOrder(dimensionsInOriginalOrder, measuresInOriginalOrder)
944
- : sortOrder;
945
- }
946
-
947
- /**
948
- * Выбрать активный разрез иерархии на основе активных фильтров.
949
- * Принцип:
950
- * Если к разрезу иерархии применяется INCLUDE-фильтр с одним значением - выбираем следующий за ним разрез
951
- * Если к разрезу иерархии применяется INCLUDE-фильтр с несколькими значениями - выбираем данный разрез
952
- */
953
- function selectDimensionFromHierarchy(_a, filters) {
954
- var dimensions = _a.dimensions;
955
- var _loop_1 = function (i) {
956
- var dimension = dimensions[i];
957
- // todo: widgets - возможно, стоит использовать Map фильтров для быстрого поиска
958
- var matchedFilter = filters.find(function (_a) {
959
- var formula = _a.formula, filteringMethod = _a.filteringMethod;
960
- return formula === getDimensionFormula(dimension) &&
961
- filteringMethod === exports.ECalculatorFilterMethods.INCLUDE;
962
- });
963
- if (!matchedFilter) {
964
- return "continue";
965
- }
966
- var selectionIndex = matchedFilter.values.length > 1 ? i : Math.min(i + 1, dimensions.length - 1);
967
- return { value: dimensions[selectionIndex] };
968
- };
969
- for (var i = dimensions.length - 1; i >= 0; i--) {
970
- var state_1 = _loop_1(i);
971
- if (typeof state_1 === "object")
972
- return state_1.value;
957
+ if (sortOrder.length > 0) {
958
+ return sortOrder;
959
+ }
960
+ if (sortableIndicatorsKeys.length === 0 || withDefaultSortOrder === false) {
961
+ return [];
973
962
  }
974
- return dimensions[0];
963
+ var dimensions = [];
964
+ var measures = [];
965
+ sortableIndicatorsKeys.forEach(function (key) {
966
+ var indicatorsGroup = settings[key];
967
+ indicatorsGroup === null || indicatorsGroup === void 0 ? void 0 : indicatorsGroup.forEach(function (indicator) {
968
+ if (getIndicatorType(key, indicator) === exports.EWidgetIndicatorType.DIMENSION) {
969
+ var activeDimensions = isDimensionsHierarchy(indicator)
970
+ ? selectDimensionFromHierarchy(indicator, filters)
971
+ : indicator;
972
+ activeDimensions && dimensions.push(activeDimensions);
973
+ }
974
+ else {
975
+ measures.push(indicator);
976
+ }
977
+ });
978
+ });
979
+ return getDefaultSortOrder(dimensions, measures);
975
980
  }
976
981
 
977
982
  var replaceHierarchiesWithDimensions = function (dimensions, filters) {
978
983
  return compactMap(dimensions, function (indicator) {
979
- if (isHierarchy(indicator)) {
984
+ if (isDimensionsHierarchy(indicator)) {
980
985
  var selectedDimension = selectDimensionFromHierarchy(indicator, filters);
981
986
  return (selectedDimension && replaceDisplayCondition(selectedDimension, indicator.displayCondition));
982
987
  }
@@ -1021,8 +1026,6 @@ exports.EControlType = void 0;
1021
1026
  EControlType["typedFormula"] = "typedFormula";
1022
1027
  EControlType["inputRange"] = "inputRange";
1023
1028
  EControlType["colorPicker"] = "colorPicker";
1024
- /** @deprecated - удалится в ближайшее время */
1025
- EControlType["filterMode"] = "filterMode";
1026
1029
  EControlType["displayCondition"] = "displayCondition";
1027
1030
  EControlType["eventsColor"] = "eventsColor";
1028
1031
  EControlType["inputMarkdown"] = "inputMarkdown";
@@ -1140,6 +1143,47 @@ var getLocalizedText = function (language, locObj, props) {
1140
1143
  return localization.getLocalized(locObj, props);
1141
1144
  };
1142
1145
 
1146
+ exports.EColorMode = void 0;
1147
+ (function (EColorMode) {
1148
+ /** Окрашивание отключено */
1149
+ EColorMode["DISABLED"] = "DISABLED";
1150
+ /** Цвет каждого значения вычисляется по формуле */
1151
+ EColorMode["FORMULA"] = "FORMULA";
1152
+ /** Один цвет для всех значений */
1153
+ EColorMode["BASE"] = "BASE";
1154
+ /** Окрашивание каждого значения по градиенту относительно минимального и максимального значений */
1155
+ EColorMode["GRADIENT"] = "GRADIENT";
1156
+ /** Использовать автоматический цвет: по умолчанию определяется порядковым номером показателя */
1157
+ EColorMode["AUTO"] = "AUTO";
1158
+ /** Использовать цвет из правила отображения (в правиле отображения рекурсивно определен цвет) */
1159
+ EColorMode["RULE"] = "RULE";
1160
+ /** Задать цвет конкретным значениям разреза */
1161
+ EColorMode["VALUES"] = "VALUES";
1162
+ /** Задать цвет конкретным значениям общего разреза. Режим используется только для настроек правила отображения */
1163
+ EColorMode["BY_DIMENSION"] = "BY_DIMENSION";
1164
+ })(exports.EColorMode || (exports.EColorMode = {}));
1165
+ var getRuleColor = function (ruleFormula, globalContext) {
1166
+ var _a, _b;
1167
+ var link = parseIndicatorLink(ruleFormula);
1168
+ if (!link) {
1169
+ return;
1170
+ }
1171
+ var _c = link.scopeName, scopeName = _c === void 0 ? null : _c, ruleName = link.indicatorName;
1172
+ var rulesByScope = isNil(scopeName)
1173
+ ? globalContext.reportDisplayRules
1174
+ : (_a = globalContext.workspaceDisplayRules) === null || _a === void 0 ? void 0 : _a.get(scopeName);
1175
+ return (_b = rulesByScope === null || rulesByScope === void 0 ? void 0 : rulesByScope.get(ruleName)) === null || _b === void 0 ? void 0 : _b.color;
1176
+ };
1177
+ var isValidColor = function (color, globalContext) {
1178
+ if (color.mode === exports.EColorMode.RULE) {
1179
+ return !color.formula || Boolean(getRuleColor(color.formula, globalContext));
1180
+ }
1181
+ if (color.mode === exports.EColorMode.VALUES) {
1182
+ return color.items.every(function (item) { return isValidColor(item.color, globalContext); });
1183
+ }
1184
+ return true;
1185
+ };
1186
+
1143
1187
  Object.defineProperty(exports, "ELanguages", {
1144
1188
  enumerable: true,
1145
1189
  get: function () { return localization$1.ELanguages; }
@@ -1151,6 +1195,7 @@ Object.defineProperty(exports, "EFilteringMethodValues", {
1151
1195
  exports.bindContentWithIndicator = bindContentWithIndicator;
1152
1196
  exports.bindContentsWithIndicators = bindContentsWithIndicators;
1153
1197
  exports.checkDisplayCondition = checkDisplayCondition;
1198
+ exports.dashboardLinkRegExp = dashboardLinkRegExp;
1154
1199
  exports.dimensionTemplateFormulas = dimensionTemplateFormulas;
1155
1200
  exports.escapeSpecialCharacters = escapeSpecialCharacters;
1156
1201
  exports.eventMeasureTemplateFormulas = eventMeasureTemplateFormulas;
@@ -1162,10 +1207,13 @@ exports.getDisplayConditionFormula = getDisplayConditionFormula;
1162
1207
  exports.getEventMeasureFormula = getEventMeasureFormula;
1163
1208
  exports.getLocalizedText = getLocalizedText;
1164
1209
  exports.getMeasureFormula = getMeasureFormula;
1210
+ exports.getRuleColor = getRuleColor;
1165
1211
  exports.getTransitionMeasureFormula = getTransitionMeasureFormula;
1212
+ exports.isDimensionsHierarchy = isDimensionsHierarchy;
1166
1213
  exports.isExecuteScriptActionValid = isExecuteScriptActionValid;
1167
1214
  exports.isFormulaFilterValue = isFormulaFilterValue;
1168
- exports.isHierarchy = isHierarchy;
1215
+ exports.isValidColor = isValidColor;
1216
+ exports.linkNameRegExp = linkNameRegExp;
1169
1217
  exports.mapDimensionsToInputs = mapDimensionsToInputs;
1170
1218
  exports.mapEventMeasuresToInputs = mapEventMeasuresToInputs;
1171
1219
  exports.mapFormulaFilterToCalculatorInput = mapFormulaFilterToCalculatorInput;
@@ -1174,6 +1222,7 @@ exports.mapMeasuresToInputs = mapMeasuresToInputs;
1174
1222
  exports.mapSortingToInputs = mapSortingToInputs;
1175
1223
  exports.mapTransitionMeasuresToInputs = mapTransitionMeasuresToInputs;
1176
1224
  exports.measureTemplateFormulas = measureTemplateFormulas;
1225
+ exports.parseIndicatorLink = parseIndicatorLink;
1177
1226
  exports.prepareValuesForSql = prepareValuesForSql;
1178
1227
  exports.replaceDisplayCondition = replaceDisplayCondition;
1179
1228
  exports.replaceFiltersBySelection = replaceFiltersBySelection;
@@ -1184,3 +1233,4 @@ exports.unescapeSpecialCharacters = unescapeSpecialCharacters;
1184
1233
  exports.updateDefaultModeSelection = updateDefaultModeSelection;
1185
1234
  exports.updateMultiModeSelection = updateMultiModeSelection;
1186
1235
  exports.updateSingleModeSelection = updateSingleModeSelection;
1236
+ exports.workspaceLinkRegExp = workspaceLinkRegExp;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infomaximum/widget-sdk",
3
- "version": "4.0.0-beta58",
3
+ "version": "4.0.0-beta59",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.esm.js",
6
6
  "types": "./dist/index.d.ts",