amis-formula 6.9.0 → 6.10.0-beta.0

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
2
+ * amis-formula v6.10.0-beta.0
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
@@ -129,7 +129,7 @@ bulkRegisterFunctionDoc([
129
129
  {
130
130
  name: "MAX",
131
131
  description: "获取最大值,如果只有一个参数且是数组,则计算这个数组内的值。",
132
- example: "MAX(num1, num2, ...numN)",
132
+ example: "MAX(num1, num2, ...numN) or MAX([num1, num2, ...numN])",
133
133
  params: [
134
134
  {
135
135
  type: "...number",
@@ -146,7 +146,7 @@ bulkRegisterFunctionDoc([
146
146
  {
147
147
  name: "MIN",
148
148
  description: "获取最小值,如果只有一个参数且是数组,则计算这个数组内的值。",
149
- example: "MIN(num1, num2, ...numN)",
149
+ example: "MIN(num1, num2, ...numN) or MIN([num1, num2, ...numN])",
150
150
  params: [
151
151
  {
152
152
  type: "...number",
@@ -163,7 +163,7 @@ bulkRegisterFunctionDoc([
163
163
  {
164
164
  name: "SUM",
165
165
  description: "求和,如果只有一个参数且是数组,则计算这个数组内的值。",
166
- example: "SUM(num1, num2, ...numN)",
166
+ example: "SUM(num1, num2, ...numN) or SUM([num1, num2, ...numN])",
167
167
  params: [
168
168
  {
169
169
  type: "...number",
@@ -313,7 +313,7 @@ bulkRegisterFunctionDoc([
313
313
  {
314
314
  name: "AVG",
315
315
  description: "返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值。",
316
- example: "AVG(num1, num2, ...numN)",
316
+ example: "AVG(num1, num2, ...numN) or AVG([num1, num2, ...numN])",
317
317
  params: [
318
318
  {
319
319
  type: "...number",
@@ -842,7 +842,7 @@ bulkRegisterFunctionDoc([
842
842
  }
843
843
  ],
844
844
  returns: {
845
- type: "string",
845
+ type: "boolean",
846
846
  description: "判断结果"
847
847
  },
848
848
  namespace: "文本函数"
@@ -864,7 +864,7 @@ bulkRegisterFunctionDoc([
864
864
  }
865
865
  ],
866
866
  returns: {
867
- type: "string",
867
+ type: "boolean",
868
868
  description: "判断结果"
869
869
  },
870
870
  namespace: "文本函数"
@@ -886,7 +886,7 @@ bulkRegisterFunctionDoc([
886
886
  }
887
887
  ],
888
888
  returns: {
889
- type: "string",
889
+ type: "boolean",
890
890
  description: "判断结果"
891
891
  },
892
892
  namespace: "文本函数"
@@ -947,7 +947,7 @@ bulkRegisterFunctionDoc([
947
947
  },
948
948
  {
949
949
  name: "MID",
950
- description: "返回文本字符串中从指定位置开始的特定数目的字符。",
950
+ description: "返回文本字符串中从指定位置开始的特定数目的字符。\n\n示例:`MID(\"amis.baidu.com\", 6, 3)`,\n\n返回 `aid`。",
951
951
  example: "MID(text, from, len)",
952
952
  params: [
953
953
  {
@@ -967,14 +967,14 @@ bulkRegisterFunctionDoc([
967
967
  }
968
968
  ],
969
969
  returns: {
970
- type: "number",
970
+ type: "string",
971
971
  description: "命中的位置"
972
972
  },
973
973
  namespace: "文本函数"
974
974
  },
975
975
  {
976
976
  name: "BASENAME",
977
- description: "返回路径中的文件名。\n\n示例:`/home/amis/a.json`,\n\n返回:a.json`。",
977
+ description: "返回路径中的文件名。\n\n示例:`/home/amis/a.json`,\n\n返回:`a.json`。",
978
978
  example: "BASENAME(text)",
979
979
  params: [
980
980
  {
@@ -1181,8 +1181,8 @@ bulkRegisterFunctionDoc([
1181
1181
  }
1182
1182
  ],
1183
1183
  returns: {
1184
- type: "date",
1185
- description: "新的日期对象"
1184
+ type: "any",
1185
+ description: "新的日期对象, 如果传入 format 则返回格式化后的日期字符串"
1186
1186
  },
1187
1187
  namespace: "日期函数"
1188
1188
  },
@@ -1208,8 +1208,8 @@ bulkRegisterFunctionDoc([
1208
1208
  }
1209
1209
  ],
1210
1210
  returns: {
1211
- type: "date",
1212
- description: "新的日期对象"
1211
+ type: "any",
1212
+ description: "新的日期对象, 如果传入 format 则返回格式化后的日期字符串"
1213
1213
  },
1214
1214
  namespace: "日期函数"
1215
1215
  },
@@ -1604,14 +1604,14 @@ bulkRegisterFunctionDoc([
1604
1604
  }
1605
1605
  ],
1606
1606
  returns: {
1607
- type: "boolean",
1607
+ type: "number",
1608
1608
  description: "结果"
1609
1609
  },
1610
1610
  namespace: "数组"
1611
1611
  },
1612
1612
  {
1613
1613
  name: "ARRAYMAP",
1614
- description: "数组做数据转换,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。",
1614
+ description: "数组做数据转换,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n\n将数组中的每个元素转换成箭头函数返回的值。\n\n示例:\n\nARRAYMAP([1, 2, 3], item => item + 1) 得到 [2, 3, 4]。",
1615
1615
  example: "ARRAYMAP(arr, item => item)",
1616
1616
  params: [
1617
1617
  {
@@ -1626,14 +1626,14 @@ bulkRegisterFunctionDoc([
1626
1626
  }
1627
1627
  ],
1628
1628
  returns: {
1629
- type: "boolean",
1630
- description: "结果"
1629
+ type: "Array<any>",
1630
+ description: "返回转换后的数组"
1631
1631
  },
1632
1632
  namespace: "数组"
1633
1633
  },
1634
1634
  {
1635
1635
  name: "ARRAYFILTER",
1636
- description: "数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n将第二个箭头函数返回为 false 的成员过滤掉。",
1636
+ description: "数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。\n将第二个箭头函数返回为 false 的成员过滤掉。\n\n示例:\n\nARRAYFILTER([1, 2, 3], item => item > 1) 得到 [2, 3]。",
1637
1637
  example: "ARRAYFILTER(arr, item => item)",
1638
1638
  params: [
1639
1639
  {
@@ -1648,8 +1648,8 @@ bulkRegisterFunctionDoc([
1648
1648
  }
1649
1649
  ],
1650
1650
  returns: {
1651
- type: "boolean",
1652
- description: "结果"
1651
+ type: "Array<any>",
1652
+ description: "返回过滤后的数组"
1653
1653
  },
1654
1654
  namespace: "数组"
1655
1655
  },
@@ -1797,7 +1797,7 @@ bulkRegisterFunctionDoc([
1797
1797
  }
1798
1798
  ],
1799
1799
  returns: {
1800
- type: "String",
1800
+ type: "string",
1801
1801
  description: "结果"
1802
1802
  },
1803
1803
  namespace: "数组"
@@ -1821,7 +1821,7 @@ bulkRegisterFunctionDoc([
1821
1821
  },
1822
1822
  {
1823
1823
  name: "UNIQ",
1824
- description: "数组去重,第二个参数「field」,可指定根据该字段去重。\n\n示例:\n\nUNIQ([{a: '1'}, {b: '2'}, {a: '1'}] 'id')。",
1824
+ description: "数组去重,第二个参数「field」,可指定根据该字段去重。\n\n示例:\n\nUNIQ([{a: '1'}, {b: '2'}, {a: '1'}]) 得到 [{a: '1'}, {b: '2'}]。",
1825
1825
  example: "UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'x')",
1826
1826
  params: [
1827
1827
  {
package/esm/doc.md CHANGED
@@ -89,7 +89,7 @@
89
89
 
90
90
  ### MAX
91
91
 
92
- 用法:`MAX(num1, num2, ...numN)`
92
+ 用法:`MAX(num1, num2, ...numN) or MAX([num1, num2, ...numN])`
93
93
 
94
94
  * `num:...number` 数值
95
95
 
@@ -99,7 +99,7 @@
99
99
 
100
100
  ### MIN
101
101
 
102
- 用法:`MIN(num1, num2, ...numN)`
102
+ 用法:`MIN(num1, num2, ...numN) or MIN([num1, num2, ...numN])`
103
103
 
104
104
  * `num:...number` 数值
105
105
 
@@ -109,7 +109,7 @@
109
109
 
110
110
  ### SUM
111
111
 
112
- 用法:`SUM(num1, num2, ...numN)`
112
+ 用法:`SUM(num1, num2, ...numN) or SUM([num1, num2, ...numN])`
113
113
 
114
114
  * `num:...number` 数值
115
115
 
@@ -189,7 +189,7 @@
189
189
 
190
190
  ### AVG
191
191
 
192
- 用法:`AVG(num1, num2, ...numN)`
192
+ 用法:`AVG(num1, num2, ...numN) or AVG([num1, num2, ...numN])`
193
193
 
194
194
  * `num:...number` 要处理的数字
195
195
 
@@ -515,7 +515,7 @@
515
515
  * `text:string` 文本
516
516
  * `startString:string` 起始文本
517
517
 
518
- 返回:`string` 判断结果
518
+ 返回:`boolean` 判断结果
519
519
 
520
520
  判断字符串(text)是否以特定字符串(startString)开始,是则返回 true,否则返回 false。
521
521
 
@@ -526,7 +526,7 @@
526
526
  * `text:string` 文本
527
527
  * `endString:string` 结束文本
528
528
 
529
- 返回:`string` 判断结果
529
+ 返回:`boolean` 判断结果
530
530
 
531
531
  判断字符串(text)是否以特定字符串(endString)结束,是则返回 true,否则返回 false。
532
532
 
@@ -537,7 +537,7 @@
537
537
  * `text:string` 文本
538
538
  * `searchText:string` 搜索文本
539
539
 
540
- 返回:`string` 判断结果
540
+ 返回:`boolean` 判断结果
541
541
 
542
542
  判断参数 1 中的文本是否包含参数 2 中的文本,是则返回 true,否则返回 false。
543
543
 
@@ -573,10 +573,14 @@
573
573
  * `from:number` 起始位置
574
574
  * `len:number` 处理长度
575
575
 
576
- 返回:`number` 命中的位置
576
+ 返回:`string` 命中的位置
577
577
 
578
578
  返回文本字符串中从指定位置开始的特定数目的字符。
579
579
 
580
+ 示例:`MID("amis.baidu.com", 6, 3)`,
581
+
582
+ 返回 `aid`。
583
+
580
584
  ### BASENAME
581
585
 
582
586
  用法:`BASENAME(text)`
@@ -589,7 +593,7 @@
589
593
 
590
594
  示例:`/home/amis/a.json`,
591
595
 
592
- 返回:a.json`。
596
+ 返回:`a.json`。
593
597
 
594
598
  ### UUID
595
599
 
@@ -714,7 +718,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
714
718
  * `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
715
719
  * `format:string` 日期格式,可选
716
720
 
717
- 返回:`date` 新的日期对象
721
+ 返回:`any` 新的日期对象, 如果传入 format 则返回格式化后的日期字符串
718
722
 
719
723
  返回日期的指定范围的开端。
720
724
 
@@ -726,7 +730,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
726
730
  * `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
727
731
  * `format:string` 日期格式,可选
728
732
 
729
- 返回:`date` 新的日期对象
733
+ 返回:`any` 新的日期对象, 如果传入 format 则返回格式化后的日期字符串
730
734
 
731
735
  返回日期的指定范围的末尾。
732
736
 
@@ -936,7 +940,7 @@ DATEMODIFY(A, -2, 'month'),
936
940
 
937
941
  * `arr:Array<any>` 数组
938
942
 
939
- 返回:`boolean` 结果
943
+ 返回:`number` 结果
940
944
 
941
945
  返回数组的长度。
942
946
 
@@ -947,10 +951,16 @@ DATEMODIFY(A, -2, 'month'),
947
951
  * `arr:Array<any>` 数组
948
952
  * `iterator:Array<any>` 箭头函数
949
953
 
950
- 返回:`boolean` 结果
954
+ 返回:`Array<any>` 返回转换后的数组
951
955
 
952
956
  数组做数据转换,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
953
957
 
958
+ 将数组中的每个元素转换成箭头函数返回的值。
959
+
960
+ 示例:
961
+
962
+ ARRAYMAP([1, 2, 3], item => item + 1) 得到 [2, 3, 4]。
963
+
954
964
  ### ARRAYFILTER
955
965
 
956
966
  用法:`ARRAYFILTER(arr, item => item)`
@@ -958,11 +968,15 @@ DATEMODIFY(A, -2, 'month'),
958
968
  * `arr:Array<any>` 数组
959
969
  * `iterator:Array<any>` 箭头函数
960
970
 
961
- 返回:`boolean` 结果
971
+ 返回:`Array<any>` 返回过滤后的数组
962
972
 
963
973
  数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
964
974
  将第二个箭头函数返回为 false 的成员过滤掉。
965
975
 
976
+ 示例:
977
+
978
+ ARRAYFILTER([1, 2, 3], item => item > 1) 得到 [2, 3]。
979
+
966
980
  ### ARRAYFINDINDEX
967
981
 
968
982
  用法:`ARRAYFINDINDEX(arr, item => item === 2)`
@@ -1063,7 +1077,7 @@ COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]。
1063
1077
  * `arr:Array<any>` 数组
1064
1078
  * `separator:String` 分隔符
1065
1079
 
1066
- 返回:`String` 结果
1080
+ 返回:`string` 结果
1067
1081
 
1068
1082
  数组转成字符串。
1069
1083
 
@@ -1098,7 +1112,7 @@ CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']。
1098
1112
 
1099
1113
  示例:
1100
1114
 
1101
- UNIQ([{a: '1'}, {b: '2'}, {a: '1'}] 'id')
1115
+ UNIQ([{a: '1'}, {b: '2'}, {a: '1'}]) 得到 [{a: '1'}, {b: '2'}]
1102
1116
 
1103
1117
  ## 编码
1104
1118
 
package/esm/error.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-formula v6.9.0
2
+ * amis-formula v6.10.0-beta.0
3
3
  * Copyright 2021-2024 fex
4
4
  */
5
5
 
package/esm/evalutor.d.ts CHANGED
@@ -281,7 +281,7 @@ export declare class Evaluator {
281
281
  /**
282
282
  * 获取最大值,如果只有一个参数且是数组,则计算这个数组内的值。
283
283
  *
284
- * @example MAX(num1, num2, ...numN)
284
+ * @example MAX(num1, num2, ...numN) or MAX([num1, num2, ...numN])
285
285
  * @param {...number} num - 数值
286
286
  * @namespace 数学函数
287
287
  *
@@ -291,7 +291,7 @@ export declare class Evaluator {
291
291
  /**
292
292
  * 获取最小值,如果只有一个参数且是数组,则计算这个数组内的值。
293
293
  *
294
- * @example MIN(num1, num2, ...numN)
294
+ * @example MIN(num1, num2, ...numN) or MIN([num1, num2, ...numN])
295
295
  * @param {...number} num - 数值
296
296
  * @namespace 数学函数
297
297
  *
@@ -301,7 +301,7 @@ export declare class Evaluator {
301
301
  /**
302
302
  * 求和,如果只有一个参数且是数组,则计算这个数组内的值。
303
303
  *
304
- * @example SUM(num1, num2, ...numN)
304
+ * @example SUM(num1, num2, ...numN) or SUM([num1, num2, ...numN])
305
305
  * @param {...number} num - 数值
306
306
  * @namespace 数学函数
307
307
  *
@@ -384,7 +384,7 @@ export declare class Evaluator {
384
384
  /**
385
385
  * 返回所有参数的平均值,如果只有一个参数且是数组,则计算这个数组内的值。
386
386
  *
387
- * @example AVG(num1, num2, ...numN)
387
+ * @example AVG(num1, num2, ...numN) or AVG([num1, num2, ...numN])
388
388
  * @param {...number} num - 要处理的数字
389
389
  * @namespace 数学函数
390
390
  *
@@ -580,7 +580,7 @@ export declare class Evaluator {
580
580
  *
581
581
  * @returns {string} 结果文本
582
582
  */
583
- fnUPPERFIRST(text: string): string;
583
+ fnUPPERFIRST(text: string): Capitalize<string>;
584
584
  /**
585
585
  * 向前补齐文本长度。
586
586
  *
@@ -712,7 +712,7 @@ export declare class Evaluator {
712
712
  * @param {string} startString - 起始文本
713
713
  * @namespace 文本函数
714
714
  *
715
- * @returns {string} 判断结果
715
+ * @returns {boolean} 判断结果
716
716
  */
717
717
  fnSTARTSWITH(text: string, search: string): boolean;
718
718
  /**
@@ -723,7 +723,7 @@ export declare class Evaluator {
723
723
  * @param {string} endString - 结束文本
724
724
  * @namespace 文本函数
725
725
  *
726
- * @returns {string} 判断结果
726
+ * @returns {boolean} 判断结果
727
727
  */
728
728
  fnENDSWITH(text: string, search: string): boolean;
729
729
  /**
@@ -734,7 +734,7 @@ export declare class Evaluator {
734
734
  * @param {string} searchText - 搜索文本
735
735
  * @namespace 文本函数
736
736
  *
737
- * @returns {string} 判断结果
737
+ * @returns {boolean} 判断结果
738
738
  */
739
739
  fnCONTAINS(text: string, search: string): boolean;
740
740
  /**
@@ -764,13 +764,17 @@ export declare class Evaluator {
764
764
  /**
765
765
  * 返回文本字符串中从指定位置开始的特定数目的字符。
766
766
  *
767
+ * 示例:`MID("amis.baidu.com", 6, 3)`,
768
+ *
769
+ * 返回 `aid`。
770
+ *
767
771
  * @example MID(text, from, len)
768
772
  * @param {string} text - 要处理的文本
769
773
  * @param {number} from - 起始位置
770
774
  * @param {number} len - 处理长度
771
775
  * @namespace 文本函数
772
776
  *
773
- * @returns {number} 命中的位置
777
+ * @returns {string} 命中的位置
774
778
  */
775
779
  fnMID(text: string, from: number, len: number): string;
776
780
  /**
@@ -778,7 +782,7 @@ export declare class Evaluator {
778
782
  *
779
783
  * 示例:`/home/amis/a.json`,
780
784
  *
781
- * 返回:a.json`。
785
+ * 返回:`a.json`。
782
786
  *
783
787
  * @example BASENAME(text)
784
788
  * @param {string} text - 要处理的文本
@@ -919,7 +923,7 @@ export declare class Evaluator {
919
923
  * @param {date} date 日期对象
920
924
  * @param {string} unit 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
921
925
  * @param {string} format 日期格式,可选
922
- * @returns {date} 新的日期对象
926
+ * @returns {any} 新的日期对象, 如果传入 format 则返回格式化后的日期字符串
923
927
  */
924
928
  fnSTARTOF(date: Date, unit?: any, format?: string): string | Date;
925
929
  /**
@@ -930,7 +934,7 @@ export declare class Evaluator {
930
934
  * @param {date} date 日期对象
931
935
  * @param {string} unit 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
932
936
  * @param {string} format 日期格式,可选
933
- * @returns {date} 新的日期对象
937
+ * @returns {any} 新的日期对象, 如果传入 format 则返回格式化后的日期字符串
934
938
  */
935
939
  fnENDOF(date: Date, unit?: any, format?: string): string | Date;
936
940
  normalizeDate(raw: any): Date;
@@ -1122,28 +1126,38 @@ export declare class Evaluator {
1122
1126
  * @param {Array<any>} arr 数组
1123
1127
  * @namespace 数组
1124
1128
  * @example COUNT(arr)
1125
- * @returns {boolean} 结果
1129
+ * @returns {number} 结果
1126
1130
  */
1127
1131
  fnCOUNT(value: any): number;
1128
1132
  /**
1129
1133
  * 数组做数据转换,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
1130
1134
  *
1135
+ * 将数组中的每个元素转换成箭头函数返回的值。
1136
+ *
1137
+ * 示例:
1138
+ *
1139
+ * ARRAYMAP([1, 2, 3], item => item + 1) 得到 [2, 3, 4]。
1140
+ *
1131
1141
  * @param {Array<any>} arr 数组
1132
1142
  * @param {Function<any>} iterator 箭头函数
1133
1143
  * @namespace 数组
1134
1144
  * @example ARRAYMAP(arr, item => item)
1135
- * @returns {boolean} 结果
1145
+ * @returns {Array<any>} 返回转换后的数组
1136
1146
  */
1137
1147
  fnARRAYMAP(value: any, iterator: any): any[];
1138
1148
  /**
1139
1149
  * 数据做数据过滤,需要搭配箭头函数一起使用,注意箭头函数只支持单表达式用法。
1140
1150
  * 将第二个箭头函数返回为 false 的成员过滤掉。
1141
1151
  *
1152
+ * 示例:
1153
+ *
1154
+ * ARRAYFILTER([1, 2, 3], item => item > 1) 得到 [2, 3]。
1155
+ *
1142
1156
  * @param {Array<any>} arr 数组
1143
1157
  * @param {Function<any>} iterator 箭头函数
1144
1158
  * @namespace 数组
1145
1159
  * @example ARRAYFILTER(arr, item => item)
1146
- * @returns {boolean} 结果
1160
+ * @returns {Array<any>} 返回过滤后的数组
1147
1161
  */
1148
1162
  fnARRAYFILTER(value: any, iterator: any): any[];
1149
1163
  /**
@@ -1244,7 +1258,7 @@ export declare class Evaluator {
1244
1258
  * @param { String} separator 分隔符
1245
1259
  * @namespace 数组
1246
1260
  * @example JOIN(arr, string)
1247
- * @returns {String} 结果
1261
+ * @returns {string} 结果
1248
1262
  */
1249
1263
  fnJOIN(arr: any[], separator?: string): string;
1250
1264
  /**
@@ -1265,7 +1279,7 @@ export declare class Evaluator {
1265
1279
  *
1266
1280
  * 示例:
1267
1281
  *
1268
- * UNIQ([{a: '1'}, {b: '2'}, {a: '1'}] 'id')
1282
+ * UNIQ([{a: '1'}, {b: '2'}, {a: '1'}]) 得到 [{a: '1'}, {b: '2'}]
1269
1283
  *
1270
1284
  * @param {Array<any>} arr 数组
1271
1285
  * @param {string} field 字段