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
 
@@ -28,11 +28,13 @@ var isPureVariable = require('./isPureVariable.js');
28
28
  require('@rc-component/mini-decimal');
29
29
  var resolveVariable = require('./resolveVariable.js');
30
30
  var resolveVariableAndFilter = require('./resolveVariableAndFilter.js');
31
+ require('./memoryParse.js');
31
32
  require('./filter.js');
32
33
  var string2regExp = require('./string2regExp.js');
33
34
  var getVariable = require('./getVariable.js');
34
35
  var keyToPath = require('./keyToPath.js');
35
36
  var formula = require('./formula.js');
37
+ var mobxStateTree = require('mobx-state-tree');
36
38
 
37
39
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
38
40
 
@@ -88,7 +90,9 @@ function syncDataFromSuper(data, superObject, prevSuperObject, store, force) {
88
90
  var obj = tslib.__assign({}, data);
89
91
  var keys = [];
90
92
  // 如果是 form store,则从父级同步 formItem 种东西。
91
- if (store && store.storeType === 'FormStore') {
93
+ if (store &&
94
+ store.storeType === 'FormStore' &&
95
+ store.canAccessSuperData !== false) {
92
96
  keys = uniq__default["default"](store.items
93
97
  .map(function (item) { return "".concat(item.name).replace(/\..*$/, ''); })
94
98
  .concat(Object.keys(obj)));
@@ -149,7 +153,9 @@ function anyChanged(attrs, from, to, strictMode) {
149
153
  if (strictMode === void 0) { strictMode = true; }
150
154
  return (typeof attrs === 'string'
151
155
  ? attrs.split(',').map(function (item) { return item.trim(); })
152
- : attrs).some(function (key) { return (strictMode ? from[key] !== to[key] : from[key] != to[key]); });
156
+ : attrs).some(function (key) {
157
+ return strictMode ? !Object.is(from[key], to[key]) : from[key] != to[key];
158
+ });
153
159
  }
154
160
  function changedEffect(attrs, origin, data, effect, strictMode) {
155
161
  if (strictMode === void 0) { strictMode = true; }
@@ -158,7 +164,7 @@ function changedEffect(attrs, origin, data, effect, strictMode) {
158
164
  ? attrs.split(',').map(function (item) { return item.trim(); })
159
165
  : attrs;
160
166
  keys.forEach(function (key) {
161
- if (strictMode ? origin[key] !== data[key] : origin[key] != data[key]) {
167
+ if (strictMode ? !Object.is(origin[key], data[key]) : origin[key] != data[key]) {
162
168
  changes[key] = data[key];
163
169
  }
164
170
  });
@@ -292,7 +298,19 @@ function makeColumnClassBuild(steps, classNameTpl) {
292
298
  function hasVisibleExpression(schema) {
293
299
  return !!(schema.visibleOn || schema.hiddenOn);
294
300
  }
295
- function isVisible(schema, data) {
301
+ function isVisible(schema, data, statusStore) {
302
+ var _a;
303
+ // 有状态时,状态优先
304
+ if ((schema.id || schema.name) && statusStore) {
305
+ var id = tpl.filter(schema.id, data);
306
+ var name_1 = tpl.filter(schema.name, data);
307
+ var visible = mobxStateTree.isAlive(statusStore)
308
+ ? (_a = statusStore.visibleState[id]) !== null && _a !== void 0 ? _a : statusStore.visibleState[name_1]
309
+ : undefined;
310
+ if (typeof visible !== 'undefined') {
311
+ return visible;
312
+ }
313
+ }
296
314
  return !(schema.hidden ||
297
315
  schema.visible === false ||
298
316
  (schema.hiddenOn &&
@@ -424,7 +442,9 @@ function difference(object$1, base, keepProps) {
424
442
  result_1[key] = a;
425
443
  }
426
444
  // isEquals 里面没有处理好递归引用对象的情况
427
- if (!isObjectShallowModified(a, b, false, undefined, undefined, 10)) {
445
+ if (object$1.hasOwnProperty(key) && // 其中一个不是自己的属性,就不要比对了
446
+ base.hasOwnProperty(key) &&
447
+ !isObjectShallowModified(a, b, true, undefined, undefined, 10)) {
428
448
  return;
429
449
  }
430
450
  if (!object$1.hasOwnProperty(key)) {
@@ -1668,6 +1688,15 @@ var TestIdBuilder = /** @class */ (function () {
1668
1688
  };
1669
1689
  return TestIdBuilder;
1670
1690
  }());
1691
+ function supportsMjs() {
1692
+ try {
1693
+ new Function('import("")');
1694
+ return true;
1695
+ }
1696
+ catch (e) {
1697
+ return false;
1698
+ }
1699
+ }
1671
1700
 
1672
1701
  exports.cloneObject = object.cloneObject;
1673
1702
  exports.createObject = object.createObject;
@@ -1766,6 +1795,7 @@ exports.rmUndefined = rmUndefined;
1766
1795
  exports.someTree = someTree;
1767
1796
  exports.sortArray = sortArray;
1768
1797
  exports.spliceTree = spliceTree;
1798
+ exports.supportsMjs = supportsMjs;
1769
1799
  exports.syncDataFromSuper = syncDataFromSuper;
1770
1800
  exports.ucFirst = ucFirst;
1771
1801
  exports.until = until;
@@ -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/lib/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
 
@@ -14,7 +14,7 @@ function isPureVariable(path) {
14
14
  try {
15
15
  var ast = memoryParse.memoryParse(path);
16
16
  // 只有一个成员说明是纯表达式模式
17
- return ast.body.length === 1 && ast.body[0].type === 'script';
17
+ return (ast === null || ast === void 0 ? void 0 : ast.body.length) === 1 && ast.body[0].type === 'script';
18
18
  }
19
19
  catch (err) {
20
20
  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/lib/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,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,22 +8,26 @@
8
8
  Object.defineProperty(exports, '__esModule', { value: true });
9
9
 
10
10
  var amisFormula = require('amis-formula');
11
+ var visitedCache = require('./visitedCache.js');
11
12
 
12
- var cache = {};
13
+ // NOTE 缓存前40条表达式
14
+ var cache = new visitedCache["default"](40);
13
15
  function memoryParse(input, options) {
14
16
  if (options === void 0) { options = {
15
17
  evalMode: false
16
18
  }; }
17
- // @todo 优化内存缓存释放,比如只缓存最高频的模版
19
+ // 优化内存缓存释放,比如只缓存最高频的模版
18
20
  if (typeof input !== 'string') {
19
21
  return;
20
22
  }
21
23
  var key = input + JSON.stringify(options);
22
- if (cache[key]) {
23
- return cache[key];
24
+ // get cache result
25
+ if (cache.has(key)) {
26
+ return cache.get(key);
24
27
  }
28
+ // run parse function and cache
25
29
  var ast = amisFormula.parse(input, options);
26
- cache[key] = ast;
30
+ cache.set(key, ast);
27
31
  return ast;
28
32
  }
29
33
 
@@ -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
 
@@ -287,9 +287,11 @@ var getRendererEventListeners = function () {
287
287
  */
288
288
  var resolveEventData = function (props, data, valueKey) {
289
289
  var _a, _b;
290
+ var _c, _d;
290
291
  if (valueKey === void 0) { valueKey = 'value'; }
291
- return object.createObject(props.data, props.name && valueKey
292
- ? tslib.__assign(tslib.__assign({}, data), (_a = {}, _a[props.name] = data[valueKey], _a.__rendererData = tslib.__assign(tslib.__assign({}, props.data), (_b = {}, _b[props.name] = data[valueKey], _b)), _a)) : data);
292
+ var proto = (_d = (_c = props.getData) === null || _c === void 0 ? void 0 : _c.call(props)) !== null && _d !== void 0 ? _d : props.data;
293
+ return object.createObject(proto, props.name && valueKey
294
+ ? tslib.__assign(tslib.__assign({}, data), (_a = {}, _a[props.name] = data[valueKey], _a.__rendererData = tslib.__assign(tslib.__assign({}, proto), (_b = {}, _b[props.name] = data[valueKey], _b)), _a)) : data);
293
295
  };
294
296
  /**
295
297
  * 基于 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
 
@@ -167,6 +167,35 @@ function resizeSensor(element, callback, once, type) {
167
167
  if (!element) {
168
168
  return function () { };
169
169
  }
170
+ // 优先用 ResizeObserver
171
+ if (typeof ResizeObserver !== 'undefined') {
172
+ var rect = element.getBoundingClientRect();
173
+ var originWidth_1 = rect.width;
174
+ var originHeight_1 = rect.height;
175
+ var observer_1 = new ResizeObserver(function (entries) {
176
+ if (once) {
177
+ observer_1.disconnect();
178
+ }
179
+ if (type === 'both') {
180
+ callback();
181
+ }
182
+ else {
183
+ var entry = entries[0];
184
+ var cr = entry.contentRect;
185
+ if ((type === 'width' && cr.width !== originWidth_1) ||
186
+ (type === 'height' && cr.height !== originHeight_1)) {
187
+ callback();
188
+ originWidth_1 = cr.width;
189
+ originHeight_1 = cr.height;
190
+ }
191
+ }
192
+ });
193
+ observer_1.observe(element);
194
+ return function () {
195
+ observer_1.disconnect();
196
+ };
197
+ }
198
+ // 不支持 ResizeObserver 的话,用 polyfill
170
199
  var disposeEvent = undefined;
171
200
  if (once) {
172
201
  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
 
@@ -18,6 +18,7 @@ var moment = require('moment');
18
18
  var capitalize = require('lodash/capitalize');
19
19
  require('amis-formula');
20
20
  require('lodash/isPlainObject');
21
+ require('./memoryParse.js');
21
22
  var isPureVariable = require('./isPureVariable.js');
22
23
  require('@rc-component/mini-decimal');
23
24
  var resolveVariableAndFilter = require('./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
 
@@ -157,7 +157,8 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
157
157
  default: '',
158
158
  hover: ':hover',
159
159
  active: ':hover:active',
160
- disabled: '.is-disabled'
160
+ focused: '',
161
+ disabled: ''
161
162
  };
162
163
  var _loop_1 = function (item) {
163
164
  var body = themeCss[item.key];
@@ -173,6 +174,7 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
173
174
  default: {},
174
175
  hover: {},
175
176
  active: {},
177
+ focused: {},
176
178
  disabled: {}
177
179
  };
178
180
  Object.keys(body).forEach(function (key) {
@@ -186,6 +188,9 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
186
188
  else if (!!~key.indexOf(':active')) {
187
189
  statusMap.active[key.replace(':active', '')] = body[key];
188
190
  }
191
+ else if (!!~key.indexOf(':focused')) {
192
+ statusMap.focused[key.replace(':focused', '')] = body[key];
193
+ }
189
194
  else if (!!~key.indexOf(':disabled')) {
190
195
  statusMap.disabled[key.replace(':disabled', '')] = body[key];
191
196
  }
@@ -241,9 +246,10 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
241
246
  if (styles.length > 0) {
242
247
  var cx = ((weights === null || weights === void 0 ? void 0 : weights.pre) || '') + className + ((weights === null || weights === void 0 ? void 0 : weights.suf) || '');
243
248
  var inner = (weights === null || weights === void 0 ? void 0 : weights.inner) || '';
249
+ var parent_1 = (weights === null || weights === void 0 ? void 0 : weights.parent) || '';
244
250
  res.push({
245
- className: cx + status2string[status] + inner,
246
- content: ".".concat(cx + status2string[status], " ").concat(inner, "{\n ").concat(styles.join('\n '), "\n}")
251
+ className: parent_1 + cx + status2string[status] + inner,
252
+ content: "".concat(parent_1, " .").concat(cx + status2string[status], " ").concat(inner, "{\n ").concat(styles.join('\n '), "\n}")
247
253
  });
248
254
  // TODO:切换状态暂时先不改变组件的样式
249
255
  // if (['hover', 'active', 'disabled'].includes(status)) {
@@ -273,9 +279,9 @@ function formatStyle(themeCss, classNames, id, defaultData, data) {
273
279
  origin: res
274
280
  };
275
281
  }
276
- function insertCustomStyle(prams) {
282
+ function insertCustomStyle(params) {
277
283
  var _a;
278
- var themeCss = prams.themeCss, classNames = prams.classNames, id = prams.id, defaultData = prams.defaultData, customStyleClassPrefix = prams.customStyleClassPrefix, doc = prams.doc, data = prams.data;
284
+ var themeCss = params.themeCss, classNames = params.classNames, id = params.id, defaultData = params.defaultData, customStyleClassPrefix = params.customStyleClassPrefix, doc = params.doc, data = params.data;
279
285
  if (!themeCss) {
280
286
  return;
281
287
  }
@@ -409,21 +415,29 @@ function formatInputThemeCss(themeCss) {
409
415
  return inputFontThemeCss;
410
416
  }
411
417
  function setThemeClassName(params) {
412
- var _a;
413
418
  var name = params.name, id = params.id, themeCss = params.themeCss, extra = params.extra, data = params.data;
414
419
  if (!id || !themeCss) {
415
420
  return '';
416
421
  }
417
- if (name !== 'wrapperCustomStyle' && !themeCss[name]) {
418
- return '';
419
- }
420
422
  var index = '';
421
423
  if (typeof (data === null || data === void 0 ? void 0 : data.index) === 'number') {
422
424
  index = "-".concat(data.index);
423
425
  }
424
- return ("".concat(name, "-").concat(((_a = id.replace) === null || _a === void 0 ? void 0 : _a.call(id, 'u:', '')) || id) +
425
- (extra ? "-".concat(extra) : '') +
426
- index);
426
+ function setClassName(name, id) {
427
+ var _a;
428
+ if (name !== 'wrapperCustomStyle' && !themeCss[name]) {
429
+ return '';
430
+ }
431
+ return ("".concat(name, "-").concat(((_a = id.replace) === null || _a === void 0 ? void 0 : _a.call(id, 'u:', '')) || id) +
432
+ (extra ? "-".concat(extra) : '') +
433
+ index);
434
+ }
435
+ if (typeof name === 'string') {
436
+ return setClassName(name, id);
437
+ }
438
+ else {
439
+ return name.map(function (n) { return setClassName(n, id); }).join(' ');
440
+ }
427
441
  }
428
442
 
429
443
  exports.addStyle = addStyle;
@@ -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
 
@@ -11,6 +11,7 @@ require('tslib');
11
11
  require('amis-formula');
12
12
  require('moment');
13
13
  require('lodash/isPlainObject');
14
+ require('./memoryParse.js');
14
15
  require('@rc-component/mini-decimal');
15
16
  var resolveVariableAndFilter = require('./resolveVariableAndFilter.js');
16
17
  require('./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
 
@@ -11,6 +11,7 @@ var tslib = require('tslib');
11
11
  var amisFormula = require('amis-formula');
12
12
  require('moment');
13
13
  require('lodash/isPlainObject');
14
+ require('./memoryParse.js');
14
15
  var tokenize = require('./tokenize.js');
15
16
  require('@rc-component/mini-decimal');
16
17
  var resolveVariableAndFilterForAsync = require('./resolveVariableAndFilterForAsync.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
 
@@ -12,6 +12,7 @@ var template = require('lodash/template');
12
12
  var amisFormula = require('amis-formula');
13
13
  var moment = require('moment');
14
14
  require('lodash/isPlainObject');
15
+ require('./memoryParse.js');
15
16
  require('@rc-component/mini-decimal');
16
17
  require('./filter.js');
17
18
 
package/lib/utils/tpl.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