@leankylin-sheet/formula-parser 4.0.43 → 4.0.45

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
- declare function func(exp1: any, exp2: any): boolean;
1
+ declare function func(exp1: any, exp2: any): boolean | boolean[];
2
2
  declare namespace func {
3
3
  export { SYMBOL };
4
4
  }
@@ -1,4 +1,4 @@
1
- declare function func(exp1: any, exp2: any): boolean;
1
+ declare function func(exp1: any, exp2: any): boolean | boolean[];
2
2
  declare namespace func {
3
3
  export { SYMBOL };
4
4
  }
@@ -0,0 +1 @@
1
+ export function multiplyNumber(num1?: number, num2?: number): number;
package/dist/index.esm.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import Emitter from 'tiny-emitter';
2
2
  import * as formulajs from '@formulajs/formulajs';
3
3
  import { utils } from '@formulajs/formulajs';
4
+ import { Decimal } from 'decimal.js';
4
5
 
5
6
  function _callSuper(t, o, e) {
6
7
  return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
@@ -405,6 +406,18 @@ func$5.SYMBOL = SYMBOL$5;
405
406
 
406
407
  var SYMBOL$6 = '>=';
407
408
  function func$6(exp1, exp2) {
409
+ var isArray1 = Array.isArray(exp1);
410
+ var isArray2 = Array.isArray(exp2);
411
+ if (isArray1 && !isArray2) {
412
+ return exp1.map(function (item) {
413
+ return (item === null || item === void 0 ? void 0 : item[0]) >= exp2;
414
+ });
415
+ }
416
+ if (!isArray1 && isArray2) {
417
+ return exp2.map(function (item) {
418
+ return exp1 >= (item === null || item === void 0 ? void 0 : item[0]);
419
+ });
420
+ }
408
421
  return exp1 >= exp2;
409
422
  }
410
423
  func$6.SYMBOL = SYMBOL$6;
@@ -429,6 +442,18 @@ func$7.SYMBOL = SYMBOL$7;
429
442
 
430
443
  var SYMBOL$8 = '<=';
431
444
  function func$8(exp1, exp2) {
445
+ var isArray1 = Array.isArray(exp1);
446
+ var isArray2 = Array.isArray(exp2);
447
+ if (isArray1 && !isArray2) {
448
+ return exp1.map(function (item) {
449
+ return (item === null || item === void 0 ? void 0 : item[0]) <= exp2;
450
+ });
451
+ }
452
+ if (!isArray1 && isArray2) {
453
+ return exp2.map(function (item) {
454
+ return exp1 <= (item === null || item === void 0 ? void 0 : item[0]);
455
+ });
456
+ }
432
457
  return exp1 <= exp2;
433
458
  }
434
459
  func$8.SYMBOL = SYMBOL$8;
@@ -448,6 +473,19 @@ function func$9(first) {
448
473
  }
449
474
  func$9.SYMBOL = SYMBOL$9;
450
475
 
476
+ /**
477
+ * 解决js处理精度问题
478
+ * 0.3 * 0.1 = 0.03
479
+ * @param num1
480
+ * @param num2
481
+ * @returns
482
+ */
483
+ var multiplyNumber = function multiplyNumber() {
484
+ var num1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
485
+ var num2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
486
+ return new Decimal(num1).mul(num2).toNumber();
487
+ };
488
+
451
489
  var SYMBOL$a = "*";
452
490
 
453
491
  // export default function func(first, ...rest) {
@@ -466,14 +504,13 @@ function func$a(first) {
466
504
  rest[_key - 1] = arguments[_key];
467
505
  }
468
506
  var isArray1 = Array.isArray(first);
469
- debugger;
470
507
  if (isArray1) {
471
508
  var dd = first === null || first === void 0 ? void 0 : first.map(function (item, index) {
472
509
  var _list = rest.map(function (rItem) {
473
510
  return Array.isArray(rItem) ? rItem[index] : toNumber(rItem);
474
511
  });
475
512
  var v = _list.reduce(function (acc, value) {
476
- return acc * toNumber(value);
513
+ return multiplyNumber(acc, toNumber(value));
477
514
  }, toNumber(item));
478
515
  if (isNaN(v)) {
479
516
  throw Error(ERROR_VALUE);
@@ -483,7 +520,7 @@ function func$a(first) {
483
520
  return dd;
484
521
  }
485
522
  var result = rest.reduce(function (acc, value) {
486
- return acc * toNumber(value);
523
+ return multiplyNumber(acc, toNumber(value));
487
524
  }, toNumber(first));
488
525
  if (isNaN(result)) {
489
526
  throw Error(ERROR_VALUE);
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var Emitter = require('tiny-emitter');
6
6
  var formulajs = require('@formulajs/formulajs');
7
+ var decimal_js = require('decimal.js');
7
8
 
8
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
10
 
@@ -433,6 +434,18 @@ func$5.SYMBOL = SYMBOL$5;
433
434
 
434
435
  var SYMBOL$6 = '>=';
435
436
  function func$6(exp1, exp2) {
437
+ var isArray1 = Array.isArray(exp1);
438
+ var isArray2 = Array.isArray(exp2);
439
+ if (isArray1 && !isArray2) {
440
+ return exp1.map(function (item) {
441
+ return (item === null || item === void 0 ? void 0 : item[0]) >= exp2;
442
+ });
443
+ }
444
+ if (!isArray1 && isArray2) {
445
+ return exp2.map(function (item) {
446
+ return exp1 >= (item === null || item === void 0 ? void 0 : item[0]);
447
+ });
448
+ }
436
449
  return exp1 >= exp2;
437
450
  }
438
451
  func$6.SYMBOL = SYMBOL$6;
@@ -457,6 +470,18 @@ func$7.SYMBOL = SYMBOL$7;
457
470
 
458
471
  var SYMBOL$8 = '<=';
459
472
  function func$8(exp1, exp2) {
473
+ var isArray1 = Array.isArray(exp1);
474
+ var isArray2 = Array.isArray(exp2);
475
+ if (isArray1 && !isArray2) {
476
+ return exp1.map(function (item) {
477
+ return (item === null || item === void 0 ? void 0 : item[0]) <= exp2;
478
+ });
479
+ }
480
+ if (!isArray1 && isArray2) {
481
+ return exp2.map(function (item) {
482
+ return exp1 <= (item === null || item === void 0 ? void 0 : item[0]);
483
+ });
484
+ }
460
485
  return exp1 <= exp2;
461
486
  }
462
487
  func$8.SYMBOL = SYMBOL$8;
@@ -476,6 +501,19 @@ function func$9(first) {
476
501
  }
477
502
  func$9.SYMBOL = SYMBOL$9;
478
503
 
504
+ /**
505
+ * 解决js处理精度问题
506
+ * 0.3 * 0.1 = 0.03
507
+ * @param num1
508
+ * @param num2
509
+ * @returns
510
+ */
511
+ var multiplyNumber = function multiplyNumber() {
512
+ var num1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
513
+ var num2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
514
+ return new decimal_js.Decimal(num1).mul(num2).toNumber();
515
+ };
516
+
479
517
  var SYMBOL$a = "*";
480
518
 
481
519
  // export default function func(first, ...rest) {
@@ -494,14 +532,13 @@ function func$a(first) {
494
532
  rest[_key - 1] = arguments[_key];
495
533
  }
496
534
  var isArray1 = Array.isArray(first);
497
- debugger;
498
535
  if (isArray1) {
499
536
  var dd = first === null || first === void 0 ? void 0 : first.map(function (item, index) {
500
537
  var _list = rest.map(function (rItem) {
501
538
  return Array.isArray(rItem) ? rItem[index] : toNumber(rItem);
502
539
  });
503
540
  var v = _list.reduce(function (acc, value) {
504
- return acc * toNumber(value);
541
+ return multiplyNumber(acc, toNumber(value));
505
542
  }, toNumber(item));
506
543
  if (isNaN(v)) {
507
544
  throw Error(ERROR_VALUE);
@@ -511,7 +548,7 @@ function func$a(first) {
511
548
  return dd;
512
549
  }
513
550
  var result = rest.reduce(function (acc, value) {
514
- return acc * toNumber(value);
551
+ return multiplyNumber(acc, toNumber(value));
515
552
  }, toNumber(first));
516
553
  if (isNaN(result)) {
517
554
  throw Error(ERROR_VALUE);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leankylin-sheet/formula-parser",
3
- "version": "4.0.43",
3
+ "version": "4.0.45",
4
4
  "description": "Formula parser",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -37,6 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@formulajs/formulajs": "^4.5.6",
40
+ "decimal.js": "^10.6.0",
40
41
  "tiny-emitter": "^2.1.0"
41
42
  },
42
43
  "jest": {