@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.
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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": {
|