amis-core 6.11.0-beta.0 → 6.11.0-beta.2

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 (332) hide show
  1. package/esm/Root.d.ts +3 -0
  2. package/esm/Root.js +1 -1
  3. package/esm/RootRenderer.js +14 -8
  4. package/esm/SchemaRenderer.d.ts +2 -13
  5. package/esm/SchemaRenderer.js +36 -72
  6. package/esm/Scoped.js +1 -1
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/StyleManager.js +1 -1
  9. package/esm/WithRootStore.d.ts +1 -1
  10. package/esm/WithRootStore.js +1 -1
  11. package/esm/WithStore.js +1 -1
  12. package/esm/actions/Action.js +1 -1
  13. package/esm/actions/AjaxAction.js +1 -1
  14. package/esm/actions/BreakAction.js +1 -1
  15. package/esm/actions/BroadcastAction.js +1 -1
  16. package/esm/actions/CmptAction.js +6 -2
  17. package/esm/actions/ContinueAction.js +1 -1
  18. package/esm/actions/CopyAction.js +1 -1
  19. package/esm/actions/CustomAction.js +1 -1
  20. package/esm/actions/DialogAction.js +1 -1
  21. package/esm/actions/DrawerAction.js +1 -1
  22. package/esm/actions/EmailAction.js +1 -1
  23. package/esm/actions/EventAction.js +1 -1
  24. package/esm/actions/LinkAction.js +1 -1
  25. package/esm/actions/LoopAction.js +1 -1
  26. package/esm/actions/PageAction.js +1 -1
  27. package/esm/actions/ParallelAction.js +1 -1
  28. package/esm/actions/PrintAction.js +1 -1
  29. package/esm/actions/StatusAction.js +1 -1
  30. package/esm/actions/SwitchAction.js +1 -1
  31. package/esm/actions/ToastAction.js +1 -1
  32. package/esm/actions/WaitAction.js +1 -1
  33. package/esm/components/Animations.d.ts +8 -0
  34. package/esm/components/Animations.js +158 -0
  35. package/esm/components/CustomStyle.js +1 -1
  36. package/esm/components/ErrorBoundary.js +1 -1
  37. package/esm/components/LazyComponent.d.ts +1 -1
  38. package/esm/components/LazyComponent.js +1 -1
  39. package/esm/components/Overlay.js +1 -1
  40. package/esm/components/PopOver.d.ts +1 -1
  41. package/esm/components/PopOver.js +1 -1
  42. package/esm/env.d.ts +1 -1
  43. package/esm/env.js +1 -1
  44. package/esm/envOverwrite.js +1 -1
  45. package/esm/factory.d.ts +1 -0
  46. package/esm/factory.js +1 -1
  47. package/esm/globalVar.d.ts +173 -0
  48. package/esm/globalVar.js +122 -0
  49. package/esm/globalVarClientHandler.d.ts +1 -0
  50. package/esm/globalVarClientHandler.js +65 -0
  51. package/esm/globalVarDefaultValueHandler.d.ts +1 -0
  52. package/esm/globalVarDefaultValueHandler.js +28 -0
  53. package/esm/index.d.ts +3 -0
  54. package/esm/index.js +8 -5
  55. package/esm/locale.d.ts +1 -1
  56. package/esm/locale.js +1 -1
  57. package/esm/polyfills.js +1 -1
  58. package/esm/renderers/Form.d.ts +3 -1
  59. package/esm/renderers/Form.js +39 -24
  60. package/esm/renderers/Item.d.ts +11 -17
  61. package/esm/renderers/Item.js +17 -2
  62. package/esm/renderers/Options.js +1 -1
  63. package/esm/renderers/Placeholder.js +1 -1
  64. package/esm/renderers/builtin.js +1 -1
  65. package/esm/renderers/register.js +1 -1
  66. package/esm/renderers/wrapControl.d.ts +1 -1
  67. package/esm/renderers/wrapControl.js +1 -1
  68. package/esm/store/app.js +1 -1
  69. package/esm/store/combo.js +1 -1
  70. package/esm/store/crud.d.ts +8 -0
  71. package/esm/store/crud.js +24 -17
  72. package/esm/store/form.js +14 -5
  73. package/esm/store/formItem.js +1 -1
  74. package/esm/store/iRenderer.js +1 -1
  75. package/esm/store/index.js +1 -1
  76. package/esm/store/list.d.ts +14 -1
  77. package/esm/store/list.js +45 -17
  78. package/esm/store/manager.js +1 -1
  79. package/esm/store/modal.js +1 -1
  80. package/esm/store/node.js +1 -1
  81. package/esm/store/pagination.js +1 -1
  82. package/esm/store/root.d.ts +14 -0
  83. package/esm/store/root.js +483 -12
  84. package/esm/store/service.js +1 -1
  85. package/esm/store/status.js +1 -1
  86. package/esm/store/table.d.ts +16 -2
  87. package/esm/store/table.js +83 -26
  88. package/esm/store/table2.js +1 -1
  89. package/esm/theme.d.ts +1 -1
  90. package/esm/theme.js +1 -1
  91. package/esm/types.d.ts +3 -2
  92. package/esm/utils/Animation.js +1 -1
  93. package/esm/utils/ColorScale.js +1 -1
  94. package/esm/utils/DataSchema.js +1 -1
  95. package/esm/utils/DataScope.js +1 -1
  96. package/esm/utils/RootClose.js +1 -1
  97. package/esm/utils/SimpleMap.js +1 -1
  98. package/esm/utils/animations.d.ts +4 -0
  99. package/esm/utils/animations.js +1 -1
  100. package/esm/utils/api.d.ts +1 -0
  101. package/esm/utils/api.js +18 -6
  102. package/esm/utils/arraySlice.js +1 -1
  103. package/esm/utils/attachmentAdpator.js +1 -1
  104. package/esm/utils/autobind.js +1 -1
  105. package/esm/utils/browser.js +1 -1
  106. package/esm/utils/columnsSplit.js +1 -1
  107. package/esm/utils/concatData.js +1 -1
  108. package/esm/utils/dataMapping.js +1 -1
  109. package/esm/utils/date.js +1 -1
  110. package/esm/utils/debug.js +1 -1
  111. package/esm/utils/decodeEntity.js +1 -1
  112. package/esm/utils/dom.js +1 -1
  113. package/esm/utils/errors.js +1 -1
  114. package/esm/utils/escapeHtml.js +1 -1
  115. package/esm/utils/filter-schema.js +1 -1
  116. package/esm/utils/filter.js +1 -1
  117. package/esm/utils/formatDuration.js +1 -1
  118. package/esm/utils/formula.js +1 -1
  119. package/esm/utils/getVariable.js +1 -1
  120. package/esm/utils/grammar.js +1 -1
  121. package/esm/utils/handleAction.js +1 -1
  122. package/esm/utils/helper.d.ts +5 -0
  123. package/esm/utils/helper.js +6 -2
  124. package/esm/utils/highlight.js +1 -1
  125. package/esm/utils/icon.js +1 -1
  126. package/esm/utils/image.js +1 -1
  127. package/esm/utils/isPureVariable.js +1 -1
  128. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  129. package/esm/utils/keyToPath.js +1 -1
  130. package/esm/utils/labelToString.js +1 -1
  131. package/esm/utils/loopTooMuch.js +1 -1
  132. package/esm/utils/makeSorter.js +1 -1
  133. package/esm/utils/math.js +1 -1
  134. package/esm/utils/memoryParse.js +1 -1
  135. package/esm/utils/normalizeLink.js +1 -1
  136. package/esm/utils/normalizeOptions.js +1 -1
  137. package/esm/utils/object.js +1 -1
  138. package/esm/utils/offset.js +1 -1
  139. package/esm/utils/offsetParent.js +1 -1
  140. package/esm/utils/optionValueCompare.js +1 -1
  141. package/esm/utils/position.js +1 -1
  142. package/esm/utils/prettyBytes.js +1 -1
  143. package/esm/utils/printElement.js +1 -1
  144. package/esm/utils/renderer-event.js +1 -1
  145. package/esm/utils/replaceText.js +1 -1
  146. package/esm/utils/resize-sensor.js +1 -1
  147. package/esm/utils/resolveCondition.js +1 -1
  148. package/esm/utils/resolveVariable.js +1 -1
  149. package/esm/utils/resolveVariableAndFilter.js +1 -1
  150. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  151. package/esm/utils/scrollPosition.js +1 -1
  152. package/esm/utils/string2regExp.js +1 -1
  153. package/esm/utils/stripNumber.js +1 -1
  154. package/esm/utils/style-helper.js +1 -1
  155. package/esm/utils/style.js +1 -1
  156. package/esm/utils/toNumber.js +1 -1
  157. package/esm/utils/tokenize.js +1 -1
  158. package/esm/utils/tpl-builtin.js +1 -1
  159. package/esm/utils/tpl-lodash.js +1 -1
  160. package/esm/utils/tpl.js +1 -1
  161. package/esm/utils/uncontrollable.js +1 -1
  162. package/esm/utils/validateId.js +1 -1
  163. package/esm/utils/validations.js +1 -1
  164. package/esm/utils/visitedCache.js +1 -1
  165. package/lib/Root.d.ts +3 -0
  166. package/lib/Root.js +1 -1
  167. package/lib/RootRenderer.d.ts +1 -1
  168. package/lib/RootRenderer.js +13 -7
  169. package/lib/SchemaRenderer.d.ts +2 -13
  170. package/lib/SchemaRenderer.js +35 -71
  171. package/lib/Scoped.js +1 -1
  172. package/lib/StatusScoped.js +1 -1
  173. package/lib/StyleManager.js +1 -1
  174. package/lib/WithRootStore.d.ts +1 -1
  175. package/lib/WithRootStore.js +1 -1
  176. package/lib/WithStore.js +1 -1
  177. package/lib/actions/Action.js +1 -1
  178. package/lib/actions/AjaxAction.js +1 -1
  179. package/lib/actions/BreakAction.js +1 -1
  180. package/lib/actions/BroadcastAction.js +1 -1
  181. package/lib/actions/CmptAction.js +6 -2
  182. package/lib/actions/ContinueAction.js +1 -1
  183. package/lib/actions/CopyAction.js +1 -1
  184. package/lib/actions/CustomAction.js +1 -1
  185. package/lib/actions/DialogAction.js +1 -1
  186. package/lib/actions/DrawerAction.js +1 -1
  187. package/lib/actions/EmailAction.js +1 -1
  188. package/lib/actions/EventAction.js +1 -1
  189. package/lib/actions/LinkAction.js +1 -1
  190. package/lib/actions/LoopAction.js +1 -1
  191. package/lib/actions/PageAction.js +1 -1
  192. package/lib/actions/ParallelAction.js +1 -1
  193. package/lib/actions/PrintAction.js +1 -1
  194. package/lib/actions/StatusAction.js +1 -1
  195. package/lib/actions/SwitchAction.js +1 -1
  196. package/lib/actions/ToastAction.js +1 -1
  197. package/lib/actions/WaitAction.js +1 -1
  198. package/lib/components/Animations.d.ts +8 -0
  199. package/lib/components/Animations.js +172 -0
  200. package/lib/components/CustomStyle.js +1 -1
  201. package/lib/components/ErrorBoundary.js +1 -1
  202. package/lib/components/LazyComponent.d.ts +1 -1
  203. package/lib/components/LazyComponent.js +1 -1
  204. package/lib/components/Overlay.js +1 -1
  205. package/lib/components/PopOver.d.ts +1 -1
  206. package/lib/components/PopOver.js +1 -1
  207. package/lib/env.d.ts +1 -1
  208. package/lib/env.js +1 -1
  209. package/lib/envOverwrite.js +1 -1
  210. package/lib/factory.d.ts +1 -0
  211. package/lib/factory.js +1 -1
  212. package/lib/globalVar.d.ts +173 -0
  213. package/lib/globalVar.js +130 -0
  214. package/lib/globalVarClientHandler.d.ts +1 -0
  215. package/lib/globalVarClientHandler.js +67 -0
  216. package/lib/globalVarDefaultValueHandler.d.ts +1 -0
  217. package/lib/globalVarDefaultValueHandler.js +30 -0
  218. package/lib/index.d.ts +3 -0
  219. package/lib/index.js +13 -4
  220. package/lib/locale.d.ts +1 -1
  221. package/lib/locale.js +1 -1
  222. package/lib/polyfills.js +1 -1
  223. package/lib/renderers/Form.d.ts +3 -1
  224. package/lib/renderers/Form.js +37 -21
  225. package/lib/renderers/Item.d.ts +11 -17
  226. package/lib/renderers/Item.js +17 -2
  227. package/lib/renderers/Options.js +1 -1
  228. package/lib/renderers/Placeholder.js +1 -1
  229. package/lib/renderers/builtin.js +1 -1
  230. package/lib/renderers/register.js +1 -1
  231. package/lib/renderers/wrapControl.d.ts +1 -1
  232. package/lib/renderers/wrapControl.js +1 -1
  233. package/lib/store/app.js +1 -1
  234. package/lib/store/combo.d.ts +24 -25
  235. package/lib/store/combo.js +1 -1
  236. package/lib/store/crud.d.ts +8 -0
  237. package/lib/store/crud.js +23 -16
  238. package/lib/store/form.d.ts +10 -11
  239. package/lib/store/form.js +14 -5
  240. package/lib/store/formItem.js +1 -1
  241. package/lib/store/iRenderer.js +1 -1
  242. package/lib/store/index.js +1 -1
  243. package/lib/store/list.d.ts +14 -1
  244. package/lib/store/list.js +44 -16
  245. package/lib/store/manager.js +1 -1
  246. package/lib/store/modal.js +1 -1
  247. package/lib/store/node.js +1 -1
  248. package/lib/store/pagination.js +1 -1
  249. package/lib/store/root.d.ts +13 -0
  250. package/lib/store/root.js +487 -11
  251. package/lib/store/service.js +1 -1
  252. package/lib/store/status.js +1 -1
  253. package/lib/store/table.d.ts +36 -23
  254. package/lib/store/table.js +82 -25
  255. package/lib/store/table2.js +1 -1
  256. package/lib/theme.d.ts +1 -1
  257. package/lib/theme.js +1 -1
  258. package/lib/types.d.ts +3 -2
  259. package/lib/utils/Animation.js +1 -1
  260. package/lib/utils/ColorScale.js +1 -1
  261. package/lib/utils/DataSchema.js +1 -1
  262. package/lib/utils/DataScope.js +1 -1
  263. package/lib/utils/RootClose.js +1 -1
  264. package/lib/utils/SimpleMap.js +1 -1
  265. package/lib/utils/animations.d.ts +4 -0
  266. package/lib/utils/animations.js +1 -1
  267. package/lib/utils/api.d.ts +1 -0
  268. package/lib/utils/api.js +18 -5
  269. package/lib/utils/arraySlice.js +1 -1
  270. package/lib/utils/attachmentAdpator.js +1 -1
  271. package/lib/utils/autobind.js +1 -1
  272. package/lib/utils/browser.js +1 -1
  273. package/lib/utils/columnsSplit.js +1 -1
  274. package/lib/utils/concatData.js +1 -1
  275. package/lib/utils/dataMapping.js +1 -1
  276. package/lib/utils/date.js +1 -1
  277. package/lib/utils/debug.js +1 -1
  278. package/lib/utils/decodeEntity.js +1 -1
  279. package/lib/utils/dom.js +1 -1
  280. package/lib/utils/errors.js +1 -1
  281. package/lib/utils/escapeHtml.js +1 -1
  282. package/lib/utils/filter-schema.js +1 -1
  283. package/lib/utils/filter.js +1 -1
  284. package/lib/utils/formatDuration.js +1 -1
  285. package/lib/utils/formula.js +1 -1
  286. package/lib/utils/getVariable.js +1 -1
  287. package/lib/utils/grammar.js +1 -1
  288. package/lib/utils/handleAction.js +1 -1
  289. package/lib/utils/helper.d.ts +5 -0
  290. package/lib/utils/helper.js +6 -2
  291. package/lib/utils/highlight.js +1 -1
  292. package/lib/utils/icon.js +1 -1
  293. package/lib/utils/image.js +1 -1
  294. package/lib/utils/isPureVariable.js +1 -1
  295. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  296. package/lib/utils/keyToPath.js +1 -1
  297. package/lib/utils/labelToString.js +1 -1
  298. package/lib/utils/loopTooMuch.js +1 -1
  299. package/lib/utils/makeSorter.js +1 -1
  300. package/lib/utils/math.js +1 -1
  301. package/lib/utils/memoryParse.js +1 -1
  302. package/lib/utils/normalizeLink.js +1 -1
  303. package/lib/utils/normalizeOptions.js +1 -1
  304. package/lib/utils/object.js +1 -1
  305. package/lib/utils/offset.js +1 -1
  306. package/lib/utils/offsetParent.js +1 -1
  307. package/lib/utils/optionValueCompare.js +1 -1
  308. package/lib/utils/position.js +1 -1
  309. package/lib/utils/prettyBytes.js +1 -1
  310. package/lib/utils/printElement.js +1 -1
  311. package/lib/utils/renderer-event.js +1 -1
  312. package/lib/utils/replaceText.js +1 -1
  313. package/lib/utils/resize-sensor.js +1 -1
  314. package/lib/utils/resolveCondition.js +1 -1
  315. package/lib/utils/resolveVariable.js +1 -1
  316. package/lib/utils/resolveVariableAndFilter.js +1 -1
  317. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  318. package/lib/utils/scrollPosition.js +1 -1
  319. package/lib/utils/string2regExp.js +1 -1
  320. package/lib/utils/stripNumber.js +1 -1
  321. package/lib/utils/style-helper.js +1 -1
  322. package/lib/utils/style.js +1 -1
  323. package/lib/utils/toNumber.js +1 -1
  324. package/lib/utils/tokenize.js +1 -1
  325. package/lib/utils/tpl-builtin.js +1 -1
  326. package/lib/utils/tpl-lodash.js +1 -1
  327. package/lib/utils/tpl.js +1 -1
  328. package/lib/utils/uncontrollable.js +1 -1
  329. package/lib/utils/validateId.js +1 -1
  330. package/lib/utils/validations.js +1 -1
  331. package/lib/utils/visitedCache.js +1 -1
  332. package/package.json +2 -2
@@ -0,0 +1,158 @@
1
+ /**
2
+ * amis-core v6.11.0-beta.2
3
+ * Copyright 2018-2024 fex
4
+ */
5
+
6
+ import { __read } from 'tslib';
7
+ import React, { useState, useMemo, useEffect, useCallback } from 'react';
8
+ import { CSSTransition } from 'react-transition-group';
9
+ import '../utils/api.js';
10
+ import '../utils/browser.js';
11
+ import '../utils/ColorScale.js';
12
+ import 'lodash/chunk';
13
+ import 'lodash/isPlainObject';
14
+ import 'amis-formula';
15
+ import '../utils/memoryParse.js';
16
+ import '../utils/DataSchema.js';
17
+ import '../utils/DataScope.js';
18
+ import 'moment';
19
+ import '../utils/debug.js';
20
+ import 'react-dom';
21
+ import { formateId } from '../utils/helper.js';
22
+ import '../utils/errors.js';
23
+ import '../utils/tpl.js';
24
+ import '../utils/filter.js';
25
+ import 'lodash/isObject';
26
+ import 'lodash/isString';
27
+ import 'lodash/isBoolean';
28
+ import '@rc-component/mini-decimal';
29
+ import '../utils/image.js';
30
+ import 'lodash/isEqual';
31
+ import '../actions/Action.js';
32
+ import 'lodash/debounce';
33
+ import '../utils/resize-sensor.js';
34
+ import 'react-overlays/useRootClose';
35
+ import '../utils/SimpleMap.js';
36
+ import 'lodash/mapValues';
37
+ import 'lodash/camelCase';
38
+ import 'lodash/cloneDeep';
39
+ import 'lodash/map';
40
+ import 'lodash/isEmpty';
41
+ import 'lodash/kebabCase';
42
+ import 'uncontrollable';
43
+ import 'hoist-non-react-statics';
44
+ import '../utils/validations.js';
45
+ import '../utils/resolveCondition.js';
46
+ import 'mobx';
47
+ import '../utils/Animation.js';
48
+ import { createAnimationStyle } from '../utils/animations.js';
49
+ import styleManager from '../StyleManager.js';
50
+
51
+ function Animations(_a) {
52
+ var schema = _a.schema, component = _a.component, show = _a.show;
53
+ var enter = (schema.animations || {}).enter;
54
+ var _b = __read(useState(!(enter === null || enter === void 0 ? void 0 : enter.inView)), 2), animationShow = _b[0], setAnimationShow = _b[1];
55
+ var _c = __read(useState(!!(enter === null || enter === void 0 ? void 0 : enter.inView)), 2), placeholderShow = _c[0], setPlaceholderShow = _c[1];
56
+ var id = useMemo(function () { return formateId(schema.id); }, []);
57
+ var observer = useMemo(newObserver, []);
58
+ var animationClassNames = useMemo(initAnimationClassNames, []);
59
+ var animationTimeout = useMemo(initAnimationTimeout, []);
60
+ useEffect(function () {
61
+ createAnimationStyle(id, schema.animations);
62
+ return function () {
63
+ if (schema.animations) {
64
+ styleManager.removeStyles(id);
65
+ }
66
+ observer.disconnect();
67
+ };
68
+ }, []);
69
+ function newObserver() {
70
+ return new IntersectionObserver(function (entries, observer) {
71
+ entries.forEach(function (entry) {
72
+ if (entry.target.getAttribute('data-role') === 'animation-placeholder') {
73
+ if (entry.isIntersecting) {
74
+ setAnimationShow(true);
75
+ setPlaceholderShow(false);
76
+ observer.unobserve(entry.target);
77
+ }
78
+ }
79
+ else {
80
+ if (!entry.isIntersecting) {
81
+ setAnimationShow(false);
82
+ observer.unobserve(entry.target);
83
+ }
84
+ }
85
+ });
86
+ }, {
87
+ root: null,
88
+ rootMargin: '0px',
89
+ threshold: 0.1
90
+ });
91
+ }
92
+ function initAnimationClassNames() {
93
+ var animations = schema === null || schema === void 0 ? void 0 : schema.animations;
94
+ var animationClassNames = {
95
+ appear: '',
96
+ enter: '',
97
+ exit: ''
98
+ };
99
+ if (animations) {
100
+ if (animations.enter) {
101
+ animationClassNames.enter = "".concat(animations.enter.type, "-").concat(id, "-enter");
102
+ animationClassNames.appear = animationClassNames.enter;
103
+ }
104
+ if (animations.exit) {
105
+ animationClassNames.exit = "".concat(animations.exit.type, "-").concat(id, "-exit");
106
+ }
107
+ }
108
+ return animationClassNames;
109
+ }
110
+ function initAnimationTimeout() {
111
+ var animations = schema === null || schema === void 0 ? void 0 : schema.animations;
112
+ var animationTimeout = {
113
+ enter: 0,
114
+ exit: 0
115
+ };
116
+ if (animations) {
117
+ if (animations.enter) {
118
+ animationTimeout.enter =
119
+ ((animations.enter.duration || 1) + (animations.enter.delay || 0)) *
120
+ 1000;
121
+ }
122
+ if (animations.exit) {
123
+ animationTimeout.exit =
124
+ ((animations.exit.duration || 1) + (animations.exit.delay || 0)) *
125
+ 1000;
126
+ }
127
+ }
128
+ return animationTimeout;
129
+ }
130
+ function refFn(ref) {
131
+ if (ref) {
132
+ observer.observe(ref);
133
+ }
134
+ }
135
+ var handleEntered = useCallback(function (node) {
136
+ var _a = schema.animations || {}, attention = _a.attention, exit = _a.exit, enter = _a.enter;
137
+ if (attention) {
138
+ node.classList.add("".concat(attention.type, "-").concat(id, "-attention"));
139
+ }
140
+ if ((exit === null || exit === void 0 ? void 0 : exit.outView) || (enter === null || enter === void 0 ? void 0 : enter.repeat)) {
141
+ observer.observe(node);
142
+ }
143
+ }, []);
144
+ var handleExit = useCallback(function (node) {
145
+ var attention = (schema.animations || {}).attention;
146
+ if (attention) {
147
+ node.classList.remove("".concat(attention.type, "-").concat(id, "-attention"));
148
+ }
149
+ }, []);
150
+ var handleExited = useCallback(function () {
151
+ setPlaceholderShow(true);
152
+ }, []);
153
+ return (React.createElement(React.Fragment, null,
154
+ !animationShow && show && placeholderShow && (React.createElement("div", { ref: refFn, className: "amis-animation-placeholder", "data-role": "animation-placeholder" }, component)),
155
+ React.createElement(CSSTransition, { in: animationShow && show, timeout: animationTimeout, classNames: animationClassNames, onEntered: handleEntered, onExit: handleExit, onExited: handleExited, appear: true, unmountOnExit: true }, component)));
156
+ }
157
+
158
+ export { Animations as default };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.0
2
+ * amis-core v6.11.0-beta.2
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.0
2
+ * amis-core v6.11.0-beta.2
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -60,7 +60,7 @@ declare const themedLazyComponent: {
60
60
  componentWillUpdate?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
61
61
  UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<LazyComponentProps, keyof ThemeProps> & import("../theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
62
62
  };
63
- displayName: any;
63
+ displayName: string;
64
64
  contextType: React.Context<string>;
65
65
  ComposedComponent: React.ComponentType<typeof LazyComponent>;
66
66
  } & import("hoist-non-react-statics").NonReactStatics<typeof LazyComponent, {}> & {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.0
2
+ * amis-core v6.11.0-beta.2
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.0
2
+ * amis-core v6.11.0-beta.2
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -85,7 +85,7 @@ declare const _default: {
85
85
  componentWillUpdate?(nextProps: Readonly<Omit<PopOverProps, keyof import("../theme").ThemeProps> & import("../theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
86
86
  UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<PopOverProps, keyof import("../theme").ThemeProps> & import("../theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
87
87
  };
88
- displayName: any;
88
+ displayName: string;
89
89
  contextType: React.Context<string>;
90
90
  ComposedComponent: React.ComponentType<typeof PopOver>;
91
91
  } & import("hoist-non-react-statics").NonReactStatics<typeof PopOver, {}> & {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.0
2
+ * amis-core v6.11.0-beta.2
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/env.d.ts CHANGED
@@ -202,7 +202,7 @@ export declare function withRendererEnv<T extends React.ComponentType<React.Comp
202
202
  env?: RendererEnv | undefined;
203
203
  }>, nextState: Readonly<{}>, nextContext: any): void;
204
204
  };
205
- displayName: any;
205
+ displayName: string;
206
206
  contextType: React.Context<void | RendererEnv>;
207
207
  ComposedComponent: React.ComponentType<T>;
208
208
  } & hoistNonReactStatic.NonReactStatics<T, {}> & {
package/esm/env.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.0
2
+ * amis-core v6.11.0-beta.2
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.0
2
+ * amis-core v6.11.0-beta.2
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/factory.d.ts CHANGED
@@ -20,6 +20,7 @@ export interface RendererBasicConfig {
20
20
  defaultProps?: (type: string, schema: any) => any;
21
21
  shouldSyncSuperStore?: (store: any, props: any, prevProps: any) => boolean | undefined;
22
22
  storeExtendsData?: boolean | ((props: any) => boolean);
23
+ onGlobalVarChanged?: (instance: React.Component, schema: any, data: any) => void | boolean;
23
24
  weight?: number;
24
25
  isolateScope?: boolean;
25
26
  isFormItem?: boolean;
package/esm/factory.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.11.0-beta.0
2
+ * amis-core v6.11.0-beta.2
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -0,0 +1,173 @@
1
+ /**
2
+ * 全局变量
3
+ *
4
+ * 用于实现跨组件、跨页面的数据共享,支持持久化。
5
+ */
6
+ import { JSONSchema } from './types';
7
+ import { IRootStore } from './store/root';
8
+ /**
9
+ * 全局变量的定义
10
+ */
11
+ export interface GlobalVariableItem {
12
+ id?: string;
13
+ /**
14
+ * 设计态属性。
15
+ * 全局变量类型,不是数据体类型,而是用于区分不同的配置方式。
16
+ * 这个字段运行时无含义,主要用于编辑器中的分类。
17
+ *
18
+ * 比如平台可能扩充:应用级别、页面级别、用户级别、数据字典关联、数据模型关联等。
19
+ * amis 中内置了:builtin 为简单的客户端存储,服务端存储需要外部扩充。
20
+ *
21
+ * @default builtin
22
+ */
23
+ type?: string | 'builtin';
24
+ /**
25
+ * 变量名
26
+ */
27
+ key: string;
28
+ /**
29
+ * 变量标题
30
+ */
31
+ label?: string;
32
+ /**
33
+ * 变量描述
34
+ */
35
+ description?: string;
36
+ /**
37
+ * 默认值
38
+ */
39
+ defaultValue?: string;
40
+ /**
41
+ * 值的数据类型定义
42
+ */
43
+ valueSchema?: JSONSchema;
44
+ /**
45
+ * 数据作用域
46
+ */
47
+ scope?: 'page' | 'app';
48
+ /**
49
+ * 数据存储方式
50
+ */
51
+ storageOn?: 'client' | 'server' | 'session';
52
+ /**
53
+ * 是否只读,不允许修改,运行态属性。
54
+ */
55
+ readonly?: boolean;
56
+ /**
57
+ * @default true
58
+ * 是否自动保存,如果不特殊配置,会自动保存
59
+ */
60
+ autoSave?: boolean;
61
+ validationErrors?: any;
62
+ validations?: any;
63
+ [propName: string]: any;
64
+ }
65
+ export type GlobalVarGetter = (variable: GlobalVariableItem, context: GlobalVarContext) => Promise<any>;
66
+ export type GlobalVarBulkGetter = (context: GlobalVarContext) => Promise<Record<string, any>> | Record<string, any>;
67
+ export type GlobalVarSetter = (variable: GlobalVariableItem, value: Record<string, any>, context: GlobalVarContext) => Promise<any>;
68
+ export type GlobalVarBulkSetter = (values: Record<string, any>, context: GlobalVarContext) => Promise<any> | any;
69
+ export interface GlobalVariableItemFull extends GlobalVariableItem {
70
+ /**
71
+ * 校验数值是否合法
72
+ * @param value
73
+ * @returns
74
+ */
75
+ validate?: (value: any, values: Record<string, any>) => string | void;
76
+ /**
77
+ * 权重,用于排序
78
+ */
79
+ order?: number;
80
+ /**
81
+ * 单个数据初始化获取
82
+ * @returns
83
+ */
84
+ getter?: GlobalVarGetter;
85
+ /**
86
+ * 批量数据初始化获取
87
+ * @returns
88
+ */
89
+ bulkGetter?: GlobalVarBulkGetter;
90
+ /**
91
+ * 当个数据修改保存
92
+ * @param value
93
+ * @returns
94
+ */
95
+ setter?: GlobalVarSetter;
96
+ /**
97
+ * 批量全局变量数据保存,多个变量一起保存
98
+ * @param values
99
+ * @returns
100
+ */
101
+ bulkSetter?: GlobalVarBulkSetter;
102
+ }
103
+ /**
104
+ * 全局变量的状态
105
+ */
106
+ export interface GlobalVariableState {
107
+ /**
108
+ * 当前值
109
+ */
110
+ value: any;
111
+ /**
112
+ * 原始值
113
+ */
114
+ pristine: any;
115
+ /**
116
+ * 是否正在加载, 或者说正在获取
117
+ */
118
+ busy?: boolean;
119
+ /**
120
+ * 是否已经初始化
121
+ */
122
+ initialized: boolean;
123
+ /**
124
+ * 数据是否合法
125
+ */
126
+ valid: boolean;
127
+ /**
128
+ * 错误馨馨
129
+ */
130
+ errorMessages: string[];
131
+ /**
132
+ * 是否有变更
133
+ */
134
+ touched: boolean;
135
+ /**
136
+ * 是否有保存
137
+ */
138
+ saved: boolean;
139
+ }
140
+ export interface GlobalVarContext {
141
+ variables: Array<GlobalVariableItem>;
142
+ [propName: string]: any;
143
+ }
144
+ /**
145
+ * 全局变量处理器, 可以处理全变量的初始化、校验、存储等操作
146
+ */
147
+ export type GlobalVariableHandler = (variable: GlobalVariableItem | GlobalVariableItemFull, context: GlobalVarContext) => GlobalVariableItemFull | void | ((variable: GlobalVariableItem | GlobalVariableItemFull, context: GlobalVarContext) => GlobalVariableItemFull | void);
148
+ /**
149
+ * 注册全局变量处理器
150
+ * @param handler
151
+ */
152
+ export declare function registerGlobalVariableHandler(handler: GlobalVariableHandler): void;
153
+ /**
154
+ * 通过处理器构建全局变量细节对象,用于后续的初始化、校验、存储等操作
155
+ * @param variable
156
+ * @param context
157
+ * @returns
158
+ */
159
+ export declare function buildGlobalVariable(variable: GlobalVariableItem | GlobalVariableItemFull, context: GlobalVarContext): GlobalVariableItemFull;
160
+ /**
161
+ * 构建变量初始状态
162
+ * @returns
163
+ */
164
+ export declare function createGlobalVarState(): GlobalVariableState;
165
+ export declare function isGlobalVarExpression(value: string): boolean;
166
+ /**
167
+ * 监控组件的全局变量
168
+ * @param schema
169
+ * @param topStore
170
+ * @param callback
171
+ * @returns
172
+ */
173
+ export declare function observeGlobalVars(schema: any, topStore: IRootStore, callback: () => void): () => void;
@@ -0,0 +1,122 @@
1
+ /**
2
+ * amis-core v6.11.0-beta.2
3
+ * Copyright 2018-2024 fex
4
+ */
5
+
6
+ import { isExpression } from './utils/formula.js';
7
+ import { reaction } from 'mobx';
8
+ import { resolveVariableAndFilter } from './utils/resolveVariableAndFilter.js';
9
+
10
+ /**
11
+ * 全局变量
12
+ *
13
+ * 用于实现跨组件、跨页面的数据共享,支持持久化。
14
+ */
15
+ var handlers = [];
16
+ /**
17
+ * 注册全局变量处理器
18
+ * @param handler
19
+ */
20
+ function registerGlobalVariableHandler(handler) {
21
+ handlers.push(handler);
22
+ }
23
+ /**
24
+ * 通过处理器构建全局变量细节对象,用于后续的初始化、校验、存储等操作
25
+ * @param variable
26
+ * @param context
27
+ * @returns
28
+ */
29
+ function buildGlobalVariable(variable, context) {
30
+ var postHandlers = [];
31
+ var result = handlers.reduce(function (item, handler) {
32
+ var result = handler(item, context);
33
+ if (typeof result === 'function') {
34
+ postHandlers.push(result);
35
+ }
36
+ return (result !== null && result !== void 0 ? result : item);
37
+ }, variable);
38
+ result = postHandlers.reduce(function (item, handler) { var _a; return (_a = handler(item, context)) !== null && _a !== void 0 ? _a : item; }, result);
39
+ return result;
40
+ }
41
+ /**
42
+ * 构建变量初始状态
43
+ * @returns
44
+ */
45
+ function createGlobalVarState() {
46
+ return {
47
+ value: undefined,
48
+ pristine: undefined,
49
+ initialized: false,
50
+ valid: true,
51
+ errorMessages: [],
52
+ touched: false,
53
+ saved: false
54
+ };
55
+ }
56
+ // 前两个是历史遗留,后两个是新的
57
+ var globalVarFields = ['__page.', 'appVariables.', 'global.', 'globalState.'];
58
+ function isGlobalVarExpression(value) {
59
+ return (typeof value === 'string' &&
60
+ isExpression(value) &&
61
+ globalVarFields.some(function (k) { return value.includes(k); }));
62
+ }
63
+ /**
64
+ * 监控组件的全局变量
65
+ * @param schema
66
+ * @param topStore
67
+ * @param callback
68
+ * @returns
69
+ */
70
+ function observeGlobalVars(schema, topStore, callback) {
71
+ var expressions = [];
72
+ Object.keys(schema).forEach(function (key) {
73
+ var value = schema[key];
74
+ if (isGlobalVarExpression(value)) {
75
+ expressions.push({
76
+ key: key,
77
+ value: value
78
+ });
79
+ }
80
+ else if ([
81
+ 'items',
82
+ 'body',
83
+ 'buttons',
84
+ 'header',
85
+ 'columns',
86
+ 'tabs',
87
+ 'footer',
88
+ 'actions',
89
+ 'toolbar'
90
+ ].includes(key)) {
91
+ var items = Array.isArray(value) ? value : [value];
92
+ items.forEach(function (item) {
93
+ if (isGlobalVarExpression(item === null || item === void 0 ? void 0 : item.visibleOn)) {
94
+ expressions.push({
95
+ key: "".concat(key, ".x.visibleOn"),
96
+ value: item.visibleOn
97
+ });
98
+ }
99
+ else if (isGlobalVarExpression(item === null || item === void 0 ? void 0 : item.hiddenOn)) {
100
+ expressions.push({
101
+ key: "".concat(key, ".x.hiddenOn"),
102
+ value: item.hiddenOn
103
+ });
104
+ }
105
+ });
106
+ }
107
+ });
108
+ if (!expressions.length) {
109
+ return function () { };
110
+ }
111
+ var unReaction = reaction(function () {
112
+ return expressions
113
+ .map(function (exp) {
114
+ return "".concat(exp.key, ":").concat(resolveVariableAndFilter(exp.value, topStore.downStream, '| json' // 如果用了复杂对象,要靠这个来比较
115
+ ));
116
+ })
117
+ .join(',');
118
+ }, callback);
119
+ return unReaction;
120
+ }
121
+
122
+ export { buildGlobalVariable, createGlobalVarState, isGlobalVarExpression, observeGlobalVars, registerGlobalVariableHandler };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,65 @@
1
+ /**
2
+ * amis-core v6.11.0-beta.2
3
+ * Copyright 2018-2024 fex
4
+ */
5
+
6
+ import { __assign } from 'tslib';
7
+ import { registerGlobalVariableHandler } from './globalVar.js';
8
+
9
+ function loadClientData(key, variables) {
10
+ var str = localStorage.getItem(key);
11
+ var data = {};
12
+ try {
13
+ data = JSON.parse(str || '{}');
14
+ }
15
+ catch (e) {
16
+ console.error("parse localstorage \"".concat(key, " error\""), e);
17
+ }
18
+ var filterData = {};
19
+ variables.forEach(function (item) {
20
+ if (data.hasOwnProperty(item.key)) {
21
+ filterData[item.key] = data[item.key];
22
+ }
23
+ });
24
+ return filterData;
25
+ }
26
+ function saveClientData(key, values, variables) {
27
+ var str = localStorage.getItem(key);
28
+ var data = {};
29
+ try {
30
+ data = JSON.parse(str || '{}');
31
+ }
32
+ catch (e) {
33
+ console.error("parse localstorage \"".concat(key, " error\""), e);
34
+ }
35
+ Object.assign(data, values);
36
+ localStorage.setItem(key, JSON.stringify(data));
37
+ }
38
+ function bulkClientGetter(_a) {
39
+ var variables = _a.variables;
40
+ return loadClientData('amis-client-vars', variables);
41
+ }
42
+ function bulkClientSetter(values, context) {
43
+ return saveClientData('amis-client-vars', values, context.variables);
44
+ }
45
+ function pageBulkClientGetter(context) {
46
+ var variables = context.variables;
47
+ var key = "amis-client-vars-".concat(context.pageId || location.pathname);
48
+ return loadClientData(key, variables);
49
+ }
50
+ function pageBulkClientSetter(values, context) {
51
+ var key = "amis-client-vars-".concat(context.pageId || location.pathname);
52
+ return saveClientData(key, values, context.variables);
53
+ }
54
+ /**
55
+ * 注册全局变量处理器,用来处理 storageOn 为 client 的变量
56
+ *
57
+ * 并且根据变量的 scope 来决定是 page 还是全局的
58
+ *
59
+ * 将数据存入 localStorage
60
+ */
61
+ registerGlobalVariableHandler(function (variable, context) {
62
+ if (variable.storageOn === 'client') {
63
+ return __assign(__assign({}, variable), { bulkGetter: variable.scope === 'page' ? pageBulkClientGetter : bulkClientGetter, bulkSetter: variable.scope === 'page' ? pageBulkClientSetter : bulkClientSetter });
64
+ }
65
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ /**
2
+ * amis-core v6.11.0-beta.2
3
+ * Copyright 2018-2024 fex
4
+ */
5
+
6
+ import { __assign } from 'tslib';
7
+ import { registerGlobalVariableHandler } from './globalVar.js';
8
+
9
+ /**
10
+ * 格式化默认值
11
+ */
12
+ registerGlobalVariableHandler(function (variable, context) {
13
+ var _a;
14
+ if (variable.defaultValue && typeof variable.defaultValue === 'string') {
15
+ var defaultValue = variable.defaultValue;
16
+ try {
17
+ var value = defaultValue;
18
+ var valueType = (_a = variable.valueSchema) === null || _a === void 0 ? void 0 : _a.type;
19
+ if (valueType && ['number', 'array', 'object'].includes(valueType)) {
20
+ value = JSON.parse(defaultValue);
21
+ }
22
+ return __assign(__assign({}, variable), { defaultValue: value });
23
+ }
24
+ catch (e) {
25
+ // do nothing
26
+ }
27
+ }
28
+ });
package/esm/index.d.ts CHANGED
@@ -15,7 +15,10 @@ export * from './utils/index';
15
15
  export * from './utils/animations';
16
16
  export * from './types';
17
17
  export * from './store';
18
+ export * from './globalVar';
18
19
  import * as utils from './utils/helper';
20
+ import './globalVarClientHandler';
21
+ import './globalVarDefaultValueHandler';
19
22
  import { RegisterStore, registerStore } from './store';
20
23
  import type { IColumn, IColumn2, IRow, IRow2 } from './store';
21
24
  import { setDefaultLocale, getDefaultLocale, makeTranslator, register as registerLocale, extendLocale, removeLocaleData, localeable } from './locale';