@leankylin-sheet/formula-parser 4.0.42 → 4.0.44
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/evaluate-by-operator/operator/equal.d.ts +1 -1
- package/dist/evaluate-by-operator/operator/greater-than-or-equal.d.ts +1 -1
- package/dist/evaluate-by-operator/operator/greater-than.d.ts +1 -1
- package/dist/evaluate-by-operator/operator/less-than-or-equal.d.ts +1 -1
- package/dist/evaluate-by-operator/operator/less-than.d.ts +1 -1
- package/dist/helper/number.d.ts +1 -0
- package/dist/index.esm.js +124 -2
- package/dist/index.js +124 -2
- package/package.json +1 -1
package/dist/helper/number.d.ts
CHANGED
package/dist/index.esm.js
CHANGED
|
@@ -177,6 +177,9 @@ function _nonIterableRest() {
|
|
|
177
177
|
function toNumber(number) {
|
|
178
178
|
var _result;
|
|
179
179
|
var result;
|
|
180
|
+
if (number === true) {
|
|
181
|
+
return 1;
|
|
182
|
+
}
|
|
180
183
|
if (typeof number === 'number') {
|
|
181
184
|
result = number;
|
|
182
185
|
} else if (typeof number === 'string') {
|
|
@@ -194,6 +197,22 @@ function toNumber(number) {
|
|
|
194
197
|
function invertNumber(number) {
|
|
195
198
|
return -1 * toNumber(number);
|
|
196
199
|
}
|
|
200
|
+
function toNumberNotNaN(number) {
|
|
201
|
+
var _result2;
|
|
202
|
+
var result;
|
|
203
|
+
if (number === true) {
|
|
204
|
+
return 1;
|
|
205
|
+
}
|
|
206
|
+
if (typeof number === 'number') {
|
|
207
|
+
result = number;
|
|
208
|
+
} else if (typeof number === 'string') {
|
|
209
|
+
result = number.indexOf('.') > -1 ? parseFloat(number) : parseInt(number, 10);
|
|
210
|
+
}
|
|
211
|
+
if (isNaN(result)) {
|
|
212
|
+
return 0;
|
|
213
|
+
}
|
|
214
|
+
return (_result2 = result) !== null && _result2 !== void 0 ? _result2 : 0;
|
|
215
|
+
}
|
|
197
216
|
|
|
198
217
|
var ERROR = 'ERROR';
|
|
199
218
|
var ERROR_DIV_ZERO = 'DIV/0';
|
|
@@ -285,7 +304,26 @@ function func$2(first) {
|
|
|
285
304
|
func$2.SYMBOL = SYMBOL$2;
|
|
286
305
|
|
|
287
306
|
var SYMBOL$3 = '=';
|
|
307
|
+
|
|
308
|
+
// export default function func(exp1, exp2) {
|
|
309
|
+
// console.log('zzzzz', exp1, exp2)
|
|
310
|
+
|
|
311
|
+
// return exp1 === exp2;
|
|
312
|
+
// }
|
|
313
|
+
|
|
288
314
|
function func$3(exp1, exp2) {
|
|
315
|
+
var isArray1 = Array.isArray(exp1);
|
|
316
|
+
var isArray2 = Array.isArray(exp2);
|
|
317
|
+
if (isArray1 && !isArray2) {
|
|
318
|
+
return exp1.map(function (item) {
|
|
319
|
+
return (item === null || item === void 0 ? void 0 : item[0]) === exp2;
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
if (!isArray1 && isArray2) {
|
|
323
|
+
return exp2.map(function (item) {
|
|
324
|
+
return (item === null || item === void 0 ? void 0 : item[0]) === exp1;
|
|
325
|
+
});
|
|
326
|
+
}
|
|
289
327
|
return exp1 === exp2;
|
|
290
328
|
}
|
|
291
329
|
func$3.SYMBOL = SYMBOL$3;
|
|
@@ -306,12 +344,19 @@ function func$4(symbol) {
|
|
|
306
344
|
return item;
|
|
307
345
|
}
|
|
308
346
|
});
|
|
309
|
-
var symbolParts = symbol.split(
|
|
347
|
+
var symbolParts = symbol.split(".");
|
|
310
348
|
var foundFormula = false;
|
|
311
349
|
var result;
|
|
312
350
|
if (symbolParts.length === 1) {
|
|
313
351
|
if (formulajs[symbolParts[0]]) {
|
|
314
352
|
foundFormula = true;
|
|
353
|
+
if (symbolParts[0] === "SUMPRODUCT") {
|
|
354
|
+
var _params2;
|
|
355
|
+
params = (_params2 = params) === null || _params2 === void 0 ? void 0 : _params2.map(function (item) {
|
|
356
|
+
var _item$flat;
|
|
357
|
+
return (item === null || item === void 0 ? void 0 : item.flat) ? (_item$flat = item.flat()) === null || _item$flat === void 0 ? void 0 : _item$flat.map(toNumberNotNaN) : toNumberNotNaN(item);
|
|
358
|
+
});
|
|
359
|
+
}
|
|
315
360
|
result = formulajs[symbolParts[0]].apply(formulajs, _toConsumableArray(params));
|
|
316
361
|
}
|
|
317
362
|
} else {
|
|
@@ -342,24 +387,72 @@ func$4.SYMBOL = SYMBOL$4;
|
|
|
342
387
|
|
|
343
388
|
var SYMBOL$5 = '>';
|
|
344
389
|
function func$5(exp1, exp2) {
|
|
390
|
+
var isArray1 = Array.isArray(exp1);
|
|
391
|
+
var isArray2 = Array.isArray(exp2);
|
|
392
|
+
if (isArray1 && !isArray2) {
|
|
393
|
+
return exp1.map(function (item) {
|
|
394
|
+
return (item === null || item === void 0 ? void 0 : item[0]) > exp2;
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
if (!isArray1 && isArray2) {
|
|
398
|
+
return exp2.map(function (item) {
|
|
399
|
+
return exp1 > (item === null || item === void 0 ? void 0 : item[0]);
|
|
400
|
+
});
|
|
401
|
+
}
|
|
345
402
|
return exp1 > exp2;
|
|
346
403
|
}
|
|
347
404
|
func$5.SYMBOL = SYMBOL$5;
|
|
348
405
|
|
|
349
406
|
var SYMBOL$6 = '>=';
|
|
350
407
|
function func$6(exp1, exp2) {
|
|
408
|
+
var isArray1 = Array.isArray(exp1);
|
|
409
|
+
var isArray2 = Array.isArray(exp2);
|
|
410
|
+
if (isArray1 && !isArray2) {
|
|
411
|
+
return exp1.map(function (item) {
|
|
412
|
+
return (item === null || item === void 0 ? void 0 : item[0]) >= exp2;
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
if (!isArray1 && isArray2) {
|
|
416
|
+
return exp2.map(function (item) {
|
|
417
|
+
return exp1 >= (item === null || item === void 0 ? void 0 : item[0]);
|
|
418
|
+
});
|
|
419
|
+
}
|
|
351
420
|
return exp1 >= exp2;
|
|
352
421
|
}
|
|
353
422
|
func$6.SYMBOL = SYMBOL$6;
|
|
354
423
|
|
|
355
424
|
var SYMBOL$7 = '<';
|
|
356
425
|
function func$7(exp1, exp2) {
|
|
426
|
+
var isArray1 = Array.isArray(exp1);
|
|
427
|
+
var isArray2 = Array.isArray(exp2);
|
|
428
|
+
if (isArray1 && !isArray2) {
|
|
429
|
+
return exp1.map(function (item) {
|
|
430
|
+
return (item === null || item === void 0 ? void 0 : item[0]) < exp2;
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
if (!isArray1 && isArray2) {
|
|
434
|
+
return exp2.map(function (item) {
|
|
435
|
+
return exp1 < (item === null || item === void 0 ? void 0 : item[0]);
|
|
436
|
+
});
|
|
437
|
+
}
|
|
357
438
|
return exp1 < exp2;
|
|
358
439
|
}
|
|
359
440
|
func$7.SYMBOL = SYMBOL$7;
|
|
360
441
|
|
|
361
442
|
var SYMBOL$8 = '<=';
|
|
362
443
|
function func$8(exp1, exp2) {
|
|
444
|
+
var isArray1 = Array.isArray(exp1);
|
|
445
|
+
var isArray2 = Array.isArray(exp2);
|
|
446
|
+
if (isArray1 && !isArray2) {
|
|
447
|
+
return exp1.map(function (item) {
|
|
448
|
+
return (item === null || item === void 0 ? void 0 : item[0]) <= exp2;
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
if (!isArray1 && isArray2) {
|
|
452
|
+
return exp2.map(function (item) {
|
|
453
|
+
return exp1 <= (item === null || item === void 0 ? void 0 : item[0]);
|
|
454
|
+
});
|
|
455
|
+
}
|
|
363
456
|
return exp1 <= exp2;
|
|
364
457
|
}
|
|
365
458
|
func$8.SYMBOL = SYMBOL$8;
|
|
@@ -379,11 +472,39 @@ function func$9(first) {
|
|
|
379
472
|
}
|
|
380
473
|
func$9.SYMBOL = SYMBOL$9;
|
|
381
474
|
|
|
382
|
-
var SYMBOL$a =
|
|
475
|
+
var SYMBOL$a = "*";
|
|
476
|
+
|
|
477
|
+
// export default function func(first, ...rest) {
|
|
478
|
+
// console.log('first',first, rest)
|
|
479
|
+
// const result = rest.reduce((acc, value) => acc * toNumber(value), toNumber(first));
|
|
480
|
+
|
|
481
|
+
// if (isNaN(result)) {
|
|
482
|
+
// throw Error(ERROR_VALUE);
|
|
483
|
+
// }
|
|
484
|
+
|
|
485
|
+
// return result;
|
|
486
|
+
// }
|
|
487
|
+
|
|
383
488
|
function func$a(first) {
|
|
384
489
|
for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
385
490
|
rest[_key - 1] = arguments[_key];
|
|
386
491
|
}
|
|
492
|
+
var isArray1 = Array.isArray(first);
|
|
493
|
+
if (isArray1) {
|
|
494
|
+
var dd = first === null || first === void 0 ? void 0 : first.map(function (item, index) {
|
|
495
|
+
var _list = rest.map(function (rItem) {
|
|
496
|
+
return Array.isArray(rItem) ? rItem[index] : toNumber(rItem);
|
|
497
|
+
});
|
|
498
|
+
var v = _list.reduce(function (acc, value) {
|
|
499
|
+
return acc * toNumber(value);
|
|
500
|
+
}, toNumber(item));
|
|
501
|
+
if (isNaN(v)) {
|
|
502
|
+
throw Error(ERROR_VALUE);
|
|
503
|
+
}
|
|
504
|
+
return v;
|
|
505
|
+
});
|
|
506
|
+
return dd;
|
|
507
|
+
}
|
|
387
508
|
var result = rest.reduce(function (acc, value) {
|
|
388
509
|
return acc * toNumber(value);
|
|
389
510
|
}, toNumber(first));
|
|
@@ -1443,6 +1564,7 @@ var parser = {
|
|
|
1443
1564
|
}
|
|
1444
1565
|
r = _this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
|
|
1445
1566
|
if (typeof r !== "undefined") {
|
|
1567
|
+
console.log('r', r);
|
|
1446
1568
|
return {
|
|
1447
1569
|
v: r
|
|
1448
1570
|
};
|
package/dist/index.js
CHANGED
|
@@ -205,6 +205,9 @@ function _nonIterableRest() {
|
|
|
205
205
|
function toNumber(number) {
|
|
206
206
|
var _result;
|
|
207
207
|
var result;
|
|
208
|
+
if (number === true) {
|
|
209
|
+
return 1;
|
|
210
|
+
}
|
|
208
211
|
if (typeof number === 'number') {
|
|
209
212
|
result = number;
|
|
210
213
|
} else if (typeof number === 'string') {
|
|
@@ -222,6 +225,22 @@ function toNumber(number) {
|
|
|
222
225
|
function invertNumber(number) {
|
|
223
226
|
return -1 * toNumber(number);
|
|
224
227
|
}
|
|
228
|
+
function toNumberNotNaN(number) {
|
|
229
|
+
var _result2;
|
|
230
|
+
var result;
|
|
231
|
+
if (number === true) {
|
|
232
|
+
return 1;
|
|
233
|
+
}
|
|
234
|
+
if (typeof number === 'number') {
|
|
235
|
+
result = number;
|
|
236
|
+
} else if (typeof number === 'string') {
|
|
237
|
+
result = number.indexOf('.') > -1 ? parseFloat(number) : parseInt(number, 10);
|
|
238
|
+
}
|
|
239
|
+
if (isNaN(result)) {
|
|
240
|
+
return 0;
|
|
241
|
+
}
|
|
242
|
+
return (_result2 = result) !== null && _result2 !== void 0 ? _result2 : 0;
|
|
243
|
+
}
|
|
225
244
|
|
|
226
245
|
var ERROR = 'ERROR';
|
|
227
246
|
var ERROR_DIV_ZERO = 'DIV/0';
|
|
@@ -313,7 +332,26 @@ function func$2(first) {
|
|
|
313
332
|
func$2.SYMBOL = SYMBOL$2;
|
|
314
333
|
|
|
315
334
|
var SYMBOL$3 = '=';
|
|
335
|
+
|
|
336
|
+
// export default function func(exp1, exp2) {
|
|
337
|
+
// console.log('zzzzz', exp1, exp2)
|
|
338
|
+
|
|
339
|
+
// return exp1 === exp2;
|
|
340
|
+
// }
|
|
341
|
+
|
|
316
342
|
function func$3(exp1, exp2) {
|
|
343
|
+
var isArray1 = Array.isArray(exp1);
|
|
344
|
+
var isArray2 = Array.isArray(exp2);
|
|
345
|
+
if (isArray1 && !isArray2) {
|
|
346
|
+
return exp1.map(function (item) {
|
|
347
|
+
return (item === null || item === void 0 ? void 0 : item[0]) === exp2;
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
if (!isArray1 && isArray2) {
|
|
351
|
+
return exp2.map(function (item) {
|
|
352
|
+
return (item === null || item === void 0 ? void 0 : item[0]) === exp1;
|
|
353
|
+
});
|
|
354
|
+
}
|
|
317
355
|
return exp1 === exp2;
|
|
318
356
|
}
|
|
319
357
|
func$3.SYMBOL = SYMBOL$3;
|
|
@@ -334,12 +372,19 @@ function func$4(symbol) {
|
|
|
334
372
|
return item;
|
|
335
373
|
}
|
|
336
374
|
});
|
|
337
|
-
var symbolParts = symbol.split(
|
|
375
|
+
var symbolParts = symbol.split(".");
|
|
338
376
|
var foundFormula = false;
|
|
339
377
|
var result;
|
|
340
378
|
if (symbolParts.length === 1) {
|
|
341
379
|
if (formulajs__namespace[symbolParts[0]]) {
|
|
342
380
|
foundFormula = true;
|
|
381
|
+
if (symbolParts[0] === "SUMPRODUCT") {
|
|
382
|
+
var _params2;
|
|
383
|
+
params = (_params2 = params) === null || _params2 === void 0 ? void 0 : _params2.map(function (item) {
|
|
384
|
+
var _item$flat;
|
|
385
|
+
return (item === null || item === void 0 ? void 0 : item.flat) ? (_item$flat = item.flat()) === null || _item$flat === void 0 ? void 0 : _item$flat.map(toNumberNotNaN) : toNumberNotNaN(item);
|
|
386
|
+
});
|
|
387
|
+
}
|
|
343
388
|
result = formulajs__namespace[symbolParts[0]].apply(formulajs__namespace, _toConsumableArray(params));
|
|
344
389
|
}
|
|
345
390
|
} else {
|
|
@@ -370,24 +415,72 @@ func$4.SYMBOL = SYMBOL$4;
|
|
|
370
415
|
|
|
371
416
|
var SYMBOL$5 = '>';
|
|
372
417
|
function func$5(exp1, exp2) {
|
|
418
|
+
var isArray1 = Array.isArray(exp1);
|
|
419
|
+
var isArray2 = Array.isArray(exp2);
|
|
420
|
+
if (isArray1 && !isArray2) {
|
|
421
|
+
return exp1.map(function (item) {
|
|
422
|
+
return (item === null || item === void 0 ? void 0 : item[0]) > exp2;
|
|
423
|
+
});
|
|
424
|
+
}
|
|
425
|
+
if (!isArray1 && isArray2) {
|
|
426
|
+
return exp2.map(function (item) {
|
|
427
|
+
return exp1 > (item === null || item === void 0 ? void 0 : item[0]);
|
|
428
|
+
});
|
|
429
|
+
}
|
|
373
430
|
return exp1 > exp2;
|
|
374
431
|
}
|
|
375
432
|
func$5.SYMBOL = SYMBOL$5;
|
|
376
433
|
|
|
377
434
|
var SYMBOL$6 = '>=';
|
|
378
435
|
function func$6(exp1, exp2) {
|
|
436
|
+
var isArray1 = Array.isArray(exp1);
|
|
437
|
+
var isArray2 = Array.isArray(exp2);
|
|
438
|
+
if (isArray1 && !isArray2) {
|
|
439
|
+
return exp1.map(function (item) {
|
|
440
|
+
return (item === null || item === void 0 ? void 0 : item[0]) >= exp2;
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
if (!isArray1 && isArray2) {
|
|
444
|
+
return exp2.map(function (item) {
|
|
445
|
+
return exp1 >= (item === null || item === void 0 ? void 0 : item[0]);
|
|
446
|
+
});
|
|
447
|
+
}
|
|
379
448
|
return exp1 >= exp2;
|
|
380
449
|
}
|
|
381
450
|
func$6.SYMBOL = SYMBOL$6;
|
|
382
451
|
|
|
383
452
|
var SYMBOL$7 = '<';
|
|
384
453
|
function func$7(exp1, exp2) {
|
|
454
|
+
var isArray1 = Array.isArray(exp1);
|
|
455
|
+
var isArray2 = Array.isArray(exp2);
|
|
456
|
+
if (isArray1 && !isArray2) {
|
|
457
|
+
return exp1.map(function (item) {
|
|
458
|
+
return (item === null || item === void 0 ? void 0 : item[0]) < exp2;
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
if (!isArray1 && isArray2) {
|
|
462
|
+
return exp2.map(function (item) {
|
|
463
|
+
return exp1 < (item === null || item === void 0 ? void 0 : item[0]);
|
|
464
|
+
});
|
|
465
|
+
}
|
|
385
466
|
return exp1 < exp2;
|
|
386
467
|
}
|
|
387
468
|
func$7.SYMBOL = SYMBOL$7;
|
|
388
469
|
|
|
389
470
|
var SYMBOL$8 = '<=';
|
|
390
471
|
function func$8(exp1, exp2) {
|
|
472
|
+
var isArray1 = Array.isArray(exp1);
|
|
473
|
+
var isArray2 = Array.isArray(exp2);
|
|
474
|
+
if (isArray1 && !isArray2) {
|
|
475
|
+
return exp1.map(function (item) {
|
|
476
|
+
return (item === null || item === void 0 ? void 0 : item[0]) <= exp2;
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
if (!isArray1 && isArray2) {
|
|
480
|
+
return exp2.map(function (item) {
|
|
481
|
+
return exp1 <= (item === null || item === void 0 ? void 0 : item[0]);
|
|
482
|
+
});
|
|
483
|
+
}
|
|
391
484
|
return exp1 <= exp2;
|
|
392
485
|
}
|
|
393
486
|
func$8.SYMBOL = SYMBOL$8;
|
|
@@ -407,11 +500,39 @@ function func$9(first) {
|
|
|
407
500
|
}
|
|
408
501
|
func$9.SYMBOL = SYMBOL$9;
|
|
409
502
|
|
|
410
|
-
var SYMBOL$a =
|
|
503
|
+
var SYMBOL$a = "*";
|
|
504
|
+
|
|
505
|
+
// export default function func(first, ...rest) {
|
|
506
|
+
// console.log('first',first, rest)
|
|
507
|
+
// const result = rest.reduce((acc, value) => acc * toNumber(value), toNumber(first));
|
|
508
|
+
|
|
509
|
+
// if (isNaN(result)) {
|
|
510
|
+
// throw Error(ERROR_VALUE);
|
|
511
|
+
// }
|
|
512
|
+
|
|
513
|
+
// return result;
|
|
514
|
+
// }
|
|
515
|
+
|
|
411
516
|
function func$a(first) {
|
|
412
517
|
for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
413
518
|
rest[_key - 1] = arguments[_key];
|
|
414
519
|
}
|
|
520
|
+
var isArray1 = Array.isArray(first);
|
|
521
|
+
if (isArray1) {
|
|
522
|
+
var dd = first === null || first === void 0 ? void 0 : first.map(function (item, index) {
|
|
523
|
+
var _list = rest.map(function (rItem) {
|
|
524
|
+
return Array.isArray(rItem) ? rItem[index] : toNumber(rItem);
|
|
525
|
+
});
|
|
526
|
+
var v = _list.reduce(function (acc, value) {
|
|
527
|
+
return acc * toNumber(value);
|
|
528
|
+
}, toNumber(item));
|
|
529
|
+
if (isNaN(v)) {
|
|
530
|
+
throw Error(ERROR_VALUE);
|
|
531
|
+
}
|
|
532
|
+
return v;
|
|
533
|
+
});
|
|
534
|
+
return dd;
|
|
535
|
+
}
|
|
415
536
|
var result = rest.reduce(function (acc, value) {
|
|
416
537
|
return acc * toNumber(value);
|
|
417
538
|
}, toNumber(first));
|
|
@@ -1471,6 +1592,7 @@ var parser = {
|
|
|
1471
1592
|
}
|
|
1472
1593
|
r = _this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));
|
|
1473
1594
|
if (typeof r !== "undefined") {
|
|
1595
|
+
console.log('r', r);
|
|
1474
1596
|
return {
|
|
1475
1597
|
v: r
|
|
1476
1598
|
};
|