amis-core 3.1.1 → 3.3.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 (313) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +3 -3
  4. package/esm/SchemaRenderer.js +6 -2
  5. package/esm/Scoped.d.ts +4 -1
  6. package/esm/Scoped.js +9 -5
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/WithRootStore.d.ts +4 -24
  9. package/esm/WithRootStore.js +12 -4
  10. package/esm/WithStore.js +23 -16
  11. package/esm/actions/Action.d.ts +1 -0
  12. package/esm/actions/Action.js +70 -45
  13. package/esm/actions/AjaxAction.d.ts +6 -8
  14. package/esm/actions/AjaxAction.js +20 -18
  15. package/esm/actions/BreakAction.js +1 -1
  16. package/esm/actions/BroadcastAction.js +1 -1
  17. package/esm/actions/CmptAction.d.ts +1 -2
  18. package/esm/actions/CmptAction.js +47 -32
  19. package/esm/actions/ContinueAction.js +1 -1
  20. package/esm/actions/CopyAction.js +1 -1
  21. package/esm/actions/CustomAction.js +3 -2
  22. package/esm/actions/DialogAction.d.ts +2 -0
  23. package/esm/actions/DialogAction.js +39 -23
  24. package/esm/actions/DrawerAction.js +4 -4
  25. package/esm/actions/EmailAction.js +1 -1
  26. package/esm/actions/LinkAction.js +1 -1
  27. package/esm/actions/LoopAction.js +1 -1
  28. package/esm/actions/PageAction.js +1 -1
  29. package/esm/actions/ParallelAction.js +1 -1
  30. package/esm/actions/StatusAction.d.ts +15 -0
  31. package/esm/actions/StatusAction.js +49 -0
  32. package/esm/actions/SwitchAction.js +1 -1
  33. package/esm/actions/ToastAction.js +1 -1
  34. package/esm/actions/index.d.ts +1 -0
  35. package/esm/components/CustomStyle.js +1 -1
  36. package/esm/components/LazyComponent.js +1 -1
  37. package/esm/components/Overlay.js +3 -2
  38. package/esm/components/PopOver.js +3 -2
  39. package/esm/env.js +1 -1
  40. package/esm/envOverwrite.js +1 -1
  41. package/esm/factory.js +2 -2
  42. package/esm/index.d.ts +3 -1
  43. package/esm/index.js +16 -14
  44. package/esm/locale.js +1 -1
  45. package/esm/polyfills.d.ts +3 -0
  46. package/esm/polyfills.js +18 -0
  47. package/esm/renderers/Form.d.ts +7 -7
  48. package/esm/renderers/Form.js +182 -128
  49. package/esm/renderers/Item.d.ts +82 -77
  50. package/esm/renderers/Item.js +90 -74
  51. package/esm/renderers/Options.js +1 -2
  52. package/esm/renderers/Placeholder.js +1 -1
  53. package/esm/renderers/builtin.js +1 -1
  54. package/esm/renderers/register.js +1 -1
  55. package/esm/renderers/wrapControl.d.ts +4 -24
  56. package/esm/renderers/wrapControl.js +140 -88
  57. package/esm/store/app.js +42 -4
  58. package/esm/store/combo.d.ts +564 -1892
  59. package/esm/store/combo.js +9 -2
  60. package/esm/store/crud.d.ts +4 -2
  61. package/esm/store/crud.js +17 -4
  62. package/esm/store/form.d.ts +182 -882
  63. package/esm/store/form.js +83 -81
  64. package/esm/store/formItem.d.ts +6 -2
  65. package/esm/store/formItem.js +19 -3
  66. package/esm/store/iRenderer.js +3 -2
  67. package/esm/store/index.js +1 -1
  68. package/esm/store/list.d.ts +1 -0
  69. package/esm/store/list.js +8 -2
  70. package/esm/store/manager.js +1 -1
  71. package/esm/store/modal.js +1 -1
  72. package/esm/store/node.js +1 -1
  73. package/esm/store/pagination.js +1 -1
  74. package/esm/store/root.js +3 -2
  75. package/esm/store/service.js +17 -12
  76. package/esm/store/status.js +1 -1
  77. package/esm/store/table.d.ts +604 -2020
  78. package/esm/store/table.js +86 -56
  79. package/esm/store/table2.d.ts +49 -0
  80. package/esm/store/table2.js +37 -4
  81. package/esm/theme.js +1 -1
  82. package/esm/types.d.ts +22 -5
  83. package/esm/utils/Animation.js +1 -1
  84. package/esm/utils/ColorScale.js +1 -1
  85. package/esm/utils/DataSchema.d.ts +3 -2
  86. package/esm/utils/DataSchema.js +27 -7
  87. package/esm/utils/DataScope.d.ts +10 -3
  88. package/esm/utils/DataScope.js +50 -12
  89. package/esm/utils/RootClose.js +1 -1
  90. package/esm/utils/SimpleMap.js +1 -1
  91. package/esm/utils/api.d.ts +2 -2
  92. package/esm/utils/api.js +152 -112
  93. package/esm/utils/arraySlice.d.ts +1 -0
  94. package/esm/utils/arraySlice.js +76 -0
  95. package/esm/utils/attachmentAdpator.js +1 -1
  96. package/esm/utils/autobind.js +1 -1
  97. package/esm/utils/columnsSplit.js +1 -1
  98. package/esm/utils/dataMapping.js +29 -19
  99. package/esm/utils/date.js +1 -1
  100. package/esm/utils/debug.d.ts +2 -0
  101. package/esm/utils/debug.js +34 -7
  102. package/esm/utils/decodeEntity.js +1 -1
  103. package/esm/utils/dom.js +4 -1
  104. package/esm/utils/errors.js +1 -1
  105. package/esm/utils/escapeHtml.js +1 -1
  106. package/esm/utils/filter-schema.js +1 -1
  107. package/esm/utils/filter.js +1 -1
  108. package/esm/utils/formatDuration.js +1 -1
  109. package/esm/utils/formula.d.ts +0 -1
  110. package/esm/utils/formula.js +6 -9
  111. package/esm/utils/getVariable.js +1 -1
  112. package/esm/utils/grammar.js +1 -1
  113. package/esm/utils/handleAction.js +1 -1
  114. package/esm/utils/helper.d.ts +19 -2
  115. package/esm/utils/helper.js +69 -10
  116. package/esm/utils/highlight.js +1 -1
  117. package/esm/utils/icon.d.ts +4 -2
  118. package/esm/utils/icon.js +3 -2
  119. package/esm/utils/image.js +1 -1
  120. package/esm/utils/index.d.ts +2 -0
  121. package/esm/utils/isPureVariable.js +1 -1
  122. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  123. package/esm/utils/keyToPath.js +1 -1
  124. package/esm/utils/makeSorter.js +1 -1
  125. package/esm/utils/math.d.ts +3 -0
  126. package/esm/utils/math.js +52 -0
  127. package/esm/utils/memoryParse.js +1 -1
  128. package/esm/utils/normalizeLink.js +18 -9
  129. package/esm/utils/normalizeOptions.js +1 -1
  130. package/esm/utils/object.d.ts +7 -0
  131. package/esm/utils/object.js +13 -2
  132. package/esm/utils/offset.js +1 -1
  133. package/esm/utils/offsetParent.js +1 -1
  134. package/esm/utils/optionValueCompare.js +2 -2
  135. package/esm/utils/position.js +1 -1
  136. package/esm/utils/prettyBytes.js +1 -1
  137. package/esm/utils/renderer-event.d.ts +1 -1
  138. package/esm/utils/renderer-event.js +14 -6
  139. package/esm/utils/replaceText.js +1 -1
  140. package/esm/utils/resize-sensor.js +1 -1
  141. package/esm/utils/resolveCondition.js +1 -1
  142. package/esm/utils/resolveVariable.js +1 -1
  143. package/esm/utils/resolveVariableAndFilter.js +1 -1
  144. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  145. package/esm/utils/scrollPosition.js +1 -1
  146. package/esm/utils/string2regExp.js +1 -1
  147. package/esm/utils/stripNumber.js +1 -1
  148. package/esm/utils/style-helper.js +1 -1
  149. package/esm/utils/style.js +1 -1
  150. package/esm/utils/toNumber.js +1 -1
  151. package/esm/utils/tokenize.js +1 -1
  152. package/esm/utils/tpl-builtin.js +1 -1
  153. package/esm/utils/tpl-lodash.js +1 -1
  154. package/esm/utils/tpl.js +1 -1
  155. package/esm/utils/uncontrollable.js +1 -1
  156. package/esm/utils/validations.js +1 -1
  157. package/lib/Root.js +10 -7
  158. package/lib/RootRenderer.d.ts +1 -1
  159. package/lib/RootRenderer.js +11 -8
  160. package/lib/SchemaRenderer.js +13 -6
  161. package/lib/Scoped.d.ts +4 -1
  162. package/lib/Scoped.js +19 -13
  163. package/lib/StatusScoped.js +5 -2
  164. package/lib/WithRootStore.d.ts +4 -24
  165. package/lib/WithRootStore.js +15 -4
  166. package/lib/WithStore.js +27 -17
  167. package/lib/actions/Action.d.ts +1 -0
  168. package/lib/actions/Action.js +70 -45
  169. package/lib/actions/AjaxAction.d.ts +6 -8
  170. package/lib/actions/AjaxAction.js +20 -18
  171. package/lib/actions/BreakAction.js +1 -1
  172. package/lib/actions/BroadcastAction.js +1 -1
  173. package/lib/actions/CmptAction.d.ts +1 -2
  174. package/lib/actions/CmptAction.js +47 -32
  175. package/lib/actions/ContinueAction.js +1 -1
  176. package/lib/actions/CopyAction.js +1 -1
  177. package/lib/actions/CustomAction.js +9 -5
  178. package/lib/actions/DialogAction.d.ts +2 -0
  179. package/lib/actions/DialogAction.js +39 -23
  180. package/lib/actions/DrawerAction.js +4 -4
  181. package/lib/actions/EmailAction.js +1 -1
  182. package/lib/actions/LinkAction.js +1 -1
  183. package/lib/actions/LoopAction.js +1 -1
  184. package/lib/actions/PageAction.js +1 -1
  185. package/lib/actions/ParallelAction.js +1 -1
  186. package/lib/actions/StatusAction.d.ts +15 -0
  187. package/lib/actions/StatusAction.js +53 -0
  188. package/lib/actions/SwitchAction.js +1 -1
  189. package/lib/actions/ToastAction.js +1 -1
  190. package/lib/actions/index.d.ts +1 -0
  191. package/lib/components/CustomStyle.js +1 -1
  192. package/lib/components/LazyComponent.js +12 -14
  193. package/lib/components/Overlay.js +15 -14
  194. package/lib/components/PopOver.js +12 -10
  195. package/lib/env.js +4 -1
  196. package/lib/envOverwrite.js +1 -1
  197. package/lib/factory.js +11 -9
  198. package/lib/index.d.ts +3 -1
  199. package/lib/index.js +26 -19
  200. package/lib/locale.js +6 -3
  201. package/lib/polyfills.d.ts +3 -0
  202. package/lib/polyfills.js +20 -0
  203. package/lib/renderers/Form.d.ts +7 -7
  204. package/lib/renderers/Form.js +194 -135
  205. package/lib/renderers/Item.d.ts +82 -77
  206. package/lib/renderers/Item.js +126 -104
  207. package/lib/renderers/Options.js +10 -5
  208. package/lib/renderers/Placeholder.js +1 -1
  209. package/lib/renderers/builtin.js +1 -1
  210. package/lib/renderers/register.js +1 -1
  211. package/lib/renderers/wrapControl.d.ts +4 -24
  212. package/lib/renderers/wrapControl.js +143 -88
  213. package/lib/store/app.js +44 -3
  214. package/lib/store/combo.d.ts +564 -1892
  215. package/lib/store/combo.js +9 -2
  216. package/lib/store/crud.d.ts +4 -2
  217. package/lib/store/crud.js +17 -4
  218. package/lib/store/form.d.ts +182 -882
  219. package/lib/store/form.js +81 -79
  220. package/lib/store/formItem.d.ts +6 -2
  221. package/lib/store/formItem.js +19 -3
  222. package/lib/store/iRenderer.js +9 -5
  223. package/lib/store/index.js +1 -1
  224. package/lib/store/list.d.ts +1 -0
  225. package/lib/store/list.js +8 -2
  226. package/lib/store/manager.js +1 -1
  227. package/lib/store/modal.js +1 -1
  228. package/lib/store/node.js +1 -1
  229. package/lib/store/pagination.js +1 -1
  230. package/lib/store/root.js +9 -5
  231. package/lib/store/service.js +17 -12
  232. package/lib/store/status.js +1 -1
  233. package/lib/store/table.d.ts +604 -2020
  234. package/lib/store/table.js +85 -55
  235. package/lib/store/table2.d.ts +49 -0
  236. package/lib/store/table2.js +36 -3
  237. package/lib/theme.js +6 -3
  238. package/lib/types.d.ts +22 -5
  239. package/lib/utils/Animation.js +1 -1
  240. package/lib/utils/ColorScale.js +1 -1
  241. package/lib/utils/DataSchema.d.ts +3 -2
  242. package/lib/utils/DataSchema.js +27 -7
  243. package/lib/utils/DataScope.d.ts +10 -3
  244. package/lib/utils/DataScope.js +50 -11
  245. package/lib/utils/RootClose.js +1 -1
  246. package/lib/utils/SimpleMap.js +1 -1
  247. package/lib/utils/api.d.ts +2 -2
  248. package/lib/utils/api.js +151 -111
  249. package/lib/utils/arraySlice.d.ts +1 -0
  250. package/lib/utils/arraySlice.js +80 -0
  251. package/lib/utils/attachmentAdpator.js +1 -1
  252. package/lib/utils/autobind.js +1 -1
  253. package/lib/utils/columnsSplit.js +8 -6
  254. package/lib/utils/dataMapping.js +29 -19
  255. package/lib/utils/date.js +1 -1
  256. package/lib/utils/debug.d.ts +2 -0
  257. package/lib/utils/debug.js +61 -33
  258. package/lib/utils/decodeEntity.js +1 -1
  259. package/lib/utils/dom.js +10 -5
  260. package/lib/utils/errors.js +1 -1
  261. package/lib/utils/escapeHtml.js +1 -1
  262. package/lib/utils/filter-schema.js +1 -1
  263. package/lib/utils/filter.js +1 -1
  264. package/lib/utils/formatDuration.js +1 -1
  265. package/lib/utils/formula.d.ts +0 -1
  266. package/lib/utils/formula.js +6 -10
  267. package/lib/utils/getVariable.js +1 -1
  268. package/lib/utils/grammar.js +1 -1
  269. package/lib/utils/handleAction.js +1 -1
  270. package/lib/utils/helper.d.ts +19 -2
  271. package/lib/utils/helper.js +70 -9
  272. package/lib/utils/highlight.js +8 -9
  273. package/lib/utils/icon.d.ts +4 -2
  274. package/lib/utils/icon.js +12 -10
  275. package/lib/utils/image.js +1 -1
  276. package/lib/utils/index.d.ts +2 -0
  277. package/lib/utils/isPureVariable.js +1 -1
  278. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  279. package/lib/utils/keyToPath.js +1 -1
  280. package/lib/utils/makeSorter.js +1 -1
  281. package/lib/utils/math.d.ts +3 -0
  282. package/lib/utils/math.js +58 -0
  283. package/lib/utils/memoryParse.js +1 -1
  284. package/lib/utils/normalizeLink.js +18 -9
  285. package/lib/utils/normalizeOptions.js +1 -1
  286. package/lib/utils/object.d.ts +7 -0
  287. package/lib/utils/object.js +13 -1
  288. package/lib/utils/offset.js +1 -1
  289. package/lib/utils/offsetParent.js +1 -1
  290. package/lib/utils/optionValueCompare.js +7 -3
  291. package/lib/utils/position.js +1 -1
  292. package/lib/utils/prettyBytes.js +1 -1
  293. package/lib/utils/renderer-event.d.ts +1 -1
  294. package/lib/utils/renderer-event.js +13 -5
  295. package/lib/utils/replaceText.js +1 -1
  296. package/lib/utils/resize-sensor.js +1 -1
  297. package/lib/utils/resolveCondition.js +1 -1
  298. package/lib/utils/resolveVariable.js +1 -1
  299. package/lib/utils/resolveVariableAndFilter.js +1 -1
  300. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  301. package/lib/utils/scrollPosition.js +1 -1
  302. package/lib/utils/string2regExp.js +1 -1
  303. package/lib/utils/stripNumber.js +1 -1
  304. package/lib/utils/style-helper.js +1 -1
  305. package/lib/utils/style.js +1 -1
  306. package/lib/utils/toNumber.js +1 -1
  307. package/lib/utils/tokenize.js +1 -1
  308. package/lib/utils/tpl-builtin.js +1 -1
  309. package/lib/utils/tpl-lodash.js +1 -1
  310. package/lib/utils/tpl.js +1 -1
  311. package/lib/utils/uncontrollable.js +1 -1
  312. package/lib/utils/validations.js +1 -1
  313. package/package.json +9 -4
@@ -0,0 +1,52 @@
1
+ /**
2
+ * amis-core v3.3.0
3
+ * Copyright 2018-2023 fex
4
+ */
5
+
6
+ function safeAdd(arg1, arg2) {
7
+ var digits1, digits2, maxDigits;
8
+ try {
9
+ digits1 = arg1.toString().split('.')[1].length;
10
+ }
11
+ catch (e) {
12
+ digits1 = 0;
13
+ }
14
+ try {
15
+ digits2 = arg2.toString().split('.')[1].length;
16
+ }
17
+ catch (e) {
18
+ digits2 = 0;
19
+ }
20
+ maxDigits = Math.pow(10, Math.max(digits1, digits2));
21
+ return (arg1 * maxDigits + arg2 * maxDigits) / maxDigits;
22
+ }
23
+ //减
24
+ function safeSub(arg1, arg2) {
25
+ var digits1, digits2, maxDigits;
26
+ try {
27
+ digits1 = arg1.toString().split('.')[1].length;
28
+ }
29
+ catch (e) {
30
+ digits1 = 0;
31
+ }
32
+ try {
33
+ digits2 = arg2.toString().split('.')[1].length;
34
+ }
35
+ catch (e) {
36
+ digits2 = 0;
37
+ }
38
+ maxDigits = Math.pow(10, Math.max(digits1, digits2));
39
+ return (arg1 * maxDigits - arg2 * maxDigits) / maxDigits;
40
+ }
41
+ function numberFormatter(num, precision) {
42
+ if (precision === void 0) { precision = 0; }
43
+ var ZERO = 0;
44
+ var number = +num;
45
+ if (typeof number === 'number' && !isNaN(number)) {
46
+ var regexp = precision ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(\d{3})+$)/g;
47
+ return number.toFixed(precision).replace(regexp, '$1,');
48
+ }
49
+ return ZERO.toFixed(precision);
50
+ }
51
+
52
+ export { numberFormatter, safeAdd, safeSub };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -14,13 +14,21 @@ var normalizeLink = function (to, location) {
14
14
  }
15
15
  var idx = to.indexOf('?');
16
16
  var idx2 = to.indexOf('#');
17
- var pathname = ~idx
18
- ? to.substring(0, idx)
19
- : ~idx2
20
- ? to.substring(0, idx2)
21
- : to;
22
- var search = ~idx ? to.substring(idx, ~idx2 ? idx2 : undefined) : '';
23
- var hash = ~idx2 ? to.substring(idx2) : location.hash;
17
+ var pathname = to;
18
+ var search = '';
19
+ var hash = location.hash;
20
+ // host?a=a#b 的情况
21
+ if (idx < idx2) {
22
+ pathname = ~idx ? to.substring(0, idx) : ~idx2 ? to.substring(0, idx2) : to;
23
+ hash = ~idx2 ? to.substring(idx2) : location.hash;
24
+ search = ~idx ? to.substring(idx, ~idx2 ? idx2 : undefined) : '';
25
+ }
26
+ // host#b?a=a 的情况
27
+ else if (idx > idx2) {
28
+ pathname = ~idx2 ? to.substring(0, idx2) : ~idx ? to.substring(0, idx) : to;
29
+ hash = ~idx2 ? to.substring(idx2, ~idx ? idx : undefined) : location.hash;
30
+ search = ~idx ? to.substring(idx) : '';
31
+ }
24
32
  if (!pathname) {
25
33
  pathname = location.pathname;
26
34
  }
@@ -37,7 +45,8 @@ var normalizeLink = function (to, location) {
37
45
  }
38
46
  pathname = paths.concat(pathname).join('/');
39
47
  }
40
- return pathname + search + hash;
48
+ var rest = idx < idx2 ? search + hash : hash + search;
49
+ return pathname + rest;
41
50
  };
42
51
 
43
52
  export { normalizeLink };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -5,6 +5,13 @@ export declare function createObject(superProps?: {
5
5
  }, properties?: any): object;
6
6
  export declare function extractObjectChain(value: any): object[];
7
7
  export declare function createObjectFromChain(chain: Array<object>): object;
8
+ /**
9
+ * 向最近一层插入新链
10
+ * @param obj
11
+ * @param value
12
+ * @returns
13
+ */
14
+ export declare function injectObjectChain(obj: any, value: any): object;
8
15
  export declare function cloneObject(target: any, persistOwnProps?: boolean): any;
9
16
  export declare function extendObject(target: any, src?: any, persistOwnProps?: boolean): any;
10
17
  export declare function isObject(obj: any): any;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -50,6 +50,17 @@ function createObjectFromChain(chain) {
50
50
  }), value);
51
51
  });
52
52
  }
53
+ /**
54
+ * 向最近一层插入新链
55
+ * @param obj
56
+ * @param value
57
+ * @returns
58
+ */
59
+ function injectObjectChain(obj, value) {
60
+ var chain = extractObjectChain(obj);
61
+ chain.splice(chain.length - 1, 0, value);
62
+ return createObjectFromChain(chain);
63
+ }
53
64
  function cloneObject(target, persistOwnProps) {
54
65
  if (persistOwnProps === void 0) { persistOwnProps = true; }
55
66
  var obj = target && target.__super
@@ -164,4 +175,4 @@ function pickValues(names, data) {
164
175
  return ret;
165
176
  }
166
177
 
167
- export { cloneObject, createObject, createObjectFromChain, deleteVariable, extendObject, extractObjectChain, isObject, pickValues, setVariable };
178
+ export { cloneObject, createObject, createObjectFromChain, deleteVariable, extendObject, extractObjectChain, injectObjectChain, isObject, pickValues, setVariable };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,10 +1,10 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
6
6
  import './helper.js';
7
- import { isEqual } from 'lodash';
7
+ import isEqual from 'lodash/isEqual';
8
8
  import { isObject } from './object.js';
9
9
 
10
10
  function matchOptionValue(a, b, valueField) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -48,7 +48,7 @@ export interface RendererEventContext {
48
48
  [propName: string]: any;
49
49
  }
50
50
  export declare function createRendererEvent<T extends RendererEventContext>(type: string, context: T): RendererEvent<T>;
51
- export declare const bindEvent: (renderer: any) => (() => void) | undefined;
51
+ export declare const bindEvent: (renderer: any) => ((eventName?: string) => void) | undefined;
52
52
  export declare function dispatchEvent(e: string | React.MouseEvent<any>, renderer: React.Component<RendererProps>, scoped: IScopedContext, data: any, broadcast?: RendererEvent<any>): Promise<RendererEvent<any> | void>;
53
53
  export declare const getRendererEventListeners: () => RendererEventListener[];
54
54
  /**
@@ -1,18 +1,18 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
6
6
  import { __values, __awaiter, __generator, __assign } from 'tslib';
7
7
  import { runActions } from '../actions/Action.js';
8
- import { createObject } from './object.js';
8
+ import { extendObject, createObject } from './object.js';
9
9
  import debounce from 'lodash/debounce';
10
10
 
11
11
  var rendererEventListeners = [];
12
12
  // 创建渲染器事件对象
13
13
  function createRendererEvent(type, context) {
14
14
  var rendererEvent = {
15
- context: context,
15
+ context: extendObject({ pristineData: context.data }, context),
16
16
  type: type,
17
17
  prevented: false,
18
18
  stoped: false,
@@ -25,6 +25,9 @@ function createRendererEvent(type, context) {
25
25
  get data() {
26
26
  return rendererEvent.context.data;
27
27
  },
28
+ get pristineData() {
29
+ return rendererEvent.context.pristineData;
30
+ },
28
31
  setData: function (data) {
29
32
  rendererEvent.context.data = data;
30
33
  }
@@ -82,8 +85,13 @@ var bindEvent = function (renderer) {
82
85
  }
83
86
  finally { if (e_1) throw e_1.error; }
84
87
  }
85
- return function () {
86
- rendererEventListeners = rendererEventListeners.filter(function (item) { return item.renderer !== renderer; });
88
+ return function (eventName) {
89
+ // eventName用来避免过滤广播事件
90
+ rendererEventListeners = rendererEventListeners.filter(function (item) {
91
+ return item.renderer !== renderer && eventName !== undefined
92
+ ? item.type !== eventName
93
+ : true;
94
+ });
87
95
  };
88
96
  }
89
97
  return undefined;
@@ -133,7 +141,7 @@ function dispatchEvent(e, renderer, scoped, data, broadcast) {
133
141
  checkExecuted = function () {
134
142
  executedCount++;
135
143
  if (executedCount === listeners.length) {
136
- unbindEvent === null || unbindEvent === void 0 ? void 0 : unbindEvent();
144
+ unbindEvent === null || unbindEvent === void 0 ? void 0 : unbindEvent(eventName);
137
145
  }
138
146
  };
139
147
  _loop_2 = function (listener) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/esm/utils/tpl.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/Root.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -24,6 +24,9 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
24
24
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
25
  var isPlainObject__default = /*#__PURE__*/_interopDefaultLegacy(isPlainObject);
26
26
 
27
+ var __react_jsx__ = require('react');
28
+ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
29
+ (__react_jsx__["default"] || __react_jsx__).Fragment;
27
30
  var rootWrappers = [];
28
31
  function addRootWrapper(fn) {
29
32
  rootWrappers.push(fn);
@@ -47,12 +50,12 @@ var Root = /** @class */ (function (_super) {
47
50
  if (themeName === 'default') {
48
51
  themeName = 'cxd';
49
52
  }
50
- return (React__default["default"].createElement(WithRootStore.RootStoreContext.Provider, { value: rootStore },
51
- React__default["default"].createElement(theme.ThemeContext.Provider, { value: themeName },
52
- React__default["default"].createElement(locale.LocaleContext.Provider, { value: this.props.locale }, rootWrappers.reduce(function (props, wrapper) {
53
+ return (_J$X_(WithRootStore.RootStoreContext.Provider, { value: rootStore },
54
+ _J$X_(theme.ThemeContext.Provider, { value: themeName },
55
+ _J$X_(locale.LocaleContext.Provider, { value: this.props.locale }, rootWrappers.reduce(function (props, wrapper) {
53
56
  return tslib.__assign(tslib.__assign({}, props), { children: wrapper(props) });
54
57
  }, tslib.__assign(tslib.__assign({ pathPrefix: pathPrefix || '', schema: isPlainObject__default["default"](schema)
55
- ? tslib.__assign({ type: 'page' }, schema) : schema }, rest), { render: renderChild, rootStore: rootStore, resolveDefinitions: this.resolveDefinitions, location: location, data: data, env: env, classnames: theme$1.classnames, classPrefix: theme$1.classPrefix, locale: locale$1, translate: translate, children: (React__default["default"].createElement(RootRenderer.RootRenderer, tslib.__assign({ pathPrefix: pathPrefix || '', schema: isPlainObject__default["default"](schema)
58
+ ? tslib.__assign({ type: 'page' }, schema) : schema }, rest), { render: renderChild, rootStore: rootStore, resolveDefinitions: this.resolveDefinitions, location: location, data: data, env: env, classnames: theme$1.classnames, classPrefix: theme$1.classPrefix, locale: locale$1, translate: translate, children: (_J$X_(RootRenderer.RootRenderer, tslib.__assign({ pathPrefix: pathPrefix || '', schema: isPlainObject__default["default"](schema)
56
59
  ? tslib.__assign({ type: 'page' }, schema) : schema }, rest, { render: renderChild, rootStore: rootStore, resolveDefinitions: this.resolveDefinitions, location: location, data: data, context: context, env: env, classnames: theme$1.classnames, classPrefix: theme$1.classPrefix, locale: locale$1, translate: translate }))) })).children))));
57
60
  };
58
61
  tslib.__decorate([
@@ -100,9 +103,9 @@ function renderChild(prefix, node, props) {
100
103
  // 找渲染器也是在那,所以没办法在之前根据渲染器信息来包裹个组件下发 statusStore
101
104
  // 所以这里先根据 type 来处理一下
102
105
  // 等后续把状态处理再抽一层,可以把此处放到 SchemaRenderer 里面去
103
- return (React__default["default"].createElement(StatusScopedSchemaRenderer, tslib.__assign({ render: renderChild }, props, { schema: schema, propKey: schema.key, "$path": "".concat(prefix ? "".concat(prefix, "/") : '').concat((schema && schema.type) || '') })));
106
+ return (_J$X_(StatusScopedSchemaRenderer, tslib.__assign({ render: renderChild }, props, { schema: schema, propKey: schema.key, "$path": "".concat(prefix ? "".concat(prefix, "/") : '').concat((schema && schema.type) || '') })));
104
107
  }
105
- return (React__default["default"].createElement(SchemaRenderer.SchemaRenderer, tslib.__assign({ render: renderChild }, props, { schema: schema, propKey: schema.key, "$path": "".concat(prefix ? "".concat(prefix, "/") : '').concat((schema && schema.type) || '') })));
108
+ return (_J$X_(SchemaRenderer.SchemaRenderer, tslib.__assign({ render: renderChild }, props, { schema: schema, propKey: schema.key, "$path": "".concat(prefix ? "".concat(prefix, "/") : '').concat((schema && schema.type) || '') })));
106
109
  }
107
110
  var ScopedRootRenderer = StatusScoped.StatusScoped(Scoped.HocScoped(Root));
108
111
 
@@ -25,5 +25,5 @@ export declare class RootRenderer extends React.Component<RootRendererProps> {
25
25
  handleDrawerClose(): void;
26
26
  openFeedback(dialog: any, ctx: any): Promise<unknown>;
27
27
  reloadTarget(scoped: IScopedContext, target: string, data?: any): void;
28
- render(): string | number | boolean | React.JSX.Element | React.ReactFragment | null | undefined;
28
+ render(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
29
29
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -27,6 +27,9 @@ var qs__default = /*#__PURE__*/_interopDefaultLegacy(qs);
27
27
  var pick__default = /*#__PURE__*/_interopDefaultLegacy(pick);
28
28
  var mapValues__default = /*#__PURE__*/_interopDefaultLegacy(mapValues);
29
29
 
30
+ var __react_jsx__ = require('react');
31
+ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
32
+ (__react_jsx__["default"] || __react_jsx__).Fragment;
30
33
  var RootRenderer = /** @class */ (function (_super) {
31
34
  tslib.__extends(RootRenderer, _super);
32
35
  function RootRenderer(props) {
@@ -128,7 +131,7 @@ var RootRenderer = /** @class */ (function (_super) {
128
131
  }
129
132
  else if (action.actionType === 'dialog') {
130
133
  store.setCurrentAction(action);
131
- store.openDialog(ctx, undefined, undefined, delegate);
134
+ store.openDialog(ctx, undefined, action.callback, delegate || this.context);
132
135
  }
133
136
  else if (action.actionType === 'drawer') {
134
137
  store.setCurrentAction(action);
@@ -268,7 +271,7 @@ var RootRenderer = /** @class */ (function (_super) {
268
271
  });
269
272
  store.openDialog(ctx, undefined, function (confirmed) {
270
273
  resolve(confirmed);
271
- });
274
+ }, _this.context);
272
275
  });
273
276
  };
274
277
  RootRenderer.prototype.reloadTarget = function (scoped, target, data) {
@@ -282,12 +285,12 @@ var RootRenderer = /** @class */ (function (_super) {
282
285
  return render('error', {
283
286
  type: 'alert',
284
287
  level: 'danger'
285
- }, tslib.__assign(tslib.__assign({}, rest), { topStore: this.store, body: (React__default["default"].createElement(React__default["default"].Fragment, null,
286
- React__default["default"].createElement("h3", null, (_a = this.store.runtimeError) === null || _a === void 0 ? void 0 : _a.toString()),
287
- React__default["default"].createElement("pre", null,
288
- React__default["default"].createElement("code", null, this.store.runtimeErrorStack.componentStack)))) }));
288
+ }, tslib.__assign(tslib.__assign({}, rest), { topStore: this.store, body: (_J$X_(React__default["default"].Fragment, null,
289
+ _J$X_("h3", null, (_a = this.store.runtimeError) === null || _a === void 0 ? void 0 : _a.toString()),
290
+ _J$X_("pre", null,
291
+ _J$X_("code", null, this.store.runtimeErrorStack.componentStack)))) }));
289
292
  }
290
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
293
+ return (_J$X_(React__default["default"].Fragment, null,
291
294
  render(pathPrefix, schema, tslib.__assign(tslib.__assign({}, rest), { topStore: this.store, data: this.store.downStream, onAction: this.handleAction })),
292
295
  render('spinner', {
293
296
  type: 'spinner'
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.1
2
+ * amis-core v3.3.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -36,6 +36,9 @@ var difference__default = /*#__PURE__*/_interopDefaultLegacy(difference);
36
36
  var omit__default = /*#__PURE__*/_interopDefaultLegacy(omit);
37
37
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
38
38
 
39
+ var __react_jsx__ = require('react');
40
+ var _J$X_ = (__react_jsx__["default"] || __react_jsx__).createElement;
41
+ (__react_jsx__["default"] || __react_jsx__).Fragment;
39
42
  var RENDERER_TRANSMISSION_OMIT_PROPS = [
40
43
  'type',
41
44
  'name',
@@ -51,6 +54,8 @@ var RENDERER_TRANSMISSION_OMIT_PROPS = [
51
54
  'hiddenOn',
52
55
  'disabled',
53
56
  'disabledOn',
57
+ 'static',
58
+ 'staticOn',
54
59
  'component',
55
60
  'detectField',
56
61
  'defaultValue',
@@ -63,7 +68,9 @@ var RENDERER_TRANSMISSION_OMIT_PROPS = [
63
68
  'id',
64
69
  'inputOnly',
65
70
  'label',
66
- 'renderLabel'
71
+ 'renderLabel',
72
+ 'trackExpression',
73
+ 'editorSetting'
67
74
  ];
68
75
  var componentCache = new SimpleMap.SimpleMap();
69
76
  var SchemaRenderer = /** @class */ (function (_super) {
@@ -250,7 +257,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
250
257
  defaultActiveKey_1 = schema.activeKey, propKey_1 = schema.key, restSchema_1 = tslib.__rest(schema, ["data", "value", "activeKey", "key"]);
251
258
  return rest.invisible
252
259
  ? null
253
- : React__default["default"].createElement(schema.component, tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, rest), restSchema_1), exprProps), {
260
+ : _J$X_(schema.component, tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, rest), restSchema_1), exprProps), {
254
261
  // value: defaultValue, // 备注: 此处并没有将value传递给渲染器
255
262
  defaultData: defaultData_1, defaultValue: defaultValue_1, defaultActiveKey: defaultActiveKey_1, propKey: propKey_1, $path: $path, $schema: schema, ref: isSFC ? undefined : this.refFn, forwardedRef: isSFC ? this.refFn : undefined, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent }));
256
263
  }
@@ -258,7 +265,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
258
265
  return null;
259
266
  }
260
267
  else if (!this.renderer) {
261
- return rest.invisible ? null : (React__default["default"].createElement(LazyComponent["default"], tslib.__assign({}, rest, exprProps, { getComponent: function () { return tslib.__awaiter(_this, void 0, void 0, function () {
268
+ return rest.invisible ? null : (_J$X_(LazyComponent["default"], tslib.__assign({}, rest, exprProps, { getComponent: function () { return tslib.__awaiter(_this, void 0, void 0, function () {
262
269
  var result;
263
270
  return tslib.__generator(this, function (_a) {
264
271
  switch (_a.label) {
@@ -331,8 +338,8 @@ var SchemaRenderer = /** @class */ (function (_super) {
331
338
  finally { if (e_1) throw e_1.error; }
332
339
  }
333
340
  }
334
- var component = isClassComponent ? (React__default["default"].createElement(Component, tslib.__assign({}, props, { ref: this.childRef }))) : (React__default["default"].createElement(Component, tslib.__assign({}, props)));
335
- return this.props.env.enableAMISDebug ? (React__default["default"].createElement(debug.DebugWrapper, { renderer: renderer }, component)) : (component);
341
+ var component = isClassComponent ? (_J$X_(Component, tslib.__assign({}, props, { ref: this.childRef }))) : (_J$X_(Component, tslib.__assign({}, props)));
342
+ return this.props.env.enableAMISDebug ? (_J$X_(debug.DebugWrapper, { renderer: renderer }, component)) : (component);
336
343
  };
337
344
  SchemaRenderer.displayName = 'Renderer';
338
345
  SchemaRenderer.contextType = Scoped.ScopedContext;
package/lib/Scoped.d.ts CHANGED
@@ -22,6 +22,8 @@ export interface ScopedComponentType extends React.Component<RendererProps> {
22
22
  setData?: (value?: object, replace?: boolean, index?: number) => void;
23
23
  }
24
24
  export interface IScopedContext {
25
+ rendererType?: string;
26
+ component?: ScopedComponentType;
25
27
  parent?: AliasIScopedContext;
26
28
  children?: AliasIScopedContext[];
27
29
  registerComponent: (component: ScopedComponentType) => void;
@@ -33,13 +35,14 @@ export interface IScopedContext {
33
35
  send: (target: string, ctx: RendererData) => void;
34
36
  close: (target: string) => void;
35
37
  closeById: (target: string) => void;
38
+ getComponentsByRefPath: (session: string, path: string) => ScopedComponentType[];
36
39
  }
37
40
  type AliasIScopedContext = IScopedContext;
38
41
  export declare const ScopedContext: React.Context<IScopedContext>;
39
42
  export declare function HocScoped<T extends {
40
43
  $path?: string;
41
44
  env: RendererEnv;
42
- }>(ComposedComponent: React.ComponentType<T>): React.ComponentType<T & {
45
+ }>(ComposedComponent: React.ComponentType<T>, rendererType?: string): React.ComponentType<T & {
43
46
  scopeRef?: (ref: any) => void;
44
47
  }> & {
45
48
  ComposedComponent: React.ComponentType<T>;