amis-core 6.2.2 → 6.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 (327) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +28 -10
  4. package/esm/SchemaRenderer.js +15 -6
  5. package/esm/Scoped.d.ts +1 -1
  6. package/esm/Scoped.js +3 -1
  7. package/esm/StatusScoped.js +4 -2
  8. package/esm/WithRootStore.js +1 -1
  9. package/esm/WithStore.js +28 -17
  10. package/esm/actions/Action.js +2 -2
  11. package/esm/actions/AjaxAction.js +1 -1
  12. package/esm/actions/BreakAction.js +1 -1
  13. package/esm/actions/BroadcastAction.js +1 -1
  14. package/esm/actions/CmptAction.js +2 -2
  15. package/esm/actions/ContinueAction.js +1 -1
  16. package/esm/actions/CopyAction.js +1 -1
  17. package/esm/actions/CustomAction.js +2 -2
  18. package/esm/actions/DialogAction.d.ts +8 -0
  19. package/esm/actions/DialogAction.js +95 -35
  20. package/esm/actions/DrawerAction.d.ts +5 -0
  21. package/esm/actions/DrawerAction.js +66 -11
  22. package/esm/actions/EmailAction.js +1 -1
  23. package/esm/actions/EventAction.d.ts +20 -0
  24. package/esm/actions/EventAction.js +102 -0
  25. package/esm/actions/LinkAction.js +1 -1
  26. package/esm/actions/LoopAction.js +1 -1
  27. package/esm/actions/PageAction.js +1 -1
  28. package/esm/actions/ParallelAction.js +1 -1
  29. package/esm/actions/PrintAction.js +1 -1
  30. package/esm/actions/StatusAction.js +1 -1
  31. package/esm/actions/SwitchAction.js +1 -1
  32. package/esm/actions/ToastAction.js +1 -1
  33. package/esm/actions/WaitAction.d.ts +18 -0
  34. package/esm/actions/WaitAction.js +41 -0
  35. package/esm/actions/index.d.ts +2 -0
  36. package/esm/components/CustomStyle.js +1 -1
  37. package/esm/components/ErrorBoundary.js +1 -1
  38. package/esm/components/LazyComponent.js +1 -1
  39. package/esm/components/Overlay.d.ts +3 -0
  40. package/esm/components/Overlay.js +7 -4
  41. package/esm/components/PopOver.js +2 -2
  42. package/esm/env.js +1 -1
  43. package/esm/envOverwrite.js +1 -1
  44. package/esm/factory.d.ts +2 -0
  45. package/esm/factory.js +1 -1
  46. package/esm/index.js +6 -4
  47. package/esm/locale.js +4 -2
  48. package/esm/polyfills.js +1 -1
  49. package/esm/renderers/Form.d.ts +3 -2
  50. package/esm/renderers/Form.js +82 -25
  51. package/esm/renderers/Item.d.ts +123 -79
  52. package/esm/renderers/Item.js +159 -60
  53. package/esm/renderers/Options.d.ts +0 -11
  54. package/esm/renderers/Options.js +20 -84
  55. package/esm/renderers/Placeholder.js +1 -1
  56. package/esm/renderers/builtin.js +1 -1
  57. package/esm/renderers/register.js +1 -1
  58. package/esm/renderers/wrapControl.d.ts +2 -1
  59. package/esm/renderers/wrapControl.js +4 -2
  60. package/esm/store/app.d.ts +5 -5
  61. package/esm/store/app.js +1 -1
  62. package/esm/store/combo.d.ts +255 -63
  63. package/esm/store/combo.js +1 -1
  64. package/esm/store/crud.d.ts +5 -5
  65. package/esm/store/crud.js +1 -1
  66. package/esm/store/form.d.ts +105 -25
  67. package/esm/store/form.js +33 -15
  68. package/esm/store/formItem.d.ts +6 -2
  69. package/esm/store/formItem.js +68 -5
  70. package/esm/store/iRenderer.d.ts +5 -5
  71. package/esm/store/iRenderer.js +23 -10
  72. package/esm/store/index.js +1 -1
  73. package/esm/store/list.d.ts +5 -5
  74. package/esm/store/list.js +1 -1
  75. package/esm/store/manager.js +1 -1
  76. package/esm/store/modal.d.ts +5 -5
  77. package/esm/store/modal.js +1 -1
  78. package/esm/store/node.js +1 -1
  79. package/esm/store/pagination.d.ts +5 -5
  80. package/esm/store/pagination.js +1 -1
  81. package/esm/store/root.d.ts +5 -5
  82. package/esm/store/root.js +1 -1
  83. package/esm/store/service.d.ts +5 -5
  84. package/esm/store/service.js +2 -2
  85. package/esm/store/status.js +1 -1
  86. package/esm/store/table.d.ts +243 -55
  87. package/esm/store/table.js +23 -9
  88. package/esm/store/table2.d.ts +5 -5
  89. package/esm/store/table2.js +1 -1
  90. package/esm/theme.js +4 -2
  91. package/esm/types.d.ts +7 -1
  92. package/esm/utils/Animation.js +1 -1
  93. package/esm/utils/ColorScale.js +1 -1
  94. package/esm/utils/DataSchema.js +1 -1
  95. package/esm/utils/DataScope.js +1 -1
  96. package/esm/utils/RootClose.js +1 -1
  97. package/esm/utils/SimpleMap.js +1 -1
  98. package/esm/utils/api.js +1 -1
  99. package/esm/utils/arraySlice.js +1 -1
  100. package/esm/utils/attachmentAdpator.js +1 -1
  101. package/esm/utils/autobind.js +1 -1
  102. package/esm/utils/browser.js +1 -1
  103. package/esm/utils/columnsSplit.js +1 -1
  104. package/esm/utils/concatData.js +1 -1
  105. package/esm/utils/dataMapping.js +1 -1
  106. package/esm/utils/date.js +1 -1
  107. package/esm/utils/debug.js +1 -1
  108. package/esm/utils/decodeEntity.js +1 -1
  109. package/esm/utils/dom.d.ts +2 -2
  110. package/esm/utils/dom.js +70 -11
  111. package/esm/utils/errors.js +1 -1
  112. package/esm/utils/escapeHtml.js +1 -1
  113. package/esm/utils/filter-schema.js +1 -1
  114. package/esm/utils/filter.js +1 -1
  115. package/esm/utils/formatDuration.js +1 -1
  116. package/esm/utils/formula.js +2 -2
  117. package/esm/utils/getVariable.js +1 -1
  118. package/esm/utils/grammar.js +1 -1
  119. package/esm/utils/handleAction.js +1 -1
  120. package/esm/utils/helper.d.ts +12 -6
  121. package/esm/utils/helper.js +39 -16
  122. package/esm/utils/highlight.js +1 -1
  123. package/esm/utils/icon.js +1 -1
  124. package/esm/utils/image.js +1 -1
  125. package/esm/utils/isPureVariable.js +1 -1
  126. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  127. package/esm/utils/keyToPath.js +1 -1
  128. package/esm/utils/labelToString.js +1 -1
  129. package/esm/utils/makeSorter.js +1 -1
  130. package/esm/utils/math.js +1 -1
  131. package/esm/utils/memoryParse.js +1 -1
  132. package/esm/utils/normalizeLink.js +1 -1
  133. package/esm/utils/normalizeOptions.js +1 -1
  134. package/esm/utils/object.js +1 -1
  135. package/esm/utils/offset.js +1 -1
  136. package/esm/utils/offsetParent.js +1 -1
  137. package/esm/utils/optionValueCompare.js +1 -1
  138. package/esm/utils/position.js +1 -1
  139. package/esm/utils/prettyBytes.js +1 -1
  140. package/esm/utils/printElement.js +1 -1
  141. package/esm/utils/renderer-event.d.ts +11 -0
  142. package/esm/utils/renderer-event.js +99 -2
  143. package/esm/utils/replaceText.js +1 -1
  144. package/esm/utils/resize-sensor.js +1 -1
  145. package/esm/utils/resolveCondition.js +1 -1
  146. package/esm/utils/resolveVariable.js +1 -1
  147. package/esm/utils/resolveVariableAndFilter.js +1 -1
  148. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  149. package/esm/utils/scrollPosition.js +1 -1
  150. package/esm/utils/string2regExp.js +1 -1
  151. package/esm/utils/stripNumber.d.ts +1 -1
  152. package/esm/utils/stripNumber.js +4 -3
  153. package/esm/utils/style-helper.d.ts +21 -2
  154. package/esm/utils/style-helper.js +55 -10
  155. package/esm/utils/style.js +1 -1
  156. package/esm/utils/toNumber.js +1 -1
  157. package/esm/utils/tokenize.js +1 -1
  158. package/esm/utils/tpl-builtin.js +1 -1
  159. package/esm/utils/tpl-lodash.js +1 -1
  160. package/esm/utils/tpl.js +1 -1
  161. package/esm/utils/uncontrollable.js +1 -1
  162. package/esm/utils/validateId.js +5 -2
  163. package/esm/utils/validations.js +1 -1
  164. package/lib/Root.js +1 -1
  165. package/lib/RootRenderer.d.ts +1 -1
  166. package/lib/RootRenderer.js +28 -10
  167. package/lib/SchemaRenderer.js +14 -5
  168. package/lib/Scoped.d.ts +1 -1
  169. package/lib/Scoped.js +3 -1
  170. package/lib/StatusScoped.js +4 -2
  171. package/lib/WithRootStore.js +1 -1
  172. package/lib/WithStore.js +28 -17
  173. package/lib/actions/Action.js +2 -2
  174. package/lib/actions/AjaxAction.js +1 -1
  175. package/lib/actions/BreakAction.js +1 -1
  176. package/lib/actions/BroadcastAction.js +1 -1
  177. package/lib/actions/CmptAction.js +2 -2
  178. package/lib/actions/ContinueAction.js +1 -1
  179. package/lib/actions/CopyAction.js +1 -1
  180. package/lib/actions/CustomAction.js +1 -1
  181. package/lib/actions/DialogAction.d.ts +8 -0
  182. package/lib/actions/DialogAction.js +98 -35
  183. package/lib/actions/DrawerAction.d.ts +5 -0
  184. package/lib/actions/DrawerAction.js +69 -11
  185. package/lib/actions/EmailAction.js +1 -1
  186. package/lib/actions/EventAction.d.ts +20 -0
  187. package/lib/actions/EventAction.js +109 -0
  188. package/lib/actions/LinkAction.js +1 -1
  189. package/lib/actions/LoopAction.js +1 -1
  190. package/lib/actions/PageAction.js +1 -1
  191. package/lib/actions/ParallelAction.js +1 -1
  192. package/lib/actions/PrintAction.js +1 -1
  193. package/lib/actions/StatusAction.js +1 -1
  194. package/lib/actions/SwitchAction.js +1 -1
  195. package/lib/actions/ToastAction.js +1 -1
  196. package/lib/actions/WaitAction.d.ts +18 -0
  197. package/lib/actions/WaitAction.js +45 -0
  198. package/lib/actions/index.d.ts +2 -0
  199. package/lib/components/CustomStyle.js +1 -1
  200. package/lib/components/ErrorBoundary.js +1 -1
  201. package/lib/components/LazyComponent.js +1 -1
  202. package/lib/components/Overlay.d.ts +3 -0
  203. package/lib/components/Overlay.js +7 -4
  204. package/lib/components/PopOver.js +1 -1
  205. package/lib/env.js +1 -1
  206. package/lib/envOverwrite.js +1 -1
  207. package/lib/factory.d.ts +2 -0
  208. package/lib/factory.js +1 -1
  209. package/lib/index.js +6 -4
  210. package/lib/locale.js +4 -2
  211. package/lib/polyfills.js +1 -1
  212. package/lib/renderers/Form.d.ts +3 -2
  213. package/lib/renderers/Form.js +83 -24
  214. package/lib/renderers/Item.d.ts +123 -79
  215. package/lib/renderers/Item.js +158 -58
  216. package/lib/renderers/Options.d.ts +0 -11
  217. package/lib/renderers/Options.js +19 -84
  218. package/lib/renderers/Placeholder.js +1 -1
  219. package/lib/renderers/builtin.js +1 -1
  220. package/lib/renderers/register.js +1 -1
  221. package/lib/renderers/wrapControl.d.ts +2 -1
  222. package/lib/renderers/wrapControl.js +4 -2
  223. package/lib/store/app.d.ts +5 -5
  224. package/lib/store/app.js +1 -1
  225. package/lib/store/combo.d.ts +255 -63
  226. package/lib/store/combo.js +1 -1
  227. package/lib/store/crud.d.ts +5 -5
  228. package/lib/store/crud.js +1 -1
  229. package/lib/store/form.d.ts +105 -25
  230. package/lib/store/form.js +33 -15
  231. package/lib/store/formItem.d.ts +6 -2
  232. package/lib/store/formItem.js +67 -4
  233. package/lib/store/iRenderer.d.ts +5 -5
  234. package/lib/store/iRenderer.js +23 -10
  235. package/lib/store/index.js +1 -1
  236. package/lib/store/list.d.ts +5 -5
  237. package/lib/store/list.js +1 -1
  238. package/lib/store/manager.js +1 -1
  239. package/lib/store/modal.d.ts +5 -5
  240. package/lib/store/modal.js +1 -1
  241. package/lib/store/node.js +1 -1
  242. package/lib/store/pagination.d.ts +5 -5
  243. package/lib/store/pagination.js +1 -1
  244. package/lib/store/root.d.ts +5 -5
  245. package/lib/store/root.js +1 -1
  246. package/lib/store/service.d.ts +5 -5
  247. package/lib/store/service.js +2 -2
  248. package/lib/store/status.js +1 -1
  249. package/lib/store/table.d.ts +243 -55
  250. package/lib/store/table.js +23 -9
  251. package/lib/store/table2.d.ts +5 -5
  252. package/lib/store/table2.js +1 -1
  253. package/lib/theme.js +4 -2
  254. package/lib/types.d.ts +7 -1
  255. package/lib/utils/Animation.js +1 -1
  256. package/lib/utils/ColorScale.js +1 -1
  257. package/lib/utils/DataSchema.js +1 -1
  258. package/lib/utils/DataScope.js +1 -1
  259. package/lib/utils/RootClose.js +1 -1
  260. package/lib/utils/SimpleMap.js +1 -1
  261. package/lib/utils/api.js +1 -1
  262. package/lib/utils/arraySlice.js +1 -1
  263. package/lib/utils/attachmentAdpator.js +1 -1
  264. package/lib/utils/autobind.js +1 -1
  265. package/lib/utils/browser.js +1 -1
  266. package/lib/utils/columnsSplit.js +1 -1
  267. package/lib/utils/concatData.js +1 -1
  268. package/lib/utils/dataMapping.js +1 -1
  269. package/lib/utils/date.js +1 -1
  270. package/lib/utils/debug.js +1 -1
  271. package/lib/utils/decodeEntity.js +1 -1
  272. package/lib/utils/dom.d.ts +2 -2
  273. package/lib/utils/dom.js +70 -11
  274. package/lib/utils/errors.js +1 -1
  275. package/lib/utils/escapeHtml.js +1 -1
  276. package/lib/utils/filter-schema.js +1 -1
  277. package/lib/utils/filter.js +1 -1
  278. package/lib/utils/formatDuration.js +1 -1
  279. package/lib/utils/formula.js +2 -2
  280. package/lib/utils/getVariable.js +1 -1
  281. package/lib/utils/grammar.js +1 -1
  282. package/lib/utils/handleAction.js +1 -1
  283. package/lib/utils/helper.d.ts +12 -6
  284. package/lib/utils/helper.js +39 -17
  285. package/lib/utils/highlight.js +1 -1
  286. package/lib/utils/icon.js +1 -1
  287. package/lib/utils/image.js +1 -1
  288. package/lib/utils/isPureVariable.js +1 -1
  289. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  290. package/lib/utils/keyToPath.js +1 -1
  291. package/lib/utils/labelToString.js +1 -1
  292. package/lib/utils/makeSorter.js +1 -1
  293. package/lib/utils/math.js +1 -1
  294. package/lib/utils/memoryParse.js +1 -1
  295. package/lib/utils/normalizeLink.js +1 -1
  296. package/lib/utils/normalizeOptions.js +1 -1
  297. package/lib/utils/object.js +1 -1
  298. package/lib/utils/offset.js +1 -1
  299. package/lib/utils/offsetParent.js +1 -1
  300. package/lib/utils/optionValueCompare.js +1 -1
  301. package/lib/utils/position.js +1 -1
  302. package/lib/utils/prettyBytes.js +1 -1
  303. package/lib/utils/printElement.js +1 -1
  304. package/lib/utils/renderer-event.d.ts +11 -0
  305. package/lib/utils/renderer-event.js +99 -1
  306. package/lib/utils/replaceText.js +1 -1
  307. package/lib/utils/resize-sensor.js +1 -1
  308. package/lib/utils/resolveCondition.js +1 -1
  309. package/lib/utils/resolveVariable.js +1 -1
  310. package/lib/utils/resolveVariableAndFilter.js +1 -1
  311. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  312. package/lib/utils/scrollPosition.js +1 -1
  313. package/lib/utils/string2regExp.js +1 -1
  314. package/lib/utils/stripNumber.d.ts +1 -1
  315. package/lib/utils/stripNumber.js +4 -3
  316. package/lib/utils/style-helper.d.ts +21 -2
  317. package/lib/utils/style-helper.js +55 -10
  318. package/lib/utils/style.js +1 -1
  319. package/lib/utils/toNumber.js +1 -1
  320. package/lib/utils/tokenize.js +1 -1
  321. package/lib/utils/tpl-builtin.js +1 -1
  322. package/lib/utils/tpl-lodash.js +1 -1
  323. package/lib/utils/tpl.js +1 -1
  324. package/lib/utils/uncontrollable.js +1 -1
  325. package/lib/utils/validateId.js +9 -2
  326. package/lib/utils/validations.js +1 -1
  327. package/package.json +5 -3
package/esm/store/form.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -458,7 +458,7 @@ var FormStore = ServiceStore.named('FormStore')
458
458
  });
459
459
  });
460
460
  var validate = flow(function validate(hooks, forceValidate, throwErrors, failedMessage, validateErrCb) {
461
- var items, i, len, item, i, len, msg, dispatcher;
461
+ var items, i, len, item, i, len, msg, e_2, msg, dispatcher;
462
462
  return __generator(this, function (_a) {
463
463
  switch (_a.label) {
464
464
  case 0:
@@ -502,42 +502,60 @@ var FormStore = ServiceStore.named('FormStore')
502
502
  i++;
503
503
  return [3 /*break*/, 1];
504
504
  case 4:
505
+ _a.trys.push([4, 9, , 10]);
505
506
  if (!(hooks && hooks.length)) return [3 /*break*/, 8];
506
507
  i = 0, len = hooks.length;
507
508
  _a.label = 5;
508
509
  case 5:
509
510
  if (!(i < len)) return [3 /*break*/, 8];
510
- return [4 /*yield*/, hooks[i]()];
511
+ return [4 /*yield*/, hooks[i](self.data)];
511
512
  case 6:
512
- _a.sent();
513
+ msg = _a.sent();
514
+ if (typeof msg == 'string' && msg) {
515
+ throw new Error(msg);
516
+ }
517
+ else if (msg === false) {
518
+ // 不提示直接不通过校验
519
+ throw new ValidateError(failedMessage || self.__('Form.validateFailed'), self.errors);
520
+ }
513
521
  _a.label = 7;
514
522
  case 7:
515
523
  i++;
516
524
  return [3 /*break*/, 5];
517
- case 8:
518
- if (!!self.valid) return [3 /*break*/, 12];
525
+ case 8: return [3 /*break*/, 10];
526
+ case 9:
527
+ e_2 = _a.sent();
528
+ if (throwErrors) {
529
+ throw e_2;
530
+ }
531
+ else {
532
+ toastValidateError(e_2.message);
533
+ }
534
+ return [2 /*return*/, false];
535
+ case 10:
536
+ if (!!self.valid) return [3 /*break*/, 14];
519
537
  if (!(self.items.some(function (item) {
520
538
  return item.errorData.some(function (e) { return e.tag !== 'remote'; });
521
539
  }) ||
522
- self.restError.length)) return [3 /*break*/, 11];
540
+ self.restError.length)) return [3 /*break*/, 13];
523
541
  msg = failedMessage !== null && failedMessage !== void 0 ? failedMessage : self.__('Form.validateFailed');
524
542
  dispatcher = validateErrCb && validateErrCb();
525
- if (!(dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.then)) return [3 /*break*/, 10];
543
+ if (!(dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.then)) return [3 /*break*/, 12];
526
544
  return [4 /*yield*/, dispatcher];
527
- case 9:
545
+ case 11:
528
546
  dispatcher = _a.sent();
529
- _a.label = 10;
530
- case 10:
547
+ _a.label = 12;
548
+ case 12:
531
549
  if (!(dispatcher === null || dispatcher === void 0 ? void 0 : dispatcher.prevented)) {
532
550
  msg && toastValidateError(msg);
533
551
  }
534
- _a.label = 11;
535
- case 11:
552
+ _a.label = 13;
553
+ case 13:
536
554
  if (throwErrors) {
537
555
  throw new ValidateError(failedMessage || self.__('Form.validateFailed'), self.errors);
538
556
  }
539
- _a.label = 12;
540
- case 12: return [2 /*return*/, self.valid];
557
+ _a.label = 14;
558
+ case 14: return [2 /*return*/, self.valid];
541
559
  }
542
560
  });
543
561
  });
@@ -31,6 +31,7 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
31
31
  itemId: import("mobx-state-tree").IType<string | undefined, string, string>;
32
32
  unsetValueOnInvisible: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
33
33
  itemsRef: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
34
+ inited: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
34
35
  validated: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
35
36
  validating: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
36
37
  multiple: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
@@ -160,14 +161,17 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
160
161
  getSubStore: () => any;
161
162
  reset: (keepErrors?: boolean) => void;
162
163
  resetValidationStatus: (tag?: string) => void;
163
- openDialog: (schema: any, ctx: any, callback?: ((ret?: any) => void) | undefined) => void;
164
- closeDialog: (result?: any) => void;
164
+ openDialog: (schema: any, ctx: any, callback?: ((confirmed?: any, value?: any) => void) | undefined) => void;
165
+ closeDialog: (confirmed?: any, result?: any) => void;
165
166
  changeTmpValue: (value: any, changeReason?: 'initialValue' | 'formInited' | 'dataChanged' | 'formulaChanged' | 'controlled' | 'input' | 'defaultValue') => void;
166
167
  changeEmitedValue: (value: any) => void;
167
168
  addSubFormItem: (item: IFormItemStore) => void;
168
169
  removeSubFormItem: (item: IFormItemStore) => void;
169
170
  loadAutoUpdateData: (api: Api, data?: object, silent?: boolean) => Promise<Payload>;
170
171
  setIsControlled: (value: any) => void;
172
+ init: () => Promise<void>;
173
+ addInitHook(fn: (store: any) => any, weight?: number): () => void;
174
+ beforeDestroy: () => void;
171
175
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
172
176
  export type IFormItemStore = Instance<typeof FormItemStore>;
173
177
  export type SFormItemStore = SnapshotIn<typeof FormItemStore>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -19,7 +19,7 @@ import { dataMapping } from '../utils/dataMapping.js';
19
19
  import '../utils/filter.js';
20
20
  import { isEffectiveApi, buildApi } from '../utils/api.js';
21
21
  import findIndex from 'lodash/findIndex';
22
- import { findTree, spliceTree, flattenTree, findTreeIndex, isObjectShallowModified, filterTree, isArrayChildrenModified, eachTree, mapTree } from '../utils/helper.js';
22
+ import { findTree, spliceTree, flattenTree, findTreeIndex, promisify, isObjectShallowModified, filterTree, isArrayChildrenModified, eachTree, mapTree } from '../utils/helper.js';
23
23
  import find from 'lodash/find';
24
24
  import isEqual from 'lodash/isEqual';
25
25
  import isPlainObject from 'lodash/isPlainObject';
@@ -64,6 +64,7 @@ var FormItemStore = StoreNode.named('FormItemStore')
64
64
  itemId: '',
65
65
  unsetValueOnInvisible: false,
66
66
  itemsRef: types.optional(types.array(types.string), []),
67
+ inited: false,
67
68
  validated: false,
68
69
  validating: false,
69
70
  multiple: false,
@@ -256,6 +257,7 @@ var FormItemStore = StoreNode.named('FormItemStore')
256
257
  self.form;
257
258
  var dialogCallbacks = new SimpleMap();
258
259
  var loadAutoUpdateCancel = null;
260
+ var initHooks = [];
259
261
  function config(_a) {
260
262
  var name = _a.name, extraName = _a.extraName, required = _a.required, unique = _a.unique; _a.value; var isValueSchemaExp = _a.isValueSchemaExp, rules = _a.rules, messages = _a.messages, delimiter = _a.delimiter, multiple = _a.multiple, valueField = _a.valueField, labelField = _a.labelField, joinValues = _a.joinValues, extractValue = _a.extractValue, type = _a.type, id = _a.id, selectFirst = _a.selectFirst, autoFill = _a.autoFill, clearValueOnHidden = _a.clearValueOnHidden, validateApi = _a.validateApi, maxLength = _a.maxLength, minLength = _a.minLength, validateOnChange = _a.validateOnChange, label = _a.label, inputGroupControl = _a.inputGroupControl, pagination = _a.pagination;
261
263
  if (typeof rules === 'string') {
@@ -997,12 +999,12 @@ var FormItemStore = StoreNode.named('FormItemStore')
997
999
  self.dialogOpen = true;
998
1000
  callback && dialogCallbacks.set(self.dialogData, callback);
999
1001
  }
1000
- function closeDialog(result) {
1002
+ function closeDialog(confirmed, result) {
1001
1003
  var callback = dialogCallbacks.get(self.dialogData);
1002
1004
  self.dialogOpen = false;
1003
1005
  if (callback) {
1004
1006
  dialogCallbacks.delete(self.dialogData);
1005
- setTimeout(function () { return callback(result); }, 200);
1007
+ setTimeout(function () { return callback(confirmed, result); }, 200);
1006
1008
  }
1007
1009
  }
1008
1010
  function changeTmpValue(value, changeReason // 默认值
@@ -1027,6 +1029,52 @@ var FormItemStore = StoreNode.named('FormItemStore')
1027
1029
  function setIsControlled(value) {
1028
1030
  self.isControlled = !!value;
1029
1031
  }
1032
+ var init = flow(function init() {
1033
+ var hooks, hooks_1, hooks_1_1, hook, e_4_1;
1034
+ var e_4, _a;
1035
+ return __generator(this, function (_b) {
1036
+ switch (_b.label) {
1037
+ case 0:
1038
+ hooks = initHooks.sort(function (a, b) { return (a.__weight || 0) - (b.__weight || 0); });
1039
+ _b.label = 1;
1040
+ case 1:
1041
+ _b.trys.push([1, , 10, 11]);
1042
+ _b.label = 2;
1043
+ case 2:
1044
+ _b.trys.push([2, 7, 8, 9]);
1045
+ hooks_1 = __values(hooks), hooks_1_1 = hooks_1.next();
1046
+ _b.label = 3;
1047
+ case 3:
1048
+ if (!!hooks_1_1.done) return [3 /*break*/, 6];
1049
+ hook = hooks_1_1.value;
1050
+ return [4 /*yield*/, hook(self)];
1051
+ case 4:
1052
+ _b.sent();
1053
+ _b.label = 5;
1054
+ case 5:
1055
+ hooks_1_1 = hooks_1.next();
1056
+ return [3 /*break*/, 3];
1057
+ case 6: return [3 /*break*/, 9];
1058
+ case 7:
1059
+ e_4_1 = _b.sent();
1060
+ e_4 = { error: e_4_1 };
1061
+ return [3 /*break*/, 9];
1062
+ case 8:
1063
+ try {
1064
+ if (hooks_1_1 && !hooks_1_1.done && (_a = hooks_1.return)) _a.call(hooks_1);
1065
+ }
1066
+ finally { if (e_4) throw e_4.error; }
1067
+ return [7 /*endfinally*/];
1068
+ case 9: return [3 /*break*/, 11];
1069
+ case 10:
1070
+ if (isAlive(self)) {
1071
+ self.inited = true;
1072
+ }
1073
+ return [7 /*endfinally*/];
1074
+ case 11: return [2 /*return*/];
1075
+ }
1076
+ });
1077
+ });
1030
1078
  return {
1031
1079
  focus: focus,
1032
1080
  blur: blur,
@@ -1055,7 +1103,22 @@ var FormItemStore = StoreNode.named('FormItemStore')
1055
1103
  addSubFormItem: addSubFormItem,
1056
1104
  removeSubFormItem: removeSubFormItem,
1057
1105
  loadAutoUpdateData: loadAutoUpdateData,
1058
- setIsControlled: setIsControlled
1106
+ setIsControlled: setIsControlled,
1107
+ init: init,
1108
+ addInitHook: function (fn, weight) {
1109
+ if (weight === void 0) { weight = 0; }
1110
+ fn = promisify(fn);
1111
+ initHooks.push(fn);
1112
+ fn.__weight = weight;
1113
+ return function () {
1114
+ var idx = initHooks.indexOf(fn);
1115
+ ~idx && initHooks.splice(idx, 1);
1116
+ };
1117
+ },
1118
+ beforeDestroy: function () {
1119
+ // 销毁
1120
+ initHooks.splice(0, initHooks.length);
1121
+ }
1059
1122
  };
1060
1123
  });
1061
1124
 
@@ -38,11 +38,11 @@ export declare const iRendererStore: import("mobx-state-tree").IModelType<{
38
38
  reset(): void;
39
39
  updateData(data?: object, tag?: object, replace?: boolean, concatFields?: string | string[]): void;
40
40
  changeValue(name: string, value: any, changePristine?: boolean, force?: boolean, otherModifier?: ((data: Object) => void) | undefined): void;
41
- setCurrentAction(action: object): void;
42
- openDialog(ctx: any, additonal?: object, callback?: ((ret: any) => void) | undefined, scoped?: IScopedContext): void;
43
- closeDialog(result?: any): void;
44
- openDrawer(ctx: any, additonal?: object, callback?: ((ret: any) => void) | undefined, scoped?: IScopedContext): void;
45
- closeDrawer(result?: any): void;
41
+ setCurrentAction(action: any, resolveDefinitions?: ((schema: any) => any) | undefined): void;
42
+ openDialog(ctx: any, additonal?: object, callback?: ((confirmed: boolean, values: any) => void) | undefined, scoped?: IScopedContext): void;
43
+ closeDialog(confirmed?: any, data?: any): void;
44
+ openDrawer(ctx: any, additonal?: object, callback?: ((confirmed: boolean, ret: any) => void) | undefined, scoped?: IScopedContext): void;
45
+ closeDrawer(confirmed?: any, data?: any): void;
46
46
  getDialogScoped(): IScopedContext | null;
47
47
  getDrawerScoped(): IScopedContext | null;
48
48
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -164,22 +164,33 @@ var iRendererStore = StoreNode.named('iRendererStore')
164
164
  }
165
165
  self.data = data;
166
166
  },
167
- setCurrentAction: function (action) {
167
+ setCurrentAction: function (action, resolveDefinitions) {
168
+ // 处理 $ref
169
+ resolveDefinitions &&
170
+ ['dialog', 'drawer'].forEach(function (key) {
171
+ var _a;
172
+ var _b;
173
+ if ((_b = action[key]) === null || _b === void 0 ? void 0 : _b.$ref) {
174
+ action = __assign(__assign({}, action), (_a = {}, _a[key] = __assign(__assign({}, resolveDefinitions(action[key].$ref)), action[key]), _a));
175
+ }
176
+ });
168
177
  self.action = action;
169
178
  self.dialogData = false;
170
179
  self.drawerOpen = false;
171
180
  },
172
181
  openDialog: function (ctx, additonal, callback, scoped) {
182
+ var _a, _b;
173
183
  var chain = extractObjectChain(ctx);
174
184
  chain.length === 1 && chain.unshift(self.data);
175
185
  if (additonal) {
176
186
  chain.splice(chain.length - 1, 0, additonal);
177
187
  }
178
188
  var data = createObjectFromChain(chain);
179
- if (self.action.dialog && self.action.dialog.data) {
189
+ var mappingData = (_a = self.action.data) !== null && _a !== void 0 ? _a : (_b = self.action.dialog) === null || _b === void 0 ? void 0 : _b.data;
190
+ if (mappingData) {
180
191
  self.dialogData = createObjectFromChain([
181
192
  top === null || top === void 0 ? void 0 : top.context,
182
- dataMapping(self.action.dialog.data, data)
193
+ dataMapping(mappingData, data)
183
194
  ]);
184
195
  var clonedAction = __assign(__assign({}, self.action), { dialog: __assign({}, self.action.dialog) });
185
196
  delete clonedAction.dialog.data;
@@ -192,26 +203,28 @@ var iRendererStore = StoreNode.named('iRendererStore')
192
203
  callback && dialogCallbacks.set(self.dialogData, callback);
193
204
  dialogScoped = scoped || null;
194
205
  },
195
- closeDialog: function (result) {
206
+ closeDialog: function (confirmed, data) {
196
207
  var callback = dialogCallbacks.get(self.dialogData);
197
208
  self.dialogOpen = false;
198
209
  dialogScoped = null;
199
210
  if (callback) {
200
211
  dialogCallbacks.delete(self.dialogData);
201
- setTimeout(function () { return callback(result); }, 200);
212
+ setTimeout(function () { return callback(confirmed, data); }, 200);
202
213
  }
203
214
  },
204
215
  openDrawer: function (ctx, additonal, callback, scoped) {
216
+ var _a;
205
217
  var chain = extractObjectChain(ctx);
206
218
  chain.length === 1 && chain.unshift(self.data);
207
219
  if (additonal) {
208
220
  chain.splice(chain.length - 1, 0, additonal);
209
221
  }
210
222
  var data = createObjectFromChain(chain);
211
- if (self.action.drawer.data) {
223
+ var mappingData = (_a = self.action.data) !== null && _a !== void 0 ? _a : self.action.drawer.data;
224
+ if (mappingData) {
212
225
  self.drawerData = createObjectFromChain([
213
226
  top === null || top === void 0 ? void 0 : top.context,
214
- dataMapping(self.action.drawer.data, data)
227
+ dataMapping(mappingData, data)
215
228
  ]);
216
229
  var clonedAction = __assign(__assign({}, self.action), { drawer: __assign({}, self.action.drawer) });
217
230
  delete clonedAction.drawer.data;
@@ -226,13 +239,13 @@ var iRendererStore = StoreNode.named('iRendererStore')
226
239
  }
227
240
  drawerScoped = scoped || null;
228
241
  },
229
- closeDrawer: function (result) {
242
+ closeDrawer: function (confirmed, data) {
230
243
  var callback = dialogCallbacks.get(self.drawerData);
231
244
  self.drawerOpen = false;
232
245
  drawerScoped = null;
233
246
  if (callback) {
234
247
  dialogCallbacks.delete(self.drawerData);
235
- setTimeout(function () { return callback(result); }, 200);
248
+ setTimeout(function () { return callback(confirmed, data); }, 200);
236
249
  }
237
250
  },
238
251
  getDialogScoped: function () {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -108,11 +108,11 @@ export declare const ListStore: import("mobx-state-tree").IModelType<{
108
108
  reset(): void;
109
109
  updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined): void;
110
110
  changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined): void;
111
- setCurrentAction(action: object): void;
112
- openDialog(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
113
- closeDialog(result?: any): void;
114
- openDrawer(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
115
- closeDrawer(result?: any): void;
111
+ setCurrentAction(action: any, resolveDefinitions?: ((schema: any) => any) | undefined): void;
112
+ openDialog(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, values: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
113
+ closeDialog(confirmed?: any, data?: any): void;
114
+ openDrawer(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
115
+ closeDrawer(confirmed?: any, data?: any): void;
116
116
  getDialogScoped(): import("..").IScopedContext | null;
117
117
  getDrawerScoped(): import("..").IScopedContext | null;
118
118
  } & {
package/esm/store/list.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -52,11 +52,11 @@ export declare const ModalStore: import("mobx-state-tree").IModelType<{
52
52
  reset(): void;
53
53
  updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined): void;
54
54
  changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined): void;
55
- setCurrentAction(action: object): void;
56
- openDialog(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
57
- closeDialog(result?: any): void;
58
- openDrawer(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
59
- closeDrawer(result?: any): void;
55
+ setCurrentAction(action: any, resolveDefinitions?: ((schema: any) => any) | undefined): void;
56
+ openDialog(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, values: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
57
+ closeDialog(confirmed?: any, data?: any): void;
58
+ openDrawer(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
59
+ closeDrawer(confirmed?: any, data?: any): void;
60
60
  getDialogScoped(): import("..").IScopedContext | null;
61
61
  getDrawerScoped(): import("..").IScopedContext | null;
62
62
  } & {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/store/node.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -44,11 +44,11 @@ export declare const PaginationStore: import("mobx-state-tree").IModelType<{
44
44
  reset(): void;
45
45
  updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined): void;
46
46
  changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined): void;
47
- setCurrentAction(action: object): void;
48
- openDialog(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
49
- closeDialog(result?: any): void;
50
- openDrawer(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
51
- closeDrawer(result?: any): void;
47
+ setCurrentAction(action: any, resolveDefinitions?: ((schema: any) => any) | undefined): void;
48
+ openDialog(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, values: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
49
+ closeDialog(confirmed?: any, data?: any): void;
50
+ openDrawer(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
51
+ closeDrawer(confirmed?: any, data?: any): void;
52
52
  getDialogScoped(): import("..").IScopedContext | null;
53
53
  getDrawerScoped(): import("..").IScopedContext | null;
54
54
  } & {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -51,11 +51,11 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
51
51
  reset(): void;
52
52
  updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined): void;
53
53
  changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined): void;
54
- setCurrentAction(action: object): void;
55
- openDialog(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
56
- closeDialog(result?: any): void;
57
- openDrawer(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
58
- closeDrawer(result?: any): void;
54
+ setCurrentAction(action: any, resolveDefinitions?: ((schema: any) => any) | undefined): void;
55
+ openDialog(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, values: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
56
+ closeDialog(confirmed?: any, data?: any): void;
57
+ openDrawer(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
58
+ closeDrawer(confirmed?: any, data?: any): void;
59
59
  getDialogScoped(): import("..").IScopedContext | null;
60
60
  getDrawerScoped(): import("..").IScopedContext | null;
61
61
  } & {
package/esm/store/root.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -48,11 +48,11 @@ export declare const ServiceStore: import("mobx-state-tree").IModelType<{
48
48
  reset(): void;
49
49
  updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined): void;
50
50
  changeValue(name: string, value: any, changePristine?: boolean | undefined, force?: boolean | undefined, otherModifier?: ((data: Object) => void) | undefined): void;
51
- setCurrentAction(action: object): void;
52
- openDialog(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
53
- closeDialog(result?: any): void;
54
- openDrawer(ctx: any, additonal?: object | undefined, callback?: ((ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
55
- closeDrawer(result?: any): void;
51
+ setCurrentAction(action: any, resolveDefinitions?: ((schema: any) => any) | undefined): void;
52
+ openDialog(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, values: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
53
+ closeDialog(confirmed?: any, data?: any): void;
54
+ openDrawer(ctx: any, additonal?: object | undefined, callback?: ((confirmed: boolean, ret: any) => void) | undefined, scoped?: import("..").IScopedContext | undefined): void;
55
+ closeDrawer(confirmed?: any, data?: any): void;
56
56
  getDialogScoped(): import("..").IScopedContext | null;
57
57
  getDrawerScoped(): import("..").IScopedContext | null;
58
58
  } & {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -87,7 +87,7 @@ var ServiceStore = iRendererStore
87
87
  if (concatFields) {
88
88
  data = concatData(data, self.data, concatFields);
89
89
  }
90
- var newData = extendObject(self.pristine, data, !replace);
90
+ var newData = extendObject(self.data, data, !replace);
91
91
  self.data = self.pristine = newData;
92
92
  }
93
93
  function updateMessage(msg, error) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.2.2
2
+ * amis-core v6.3.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5