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,13 +1,32 @@
1
1
  /**
2
- * amis-core v3.4.2
2
+ * amis-core v3.5.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
6
6
  import { evalExpression, filter } from './tpl.js';
7
- import { injectPropsToObject, mapObject } from './helper.js';
7
+ import { mapObject, injectPropsToObject } from './helper.js';
8
8
  import isPlainObject from 'lodash/isPlainObject';
9
- import cx from 'classnames';
9
+ import { tokenize } from './tokenize.js';
10
10
 
11
+ /**
12
+ * 计算下发给子组件的className,处理对象类型的className,将其中的表达式计算出来,避免被classnames识别为true
13
+ *
14
+ * @param value - CSS类名值
15
+ * @param ctx - 数据域
16
+ */
17
+ function filterClassNameObject(classValue, ctx) {
18
+ if (ctx === void 0) { ctx = {}; }
19
+ var result = classValue;
20
+ if (classValue && typeof classValue === 'string') {
21
+ result = tokenize(classValue, ctx);
22
+ }
23
+ else if (classValue && isPlainObject(classValue)) {
24
+ result = mapObject(classValue, function (value) {
25
+ return typeof value === 'string' ? evalExpression(value, ctx) : value;
26
+ }, undefined, function (key) { return tokenize(key, ctx); });
27
+ }
28
+ return result;
29
+ }
11
30
  /**
12
31
  * 处理 Props 数据,所有带 On 结束的做一次
13
32
  *
@@ -28,13 +47,14 @@ function getExprProperties(schema, data, blackList, props) {
28
47
  return;
29
48
  }
30
49
  var parts = /^(.*)(On|Expr|(?:c|C)lassName)(Raw)?$/.exec(key);
50
+ var type = parts === null || parts === void 0 ? void 0 : parts[2];
31
51
  var value = schema[key];
32
52
  if (value &&
33
53
  typeof value === 'string' &&
34
54
  (parts === null || parts === void 0 ? void 0 : parts[1]) &&
35
- (parts[2] === 'On' || parts[2] === 'Expr')) {
55
+ (type === 'On' || type === 'Expr')) {
36
56
  key = parts[1];
37
- if (parts[2] === 'On' || parts[2] === 'Expr') {
57
+ if (type === 'On' || type === 'Expr') {
38
58
  if (!ctx &&
39
59
  props &&
40
60
  typeof value === 'string' &&
@@ -43,7 +63,7 @@ function getExprProperties(schema, data, blackList, props) {
43
63
  __props: props
44
64
  });
45
65
  }
46
- if (parts[2] === 'On') {
66
+ if (type === 'On') {
47
67
  value = (props === null || props === void 0 ? void 0 : props[key]) || evalExpression(value, ctx || data);
48
68
  }
49
69
  else {
@@ -52,17 +72,15 @@ function getExprProperties(schema, data, blackList, props) {
52
72
  }
53
73
  exprProps[key] = value;
54
74
  }
55
- else if (value &&
56
- isPlainObject(value) &&
57
- ((parts === null || parts === void 0 ? void 0 : parts[2]) === 'className' || (parts === null || parts === void 0 ? void 0 : parts[2]) === 'ClassName')) {
58
- key = parts[1] + parts[2];
75
+ else if ((type === 'className' || type === 'ClassName') &&
76
+ !(props === null || props === void 0 ? void 0 : props[key]) && // 如果 props 里面有则是 props 优先
77
+ value &&
78
+ (typeof value === 'string' || isPlainObject(value))) {
59
79
  exprProps["".concat(key, "Raw")] = value;
60
- exprProps[key] = cx(mapObject(value, function (value) {
61
- return typeof value === 'string' ? evalExpression(value, data) : value;
62
- }));
80
+ exprProps[key] = filterClassNameObject(value, data);
63
81
  }
64
82
  });
65
83
  return exprProps;
66
84
  }
67
85
 
68
- export { getExprProperties as default, getExprProperties };
86
+ export { getExprProperties as default, filterClassNameObject, 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
 
@@ -26,6 +26,7 @@ function handleAction(e, action, props, data) {
26
26
  action.actionType = 'ajax';
27
27
  var api = normalizeApi(action.api);
28
28
  api.responseType = 'blob';
29
+ api.downloadFileName = action.downloadFileName;
29
30
  action.api = api;
30
31
  }
31
32
  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
 
@@ -14,6 +14,7 @@ import isNaN from 'lodash/isNaN';
14
14
  import isNumber from 'lodash/isNumber';
15
15
  import isString from 'lodash/isString';
16
16
  import qs from 'qs';
17
+ import { compile } from 'path-to-regexp';
17
18
  import { evalExpression } from './tpl.js';
18
19
  import { autobindMethod } from './autobind.js';
19
20
  import 'amis-formula';
@@ -905,6 +906,15 @@ function getTreeParent(tree, value) {
905
906
  var ancestors = getTreeAncestors(tree, value);
906
907
  return (ancestors === null || ancestors === void 0 ? void 0 : ancestors.length) ? ancestors[ancestors.length - 1] : null;
907
908
  }
909
+ function countTree(tree, iterator) {
910
+ var count = 0;
911
+ eachTree(tree, function (item, key, level, paths) {
912
+ if (!iterator || iterator(item, key, level, paths)) {
913
+ count++;
914
+ }
915
+ });
916
+ return count;
917
+ }
908
918
  function ucFirst(str) {
909
919
  return typeof str === 'string'
910
920
  ? str.substring(0, 1).toUpperCase() + str.substring(1)
@@ -1065,7 +1075,7 @@ function chainEvents(props, schema) {
1065
1075
  });
1066
1076
  return ret;
1067
1077
  }
1068
- function mapObject(value, fn, skipFn) {
1078
+ function mapObject(value, valueMapper, skipFn, keyMapper) {
1069
1079
  // 如果value值满足skipFn条件则不做map操作
1070
1080
  skipFn =
1071
1081
  skipFn && typeof skipFn === 'function'
@@ -1077,20 +1087,21 @@ function mapObject(value, fn, skipFn) {
1077
1087
  }
1078
1088
  return false;
1079
1089
  };
1080
- if (!!skipFn(value)) {
1090
+ if (skipFn(value)) {
1081
1091
  return value;
1082
1092
  }
1083
1093
  if (Array.isArray(value)) {
1084
- return value.map(function (item) { return mapObject(item, fn); });
1094
+ return value.map(function (item) { return mapObject(item, valueMapper, skipFn, keyMapper); });
1085
1095
  }
1086
1096
  if (isObject(value)) {
1087
- var tmpValue_1 = __assign({}, value);
1088
- Object.keys(tmpValue_1).forEach(function (key) {
1089
- tmpValue_1[key] = mapObject(tmpValue_1[key], fn);
1097
+ var tmpValue_1 = {};
1098
+ Object.keys(value).forEach(function (key) {
1099
+ var newKey = keyMapper ? keyMapper(key) : key;
1100
+ tmpValue_1[newKey] = mapObject(value[key], valueMapper, skipFn, keyMapper);
1090
1101
  });
1091
1102
  return tmpValue_1;
1092
1103
  }
1093
- return fn(value);
1104
+ return valueMapper(value);
1094
1105
  }
1095
1106
  function loadScript(src) {
1096
1107
  return new Promise(function (ok, fail) {
@@ -1215,7 +1226,7 @@ function getScrollbarWidth() {
1215
1226
  // 后续改用 FormulaExec['formula']
1216
1227
  function resolveValueByName(data, name, canAccessSuper) {
1217
1228
  return isPureVariable(name)
1218
- ? resolveVariableAndFilter(name, data)
1229
+ ? resolveVariableAndFilter(name, data, '|raw')
1219
1230
  : resolveVariable(name, data, canAccessSuper);
1220
1231
  }
1221
1232
  // 统一的获取 value 值方法
@@ -1418,16 +1429,43 @@ function isNumeric(value) {
1418
1429
  }
1419
1430
  return /^[-+]?(?:\d*[.])?\d+$/.test(value);
1420
1431
  }
1432
+ /**
1433
+ * 解析Query字符串中的原始类型,目前仅支持转化布尔类型
1434
+ *
1435
+ * @param query 查询字符串
1436
+ * @returns 解析后的查询字符串
1437
+ */
1438
+ function parsePrimitiveQueryString(rawQuery) {
1439
+ if (!isPlainObject(rawQuery)) {
1440
+ return rawQuery;
1441
+ }
1442
+ var query = JSONValueMap(rawQuery, function (value) {
1443
+ /** 解析布尔类型,后续有需要在这里扩充 */
1444
+ if (value === 'true' || value === 'false') {
1445
+ return value === 'true';
1446
+ }
1447
+ return value;
1448
+ });
1449
+ return query;
1450
+ }
1421
1451
  /**
1422
1452
  * 获取URL链接中的query参数(包含hash mode)
1423
1453
  *
1424
1454
  * @param location Location对象,或者类Location结构的对象
1455
+ * @param {Object} options 配置项
1456
+ * @param {Boolean} options.parsePrimitive 是否将query的值解析为原始类型,目前仅支持转化布尔类型
1425
1457
  */
1426
- function parseQuery(location) {
1458
+ function parseQuery(location, options) {
1427
1459
  var _a;
1460
+ var _b = (options || {}).parsePrimitive, parsePrimitive = _b === void 0 ? false : _b;
1428
1461
  var query = (location && !(location instanceof Location) && (location === null || location === void 0 ? void 0 : location.query)) ||
1429
1462
  (location && (location === null || location === void 0 ? void 0 : location.search) && qsparse(location.search.substring(1))) ||
1430
1463
  (window.location.search && qsparse(window.location.search.substring(1)));
1464
+ var normalizedQuery = isPlainObject(query)
1465
+ ? parsePrimitive
1466
+ ? parsePrimitiveQueryString(query)
1467
+ : query
1468
+ : {};
1431
1469
  /* 处理hash中的query */
1432
1470
  var hash = (_a = window.location) === null || _a === void 0 ? void 0 : _a.hash;
1433
1471
  var hashQuery = {};
@@ -1435,7 +1473,6 @@ function parseQuery(location) {
1435
1473
  if (typeof hash === 'string' && ~(idx = hash.indexOf('?'))) {
1436
1474
  hashQuery = qsparse(hash.substring(idx + 1));
1437
1475
  }
1438
- var normalizedQuery = isPlainObject(query) ? query : {};
1439
1476
  return merge(normalizedQuery, hashQuery);
1440
1477
  }
1441
1478
  /**
@@ -1538,5 +1575,15 @@ function evalTrackExpression(expression, data) {
1538
1575
  })
1539
1576
  .join('');
1540
1577
  }
1578
+ // 很奇怪的问题,react-json-view import 有些情况下 mod.default 才是 esModule
1579
+ function importLazyComponent(mod) {
1580
+ return mod.default.__esModule ? mod.default : mod;
1581
+ }
1582
+ function replaceUrlParams(path, params) {
1583
+ if (typeof path === 'string' && /\:\w+/.test(path)) {
1584
+ return compile(path)(params);
1585
+ }
1586
+ return path;
1587
+ }
1541
1588
 
1542
- export { JSONTraverse, JSONValueMap, SkipOperation, ValidateError, __uri, anyChanged, autobind, buildTrackExpression, bulkBindFunctions, camel, chainEvents, chainFunctions, changedEffect, convertArrayValueToMoment, detectPropValueChanged, difference, differenceFromAll, eachTree, evalTrackExpression, everyTree, filterTree, findIndex, findObjectsWithKey, findTree, findTreeAll, findTreeIndex, flattenTree, flattenTreeWithLeafNodes, getLevelFromClassName, getPropValue, getRange, getScrollParent, getScrollbarWidth, getTree, getTreeAncestors, getTreeDepth, getTreeParent, getWidthRate, guid, hasAbility, hasFile, hasOwnPropertyInPath, hasVisibleExpression, hashCode, immutableExtends, injectPropsToObject, isArrayChildrenModified, isBreakpoint, isClickOnInput, isDisabled, isEmpty, isMobile, isNumeric, isObjectShallowModified, isSuperDataModified, isUnfolded, isVisible, lcFirst, loadScript, loadStyle, makeColumnClassBuild, makeHorizontalDeeper, mapObject, mapTree, noop, normalizeNodePath, object2formData, omitControls, padArr, parseQuery, pickEventsProps, preventDefault, promisify, qsparse, qsstringify, range, removeHTMLTag, repeatCount, rmUndefined, someTree, sortArray, spliceTree, syncDataFromSuper, ucFirst, until, uuid, uuidv4, visibilityFilter };
1589
+ export { JSONTraverse, JSONValueMap, SkipOperation, ValidateError, __uri, anyChanged, autobind, buildTrackExpression, bulkBindFunctions, camel, chainEvents, chainFunctions, changedEffect, convertArrayValueToMoment, countTree, detectPropValueChanged, difference, differenceFromAll, eachTree, evalTrackExpression, everyTree, filterTree, findIndex, findObjectsWithKey, findTree, findTreeAll, findTreeIndex, flattenTree, flattenTreeWithLeafNodes, getLevelFromClassName, getPropValue, getRange, getScrollParent, getScrollbarWidth, getTree, getTreeAncestors, getTreeDepth, getTreeParent, getWidthRate, guid, hasAbility, hasFile, hasOwnPropertyInPath, hasVisibleExpression, hashCode, immutableExtends, importLazyComponent, injectPropsToObject, isArrayChildrenModified, isBreakpoint, isClickOnInput, isDisabled, isEmpty, isMobile, isNumeric, isObjectShallowModified, isSuperDataModified, isUnfolded, isVisible, lcFirst, loadScript, loadStyle, makeColumnClassBuild, makeHorizontalDeeper, mapObject, mapTree, noop, normalizeNodePath, object2formData, omitControls, padArr, parsePrimitiveQueryString, parseQuery, pickEventsProps, preventDefault, promisify, qsparse, qsstringify, range, removeHTMLTag, repeatCount, replaceUrlParams, rmUndefined, someTree, sortArray, spliceTree, syncDataFromSuper, ucFirst, until, uuid, uuidv4, visibilityFilter };
@@ -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/esm/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/esm/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
 
@@ -14,13 +14,18 @@ function replaceText(schema, replaceText, replaceTextIgnoreKeys) {
14
14
  var replicaSchema = cloneDeep(schema);
15
15
  var replaceKeys_1 = Object.keys(replaceText);
16
16
  replaceKeys_1.sort(function (a, b) { return b.length - a.length; }); // 避免用户将短的放前面
17
- var IgnoreKeys_1 = new Set(replaceTextIgnoreKeys || []);
17
+ var IgnoreKeys_1 = new Set(Array.isArray(replaceTextIgnoreKeys) ? replaceTextIgnoreKeys : []);
18
+ var ignore_1 = typeof replaceTextIgnoreKeys === 'function'
19
+ ? replaceTextIgnoreKeys
20
+ : function (key) {
21
+ return IgnoreKeys_1.has(key);
22
+ };
18
23
  JSONTraverse(replicaSchema, function (value, key, object) {
19
24
  var e_1, _a;
20
25
  var descriptor = Object.getOwnPropertyDescriptor(object, key);
21
26
  if (typeof value === 'string' &&
22
- !IgnoreKeys_1.has(key) &&
23
- (descriptor === null || descriptor === void 0 ? void 0 : descriptor.writable)) {
27
+ (descriptor === null || descriptor === void 0 ? void 0 : descriptor.writable) &&
28
+ !ignore_1(key, value, object)) {
24
29
  try {
25
30
  for (var replaceKeys_2 = __values(replaceKeys_1), replaceKeys_2_1 = replaceKeys_2.next(); !replaceKeys_2_1.done; replaceKeys_2_1 = replaceKeys_2.next()) {
26
31
  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
 
@@ -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
 
@@ -9,6 +9,7 @@ import cloneDeep from 'lodash/cloneDeep';
9
9
  import isObject from 'lodash/isObject';
10
10
  import map from 'lodash/map';
11
11
  import isEmpty from 'lodash/isEmpty';
12
+ import kebabCase from 'lodash/kebabCase';
12
13
 
13
14
  var valueMap = {
14
15
  'marginTop': 'margin-top',
@@ -50,7 +51,7 @@ function findOrCreateStyle(id, doc) {
50
51
  return varStyleTag;
51
52
  }
52
53
  function insertStyle(style, id, doc) {
53
- var varStyleTag = findOrCreateStyle(id, doc);
54
+ var varStyleTag = findOrCreateStyle('amis-' + id, doc);
54
55
  // bca-disable-line
55
56
  varStyleTag.innerHTML = style;
56
57
  if (!style) {
@@ -150,7 +151,7 @@ function formatStyle(themeCss, classNames, id, defaultData) {
150
151
  var styles = [];
151
152
  var fn = function (key, value) {
152
153
  key = valueMap[key] || key;
153
- styles.push("".concat(key, ": ").concat(value, ";"));
154
+ styles.push("".concat(kebabCase(key), ": ").concat(value, ";"));
154
155
  };
155
156
  Object.keys(statusMap[status]).forEach(function (key) {
156
157
  if (key !== '$$id') {
@@ -307,7 +308,7 @@ function insertEditCustomStyle(customStyle, id, doc) {
307
308
  * 移除自定义样式
308
309
  */
309
310
  function removeCustomStyle(type, id, doc) {
310
- var style = (doc || document).getElementById((type ? type + '-' : '') + id.replace('u:', ''));
311
+ var style = (doc || document).getElementById('amis-' + (type ? type + '-' : '') + id.replace('u:', ''));
311
312
  if (style) {
312
313
  style.remove();
313
314
  }
@@ -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