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