amis-core 3.4.2 → 3.5.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.
Files changed (277) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +12 -2
  3. package/esm/SchemaRenderer.js +1 -1
  4. package/esm/Scoped.js +2 -2
  5. package/esm/StatusScoped.js +1 -1
  6. package/esm/WithRootStore.js +1 -1
  7. package/esm/WithStore.js +8 -4
  8. package/esm/actions/Action.js +1 -1
  9. package/esm/actions/AjaxAction.js +1 -1
  10. package/esm/actions/BreakAction.js +1 -1
  11. package/esm/actions/BroadcastAction.js +1 -1
  12. package/esm/actions/CmptAction.d.ts +1 -0
  13. package/esm/actions/CmptAction.js +23 -23
  14. package/esm/actions/ContinueAction.js +1 -1
  15. package/esm/actions/CopyAction.js +1 -1
  16. package/esm/actions/CustomAction.js +2 -2
  17. package/esm/actions/DialogAction.js +1 -1
  18. package/esm/actions/DrawerAction.js +1 -1
  19. package/esm/actions/EmailAction.js +1 -1
  20. package/esm/actions/LinkAction.js +1 -1
  21. package/esm/actions/LoopAction.js +1 -1
  22. package/esm/actions/PageAction.js +1 -1
  23. package/esm/actions/ParallelAction.js +1 -1
  24. package/esm/actions/StatusAction.js +1 -1
  25. package/esm/actions/SwitchAction.js +1 -1
  26. package/esm/actions/ToastAction.js +1 -1
  27. package/esm/components/CustomStyle.js +9 -9
  28. package/esm/components/LazyComponent.js +1 -1
  29. package/esm/components/Overlay.js +2 -1
  30. package/esm/components/PopOver.js +2 -2
  31. package/esm/env.d.ts +11 -3
  32. package/esm/env.js +1 -1
  33. package/esm/envOverwrite.js +1 -1
  34. package/esm/factory.js +1 -3
  35. package/esm/index.d.ts +1 -0
  36. package/esm/index.js +4 -4
  37. package/esm/locale.js +1 -1
  38. package/esm/polyfills.js +1 -1
  39. package/esm/renderers/Form.js +10 -4
  40. package/esm/renderers/Item.d.ts +2 -6
  41. package/esm/renderers/Item.js +11 -17
  42. package/esm/renderers/Options.js +2 -2
  43. package/esm/renderers/Placeholder.js +1 -1
  44. package/esm/renderers/builtin.js +1 -1
  45. package/esm/renderers/register.js +1 -1
  46. package/esm/renderers/wrapControl.js +41 -22
  47. package/esm/store/app.js +7 -5
  48. package/esm/store/combo.d.ts +120 -0
  49. package/esm/store/combo.js +3 -2
  50. package/esm/store/crud.d.ts +13 -2
  51. package/esm/store/crud.js +88 -23
  52. package/esm/store/form.d.ts +50 -0
  53. package/esm/store/form.js +5 -2
  54. package/esm/store/formItem.d.ts +1 -0
  55. package/esm/store/formItem.js +18 -6
  56. package/esm/store/iRenderer.js +2 -2
  57. package/esm/store/index.js +1 -1
  58. package/esm/store/list.js +1 -1
  59. package/esm/store/manager.js +1 -1
  60. package/esm/store/modal.js +1 -1
  61. package/esm/store/node.js +1 -1
  62. package/esm/store/pagination.js +1 -1
  63. package/esm/store/root.js +2 -2
  64. package/esm/store/service.js +1 -1
  65. package/esm/store/status.js +1 -1
  66. package/esm/store/table.d.ts +454 -83
  67. package/esm/store/table.js +114 -74
  68. package/esm/store/table2.d.ts +1 -1
  69. package/esm/store/table2.js +5 -4
  70. package/esm/theme.js +1 -1
  71. package/esm/types.d.ts +6 -0
  72. package/esm/utils/Animation.js +1 -1
  73. package/esm/utils/ColorScale.js +1 -1
  74. package/esm/utils/DataSchema.js +1 -1
  75. package/esm/utils/DataScope.js +1 -1
  76. package/esm/utils/RootClose.js +1 -1
  77. package/esm/utils/SimpleMap.js +1 -1
  78. package/esm/utils/api.js +2 -1
  79. package/esm/utils/arraySlice.js +1 -1
  80. package/esm/utils/attachmentAdpator.d.ts +2 -1
  81. package/esm/utils/attachmentAdpator.js +17 -11
  82. package/esm/utils/autobind.js +1 -1
  83. package/esm/utils/columnsSplit.js +1 -1
  84. package/esm/utils/dataMapping.js +1 -1
  85. package/esm/utils/date.js +1 -1
  86. package/esm/utils/debug.d.ts +1 -1
  87. package/esm/utils/debug.js +5 -3
  88. package/esm/utils/decodeEntity.js +1 -1
  89. package/esm/utils/dom.js +1 -1
  90. package/esm/utils/errors.js +1 -1
  91. package/esm/utils/escapeHtml.js +1 -1
  92. package/esm/utils/filter-schema.d.ts +8 -0
  93. package/esm/utils/filter-schema.js +32 -14
  94. package/esm/utils/filter.js +1 -1
  95. package/esm/utils/formatDuration.js +1 -1
  96. package/esm/utils/formula.js +1 -1
  97. package/esm/utils/getVariable.js +1 -1
  98. package/esm/utils/grammar.js +1 -1
  99. package/esm/utils/handleAction.js +2 -1
  100. package/esm/utils/helper.d.ts +15 -1
  101. package/esm/utils/helper.js +59 -12
  102. package/esm/utils/highlight.js +1 -1
  103. package/esm/utils/icon.js +1 -1
  104. package/esm/utils/image.js +1 -1
  105. package/esm/utils/isPureVariable.js +1 -1
  106. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  107. package/esm/utils/keyToPath.js +1 -1
  108. package/esm/utils/makeSorter.js +1 -1
  109. package/esm/utils/math.js +1 -1
  110. package/esm/utils/memoryParse.js +1 -1
  111. package/esm/utils/normalizeLink.js +1 -1
  112. package/esm/utils/normalizeOptions.js +1 -1
  113. package/esm/utils/object.js +1 -1
  114. package/esm/utils/offset.js +1 -1
  115. package/esm/utils/offsetParent.js +1 -1
  116. package/esm/utils/optionValueCompare.js +1 -1
  117. package/esm/utils/position.js +1 -1
  118. package/esm/utils/prettyBytes.js +1 -1
  119. package/esm/utils/renderer-event.js +1 -1
  120. package/esm/utils/replaceText.d.ts +1 -1
  121. package/esm/utils/replaceText.js +9 -4
  122. package/esm/utils/resize-sensor.js +1 -1
  123. package/esm/utils/resolveCondition.js +1 -1
  124. package/esm/utils/resolveVariable.js +1 -1
  125. package/esm/utils/resolveVariableAndFilter.js +1 -1
  126. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  127. package/esm/utils/scrollPosition.js +1 -1
  128. package/esm/utils/string2regExp.js +1 -1
  129. package/esm/utils/stripNumber.js +1 -1
  130. package/esm/utils/style-helper.js +5 -4
  131. package/esm/utils/style.js +1 -1
  132. package/esm/utils/toNumber.js +1 -1
  133. package/esm/utils/tokenize.js +1 -1
  134. package/esm/utils/tpl-builtin.js +1 -1
  135. package/esm/utils/tpl-lodash.js +1 -1
  136. package/esm/utils/tpl.js +1 -1
  137. package/esm/utils/uncontrollable.js +1 -1
  138. package/esm/utils/validations.js +1 -1
  139. package/lib/Root.js +1 -1
  140. package/lib/RootRenderer.js +12 -2
  141. package/lib/SchemaRenderer.js +1 -1
  142. package/lib/Scoped.js +2 -2
  143. package/lib/StatusScoped.js +1 -1
  144. package/lib/WithRootStore.js +1 -1
  145. package/lib/WithStore.js +8 -4
  146. package/lib/actions/Action.js +1 -1
  147. package/lib/actions/AjaxAction.js +1 -1
  148. package/lib/actions/BreakAction.js +1 -1
  149. package/lib/actions/BroadcastAction.js +1 -1
  150. package/lib/actions/CmptAction.d.ts +1 -0
  151. package/lib/actions/CmptAction.js +23 -23
  152. package/lib/actions/ContinueAction.js +1 -1
  153. package/lib/actions/CopyAction.js +1 -1
  154. package/lib/actions/CustomAction.js +2 -2
  155. package/lib/actions/DialogAction.js +1 -1
  156. package/lib/actions/DrawerAction.js +1 -1
  157. package/lib/actions/EmailAction.js +1 -1
  158. package/lib/actions/LinkAction.js +1 -1
  159. package/lib/actions/LoopAction.js +1 -1
  160. package/lib/actions/PageAction.js +1 -1
  161. package/lib/actions/ParallelAction.js +1 -1
  162. package/lib/actions/StatusAction.js +1 -1
  163. package/lib/actions/SwitchAction.js +1 -1
  164. package/lib/actions/ToastAction.js +1 -1
  165. package/lib/components/CustomStyle.js +9 -9
  166. package/lib/components/LazyComponent.js +1 -1
  167. package/lib/components/Overlay.js +2 -1
  168. package/lib/components/PopOver.js +2 -2
  169. package/lib/env.d.ts +11 -3
  170. package/lib/env.js +1 -1
  171. package/lib/envOverwrite.js +1 -1
  172. package/lib/factory.js +1 -3
  173. package/lib/index.d.ts +1 -0
  174. package/lib/index.js +7 -2
  175. package/lib/locale.js +1 -1
  176. package/lib/polyfills.js +1 -1
  177. package/lib/renderers/Form.js +10 -4
  178. package/lib/renderers/Item.d.ts +2 -6
  179. package/lib/renderers/Item.js +11 -17
  180. package/lib/renderers/Options.js +2 -2
  181. package/lib/renderers/Placeholder.js +1 -1
  182. package/lib/renderers/builtin.js +1 -1
  183. package/lib/renderers/register.js +1 -1
  184. package/lib/renderers/wrapControl.js +41 -22
  185. package/lib/store/app.js +6 -4
  186. package/lib/store/combo.d.ts +144 -25
  187. package/lib/store/combo.js +3 -2
  188. package/lib/store/crud.d.ts +13 -2
  189. package/lib/store/crud.js +88 -23
  190. package/lib/store/form.d.ts +60 -11
  191. package/lib/store/form.js +5 -2
  192. package/lib/store/formItem.d.ts +1 -0
  193. package/lib/store/formItem.js +16 -4
  194. package/lib/store/iRenderer.js +2 -2
  195. package/lib/store/index.js +1 -1
  196. package/lib/store/list.js +1 -1
  197. package/lib/store/manager.js +1 -1
  198. package/lib/store/modal.js +1 -1
  199. package/lib/store/node.js +1 -1
  200. package/lib/store/pagination.js +1 -1
  201. package/lib/store/root.js +2 -2
  202. package/lib/store/service.js +1 -1
  203. package/lib/store/status.js +1 -1
  204. package/lib/store/table.d.ts +474 -104
  205. package/lib/store/table.js +112 -72
  206. package/lib/store/table2.d.ts +1 -1
  207. package/lib/store/table2.js +5 -4
  208. package/lib/theme.js +1 -1
  209. package/lib/types.d.ts +6 -0
  210. package/lib/utils/Animation.js +1 -1
  211. package/lib/utils/ColorScale.js +1 -1
  212. package/lib/utils/DataSchema.js +1 -1
  213. package/lib/utils/DataScope.js +1 -1
  214. package/lib/utils/RootClose.js +1 -1
  215. package/lib/utils/SimpleMap.js +1 -1
  216. package/lib/utils/api.js +2 -1
  217. package/lib/utils/arraySlice.js +1 -1
  218. package/lib/utils/attachmentAdpator.d.ts +2 -1
  219. package/lib/utils/attachmentAdpator.js +17 -11
  220. package/lib/utils/autobind.js +1 -1
  221. package/lib/utils/columnsSplit.js +1 -1
  222. package/lib/utils/dataMapping.js +1 -1
  223. package/lib/utils/date.js +1 -1
  224. package/lib/utils/debug.d.ts +1 -1
  225. package/lib/utils/debug.js +4 -2
  226. package/lib/utils/decodeEntity.js +1 -1
  227. package/lib/utils/dom.js +1 -1
  228. package/lib/utils/errors.js +1 -1
  229. package/lib/utils/escapeHtml.js +1 -1
  230. package/lib/utils/filter-schema.d.ts +8 -0
  231. package/lib/utils/filter-schema.js +31 -13
  232. package/lib/utils/filter.js +1 -1
  233. package/lib/utils/formatDuration.js +1 -1
  234. package/lib/utils/formula.js +1 -1
  235. package/lib/utils/getVariable.js +1 -1
  236. package/lib/utils/grammar.js +1 -1
  237. package/lib/utils/handleAction.js +2 -1
  238. package/lib/utils/helper.d.ts +15 -1
  239. package/lib/utils/helper.js +62 -11
  240. package/lib/utils/highlight.js +1 -1
  241. package/lib/utils/icon.js +1 -1
  242. package/lib/utils/image.js +1 -1
  243. package/lib/utils/isPureVariable.js +1 -1
  244. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  245. package/lib/utils/keyToPath.js +1 -1
  246. package/lib/utils/makeSorter.js +1 -1
  247. package/lib/utils/math.js +1 -1
  248. package/lib/utils/memoryParse.js +1 -1
  249. package/lib/utils/normalizeLink.js +1 -1
  250. package/lib/utils/normalizeOptions.js +1 -1
  251. package/lib/utils/object.js +1 -1
  252. package/lib/utils/offset.js +1 -1
  253. package/lib/utils/offsetParent.js +1 -1
  254. package/lib/utils/optionValueCompare.js +1 -1
  255. package/lib/utils/position.js +1 -1
  256. package/lib/utils/prettyBytes.js +1 -1
  257. package/lib/utils/renderer-event.js +1 -1
  258. package/lib/utils/replaceText.d.ts +1 -1
  259. package/lib/utils/replaceText.js +9 -4
  260. package/lib/utils/resize-sensor.js +1 -1
  261. package/lib/utils/resolveCondition.js +1 -1
  262. package/lib/utils/resolveVariable.js +1 -1
  263. package/lib/utils/resolveVariableAndFilter.js +1 -1
  264. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  265. package/lib/utils/scrollPosition.js +1 -1
  266. package/lib/utils/string2regExp.js +1 -1
  267. package/lib/utils/stripNumber.js +1 -1
  268. package/lib/utils/style-helper.js +6 -4
  269. package/lib/utils/style.js +1 -1
  270. package/lib/utils/toNumber.js +1 -1
  271. package/lib/utils/tokenize.js +1 -1
  272. package/lib/utils/tpl-builtin.js +1 -1
  273. package/lib/utils/tpl-lodash.js +1 -1
  274. package/lib/utils/tpl.js +1 -1
  275. package/lib/utils/uncontrollable.js +1 -1
  276. package/lib/utils/validations.js +1 -1
  277. package/package.json +4 -3
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -10,13 +10,31 @@ Object.defineProperty(exports, '__esModule', { value: true });
10
10
  var tpl = require('./tpl.js');
11
11
  var helper = require('./helper.js');
12
12
  var isPlainObject = require('lodash/isPlainObject');
13
- var cx = require('classnames');
13
+ var tokenize = require('./tokenize.js');
14
14
 
15
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
16
 
17
17
  var isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);
18
- var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
19
18
 
19
+ /**
20
+ * 计算下发给子组件的className,处理对象类型的className,将其中的表达式计算出来,避免被classnames识别为true
21
+ *
22
+ * @param value - CSS类名值
23
+ * @param ctx - 数据域
24
+ */
25
+ function filterClassNameObject(classValue, ctx) {
26
+ if (ctx === void 0) { ctx = {}; }
27
+ var result = classValue;
28
+ if (classValue && typeof classValue === 'string') {
29
+ result = tokenize.tokenize(classValue, ctx);
30
+ }
31
+ else if (classValue && isPlainObject__default["default"](classValue)) {
32
+ result = helper.mapObject(classValue, function (value) {
33
+ return typeof value === 'string' ? tpl.evalExpression(value, ctx) : value;
34
+ }, undefined, function (key) { return tokenize.tokenize(key, ctx); });
35
+ }
36
+ return result;
37
+ }
20
38
  /**
21
39
  * 处理 Props 数据,所有带 On 结束的做一次
22
40
  *
@@ -37,13 +55,14 @@ function getExprProperties(schema, data, blackList, props) {
37
55
  return;
38
56
  }
39
57
  var parts = /^(.*)(On|Expr|(?:c|C)lassName)(Raw)?$/.exec(key);
58
+ var type = parts === null || parts === void 0 ? void 0 : parts[2];
40
59
  var value = schema[key];
41
60
  if (value &&
42
61
  typeof value === 'string' &&
43
62
  (parts === null || parts === void 0 ? void 0 : parts[1]) &&
44
- (parts[2] === 'On' || parts[2] === 'Expr')) {
63
+ (type === 'On' || type === 'Expr')) {
45
64
  key = parts[1];
46
- if (parts[2] === 'On' || parts[2] === 'Expr') {
65
+ if (type === 'On' || type === 'Expr') {
47
66
  if (!ctx &&
48
67
  props &&
49
68
  typeof value === 'string' &&
@@ -52,7 +71,7 @@ function getExprProperties(schema, data, blackList, props) {
52
71
  __props: props
53
72
  });
54
73
  }
55
- if (parts[2] === 'On') {
74
+ if (type === 'On') {
56
75
  value = (props === null || props === void 0 ? void 0 : props[key]) || tpl.evalExpression(value, ctx || data);
57
76
  }
58
77
  else {
@@ -61,18 +80,17 @@ function getExprProperties(schema, data, blackList, props) {
61
80
  }
62
81
  exprProps[key] = value;
63
82
  }
64
- else if (value &&
65
- isPlainObject__default["default"](value) &&
66
- ((parts === null || parts === void 0 ? void 0 : parts[2]) === 'className' || (parts === null || parts === void 0 ? void 0 : parts[2]) === 'ClassName')) {
67
- key = parts[1] + parts[2];
83
+ else if ((type === 'className' || type === 'ClassName') &&
84
+ !(props === null || props === void 0 ? void 0 : props[key]) && // 如果 props 里面有则是 props 优先
85
+ value &&
86
+ (typeof value === 'string' || isPlainObject__default["default"](value))) {
68
87
  exprProps["".concat(key, "Raw")] = value;
69
- exprProps[key] = cx__default["default"](helper.mapObject(value, function (value) {
70
- return typeof value === 'string' ? tpl.evalExpression(value, data) : value;
71
- }));
88
+ exprProps[key] = filterClassNameObject(value, data);
72
89
  }
73
90
  });
74
91
  return exprProps;
75
92
  }
76
93
 
77
94
  exports["default"] = getExprProperties;
95
+ exports.filterClassNameObject = filterClassNameObject;
78
96
  exports.getExprProperties = getExprProperties;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -30,6 +30,7 @@ function handleAction(e, action, props, data) {
30
30
  action.actionType = 'ajax';
31
31
  var api$1 = api.normalizeApi(action.api);
32
32
  api$1.responseType = 'blob';
33
+ api$1.downloadFileName = action.downloadFileName;
33
34
  action.api = api$1;
34
35
  }
35
36
  onAction(e, action, data || props.data);
@@ -256,6 +256,7 @@ export declare function getTreeAncestors<T extends TreeItem>(tree: Array<T>, val
256
256
  * @param value
257
257
  */
258
258
  export declare function getTreeParent<T extends TreeItem>(tree: Array<T>, value: T): T | null;
259
+ export declare function countTree<T extends TreeItem>(tree: Array<T>, iterator?: (item: T, key: number, level: number, paths?: Array<T>) => any): number;
259
260
  export declare function ucFirst(str?: string): string | undefined;
260
261
  export declare function lcFirst(str?: string): string;
261
262
  export declare function camel(str?: string): string;
@@ -273,7 +274,7 @@ export declare function qsparse(data: string, options?: any): qs.ParsedQs;
273
274
  export declare function object2formData(data: any, options?: any, fd?: FormData): any;
274
275
  export declare function chainFunctions(...fns: Array<(...args: Array<any>) => void>): (...args: Array<any>) => void;
275
276
  export declare function chainEvents(props: any, schema: any): any;
276
- export declare function mapObject(value: any, fn: Function, skipFn?: (value: any) => boolean): any;
277
+ export declare function mapObject(value: any, valueMapper: (value: any) => any, skipFn?: (value: any) => boolean, keyMapper?: (key: string) => string): any;
277
278
  export declare function loadScript(src: string): Promise<void>;
278
279
  export declare function loadStyle(href: string): Promise<void>;
279
280
  export declare class SkipOperation extends Error {
@@ -345,15 +346,26 @@ export declare function convertArrayValueToMoment(value: number[], types: string
345
346
  export declare function getRange(min: number, max: number, step?: number): number[];
346
347
  export declare function repeatCount(count: number, iterator: (index: number) => any): any[];
347
348
  export declare function isNumeric(value: any): boolean;
349
+ /**
350
+ * 解析Query字符串中的原始类型,目前仅支持转化布尔类型
351
+ *
352
+ * @param query 查询字符串
353
+ * @returns 解析后的查询字符串
354
+ */
355
+ export declare function parsePrimitiveQueryString(rawQuery: Record<string, any>): any;
348
356
  /**
349
357
  * 获取URL链接中的query参数(包含hash mode)
350
358
  *
351
359
  * @param location Location对象,或者类Location结构的对象
360
+ * @param {Object} options 配置项
361
+ * @param {Boolean} options.parsePrimitive 是否将query的值解析为原始类型,目前仅支持转化布尔类型
352
362
  */
353
363
  export declare function parseQuery(location?: Location | {
354
364
  query?: any;
355
365
  search?: any;
356
366
  [propName: string]: any;
367
+ }, options?: {
368
+ parsePrimitive?: boolean;
357
369
  }): Record<string, any>;
358
370
  export declare function differenceFromAll<T>(allOptions: Array<T>, options: Array<T>, getValue: (item: T) => any): Array<T>;
359
371
  /**
@@ -364,3 +376,5 @@ export declare function differenceFromAll<T>(allOptions: Array<T>, options: Arra
364
376
  */
365
377
  export declare function buildTrackExpression(schema: any): string;
366
378
  export declare function evalTrackExpression(expression: string, data: Record<string, any>): string;
379
+ export declare function importLazyComponent(mod: any): any;
380
+ export declare function replaceUrlParams(path: string, params: Record<string, any>): string;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -18,6 +18,7 @@ var isNaN = require('lodash/isNaN');
18
18
  var isNumber = require('lodash/isNumber');
19
19
  var isString = require('lodash/isString');
20
20
  var qs = require('qs');
21
+ var pathToRegexp = require('path-to-regexp');
21
22
  var tpl = require('./tpl.js');
22
23
  var autobind$1 = require('./autobind.js');
23
24
  require('amis-formula');
@@ -919,6 +920,15 @@ function getTreeParent(tree, value) {
919
920
  var ancestors = getTreeAncestors(tree, value);
920
921
  return (ancestors === null || ancestors === void 0 ? void 0 : ancestors.length) ? ancestors[ancestors.length - 1] : null;
921
922
  }
923
+ function countTree(tree, iterator) {
924
+ var count = 0;
925
+ eachTree(tree, function (item, key, level, paths) {
926
+ if (!iterator || iterator(item, key, level, paths)) {
927
+ count++;
928
+ }
929
+ });
930
+ return count;
931
+ }
922
932
  function ucFirst(str) {
923
933
  return typeof str === 'string'
924
934
  ? str.substring(0, 1).toUpperCase() + str.substring(1)
@@ -1079,7 +1089,7 @@ function chainEvents(props, schema) {
1079
1089
  });
1080
1090
  return ret;
1081
1091
  }
1082
- function mapObject(value, fn, skipFn) {
1092
+ function mapObject(value, valueMapper, skipFn, keyMapper) {
1083
1093
  // 如果value值满足skipFn条件则不做map操作
1084
1094
  skipFn =
1085
1095
  skipFn && typeof skipFn === 'function'
@@ -1091,20 +1101,21 @@ function mapObject(value, fn, skipFn) {
1091
1101
  }
1092
1102
  return false;
1093
1103
  };
1094
- if (!!skipFn(value)) {
1104
+ if (skipFn(value)) {
1095
1105
  return value;
1096
1106
  }
1097
1107
  if (Array.isArray(value)) {
1098
- return value.map(function (item) { return mapObject(item, fn); });
1108
+ return value.map(function (item) { return mapObject(item, valueMapper, skipFn, keyMapper); });
1099
1109
  }
1100
1110
  if (object.isObject(value)) {
1101
- var tmpValue_1 = tslib.__assign({}, value);
1102
- Object.keys(tmpValue_1).forEach(function (key) {
1103
- tmpValue_1[key] = mapObject(tmpValue_1[key], fn);
1111
+ var tmpValue_1 = {};
1112
+ Object.keys(value).forEach(function (key) {
1113
+ var newKey = keyMapper ? keyMapper(key) : key;
1114
+ tmpValue_1[newKey] = mapObject(value[key], valueMapper, skipFn, keyMapper);
1104
1115
  });
1105
1116
  return tmpValue_1;
1106
1117
  }
1107
- return fn(value);
1118
+ return valueMapper(value);
1108
1119
  }
1109
1120
  function loadScript(src) {
1110
1121
  return new Promise(function (ok, fail) {
@@ -1229,7 +1240,7 @@ function getScrollbarWidth() {
1229
1240
  // 后续改用 FormulaExec['formula']
1230
1241
  function resolveValueByName(data, name, canAccessSuper) {
1231
1242
  return isPureVariable.isPureVariable(name)
1232
- ? resolveVariableAndFilter.resolveVariableAndFilter(name, data)
1243
+ ? resolveVariableAndFilter.resolveVariableAndFilter(name, data, '|raw')
1233
1244
  : resolveVariable.resolveVariable(name, data, canAccessSuper);
1234
1245
  }
1235
1246
  // 统一的获取 value 值方法
@@ -1432,16 +1443,43 @@ function isNumeric(value) {
1432
1443
  }
1433
1444
  return /^[-+]?(?:\d*[.])?\d+$/.test(value);
1434
1445
  }
1446
+ /**
1447
+ * 解析Query字符串中的原始类型,目前仅支持转化布尔类型
1448
+ *
1449
+ * @param query 查询字符串
1450
+ * @returns 解析后的查询字符串
1451
+ */
1452
+ function parsePrimitiveQueryString(rawQuery) {
1453
+ if (!isPlainObject__default["default"](rawQuery)) {
1454
+ return rawQuery;
1455
+ }
1456
+ var query = JSONValueMap(rawQuery, function (value) {
1457
+ /** 解析布尔类型,后续有需要在这里扩充 */
1458
+ if (value === 'true' || value === 'false') {
1459
+ return value === 'true';
1460
+ }
1461
+ return value;
1462
+ });
1463
+ return query;
1464
+ }
1435
1465
  /**
1436
1466
  * 获取URL链接中的query参数(包含hash mode)
1437
1467
  *
1438
1468
  * @param location Location对象,或者类Location结构的对象
1469
+ * @param {Object} options 配置项
1470
+ * @param {Boolean} options.parsePrimitive 是否将query的值解析为原始类型,目前仅支持转化布尔类型
1439
1471
  */
1440
- function parseQuery(location) {
1472
+ function parseQuery(location, options) {
1441
1473
  var _a;
1474
+ var _b = (options || {}).parsePrimitive, parsePrimitive = _b === void 0 ? false : _b;
1442
1475
  var query = (location && !(location instanceof Location) && (location === null || location === void 0 ? void 0 : location.query)) ||
1443
1476
  (location && (location === null || location === void 0 ? void 0 : location.search) && qsparse(location.search.substring(1))) ||
1444
1477
  (window.location.search && qsparse(window.location.search.substring(1)));
1478
+ var normalizedQuery = isPlainObject__default["default"](query)
1479
+ ? parsePrimitive
1480
+ ? parsePrimitiveQueryString(query)
1481
+ : query
1482
+ : {};
1445
1483
  /* 处理hash中的query */
1446
1484
  var hash = (_a = window.location) === null || _a === void 0 ? void 0 : _a.hash;
1447
1485
  var hashQuery = {};
@@ -1449,7 +1487,6 @@ function parseQuery(location) {
1449
1487
  if (typeof hash === 'string' && ~(idx = hash.indexOf('?'))) {
1450
1488
  hashQuery = qsparse(hash.substring(idx + 1));
1451
1489
  }
1452
- var normalizedQuery = isPlainObject__default["default"](query) ? query : {};
1453
1490
  return merge__default["default"](normalizedQuery, hashQuery);
1454
1491
  }
1455
1492
  /**
@@ -1552,6 +1589,16 @@ function evalTrackExpression(expression, data) {
1552
1589
  })
1553
1590
  .join('');
1554
1591
  }
1592
+ // 很奇怪的问题,react-json-view import 有些情况下 mod.default 才是 esModule
1593
+ function importLazyComponent(mod) {
1594
+ return mod.default.__esModule ? mod.default : mod;
1595
+ }
1596
+ function replaceUrlParams(path, params) {
1597
+ if (typeof path === 'string' && /\:\w+/.test(path)) {
1598
+ return pathToRegexp.compile(path)(params);
1599
+ }
1600
+ return path;
1601
+ }
1555
1602
 
1556
1603
  exports.cloneObject = object.cloneObject;
1557
1604
  exports.createObject = object.createObject;
@@ -1576,6 +1623,7 @@ exports.chainEvents = chainEvents;
1576
1623
  exports.chainFunctions = chainFunctions;
1577
1624
  exports.changedEffect = changedEffect;
1578
1625
  exports.convertArrayValueToMoment = convertArrayValueToMoment;
1626
+ exports.countTree = countTree;
1579
1627
  exports.detectPropValueChanged = detectPropValueChanged;
1580
1628
  exports.difference = difference;
1581
1629
  exports.differenceFromAll = differenceFromAll;
@@ -1607,6 +1655,7 @@ exports.hasOwnPropertyInPath = hasOwnPropertyInPath;
1607
1655
  exports.hasVisibleExpression = hasVisibleExpression;
1608
1656
  exports.hashCode = hashCode;
1609
1657
  exports.immutableExtends = immutableExtends;
1658
+ exports.importLazyComponent = importLazyComponent;
1610
1659
  exports.injectPropsToObject = injectPropsToObject;
1611
1660
  exports.isArrayChildrenModified = isArrayChildrenModified;
1612
1661
  exports.isBreakpoint = isBreakpoint;
@@ -1631,6 +1680,7 @@ exports.normalizeNodePath = normalizeNodePath;
1631
1680
  exports.object2formData = object2formData;
1632
1681
  exports.omitControls = omitControls;
1633
1682
  exports.padArr = padArr;
1683
+ exports.parsePrimitiveQueryString = parsePrimitiveQueryString;
1634
1684
  exports.parseQuery = parseQuery;
1635
1685
  exports.pickEventsProps = pickEventsProps;
1636
1686
  exports.preventDefault = preventDefault;
@@ -1640,6 +1690,7 @@ exports.qsstringify = qsstringify;
1640
1690
  exports.range = range;
1641
1691
  exports.removeHTMLTag = removeHTMLTag;
1642
1692
  exports.repeatCount = repeatCount;
1693
+ exports.replaceUrlParams = replaceUrlParams;
1643
1694
  exports.rmUndefined = rmUndefined;
1644
1695
  exports.someTree = someTree;
1645
1696
  exports.sortArray = sortArray;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/utils/icon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/utils/math.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,3 +1,3 @@
1
1
  export declare function replaceText(schema: any, replaceText?: {
2
2
  [propName: string]: string;
3
- }, replaceTextIgnoreKeys?: String[]): any;
3
+ }, replaceTextIgnoreKeys?: String[] | ((key: string, value: any, object: any) => boolean)): any;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -22,13 +22,18 @@ function replaceText(schema, replaceText, replaceTextIgnoreKeys) {
22
22
  var replicaSchema = cloneDeep__default["default"](schema);
23
23
  var replaceKeys_1 = Object.keys(replaceText);
24
24
  replaceKeys_1.sort(function (a, b) { return b.length - a.length; }); // 避免用户将短的放前面
25
- var IgnoreKeys_1 = new Set(replaceTextIgnoreKeys || []);
25
+ var IgnoreKeys_1 = new Set(Array.isArray(replaceTextIgnoreKeys) ? replaceTextIgnoreKeys : []);
26
+ var ignore_1 = typeof replaceTextIgnoreKeys === 'function'
27
+ ? replaceTextIgnoreKeys
28
+ : function (key) {
29
+ return IgnoreKeys_1.has(key);
30
+ };
26
31
  helper.JSONTraverse(replicaSchema, function (value, key, object) {
27
32
  var e_1, _a;
28
33
  var descriptor = Object.getOwnPropertyDescriptor(object, key);
29
34
  if (typeof value === 'string' &&
30
- !IgnoreKeys_1.has(key) &&
31
- (descriptor === null || descriptor === void 0 ? void 0 : descriptor.writable)) {
35
+ (descriptor === null || descriptor === void 0 ? void 0 : descriptor.writable) &&
36
+ !ignore_1(key, value, object)) {
32
37
  try {
33
38
  for (var replaceKeys_2 = tslib.__values(replaceKeys_1), replaceKeys_2_1 = replaceKeys_2.next(); !replaceKeys_2_1.done; replaceKeys_2_1 = replaceKeys_2.next()) {
34
39
  var replaceKey = replaceKeys_2_1.value;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5