amis-formula 6.9.0-rc.3 → 6.9.0-rc.5

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/esm/doc.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/esm/error.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/esm/evalutor.d.ts CHANGED
@@ -59,10 +59,11 @@ export declare class Evaluator {
59
59
  value: any;
60
60
  }): number | boolean;
61
61
  formatNumber(value: any, int?: boolean): any;
62
+ isValidValue(value: string | number): boolean;
62
63
  power(ast: {
63
64
  left: any;
64
65
  right: any;
65
- }): number;
66
+ }): any;
66
67
  multiply(ast: {
67
68
  left: any;
68
69
  right: any;
package/esm/evalutor.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
@@ -15,7 +15,6 @@ import uniqBy from 'lodash/uniqBy';
15
15
  import isEqual from 'lodash/isEqual';
16
16
  import isPlainObject from 'lodash/isPlainObject';
17
17
  import get from 'lodash/get';
18
- import isNumber from 'lodash/isNumber';
19
18
  import { FormulaEvalError } from './error.js';
20
19
 
21
20
  /**
@@ -173,10 +172,18 @@ var Evaluator = /** @class */ (function () {
173
172
  }
174
173
  return value !== null && value !== void 0 ? value : 0;
175
174
  };
175
+ // 判断是否是数字或者字符串数字
176
+ Evaluator.prototype.isValidValue = function (value) {
177
+ return (typeof value === 'number' ||
178
+ (typeof value === 'string' && /^\d+(\.\d+)?$/.test(value)));
179
+ };
176
180
  Evaluator.prototype.power = function (ast) {
177
181
  var left = this.evalute(ast.left);
178
182
  var right = this.evalute(ast.right);
179
- return Math.pow(this.formatNumber(left), this.formatNumber(right));
183
+ if (!this.isValidValue(left) || !this.isValidValue(right)) {
184
+ return left;
185
+ }
186
+ return Math.pow(left, right);
180
187
  };
181
188
  Evaluator.prototype.multiply = function (ast) {
182
189
  var left = this.evalute(ast.left);
@@ -979,7 +986,7 @@ var Evaluator = /** @class */ (function () {
979
986
  * @returns {number} 基数的指数次幂
980
987
  */
981
988
  Evaluator.prototype.fnPOW = function (base, exponent) {
982
- if (!isNumber(base) || !isNumber(exponent)) {
989
+ if (!this.isValidValue(base) || !this.isValidValue(exponent)) {
983
990
  return base;
984
991
  }
985
992
  return Math.pow(base, exponent);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/esm/filter.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/esm/function.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/esm/lexer.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/esm/parser.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/lib/doc.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/lib/error.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/lib/evalutor.d.ts CHANGED
@@ -59,10 +59,11 @@ export declare class Evaluator {
59
59
  value: any;
60
60
  }): number | boolean;
61
61
  formatNumber(value: any, int?: boolean): any;
62
+ isValidValue(value: string | number): boolean;
62
63
  power(ast: {
63
64
  left: any;
64
65
  right: any;
65
- }): number;
66
+ }): any;
66
67
  multiply(ast: {
67
68
  left: any;
68
69
  right: any;
package/lib/evalutor.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
@@ -19,7 +19,6 @@ var uniqBy = require('lodash/uniqBy');
19
19
  var isEqual = require('lodash/isEqual');
20
20
  var isPlainObject = require('lodash/isPlainObject');
21
21
  var get = require('lodash/get');
22
- var isNumber = require('lodash/isNumber');
23
22
  var error = require('./error.js');
24
23
 
25
24
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -35,7 +34,6 @@ var uniqBy__default = /*#__PURE__*/_interopDefaultLegacy(uniqBy);
35
34
  var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
36
35
  var isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);
37
36
  var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
38
- var isNumber__default = /*#__PURE__*/_interopDefaultLegacy(isNumber);
39
37
 
40
38
  /**
41
39
  * @file 公式内置函数
@@ -192,10 +190,18 @@ var Evaluator = /** @class */ (function () {
192
190
  }
193
191
  return value !== null && value !== void 0 ? value : 0;
194
192
  };
193
+ // 判断是否是数字或者字符串数字
194
+ Evaluator.prototype.isValidValue = function (value) {
195
+ return (typeof value === 'number' ||
196
+ (typeof value === 'string' && /^\d+(\.\d+)?$/.test(value)));
197
+ };
195
198
  Evaluator.prototype.power = function (ast) {
196
199
  var left = this.evalute(ast.left);
197
200
  var right = this.evalute(ast.right);
198
- return Math.pow(this.formatNumber(left), this.formatNumber(right));
201
+ if (!this.isValidValue(left) || !this.isValidValue(right)) {
202
+ return left;
203
+ }
204
+ return Math.pow(left, right);
199
205
  };
200
206
  Evaluator.prototype.multiply = function (ast) {
201
207
  var left = this.evalute(ast.left);
@@ -998,7 +1004,7 @@ var Evaluator = /** @class */ (function () {
998
1004
  * @returns {number} 基数的指数次幂
999
1005
  */
1000
1006
  Evaluator.prototype.fnPOW = function (base, exponent) {
1001
- if (!isNumber__default["default"](base) || !isNumber__default["default"](exponent)) {
1007
+ if (!this.isValidValue(base) || !this.isValidValue(exponent)) {
1002
1008
  return base;
1003
1009
  }
1004
1010
  return Math.pow(base, exponent);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/lib/filter.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/lib/function.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/lib/lexer.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/lib/parser.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0-rc.3
2
+ * amis-formula v6.9.0-rc.5
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "amis-formula",
3
- "version": "6.9.0-rc.3",
3
+ "version": "6.9.0-rc.5",
4
4
  "description": "负责 amis 里面的表达式实现,内置公式,编辑器等",
5
5
  "main": "lib/index.js",
6
6
  "module": "esm/index.js",