amis-core 3.4.0 → 3.4.1

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 (287) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +8 -8
  3. package/esm/SchemaRenderer.js +16 -12
  4. package/esm/Scoped.js +3 -1
  5. package/esm/StatusScoped.js +1 -1
  6. package/esm/WithRootStore.js +1 -1
  7. package/esm/WithStore.js +9 -8
  8. package/esm/actions/Action.js +1 -1
  9. package/esm/actions/AjaxAction.js +2 -2
  10. package/esm/actions/BreakAction.js +1 -1
  11. package/esm/actions/BroadcastAction.js +1 -1
  12. package/esm/actions/CmptAction.js +1 -1
  13. package/esm/actions/ContinueAction.js +1 -1
  14. package/esm/actions/CopyAction.js +1 -1
  15. package/esm/actions/CustomAction.js +3 -1
  16. package/esm/actions/DialogAction.js +1 -1
  17. package/esm/actions/DrawerAction.js +1 -1
  18. package/esm/actions/EmailAction.js +1 -1
  19. package/esm/actions/LinkAction.js +1 -1
  20. package/esm/actions/LoopAction.js +1 -1
  21. package/esm/actions/PageAction.js +1 -1
  22. package/esm/actions/ParallelAction.js +1 -1
  23. package/esm/actions/StatusAction.js +1 -1
  24. package/esm/actions/SwitchAction.js +1 -1
  25. package/esm/actions/ToastAction.js +1 -1
  26. package/esm/components/CustomStyle.d.ts +4 -6
  27. package/esm/components/CustomStyle.js +29 -5
  28. package/esm/components/LazyComponent.d.ts +1 -2
  29. package/esm/components/LazyComponent.js +12 -8
  30. package/esm/components/Overlay.js +3 -1
  31. package/esm/components/PopOver.d.ts +12 -12
  32. package/esm/components/PopOver.js +3 -1
  33. package/esm/env.d.ts +2 -2
  34. package/esm/env.js +1 -1
  35. package/esm/envOverwrite.js +1 -1
  36. package/esm/factory.d.ts +7 -7
  37. package/esm/factory.js +1 -1
  38. package/esm/index.d.ts +1 -0
  39. package/esm/index.js +5 -5
  40. package/esm/locale.d.ts +1 -1
  41. package/esm/locale.js +3 -3
  42. package/esm/polyfills.js +1 -1
  43. package/esm/renderers/Form.d.ts +1 -1
  44. package/esm/renderers/Form.js +10 -8
  45. package/esm/renderers/Item.d.ts +24 -56
  46. package/esm/renderers/Item.js +25 -31
  47. package/esm/renderers/Options.js +14 -12
  48. package/esm/renderers/Placeholder.js +1 -1
  49. package/esm/renderers/builtin.js +1 -1
  50. package/esm/renderers/register.js +1 -1
  51. package/esm/renderers/wrapControl.js +70 -80
  52. package/esm/store/app.js +3 -1
  53. package/esm/store/combo.d.ts +384 -0
  54. package/esm/store/combo.js +1 -1
  55. package/esm/store/crud.js +31 -25
  56. package/esm/store/form.d.ts +160 -0
  57. package/esm/store/form.js +15 -13
  58. package/esm/store/formItem.d.ts +4 -0
  59. package/esm/store/formItem.js +42 -26
  60. package/esm/store/iRenderer.js +3 -1
  61. package/esm/store/index.js +1 -1
  62. package/esm/store/list.js +1 -1
  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.d.ts +1 -1
  68. package/esm/store/root.js +12 -5
  69. package/esm/store/service.js +38 -33
  70. package/esm/store/status.js +1 -1
  71. package/esm/store/table.d.ts +760 -21
  72. package/esm/store/table.js +155 -55
  73. package/esm/store/table2.js +11 -8
  74. package/esm/theme.d.ts +18 -31
  75. package/esm/theme.js +1 -1
  76. package/esm/utils/Animation.js +1 -1
  77. package/esm/utils/ColorScale.js +1 -1
  78. package/esm/utils/DataSchema.js +1 -1
  79. package/esm/utils/DataScope.js +1 -1
  80. package/esm/utils/RootClose.js +1 -1
  81. package/esm/utils/SimpleMap.js +1 -1
  82. package/esm/utils/api.d.ts +3 -3
  83. package/esm/utils/api.js +2 -2
  84. package/esm/utils/arraySlice.js +1 -1
  85. package/esm/utils/attachmentAdpator.js +1 -1
  86. package/esm/utils/autobind.js +1 -1
  87. package/esm/utils/columnsSplit.js +1 -1
  88. package/esm/utils/dataMapping.js +1 -1
  89. package/esm/utils/date.js +1 -1
  90. package/esm/utils/debug.d.ts +1 -0
  91. package/esm/utils/debug.js +24 -2
  92. package/esm/utils/decodeEntity.js +1 -1
  93. package/esm/utils/dom.js +1 -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 +13 -1
  104. package/esm/utils/helper.js +99 -5
  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/isPureVariable.js +1 -1
  109. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  110. package/esm/utils/keyToPath.d.ts +1 -1
  111. package/esm/utils/keyToPath.js +2 -1
  112. package/esm/utils/makeSorter.js +1 -1
  113. package/esm/utils/math.js +1 -1
  114. package/esm/utils/memoryParse.js +1 -1
  115. package/esm/utils/normalizeLink.js +1 -1
  116. package/esm/utils/normalizeOptions.js +1 -1
  117. package/esm/utils/object.js +1 -1
  118. package/esm/utils/offset.js +1 -1
  119. package/esm/utils/offsetParent.js +1 -1
  120. package/esm/utils/optionValueCompare.js +1 -1
  121. package/esm/utils/position.js +1 -1
  122. package/esm/utils/prettyBytes.js +1 -1
  123. package/esm/utils/renderer-event.js +2 -2
  124. package/esm/utils/replaceText.js +1 -1
  125. package/esm/utils/resize-sensor.d.ts +3 -1
  126. package/esm/utils/resize-sensor.js +34 -22
  127. package/esm/utils/resolveCondition.js +1 -1
  128. package/esm/utils/resolveVariable.js +1 -1
  129. package/esm/utils/resolveVariableAndFilter.js +1 -1
  130. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  131. package/esm/utils/scrollPosition.js +1 -1
  132. package/esm/utils/string2regExp.js +1 -1
  133. package/esm/utils/stripNumber.js +1 -1
  134. package/esm/utils/style-helper.d.ts +22 -14
  135. package/esm/utils/style-helper.js +181 -120
  136. package/esm/utils/style.js +1 -1
  137. package/esm/utils/toNumber.js +1 -1
  138. package/esm/utils/tokenize.js +1 -1
  139. package/esm/utils/tpl-builtin.js +1 -1
  140. package/esm/utils/tpl-lodash.js +1 -1
  141. package/esm/utils/tpl.js +1 -1
  142. package/esm/utils/uncontrollable.js +1 -1
  143. package/esm/utils/validations.js +1 -1
  144. package/lib/Root.js +1 -1
  145. package/lib/RootRenderer.js +8 -8
  146. package/lib/SchemaRenderer.js +16 -12
  147. package/lib/Scoped.js +3 -1
  148. package/lib/StatusScoped.js +1 -1
  149. package/lib/WithRootStore.js +1 -1
  150. package/lib/WithStore.js +9 -8
  151. package/lib/actions/Action.js +1 -1
  152. package/lib/actions/AjaxAction.js +2 -2
  153. package/lib/actions/BreakAction.js +1 -1
  154. package/lib/actions/BroadcastAction.js +1 -1
  155. package/lib/actions/CmptAction.js +1 -1
  156. package/lib/actions/ContinueAction.js +1 -1
  157. package/lib/actions/CopyAction.js +1 -1
  158. package/lib/actions/CustomAction.js +3 -1
  159. package/lib/actions/DialogAction.js +1 -1
  160. package/lib/actions/DrawerAction.js +1 -1
  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/StatusAction.js +1 -1
  167. package/lib/actions/SwitchAction.js +1 -1
  168. package/lib/actions/ToastAction.js +1 -1
  169. package/lib/components/CustomStyle.d.ts +4 -6
  170. package/lib/components/CustomStyle.js +28 -4
  171. package/lib/components/LazyComponent.d.ts +1 -2
  172. package/lib/components/LazyComponent.js +12 -9
  173. package/lib/components/Overlay.js +3 -1
  174. package/lib/components/PopOver.d.ts +12 -12
  175. package/lib/components/PopOver.js +3 -1
  176. package/lib/env.d.ts +2 -2
  177. package/lib/env.js +1 -1
  178. package/lib/envOverwrite.js +1 -1
  179. package/lib/factory.d.ts +7 -7
  180. package/lib/factory.js +1 -1
  181. package/lib/index.d.ts +1 -0
  182. package/lib/index.js +11 -3
  183. package/lib/locale.d.ts +1 -1
  184. package/lib/locale.js +3 -3
  185. package/lib/polyfills.js +1 -1
  186. package/lib/renderers/Form.d.ts +1 -1
  187. package/lib/renderers/Form.js +10 -8
  188. package/lib/renderers/Item.d.ts +24 -56
  189. package/lib/renderers/Item.js +26 -31
  190. package/lib/renderers/Options.js +14 -12
  191. package/lib/renderers/Placeholder.js +1 -1
  192. package/lib/renderers/builtin.js +1 -1
  193. package/lib/renderers/register.js +1 -1
  194. package/lib/renderers/wrapControl.js +70 -79
  195. package/lib/store/app.js +3 -1
  196. package/lib/store/combo.d.ts +384 -0
  197. package/lib/store/combo.js +1 -1
  198. package/lib/store/crud.js +31 -25
  199. package/lib/store/form.d.ts +160 -0
  200. package/lib/store/form.js +15 -13
  201. package/lib/store/formItem.d.ts +4 -0
  202. package/lib/store/formItem.js +41 -25
  203. package/lib/store/iRenderer.js +3 -1
  204. package/lib/store/index.js +1 -1
  205. package/lib/store/list.js +1 -1
  206. package/lib/store/manager.js +1 -1
  207. package/lib/store/modal.js +1 -1
  208. package/lib/store/node.js +1 -1
  209. package/lib/store/pagination.js +1 -1
  210. package/lib/store/root.d.ts +1 -1
  211. package/lib/store/root.js +11 -4
  212. package/lib/store/service.js +38 -33
  213. package/lib/store/status.js +1 -1
  214. package/lib/store/table.d.ts +760 -21
  215. package/lib/store/table.js +155 -55
  216. package/lib/store/table2.js +11 -8
  217. package/lib/theme.d.ts +18 -31
  218. package/lib/theme.js +1 -1
  219. package/lib/utils/Animation.js +1 -1
  220. package/lib/utils/ColorScale.js +1 -1
  221. package/lib/utils/DataSchema.js +1 -1
  222. package/lib/utils/DataScope.js +1 -1
  223. package/lib/utils/RootClose.js +1 -1
  224. package/lib/utils/SimpleMap.js +1 -1
  225. package/lib/utils/api.d.ts +3 -3
  226. package/lib/utils/api.js +2 -2
  227. package/lib/utils/arraySlice.js +1 -1
  228. package/lib/utils/attachmentAdpator.js +1 -1
  229. package/lib/utils/autobind.js +1 -1
  230. package/lib/utils/columnsSplit.js +1 -1
  231. package/lib/utils/dataMapping.js +1 -1
  232. package/lib/utils/date.js +1 -1
  233. package/lib/utils/debug.d.ts +1 -0
  234. package/lib/utils/debug.js +24 -1
  235. package/lib/utils/decodeEntity.js +1 -1
  236. package/lib/utils/dom.js +1 -1
  237. package/lib/utils/errors.js +1 -1
  238. package/lib/utils/escapeHtml.js +1 -1
  239. package/lib/utils/filter-schema.js +1 -1
  240. package/lib/utils/filter.js +1 -1
  241. package/lib/utils/formatDuration.js +1 -1
  242. package/lib/utils/formula.js +1 -1
  243. package/lib/utils/getVariable.js +1 -1
  244. package/lib/utils/grammar.js +1 -1
  245. package/lib/utils/handleAction.js +1 -1
  246. package/lib/utils/helper.d.ts +13 -1
  247. package/lib/utils/helper.js +101 -4
  248. package/lib/utils/highlight.js +1 -1
  249. package/lib/utils/icon.js +1 -1
  250. package/lib/utils/image.js +1 -1
  251. package/lib/utils/isPureVariable.js +1 -1
  252. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  253. package/lib/utils/keyToPath.d.ts +1 -1
  254. package/lib/utils/keyToPath.js +2 -1
  255. package/lib/utils/makeSorter.js +1 -1
  256. package/lib/utils/math.js +1 -1
  257. package/lib/utils/memoryParse.js +1 -1
  258. package/lib/utils/normalizeLink.js +1 -1
  259. package/lib/utils/normalizeOptions.js +1 -1
  260. package/lib/utils/object.js +1 -1
  261. package/lib/utils/offset.js +1 -1
  262. package/lib/utils/offsetParent.js +1 -1
  263. package/lib/utils/optionValueCompare.js +1 -1
  264. package/lib/utils/position.js +1 -1
  265. package/lib/utils/prettyBytes.js +1 -1
  266. package/lib/utils/renderer-event.js +2 -2
  267. package/lib/utils/replaceText.js +1 -1
  268. package/lib/utils/resize-sensor.d.ts +3 -1
  269. package/lib/utils/resize-sensor.js +34 -22
  270. package/lib/utils/resolveCondition.js +1 -1
  271. package/lib/utils/resolveVariable.js +1 -1
  272. package/lib/utils/resolveVariableAndFilter.js +1 -1
  273. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  274. package/lib/utils/scrollPosition.js +1 -1
  275. package/lib/utils/string2regExp.js +1 -1
  276. package/lib/utils/stripNumber.js +1 -1
  277. package/lib/utils/style-helper.d.ts +22 -14
  278. package/lib/utils/style-helper.js +188 -120
  279. package/lib/utils/style.js +1 -1
  280. package/lib/utils/toNumber.js +1 -1
  281. package/lib/utils/tokenize.js +1 -1
  282. package/lib/utils/tpl-builtin.js +1 -1
  283. package/lib/utils/tpl-lodash.js +1 -1
  284. package/lib/utils/tpl.js +1 -1
  285. package/lib/utils/uncontrollable.js +1 -1
  286. package/lib/utils/validations.js +1 -1
  287. package/package.json +5 -5
package/lib/store/form.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -59,7 +59,7 @@ var FormStore = service.ServiceStore.named('FormStore')
59
59
  var pool = self.children.concat();
60
60
  while (pool.length) {
61
61
  var current = pool.shift();
62
- if (current.storeType === 'FormItemStore') {
62
+ if (current.storeType === 'FormItemStore' && !current.isControlled) {
63
63
  formItems.push(current);
64
64
  }
65
65
  else if (!['ComboStore', 'TableStore', 'FormStore'].includes(current.storeType)) {
@@ -372,17 +372,19 @@ var FormStore = service.ServiceStore.named('FormStore')
372
372
  if ((_q = ret === null || ret === void 0 ? void 0 : ret.dispatcher) === null || _q === void 0 ? void 0 : _q.prevented) {
373
373
  return [2 /*return*/];
374
374
  }
375
- if (e_1.type === 'ServerError') {
376
- result = e_1.response;
377
- mobxStateTree.getEnv(self).notify('error', e_1.message, result.msgTimeout !== undefined
378
- ? {
379
- closeButton: true,
380
- timeout: result.msgTimeout
381
- }
382
- : undefined);
383
- }
384
- else {
385
- mobxStateTree.getEnv(self).notify('error', e_1.message);
375
+ if (!(api$1 === null || api$1 === void 0 ? void 0 : api$1.silent)) {
376
+ if (e_1.type === 'ServerError') {
377
+ result = e_1.response;
378
+ mobxStateTree.getEnv(self).notify('error', e_1.message, result.msgTimeout !== undefined
379
+ ? {
380
+ closeButton: true,
381
+ timeout: result.msgTimeout
382
+ }
383
+ : undefined);
384
+ }
385
+ else {
386
+ mobxStateTree.getEnv(self).notify('error', e_1.message);
387
+ }
386
388
  }
387
389
  throw e_1;
388
390
  case 15: return [2 /*return*/];
@@ -9,6 +9,7 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
9
9
  childrenIds: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>, [undefined]>;
10
10
  } & {
11
11
  isFocused: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
12
+ isControlled: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
12
13
  type: import("mobx-state-tree").IType<string | undefined, string, string>;
13
14
  label: import("mobx-state-tree").IType<string | undefined, string, string>;
14
15
  unique: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
@@ -52,6 +53,8 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
52
53
  resetValue: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
53
54
  validateOnChange: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
54
55
  inputGroupControl: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IType<any, any, any>, [undefined]>;
56
+ colIndex: import("mobx-state-tree").IType<any, any, any>;
57
+ rowIndex: import("mobx-state-tree").IType<any, any, any>;
55
58
  }, {
56
59
  readonly parentStore: any;
57
60
  readonly __: any;
@@ -140,6 +143,7 @@ export declare const FormItemStore: import("mobx-state-tree").IModelType<{
140
143
  addSubFormItem: (item: IFormItemStore) => void;
141
144
  removeSubFormItem: (item: IFormItemStore) => void;
142
145
  loadAutoUpdateData: (api: Api, data?: object, silent?: boolean) => Promise<Payload>;
146
+ setIsControlled: (value: any) => void;
143
147
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
144
148
  export type IFormItemStore = Instance<typeof FormItemStore>;
145
149
  export type SFormItemStore = SnapshotIn<typeof FormItemStore>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -52,6 +52,7 @@ var getSelectedOptionsCache = {
52
52
  var FormItemStore = node.StoreNode.named('FormItemStore')
53
53
  .props({
54
54
  isFocused: false,
55
+ isControlled: false,
55
56
  type: '',
56
57
  label: '',
57
58
  unique: false,
@@ -92,7 +93,9 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
92
93
  resetValue: mobxStateTree.types.optional(mobxStateTree.types.frozen(), ''),
93
94
  validateOnChange: false,
94
95
  /** 当前表单项所属的InputGroup父元素, 用于收集InputGroup的子元素 */
95
- inputGroupControl: mobxStateTree.types.optional(mobxStateTree.types.frozen(), {})
96
+ inputGroupControl: mobxStateTree.types.optional(mobxStateTree.types.frozen(), {}),
97
+ colIndex: mobxStateTree.types.frozen(),
98
+ rowIndex: mobxStateTree.types.frozen()
96
99
  })
97
100
  .views(function (self) {
98
101
  function getForm() {
@@ -255,22 +258,27 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
255
258
  object.isObject(inputGroupControl) &&
256
259
  (inputGroupControl === null || inputGroupControl === void 0 ? void 0 : inputGroupControl.name) != null &&
257
260
  (self.inputGroupControl = inputGroupControl);
258
- rules = tslib.__assign(tslib.__assign({}, rules), { isRequired: self.required || (rules === null || rules === void 0 ? void 0 : rules.isRequired) });
259
- // todo 这个弄个配置由渲染器自己来决定
260
- // 暂时先这样
261
- if (~['input-text', 'textarea'].indexOf(self.type)) {
262
- if (typeof minLength === 'number') {
263
- rules.minLength = minLength;
261
+ if (typeof rules !== 'undefined' ||
262
+ typeof required !== 'undefined' ||
263
+ typeof minLength === 'number' ||
264
+ typeof maxLength === 'number') {
265
+ rules = tslib.__assign(tslib.__assign({}, (rules !== null && rules !== void 0 ? rules : self.rules)), { isRequired: self.required || (rules === null || rules === void 0 ? void 0 : rules.isRequired) });
266
+ // todo 这个弄个配置由渲染器自己来决定
267
+ // 暂时先这样
268
+ if (~['input-text', 'textarea'].indexOf(self.type)) {
269
+ if (typeof minLength === 'number') {
270
+ rules.minLength = minLength;
271
+ }
272
+ if (typeof maxLength === 'number') {
273
+ rules.maxLength = maxLength;
274
+ }
264
275
  }
265
- if (typeof maxLength === 'number') {
266
- rules.maxLength = maxLength;
276
+ if (helper.isObjectShallowModified(rules, self.rules)) {
277
+ self.rules = rules;
278
+ clearError('builtin');
279
+ self.validated = false;
267
280
  }
268
281
  }
269
- if (helper.isObjectShallowModified(rules, self.rules)) {
270
- self.rules = rules;
271
- clearError('builtin');
272
- self.validated = false;
273
- }
274
282
  }
275
283
  function focus() {
276
284
  self.isFocused = true;
@@ -451,12 +459,13 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
451
459
  if (!msg) {
452
460
  msg = "status: ".concat(json.status);
453
461
  }
454
- mobxStateTree.getEnv(self).notify('error', (_e = (_d = apiObject.messages) === null || _d === void 0 ? void 0 : _d.failed) !== null && _e !== void 0 ? _e : (self.errors.join('') || "".concat(apiObject.url, ": ").concat(msg)), json.msgTimeout !== undefined
455
- ? {
456
- closeButton: true,
457
- timeout: json.msgTimeout
458
- }
459
- : undefined);
462
+ !(api$1 === null || api$1 === void 0 ? void 0 : api$1.silent) &&
463
+ mobxStateTree.getEnv(self).notify('error', (_e = (_d = apiObject.messages) === null || _d === void 0 ? void 0 : _d.failed) !== null && _e !== void 0 ? _e : (self.errors.join('') || "".concat(apiObject.url, ": ").concat(msg)), json.msgTimeout !== undefined
464
+ ? {
465
+ closeButton: true,
466
+ timeout: json.msgTimeout
467
+ }
468
+ : undefined);
460
469
  }
461
470
  else {
462
471
  result = json;
@@ -474,7 +483,7 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
474
483
  return [2 /*return*/];
475
484
  }
476
485
  console.error(e_2);
477
- env.notify('error', e_2.message);
486
+ !(api$1 === null || api$1 === void 0 ? void 0 : api$1.silent) && env.notify('error', e_2.message);
478
487
  return [2 /*return*/];
479
488
  case 3: return [2 /*return*/];
480
489
  }
@@ -554,6 +563,7 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
554
563
  return [2 /*return*/, json.data];
555
564
  }
556
565
  !silent &&
566
+ !(api === null || api === void 0 ? void 0 : api.silent) &&
557
567
  mobxStateTree.getEnv(self).notify('info', self.__('FormItem.autoFillLoadFailed'));
558
568
  return [2 /*return*/];
559
569
  }
@@ -748,8 +758,10 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
748
758
  function syncOptions(originOptions, data) {
749
759
  var _a;
750
760
  if (!self.options.length && typeof self.value === 'undefined') {
751
- self.selectedOptions = [];
752
- self.filteredOptions = [];
761
+ helper.isArrayChildrenModified(self.filteredOptions, []) &&
762
+ (self.filteredOptions = []);
763
+ helper.isArrayChildrenModified(self.selectedOptions, []) &&
764
+ (self.selectedOptions = []);
753
765
  return;
754
766
  }
755
767
  var value = self.tmpValue;
@@ -925,6 +937,9 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
925
937
  self.itemsRef.splice(idx, 1);
926
938
  }
927
939
  }
940
+ function setIsControlled(value) {
941
+ self.isControlled = !!value;
942
+ }
928
943
  return {
929
944
  focus: focus,
930
945
  blur: blur,
@@ -950,7 +965,8 @@ var FormItemStore = node.StoreNode.named('FormItemStore')
950
965
  changeEmitedValue: changeEmitedValue,
951
966
  addSubFormItem: addSubFormItem,
952
967
  removeSubFormItem: removeSubFormItem,
953
- loadAutoUpdateData: loadAutoUpdateData
968
+ loadAutoUpdateData: loadAutoUpdateData,
969
+ setIsControlled: setIsControlled
954
970
  };
955
971
  });
956
972
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -45,6 +45,8 @@ require('react-overlays/useRootClose');
45
45
  require('react-dom');
46
46
  require('lodash/mapValues');
47
47
  require('lodash/camelCase');
48
+ require('lodash/map');
49
+ require('lodash/isEmpty');
48
50
  require('uncontrollable');
49
51
  require('hoist-non-react-statics');
50
52
  require('../utils/validations.js');
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/store/list.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/store/node.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -78,7 +78,7 @@ export declare const RootStore: import("mobx-state-tree").IModelType<{
78
78
  } & {
79
79
  readonly downStream: any;
80
80
  } & {
81
- setContext(context: any): void;
81
+ updateContext(context: any): void;
82
82
  setRuntimeError(error: any, errorStack: any): void;
83
83
  updateLocation(location?: any, parseFn?: Function): void;
84
84
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
package/lib/store/root.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -43,6 +43,8 @@ require('react-dom');
43
43
  require('../utils/SimpleMap.js');
44
44
  require('lodash/mapValues');
45
45
  require('lodash/camelCase');
46
+ require('lodash/map');
47
+ require('lodash/isEmpty');
46
48
  require('uncontrollable');
47
49
  require('hoist-non-react-statics');
48
50
  require('../utils/validations.js');
@@ -75,15 +77,20 @@ var RootStore = service.ServiceStore.named('RootStore')
75
77
  }
76
78
  }); })
77
79
  .actions(function (self) { return ({
78
- setContext: function (context) {
79
- self.context = context;
80
+ updateContext: function (context) {
81
+ // 因为 context 不是受控属性,直接共用引用好了
82
+ // 否则还会触发孩子节点的重新渲染
83
+ Object.assign(self.context, context);
80
84
  },
81
85
  setRuntimeError: function (error, errorStack) {
82
86
  self.runtimeError = error;
83
87
  self.runtimeErrorStack = errorStack;
84
88
  },
85
89
  updateLocation: function (location, parseFn) {
86
- self.query = parseFn ? parseFn(location) : helper.parseQuery(location);
90
+ var query = parseFn ? parseFn(location) : helper.parseQuery(location);
91
+ if (helper.isObjectShallowModified(query, self.query, false)) {
92
+ self.query = query;
93
+ }
87
94
  }
88
95
  }); });
89
96
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -84,12 +84,13 @@ var ServiceStore = iRenderer.iRendererStore
84
84
  fetchCancel = null;
85
85
  if (!!json.ok) return [3 /*break*/, 2];
86
86
  updateMessage((_c = (_b = (_a = api$1 === null || api$1 === void 0 ? void 0 : api$1.messages) === null || _a === void 0 ? void 0 : _a.failed) !== null && _b !== void 0 ? _b : json.msg) !== null && _c !== void 0 ? _c : (options && options.errorMessage), true);
87
- mobxStateTree.getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
88
- ? {
89
- closeButton: true,
90
- timeout: json.msgTimeout
91
- }
92
- : undefined);
87
+ !api$1.silent &&
88
+ mobxStateTree.getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
89
+ ? {
90
+ closeButton: true,
91
+ timeout: json.msgTimeout
92
+ }
93
+ : undefined);
93
94
  return [3 /*break*/, 5];
94
95
  case 2:
95
96
  self.updatedAt = Date.now();
@@ -129,7 +130,7 @@ var ServiceStore = iRenderer.iRendererStore
129
130
  if (e_1 && e_1.message === 'Network Error') {
130
131
  message = self.__('networkError');
131
132
  }
132
- env.notify('error', message);
133
+ !api$1.silent && env.notify('error', message);
133
134
  return [2 /*return*/];
134
135
  case 7: return [2 /*return*/];
135
136
  }
@@ -166,12 +167,13 @@ var ServiceStore = iRenderer.iRendererStore
166
167
  }
167
168
  if (!!json.ok) return [3 /*break*/, 2];
168
169
  updateMessage((_c = (_b = (_a = api$1 === null || api$1 === void 0 ? void 0 : api$1.messages) === null || _a === void 0 ? void 0 : _a.failed) !== null && _b !== void 0 ? _b : json.msg) !== null && _c !== void 0 ? _c : (options && options.errorMessage), true);
169
- mobxStateTree.getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
170
- ? {
171
- closeButton: true,
172
- timeout: json.msgTimeout
173
- }
174
- : undefined);
170
+ !api$1.silent &&
171
+ mobxStateTree.getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
172
+ ? {
173
+ closeButton: true,
174
+ timeout: json.msgTimeout
175
+ }
176
+ : undefined);
175
177
  return [3 /*break*/, 5];
176
178
  case 2:
177
179
  if (!(options && options.onSuccess)) return [3 /*break*/, 4];
@@ -206,7 +208,7 @@ var ServiceStore = iRenderer.iRendererStore
206
208
  if (e_2 && e_2.message === 'Network Error') {
207
209
  message = self.__('networkError');
208
210
  }
209
- env.notify('error', message);
211
+ !api$1.silent && env.notify('error', message);
210
212
  return [2 /*return*/];
211
213
  case 7: return [2 /*return*/];
212
214
  }
@@ -272,17 +274,19 @@ var ServiceStore = iRenderer.iRendererStore
272
274
  return [2 /*return*/];
273
275
  }
274
276
  console.error(e_3);
275
- if (e_3.type === 'ServerError') {
276
- result = e_3.response;
277
- mobxStateTree.getEnv(self).notify('error', e_3.message, result.msgTimeout !== undefined
278
- ? {
279
- closeButton: true,
280
- timeout: result.msgTimeout
281
- }
282
- : undefined);
283
- }
284
- else {
285
- mobxStateTree.getEnv(self).notify('error', e_3.message);
277
+ if (!api$1.silent) {
278
+ if (e_3.type === 'ServerError') {
279
+ result = e_3.response;
280
+ mobxStateTree.getEnv(self).notify('error', e_3.message, result.msgTimeout !== undefined
281
+ ? {
282
+ closeButton: true,
283
+ timeout: result.msgTimeout
284
+ }
285
+ : undefined);
286
+ }
287
+ else {
288
+ mobxStateTree.getEnv(self).notify('error', e_3.message);
289
+ }
286
290
  }
287
291
  throw e_3;
288
292
  case 9: return [2 /*return*/];
@@ -321,12 +325,13 @@ var ServiceStore = iRenderer.iRendererStore
321
325
  fetchSchemaCancel = null;
322
326
  if (!json.ok) {
323
327
  updateMessage((_d = (_c = (_b = (_a = api$1 === null || api$1 === void 0 ? void 0 : api$1.messages) === null || _a === void 0 ? void 0 : _a.failed) !== null && _b !== void 0 ? _b : json.msg) !== null && _c !== void 0 ? _c : (options && options.errorMessage)) !== null && _d !== void 0 ? _d : self.__('fetchFailed'), true);
324
- mobxStateTree.getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
325
- ? {
326
- closeButton: true,
327
- timeout: json.msgTimeout
328
- }
329
- : undefined);
328
+ !(api$1 === null || api$1 === void 0 ? void 0 : api$1.silent) &&
329
+ mobxStateTree.getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
330
+ ? {
331
+ closeButton: true,
332
+ timeout: json.msgTimeout
333
+ }
334
+ : undefined);
330
335
  }
331
336
  else {
332
337
  if (json.data) {
@@ -367,7 +372,7 @@ var ServiceStore = iRenderer.iRendererStore
367
372
  if (e_4 && e_4.message === 'Network Error') {
368
373
  message = self.__('networkError');
369
374
  }
370
- env.notify('error', message);
375
+ !(api$1 === null || api$1 === void 0 ? void 0 : api$1.silent) && env.notify('error', message);
371
376
  return [3 /*break*/, 3];
372
377
  case 3: return [2 /*return*/];
373
378
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5