@fileverse-dev/formulajs 4.4.17 → 4.4.18

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.17 */
1
+ /* @fileverse-dev/formulajs v4.4.18 */
2
2
  var _excluded = [ "confirmations", "dataDecoded" ];
3
3
 
4
4
  function _objectWithoutProperties(e, t) {
@@ -4856,36 +4856,63 @@ function _typeof(o) {
4856
4856
  }
4857
4857
  function SORT(array) {
4858
4858
  var sort_index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
4859
- var sort_order = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
4859
+ var is_ascending = arguments.length > 2 ? arguments[2] : undefined;
4860
4860
  var by_col = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
4861
- if (!array || !Array.isArray(array)) {
4862
- return na;
4863
- }
4864
- if (array.length === 0) {
4865
- return 0;
4866
- }
4867
- sort_index = parseNumber(sort_index);
4868
- if (!sort_index || sort_index < 1) {
4869
- return value;
4870
- }
4871
- sort_order = parseNumber(sort_order);
4872
- if (sort_order !== 1 && sort_order !== -1) {
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) {
4873
4874
  return value;
4874
4875
  }
4875
- by_col = parseBool(by_col);
4876
- if (typeof by_col !== "boolean") {
4877
- return name;
4878
- }
4879
- var sortArray = function sortArray(arr) {
4880
- return arr.sort((function(a, b) {
4881
- a = parseString(a[sort_index - 1]);
4882
- b = parseString(b[sort_index - 1]);
4883
- return sort_order === 1 ? a < b ? sort_order * -1 : sort_order : a > b ? sort_order : sort_order * -1;
4884
- }));
4876
+ var isBlank = function isBlank(v) {
4877
+ return v === "" || v === null || v === undefined;
4885
4878
  };
4886
- var matrix = fillMatrix(array);
4887
- var result = by_col ? transpose(matrix) : matrix;
4888
- return sort_index >= 1 && sort_index <= result[0].length ? by_col ? transpose(sortArray(result)) : sortArray(result) : value;
4879
+ var cmp = function cmp(a, b) {
4880
+ var _parseString, _parseString2;
4881
+ var aBlank = isBlank(a);
4882
+ var bBlank = isBlank(b);
4883
+ if (aBlank && bBlank) return 0;
4884
+ if (aBlank) return 1;
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;
4893
+ return 0;
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;
4899
+ return 0;
4900
+ };
4901
+ var decorated = working.map((function(row, i) {
4902
+ return {
4903
+ row: row,
4904
+ i: i
4905
+ };
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;
4911
+ }));
4912
+ var sorted = decorated.map((function(d) {
4913
+ return d.row;
4914
+ }));
4915
+ return byCol ? transpose(sorted) : sorted;
4889
4916
  }
4890
4917
  function TRANSPOSE(array) {
4891
4918
  if (!array) {