@fileverse-dev/formulajs 4.4.18 → 4.4.20

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.
@@ -1,4 +1,4 @@
1
- /* @fileverse-dev/formulajs v4.4.18 */
1
+ /* @fileverse-dev/formulajs v4.4.20 */
2
2
  var _excluded = [ "confirmations", "dataDecoded" ];
3
3
 
4
4
  function _objectWithoutProperties(e, t) {
@@ -4854,65 +4854,65 @@ function _typeof(o) {
4854
4854
  }
4855
4855
  return jStat.rows(array);
4856
4856
  }
4857
- function SORT(array) {
4858
- var sort_index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
4859
- var is_ascending = arguments.length > 2 ? arguments[2] : undefined;
4860
- var by_col = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
4861
- if (!array || !Array.isArray(array)) return na;
4862
- if (array.length === 0) return 0;
4863
- var idx = parseNumber(sort_index);
4864
- if (!idx || idx < 1) return value;
4865
- idx = idx - 1;
4866
- var sortOrderNumber = is_ascending === "FALSE" ? -1 : 1;
4867
- var order = parseNumber(sortOrderNumber);
4868
- if (order !== 1 && order !== -1) return value;
4869
- var byCol = parseBool(by_col);
4870
- if (typeof byCol !== "boolean") return name;
4871
- var matrix = fillMatrix(array);
4872
- var working = byCol ? transpose(matrix) : matrix;
4873
- if (!working.length || !working[0] || idx >= working[0].length) {
4857
+ function SORT(inputArray) {
4858
+ var sortIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
4859
+ var isAscending = arguments.length > 2 ? arguments[2] : undefined;
4860
+ var sortByColumn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
4861
+ if (!inputArray || !Array.isArray(inputArray)) return na;
4862
+ if (inputArray.length === 0) return 0;
4863
+ var sortColumnIndex = parseNumber(sortIndex);
4864
+ if (!sortColumnIndex || sortColumnIndex < 1) return value;
4865
+ sortColumnIndex = sortColumnIndex - 1;
4866
+ var sortDirection = (isAscending === null || isAscending === void 0 ? void 0 : isAscending.toLowerCase()) === "false" ? -1 : 1;
4867
+ var parsedSortDirection = parseNumber(sortDirection);
4868
+ if (parsedSortDirection !== 1 && parsedSortDirection !== -1) return value;
4869
+ var isSortByColumn = parseBool(sortByColumn);
4870
+ if (typeof isSortByColumn !== "boolean") return name;
4871
+ var normalizedMatrix = fillMatrix(inputArray);
4872
+ var orientedMatrix = isSortByColumn ? transpose(normalizedMatrix) : normalizedMatrix;
4873
+ if (!orientedMatrix.length || !orientedMatrix[0] || sortColumnIndex >= orientedMatrix[0].length) {
4874
4874
  return value;
4875
4875
  }
4876
- var isBlank = function isBlank(v) {
4877
- return v === "" || v === null || v === undefined;
4876
+ var isBlank = function isBlank(value) {
4877
+ return value === "" || value === null || value === undefined;
4878
4878
  };
4879
- var cmp = function cmp(a, b) {
4879
+ var compareValues = function compareValues(a, b) {
4880
4880
  var _parseString, _parseString2;
4881
4881
  var aBlank = isBlank(a);
4882
4882
  var bBlank = isBlank(b);
4883
4883
  if (aBlank && bBlank) return 0;
4884
4884
  if (aBlank) return 1;
4885
4885
  if (bBlank) return -1;
4886
- var na = parseNumber(a);
4887
- var nb = parseNumber(b);
4888
- var aNum = Number.isFinite(na);
4889
- var bNum = Number.isFinite(nb);
4890
- if (aNum && bNum) {
4891
- if (na < nb) return -1;
4892
- if (na > nb) return 1;
4886
+ var parsedA = parseNumber(a);
4887
+ var parsedB = parseNumber(b);
4888
+ var isANumber = Number.isFinite(parsedA);
4889
+ var isBNumber = Number.isFinite(parsedB);
4890
+ if (isANumber && isBNumber) {
4891
+ if (parsedA < parsedB) return -1;
4892
+ if (parsedA > parsedB) return 1;
4893
4893
  return 0;
4894
4894
  }
4895
- var sa = ((_parseString = parseString(a)) !== null && _parseString !== void 0 ? _parseString : "").toString().toLowerCase();
4896
- var sb = ((_parseString2 = parseString(b)) !== null && _parseString2 !== void 0 ? _parseString2 : "").toString().toLowerCase();
4897
- if (sa < sb) return -1;
4898
- if (sa > sb) return 1;
4895
+ var stringA = ((_parseString = parseString(a)) !== null && _parseString !== void 0 ? _parseString : "").toString().toLowerCase();
4896
+ var stringB = ((_parseString2 = parseString(b)) !== null && _parseString2 !== void 0 ? _parseString2 : "").toString().toLowerCase();
4897
+ if (stringA < stringB) return -1;
4898
+ if (stringA > stringB) return 1;
4899
4899
  return 0;
4900
4900
  };
4901
- var decorated = working.map((function(row, i) {
4901
+ var rowsWithOriginalIndex = orientedMatrix.map((function(row, rowIndex) {
4902
4902
  return {
4903
4903
  row: row,
4904
- i: i
4904
+ rowIndex: rowIndex
4905
4905
  };
4906
4906
  }));
4907
- decorated.sort((function(A, B) {
4908
- var base = cmp(A.row[idx], B.row[idx]);
4909
- if (base !== 0) return base * order;
4910
- return A.i - B.i;
4907
+ rowsWithOriginalIndex.sort((function(rowA, rowB) {
4908
+ var baseComparison = compareValues(rowA.row[sortColumnIndex], rowB.row[sortColumnIndex]);
4909
+ if (baseComparison !== 0) return baseComparison * parsedSortDirection;
4910
+ return rowA.rowIndex - rowB.rowIndex;
4911
4911
  }));
4912
- var sorted = decorated.map((function(d) {
4913
- return d.row;
4912
+ var sortedMatrix = rowsWithOriginalIndex.map((function(item) {
4913
+ return item.row;
4914
4914
  }));
4915
- return byCol ? transpose(sorted) : sorted;
4915
+ return isSortByColumn ? transpose(sortedMatrix) : sortedMatrix;
4916
4916
  }
4917
4917
  function TRANSPOSE(array) {
4918
4918
  if (!array) {