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/esm/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
 
@@ -45,7 +45,7 @@ var FormStore = ServiceStore.named('FormStore')
45
45
  var pool = self.children.concat();
46
46
  while (pool.length) {
47
47
  var current = pool.shift();
48
- if (current.storeType === 'FormItemStore') {
48
+ if (current.storeType === 'FormItemStore' && !current.isControlled) {
49
49
  formItems.push(current);
50
50
  }
51
51
  else if (!['ComboStore', 'TableStore', 'FormStore'].includes(current.storeType)) {
@@ -358,17 +358,19 @@ var FormStore = ServiceStore.named('FormStore')
358
358
  if ((_q = ret === null || ret === void 0 ? void 0 : ret.dispatcher) === null || _q === void 0 ? void 0 : _q.prevented) {
359
359
  return [2 /*return*/];
360
360
  }
361
- if (e_1.type === 'ServerError') {
362
- result = e_1.response;
363
- getEnv(self).notify('error', e_1.message, result.msgTimeout !== undefined
364
- ? {
365
- closeButton: true,
366
- timeout: result.msgTimeout
367
- }
368
- : undefined);
369
- }
370
- else {
371
- getEnv(self).notify('error', e_1.message);
361
+ if (!(api === null || api === void 0 ? void 0 : api.silent)) {
362
+ if (e_1.type === 'ServerError') {
363
+ result = e_1.response;
364
+ getEnv(self).notify('error', e_1.message, result.msgTimeout !== undefined
365
+ ? {
366
+ closeButton: true,
367
+ timeout: result.msgTimeout
368
+ }
369
+ : undefined);
370
+ }
371
+ else {
372
+ getEnv(self).notify('error', e_1.message);
373
+ }
372
374
  }
373
375
  throw e_1;
374
376
  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
 
@@ -12,7 +12,7 @@ import { ComboStore } from './combo.js';
12
12
  import { evalExpression } from '../utils/tpl.js';
13
13
  import { isEffectiveApi, buildApi } from '../utils/api.js';
14
14
  import findIndex from 'lodash/findIndex';
15
- import { findTree, spliceTree, flattenTree, findTreeIndex, isObjectShallowModified, filterTree, eachTree, isArrayChildrenModified } from '../utils/helper.js';
15
+ import { findTree, spliceTree, flattenTree, findTreeIndex, isObjectShallowModified, filterTree, isArrayChildrenModified, eachTree } from '../utils/helper.js';
16
16
  import find from 'lodash/find';
17
17
  import isEqual from 'lodash/isEqual';
18
18
  import isPlainObject from 'lodash/isPlainObject';
@@ -40,6 +40,7 @@ var getSelectedOptionsCache = {
40
40
  var FormItemStore = StoreNode.named('FormItemStore')
41
41
  .props({
42
42
  isFocused: false,
43
+ isControlled: false,
43
44
  type: '',
44
45
  label: '',
45
46
  unique: false,
@@ -80,7 +81,9 @@ var FormItemStore = StoreNode.named('FormItemStore')
80
81
  resetValue: types.optional(types.frozen(), ''),
81
82
  validateOnChange: false,
82
83
  /** 当前表单项所属的InputGroup父元素, 用于收集InputGroup的子元素 */
83
- inputGroupControl: types.optional(types.frozen(), {})
84
+ inputGroupControl: types.optional(types.frozen(), {}),
85
+ colIndex: types.frozen(),
86
+ rowIndex: types.frozen()
84
87
  })
85
88
  .views(function (self) {
86
89
  function getForm() {
@@ -243,22 +246,27 @@ var FormItemStore = StoreNode.named('FormItemStore')
243
246
  isObject(inputGroupControl) &&
244
247
  (inputGroupControl === null || inputGroupControl === void 0 ? void 0 : inputGroupControl.name) != null &&
245
248
  (self.inputGroupControl = inputGroupControl);
246
- rules = __assign(__assign({}, rules), { isRequired: self.required || (rules === null || rules === void 0 ? void 0 : rules.isRequired) });
247
- // todo 这个弄个配置由渲染器自己来决定
248
- // 暂时先这样
249
- if (~['input-text', 'textarea'].indexOf(self.type)) {
250
- if (typeof minLength === 'number') {
251
- rules.minLength = minLength;
249
+ if (typeof rules !== 'undefined' ||
250
+ typeof required !== 'undefined' ||
251
+ typeof minLength === 'number' ||
252
+ typeof maxLength === 'number') {
253
+ rules = __assign(__assign({}, (rules !== null && rules !== void 0 ? rules : self.rules)), { isRequired: self.required || (rules === null || rules === void 0 ? void 0 : rules.isRequired) });
254
+ // todo 这个弄个配置由渲染器自己来决定
255
+ // 暂时先这样
256
+ if (~['input-text', 'textarea'].indexOf(self.type)) {
257
+ if (typeof minLength === 'number') {
258
+ rules.minLength = minLength;
259
+ }
260
+ if (typeof maxLength === 'number') {
261
+ rules.maxLength = maxLength;
262
+ }
252
263
  }
253
- if (typeof maxLength === 'number') {
254
- rules.maxLength = maxLength;
264
+ if (isObjectShallowModified(rules, self.rules)) {
265
+ self.rules = rules;
266
+ clearError('builtin');
267
+ self.validated = false;
255
268
  }
256
269
  }
257
- if (isObjectShallowModified(rules, self.rules)) {
258
- self.rules = rules;
259
- clearError('builtin');
260
- self.validated = false;
261
- }
262
270
  }
263
271
  function focus() {
264
272
  self.isFocused = true;
@@ -439,12 +447,13 @@ var FormItemStore = StoreNode.named('FormItemStore')
439
447
  if (!msg) {
440
448
  msg = "status: ".concat(json.status);
441
449
  }
442
- 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
443
- ? {
444
- closeButton: true,
445
- timeout: json.msgTimeout
446
- }
447
- : undefined);
450
+ !(api === null || api === void 0 ? void 0 : api.silent) &&
451
+ 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
452
+ ? {
453
+ closeButton: true,
454
+ timeout: json.msgTimeout
455
+ }
456
+ : undefined);
448
457
  }
449
458
  else {
450
459
  result = json;
@@ -462,7 +471,7 @@ var FormItemStore = StoreNode.named('FormItemStore')
462
471
  return [2 /*return*/];
463
472
  }
464
473
  console.error(e_2);
465
- env.notify('error', e_2.message);
474
+ !(api === null || api === void 0 ? void 0 : api.silent) && env.notify('error', e_2.message);
466
475
  return [2 /*return*/];
467
476
  case 3: return [2 /*return*/];
468
477
  }
@@ -542,6 +551,7 @@ var FormItemStore = StoreNode.named('FormItemStore')
542
551
  return [2 /*return*/, json.data];
543
552
  }
544
553
  !silent &&
554
+ !(api === null || api === void 0 ? void 0 : api.silent) &&
545
555
  getEnv(self).notify('info', self.__('FormItem.autoFillLoadFailed'));
546
556
  return [2 /*return*/];
547
557
  }
@@ -736,8 +746,10 @@ var FormItemStore = StoreNode.named('FormItemStore')
736
746
  function syncOptions(originOptions, data) {
737
747
  var _a;
738
748
  if (!self.options.length && typeof self.value === 'undefined') {
739
- self.selectedOptions = [];
740
- self.filteredOptions = [];
749
+ isArrayChildrenModified(self.filteredOptions, []) &&
750
+ (self.filteredOptions = []);
751
+ isArrayChildrenModified(self.selectedOptions, []) &&
752
+ (self.selectedOptions = []);
741
753
  return;
742
754
  }
743
755
  var value = self.tmpValue;
@@ -913,6 +925,9 @@ var FormItemStore = StoreNode.named('FormItemStore')
913
925
  self.itemsRef.splice(idx, 1);
914
926
  }
915
927
  }
928
+ function setIsControlled(value) {
929
+ self.isControlled = !!value;
930
+ }
916
931
  return {
917
932
  focus: focus,
918
933
  blur: blur,
@@ -938,7 +953,8 @@ var FormItemStore = StoreNode.named('FormItemStore')
938
953
  changeEmitedValue: changeEmitedValue,
939
954
  addSubFormItem: addSubFormItem,
940
955
  removeSubFormItem: removeSubFormItem,
941
- loadAutoUpdateData: loadAutoUpdateData
956
+ loadAutoUpdateData: loadAutoUpdateData,
957
+ setIsControlled: setIsControlled
942
958
  };
943
959
  });
944
960
 
@@ -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
 
@@ -38,6 +38,8 @@ import '../utils/resize-sensor.js';
38
38
  import 'react-overlays/useRootClose';
39
39
  import 'lodash/mapValues';
40
40
  import 'lodash/camelCase';
41
+ import 'lodash/map';
42
+ import 'lodash/isEmpty';
41
43
  import 'uncontrollable';
42
44
  import 'hoist-non-react-statics';
43
45
  import '../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/esm/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/esm/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/esm/store/root.js CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.1
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 { parseQuery } from '../utils/helper.js';
8
+ import { parseQuery, isObjectShallowModified } from '../utils/helper.js';
9
9
  import { ServiceStore } from './service.js';
10
10
  import '../utils/api.js';
11
11
  import '../utils/ColorScale.js';
@@ -36,6 +36,8 @@ import 'react-overlays/useRootClose';
36
36
  import '../utils/SimpleMap.js';
37
37
  import 'lodash/mapValues';
38
38
  import 'lodash/camelCase';
39
+ import 'lodash/map';
40
+ import 'lodash/isEmpty';
39
41
  import 'uncontrollable';
40
42
  import 'hoist-non-react-statics';
41
43
  import '../utils/validations.js';
@@ -68,15 +70,20 @@ var RootStore = ServiceStore.named('RootStore')
68
70
  }
69
71
  }); })
70
72
  .actions(function (self) { return ({
71
- setContext: function (context) {
72
- self.context = context;
73
+ updateContext: function (context) {
74
+ // 因为 context 不是受控属性,直接共用引用好了
75
+ // 否则还会触发孩子节点的重新渲染
76
+ Object.assign(self.context, context);
73
77
  },
74
78
  setRuntimeError: function (error, errorStack) {
75
79
  self.runtimeError = error;
76
80
  self.runtimeErrorStack = errorStack;
77
81
  },
78
82
  updateLocation: function (location, parseFn) {
79
- self.query = parseFn ? parseFn(location) : parseQuery(location);
83
+ var query = parseFn ? parseFn(location) : parseQuery(location);
84
+ if (isObjectShallowModified(query, self.query, false)) {
85
+ self.query = query;
86
+ }
80
87
  }
81
88
  }); });
82
89
 
@@ -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
 
@@ -80,12 +80,13 @@ var ServiceStore = iRendererStore
80
80
  fetchCancel = null;
81
81
  if (!!json.ok) return [3 /*break*/, 2];
82
82
  updateMessage((_c = (_b = (_a = api === null || api === void 0 ? void 0 : api.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);
83
- getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
84
- ? {
85
- closeButton: true,
86
- timeout: json.msgTimeout
87
- }
88
- : undefined);
83
+ !api.silent &&
84
+ getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
85
+ ? {
86
+ closeButton: true,
87
+ timeout: json.msgTimeout
88
+ }
89
+ : undefined);
89
90
  return [3 /*break*/, 5];
90
91
  case 2:
91
92
  self.updatedAt = Date.now();
@@ -125,7 +126,7 @@ var ServiceStore = iRendererStore
125
126
  if (e_1 && e_1.message === 'Network Error') {
126
127
  message = self.__('networkError');
127
128
  }
128
- env.notify('error', message);
129
+ !api.silent && env.notify('error', message);
129
130
  return [2 /*return*/];
130
131
  case 7: return [2 /*return*/];
131
132
  }
@@ -162,12 +163,13 @@ var ServiceStore = iRendererStore
162
163
  }
163
164
  if (!!json.ok) return [3 /*break*/, 2];
164
165
  updateMessage((_c = (_b = (_a = api === null || api === void 0 ? void 0 : api.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);
165
- getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
166
- ? {
167
- closeButton: true,
168
- timeout: json.msgTimeout
169
- }
170
- : undefined);
166
+ !api.silent &&
167
+ getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
168
+ ? {
169
+ closeButton: true,
170
+ timeout: json.msgTimeout
171
+ }
172
+ : undefined);
171
173
  return [3 /*break*/, 5];
172
174
  case 2:
173
175
  if (!(options && options.onSuccess)) return [3 /*break*/, 4];
@@ -202,7 +204,7 @@ var ServiceStore = iRendererStore
202
204
  if (e_2 && e_2.message === 'Network Error') {
203
205
  message = self.__('networkError');
204
206
  }
205
- env.notify('error', message);
207
+ !api.silent && env.notify('error', message);
206
208
  return [2 /*return*/];
207
209
  case 7: return [2 /*return*/];
208
210
  }
@@ -268,17 +270,19 @@ var ServiceStore = iRendererStore
268
270
  return [2 /*return*/];
269
271
  }
270
272
  console.error(e_3);
271
- if (e_3.type === 'ServerError') {
272
- result = e_3.response;
273
- getEnv(self).notify('error', e_3.message, result.msgTimeout !== undefined
274
- ? {
275
- closeButton: true,
276
- timeout: result.msgTimeout
277
- }
278
- : undefined);
279
- }
280
- else {
281
- getEnv(self).notify('error', e_3.message);
273
+ if (!api.silent) {
274
+ if (e_3.type === 'ServerError') {
275
+ result = e_3.response;
276
+ getEnv(self).notify('error', e_3.message, result.msgTimeout !== undefined
277
+ ? {
278
+ closeButton: true,
279
+ timeout: result.msgTimeout
280
+ }
281
+ : undefined);
282
+ }
283
+ else {
284
+ getEnv(self).notify('error', e_3.message);
285
+ }
282
286
  }
283
287
  throw e_3;
284
288
  case 9: return [2 /*return*/];
@@ -317,12 +321,13 @@ var ServiceStore = iRendererStore
317
321
  fetchSchemaCancel = null;
318
322
  if (!json.ok) {
319
323
  updateMessage((_d = (_c = (_b = (_a = api === null || api === void 0 ? void 0 : api.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);
320
- getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
321
- ? {
322
- closeButton: true,
323
- timeout: json.msgTimeout
324
- }
325
- : undefined);
324
+ !(api === null || api === void 0 ? void 0 : api.silent) &&
325
+ getEnv(self).notify('error', self.msg, json.msgTimeout !== undefined
326
+ ? {
327
+ closeButton: true,
328
+ timeout: json.msgTimeout
329
+ }
330
+ : undefined);
326
331
  }
327
332
  else {
328
333
  if (json.data) {
@@ -363,7 +368,7 @@ var ServiceStore = iRendererStore
363
368
  if (e_4 && e_4.message === 'Network Error') {
364
369
  message = self.__('networkError');
365
370
  }
366
- env.notify('error', message);
371
+ !(api === null || api === void 0 ? void 0 : api.silent) && env.notify('error', message);
367
372
  return [3 /*break*/, 3];
368
373
  case 3: return [2 /*return*/];
369
374
  }
@@ -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