amis-core 6.9.0 → 6.10.0-beta.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 (307) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +4 -2
  3. package/esm/SchemaRenderer.d.ts +1 -0
  4. package/esm/SchemaRenderer.js +8 -4
  5. package/esm/Scoped.d.ts +1 -1
  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.js +1 -1
  10. package/esm/WithStore.js +1 -1
  11. package/esm/actions/Action.js +4 -1
  12. package/esm/actions/AjaxAction.js +1 -1
  13. package/esm/actions/BreakAction.js +1 -1
  14. package/esm/actions/BroadcastAction.d.ts +1 -1
  15. package/esm/actions/BroadcastAction.js +6 -6
  16. package/esm/actions/CmptAction.d.ts +1 -0
  17. package/esm/actions/CmptAction.js +51 -51
  18. package/esm/actions/ContinueAction.js +1 -1
  19. package/esm/actions/CopyAction.js +1 -1
  20. package/esm/actions/CustomAction.js +1 -1
  21. package/esm/actions/DialogAction.js +1 -1
  22. package/esm/actions/DrawerAction.js +1 -1
  23. package/esm/actions/EmailAction.js +1 -1
  24. package/esm/actions/EventAction.js +1 -1
  25. package/esm/actions/LinkAction.js +1 -1
  26. package/esm/actions/LoopAction.js +1 -1
  27. package/esm/actions/PageAction.js +1 -1
  28. package/esm/actions/ParallelAction.js +1 -1
  29. package/esm/actions/PrintAction.js +1 -1
  30. package/esm/actions/StatusAction.js +1 -1
  31. package/esm/actions/SwitchAction.js +1 -1
  32. package/esm/actions/ToastAction.js +1 -1
  33. package/esm/actions/WaitAction.js +1 -1
  34. package/esm/components/CustomStyle.js +1 -1
  35. package/esm/components/ErrorBoundary.js +1 -1
  36. package/esm/components/LazyComponent.js +1 -1
  37. package/esm/components/Overlay.js +13 -16
  38. package/esm/components/PopOver.js +2 -2
  39. package/esm/env.js +1 -1
  40. package/esm/envOverwrite.js +1 -1
  41. package/esm/factory.d.ts +1 -1
  42. package/esm/factory.js +5 -3
  43. package/esm/index.d.ts +4 -3
  44. package/esm/index.js +10 -9
  45. package/esm/locale.js +1 -1
  46. package/esm/polyfills.js +1 -1
  47. package/esm/renderers/Form.js +1 -1
  48. package/esm/renderers/Item.d.ts +1 -0
  49. package/esm/renderers/Item.js +2 -2
  50. package/esm/renderers/Options.d.ts +46 -1
  51. package/esm/renderers/Options.js +921 -914
  52. package/esm/renderers/Placeholder.js +1 -1
  53. package/esm/renderers/builtin.js +1 -1
  54. package/esm/renderers/register.js +1 -1
  55. package/esm/renderers/wrapControl.d.ts +2 -1
  56. package/esm/renderers/wrapControl.js +3 -3
  57. package/esm/store/app.js +1 -1
  58. package/esm/store/combo.js +1 -1
  59. package/esm/store/crud.d.ts +4 -2
  60. package/esm/store/crud.js +39 -141
  61. package/esm/store/form.js +1 -1
  62. package/esm/store/formItem.js +2 -2
  63. package/esm/store/iRenderer.js +1 -1
  64. package/esm/store/index.js +1 -1
  65. package/esm/store/list.js +1 -1
  66. package/esm/store/manager.js +1 -1
  67. package/esm/store/modal.js +1 -1
  68. package/esm/store/node.js +1 -1
  69. package/esm/store/pagination.js +1 -1
  70. package/esm/store/root.js +1 -1
  71. package/esm/store/service.js +1 -1
  72. package/esm/store/status.js +1 -1
  73. package/esm/store/table.js +1 -1
  74. package/esm/store/table2.js +1 -1
  75. package/esm/theme.js +1 -1
  76. package/esm/utils/Animation.js +1 -1
  77. package/esm/utils/ColorScale.js +1 -1
  78. package/esm/utils/DataSchema.js +1 -1
  79. package/esm/utils/DataScope.js +1 -1
  80. package/esm/utils/RootClose.js +1 -1
  81. package/esm/utils/SimpleMap.js +1 -1
  82. package/esm/utils/animations.js +1 -1
  83. package/esm/utils/api.d.ts +2 -1
  84. package/esm/utils/api.js +6 -4
  85. package/esm/utils/arraySlice.js +1 -1
  86. package/esm/utils/attachmentAdpator.js +4 -1
  87. package/esm/utils/autobind.js +1 -1
  88. package/esm/utils/browser.js +1 -1
  89. package/esm/utils/columnsSplit.js +1 -1
  90. package/esm/utils/concatData.js +1 -1
  91. package/esm/utils/dataMapping.js +1 -1
  92. package/esm/utils/date.js +1 -1
  93. package/esm/utils/debug.d.ts +3 -3
  94. package/esm/utils/debug.js +104 -37
  95. package/esm/utils/decodeEntity.js +1 -1
  96. package/esm/utils/dom.js +1 -1
  97. package/esm/utils/errors.js +1 -1
  98. package/esm/utils/escapeHtml.js +1 -1
  99. package/esm/utils/filter-schema.js +1 -1
  100. package/esm/utils/filter.js +1 -1
  101. package/esm/utils/formatDuration.js +1 -1
  102. package/esm/utils/formula.js +1 -1
  103. package/esm/utils/getVariable.js +1 -1
  104. package/esm/utils/grammar.js +1 -1
  105. package/esm/utils/handleAction.js +1 -1
  106. package/esm/utils/helper.d.ts +7 -0
  107. package/esm/utils/helper.js +87 -2
  108. package/esm/utils/highlight.js +1 -1
  109. package/esm/utils/icon.js +1 -1
  110. package/esm/utils/image.js +1 -1
  111. package/esm/utils/index.d.ts +1 -0
  112. package/esm/utils/isPureVariable.js +1 -1
  113. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  114. package/esm/utils/keyToPath.js +1 -1
  115. package/esm/utils/labelToString.js +1 -1
  116. package/esm/utils/loopTooMuch.d.ts +1 -0
  117. package/esm/utils/loopTooMuch.js +27 -0
  118. package/esm/utils/makeSorter.js +1 -1
  119. package/esm/utils/math.js +1 -1
  120. package/esm/utils/memoryParse.js +1 -1
  121. package/esm/utils/normalizeLink.js +1 -1
  122. package/esm/utils/normalizeOptions.js +1 -1
  123. package/esm/utils/object.js +1 -1
  124. package/esm/utils/offset.js +1 -1
  125. package/esm/utils/offsetParent.js +1 -1
  126. package/esm/utils/optionValueCompare.js +1 -1
  127. package/esm/utils/position.js +11 -6
  128. package/esm/utils/prettyBytes.js +1 -1
  129. package/esm/utils/printElement.js +1 -1
  130. package/esm/utils/renderer-event.d.ts +4 -0
  131. package/esm/utils/renderer-event.js +97 -11
  132. package/esm/utils/replaceText.js +1 -1
  133. package/esm/utils/resize-sensor.js +1 -1
  134. package/esm/utils/resolveCondition.js +1 -1
  135. package/esm/utils/resolveVariable.js +1 -1
  136. package/esm/utils/resolveVariableAndFilter.js +1 -1
  137. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  138. package/esm/utils/scrollPosition.js +1 -1
  139. package/esm/utils/string2regExp.js +1 -1
  140. package/esm/utils/stripNumber.js +1 -1
  141. package/esm/utils/style-helper.js +1 -1
  142. package/esm/utils/style.js +1 -1
  143. package/esm/utils/toNumber.js +1 -1
  144. package/esm/utils/tokenize.js +1 -1
  145. package/esm/utils/tpl-builtin.js +1 -1
  146. package/esm/utils/tpl-lodash.js +1 -1
  147. package/esm/utils/tpl.js +1 -1
  148. package/esm/utils/uncontrollable.js +1 -1
  149. package/esm/utils/validateId.js +1 -1
  150. package/esm/utils/validations.js +5 -3
  151. package/esm/utils/visitedCache.js +1 -1
  152. package/lib/Root.js +1 -1
  153. package/lib/RootRenderer.d.ts +1 -1
  154. package/lib/RootRenderer.js +4 -2
  155. package/lib/SchemaRenderer.d.ts +1 -0
  156. package/lib/SchemaRenderer.js +7 -3
  157. package/lib/Scoped.d.ts +1 -1
  158. package/lib/Scoped.js +1 -1
  159. package/lib/StatusScoped.js +1 -1
  160. package/lib/StyleManager.js +1 -1
  161. package/lib/WithRootStore.js +1 -1
  162. package/lib/WithStore.js +1 -1
  163. package/lib/actions/Action.js +4 -1
  164. package/lib/actions/AjaxAction.js +1 -1
  165. package/lib/actions/BreakAction.js +1 -1
  166. package/lib/actions/BroadcastAction.d.ts +1 -1
  167. package/lib/actions/BroadcastAction.js +5 -5
  168. package/lib/actions/CmptAction.d.ts +1 -0
  169. package/lib/actions/CmptAction.js +50 -50
  170. package/lib/actions/ContinueAction.js +1 -1
  171. package/lib/actions/CopyAction.js +1 -1
  172. package/lib/actions/CustomAction.js +1 -1
  173. package/lib/actions/DialogAction.js +1 -1
  174. package/lib/actions/DrawerAction.js +1 -1
  175. package/lib/actions/EmailAction.js +1 -1
  176. package/lib/actions/EventAction.js +1 -1
  177. package/lib/actions/LinkAction.js +1 -1
  178. package/lib/actions/LoopAction.js +1 -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 +11 -14
  190. package/lib/components/PopOver.js +2 -2
  191. package/lib/env.js +1 -1
  192. package/lib/envOverwrite.js +1 -1
  193. package/lib/factory.d.ts +1 -1
  194. package/lib/factory.js +5 -3
  195. package/lib/index.d.ts +4 -3
  196. package/lib/index.js +14 -5
  197. package/lib/locale.js +1 -1
  198. package/lib/polyfills.js +1 -1
  199. package/lib/renderers/Form.js +1 -1
  200. package/lib/renderers/Item.d.ts +1 -0
  201. package/lib/renderers/Item.js +2 -2
  202. package/lib/renderers/Options.d.ts +46 -1
  203. package/lib/renderers/Options.js +920 -912
  204. package/lib/renderers/Placeholder.js +1 -1
  205. package/lib/renderers/builtin.js +1 -1
  206. package/lib/renderers/register.js +1 -1
  207. package/lib/renderers/wrapControl.d.ts +2 -1
  208. package/lib/renderers/wrapControl.js +3 -3
  209. package/lib/store/app.js +1 -1
  210. package/lib/store/combo.d.ts +25 -24
  211. package/lib/store/combo.js +1 -1
  212. package/lib/store/crud.d.ts +4 -2
  213. package/lib/store/crud.js +37 -139
  214. package/lib/store/form.d.ts +11 -10
  215. package/lib/store/form.js +1 -1
  216. package/lib/store/formItem.js +2 -2
  217. package/lib/store/iRenderer.js +1 -1
  218. package/lib/store/index.js +1 -1
  219. package/lib/store/list.js +1 -1
  220. package/lib/store/manager.js +1 -1
  221. package/lib/store/modal.js +1 -1
  222. package/lib/store/node.js +1 -1
  223. package/lib/store/pagination.js +1 -1
  224. package/lib/store/root.js +1 -1
  225. package/lib/store/service.js +1 -1
  226. package/lib/store/status.js +1 -1
  227. package/lib/store/table.d.ts +21 -20
  228. package/lib/store/table.js +1 -1
  229. package/lib/store/table2.js +1 -1
  230. package/lib/theme.js +1 -1
  231. package/lib/utils/Animation.js +1 -1
  232. package/lib/utils/ColorScale.js +1 -1
  233. package/lib/utils/DataSchema.js +1 -1
  234. package/lib/utils/DataScope.js +1 -1
  235. package/lib/utils/RootClose.js +1 -1
  236. package/lib/utils/SimpleMap.js +1 -1
  237. package/lib/utils/animations.js +1 -1
  238. package/lib/utils/api.d.ts +2 -1
  239. package/lib/utils/api.js +5 -2
  240. package/lib/utils/arraySlice.js +1 -1
  241. package/lib/utils/attachmentAdpator.js +4 -1
  242. package/lib/utils/autobind.js +1 -1
  243. package/lib/utils/browser.js +1 -1
  244. package/lib/utils/columnsSplit.js +1 -1
  245. package/lib/utils/concatData.js +1 -1
  246. package/lib/utils/dataMapping.js +1 -1
  247. package/lib/utils/date.js +1 -1
  248. package/lib/utils/debug.d.ts +3 -3
  249. package/lib/utils/debug.js +103 -36
  250. package/lib/utils/decodeEntity.js +1 -1
  251. package/lib/utils/dom.js +1 -1
  252. package/lib/utils/errors.js +1 -1
  253. package/lib/utils/escapeHtml.js +1 -1
  254. package/lib/utils/filter-schema.js +1 -1
  255. package/lib/utils/filter.js +1 -1
  256. package/lib/utils/formatDuration.js +1 -1
  257. package/lib/utils/formula.js +1 -1
  258. package/lib/utils/getVariable.js +1 -1
  259. package/lib/utils/grammar.js +1 -1
  260. package/lib/utils/handleAction.js +1 -1
  261. package/lib/utils/helper.d.ts +7 -0
  262. package/lib/utils/helper.js +87 -1
  263. package/lib/utils/highlight.js +1 -1
  264. package/lib/utils/icon.js +1 -1
  265. package/lib/utils/image.js +1 -1
  266. package/lib/utils/index.d.ts +1 -0
  267. package/lib/utils/isPureVariable.js +1 -1
  268. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  269. package/lib/utils/keyToPath.js +1 -1
  270. package/lib/utils/labelToString.js +1 -1
  271. package/lib/utils/loopTooMuch.d.ts +1 -0
  272. package/lib/utils/loopTooMuch.js +31 -0
  273. package/lib/utils/makeSorter.js +1 -1
  274. package/lib/utils/math.js +1 -1
  275. package/lib/utils/memoryParse.js +1 -1
  276. package/lib/utils/normalizeLink.js +1 -1
  277. package/lib/utils/normalizeOptions.js +1 -1
  278. package/lib/utils/object.js +1 -1
  279. package/lib/utils/offset.js +1 -1
  280. package/lib/utils/offsetParent.js +1 -1
  281. package/lib/utils/optionValueCompare.js +1 -1
  282. package/lib/utils/position.js +11 -6
  283. package/lib/utils/prettyBytes.js +1 -1
  284. package/lib/utils/printElement.js +1 -1
  285. package/lib/utils/renderer-event.d.ts +4 -0
  286. package/lib/utils/renderer-event.js +99 -10
  287. package/lib/utils/replaceText.js +1 -1
  288. package/lib/utils/resize-sensor.js +1 -1
  289. package/lib/utils/resolveCondition.js +1 -1
  290. package/lib/utils/resolveVariable.js +1 -1
  291. package/lib/utils/resolveVariableAndFilter.js +1 -1
  292. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  293. package/lib/utils/scrollPosition.js +1 -1
  294. package/lib/utils/string2regExp.js +1 -1
  295. package/lib/utils/stripNumber.js +1 -1
  296. package/lib/utils/style-helper.js +1 -1
  297. package/lib/utils/style.js +1 -1
  298. package/lib/utils/toNumber.js +1 -1
  299. package/lib/utils/tokenize.js +1 -1
  300. package/lib/utils/tpl-builtin.js +1 -1
  301. package/lib/utils/tpl-lodash.js +1 -1
  302. package/lib/utils/tpl.js +1 -1
  303. package/lib/utils/uncontrollable.js +1 -1
  304. package/lib/utils/validateId.js +1 -1
  305. package/lib/utils/validations.js +5 -3
  306. package/lib/utils/visitedCache.js +1 -1
  307. package/package.json +5 -4
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/utils/date.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -16,18 +16,18 @@ export declare class DebugWrapper extends Component<DebugWrapperProps> {
16
16
  componentWillUnmount(): void;
17
17
  render(): React.ReactNode;
18
18
  }
19
- type Category = 'api' | 'event';
19
+ type Category = 'api' | 'event' | 'action' | 'debug' | 'error';
20
20
  /**
21
21
  * 一般调试日志
22
22
  * @param msg 简单消息
23
23
  * @param ext 扩展信息
24
24
  */
25
- export declare function debug(cat: Category, msg: string, ext?: object): void;
25
+ export declare function debug(cat: Category, msg: string, ext?: any): void;
26
26
  /**
27
27
  * 警告日志
28
28
  * @param msg 简单消息
29
29
  * @param ext 扩展信息
30
30
  */
31
- export declare function warning(cat: Category, msg: string, ext?: object): void;
31
+ export declare function warning(cat: Category, msg: string, ext?: any): void;
32
32
  export declare function traceProps(props: any, prevProps: any, componentName: string): void;
33
33
  export {};
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -7,10 +7,12 @@ import { __decorate, __metadata, __values, __read, __extends } from 'tslib';
7
7
  import React, { useRef, useState, useEffect, Component } from 'react';
8
8
  import cx from 'classnames';
9
9
  import { findDOMNode, render, unmountComponentAtNode } from 'react-dom';
10
- import { observable, autorun } from 'mobx';
10
+ import { observable, action, autorun } from 'mobx';
11
11
  import { observer } from 'mobx-react';
12
12
  import { importLazyComponent, uuidv4 } from './helper.js';
13
13
  import { position } from './position.js';
14
+ import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
15
+ import { callStrFunction } from './api.js';
14
16
 
15
17
  /**
16
18
  * amis 运行时调试功能,为了避免循环引用,这个组件不要依赖 amis 里的组件
@@ -66,6 +68,19 @@ var AMISDebugStore = /** @class */ (function () {
66
68
  */
67
69
  this.inspectMode = false;
68
70
  }
71
+ AMISDebugStore.prototype.open = function () {
72
+ this.isExpanded = true;
73
+ this.inspectMode = true;
74
+ };
75
+ AMISDebugStore.prototype.close = function () {
76
+ this.isExpanded = false;
77
+ this.activeId = '';
78
+ this.hoverId = '';
79
+ this.inspectMode = false;
80
+ };
81
+ AMISDebugStore.prototype.toggleInspectMode = function () {
82
+ this.inspectMode = !this.inspectMode;
83
+ };
69
84
  __decorate([
70
85
  observable,
71
86
  __metadata("design:type", String)
@@ -98,6 +113,24 @@ var AMISDebugStore = /** @class */ (function () {
98
113
  observable,
99
114
  __metadata("design:type", Number)
100
115
  ], AMISDebugStore.prototype, "ellipsisThreshold", void 0);
116
+ __decorate([
117
+ action.bound,
118
+ __metadata("design:type", Function),
119
+ __metadata("design:paramtypes", []),
120
+ __metadata("design:returntype", void 0)
121
+ ], AMISDebugStore.prototype, "open", null);
122
+ __decorate([
123
+ action.bound,
124
+ __metadata("design:type", Function),
125
+ __metadata("design:paramtypes", []),
126
+ __metadata("design:returntype", void 0)
127
+ ], AMISDebugStore.prototype, "close", null);
128
+ __decorate([
129
+ action.bound,
130
+ __metadata("design:type", Function),
131
+ __metadata("design:paramtypes", []),
132
+ __metadata("design:returntype", void 0)
133
+ ], AMISDebugStore.prototype, "toggleInspectMode", null);
101
134
  return AMISDebugStore;
102
135
  }());
103
136
  var store = new AMISDebugStore();
@@ -115,8 +148,10 @@ var LogView = observer(function (_a) {
115
148
  log.cat,
116
149
  "] ",
117
150
  log.msg),
118
- log.ext ? (React.createElement(React.Suspense, { fallback: React.createElement("div", null, "Loading...") },
119
- React.createElement(JsonView, { name: null, theme: "monokai", src: JSON.parse(log.ext), collapsed: true, enableClipboard: false, displayDataTypes: false, collapseStringsAfterLength: ellipsisThreshold, iconStyle: "square" }))) : null));
151
+ (typeof log.ext === 'string' &&
152
+ (log.ext.startsWith('{') || log.ext.startsWith('['))) ||
153
+ typeof log.ext === 'object' ? (React.createElement(React.Suspense, { fallback: React.createElement("div", null, "Loading...") },
154
+ React.createElement(JsonView, { name: null, theme: "monokai", src: typeof log.ext === 'string' ? parseJson(log.ext) : log.ext, collapsed: true, enableClipboard: false, displayDataTypes: false, collapseStringsAfterLength: ellipsisThreshold, iconStyle: "square" }))) : (React.createElement("pre", { className: "AMISDebug-value" }, JSON.stringify(log.ext)))));
120
155
  })));
121
156
  });
122
157
  var AMISDebug = observer(function (_a) {
@@ -193,19 +228,35 @@ var AMISDebug = observer(function (_a) {
193
228
  }
194
229
  };
195
230
  }, [isResizing]);
231
+ var handleInputKeyUp = React.useCallback(function (e) {
232
+ var _a;
233
+ if (e.key === 'Enter') {
234
+ var input = e.target;
235
+ var expression = input.value;
236
+ input.value = '';
237
+ try {
238
+ var activeId_1 = store.activeId;
239
+ var ctx = ((_a = ComponentInfo[activeId_1]) === null || _a === void 0 ? void 0 : _a.component.props.data) || {};
240
+ var result = expression.startsWith('${')
241
+ ? resolveVariableAndFilter(expression, ctx, '| raw')
242
+ : callStrFunction(new Function('data', "with(data) {return ".concat(expression, ";}")), ['data'], ctx);
243
+ debug('debug', "evaluate expression `".concat(expression, "`"), result);
244
+ }
245
+ catch (e) {
246
+ debug('error', "evaluate expression `".concat(expression, "`"), "Error: ".concat(e.message));
247
+ }
248
+ finally {
249
+ store.tab = 'log';
250
+ }
251
+ }
252
+ }, []);
196
253
  return (React.createElement("div", { className: cx('AMISDebug', {
197
254
  'is-expanded': store.isExpanded,
198
255
  'is-left': store.position === 'left'
199
256
  }), ref: panelRef },
200
- React.createElement("div", { className: "AMISDebug-toggle", title: "open debug", onClick: function () {
201
- store.isExpanded = true;
202
- } }, store.isExpanded ? (React.createElement("i", { className: "fas fa-times" })) : (React.createElement("i", { className: "fas fa-bug" }))),
257
+ React.createElement("div", { className: "AMISDebug-toggle", title: "open debug", onClick: store.open }, store.isExpanded ? (React.createElement("i", { className: "fas fa-times" })) : (React.createElement("i", { className: "fas fa-bug" }))),
203
258
  React.createElement("div", { className: cx('AMISDebug-content') },
204
- React.createElement("div", { className: "AMISDebug-close", title: "Close", onClick: function () {
205
- store.isExpanded = false;
206
- store.activeId = '';
207
- store.hoverId = '';
208
- } },
259
+ React.createElement("div", { className: "AMISDebug-close", title: "Close", onClick: store.close },
209
260
  React.createElement("i", { className: "fas fa-times" })),
210
261
  React.createElement("div", { className: "AMISDebug-resize", onMouseDown: function (event) {
211
262
  setStartX(event.clientX);
@@ -229,18 +280,26 @@ var AMISDebug = observer(function (_a) {
229
280
  store.logs = [];
230
281
  } }, "Clear Log"),
231
282
  React.createElement(LogView, { store: store }))) : null,
232
- store.tab === 'inspect' ? (React.createElement("div", { className: "AMISDebug-inspect" }, activeId ? (React.createElement(React.Fragment, null,
233
- React.createElement("h3", null,
234
- "Component:",
235
- ' ',
236
- React.createElement("span", { className: "primary" }, activeComponentInspect.name)),
237
- stackDataView)) : ('Click component to display inspect'))) : null)));
283
+ store.tab === 'inspect' ? (React.createElement("div", { className: "AMISDebug-inspect" },
284
+ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", viewBox: "0 0 1024 1024", className: "AMISDebug-inspectIcon ".concat(store.inspectMode ? 'is-active' : ''), onClick: store.toggleInspectMode },
285
+ React.createElement("path", { d: "M64 192L128 128h768l64 64v384H896v-384H128v512h320V768H128l-64-64v-512z m941.226667 621.226667L576 384v602.496l173.226667-173.226667h256zM640 832v-293.504l210.773333 210.773333h-128L640 832z" })),
286
+ store.inspectMode ? (React.createElement("span", null, "Select an element in the page to inspect it.")) : (React.createElement("span", null, "Click to inspect an element.")),
287
+ activeId ? (React.createElement(React.Fragment, null,
288
+ React.createElement("h3", null,
289
+ "Component:",
290
+ ' ',
291
+ React.createElement("span", { className: "primary" }, activeComponentInspect === null || activeComponentInspect === void 0 ? void 0 : activeComponentInspect.name)),
292
+ stackDataView)) : null)) : null,
293
+ activeId ? (React.createElement("div", { className: "AMISDebug-footer" },
294
+ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", viewBox: "0 0 1024 1024" },
295
+ React.createElement("path", { d: "M724.48 521.728c-1.8432 7.7824-5.7344 14.848-11.3664 20.48l-341.9136 342.016c-16.6912 16.6912-43.7248 16.6912-60.3136 0s-16.6912-43.7248 0-60.3136L622.6944 512 310.8864 200.0896c-16.6912-16.6912-16.6912-43.7248 0-60.3136 16.6912-16.6912 43.7248-16.6912 60.3136 0l341.9136 341.9136c10.8544 10.8544 14.6432 26.112 11.3664 40.0384z", fill: "currentColor" })),
296
+ React.createElement("input", { type: "text", placeholder: "", onKeyUp: handleInputKeyUp }))) : null)));
238
297
  });
239
298
  /**
240
299
  * 鼠标移动到某个组件的效果
241
300
  */
242
301
  function handleMouseMove(e) {
243
- if (!store.isExpanded) {
302
+ if (!store.inspectMode) {
244
303
  return;
245
304
  }
246
305
  var dom = e.target;
@@ -253,14 +312,16 @@ function handleMouseMove(e) {
253
312
  * 点选某个组件
254
313
  */
255
314
  function handleMouseclick(e) {
256
- if (!store.isExpanded) {
315
+ if (!store.inspectMode) {
257
316
  return;
258
317
  }
318
+ e.preventDefault();
259
319
  var dom = e.target;
260
320
  var target = dom.closest("[data-debug-id]");
261
321
  if (target && !target.closest('.AMISDebug')) {
262
322
  store.activeId = target.getAttribute('data-debug-id');
263
323
  store.tab = 'inspect';
324
+ store.inspectMode = false;
264
325
  }
265
326
  }
266
327
  // hover 及点击后的高亮
@@ -268,6 +329,7 @@ var amisHoverBox = document.createElement('div');
268
329
  amisHoverBox.className = 'AMISDebug-hoverBox';
269
330
  var amisActiveBox = document.createElement('div');
270
331
  amisActiveBox.className = 'AMISDebug-activeBox';
332
+ var timer = null;
271
333
  autorun(function () {
272
334
  var hoverId = store.hoverId;
273
335
  var hoverElement = document.querySelector("[data-debug-id=\"".concat(hoverId, "\"]"));
@@ -291,6 +353,11 @@ autorun(function () {
291
353
  amisActiveBox.style.left = "".concat(offset.left, "px");
292
354
  amisActiveBox.style.width = "".concat(offset.width, "px");
293
355
  amisActiveBox.style.height = "".concat(offset.height, "px");
356
+ amisActiveBox.classList.add('shake');
357
+ clearTimeout(timer);
358
+ timer = setTimeout(function () {
359
+ amisActiveBox.classList.remove('shake');
360
+ }, 500);
294
361
  }
295
362
  else {
296
363
  amisActiveBox.style.top = '-999999px';
@@ -324,7 +391,7 @@ function enableDebug() {
324
391
  document.body.appendChild(amisHoverBox);
325
392
  document.body.appendChild(amisActiveBox);
326
393
  document.addEventListener('mousemove', handleMouseMove);
327
- document.addEventListener('click', handleMouseclick);
394
+ document.addEventListener('click', handleMouseclick, true);
328
395
  }
329
396
  function disableDebug() {
330
397
  if (!isEnabled) {
@@ -368,12 +435,26 @@ var DebugWrapper = /** @class */ (function (_super) {
368
435
  };
369
436
  DebugWrapper.prototype.componentWillUnmount = function () {
370
437
  delete ComponentInfo[this.debugId];
438
+ if (this.debugId === store.activeId) {
439
+ store.activeId = '';
440
+ }
441
+ if (this.debugId === store.hoverId) {
442
+ store.hoverId = '';
443
+ }
371
444
  };
372
445
  DebugWrapper.prototype.render = function () {
373
446
  return this.props.children;
374
447
  };
375
448
  return DebugWrapper;
376
449
  }(Component));
450
+ function parseJson(str) {
451
+ try {
452
+ return JSON.parse(str);
453
+ }
454
+ catch (e) {
455
+ return e;
456
+ }
457
+ }
377
458
  /**
378
459
  * 一般调试日志
379
460
  * @param msg 简单消息
@@ -386,18 +467,11 @@ function debug(cat, msg, ext) {
386
467
  console.groupCollapsed('[amis debug]', msg);
387
468
  console.debug(ext);
388
469
  console.groupEnd();
389
- var extStr = '';
390
- try {
391
- extStr = JSON.stringify(ext);
392
- }
393
- catch (e) {
394
- console.error(e);
395
- }
396
470
  var log = {
397
471
  cat: cat,
398
472
  level: 'debug',
399
473
  msg: msg,
400
- ext: extStr
474
+ ext: ext
401
475
  };
402
476
  store.logs.push(log);
403
477
  }
@@ -410,18 +484,11 @@ function warning(cat, msg, ext) {
410
484
  if (!isEnabled) {
411
485
  return;
412
486
  }
413
- var extStr = '';
414
- try {
415
- extStr = JSON.stringify(ext);
416
- }
417
- catch (e) {
418
- console.error(e);
419
- }
420
487
  var log = {
421
488
  cat: cat,
422
489
  level: 'warn',
423
490
  msg: msg,
424
- ext: extStr
491
+ ext: ext
425
492
  };
426
493
  console.groupCollapsed('amis debug', msg);
427
494
  console.trace(log);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/esm/utils/dom.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -271,6 +271,12 @@ export declare const bulkBindFunctions: <T extends {
271
271
  [propName: string]: any;
272
272
  }>(context: T, funNames: FunctionPropertyNames<T>[]) => void;
273
273
  export declare function sortArray<T extends any>(items: Array<T>, field: string, dir: -1 | 1, fieldGetter?: (item: T, field: string) => any): Array<T>;
274
+ export declare function applyFilters<T extends any>(items: Array<T>, options: {
275
+ query: any;
276
+ columns?: Array<any>;
277
+ matchFunc?: Function | null;
278
+ filterOnAllColumns?: boolean;
279
+ }): T[];
274
280
  export declare function hasFile(object: any): boolean;
275
281
  export declare function qsstringify(data: any, options?: any, keepEmptyArray?: boolean): string;
276
282
  export declare function qsparse(data: string, options?: any): qs.ParsedQs;
@@ -401,3 +407,4 @@ export declare class TestIdBuilder {
401
407
  }
402
408
  export declare function supportsMjs(): boolean;
403
409
  export declare function formateId(id: string): string;
410
+ export declare function formateCheckThemeCss(themeCss: any, type: string): any;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -14,6 +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 { matchSorter } from 'match-sorter';
17
18
  import { filter, evalExpressionWithConditionBuilder, evalExpression } from './tpl.js';
18
19
  import { autobindMethod } from './autobind.js';
19
20
  import 'amis-formula';
@@ -28,6 +29,7 @@ import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
28
29
  import './memoryParse.js';
29
30
  import './filter.js';
30
31
  export { string2regExp } from './string2regExp.js';
32
+ import { getVariable } from './getVariable.js';
31
33
  export { getVariable } from './getVariable.js';
32
34
  import { keyToPath } from './keyToPath.js';
33
35
  export { keyToPath } from './keyToPath.js';
@@ -1000,6 +1002,50 @@ function sortArray(items, field, dir, fieldGetter) {
1000
1002
  return ret * dir;
1001
1003
  });
1002
1004
  }
1005
+ function applyFilters(items, options) {
1006
+ if (options.matchFunc && typeof options.matchFunc === 'function') {
1007
+ items = options.matchFunc(items, items, options);
1008
+ }
1009
+ else {
1010
+ if (Array.isArray(options.columns)) {
1011
+ options.columns.forEach(function (column) {
1012
+ var value = typeof column.name === 'string'
1013
+ ? getVariable(options.query, column.name)
1014
+ : undefined;
1015
+ var key = column.name;
1016
+ if ((options.filterOnAllColumns ||
1017
+ column.searchable ||
1018
+ column.filterable) &&
1019
+ key &&
1020
+ value != null) {
1021
+ // value可能为null、undefined、''、0
1022
+ if (Array.isArray(value)) {
1023
+ if (value.length > 0) {
1024
+ var arr_1 = __spreadArray([], __read(items), false);
1025
+ var arrItems_1 = [];
1026
+ value.forEach(function (item) {
1027
+ arrItems_1 = __spreadArray(__spreadArray([], __read(arrItems_1), false), __read(matchSorter(arr_1, item, {
1028
+ keys: [key],
1029
+ threshold: matchSorter.rankings.CONTAINS
1030
+ })), false);
1031
+ });
1032
+ items = items.filter(function (item) {
1033
+ return arrItems_1.find(function (a) { return a === item; });
1034
+ });
1035
+ }
1036
+ }
1037
+ else {
1038
+ items = matchSorter(items, value, {
1039
+ keys: [key],
1040
+ threshold: matchSorter.rankings.CONTAINS
1041
+ });
1042
+ }
1043
+ }
1044
+ });
1045
+ }
1046
+ } /** 字段的格式类型无法穷举,所以支持使用函数过滤 */
1047
+ return items;
1048
+ }
1003
1049
  // 只判断一层, 如果层级很深,form-data 也不好表达。
1004
1050
  function hasFile(object) {
1005
1051
  return Object.keys(object).some(function (key) {
@@ -1697,5 +1743,44 @@ function formateId(id) {
1697
1743
  }
1698
1744
  return id;
1699
1745
  }
1746
+ function formateCheckThemeCss(themeCss, type) {
1747
+ var _a;
1748
+ if (!themeCss) {
1749
+ return {};
1750
+ }
1751
+ var className = themeCss["".concat(type, "ClassName")] || {};
1752
+ var controlClassName = themeCss["".concat(type, "ControlClassName")] || {};
1753
+ var defaultControlThemeCss = {};
1754
+ var checkedControlThemeCss = {};
1755
+ var defaultThemeCss = {};
1756
+ var checkedThemeCss = {};
1757
+ Object.keys(className).forEach(function (key) {
1758
+ if (key.includes('checked-')) {
1759
+ var newKey = key.replace('checked-', '');
1760
+ checkedThemeCss[newKey] = className[key];
1761
+ }
1762
+ else if (key.includes("".concat(type, "-"))) {
1763
+ var newKey = key.replace("".concat(type, "-"), '');
1764
+ defaultThemeCss[newKey] = className[key];
1765
+ }
1766
+ else {
1767
+ defaultThemeCss[key] = className[key];
1768
+ }
1769
+ });
1770
+ Object.keys(controlClassName).forEach(function (key) {
1771
+ if (key.includes('checked-')) {
1772
+ var newKey = key.replace('checked-', '');
1773
+ checkedControlThemeCss[newKey] = controlClassName[key];
1774
+ }
1775
+ else if (key.includes("".concat(type, "-"))) {
1776
+ var newKey = key.replace("".concat(type, "-"), '');
1777
+ defaultControlThemeCss[newKey] = controlClassName[key];
1778
+ }
1779
+ else {
1780
+ defaultControlThemeCss[key] = controlClassName[key];
1781
+ }
1782
+ });
1783
+ return __assign(__assign({}, themeCss), (_a = {}, _a["".concat(type, "ControlClassName")] = defaultControlThemeCss, _a["".concat(type, "ControlCheckedClassName")] = checkedControlThemeCss, _a["".concat(type, "ClassName")] = defaultThemeCss, _a["".concat(type, "CheckedClassName")] = checkedThemeCss, _a));
1784
+ }
1700
1785
 
1701
- 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, formateId, 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 };
1786
+ export { JSONTraverse, JSONValueMap, SkipOperation, TEST_ID_KEY, TestIdBuilder, ValidateError, __uri, anyChanged, applyFilters, autobind, buildTrackExpression, bulkBindFunctions, camel, chainEvents, chainFunctions, changedEffect, convertArrayValueToMoment, countTree, detectPropValueChanged, difference, differenceFromAll, eachTree, evalTrackExpression, everyTree, filterTree, findIndex, findObjectsWithKey, findTree, findTreeAll, findTreeIndex, flattenTree, flattenTreeWithLeafNodes, formateCheckThemeCss, formateId, 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.9.0
2
+ * amis-core v6.10.0-beta.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.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -28,6 +28,7 @@ export * from './isPureVariable';
28
28
  export * from './json-schema-2-amis-schema';
29
29
  export * from './keyToPath';
30
30
  export * from './labelToString';
31
+ export * from './loopTooMuch';
31
32
  export * from './makeSorter';
32
33
  export * from './normalizeLink';
33
34
  export * from './normalizeOptions';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -0,0 +1 @@
1
+ export declare function loopTooMuch(key: string, maxSpeed?: number): boolean;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * amis-core v6.10.0-beta.0
3
+ * Copyright 2018-2024 fex
4
+ */
5
+
6
+ var loopCount = {};
7
+ var loopTimer = {};
8
+ var loopResult = {};
9
+ function loopTooMuch(key, maxSpeed) {
10
+ if (maxSpeed === void 0) { maxSpeed = 20; }
11
+ if (loopResult[key]) {
12
+ return loopResult[key];
13
+ }
14
+ clearTimeout(loopTimer[key]);
15
+ loopTimer[key] = setTimeout(function () {
16
+ delete loopCount[key];
17
+ delete loopTimer[key];
18
+ }, 1000);
19
+ if (loopCount[key] && loopCount[key] > maxSpeed) {
20
+ loopResult[key] = true;
21
+ return true;
22
+ }
23
+ loopCount[key] = (loopCount[key] || 0) + 1;
24
+ return false;
25
+ }
26
+
27
+ export { loopTooMuch };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.9.0
2
+ * amis-core v6.10.0-beta.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.9.0
2
+ * amis-core v6.10.0-beta.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5