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

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 CHANGED
@@ -1214,7 +1214,7 @@ declare function mapEventMeasuresToInputs<T extends IProcessIndicator>(indicator
1214
1214
  * @param measuresInOriginalOrder меры виджета (конкретная мера будет браться по индексу)
1215
1215
  * @returns
1216
1216
  */
1217
- declare function mapSortingToInputs(sortingIndicators: IWidgetSortingIndicator[] | undefined, dimensionsInOriginalOrder: IWidgetDimension[] | undefined, measuresInOriginalOrder: IWidgetMeasure[] | undefined, variables: Map<string, TWidgetVariable>): ISortOrder[];
1217
+ declare function mapSortingToInputs(sortingIndicators: IWidgetSortingIndicator[] | undefined, dimensionsInOriginalOrder: IWidgetDimension[] | undefined, measuresInOriginalOrder: IWidgetMeasure[] | undefined, variables: Map<string, TWidgetVariable>, withDefaultSortOrder?: boolean): ISortOrder[];
1218
1218
 
1219
1219
  /**
1220
1220
  * Выбрать активный разрез иерархии на основе активных фильтров.
package/dist/index.esm.js CHANGED
@@ -845,6 +845,55 @@ function mapEventMeasuresToInputs(indicators, process, variables, addFormulas) {
845
845
  });
846
846
  }
847
847
 
848
+ var ESortDirection;
849
+ (function (ESortDirection) {
850
+ ESortDirection["descend"] = "DESC";
851
+ ESortDirection["ascend"] = "ASC";
852
+ ESortDirection["ASC"] = "ascend";
853
+ ESortDirection["DESC"] = "descend";
854
+ })(ESortDirection || (ESortDirection = {}));
855
+
856
+ var getDefaultSortOrder = function (dimensions, measures) {
857
+ /** Если есть условие отображения, то не делаем автосортировку */
858
+ if (dimensions.some(function (dimension) {
859
+ return dimension.displayCondition &&
860
+ dimension.displayCondition.mode !== EDisplayConditionMode.DISABLED;
861
+ })) {
862
+ return [];
863
+ }
864
+ /** Если есть временной разрез, то автосортировка по первому такому разрезу (по возрастанию) */
865
+ var timeDimension = dimensions.find(function (dimension) {
866
+ return dimension.format &&
867
+ [
868
+ EFormatTypes.DATE,
869
+ EFormatTypes.MONTH,
870
+ EFormatTypes.DATETIME,
871
+ EFormatTypes.DAY_OF_WEEK,
872
+ EFormatTypes.HOUR,
873
+ EFormatTypes.MONTH_YEAR,
874
+ EFormatTypes.YEAR,
875
+ EFormatTypes.QUARTER,
876
+ EFormatTypes.QUARTER_YEAR,
877
+ EFormatTypes.DAY_OF_MONTH,
878
+ EFormatTypes.WEEK,
879
+ ].includes(dimension.format);
880
+ });
881
+ if (timeDimension) {
882
+ return [{ formula: getDimensionFormula(timeDimension), direction: ESortDirection.ascend }];
883
+ }
884
+ if (measures.length > 0) {
885
+ var firstMeasure = measures[0];
886
+ if (firstMeasure) {
887
+ return [
888
+ {
889
+ direction: ESortDirection.descend,
890
+ formula: getMeasureFormula(firstMeasure),
891
+ },
892
+ ];
893
+ }
894
+ }
895
+ return [];
896
+ };
848
897
  /**
849
898
  * Преобразовать объекты сортировок из settings виджета в sortOrders вычислителя
850
899
  * @param sortingIndicators объекты сортировок из settings виджета
@@ -852,11 +901,12 @@ function mapEventMeasuresToInputs(indicators, process, variables, addFormulas) {
852
901
  * @param measuresInOriginalOrder меры виджета (конкретная мера будет браться по индексу)
853
902
  * @returns
854
903
  */
855
- function mapSortingToInputs(sortingIndicators, dimensionsInOriginalOrder, measuresInOriginalOrder, variables) {
904
+ function mapSortingToInputs(sortingIndicators, dimensionsInOriginalOrder, measuresInOriginalOrder, variables, withDefaultSortOrder) {
856
905
  if (sortingIndicators === void 0) { sortingIndicators = []; }
857
906
  if (dimensionsInOriginalOrder === void 0) { dimensionsInOriginalOrder = []; }
858
907
  if (measuresInOriginalOrder === void 0) { measuresInOriginalOrder = []; }
859
- return compactMap(sortingIndicators, function (_a) {
908
+ if (withDefaultSortOrder === void 0) { withDefaultSortOrder = true; }
909
+ var sortOrder = compactMap(sortingIndicators, function (_a) {
860
910
  var _b;
861
911
  var value = _a.value, direction = _a.direction;
862
912
  if (value.mode === ESortingValueModes.FORMULA ||
@@ -888,6 +938,9 @@ function mapSortingToInputs(sortingIndicators, dimensionsInOriginalOrder, measur
888
938
  return measure && { formula: getMeasureFormula(measure), direction: direction };
889
939
  }
890
940
  });
941
+ return withDefaultSortOrder && sortOrder.length === 0
942
+ ? getDefaultSortOrder(dimensionsInOriginalOrder, measuresInOriginalOrder)
943
+ : sortOrder;
891
944
  }
892
945
 
893
946
  /**
@@ -992,14 +1045,6 @@ var ECustomSelectTemplates;
992
1045
  ECustomSelectTemplates["DIMENSION_GROUPS"] = "DIMENSION_GROUPS";
993
1046
  })(ECustomSelectTemplates || (ECustomSelectTemplates = {}));
994
1047
 
995
- var ESortDirection;
996
- (function (ESortDirection) {
997
- ESortDirection["descend"] = "DESC";
998
- ESortDirection["ascend"] = "ASC";
999
- ESortDirection["ASC"] = "ascend";
1000
- ESortDirection["DESC"] = "descend";
1001
- })(ESortDirection || (ESortDirection = {}));
1002
-
1003
1048
  var findFilterByFormula = function (filters, formula) {
1004
1049
  var _a;
1005
1050
  return ((_a = filters.find(function (filter) {
package/dist/index.js CHANGED
@@ -846,6 +846,55 @@ function mapEventMeasuresToInputs(indicators, process, variables, addFormulas) {
846
846
  });
847
847
  }
848
848
 
849
+ exports.ESortDirection = void 0;
850
+ (function (ESortDirection) {
851
+ ESortDirection["descend"] = "DESC";
852
+ ESortDirection["ascend"] = "ASC";
853
+ ESortDirection["ASC"] = "ascend";
854
+ ESortDirection["DESC"] = "descend";
855
+ })(exports.ESortDirection || (exports.ESortDirection = {}));
856
+
857
+ var getDefaultSortOrder = function (dimensions, measures) {
858
+ /** Если есть условие отображения, то не делаем автосортировку */
859
+ if (dimensions.some(function (dimension) {
860
+ return dimension.displayCondition &&
861
+ dimension.displayCondition.mode !== exports.EDisplayConditionMode.DISABLED;
862
+ })) {
863
+ return [];
864
+ }
865
+ /** Если есть временной разрез, то автосортировка по первому такому разрезу (по возрастанию) */
866
+ var timeDimension = dimensions.find(function (dimension) {
867
+ return dimension.format &&
868
+ [
869
+ exports.EFormatTypes.DATE,
870
+ exports.EFormatTypes.MONTH,
871
+ exports.EFormatTypes.DATETIME,
872
+ exports.EFormatTypes.DAY_OF_WEEK,
873
+ exports.EFormatTypes.HOUR,
874
+ exports.EFormatTypes.MONTH_YEAR,
875
+ exports.EFormatTypes.YEAR,
876
+ exports.EFormatTypes.QUARTER,
877
+ exports.EFormatTypes.QUARTER_YEAR,
878
+ exports.EFormatTypes.DAY_OF_MONTH,
879
+ exports.EFormatTypes.WEEK,
880
+ ].includes(dimension.format);
881
+ });
882
+ if (timeDimension) {
883
+ return [{ formula: getDimensionFormula(timeDimension), direction: exports.ESortDirection.ascend }];
884
+ }
885
+ if (measures.length > 0) {
886
+ var firstMeasure = measures[0];
887
+ if (firstMeasure) {
888
+ return [
889
+ {
890
+ direction: exports.ESortDirection.descend,
891
+ formula: getMeasureFormula(firstMeasure),
892
+ },
893
+ ];
894
+ }
895
+ }
896
+ return [];
897
+ };
849
898
  /**
850
899
  * Преобразовать объекты сортировок из settings виджета в sortOrders вычислителя
851
900
  * @param sortingIndicators объекты сортировок из settings виджета
@@ -853,11 +902,12 @@ function mapEventMeasuresToInputs(indicators, process, variables, addFormulas) {
853
902
  * @param measuresInOriginalOrder меры виджета (конкретная мера будет браться по индексу)
854
903
  * @returns
855
904
  */
856
- function mapSortingToInputs(sortingIndicators, dimensionsInOriginalOrder, measuresInOriginalOrder, variables) {
905
+ function mapSortingToInputs(sortingIndicators, dimensionsInOriginalOrder, measuresInOriginalOrder, variables, withDefaultSortOrder) {
857
906
  if (sortingIndicators === void 0) { sortingIndicators = []; }
858
907
  if (dimensionsInOriginalOrder === void 0) { dimensionsInOriginalOrder = []; }
859
908
  if (measuresInOriginalOrder === void 0) { measuresInOriginalOrder = []; }
860
- return compactMap(sortingIndicators, function (_a) {
909
+ if (withDefaultSortOrder === void 0) { withDefaultSortOrder = true; }
910
+ var sortOrder = compactMap(sortingIndicators, function (_a) {
861
911
  var _b;
862
912
  var value = _a.value, direction = _a.direction;
863
913
  if (value.mode === exports.ESortingValueModes.FORMULA ||
@@ -889,6 +939,9 @@ function mapSortingToInputs(sortingIndicators, dimensionsInOriginalOrder, measur
889
939
  return measure && { formula: getMeasureFormula(measure), direction: direction };
890
940
  }
891
941
  });
942
+ return withDefaultSortOrder && sortOrder.length === 0
943
+ ? getDefaultSortOrder(dimensionsInOriginalOrder, measuresInOriginalOrder)
944
+ : sortOrder;
892
945
  }
893
946
 
894
947
  /**
@@ -993,14 +1046,6 @@ exports.ECustomSelectTemplates = void 0;
993
1046
  ECustomSelectTemplates["DIMENSION_GROUPS"] = "DIMENSION_GROUPS";
994
1047
  })(exports.ECustomSelectTemplates || (exports.ECustomSelectTemplates = {}));
995
1048
 
996
- exports.ESortDirection = void 0;
997
- (function (ESortDirection) {
998
- ESortDirection["descend"] = "DESC";
999
- ESortDirection["ascend"] = "ASC";
1000
- ESortDirection["ASC"] = "ascend";
1001
- ESortDirection["DESC"] = "descend";
1002
- })(exports.ESortDirection || (exports.ESortDirection = {}));
1003
-
1004
1049
  var findFilterByFormula = function (filters, formula) {
1005
1050
  var _a;
1006
1051
  return ((_a = filters.find(function (filter) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infomaximum/widget-sdk",
3
- "version": "4.0.0-beta57",
3
+ "version": "4.0.0-beta58",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.esm.js",
6
6
  "types": "./dist/index.d.ts",