amis-core 6.12.0-beta.1 → 6.12.0-beta.11

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 (303) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +1 -1
  3. package/esm/SchemaRenderer.js +1 -1
  4. package/esm/Scoped.js +2 -1
  5. package/esm/StatusScoped.js +1 -1
  6. package/esm/StyleManager.js +1 -1
  7. package/esm/WithRootStore.js +1 -1
  8. package/esm/WithStore.js +1 -1
  9. package/esm/actions/Action.js +1 -1
  10. package/esm/actions/AjaxAction.js +2 -2
  11. package/esm/actions/BreakAction.js +1 -1
  12. package/esm/actions/BroadcastAction.js +1 -1
  13. package/esm/actions/CmptAction.js +1 -1
  14. package/esm/actions/ContinueAction.js +1 -1
  15. package/esm/actions/CopyAction.js +1 -1
  16. package/esm/actions/CustomAction.js +2 -1
  17. package/esm/actions/DialogAction.js +2 -1
  18. package/esm/actions/DrawerAction.js +2 -1
  19. package/esm/actions/EmailAction.js +1 -1
  20. package/esm/actions/EventAction.js +2 -1
  21. package/esm/actions/LinkAction.js +1 -1
  22. package/esm/actions/LoopAction.js +1 -1
  23. package/esm/actions/PageAction.js +1 -1
  24. package/esm/actions/ParallelAction.js +1 -1
  25. package/esm/actions/PrintAction.js +1 -1
  26. package/esm/actions/StatusAction.js +1 -1
  27. package/esm/actions/SwitchAction.js +1 -1
  28. package/esm/actions/ToastAction.js +1 -1
  29. package/esm/actions/WaitAction.js +1 -1
  30. package/esm/components/Animations.js +2 -1
  31. package/esm/components/CustomStyle.js +2 -1
  32. package/esm/components/ErrorBoundary.js +1 -1
  33. package/esm/components/LazyComponent.js +1 -1
  34. package/esm/components/Overlay.js +2 -1
  35. package/esm/components/PopOver.js +2 -1
  36. package/esm/env.js +1 -1
  37. package/esm/envOverwrite.d.ts +1 -1
  38. package/esm/envOverwrite.js +4 -3
  39. package/esm/factory.js +1 -1
  40. package/esm/globalVar.js +1 -1
  41. package/esm/globalVarClientHandler.js +1 -1
  42. package/esm/globalVarDefaultValueHandler.js +1 -1
  43. package/esm/index.js +7 -7
  44. package/esm/locale.js +1 -1
  45. package/esm/polyfills.js +1 -1
  46. package/esm/renderers/Form.js +4 -3
  47. package/esm/renderers/Item.js +1 -1
  48. package/esm/renderers/Options.d.ts +2 -2
  49. package/esm/renderers/Options.js +11 -5
  50. package/esm/renderers/Placeholder.js +1 -1
  51. package/esm/renderers/builtin.js +1 -1
  52. package/esm/renderers/register.js +1 -1
  53. package/esm/renderers/wrapControl.js +18 -4
  54. package/esm/store/app.js +2 -1
  55. package/esm/store/combo.d.ts +4 -2
  56. package/esm/store/combo.js +1 -1
  57. package/esm/store/crud.d.ts +4 -0
  58. package/esm/store/crud.js +131 -110
  59. package/esm/store/form.d.ts +3 -1
  60. package/esm/store/form.js +17 -11
  61. package/esm/store/formItem.js +1 -1
  62. package/esm/store/iRenderer.js +5 -1
  63. package/esm/store/index.js +1 -1
  64. package/esm/store/list.js +1 -1
  65. package/esm/store/manager.js +1 -1
  66. package/esm/store/modal.js +1 -1
  67. package/esm/store/node.js +1 -1
  68. package/esm/store/pagination.js +1 -1
  69. package/esm/store/root.js +2 -1
  70. package/esm/store/service.js +2 -1
  71. package/esm/store/status.js +1 -1
  72. package/esm/store/table.d.ts +5 -2
  73. package/esm/store/table.js +28 -19
  74. package/esm/store/table2.js +1 -1
  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/animations.d.ts +1 -0
  83. package/esm/utils/animations.js +17 -9
  84. package/esm/utils/api.js +1 -1
  85. package/esm/utils/arraySlice.js +1 -1
  86. package/esm/utils/attachmentAdpator.js +3 -29
  87. package/esm/utils/autobind.js +1 -1
  88. package/esm/utils/browser.js +1 -1
  89. package/esm/utils/columnsSplit.js +1 -1
  90. package/esm/utils/concatData.js +1 -1
  91. package/esm/utils/dataMapping.js +1 -1
  92. package/esm/utils/date.js +1 -1
  93. package/esm/utils/debug.js +1 -1
  94. package/esm/utils/decodeEntity.js +1 -1
  95. package/esm/utils/dom.d.ts +1 -0
  96. package/esm/utils/dom.js +39 -2
  97. package/esm/utils/errors.js +1 -1
  98. package/esm/utils/escapeHtml.js +1 -1
  99. package/esm/utils/filter-schema.js +1 -1
  100. package/esm/utils/filter.js +1 -1
  101. package/esm/utils/formatDuration.js +1 -1
  102. package/esm/utils/formula.js +1 -1
  103. package/esm/utils/getVariable.js +1 -1
  104. package/esm/utils/grammar.js +1 -1
  105. package/esm/utils/handleAction.js +1 -1
  106. package/esm/utils/helper.d.ts +1 -0
  107. package/esm/utils/helper.js +9 -2
  108. package/esm/utils/highlight.js +1 -1
  109. package/esm/utils/icon.js +1 -1
  110. package/esm/utils/image.js +1 -1
  111. package/esm/utils/index.js +3 -2
  112. package/esm/utils/isPureVariable.js +1 -1
  113. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  114. package/esm/utils/keyToPath.js +1 -1
  115. package/esm/utils/labelToString.js +1 -1
  116. package/esm/utils/loopTooMuch.js +1 -1
  117. package/esm/utils/makeSorter.js +1 -1
  118. package/esm/utils/math.js +1 -1
  119. package/esm/utils/memoryParse.js +1 -1
  120. package/esm/utils/normalizeLink.js +1 -1
  121. package/esm/utils/normalizeOptions.js +1 -1
  122. package/esm/utils/object.js +1 -1
  123. package/esm/utils/offset.js +1 -1
  124. package/esm/utils/offsetParent.js +1 -1
  125. package/esm/utils/optionValueCompare.js +1 -1
  126. package/esm/utils/position.js +1 -1
  127. package/esm/utils/prettyBytes.js +1 -1
  128. package/esm/utils/printElement.js +1 -1
  129. package/esm/utils/renderer-event.js +1 -1
  130. package/esm/utils/replaceText.js +1 -1
  131. package/esm/utils/resize-sensor.js +1 -1
  132. package/esm/utils/resolveCondition.js +1 -1
  133. package/esm/utils/resolveVariable.js +1 -1
  134. package/esm/utils/resolveVariableAndFilter.js +1 -1
  135. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  136. package/esm/utils/scrollPosition.js +1 -1
  137. package/esm/utils/string2regExp.js +1 -1
  138. package/esm/utils/stripNumber.js +1 -1
  139. package/esm/utils/style-helper.d.ts +1 -0
  140. package/esm/utils/style-helper.js +10 -7
  141. package/esm/utils/style.js +1 -1
  142. package/esm/utils/toNumber.js +1 -1
  143. package/esm/utils/tokenize.js +1 -1
  144. package/esm/utils/tpl-builtin.js +1 -1
  145. package/esm/utils/tpl-lodash.js +1 -1
  146. package/esm/utils/tpl.js +1 -1
  147. package/esm/utils/uncontrollable.js +1 -1
  148. package/esm/utils/validateId.js +1 -1
  149. package/esm/utils/validations.js +1 -1
  150. package/esm/utils/visitedCache.js +1 -1
  151. package/lib/Root.js +1 -1
  152. package/lib/RootRenderer.d.ts +1 -1
  153. package/lib/RootRenderer.js +1 -1
  154. package/lib/SchemaRenderer.js +1 -1
  155. package/lib/Scoped.js +2 -1
  156. package/lib/StatusScoped.js +1 -1
  157. package/lib/StyleManager.js +1 -1
  158. package/lib/WithRootStore.js +1 -1
  159. package/lib/WithStore.js +1 -1
  160. package/lib/actions/Action.js +1 -1
  161. package/lib/actions/AjaxAction.js +2 -2
  162. package/lib/actions/BreakAction.js +1 -1
  163. package/lib/actions/BroadcastAction.js +1 -1
  164. package/lib/actions/CmptAction.js +1 -1
  165. package/lib/actions/ContinueAction.js +1 -1
  166. package/lib/actions/CopyAction.js +1 -1
  167. package/lib/actions/CustomAction.js +2 -1
  168. package/lib/actions/DialogAction.js +2 -1
  169. package/lib/actions/DrawerAction.js +2 -1
  170. package/lib/actions/EmailAction.js +1 -1
  171. package/lib/actions/EventAction.js +2 -1
  172. package/lib/actions/LinkAction.js +1 -1
  173. package/lib/actions/LoopAction.js +1 -1
  174. package/lib/actions/PageAction.js +1 -1
  175. package/lib/actions/ParallelAction.js +1 -1
  176. package/lib/actions/PrintAction.js +1 -1
  177. package/lib/actions/StatusAction.js +1 -1
  178. package/lib/actions/SwitchAction.js +1 -1
  179. package/lib/actions/ToastAction.js +1 -1
  180. package/lib/actions/WaitAction.js +1 -1
  181. package/lib/components/Animations.js +2 -1
  182. package/lib/components/CustomStyle.js +2 -1
  183. package/lib/components/ErrorBoundary.js +1 -1
  184. package/lib/components/LazyComponent.js +1 -1
  185. package/lib/components/Overlay.js +2 -1
  186. package/lib/components/PopOver.js +2 -1
  187. package/lib/env.js +1 -1
  188. package/lib/envOverwrite.d.ts +1 -1
  189. package/lib/envOverwrite.js +4 -3
  190. package/lib/factory.js +1 -1
  191. package/lib/globalVar.js +1 -1
  192. package/lib/globalVarClientHandler.js +1 -1
  193. package/lib/globalVarDefaultValueHandler.js +1 -1
  194. package/lib/index.js +7 -5
  195. package/lib/locale.js +1 -1
  196. package/lib/polyfills.js +1 -1
  197. package/lib/renderers/Form.js +4 -3
  198. package/lib/renderers/Item.js +1 -1
  199. package/lib/renderers/Options.d.ts +2 -2
  200. package/lib/renderers/Options.js +11 -5
  201. package/lib/renderers/Placeholder.js +1 -1
  202. package/lib/renderers/builtin.js +1 -1
  203. package/lib/renderers/register.js +1 -1
  204. package/lib/renderers/wrapControl.js +19 -5
  205. package/lib/store/app.js +2 -1
  206. package/lib/store/combo.d.ts +4 -2
  207. package/lib/store/combo.js +1 -1
  208. package/lib/store/crud.d.ts +4 -0
  209. package/lib/store/crud.js +131 -110
  210. package/lib/store/form.d.ts +4 -1
  211. package/lib/store/form.js +17 -11
  212. package/lib/store/formItem.js +1 -1
  213. package/lib/store/iRenderer.js +5 -1
  214. package/lib/store/index.js +1 -1
  215. package/lib/store/list.js +1 -1
  216. package/lib/store/manager.js +1 -1
  217. package/lib/store/modal.js +1 -1
  218. package/lib/store/node.js +1 -1
  219. package/lib/store/pagination.js +1 -1
  220. package/lib/store/root.d.ts +1 -0
  221. package/lib/store/root.js +2 -1
  222. package/lib/store/service.js +2 -1
  223. package/lib/store/status.js +1 -1
  224. package/lib/store/table.d.ts +5 -2
  225. package/lib/store/table.js +27 -18
  226. package/lib/store/table2.js +1 -1
  227. package/lib/theme.js +1 -1
  228. package/lib/utils/Animation.js +1 -1
  229. package/lib/utils/ColorScale.js +1 -1
  230. package/lib/utils/DataSchema.js +1 -1
  231. package/lib/utils/DataScope.js +1 -1
  232. package/lib/utils/RootClose.js +1 -1
  233. package/lib/utils/SimpleMap.js +1 -1
  234. package/lib/utils/animations.d.ts +1 -0
  235. package/lib/utils/animations.js +17 -9
  236. package/lib/utils/api.js +1 -1
  237. package/lib/utils/arraySlice.js +1 -1
  238. package/lib/utils/attachmentAdpator.js +3 -29
  239. package/lib/utils/autobind.js +1 -1
  240. package/lib/utils/browser.js +1 -1
  241. package/lib/utils/columnsSplit.js +1 -1
  242. package/lib/utils/concatData.js +1 -1
  243. package/lib/utils/dataMapping.js +1 -1
  244. package/lib/utils/date.js +1 -1
  245. package/lib/utils/debug.js +1 -1
  246. package/lib/utils/decodeEntity.js +1 -1
  247. package/lib/utils/dom.d.ts +1 -0
  248. package/lib/utils/dom.js +39 -1
  249. package/lib/utils/errors.js +1 -1
  250. package/lib/utils/escapeHtml.js +1 -1
  251. package/lib/utils/filter-schema.js +1 -1
  252. package/lib/utils/filter.js +1 -1
  253. package/lib/utils/formatDuration.js +1 -1
  254. package/lib/utils/formula.js +1 -1
  255. package/lib/utils/getVariable.js +1 -1
  256. package/lib/utils/grammar.js +1 -1
  257. package/lib/utils/handleAction.js +1 -1
  258. package/lib/utils/helper.d.ts +1 -0
  259. package/lib/utils/helper.js +9 -1
  260. package/lib/utils/highlight.js +1 -1
  261. package/lib/utils/icon.js +1 -1
  262. package/lib/utils/image.js +1 -1
  263. package/lib/utils/index.js +4 -1
  264. package/lib/utils/isPureVariable.js +1 -1
  265. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  266. package/lib/utils/keyToPath.js +1 -1
  267. package/lib/utils/labelToString.js +1 -1
  268. package/lib/utils/loopTooMuch.js +1 -1
  269. package/lib/utils/makeSorter.js +1 -1
  270. package/lib/utils/math.js +1 -1
  271. package/lib/utils/memoryParse.js +1 -1
  272. package/lib/utils/normalizeLink.js +1 -1
  273. package/lib/utils/normalizeOptions.js +1 -1
  274. package/lib/utils/object.js +1 -1
  275. package/lib/utils/offset.js +1 -1
  276. package/lib/utils/offsetParent.js +1 -1
  277. package/lib/utils/optionValueCompare.js +1 -1
  278. package/lib/utils/position.js +1 -1
  279. package/lib/utils/prettyBytes.js +1 -1
  280. package/lib/utils/printElement.js +1 -1
  281. package/lib/utils/renderer-event.js +1 -1
  282. package/lib/utils/replaceText.js +1 -1
  283. package/lib/utils/resize-sensor.js +1 -1
  284. package/lib/utils/resolveCondition.js +1 -1
  285. package/lib/utils/resolveVariable.js +1 -1
  286. package/lib/utils/resolveVariableAndFilter.js +1 -1
  287. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  288. package/lib/utils/scrollPosition.js +1 -1
  289. package/lib/utils/string2regExp.js +1 -1
  290. package/lib/utils/stripNumber.js +1 -1
  291. package/lib/utils/style-helper.d.ts +1 -0
  292. package/lib/utils/style-helper.js +10 -7
  293. package/lib/utils/style.js +1 -1
  294. package/lib/utils/toNumber.js +1 -1
  295. package/lib/utils/tokenize.js +1 -1
  296. package/lib/utils/tpl-builtin.js +1 -1
  297. package/lib/utils/tpl-lodash.js +1 -1
  298. package/lib/utils/tpl.js +1 -1
  299. package/lib/utils/uncontrollable.js +1 -1
  300. package/lib/utils/validateId.js +1 -1
  301. package/lib/utils/validations.js +1 -1
  302. package/lib/utils/visitedCache.js +1 -1
  303. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -9,6 +9,7 @@ import debounce from 'lodash/debounce';
9
9
  import isEqual from 'lodash/isEqual';
10
10
  import { ComboStore } from '../store/combo.js';
11
11
  import { guid, promisify, changedEffect } from '../utils/helper.js';
12
+ import { str2rules } from '../utils/validations.js';
12
13
  import { isExpression, isNeedFormula, FormulaExec, replaceExpression } from '../utils/formula.js';
13
14
  import { ScopedContext } from '../Scoped.js';
14
15
  import { FormItemStore } from '../store/formItem.js';
@@ -67,9 +68,13 @@ function wrapControl(config, ComposedComponent) {
67
68
  rowIndex: rowIndex !== undefined ? rowIndex : undefined
68
69
  });
69
70
  _this.model = model;
71
+ // 如果组件有默认验证器类型,则合并
72
+ var rules = validations && model && config.validations
73
+ ? __assign(__assign({}, validations), str2rules(config.validations)) : validations;
70
74
  // @issue 打算干掉这个
71
75
  formItem === null || formItem === void 0 ? void 0 : formItem.addSubFormItem(model);
72
- model.config(__assign(__assign({}, pick(__assign(__assign({}, ComposedComponent.defaultProps), _this.props.$schema), ['multiple'])), { id: id, type: type, required: props.required || required, unique: unique, value: value, isValueSchemaExp: isExpression(value), rules: validations, messages: validationErrors, delimiter: delimiter, valueField: valueField, labelField: labelField, joinValues: joinValues, extractValue: extractValue, selectFirst: selectFirst, autoFill: autoFill, clearValueOnHidden: clearValueOnHidden, validateApi: validateApi, minLength: minLength, maxLength: maxLength, validateOnChange: validateOnChange, label: label, inputGroupControl: inputGroupControl, extraName: extraName, pagination: pagination }));
76
+ model.config(__assign(__assign({}, pick(__assign(__assign({}, ComposedComponent.defaultProps), _this.props.$schema), ['multiple'])), { id: id, type: type, required: props.required || required, unique: unique, value: value, isValueSchemaExp: isExpression(value) &&
77
+ value.replace(/\s/g, '') !== "${".concat(name, "}"), rules: rules, messages: validationErrors, delimiter: delimiter, valueField: valueField, labelField: labelField, joinValues: joinValues, extractValue: extractValue, selectFirst: selectFirst, autoFill: autoFill, clearValueOnHidden: clearValueOnHidden, validateApi: validateApi, minLength: minLength, maxLength: maxLength, validateOnChange: validateOnChange, label: label, inputGroupControl: inputGroupControl, extraName: extraName, pagination: pagination }));
73
78
  // issue 这个逻辑应该在 combo 里面自己实现。
74
79
  if (_this.model.unique &&
75
80
  ((_b = form === null || form === void 0 ? void 0 : form.parentStore) === null || _b === void 0 ? void 0 : _b.storeType) === ComboStore.name) {
@@ -172,7 +177,9 @@ function wrapControl(config, ComposedComponent) {
172
177
  ], prevProps.$schema, props.$schema, function (changes) {
173
178
  model.config(__assign(__assign({}, changes), {
174
179
  // todo 优化后面两个
175
- isValueSchemaExp: isExpression(props.$schema.value), inputGroupControl: props === null || props === void 0 ? void 0 : props.inputGroupControl }));
180
+ isValueSchemaExp: isExpression(props.$schema.value) &&
181
+ props.$schema.value.replace(/\s/g, '') !==
182
+ "${".concat(props.$schema.name, "}"), inputGroupControl: props === null || props === void 0 ? void 0 : props.inputGroupControl }));
176
183
  if (changes.hasOwnProperty('name')) {
177
184
  _this.setInitialValue(_this.props.$schema.value);
178
185
  }
@@ -193,6 +200,8 @@ function wrapControl(config, ComposedComponent) {
193
200
  }
194
201
  else if (typeof props.defaultValue !== 'undefined' &&
195
202
  isExpression(props.defaultValue) &&
203
+ props.defaultValue.replace(/\s/g, '') !==
204
+ "${".concat(props.name, "}") &&
196
205
  (!isEqual(props.defaultValue, prevProps.defaultValue) ||
197
206
  (props.data !== prevProps.data &&
198
207
  isNeedFormula(props.defaultValue, props.data, prevProps.data)))) {
@@ -253,8 +262,13 @@ function wrapControl(config, ComposedComponent) {
253
262
  };
254
263
  class_1.prototype.setInitialValue = function (value) {
255
264
  var model = this.model;
256
- var _a = this.props, form = _a.formStore, data = _a.data, canAccessSuperData = _a.canAccessSuperData;
265
+ var _a = this.props, form = _a.formStore, data = _a.data, canAccessSuperData = _a.canAccessSuperData, name = _a.name;
257
266
  var isExp = isExpression(value);
267
+ if (isExp && value.replace(/\s/g, '') === "${".concat(name, "}")) {
268
+ console.warn('value 不要使用表达式关联自己');
269
+ isExp = false;
270
+ value = undefined;
271
+ }
258
272
  var initialValue = model.extraName
259
273
  ? [
260
274
  getVariable(data, model.name, canAccessSuperData !== null && canAccessSuperData !== void 0 ? canAccessSuperData : form === null || form === void 0 ? void 0 : form.canAccessSuperData),
package/esm/store/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -8,6 +8,7 @@ import { types } from 'mobx-state-tree';
8
8
  import { mapTree, findTree, isVisible, guid, replaceUrlParams } from '../utils/helper.js';
9
9
  import { ServiceStore } from './service.js';
10
10
  import '../utils/api.js';
11
+ import 'file-saver';
11
12
  import '../utils/browser.js';
12
13
  import '../utils/ColorScale.js';
13
14
  import 'react';
@@ -2303,7 +2303,6 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
2303
2303
  fetchSchema: (api: import("..").Api, data?: object | undefined, options?: import("..").fetchOptions | undefined) => Promise<any>;
2304
2304
  checkRemote: (api: import("..").Api, data?: object | undefined, options?: import("..").fetchOptions | undefined) => Promise<any>;
2305
2305
  } & {
2306
- readonly loading: boolean;
2307
2306
  readonly items: ({
2308
2307
  id: string;
2309
2308
  path: string;
@@ -3378,6 +3377,8 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
3378
3377
  addInitHook(fn: (store: any) => any, weight?: number): () => void;
3379
3378
  beforeDestroy: () => void;
3380
3379
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>)[];
3380
+ } & {
3381
+ readonly loading: boolean;
3381
3382
  readonly inputGroupItems: Record<string, ({
3382
3383
  id: string;
3383
3384
  path: string;
@@ -7801,7 +7802,6 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
7801
7802
  fetchSchema: (api: import("..").Api, data?: object | undefined, options?: import("..").fetchOptions | undefined) => Promise<any>;
7802
7803
  checkRemote: (api: import("..").Api, data?: object | undefined, options?: import("..").fetchOptions | undefined) => Promise<any>;
7803
7804
  } & {
7804
- readonly loading: boolean;
7805
7805
  readonly items: ({
7806
7806
  id: string;
7807
7807
  path: string;
@@ -8876,6 +8876,8 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
8876
8876
  addInitHook(fn: (store: any) => any, weight?: number): () => void;
8877
8877
  beforeDestroy: () => void;
8878
8878
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>)[];
8879
+ } & {
8880
+ readonly loading: boolean;
8879
8881
  readonly inputGroupItems: Record<string, ({
8880
8882
  id: string;
8881
8883
  path: string;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -137,6 +137,9 @@ export declare const CRUDStore: import("mobx-state-tree").IModelType<{
137
137
  matchFunc?: MatchFunc;
138
138
  filterOnAllColumns?: boolean;
139
139
  isTable2?: Boolean;
140
+ minLoadingTime?: number;
141
+ dataAppendTo?: 'top' | 'bottom';
142
+ totalField?: string;
140
143
  }) => Promise<any>;
141
144
  changePage: (page: number | string, perPage?: number | string) => void;
142
145
  changePerPage: (perPage: number | string) => void;
@@ -150,6 +153,7 @@ export declare const CRUDStore: import("mobx-state-tree").IModelType<{
150
153
  initFromScope: (scope: any, source: string, options: {
151
154
  columns?: Array<any>;
152
155
  matchFunc?: MatchFunc | null;
156
+ totalField?: string;
153
157
  }) => void;
154
158
  exportAsCSV: (options?: {
155
159
  loadDataOnce?: boolean | undefined;
package/esm/store/crud.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -133,14 +133,15 @@ var CRUDStore = ServiceStore.named('CRUDStore')
133
133
  }
134
134
  }
135
135
  var fetchInitData = flow(function getInitData(api, data, options) {
136
- var rawItems, matchFunc, items, dir, data_1, ctx, json, result, total, count, page, hasNext, oItems, oRows, columns, rest, items, _a, _b, key, rowsData, data_2, filteredItems, dir, e_1, env;
137
- var _c, e_2, _d;
138
- var _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
136
+ var startTime, rawItems, matchFunc, items, dir, data_1, ctx, json, elapsedTime, remainingTime_1, result, total, count, page, hasNext, oItems, oRows, columns, rest, items, _a, _b, key, rowsData, data_2, filteredItems, dir, e_1, env;
137
+ var _c, _d, e_2, _e;
138
+ var _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
139
139
  if (options === void 0) { options = {}; }
140
- return __generator(this, function (_q) {
141
- switch (_q.label) {
140
+ return __generator(this, function (_r) {
141
+ switch (_r.label) {
142
142
  case 0:
143
- _q.trys.push([0, 2, , 3]);
143
+ _r.trys.push([0, 6, , 7]);
144
+ startTime = Date.now();
144
145
  rawItems = options.source
145
146
  ? resolveVariableAndFilter(options.source, createObject(self.mergedData, {
146
147
  items: self.data.itemsRaw,
@@ -160,8 +161,10 @@ var CRUDStore = ServiceStore.named('CRUDStore')
160
161
  dir = /desc/i.test(self.query.orderDir) ? -1 : 1;
161
162
  items = sortArray(items, self.query.orderBy, dir);
162
163
  }
163
- data_1 = __assign(__assign({}, self.data), { total: items.length, items: items.slice((self.page - 1) * self.perPage, self.page * self.perPage) });
164
- self.total = parseInt((_e = data_1.total) !== null && _e !== void 0 ? _e : data_1.count, 10) || 0;
164
+ data_1 = __assign(__assign({}, self.data), (_c = {}, _c[options.totalField || 'total'] = items.length, _c.items = items.slice((self.page - 1) * self.perPage, self.page * self.perPage), _c));
165
+ self.total =
166
+ parseInt((_f = data_1[options.totalField || 'total']) !== null && _f !== void 0 ? _f : data_1.count, 10) ||
167
+ 0;
165
168
  self.reInitData(data_1);
166
169
  return [2 /*return*/];
167
170
  }
@@ -171,126 +174,143 @@ var CRUDStore = ServiceStore.named('CRUDStore')
171
174
  self.fetching = false;
172
175
  }
173
176
  options.silent || self.markFetching(true);
174
- ctx = createObject(self.data, __assign(__assign(__assign({}, self.query), data), (_c = {}, _c[options.pageField || 'page'] = self.page, _c[options.perPageField || 'perPage'] = self.perPage, _c)));
177
+ ctx = createObject(self.data, __assign(__assign(__assign({}, self.query), data), (_d = {}, _d[options.pageField || 'page'] = self.page, _d[options.perPageField || 'perPage'] = self.perPage, _d)));
175
178
  // 一次性加载不要发送 perPage 属性
176
179
  if (options.loadDataOnce) {
177
180
  delete ctx[options.perPageField || 'perPage'];
178
181
  }
179
182
  return [4 /*yield*/, getEnv(self).fetcher(api, ctx, __assign(__assign({}, options), { cancelExecutor: function (executor) { return (fetchCancel = executor); } }))];
180
183
  case 1:
181
- json = _q.sent();
184
+ json = _r.sent();
182
185
  fetchCancel = null;
183
- if (!json.ok) {
184
- self.updateMessage((_j = (_h = (_g = (_f = api === null || api === void 0 ? void 0 : api.messages) === null || _f === void 0 ? void 0 : _f.failed) !== null && _g !== void 0 ? _g : json.msg) !== null && _h !== void 0 ? _h : options.errorMessage) !== null && _j !== void 0 ? _j : self.__('CRUD.fetchFailed'), true);
185
- !(api === null || api === void 0 ? void 0 : api.silent) &&
186
- getEnv(self).notify('error', json.msg, json.msgTimeout !== undefined
187
- ? {
188
- closeButton: true,
189
- timeout: json.msgTimeout
190
- }
191
- : undefined);
186
+ if (!!json.ok) return [3 /*break*/, 2];
187
+ self.updateMessage((_k = (_j = (_h = (_g = api === null || api === void 0 ? void 0 : api.messages) === null || _g === void 0 ? void 0 : _g.failed) !== null && _h !== void 0 ? _h : json.msg) !== null && _j !== void 0 ? _j : options.errorMessage) !== null && _k !== void 0 ? _k : self.__('CRUD.fetchFailed'), true);
188
+ !(api === null || api === void 0 ? void 0 : api.silent) &&
189
+ getEnv(self).notify('error', json.msg, json.msgTimeout !== undefined
190
+ ? {
191
+ closeButton: true,
192
+ timeout: json.msgTimeout
193
+ }
194
+ : undefined);
195
+ return [3 /*break*/, 5];
196
+ case 2:
197
+ if (!json.data) {
198
+ throw new Error(self.__('CRUD.invalidData'));
199
+ }
200
+ if (!options.minLoadingTime) return [3 /*break*/, 4];
201
+ elapsedTime = Date.now() - startTime;
202
+ remainingTime_1 = options.minLoadingTime - elapsedTime;
203
+ if (!(remainingTime_1 > 0)) return [3 /*break*/, 4];
204
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, remainingTime_1); })];
205
+ case 3:
206
+ _r.sent();
207
+ _r.label = 4;
208
+ case 4:
209
+ self.updatedAt = Date.now();
210
+ result = normalizeApiResponseData(json.data);
211
+ total = result.total, count = result.count, page = result.page, hasNext = result.hasNext, oItems = result.items, oRows = result.rows, columns = result.columns, rest = __rest(result, ["total", "count", "page", "hasNext", "items", "rows", "columns"]);
212
+ items = void 0;
213
+ if (options.source) {
214
+ items = resolveVariableAndFilter(options.source, createObject(self.filterData, result), '| raw');
192
215
  }
193
216
  else {
194
- if (!json.data) {
195
- throw new Error(self.__('CRUD.invalidData'));
196
- }
197
- self.updatedAt = Date.now();
198
- result = normalizeApiResponseData(json.data);
199
- total = result.total, count = result.count, page = result.page, hasNext = result.hasNext, oItems = result.items, oRows = result.rows, columns = result.columns, rest = __rest(result, ["total", "count", "page", "hasNext", "items", "rows", "columns"]);
200
- items = void 0;
201
- if (options.source) {
202
- items = resolveVariableAndFilter(options.source, createObject(self.filterData, result), '| raw');
203
- }
204
- else {
205
- items = result.items || result.rows;
206
- }
207
- if (!Array.isArray(items)) {
208
- try {
209
- // 如果不按照 items 格式返回,就拿第一个数组当成 items
210
- for (_a = __values(Object.keys(result)), _b = _a.next(); !_b.done; _b = _a.next()) {
211
- key = _b.value;
212
- if (result.hasOwnProperty(key) && Array.isArray(result[key])) {
213
- items = result[key];
214
- break;
215
- }
216
- }
217
- }
218
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
219
- finally {
220
- try {
221
- if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
217
+ items = result.items || result.rows;
218
+ }
219
+ if (!Array.isArray(items)) {
220
+ try {
221
+ // 如果不按照 items 格式返回,就拿第一个数组当成 items
222
+ for (_a = __values(Object.keys(result)), _b = _a.next(); !_b.done; _b = _a.next()) {
223
+ key = _b.value;
224
+ if (result.hasOwnProperty(key) && Array.isArray(result[key])) {
225
+ items = result[key];
226
+ break;
222
227
  }
223
- finally { if (e_2) throw e_2.error; }
224
228
  }
225
229
  }
226
- else if (items == null) {
227
- items = [];
230
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
231
+ finally {
232
+ try {
233
+ if (_b && !_b.done && (_e = _a.return)) _e.call(_a);
234
+ }
235
+ finally { if (e_2) throw e_2.error; }
228
236
  }
229
- if (!Array.isArray(items)) {
230
- throw new Error(self.__('CRUD.invalidArray'));
237
+ }
238
+ else if (items == null) {
239
+ items = [];
240
+ }
241
+ if (!Array.isArray(items)) {
242
+ throw new Error(self.__('CRUD.invalidArray'));
243
+ }
244
+ else {
245
+ // 确保成员是对象。
246
+ items.map(function (item) {
247
+ return typeof item === 'string' ? { text: item } : item;
248
+ });
249
+ }
250
+ rowsData = [];
251
+ if (options.loadDataMode && Array.isArray(self.data.items)) {
252
+ if (options.dataAppendTo === 'top') {
253
+ rowsData = items.concat(self.data.items);
231
254
  }
232
255
  else {
233
- // 确保成员是对象。
234
- items.map(function (item) {
235
- return typeof item === 'string' ? { text: item } : item;
236
- });
237
- }
238
- rowsData = [];
239
- if (options.loadDataMode && Array.isArray(self.data.items)) {
240
256
  rowsData = self.data.items.concat(items);
241
257
  }
242
- else {
243
- // 第一次的时候就是直接加载请求的数据
244
- rowsData = items;
245
- }
246
- data_2 = __assign(__assign(__assign({}, (api.replaceData ? {} : self.pristine)), { items: rowsData, count: count, total: total }), rest);
247
- if (options.loadDataOnce) {
248
- /**
249
- * 1. 记录原始集合,后续可能基于原始数据做排序查找。
250
- * 2. 接口返回中没有 items 和 rows 字段,则直接用查到的数据。
251
- */
252
- data_2.itemsRaw = oItems || oRows || rowsData.concat();
253
- filteredItems = applyFilters(rowsData, {
254
- query: self.query,
255
- columns: options.columns,
256
- filterOnAllColumns: false,
257
- matchFunc: options.matchFunc
258
- });
259
- if (self.query.orderBy) {
260
- dir = /desc/i.test(self.query.orderDir) ? -1 : 1;
261
- filteredItems = sortArray(filteredItems, self.query.orderBy, dir);
262
- }
263
- data_2.items = filteredItems.slice((self.page - 1) * self.perPage, self.page * self.perPage);
264
- data_2.count = data_2.total = filteredItems.length;
265
- }
266
- if (Array.isArray(columns)) {
267
- self.columns = columns.concat();
268
- }
269
- else if (rest.isTable2) {
270
- self.columns = options.columns;
271
- }
272
- self.items.replace(rowsData);
273
- self.reInitData(data_2, !!api.replaceData, api.concatDataFields);
274
- options.syncResponse2Query !== false &&
275
- updateQuery(pick(rest, Object.keys(self.query)), undefined, options.pageField || 'page', options.perPageField || 'perPage');
276
- self.total = parseInt((_k = data_2.total) !== null && _k !== void 0 ? _k : data_2.count, 10) || 0;
277
- typeof page !== 'undefined' && (self.page = parseInt(page, 10));
278
- // 分页情况不清楚,只能知道有没有下一页。
279
- if (typeof hasNext !== 'undefined') {
280
- self.mode = 'simple';
281
- self.total = 0;
282
- self.hasNext = !!hasNext;
258
+ }
259
+ else {
260
+ // 第一次的时候就是直接加载请求的数据
261
+ rowsData = items;
262
+ }
263
+ data_2 = __assign(__assign(__assign({}, (api.replaceData ? {} : self.pristine)), { items: rowsData, count: count, total: total }), rest);
264
+ if (options.loadDataOnce) {
265
+ /**
266
+ * 1. 记录原始集合,后续可能基于原始数据做排序查找。
267
+ * 2. 接口返回中没有 items 和 rows 字段,则直接用查到的数据。
268
+ */
269
+ data_2.itemsRaw = oItems || oRows || rowsData.concat();
270
+ filteredItems = applyFilters(rowsData, {
271
+ query: self.query,
272
+ columns: options.columns,
273
+ filterOnAllColumns: false,
274
+ matchFunc: options.matchFunc
275
+ });
276
+ if (self.query.orderBy) {
277
+ dir = /desc/i.test(self.query.orderDir) ? -1 : 1;
278
+ filteredItems = sortArray(filteredItems, self.query.orderBy, dir);
283
279
  }
284
- self.updateMessage((_p = (_o = (_m = (_l = api.messages) === null || _l === void 0 ? void 0 : _l.success) !== null && _m !== void 0 ? _m : json.msg) !== null && _o !== void 0 ? _o : options.successMessage) !== null && _p !== void 0 ? _p : json.defaultMsg);
285
- // 配置了获取成功提示后提示,默认是空不会提示。
286
- options &&
287
- options.successMessage &&
288
- getEnv(self).notify('success', self.msg);
280
+ data_2.items = filteredItems.slice((self.page - 1) * self.perPage, self.page * self.perPage);
281
+ data_2.count = data_2.total = filteredItems.length;
282
+ }
283
+ if (Array.isArray(columns)) {
284
+ self.columns = columns.concat();
285
+ }
286
+ else if (rest.isTable2) {
287
+ self.columns = options.columns;
289
288
  }
289
+ self.items.replace(rowsData);
290
+ self.reInitData(data_2, !!api.replaceData, api.concatDataFields);
291
+ options.syncResponse2Query !== false &&
292
+ updateQuery(pick(rest, Object.keys(self.query)), undefined, options.pageField || 'page', options.perPageField || 'perPage');
293
+ self.total =
294
+ parseInt((_l = data_2[options.totalField || 'total']) !== null && _l !== void 0 ? _l : data_2.count, 10) ||
295
+ 0;
296
+ typeof page !== 'undefined' && (self.page = parseInt(page, 10));
297
+ // 分页情况不清楚,只能知道有没有下一页。
298
+ if (typeof hasNext !== 'undefined') {
299
+ self.mode = 'simple';
300
+ self.total = 0;
301
+ self.hasNext = !!hasNext;
302
+ }
303
+ self.updateMessage((_q = (_p = (_o = (_m = api.messages) === null || _m === void 0 ? void 0 : _m.success) !== null && _o !== void 0 ? _o : json.msg) !== null && _p !== void 0 ? _p : options.successMessage) !== null && _q !== void 0 ? _q : json.defaultMsg);
304
+ // 配置了获取成功提示后提示,默认是空不会提示。
305
+ options &&
306
+ options.successMessage &&
307
+ getEnv(self).notify('success', self.msg);
308
+ _r.label = 5;
309
+ case 5:
290
310
  self.markFetching(false);
291
311
  return [2 /*return*/, json];
292
- case 2:
293
- e_1 = _q.sent();
312
+ case 6:
313
+ e_1 = _r.sent();
294
314
  env = getEnv(self);
295
315
  if (!isAlive(self) || self.disposed) {
296
316
  return [2 /*return*/];
@@ -302,7 +322,7 @@ var CRUDStore = ServiceStore.named('CRUDStore')
302
322
  console.error(e_1);
303
323
  !(api === null || api === void 0 ? void 0 : api.silent) && env.notify('error', e_1.message);
304
324
  return [2 /*return*/];
305
- case 3: return [2 /*return*/];
325
+ case 7: return [2 /*return*/];
306
326
  }
307
327
  });
308
328
  });
@@ -423,7 +443,8 @@ var CRUDStore = ServiceStore.named('CRUDStore')
423
443
  var data = __assign(__assign({}, self.pristine), { items: items.length > self.perPage
424
444
  ? items.slice((self.page - 1) * self.perPage, self.page * self.perPage)
425
445
  : items, count: items.length, total: items.length });
426
- self.total = parseInt((_a = data.total) !== null && _a !== void 0 ? _a : data.count, 10) || 0;
446
+ self.total =
447
+ parseInt((_a = data[options.totalField || 'total']) !== null && _a !== void 0 ? _a : data.count, 10) || 0;
427
448
  self.items.replace(items);
428
449
  self.reInitData(data);
429
450
  };
@@ -58,6 +58,7 @@ export declare const FormStore: import("mobx-state-tree").IModelType<{
58
58
  readonly pristineDiff: any;
59
59
  } & {
60
60
  setTopStore(value: any): void;
61
+ /** 获取InputGroup的子元素 */
61
62
  initData(data?: object, skipSetPristine?: boolean, changeReason?: DataChangeReason | undefined): void;
62
63
  reset(): void;
63
64
  updateData(data?: object, tag?: object | undefined, replace?: boolean | undefined, concatFields?: string | string[] | undefined, changeReason?: DataChangeReason | undefined): void;
@@ -85,7 +86,6 @@ export declare const FormStore: import("mobx-state-tree").IModelType<{
85
86
  fetchSchema: (api: Api, data?: object | undefined, options?: fetchOptions | undefined) => Promise<any>;
86
87
  checkRemote: (api: Api, data?: object | undefined, options?: fetchOptions | undefined) => Promise<any>;
87
88
  } & {
88
- readonly loading: boolean;
89
89
  readonly items: ({
90
90
  id: string;
91
91
  path: string;
@@ -1160,6 +1160,8 @@ export declare const FormStore: import("mobx-state-tree").IModelType<{
1160
1160
  addInitHook(fn: (store: any) => any, weight?: number): () => void;
1161
1161
  beforeDestroy: () => void;
1162
1162
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>)[];
1163
+ } & {
1164
+ readonly loading: boolean;
1163
1165
  /** 获取InputGroup的子元素 */
1164
1166
  readonly inputGroupItems: Record<string, ({
1165
1167
  id: string;
package/esm/store/form.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -57,17 +57,21 @@ var FormStore = ServiceStore.named('FormStore')
57
57
  return formItems;
58
58
  }
59
59
  return {
60
- get loading() {
61
- return self.saving || self.fetching;
62
- },
63
60
  get items() {
64
61
  return getItems();
62
+ }
63
+ };
64
+ })
65
+ .views(function (self) {
66
+ return {
67
+ get loading() {
68
+ return self.saving || self.fetching;
65
69
  },
66
70
  /** 获取InputGroup的子元素 */
67
71
  get inputGroupItems() {
68
72
  var _a, _b;
69
73
  var formItems = {};
70
- var children = this.items.concat();
74
+ var children = self.items.concat();
71
75
  while (children.length) {
72
76
  var current = children.shift();
73
77
  if (current.inputGroupControl && ((_a = current.inputGroupControl) === null || _a === void 0 ? void 0 : _a.name)) {
@@ -84,7 +88,7 @@ var FormStore = ServiceStore.named('FormStore')
84
88
  },
85
89
  get errors() {
86
90
  var errors = {};
87
- getItems().forEach(function (item) {
91
+ self.items.forEach(function (item) {
88
92
  if (!item.valid) {
89
93
  errors[item.name] = Array.isArray(errors[item.name])
90
94
  ? errors[item.name].concat(item.errors)
@@ -101,20 +105,20 @@ var FormStore = ServiceStore.named('FormStore')
101
105
  return getVariable(self.pristine, name);
102
106
  },
103
107
  getItemById: function (id) {
104
- return getItems().find(function (item) { return item.itemId === id; });
108
+ return self.items.find(function (item) { return item.itemId === id; });
105
109
  },
106
110
  getItemByName: function (name) {
107
- return getItems().find(function (item) { return item.name === name; });
111
+ return self.items.find(function (item) { return item.name === name; });
108
112
  },
109
113
  getItemsByName: function (name) {
110
- return getItems().filter(function (item) { return item.name === name; });
114
+ return self.items.filter(function (item) { return item.name === name; });
111
115
  },
112
116
  get valid() {
113
- return (getItems().every(function (item) { return item.valid; }) &&
117
+ return (self.items.every(function (item) { return item.valid; }) &&
114
118
  (!self.restError || !self.restError.length));
115
119
  },
116
120
  get validating() {
117
- return getItems().some(function (item) { return item.validating; });
121
+ return self.items.some(function (item) { return item.validating; });
118
122
  },
119
123
  get isPristine() {
120
124
  return isEqual(self.pristine, self.data);
@@ -209,6 +213,7 @@ var FormStore = ServiceStore.named('FormStore')
209
213
  }
210
214
  changeReason &&
211
215
  Object.isExtensible(data) &&
216
+ !data.__changeReason &&
212
217
  Object.defineProperty(data, '__changeReason', {
213
218
  value: changeReason,
214
219
  enumerable: false,
@@ -244,6 +249,7 @@ var FormStore = ServiceStore.named('FormStore')
244
249
  deleteVariable(data, name);
245
250
  changeReason &&
246
251
  Object.isExtensible(data) &&
252
+ !data.__changeReason &&
247
253
  Object.defineProperty(data, '__changeReason', {
248
254
  value: changeReason,
249
255
  enumerable: false,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -17,6 +17,7 @@ import '../utils/filter.js';
17
17
  import { SimpleMap } from '../utils/SimpleMap.js';
18
18
  import { StoreNode } from './node.js';
19
19
  import '../utils/api.js';
20
+ import 'file-saver';
20
21
  import '../utils/browser.js';
21
22
  import '../utils/ColorScale.js';
22
23
  import 'react';
@@ -106,6 +107,7 @@ var iRendererStore = StoreNode.named('iRendererStore')
106
107
  }
107
108
  changeReason &&
108
109
  Object.isExtensible(data) &&
110
+ !data.__changeReason &&
109
111
  Object.defineProperty(data, '__changeReason', {
110
112
  value: changeReason,
111
113
  enumerable: false,
@@ -140,6 +142,7 @@ var iRendererStore = StoreNode.named('iRendererStore')
140
142
  });
141
143
  changeReason &&
142
144
  Object.isExtensible(newData) &&
145
+ !newData.__changeReason &&
143
146
  Object.defineProperty(newData, '__changeReason', {
144
147
  value: changeReason,
145
148
  enumerable: false,
@@ -200,6 +203,7 @@ var iRendererStore = StoreNode.named('iRendererStore')
200
203
  }
201
204
  changeReason &&
202
205
  Object.isExtensible(data) &&
206
+ !data.__changeReason &&
203
207
  Object.defineProperty(data, '__changeReason', {
204
208
  value: changeReason,
205
209
  enumerable: false,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/esm/store/list.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/esm/store/node.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.12.0-beta.1
2
+ * amis-core v6.12.0-beta.11
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5