amis-core 3.1.0 → 3.2.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 (281) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +2 -2
  4. package/esm/SchemaRenderer.js +3 -2
  5. package/esm/Scoped.js +2 -1
  6. package/esm/StatusScoped.js +1 -1
  7. package/esm/WithRootStore.d.ts +4 -24
  8. package/esm/WithRootStore.js +12 -4
  9. package/esm/WithStore.js +23 -16
  10. package/esm/actions/Action.js +14 -14
  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 -1
  18. package/esm/actions/DialogAction.d.ts +2 -0
  19. package/esm/actions/DialogAction.js +40 -23
  20. package/esm/actions/DrawerAction.js +4 -4
  21. package/esm/actions/EmailAction.js +1 -1
  22. package/esm/actions/LinkAction.js +1 -1
  23. package/esm/actions/LoopAction.js +1 -1
  24. package/esm/actions/PageAction.js +1 -1
  25. package/esm/actions/ParallelAction.js +1 -1
  26. package/esm/actions/SwitchAction.js +1 -1
  27. package/esm/actions/ToastAction.js +1 -1
  28. package/esm/components/CustomStyle.js +1 -1
  29. package/esm/components/LazyComponent.js +1 -1
  30. package/esm/components/Overlay.js +2 -1
  31. package/esm/components/PopOver.js +2 -1
  32. package/esm/env.js +1 -1
  33. package/esm/envOverwrite.js +1 -1
  34. package/esm/factory.js +1 -1
  35. package/esm/index.d.ts +1 -0
  36. package/esm/index.js +6 -4
  37. package/esm/locale.js +1 -1
  38. package/esm/polyfills.d.ts +3 -0
  39. package/esm/polyfills.js +18 -0
  40. package/esm/renderers/Form.d.ts +1 -1
  41. package/esm/renderers/Form.js +17 -7
  42. package/esm/renderers/Item.d.ts +88 -59
  43. package/esm/renderers/Item.js +86 -40
  44. package/esm/renderers/Options.js +1 -1
  45. package/esm/renderers/Placeholder.js +1 -1
  46. package/esm/renderers/builtin.js +1 -1
  47. package/esm/renderers/register.js +1 -1
  48. package/esm/renderers/wrapControl.d.ts +4 -24
  49. package/esm/renderers/wrapControl.js +51 -53
  50. package/esm/store/app.js +37 -3
  51. package/esm/store/combo.d.ts +168 -28
  52. package/esm/store/combo.js +1 -1
  53. package/esm/store/crud.d.ts +3 -2
  54. package/esm/store/crud.js +12 -5
  55. package/esm/store/form.d.ts +72 -12
  56. package/esm/store/form.js +4 -4
  57. package/esm/store/formItem.d.ts +2 -1
  58. package/esm/store/formItem.js +7 -2
  59. package/esm/store/iRenderer.js +2 -1
  60. package/esm/store/index.js +1 -1
  61. package/esm/store/list.d.ts +1 -0
  62. package/esm/store/list.js +8 -2
  63. package/esm/store/manager.js +1 -1
  64. package/esm/store/modal.js +1 -1
  65. package/esm/store/node.js +1 -1
  66. package/esm/store/pagination.js +1 -1
  67. package/esm/store/root.js +2 -1
  68. package/esm/store/service.js +14 -9
  69. package/esm/store/status.js +1 -1
  70. package/esm/store/table.d.ts +145 -24
  71. package/esm/store/table.js +8 -2
  72. package/esm/store/table2.js +1 -1
  73. package/esm/theme.js +1 -1
  74. package/esm/types.d.ts +5 -2
  75. package/esm/utils/Animation.js +1 -1
  76. package/esm/utils/ColorScale.js +1 -1
  77. package/esm/utils/DataSchema.d.ts +3 -2
  78. package/esm/utils/DataSchema.js +27 -7
  79. package/esm/utils/DataScope.d.ts +10 -3
  80. package/esm/utils/DataScope.js +50 -12
  81. package/esm/utils/RootClose.js +1 -1
  82. package/esm/utils/SimpleMap.js +1 -1
  83. package/esm/utils/api.js +40 -32
  84. package/esm/utils/arraySlice.d.ts +1 -0
  85. package/esm/utils/arraySlice.js +76 -0
  86. package/esm/utils/attachmentAdpator.js +1 -1
  87. package/esm/utils/autobind.js +1 -1
  88. package/esm/utils/columnsSplit.js +1 -1
  89. package/esm/utils/dataMapping.js +26 -18
  90. package/esm/utils/date.js +1 -1
  91. package/esm/utils/debug.js +1 -1
  92. package/esm/utils/decodeEntity.js +1 -1
  93. package/esm/utils/dom.js +4 -1
  94. package/esm/utils/errors.js +1 -1
  95. package/esm/utils/escapeHtml.js +1 -1
  96. package/esm/utils/filter-schema.js +1 -1
  97. package/esm/utils/filter.js +1 -1
  98. package/esm/utils/formatDuration.js +1 -1
  99. package/esm/utils/formula.js +1 -1
  100. package/esm/utils/getVariable.js +1 -1
  101. package/esm/utils/grammar.js +1 -1
  102. package/esm/utils/handleAction.js +1 -1
  103. package/esm/utils/helper.d.ts +8 -1
  104. package/esm/utils/helper.js +57 -10
  105. package/esm/utils/highlight.js +1 -1
  106. package/esm/utils/icon.js +1 -1
  107. package/esm/utils/image.js +1 -1
  108. package/esm/utils/index.d.ts +1 -0
  109. package/esm/utils/isPureVariable.js +1 -1
  110. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  111. package/esm/utils/keyToPath.js +1 -1
  112. package/esm/utils/makeSorter.js +1 -1
  113. package/esm/utils/memoryParse.js +1 -1
  114. package/esm/utils/normalizeLink.js +18 -9
  115. package/esm/utils/normalizeOptions.js +1 -1
  116. package/esm/utils/object.js +1 -1
  117. package/esm/utils/offset.js +1 -1
  118. package/esm/utils/offsetParent.js +1 -1
  119. package/esm/utils/optionValueCompare.js +1 -1
  120. package/esm/utils/position.js +1 -1
  121. package/esm/utils/prettyBytes.js +1 -1
  122. package/esm/utils/renderer-event.js +1 -1
  123. package/esm/utils/replaceText.js +1 -1
  124. package/esm/utils/resize-sensor.js +1 -1
  125. package/esm/utils/resolveCondition.js +1 -1
  126. package/esm/utils/resolveVariable.js +1 -1
  127. package/esm/utils/resolveVariableAndFilter.js +1 -1
  128. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  129. package/esm/utils/scrollPosition.js +1 -1
  130. package/esm/utils/string2regExp.js +1 -1
  131. package/esm/utils/stripNumber.js +1 -1
  132. package/esm/utils/style-helper.js +1 -1
  133. package/esm/utils/style.js +1 -1
  134. package/esm/utils/toNumber.js +1 -1
  135. package/esm/utils/tokenize.js +1 -1
  136. package/esm/utils/tpl-builtin.js +1 -1
  137. package/esm/utils/tpl-lodash.js +1 -1
  138. package/esm/utils/tpl.js +1 -1
  139. package/esm/utils/uncontrollable.js +1 -1
  140. package/esm/utils/validations.js +1 -1
  141. package/lib/Root.js +1 -1
  142. package/lib/RootRenderer.d.ts +1 -1
  143. package/lib/RootRenderer.js +2 -2
  144. package/lib/SchemaRenderer.js +3 -2
  145. package/lib/Scoped.js +2 -1
  146. package/lib/StatusScoped.js +1 -1
  147. package/lib/WithRootStore.d.ts +4 -24
  148. package/lib/WithRootStore.js +12 -4
  149. package/lib/WithStore.js +23 -16
  150. package/lib/actions/Action.js +14 -14
  151. package/lib/actions/AjaxAction.js +1 -1
  152. package/lib/actions/BreakAction.js +1 -1
  153. package/lib/actions/BroadcastAction.js +1 -1
  154. package/lib/actions/CmptAction.js +2 -2
  155. package/lib/actions/ContinueAction.js +1 -1
  156. package/lib/actions/CopyAction.js +1 -1
  157. package/lib/actions/CustomAction.js +2 -1
  158. package/lib/actions/DialogAction.d.ts +2 -0
  159. package/lib/actions/DialogAction.js +40 -23
  160. package/lib/actions/DrawerAction.js +4 -4
  161. package/lib/actions/EmailAction.js +1 -1
  162. package/lib/actions/LinkAction.js +1 -1
  163. package/lib/actions/LoopAction.js +1 -1
  164. package/lib/actions/PageAction.js +1 -1
  165. package/lib/actions/ParallelAction.js +1 -1
  166. package/lib/actions/SwitchAction.js +1 -1
  167. package/lib/actions/ToastAction.js +1 -1
  168. package/lib/components/CustomStyle.js +1 -1
  169. package/lib/components/LazyComponent.js +1 -1
  170. package/lib/components/Overlay.js +2 -1
  171. package/lib/components/PopOver.js +2 -1
  172. package/lib/env.js +1 -1
  173. package/lib/envOverwrite.js +1 -1
  174. package/lib/factory.js +1 -1
  175. package/lib/index.d.ts +1 -0
  176. package/lib/index.js +7 -2
  177. package/lib/locale.js +1 -1
  178. package/lib/polyfills.d.ts +3 -0
  179. package/lib/polyfills.js +20 -0
  180. package/lib/renderers/Form.d.ts +1 -1
  181. package/lib/renderers/Form.js +17 -7
  182. package/lib/renderers/Item.d.ts +88 -59
  183. package/lib/renderers/Item.js +86 -40
  184. package/lib/renderers/Options.js +1 -1
  185. package/lib/renderers/Placeholder.js +1 -1
  186. package/lib/renderers/builtin.js +1 -1
  187. package/lib/renderers/register.js +1 -1
  188. package/lib/renderers/wrapControl.d.ts +4 -24
  189. package/lib/renderers/wrapControl.js +51 -53
  190. package/lib/store/app.js +36 -2
  191. package/lib/store/combo.d.ts +168 -28
  192. package/lib/store/combo.js +1 -1
  193. package/lib/store/crud.d.ts +3 -2
  194. package/lib/store/crud.js +12 -5
  195. package/lib/store/form.d.ts +72 -12
  196. package/lib/store/form.js +4 -4
  197. package/lib/store/formItem.d.ts +2 -1
  198. package/lib/store/formItem.js +7 -2
  199. package/lib/store/iRenderer.js +2 -1
  200. package/lib/store/index.js +1 -1
  201. package/lib/store/list.d.ts +1 -0
  202. package/lib/store/list.js +8 -2
  203. package/lib/store/manager.js +1 -1
  204. package/lib/store/modal.js +1 -1
  205. package/lib/store/node.js +1 -1
  206. package/lib/store/pagination.js +1 -1
  207. package/lib/store/root.js +2 -1
  208. package/lib/store/service.js +14 -9
  209. package/lib/store/status.js +1 -1
  210. package/lib/store/table.d.ts +145 -24
  211. package/lib/store/table.js +7 -1
  212. package/lib/store/table2.js +1 -1
  213. package/lib/theme.js +1 -1
  214. package/lib/types.d.ts +5 -2
  215. package/lib/utils/Animation.js +1 -1
  216. package/lib/utils/ColorScale.js +1 -1
  217. package/lib/utils/DataSchema.d.ts +3 -2
  218. package/lib/utils/DataSchema.js +27 -7
  219. package/lib/utils/DataScope.d.ts +10 -3
  220. package/lib/utils/DataScope.js +50 -11
  221. package/lib/utils/RootClose.js +1 -1
  222. package/lib/utils/SimpleMap.js +1 -1
  223. package/lib/utils/api.js +39 -31
  224. package/lib/utils/arraySlice.d.ts +1 -0
  225. package/lib/utils/arraySlice.js +80 -0
  226. package/lib/utils/attachmentAdpator.js +1 -1
  227. package/lib/utils/autobind.js +1 -1
  228. package/lib/utils/columnsSplit.js +1 -1
  229. package/lib/utils/dataMapping.js +26 -18
  230. package/lib/utils/date.js +1 -1
  231. package/lib/utils/debug.js +1 -1
  232. package/lib/utils/decodeEntity.js +1 -1
  233. package/lib/utils/dom.js +4 -1
  234. package/lib/utils/errors.js +1 -1
  235. package/lib/utils/escapeHtml.js +1 -1
  236. package/lib/utils/filter-schema.js +1 -1
  237. package/lib/utils/filter.js +1 -1
  238. package/lib/utils/formatDuration.js +1 -1
  239. package/lib/utils/formula.js +1 -1
  240. package/lib/utils/getVariable.js +1 -1
  241. package/lib/utils/grammar.js +1 -1
  242. package/lib/utils/handleAction.js +1 -1
  243. package/lib/utils/helper.d.ts +8 -1
  244. package/lib/utils/helper.js +57 -9
  245. package/lib/utils/highlight.js +1 -1
  246. package/lib/utils/icon.js +1 -1
  247. package/lib/utils/image.js +1 -1
  248. package/lib/utils/index.d.ts +1 -0
  249. package/lib/utils/isPureVariable.js +1 -1
  250. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  251. package/lib/utils/keyToPath.js +1 -1
  252. package/lib/utils/makeSorter.js +1 -1
  253. package/lib/utils/memoryParse.js +1 -1
  254. package/lib/utils/normalizeLink.js +18 -9
  255. package/lib/utils/normalizeOptions.js +1 -1
  256. package/lib/utils/object.js +1 -1
  257. package/lib/utils/offset.js +1 -1
  258. package/lib/utils/offsetParent.js +1 -1
  259. package/lib/utils/optionValueCompare.js +1 -1
  260. package/lib/utils/position.js +1 -1
  261. package/lib/utils/prettyBytes.js +1 -1
  262. package/lib/utils/renderer-event.js +1 -1
  263. package/lib/utils/replaceText.js +1 -1
  264. package/lib/utils/resize-sensor.js +1 -1
  265. package/lib/utils/resolveCondition.js +1 -1
  266. package/lib/utils/resolveVariable.js +1 -1
  267. package/lib/utils/resolveVariableAndFilter.js +1 -1
  268. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  269. package/lib/utils/scrollPosition.js +1 -1
  270. package/lib/utils/string2regExp.js +1 -1
  271. package/lib/utils/stripNumber.js +1 -1
  272. package/lib/utils/style-helper.js +1 -1
  273. package/lib/utils/style.js +1 -1
  274. package/lib/utils/toNumber.js +1 -1
  275. package/lib/utils/tokenize.js +1 -1
  276. package/lib/utils/tpl-builtin.js +1 -1
  277. package/lib/utils/tpl-lodash.js +1 -1
  278. package/lib/utils/tpl.js +1 -1
  279. package/lib/utils/uncontrollable.js +1 -1
  280. package/lib/utils/validations.js +1 -1
  281. package/package.json +8 -3
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.0
2
+ * amis-core v3.2.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -272,8 +272,9 @@ var FormItemWrap = /** @class */ (function (_super) {
272
272
  return (React.createElement(Overlay, { container: popOverContainer || this.target, target: function () { return _this.target; }, placement: position || 'left-bottom-left-top', show: true },
273
273
  React.createElement(PopOver, { classPrefix: ns, className: cx("".concat(ns, "auto-fill-popOver"), popOverClassName), style: {
274
274
  minWidth: this.target ? this.target.offsetWidth : undefined
275
- }, offset: offset, onHide: this.hanldeClose, overlay: true }, render('popOver-auto-fill-form', form, {
276
- onSubmit: this.hanldeSubmit
275
+ }, offset: offset, onHide: this.handleClose, overlay: true }, render('popOver-auto-fill-form', form, {
276
+ onAction: this.handleAction,
277
+ onSubmit: this.handleSubmit
277
278
  }))));
278
279
  }
279
280
  else {
@@ -281,15 +282,20 @@ var FormItemWrap = /** @class */ (function (_super) {
281
282
  }
282
283
  };
283
284
  // 参照录入popOver提交
284
- FormItemWrap.prototype.hanldeSubmit = function (values) {
285
+ FormItemWrap.prototype.handleSubmit = function (values) {
285
286
  var _a = this.props; _a.onBulkChange; var autoFill = _a.autoFill;
286
287
  if (!autoFill || (autoFill && !(autoFill === null || autoFill === void 0 ? void 0 : autoFill.hasOwnProperty('api')))) {
287
288
  return;
288
289
  }
289
290
  this.updateAutoFillData(values.selectedItems);
290
- this.hanldeClose();
291
+ this.handleClose();
291
292
  };
292
- FormItemWrap.prototype.hanldeClose = function () {
293
+ FormItemWrap.prototype.handleAction = function (e, action, data) {
294
+ if (action.actionType === 'cancel') {
295
+ this.handleClose();
296
+ }
297
+ };
298
+ FormItemWrap.prototype.handleClose = function () {
293
299
  this.setState({
294
300
  isOpened: false
295
301
  });
@@ -476,6 +482,7 @@ var FormItemWrap = /** @class */ (function (_super) {
476
482
  normal: function (props, renderControl) {
477
483
  var _a;
478
484
  var className = props.className, style = props.style, cx = props.classnames, desc = props.desc, description = props.description, label = props.label, render = props.render, required = props.required, caption = props.caption, remark = props.remark, labelRemark = props.labelRemark, env = props.env, descriptionClassName = props.descriptionClassName, captionClassName = props.captionClassName, model = props.formItem, renderLabel = props.renderLabel, renderDescription = props.renderDescription, hint = props.hint, data = props.data, showErrorMsg = props.showErrorMsg, useMobileUI = props.useMobileUI; props.translate; var isStatic = props.static, staticClassName = props.staticClassName;
485
+ var mobileUI = useMobileUI && isMobile();
479
486
  description = description || desc;
480
487
  return (React.createElement("div", { "data-role": "form-item", className: cx("Form-item Form-item--normal", isStatic && staticClassName ? staticClassName : className, (_a = {
481
488
  'is-error': model && !model.valid
@@ -502,38 +509,71 @@ var FormItemWrap = /** @class */ (function (_super) {
502
509
  : undefined
503
510
  })
504
511
  : null))) : null,
505
- renderControl(),
506
- caption
507
- ? render('caption', caption, {
508
- className: cx("Form-caption", captionClassName)
509
- })
510
- : null,
511
- remark
512
- ? render('remark', {
513
- type: 'remark',
514
- icon: remark.icon || 'warning-mark',
515
- className: cx("Form-remark"),
516
- tooltip: remark,
517
- useMobileUI: useMobileUI,
518
- container: env && env.getModalContainer
519
- ? env.getModalContainer
520
- : undefined
521
- })
522
- : null,
523
- hint && model && model.isFocused
524
- ? render('hint', hint, {
525
- className: cx("Form-hint")
526
- })
527
- : null,
528
- model &&
529
- !model.valid &&
530
- showErrorMsg !== false &&
531
- Array.isArray(model.errors) ? (React.createElement("ul", { className: cx("Form-feedback") }, model.errors.map(function (msg, key) { return (React.createElement("li", { key: key }, msg)); }))) : null,
532
- renderDescription !== false && description
533
- ? render('description', description, {
534
- className: cx("Form-description", descriptionClassName)
535
- })
536
- : null));
512
+ mobileUI ? (React.createElement("div", { className: cx('Form-item-controlBox') },
513
+ renderControl(),
514
+ caption
515
+ ? render('caption', caption, {
516
+ className: cx("Form-caption", captionClassName)
517
+ })
518
+ : null,
519
+ remark
520
+ ? render('remark', {
521
+ type: 'remark',
522
+ icon: remark.icon || 'warning-mark',
523
+ className: cx("Form-remark"),
524
+ tooltip: remark,
525
+ useMobileUI: useMobileUI,
526
+ container: env && env.getModalContainer
527
+ ? env.getModalContainer
528
+ : undefined
529
+ })
530
+ : null,
531
+ hint && model && model.isFocused
532
+ ? render('hint', hint, {
533
+ className: cx("Form-hint")
534
+ })
535
+ : null,
536
+ model &&
537
+ !model.valid &&
538
+ showErrorMsg !== false &&
539
+ Array.isArray(model.errors) ? (React.createElement("ul", { className: cx("Form-feedback") }, model.errors.map(function (msg, key) { return (React.createElement("li", { key: key }, msg)); }))) : null,
540
+ renderDescription !== false && description
541
+ ? render('description', description, {
542
+ className: cx("Form-description", descriptionClassName)
543
+ })
544
+ : null)) : (React.createElement(React.Fragment, null,
545
+ renderControl(),
546
+ caption
547
+ ? render('caption', caption, {
548
+ className: cx("Form-caption", captionClassName)
549
+ })
550
+ : null,
551
+ remark
552
+ ? render('remark', {
553
+ type: 'remark',
554
+ icon: remark.icon || 'warning-mark',
555
+ className: cx("Form-remark"),
556
+ tooltip: remark,
557
+ useMobileUI: useMobileUI,
558
+ container: env && env.getModalContainer
559
+ ? env.getModalContainer
560
+ : undefined
561
+ })
562
+ : null,
563
+ hint && model && model.isFocused
564
+ ? render('hint', hint, {
565
+ className: cx("Form-hint")
566
+ })
567
+ : null,
568
+ model &&
569
+ !model.valid &&
570
+ showErrorMsg !== false &&
571
+ Array.isArray(model.errors) ? (React.createElement("ul", { className: cx("Form-feedback") }, model.errors.map(function (msg, key) { return (React.createElement("li", { key: key }, msg)); }))) : null,
572
+ renderDescription !== false && description
573
+ ? render('description', description, {
574
+ className: cx("Form-description", descriptionClassName)
575
+ })
576
+ : null))));
537
577
  },
538
578
  inline: function (props, renderControl) {
539
579
  var _a;
@@ -680,13 +720,19 @@ var FormItemWrap = /** @class */ (function (_super) {
680
720
  __metadata("design:type", Function),
681
721
  __metadata("design:paramtypes", [Object]),
682
722
  __metadata("design:returntype", void 0)
683
- ], FormItemWrap.prototype, "hanldeSubmit", null);
723
+ ], FormItemWrap.prototype, "handleSubmit", null);
724
+ __decorate([
725
+ autobind,
726
+ __metadata("design:type", Function),
727
+ __metadata("design:paramtypes", [Object, Object, Object]),
728
+ __metadata("design:returntype", void 0)
729
+ ], FormItemWrap.prototype, "handleAction", null);
684
730
  __decorate([
685
731
  autobind,
686
732
  __metadata("design:type", Function),
687
733
  __metadata("design:paramtypes", []),
688
734
  __metadata("design:returntype", void 0)
689
- ], FormItemWrap.prototype, "hanldeClose", null);
735
+ ], FormItemWrap.prototype, "handleClose", null);
690
736
  __decorate([
691
737
  autobind,
692
738
  __metadata("design:type", Function),
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.0
2
+ * amis-core v3.2.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.0
2
+ * amis-core v3.2.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.0
2
+ * amis-core v3.2.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.0
2
+ * amis-core v3.2.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -49,30 +49,10 @@ export interface ControlProps {
49
49
  store: IIRendererStore;
50
50
  }
51
51
  export declare function wrapControl<T extends React.ComponentType<React.ComponentProps<T> & ControlProps>>(ComposedComponent: T): {
52
- new (props: Omit<any, "rootStore"> | Readonly<Omit<any, "rootStore">>): {
53
- render(): React.JSX.Element;
54
- context: unknown;
55
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<any, "rootStore">>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
56
- forceUpdate(callback?: (() => void) | undefined): void;
57
- readonly props: Readonly<Omit<any, "rootStore">>;
58
- state: Readonly<{}>;
59
- refs: {
60
- [key: string]: React.ReactInstance;
61
- };
62
- componentDidMount?(): void;
63
- shouldComponentUpdate?(nextProps: Readonly<Omit<any, "rootStore">>, nextState: Readonly<{}>, nextContext: any): boolean;
64
- componentWillUnmount?(): void;
65
- componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
66
- getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<any, "rootStore">>, prevState: Readonly<{}>): any;
67
- componentDidUpdate?(prevProps: Readonly<Omit<any, "rootStore">>, prevState: Readonly<{}>, snapshot?: any): void;
68
- componentWillMount?(): void;
69
- UNSAFE_componentWillMount?(): void;
70
- componentWillReceiveProps?(nextProps: Readonly<Omit<any, "rootStore">>, nextContext: any): void;
71
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<any, "rootStore">>, nextContext: any): void;
72
- componentWillUpdate?(nextProps: Readonly<Omit<any, "rootStore">>, nextState: Readonly<{}>, nextContext: any): void;
73
- UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<any, "rootStore">>, nextState: Readonly<{}>, nextContext: any): void;
74
- };
75
- new (props: Omit<any, "rootStore">, context: any): {
52
+ new (props: Omit<any, "rootStore">): {
53
+ ref: any;
54
+ getWrappedInstance(): any;
55
+ refFn(ref: any): void;
76
56
  render(): React.JSX.Element;
77
57
  context: unknown;
78
58
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<any, "rootStore">>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.1.0
2
+ * amis-core v3.2.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -73,15 +73,16 @@ function wrapControl(ComposedComponent) {
73
73
  }
74
74
  if (propValue !== undefined && propValue !== null) {
75
75
  // 同步 value: 优先使用 props 中的 value
76
- model.changeTmpValue(propValue);
76
+ model.changeTmpValue(propValue, 'controlled');
77
77
  }
78
78
  else {
79
79
  // 备注: 此处的 value 是 schema 中的 value(和props.defaultValue相同)
80
- var curTmpValue = isExpression(value)
80
+ var isExp = isExpression(value);
81
+ var curTmpValue = isExp
81
82
  ? FormulaExec['formula'](value, data) // 对组件默认值进行运算
82
83
  : (_b = store === null || store === void 0 ? void 0 : store.getValueByName(model.name)) !== null && _b !== void 0 ? _b : replaceExpression(value); // 优先使用公式表达式
83
84
  // 同步 value
84
- model.changeTmpValue(curTmpValue);
85
+ model.changeTmpValue(curTmpValue, isExp ? 'formulaChanged' : 'defaultValue');
85
86
  }
86
87
  if (onChange &&
87
88
  value !== undefined &&
@@ -181,7 +182,7 @@ function wrapControl(ComposedComponent) {
181
182
  if (!isEqual(props.value, prevProps.value) &&
182
183
  !isEqual(props.value, model.tmpValue)) {
183
184
  // 外部直接传入的 value 无需执行运算器
184
- model.changeTmpValue(props.value);
185
+ model.changeTmpValue(props.value, 'controlled');
185
186
  }
186
187
  }
187
188
  else if (model &&
@@ -198,43 +199,35 @@ function wrapControl(ComposedComponent) {
198
199
  if (!isEqual(curResult, prevResult) &&
199
200
  !isEqual(curResult, model.tmpValue)) {
200
201
  // 识别上下文变动、自身数值变动、公式运算结果变动
201
- model.changeTmpValue(curResult);
202
+ model.changeTmpValue(curResult, 'formulaChanged');
202
203
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, curResult, model.name, false);
203
204
  }
204
205
  else if (nowFormulaChecked) {
205
206
  var nowData = props.data[model.name];
206
207
  // now 表达式,计算后的值永远相同
207
- model.changeTmpValue(nowData);
208
+ model.changeTmpValue(nowData, 'formulaChanged');
208
209
  (_b = props.onChange) === null || _b === void 0 ? void 0 : _b.call(props, nowData, model.name, false);
209
210
  }
210
211
  }
211
212
  }
212
213
  else if (model) {
213
214
  var valueByName = getVariable(props.data, model.name);
214
- if (isEqual(props.defaultValue, prevProps.defaultValue)) {
215
- // value 非公式表达式时,name 值优先,若 defaultValue 主动变动时,则使用 defaultValue
216
- if (
217
- // 然后才是查看关联的 name 属性值是否变化
218
- props.data !== prevProps.data &&
219
- (!model.emitedValue ||
220
- isEqual(model.emitedValue, model.tmpValue))) {
221
- model.changeEmitedValue(undefined);
222
- var prevValueByName = getVariable(props.data, model.name);
223
- if ((!isEqual(valueByName, prevValueByName) ||
224
- getVariable(props.data, model.name, false) !==
225
- getVariable(prevProps.data, model.name, false)) &&
226
- !isEqual(valueByName, model.tmpValue)) {
227
- model.changeTmpValue(valueByName);
228
- }
229
- }
230
- }
231
- else if (!isEqual(props.defaultValue, prevProps.defaultValue) &&
232
- !isEqual(props.defaultValue, model.tmpValue)) {
233
- // 组件默认值非公式
234
- var curValue = replaceExpression(props.defaultValue);
235
- model.changeTmpValue(curValue);
236
- if (props.onChange) {
237
- props.onChange(curValue, model.name, false);
215
+ // value 非公式表达式时,name 值优先,若 defaultValue 主动变动时,则使用 defaultValue
216
+ if (
217
+ // 然后才是查看关联的 name 属性值是否变化
218
+ props.data !== prevProps.data &&
219
+ (!model.emitedValue ||
220
+ isEqual(model.emitedValue, model.tmpValue))) {
221
+ model.changeEmitedValue(undefined);
222
+ var prevValueByName = getVariable(props.data, model.name);
223
+ if ((!isEqual(valueByName, prevValueByName) ||
224
+ getVariable(props.data, model.name, false) !==
225
+ getVariable(prevProps.data, model.name, false)) &&
226
+ !isEqual(valueByName, model.tmpValue)) {
227
+ model.changeTmpValue(valueByName, props.formInited && !prevProps.formInited
228
+ ? 'formInited'
229
+ : 'dataChanged');
230
+ this.checkValidate();
238
231
  }
239
232
  }
240
233
  }
@@ -305,14 +298,33 @@ function wrapControl(ComposedComponent) {
305
298
  scoped.unRegisterComponent(originRef);
306
299
  }
307
300
  };
301
+ class_1.prototype.checkValidate = function () {
302
+ var _a;
303
+ if (!this.model)
304
+ return; // 如果 model 为 undefined 则直接返回
305
+ var validated = this.model.validated;
306
+ var _b = this.props, formSubmited = _b.formSubmited, validateOnChange = _b.validateOnChange;
307
+ if (
308
+ // 如果配置了 minLength 或者 maxLength 就切成及时验证
309
+ // this.model.rules.minLength ||
310
+ // this.model.rules.maxLength ||
311
+ validateOnChange === true ||
312
+ (validateOnChange !== false && (formSubmited || validated))) {
313
+ this.validate();
314
+ }
315
+ else if (validateOnChange === false) {
316
+ (_a = this.model) === null || _a === void 0 ? void 0 : _a.reset();
317
+ }
318
+ };
308
319
  class_1.prototype.validate = function () {
309
320
  return __awaiter(this, void 0, void 0, function () {
310
- var _a, form, data, formItemDispatchEvent, result, combo, group, validPromises, validPromises;
321
+ var _a, form, data, formItemDispatchEvent, result, combo, group, validPromises;
311
322
  return __generator(this, function (_b) {
312
323
  switch (_b.label) {
313
324
  case 0:
325
+ if (!this.model)
326
+ return [2 /*return*/];
314
327
  _a = this.props, form = _a.formStore, data = _a.data, formItemDispatchEvent = _a.formItemDispatchEvent;
315
- if (!this.model) return [3 /*break*/, 4];
316
328
  if (!(this.model.unique &&
317
329
  (form === null || form === void 0 ? void 0 : form.parentStore) &&
318
330
  form.parentStore.storeType === ComboStore.name)) return [3 /*break*/, 2];
@@ -325,12 +337,9 @@ function wrapControl(ComposedComponent) {
325
337
  case 1:
326
338
  result = _b.sent();
327
339
  return [3 /*break*/, 4];
328
- case 2:
329
- validPromises = form === null || form === void 0 ? void 0 : form.getItemsByName(this.model.name).map(function (item) { return item.validate(data); });
330
- if (!(validPromises && validPromises.length)) return [3 /*break*/, 4];
331
- return [4 /*yield*/, Promise.all(validPromises)];
340
+ case 2: return [4 /*yield*/, this.model.validate(data)];
332
341
  case 3:
333
- result = _b.sent();
342
+ result = [_b.sent()];
334
343
  _b.label = 4;
335
344
  case 4:
336
345
  if (result && result.length) {
@@ -367,7 +376,7 @@ function wrapControl(ComposedComponent) {
367
376
  var oldValue = this.model.value;
368
377
  value = pipeOut(value, oldValue, data);
369
378
  }
370
- this.model.changeTmpValue(value);
379
+ this.model.changeTmpValue(value, 'input');
371
380
  if (changeImmediately || conrolChangeImmediately || !formInited) {
372
381
  this.emitChange(submitOnChange);
373
382
  }
@@ -377,9 +386,8 @@ function wrapControl(ComposedComponent) {
377
386
  }
378
387
  };
379
388
  class_1.prototype.emitChange = function (submitOnChange) {
380
- var _a;
381
389
  if (submitOnChange === void 0) { submitOnChange = this.props.$schema.submitOnChange; }
382
- var _b = this.props, form = _b.formStore, onChange = _b.onChange, _c = _b.$schema, name = _c.name, id = _c.id, label = _c.label, type = _c.type, onFormItemChange = _c.onChange; _c.maxLength; _c.minLength; var data = _b.data, env = _b.env, validateOnChange = _b.validateOnChange, formSubmited = _b.formSubmited;
390
+ var _a = this.props, form = _a.formStore, onChange = _a.onChange, _b = _a.$schema, name = _b.name, id = _b.id, label = _b.label, type = _b.type, onFormItemChange = _b.onChange; _b.maxLength; _b.minLength; var data = _a.data, env = _a.env; _a.validateOnChange; _a.formSubmited;
383
391
  if (!this.model) {
384
392
  return;
385
393
  }
@@ -408,19 +416,8 @@ function wrapControl(ComposedComponent) {
408
416
  if (!this.model) {
409
417
  return;
410
418
  }
411
- var validated = this.model.validated;
412
419
  onChange === null || onChange === void 0 ? void 0 : onChange(value, name, submitOnChange === true);
413
- if (
414
- // 如果配置了 minLength 或者 maxLength 就切成及时验证
415
- // this.model.rules.minLength ||
416
- // this.model.rules.maxLength ||
417
- validateOnChange === true ||
418
- (validateOnChange !== false && (formSubmited || validated))) {
419
- this.validate();
420
- }
421
- else if (validateOnChange === false) {
422
- (_a = this.model) === null || _a === void 0 ? void 0 : _a.reset();
423
- }
420
+ this.checkValidate();
424
421
  };
425
422
  class_1.prototype.handleBlur = function (e) {
426
423
  var _a = this.props, onBlur = _a.onBlur, validateOnBlur = _a.$schema.validateOnBlur;
@@ -477,6 +474,7 @@ function wrapControl(ComposedComponent) {
477
474
  ref: this.controlRef,
478
475
  data: data || (store === null || store === void 0 ? void 0 : store.data),
479
476
  value: value,
477
+ changeMotivation: model === null || model === void 0 ? void 0 : model.changeMotivation,
480
478
  defaultValue: control.value,
481
479
  formItemValue: value,
482
480
  onChange: this.handleChange,
package/esm/store/app.js CHANGED
@@ -1,13 +1,47 @@
1
1
  /**
2
- * amis-core v3.1.0
2
+ * amis-core v3.2.0
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
6
6
  import { __assign } from 'tslib';
7
7
  import { types } from 'mobx-state-tree';
8
- import { mapTree, findTree, guid } from '../utils/helper.js';
8
+ import { mapTree, findTree, isVisible, guid } from '../utils/helper.js';
9
9
  import { ServiceStore } from './service.js';
10
+ import '../utils/api.js';
11
+ import '../utils/ColorScale.js';
12
+ import 'react';
13
+ import 'lodash/chunk';
14
+ import 'amis-formula';
15
+ import 'lodash/isPlainObject';
10
16
  import { createObject } from '../utils/object.js';
17
+ import '../utils/DataSchema.js';
18
+ import '../utils/DataScope.js';
19
+ import 'moment';
20
+ import '../utils/debug.js';
21
+ import 'react-dom';
22
+ import '../utils/errors.js';
23
+ import '../utils/tpl.js';
24
+ import 'classnames';
25
+ import '../utils/filter.js';
26
+ import 'lodash/isObject';
27
+ import 'lodash/isString';
28
+ import 'lodash/isBoolean';
29
+ import 'lodash';
30
+ import '../utils/image.js';
31
+ import '../actions/Action.js';
32
+ import 'lodash/debounce';
33
+ import 'lodash/cloneDeep';
34
+ import '../utils/resize-sensor.js';
35
+ import 'react-overlays/useRootClose';
36
+ import '../utils/SimpleMap.js';
37
+ import 'lodash/mapValues';
38
+ import 'lodash/camelCase';
39
+ import 'uncontrollable';
40
+ import 'hoist-non-react-statics';
41
+ import '../utils/validations.js';
42
+ import '../utils/resolveCondition.js';
43
+ import 'mobx';
44
+ import '../utils/Animation.js';
11
45
 
12
46
  var AppStore = ServiceStore.named('AppStore')
13
47
  .props({
@@ -20,7 +54,7 @@ var AppStore = ServiceStore.named('AppStore')
20
54
  get navigations() {
21
55
  if (Array.isArray(self.pages)) {
22
56
  return mapTree(self.pages, function (item) {
23
- var visible = item.visible;
57
+ var visible = isVisible(item, self.data);
24
58
  if (visible !== false &&
25
59
  item.path &&
26
60
  !~item.path.indexOf('http') &&