amis-core 6.6.0 → 6.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/esm/Root.js +4 -3
  2. package/esm/RootRenderer.d.ts +1 -1
  3. package/esm/RootRenderer.js +1 -1
  4. package/esm/SchemaRenderer.d.ts +0 -1
  5. package/esm/SchemaRenderer.js +19 -10
  6. package/esm/Scoped.js +2 -1
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/WithRootStore.js +1 -1
  9. package/esm/WithStore.js +8 -8
  10. package/esm/actions/Action.js +33 -31
  11. package/esm/actions/AjaxAction.js +1 -1
  12. package/esm/actions/BreakAction.js +1 -1
  13. package/esm/actions/BroadcastAction.js +1 -1
  14. package/esm/actions/CmptAction.js +55 -48
  15. package/esm/actions/ContinueAction.js +1 -1
  16. package/esm/actions/CopyAction.js +1 -1
  17. package/esm/actions/CustomAction.js +12 -3
  18. package/esm/actions/DialogAction.js +3 -1
  19. package/esm/actions/DrawerAction.js +2 -1
  20. package/esm/actions/EmailAction.js +1 -1
  21. package/esm/actions/EventAction.js +2 -1
  22. package/esm/actions/LinkAction.js +1 -1
  23. package/esm/actions/LoopAction.js +2 -1
  24. package/esm/actions/PageAction.js +1 -1
  25. package/esm/actions/ParallelAction.js +1 -1
  26. package/esm/actions/PrintAction.js +1 -1
  27. package/esm/actions/StatusAction.js +1 -1
  28. package/esm/actions/SwitchAction.js +1 -1
  29. package/esm/actions/ToastAction.js +1 -1
  30. package/esm/actions/WaitAction.js +1 -1
  31. package/esm/components/CustomStyle.js +1 -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.d.ts +2 -0
  36. package/esm/components/PopOver.js +5 -4
  37. package/esm/env.d.ts +4 -0
  38. package/esm/env.js +1 -1
  39. package/esm/envOverwrite.js +1 -1
  40. package/esm/factory.js +1 -1
  41. package/esm/index.js +3 -3
  42. package/esm/locale.js +2 -1
  43. package/esm/polyfills.js +1 -1
  44. package/esm/renderers/Form.js +123 -25
  45. package/esm/renderers/Item.d.ts +97 -12
  46. package/esm/renderers/Item.js +180 -126
  47. package/esm/renderers/Options.js +2 -1
  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 +2 -1
  52. package/esm/store/app.d.ts +1 -0
  53. package/esm/store/app.js +2 -1
  54. package/esm/store/combo.d.ts +411 -0
  55. package/esm/store/combo.js +1 -1
  56. package/esm/store/crud.d.ts +1 -0
  57. package/esm/store/crud.js +2 -1
  58. package/esm/store/form.d.ts +171 -0
  59. package/esm/store/form.js +2 -1
  60. package/esm/store/formItem.d.ts +5 -0
  61. package/esm/store/formItem.js +30 -8
  62. package/esm/store/iRenderer.d.ts +1 -0
  63. package/esm/store/iRenderer.js +8 -3
  64. package/esm/store/index.js +1 -1
  65. package/esm/store/list.d.ts +1 -0
  66. package/esm/store/list.js +1 -1
  67. package/esm/store/manager.js +1 -1
  68. package/esm/store/modal.d.ts +1 -0
  69. package/esm/store/modal.js +1 -1
  70. package/esm/store/node.js +1 -1
  71. package/esm/store/pagination.d.ts +1 -0
  72. package/esm/store/pagination.js +2 -1
  73. package/esm/store/root.d.ts +1 -0
  74. package/esm/store/root.js +2 -1
  75. package/esm/store/service.d.ts +1 -0
  76. package/esm/store/service.js +2 -1
  77. package/esm/store/status.js +1 -1
  78. package/esm/store/table.d.ts +382 -21
  79. package/esm/store/table.js +84 -54
  80. package/esm/store/table2.d.ts +1 -0
  81. package/esm/store/table2.js +1 -1
  82. package/esm/theme.js +1 -1
  83. package/esm/types.d.ts +1 -1
  84. package/esm/utils/Animation.js +1 -1
  85. package/esm/utils/ColorScale.js +1 -1
  86. package/esm/utils/DataSchema.js +1 -1
  87. package/esm/utils/DataScope.js +2 -2
  88. package/esm/utils/RootClose.js +1 -1
  89. package/esm/utils/SimpleMap.js +1 -1
  90. package/esm/utils/api.js +2 -2
  91. package/esm/utils/arraySlice.js +1 -1
  92. package/esm/utils/attachmentAdpator.js +1 -1
  93. package/esm/utils/autobind.js +1 -1
  94. package/esm/utils/browser.js +1 -1
  95. package/esm/utils/columnsSplit.js +1 -1
  96. package/esm/utils/concatData.js +1 -1
  97. package/esm/utils/dataMapping.js +1 -1
  98. package/esm/utils/date.js +1 -1
  99. package/esm/utils/debug.js +17 -3
  100. package/esm/utils/decodeEntity.js +1 -1
  101. package/esm/utils/dom.js +1 -1
  102. package/esm/utils/errors.js +1 -1
  103. package/esm/utils/escapeHtml.js +1 -1
  104. package/esm/utils/filter-schema.js +1 -1
  105. package/esm/utils/filter.js +1 -1
  106. package/esm/utils/formatDuration.js +1 -1
  107. package/esm/utils/formula.js +2 -1
  108. package/esm/utils/getVariable.js +1 -1
  109. package/esm/utils/grammar.js +1 -1
  110. package/esm/utils/handleAction.js +1 -1
  111. package/esm/utils/helper.d.ts +5 -1
  112. package/esm/utils/helper.js +37 -8
  113. package/esm/utils/highlight.js +1 -1
  114. package/esm/utils/icon.js +1 -1
  115. package/esm/utils/image.js +1 -1
  116. package/esm/utils/isPureVariable.js +2 -2
  117. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  118. package/esm/utils/keyToPath.js +1 -1
  119. package/esm/utils/labelToString.js +1 -1
  120. package/esm/utils/makeSorter.js +1 -1
  121. package/esm/utils/math.js +1 -1
  122. package/esm/utils/memoryParse.d.ts +2 -1
  123. package/esm/utils/memoryParse.js +10 -6
  124. package/esm/utils/normalizeLink.js +1 -1
  125. package/esm/utils/normalizeOptions.js +1 -1
  126. package/esm/utils/object.d.ts +2 -4
  127. package/esm/utils/object.js +1 -1
  128. package/esm/utils/offset.js +1 -1
  129. package/esm/utils/offsetParent.js +1 -1
  130. package/esm/utils/optionValueCompare.js +1 -1
  131. package/esm/utils/position.js +1 -1
  132. package/esm/utils/prettyBytes.js +1 -1
  133. package/esm/utils/printElement.js +1 -1
  134. package/esm/utils/renderer-event.js +5 -3
  135. package/esm/utils/replaceText.js +1 -1
  136. package/esm/utils/resize-sensor.js +30 -1
  137. package/esm/utils/resolveCondition.js +2 -1
  138. package/esm/utils/resolveVariable.js +1 -1
  139. package/esm/utils/resolveVariableAndFilter.js +1 -1
  140. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  141. package/esm/utils/scrollPosition.js +1 -1
  142. package/esm/utils/string2regExp.js +1 -1
  143. package/esm/utils/stripNumber.js +1 -1
  144. package/esm/utils/style-helper.d.ts +4 -2
  145. package/esm/utils/style-helper.js +27 -13
  146. package/esm/utils/style.js +2 -1
  147. package/esm/utils/toNumber.js +1 -1
  148. package/esm/utils/tokenize.js +1 -1
  149. package/esm/utils/tpl-builtin.js +2 -1
  150. package/esm/utils/tpl-lodash.js +2 -1
  151. package/esm/utils/tpl.js +1 -1
  152. package/esm/utils/uncontrollable.js +1 -1
  153. package/esm/utils/validateId.js +3 -3
  154. package/esm/utils/validations.js +2 -1
  155. package/esm/utils/visitedCache.d.ts +46 -0
  156. package/esm/utils/visitedCache.js +124 -0
  157. package/lib/Root.js +4 -3
  158. package/lib/RootRenderer.js +1 -1
  159. package/lib/SchemaRenderer.d.ts +0 -1
  160. package/lib/SchemaRenderer.js +19 -10
  161. package/lib/Scoped.js +2 -1
  162. package/lib/StatusScoped.js +1 -1
  163. package/lib/WithRootStore.js +1 -1
  164. package/lib/WithStore.js +8 -8
  165. package/lib/actions/Action.js +33 -31
  166. package/lib/actions/AjaxAction.js +1 -1
  167. package/lib/actions/BreakAction.js +1 -1
  168. package/lib/actions/BroadcastAction.js +1 -1
  169. package/lib/actions/CmptAction.js +55 -48
  170. package/lib/actions/ContinueAction.js +1 -1
  171. package/lib/actions/CopyAction.js +1 -1
  172. package/lib/actions/CustomAction.js +12 -3
  173. package/lib/actions/DialogAction.js +3 -1
  174. package/lib/actions/DrawerAction.js +2 -1
  175. package/lib/actions/EmailAction.js +1 -1
  176. package/lib/actions/EventAction.js +2 -1
  177. package/lib/actions/LinkAction.js +1 -1
  178. package/lib/actions/LoopAction.js +2 -1
  179. package/lib/actions/PageAction.js +1 -1
  180. package/lib/actions/ParallelAction.js +1 -1
  181. package/lib/actions/PrintAction.js +1 -1
  182. package/lib/actions/StatusAction.js +1 -1
  183. package/lib/actions/SwitchAction.js +1 -1
  184. package/lib/actions/ToastAction.js +1 -1
  185. package/lib/actions/WaitAction.js +1 -1
  186. package/lib/components/CustomStyle.js +1 -1
  187. package/lib/components/ErrorBoundary.js +1 -1
  188. package/lib/components/LazyComponent.js +1 -1
  189. package/lib/components/Overlay.js +2 -1
  190. package/lib/components/PopOver.d.ts +2 -0
  191. package/lib/components/PopOver.js +5 -4
  192. package/lib/env.d.ts +4 -0
  193. package/lib/env.js +1 -1
  194. package/lib/envOverwrite.js +1 -1
  195. package/lib/factory.js +1 -1
  196. package/lib/index.js +3 -2
  197. package/lib/locale.js +2 -1
  198. package/lib/polyfills.js +1 -1
  199. package/lib/renderers/Form.js +122 -24
  200. package/lib/renderers/Item.d.ts +97 -12
  201. package/lib/renderers/Item.js +179 -125
  202. package/lib/renderers/Options.js +2 -1
  203. package/lib/renderers/Placeholder.js +1 -1
  204. package/lib/renderers/builtin.js +1 -1
  205. package/lib/renderers/register.js +1 -1
  206. package/lib/renderers/wrapControl.js +2 -1
  207. package/lib/store/app.d.ts +1 -0
  208. package/lib/store/app.js +2 -1
  209. package/lib/store/combo.d.ts +435 -24
  210. package/lib/store/combo.js +1 -1
  211. package/lib/store/crud.d.ts +1 -0
  212. package/lib/store/crud.js +2 -1
  213. package/lib/store/form.d.ts +181 -10
  214. package/lib/store/form.js +2 -1
  215. package/lib/store/formItem.d.ts +5 -0
  216. package/lib/store/formItem.js +30 -8
  217. package/lib/store/iRenderer.d.ts +1 -0
  218. package/lib/store/iRenderer.js +8 -3
  219. package/lib/store/index.js +1 -1
  220. package/lib/store/list.d.ts +1 -0
  221. package/lib/store/list.js +1 -1
  222. package/lib/store/manager.js +1 -1
  223. package/lib/store/modal.d.ts +1 -0
  224. package/lib/store/modal.js +1 -1
  225. package/lib/store/node.js +1 -1
  226. package/lib/store/pagination.d.ts +1 -0
  227. package/lib/store/pagination.js +2 -1
  228. package/lib/store/root.d.ts +1 -0
  229. package/lib/store/root.js +2 -1
  230. package/lib/store/service.d.ts +1 -0
  231. package/lib/store/service.js +2 -1
  232. package/lib/store/status.js +1 -1
  233. package/lib/store/table.d.ts +402 -41
  234. package/lib/store/table.js +84 -54
  235. package/lib/store/table2.d.ts +1 -0
  236. package/lib/store/table2.js +1 -1
  237. package/lib/theme.js +1 -1
  238. package/lib/types.d.ts +1 -1
  239. package/lib/utils/Animation.js +1 -1
  240. package/lib/utils/ColorScale.js +1 -1
  241. package/lib/utils/DataSchema.js +1 -1
  242. package/lib/utils/DataScope.js +2 -2
  243. package/lib/utils/RootClose.js +1 -1
  244. package/lib/utils/SimpleMap.js +1 -1
  245. package/lib/utils/api.js +2 -2
  246. package/lib/utils/arraySlice.js +1 -1
  247. package/lib/utils/attachmentAdpator.js +1 -1
  248. package/lib/utils/autobind.js +1 -1
  249. package/lib/utils/browser.js +1 -1
  250. package/lib/utils/columnsSplit.js +1 -1
  251. package/lib/utils/concatData.js +1 -1
  252. package/lib/utils/dataMapping.js +1 -1
  253. package/lib/utils/date.js +1 -1
  254. package/lib/utils/debug.js +17 -3
  255. package/lib/utils/decodeEntity.js +1 -1
  256. package/lib/utils/dom.js +1 -1
  257. package/lib/utils/errors.js +1 -1
  258. package/lib/utils/escapeHtml.js +1 -1
  259. package/lib/utils/filter-schema.js +1 -1
  260. package/lib/utils/filter.js +1 -1
  261. package/lib/utils/formatDuration.js +1 -1
  262. package/lib/utils/formula.js +2 -1
  263. package/lib/utils/getVariable.js +1 -1
  264. package/lib/utils/grammar.js +1 -1
  265. package/lib/utils/handleAction.js +1 -1
  266. package/lib/utils/helper.d.ts +5 -1
  267. package/lib/utils/helper.js +36 -6
  268. package/lib/utils/highlight.js +1 -1
  269. package/lib/utils/icon.js +1 -1
  270. package/lib/utils/image.js +1 -1
  271. package/lib/utils/isPureVariable.js +2 -2
  272. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  273. package/lib/utils/keyToPath.js +1 -1
  274. package/lib/utils/labelToString.js +1 -1
  275. package/lib/utils/makeSorter.js +1 -1
  276. package/lib/utils/math.js +1 -1
  277. package/lib/utils/memoryParse.d.ts +2 -1
  278. package/lib/utils/memoryParse.js +10 -6
  279. package/lib/utils/normalizeLink.js +1 -1
  280. package/lib/utils/normalizeOptions.js +1 -1
  281. package/lib/utils/object.d.ts +2 -4
  282. package/lib/utils/object.js +1 -1
  283. package/lib/utils/offset.js +1 -1
  284. package/lib/utils/offsetParent.js +1 -1
  285. package/lib/utils/optionValueCompare.js +1 -1
  286. package/lib/utils/position.js +1 -1
  287. package/lib/utils/prettyBytes.js +1 -1
  288. package/lib/utils/printElement.js +1 -1
  289. package/lib/utils/renderer-event.js +5 -3
  290. package/lib/utils/replaceText.js +1 -1
  291. package/lib/utils/resize-sensor.js +30 -1
  292. package/lib/utils/resolveCondition.js +2 -1
  293. package/lib/utils/resolveVariable.js +1 -1
  294. package/lib/utils/resolveVariableAndFilter.js +1 -1
  295. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  296. package/lib/utils/scrollPosition.js +1 -1
  297. package/lib/utils/string2regExp.js +1 -1
  298. package/lib/utils/stripNumber.js +1 -1
  299. package/lib/utils/style-helper.d.ts +4 -2
  300. package/lib/utils/style-helper.js +27 -13
  301. package/lib/utils/style.js +2 -1
  302. package/lib/utils/toNumber.js +1 -1
  303. package/lib/utils/tokenize.js +1 -1
  304. package/lib/utils/tpl-builtin.js +2 -1
  305. package/lib/utils/tpl-lodash.js +2 -1
  306. package/lib/utils/tpl.js +1 -1
  307. package/lib/utils/uncontrollable.js +1 -1
  308. package/lib/utils/validateId.js +3 -3
  309. package/lib/utils/validations.js +2 -1
  310. package/lib/utils/visitedCache.d.ts +46 -0
  311. package/lib/utils/visitedCache.js +128 -0
  312. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -14,7 +14,7 @@ import isNumber from 'lodash/isNumber';
14
14
  import isString from 'lodash/isString';
15
15
  import qs from 'qs';
16
16
  import { compile } from 'path-to-regexp';
17
- import { evalExpressionWithConditionBuilder, evalExpression, filter } from './tpl.js';
17
+ import { filter, evalExpressionWithConditionBuilder, evalExpression } from './tpl.js';
18
18
  import { autobindMethod } from './autobind.js';
19
19
  import 'amis-formula';
20
20
  import 'moment';
@@ -25,12 +25,14 @@ import { isPureVariable } from './isPureVariable.js';
25
25
  import '@rc-component/mini-decimal';
26
26
  import { resolveVariable } from './resolveVariable.js';
27
27
  import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
28
+ import './memoryParse.js';
28
29
  import './filter.js';
29
30
  export { string2regExp } from './string2regExp.js';
30
31
  export { getVariable } from './getVariable.js';
31
32
  import { keyToPath } from './keyToPath.js';
32
33
  export { keyToPath } from './keyToPath.js';
33
34
  import { isExpression, replaceExpression } from './formula.js';
35
+ import { isAlive } from 'mobx-state-tree';
34
36
 
35
37
  function preventDefault(event) {
36
38
  if (typeof event.cancelable !== 'boolean' || event.cancelable) {
@@ -75,7 +77,9 @@ function syncDataFromSuper(data, superObject, prevSuperObject, store, force) {
75
77
  var obj = __assign({}, data);
76
78
  var keys = [];
77
79
  // 如果是 form store,则从父级同步 formItem 种东西。
78
- if (store && store.storeType === 'FormStore') {
80
+ if (store &&
81
+ store.storeType === 'FormStore' &&
82
+ store.canAccessSuperData !== false) {
79
83
  keys = uniq(store.items
80
84
  .map(function (item) { return "".concat(item.name).replace(/\..*$/, ''); })
81
85
  .concat(Object.keys(obj)));
@@ -136,7 +140,9 @@ function anyChanged(attrs, from, to, strictMode) {
136
140
  if (strictMode === void 0) { strictMode = true; }
137
141
  return (typeof attrs === 'string'
138
142
  ? attrs.split(',').map(function (item) { return item.trim(); })
139
- : attrs).some(function (key) { return (strictMode ? from[key] !== to[key] : from[key] != to[key]); });
143
+ : attrs).some(function (key) {
144
+ return strictMode ? !Object.is(from[key], to[key]) : from[key] != to[key];
145
+ });
140
146
  }
141
147
  function changedEffect(attrs, origin, data, effect, strictMode) {
142
148
  if (strictMode === void 0) { strictMode = true; }
@@ -145,7 +151,7 @@ function changedEffect(attrs, origin, data, effect, strictMode) {
145
151
  ? attrs.split(',').map(function (item) { return item.trim(); })
146
152
  : attrs;
147
153
  keys.forEach(function (key) {
148
- if (strictMode ? origin[key] !== data[key] : origin[key] != data[key]) {
154
+ if (strictMode ? !Object.is(origin[key], data[key]) : origin[key] != data[key]) {
149
155
  changes[key] = data[key];
150
156
  }
151
157
  });
@@ -279,7 +285,19 @@ function makeColumnClassBuild(steps, classNameTpl) {
279
285
  function hasVisibleExpression(schema) {
280
286
  return !!(schema.visibleOn || schema.hiddenOn);
281
287
  }
282
- function isVisible(schema, data) {
288
+ function isVisible(schema, data, statusStore) {
289
+ var _a;
290
+ // 有状态时,状态优先
291
+ if ((schema.id || schema.name) && statusStore) {
292
+ var id = filter(schema.id, data);
293
+ var name_1 = filter(schema.name, data);
294
+ var visible = isAlive(statusStore)
295
+ ? (_a = statusStore.visibleState[id]) !== null && _a !== void 0 ? _a : statusStore.visibleState[name_1]
296
+ : undefined;
297
+ if (typeof visible !== 'undefined') {
298
+ return visible;
299
+ }
300
+ }
283
301
  return !(schema.hidden ||
284
302
  schema.visible === false ||
285
303
  (schema.hiddenOn &&
@@ -411,7 +429,9 @@ function difference(object, base, keepProps) {
411
429
  result_1[key] = a;
412
430
  }
413
431
  // isEquals 里面没有处理好递归引用对象的情况
414
- if (!isObjectShallowModified(a, b, false, undefined, undefined, 10)) {
432
+ if (object.hasOwnProperty(key) && // 其中一个不是自己的属性,就不要比对了
433
+ base.hasOwnProperty(key) &&
434
+ !isObjectShallowModified(a, b, true, undefined, undefined, 10)) {
415
435
  return;
416
436
  }
417
437
  if (!object.hasOwnProperty(key)) {
@@ -1655,5 +1675,14 @@ var TestIdBuilder = /** @class */ (function () {
1655
1675
  };
1656
1676
  return TestIdBuilder;
1657
1677
  }());
1678
+ function supportsMjs() {
1679
+ try {
1680
+ new Function('import("")');
1681
+ return true;
1682
+ }
1683
+ catch (e) {
1684
+ return false;
1685
+ }
1686
+ }
1658
1687
 
1659
- export { JSONTraverse, JSONValueMap, SkipOperation, TEST_ID_KEY, TestIdBuilder, ValidateError, __uri, anyChanged, autobind, buildTrackExpression, bulkBindFunctions, camel, chainEvents, chainFunctions, changedEffect, convertArrayValueToMoment, countTree, detectPropValueChanged, difference, differenceFromAll, eachTree, evalTrackExpression, everyTree, filterTree, findIndex, findObjectsWithKey, findTree, findTreeAll, findTreeIndex, flattenTree, flattenTreeWithLeafNodes, getLevelFromClassName, getPropValue, getRange, getScrollParent, getScrollbarWidth, getTree, getTreeAncestors, getTreeDepth, getTreeParent, getWidthRate, guid, hasAbility, hasFile, hasOwnPropertyInPath, hasVisibleExpression, hashCode, immutableExtends, importLazyComponent, injectPropsToObject, isArrayChildrenModified, isBreakpoint, isClickOnInput, isDisabled, isEmpty, isMobile, isNumeric, isObjectShallowModified, isSuperDataModified, isUnfolded, isVisible, lcFirst, loadScript, loadStyle, makeColumnClassBuild, makeHorizontalDeeper, mapObject, mapTree, noop, normalizeNodePath, object2formData, omitControls, padArr, parsePrimitiveQueryString, parseQuery, pickEventsProps, preventDefault, promisify, qsparse, qsstringify, range, removeHTMLTag, repeatCount, replaceUrlParams, rmUndefined, someTree, sortArray, spliceTree, syncDataFromSuper, ucFirst, until, uuid, uuidv4, visibilityFilter };
1688
+ export { JSONTraverse, JSONValueMap, SkipOperation, TEST_ID_KEY, TestIdBuilder, ValidateError, __uri, anyChanged, autobind, buildTrackExpression, bulkBindFunctions, camel, chainEvents, chainFunctions, changedEffect, convertArrayValueToMoment, countTree, detectPropValueChanged, difference, differenceFromAll, eachTree, evalTrackExpression, everyTree, filterTree, findIndex, findObjectsWithKey, findTree, findTreeAll, findTreeIndex, flattenTree, flattenTreeWithLeafNodes, getLevelFromClassName, getPropValue, getRange, getScrollParent, getScrollbarWidth, getTree, getTreeAncestors, getTreeDepth, getTreeParent, getWidthRate, guid, hasAbility, hasFile, hasOwnPropertyInPath, hasVisibleExpression, hashCode, immutableExtends, importLazyComponent, injectPropsToObject, isArrayChildrenModified, isBreakpoint, isClickOnInput, isDisabled, isEmpty, isMobile, isNumeric, isObjectShallowModified, isSuperDataModified, isUnfolded, isVisible, lcFirst, loadScript, loadStyle, makeColumnClassBuild, makeHorizontalDeeper, mapObject, mapTree, noop, normalizeNodePath, object2formData, omitControls, padArr, parsePrimitiveQueryString, parseQuery, pickEventsProps, preventDefault, promisify, qsparse, qsstringify, range, removeHTMLTag, repeatCount, replaceUrlParams, rmUndefined, someTree, sortArray, spliceTree, supportsMjs, syncDataFromSuper, ucFirst, until, uuid, uuidv4, visibilityFilter };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/utils/icon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -10,7 +10,7 @@ function isPureVariable(path) {
10
10
  try {
11
11
  var ast = memoryParse(path);
12
12
  // 只有一个成员说明是纯表达式模式
13
- return ast.body.length === 1 && ast.body[0].type === 'script';
13
+ return (ast === null || ast === void 0 ? void 0 : ast.body.length) === 1 && ast.body[0].type === 'script';
14
14
  }
15
15
  catch (err) {
16
16
  return false;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/utils/math.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,3 +1,4 @@
1
+ import type { ASTNode } from 'amis-formula';
1
2
  export declare function memoryParse(input: string, options?: {
2
3
  /**
3
4
  * 直接是运算表达式?还是从模板开始 ${} 里面才算运算表达式
@@ -14,4 +15,4 @@ export declare function memoryParse(input: string, options?: {
14
15
  */
15
16
  allowFilter?: boolean;
16
17
  variableNamespaces?: Array<string>;
17
- }): any;
18
+ }): ASTNode | undefined;
@@ -1,25 +1,29 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
6
6
  import { parse } from 'amis-formula';
7
+ import VisitedCache from './visitedCache.js';
7
8
 
8
- var cache = {};
9
+ // NOTE 缓存前40条表达式
10
+ var cache = new VisitedCache(40);
9
11
  function memoryParse(input, options) {
10
12
  if (options === void 0) { options = {
11
13
  evalMode: false
12
14
  }; }
13
- // @todo 优化内存缓存释放,比如只缓存最高频的模版
15
+ // 优化内存缓存释放,比如只缓存最高频的模版
14
16
  if (typeof input !== 'string') {
15
17
  return;
16
18
  }
17
19
  var key = input + JSON.stringify(options);
18
- if (cache[key]) {
19
- return cache[key];
20
+ // get cache result
21
+ if (cache.has(key)) {
22
+ return cache.get(key);
20
23
  }
24
+ // run parse function and cache
21
25
  var ast = parse(input, options);
22
- cache[key] = ast;
26
+ cache.set(key, ast);
23
27
  return ast;
24
28
  }
25
29
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,8 +1,6 @@
1
- export declare function createObject(superProps?: {
1
+ export declare function createObject<P extends {
2
2
  [propName: string]: any;
3
- }, props?: {
4
- [propName: string]: any;
5
- }, properties?: any): object;
3
+ } | null>(superProps?: P, props?: P, properties?: any): object;
6
4
  export declare function extractObjectChain(value: any): object[];
7
5
  export declare function createObjectFromChain(chain: Array<object>): object;
8
6
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -279,9 +279,11 @@ var getRendererEventListeners = function () {
279
279
  */
280
280
  var resolveEventData = function (props, data, valueKey) {
281
281
  var _a, _b;
282
+ var _c, _d;
282
283
  if (valueKey === void 0) { valueKey = 'value'; }
283
- return createObject(props.data, props.name && valueKey
284
- ? __assign(__assign({}, data), (_a = {}, _a[props.name] = data[valueKey], _a.__rendererData = __assign(__assign({}, props.data), (_b = {}, _b[props.name] = data[valueKey], _b)), _a)) : data);
284
+ var proto = (_d = (_c = props.getData) === null || _c === void 0 ? void 0 : _c.call(props)) !== null && _d !== void 0 ? _d : props.data;
285
+ return createObject(proto, props.name && valueKey
286
+ ? __assign(__assign({}, data), (_a = {}, _a[props.name] = data[valueKey], _a.__rendererData = __assign(__assign({}, proto), (_b = {}, _b[props.name] = data[valueKey], _b)), _a)) : data);
285
287
  };
286
288
  /**
287
289
  * 基于 index、condition、oldCondition 获取匹配的事件目标
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -163,6 +163,35 @@ function resizeSensor(element, callback, once, type) {
163
163
  if (!element) {
164
164
  return function () { };
165
165
  }
166
+ // 优先用 ResizeObserver
167
+ if (typeof ResizeObserver !== 'undefined') {
168
+ var rect = element.getBoundingClientRect();
169
+ var originWidth_1 = rect.width;
170
+ var originHeight_1 = rect.height;
171
+ var observer_1 = new ResizeObserver(function (entries) {
172
+ if (once) {
173
+ observer_1.disconnect();
174
+ }
175
+ if (type === 'both') {
176
+ callback();
177
+ }
178
+ else {
179
+ var entry = entries[0];
180
+ var cr = entry.contentRect;
181
+ if ((type === 'width' && cr.width !== originWidth_1) ||
182
+ (type === 'height' && cr.height !== originHeight_1)) {
183
+ callback();
184
+ originWidth_1 = cr.width;
185
+ originHeight_1 = cr.height;
186
+ }
187
+ }
188
+ });
189
+ observer_1.observe(element);
190
+ return function () {
191
+ observer_1.disconnect();
192
+ };
193
+ }
194
+ // 不支持 ResizeObserver 的话,用 polyfill
166
195
  var disposeEvent = undefined;
167
196
  if (once) {
168
197
  disposeEvent = attachResizeEvent(element, function () {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -14,6 +14,7 @@ import moment from 'moment';
14
14
  import capitalize from 'lodash/capitalize';
15
15
  import 'amis-formula';
16
16
  import 'lodash/isPlainObject';
17
+ import './memoryParse.js';
17
18
  import { isPureVariable } from './isPureVariable.js';
18
19
  import '@rc-component/mini-decimal';
19
20
  import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -3,6 +3,7 @@ export declare const valueMap: PlainObject;
3
3
  export declare const inheritValueMap: PlainObject;
4
4
  interface extra {
5
5
  important?: boolean;
6
+ parent?: string;
6
7
  inner?: string;
7
8
  pre?: string;
8
9
  suf?: string;
@@ -42,10 +43,11 @@ export interface CustomStyleClassName {
42
43
  default?: extra;
43
44
  hover?: extra;
44
45
  active?: extra;
46
+ focused?: extra;
45
47
  disabled?: extra;
46
48
  };
47
49
  }
48
- export declare function insertCustomStyle(prams: {
50
+ export declare function insertCustomStyle(params: {
49
51
  themeCss: any;
50
52
  classNames: CustomStyleClassName[];
51
53
  id: string;
@@ -81,7 +83,7 @@ export interface InsertCustomStyle {
81
83
  export declare function removeCustomStyle(type: string, id: string, doc?: Document, data?: any): void;
82
84
  export declare function formatInputThemeCss(themeCss: any): any;
83
85
  export declare function setThemeClassName(params: {
84
- name: string;
86
+ name: string | string[];
85
87
  id?: string;
86
88
  themeCss: any;
87
89
  extra?: string;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -145,7 +145,8 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
145
145
  default: '',
146
146
  hover: ':hover',
147
147
  active: ':hover:active',
148
- disabled: '.is-disabled'
148
+ focused: '',
149
+ disabled: ''
149
150
  };
150
151
  var _loop_1 = function (item) {
151
152
  var body = themeCss[item.key];
@@ -161,6 +162,7 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
161
162
  default: {},
162
163
  hover: {},
163
164
  active: {},
165
+ focused: {},
164
166
  disabled: {}
165
167
  };
166
168
  Object.keys(body).forEach(function (key) {
@@ -174,6 +176,9 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
174
176
  else if (!!~key.indexOf(':active')) {
175
177
  statusMap.active[key.replace(':active', '')] = body[key];
176
178
  }
179
+ else if (!!~key.indexOf(':focused')) {
180
+ statusMap.focused[key.replace(':focused', '')] = body[key];
181
+ }
177
182
  else if (!!~key.indexOf(':disabled')) {
178
183
  statusMap.disabled[key.replace(':disabled', '')] = body[key];
179
184
  }
@@ -229,9 +234,10 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
229
234
  if (styles.length > 0) {
230
235
  var cx = ((weights === null || weights === void 0 ? void 0 : weights.pre) || '') + className + ((weights === null || weights === void 0 ? void 0 : weights.suf) || '');
231
236
  var inner = (weights === null || weights === void 0 ? void 0 : weights.inner) || '';
237
+ var parent_1 = (weights === null || weights === void 0 ? void 0 : weights.parent) || '';
232
238
  res.push({
233
- className: cx + status2string[status] + inner,
234
- content: ".".concat(cx + status2string[status], " ").concat(inner, "{\n ").concat(styles.join('\n '), "\n}")
239
+ className: parent_1 + cx + status2string[status] + inner,
240
+ content: "".concat(parent_1, " .").concat(cx + status2string[status], " ").concat(inner, "{\n ").concat(styles.join('\n '), "\n}")
235
241
  });
236
242
  // TODO:切换状态暂时先不改变组件的样式
237
243
  // if (['hover', 'active', 'disabled'].includes(status)) {
@@ -261,9 +267,9 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
261
267
  origin: res
262
268
  };
263
269
  }
264
- function insertCustomStyle(prams) {
270
+ function insertCustomStyle(params) {
265
271
  var _a;
266
- var themeCss = prams.themeCss, classNames = prams.classNames, id = prams.id, defaultData = prams.defaultData, customStyleClassPrefix = prams.customStyleClassPrefix, doc = prams.doc, data = prams.data;
272
+ var themeCss = params.themeCss, classNames = params.classNames, id = params.id, defaultData = params.defaultData, customStyleClassPrefix = params.customStyleClassPrefix, doc = params.doc, data = params.data;
267
273
  if (!themeCss) {
268
274
  return;
269
275
  }
@@ -397,21 +403,29 @@ function formatInputThemeCss(themeCss) {
397
403
  return inputFontThemeCss;
398
404
  }
399
405
  function setThemeClassName(params) {
400
- var _a;
401
406
  var name = params.name, id = params.id, themeCss = params.themeCss, extra = params.extra, data = params.data;
402
407
  if (!id || !themeCss) {
403
408
  return '';
404
409
  }
405
- if (name !== 'wrapperCustomStyle' && !themeCss[name]) {
406
- return '';
407
- }
408
410
  var index = '';
409
411
  if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
410
412
  index = "-".concat(data.index);
411
413
  }
412
- return ("".concat(name, "-").concat(((_a = id.replace) === null || _a === void 0 ? void 0 : _a.call(id, 'u:', '')) || id) +
413
- (extra ? "-".concat(extra) : '') +
414
- index);
414
+ function setClassName(name, id) {
415
+ var _a;
416
+ if (name !== 'wrapperCustomStyle' && !themeCss[name]) {
417
+ return '';
418
+ }
419
+ return ("".concat(name, "-").concat(((_a = id.replace) === null || _a === void 0 ? void 0 : _a.call(id, 'u:', '')) || id) +
420
+ (extra ? "-".concat(extra) : '') +
421
+ index);
422
+ }
423
+ if (typeof name === 'string') {
424
+ return setClassName(name, id);
425
+ }
426
+ else {
427
+ return name.map(function (n) { return setClassName(n, id); }).join(' ');
428
+ }
415
429
  }
416
430
 
417
431
  export { addStyle, findOrCreateStyle, formatInputThemeCss, formatStyle, getValueByPath, inheritValueMap, insertCustomStyle, insertEditCustomStyle, insertStyle, removeCustomStyle, setThemeClassName, valueMap };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -7,6 +7,7 @@ import 'tslib';
7
7
  import 'amis-formula';
8
8
  import 'moment';
9
9
  import 'lodash/isPlainObject';
10
+ import './memoryParse.js';
10
11
  import '@rc-component/mini-decimal';
11
12
  import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
12
13
  import './filter.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -7,6 +7,7 @@ import { __awaiter, __generator } from 'tslib';
7
7
  export { getFilters, registerFilter, registerFunction } from 'amis-formula';
8
8
  import 'moment';
9
9
  import 'lodash/isPlainObject';
10
+ import './memoryParse.js';
10
11
  import { tokenize } from './tokenize.js';
11
12
  export { tokenize } from './tokenize.js';
12
13
  import '@rc-component/mini-decimal';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.6.0
2
+ * amis-core v6.8.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -8,6 +8,7 @@ import template from 'lodash/template';
8
8
  import { getFilters } from 'amis-formula';
9
9
  import moment from 'moment';
10
10
  import 'lodash/isPlainObject';
11
+ import './memoryParse.js';
11
12
  import '@rc-component/mini-decimal';
12
13
  import './filter.js';
13
14