amis-core 3.4.0 → 3.4.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 (285) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +8 -8
  3. package/esm/SchemaRenderer.js +16 -12
  4. package/esm/Scoped.js +3 -1
  5. package/esm/StatusScoped.js +1 -1
  6. package/esm/WithRootStore.js +1 -1
  7. package/esm/WithStore.js +9 -8
  8. package/esm/actions/Action.js +1 -1
  9. package/esm/actions/AjaxAction.js +2 -2
  10. package/esm/actions/BreakAction.js +1 -1
  11. package/esm/actions/BroadcastAction.js +1 -1
  12. package/esm/actions/CmptAction.js +1 -1
  13. package/esm/actions/ContinueAction.js +1 -1
  14. package/esm/actions/CopyAction.js +1 -1
  15. package/esm/actions/CustomAction.js +3 -1
  16. package/esm/actions/DialogAction.js +1 -1
  17. package/esm/actions/DrawerAction.js +5 -1
  18. package/esm/actions/EmailAction.js +1 -1
  19. package/esm/actions/LinkAction.js +1 -1
  20. package/esm/actions/LoopAction.js +1 -1
  21. package/esm/actions/PageAction.js +1 -1
  22. package/esm/actions/ParallelAction.js +1 -1
  23. package/esm/actions/StatusAction.js +1 -1
  24. package/esm/actions/SwitchAction.js +1 -1
  25. package/esm/actions/ToastAction.js +1 -1
  26. package/esm/components/CustomStyle.d.ts +5 -6
  27. package/esm/components/CustomStyle.js +47 -6
  28. package/esm/components/LazyComponent.d.ts +1 -2
  29. package/esm/components/LazyComponent.js +12 -8
  30. package/esm/components/Overlay.js +3 -1
  31. package/esm/components/PopOver.d.ts +12 -12
  32. package/esm/components/PopOver.js +3 -1
  33. package/esm/env.d.ts +2 -2
  34. package/esm/env.js +1 -1
  35. package/esm/envOverwrite.js +1 -1
  36. package/esm/factory.d.ts +7 -7
  37. package/esm/factory.js +1 -1
  38. package/esm/index.js +5 -5
  39. package/esm/locale.d.ts +1 -1
  40. package/esm/locale.js +3 -3
  41. package/esm/polyfills.js +1 -1
  42. package/esm/renderers/Form.d.ts +1 -1
  43. package/esm/renderers/Form.js +10 -8
  44. package/esm/renderers/Item.d.ts +24 -56
  45. package/esm/renderers/Item.js +25 -31
  46. package/esm/renderers/Options.js +14 -12
  47. package/esm/renderers/Placeholder.js +1 -1
  48. package/esm/renderers/builtin.js +1 -1
  49. package/esm/renderers/register.js +1 -1
  50. package/esm/renderers/wrapControl.js +70 -80
  51. package/esm/store/app.js +3 -1
  52. package/esm/store/combo.d.ts +384 -0
  53. package/esm/store/combo.js +1 -1
  54. package/esm/store/crud.js +31 -25
  55. package/esm/store/form.d.ts +160 -0
  56. package/esm/store/form.js +15 -13
  57. package/esm/store/formItem.d.ts +4 -0
  58. package/esm/store/formItem.js +42 -26
  59. package/esm/store/iRenderer.js +3 -1
  60. package/esm/store/index.js +1 -1
  61. package/esm/store/list.js +1 -1
  62. package/esm/store/manager.js +1 -1
  63. package/esm/store/modal.js +1 -1
  64. package/esm/store/node.js +1 -1
  65. package/esm/store/pagination.js +1 -1
  66. package/esm/store/root.d.ts +1 -1
  67. package/esm/store/root.js +12 -5
  68. package/esm/store/service.js +38 -33
  69. package/esm/store/status.js +1 -1
  70. package/esm/store/table.d.ts +760 -21
  71. package/esm/store/table.js +157 -57
  72. package/esm/store/table2.js +11 -8
  73. package/esm/theme.d.ts +18 -31
  74. package/esm/theme.js +1 -1
  75. package/esm/utils/Animation.js +1 -1
  76. package/esm/utils/ColorScale.js +1 -1
  77. package/esm/utils/DataSchema.js +1 -1
  78. package/esm/utils/DataScope.js +1 -1
  79. package/esm/utils/RootClose.js +1 -1
  80. package/esm/utils/SimpleMap.js +1 -1
  81. package/esm/utils/api.d.ts +3 -3
  82. package/esm/utils/api.js +3 -2
  83. package/esm/utils/arraySlice.js +1 -1
  84. package/esm/utils/attachmentAdpator.js +1 -1
  85. package/esm/utils/autobind.js +1 -1
  86. package/esm/utils/columnsSplit.js +1 -1
  87. package/esm/utils/dataMapping.js +1 -1
  88. package/esm/utils/date.js +1 -1
  89. package/esm/utils/debug.d.ts +1 -0
  90. package/esm/utils/debug.js +24 -2
  91. package/esm/utils/decodeEntity.js +1 -1
  92. package/esm/utils/dom.js +1 -1
  93. package/esm/utils/errors.js +1 -1
  94. package/esm/utils/escapeHtml.js +1 -1
  95. package/esm/utils/filter-schema.js +1 -1
  96. package/esm/utils/filter.js +1 -1
  97. package/esm/utils/formatDuration.js +1 -1
  98. package/esm/utils/formula.js +1 -1
  99. package/esm/utils/getVariable.js +1 -1
  100. package/esm/utils/grammar.js +1 -1
  101. package/esm/utils/handleAction.js +1 -1
  102. package/esm/utils/helper.d.ts +13 -1
  103. package/esm/utils/helper.js +99 -5
  104. package/esm/utils/highlight.js +1 -1
  105. package/esm/utils/icon.js +1 -1
  106. package/esm/utils/image.js +1 -1
  107. package/esm/utils/isPureVariable.js +1 -1
  108. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  109. package/esm/utils/keyToPath.d.ts +1 -1
  110. package/esm/utils/keyToPath.js +2 -1
  111. package/esm/utils/makeSorter.js +1 -1
  112. package/esm/utils/math.js +1 -1
  113. package/esm/utils/memoryParse.js +1 -1
  114. package/esm/utils/normalizeLink.js +1 -1
  115. package/esm/utils/normalizeOptions.js +1 -1
  116. package/esm/utils/object.js +1 -1
  117. package/esm/utils/offset.js +1 -1
  118. package/esm/utils/offsetParent.js +1 -1
  119. package/esm/utils/optionValueCompare.js +1 -1
  120. package/esm/utils/position.js +1 -1
  121. package/esm/utils/prettyBytes.js +1 -1
  122. package/esm/utils/renderer-event.js +2 -2
  123. package/esm/utils/replaceText.js +1 -1
  124. package/esm/utils/resize-sensor.d.ts +3 -1
  125. package/esm/utils/resize-sensor.js +34 -22
  126. package/esm/utils/resolveCondition.js +1 -1
  127. package/esm/utils/resolveVariable.js +1 -1
  128. package/esm/utils/resolveVariableAndFilter.js +1 -1
  129. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  130. package/esm/utils/scrollPosition.js +1 -1
  131. package/esm/utils/string2regExp.js +1 -1
  132. package/esm/utils/stripNumber.js +1 -1
  133. package/esm/utils/style-helper.d.ts +22 -14
  134. package/esm/utils/style-helper.js +181 -120
  135. package/esm/utils/style.js +1 -1
  136. package/esm/utils/toNumber.js +1 -1
  137. package/esm/utils/tokenize.js +1 -1
  138. package/esm/utils/tpl-builtin.js +1 -1
  139. package/esm/utils/tpl-lodash.js +1 -1
  140. package/esm/utils/tpl.js +1 -1
  141. package/esm/utils/uncontrollable.js +1 -1
  142. package/esm/utils/validations.js +1 -1
  143. package/lib/Root.js +1 -1
  144. package/lib/RootRenderer.js +8 -8
  145. package/lib/SchemaRenderer.js +16 -12
  146. package/lib/Scoped.js +3 -1
  147. package/lib/StatusScoped.js +1 -1
  148. package/lib/WithRootStore.js +1 -1
  149. package/lib/WithStore.js +9 -8
  150. package/lib/actions/Action.js +1 -1
  151. package/lib/actions/AjaxAction.js +2 -2
  152. package/lib/actions/BreakAction.js +1 -1
  153. package/lib/actions/BroadcastAction.js +1 -1
  154. package/lib/actions/CmptAction.js +1 -1
  155. package/lib/actions/ContinueAction.js +1 -1
  156. package/lib/actions/CopyAction.js +1 -1
  157. package/lib/actions/CustomAction.js +3 -1
  158. package/lib/actions/DialogAction.js +1 -1
  159. package/lib/actions/DrawerAction.js +5 -1
  160. package/lib/actions/EmailAction.js +1 -1
  161. package/lib/actions/LinkAction.js +1 -1
  162. package/lib/actions/LoopAction.js +1 -1
  163. package/lib/actions/PageAction.js +1 -1
  164. package/lib/actions/ParallelAction.js +1 -1
  165. package/lib/actions/StatusAction.js +1 -1
  166. package/lib/actions/SwitchAction.js +1 -1
  167. package/lib/actions/ToastAction.js +1 -1
  168. package/lib/components/CustomStyle.d.ts +5 -6
  169. package/lib/components/CustomStyle.js +46 -4
  170. package/lib/components/LazyComponent.d.ts +1 -2
  171. package/lib/components/LazyComponent.js +12 -9
  172. package/lib/components/Overlay.js +3 -1
  173. package/lib/components/PopOver.d.ts +12 -12
  174. package/lib/components/PopOver.js +3 -1
  175. package/lib/env.d.ts +2 -2
  176. package/lib/env.js +1 -1
  177. package/lib/envOverwrite.js +1 -1
  178. package/lib/factory.d.ts +7 -7
  179. package/lib/factory.js +1 -1
  180. package/lib/index.js +11 -3
  181. package/lib/locale.d.ts +1 -1
  182. package/lib/locale.js +3 -3
  183. package/lib/polyfills.js +1 -1
  184. package/lib/renderers/Form.d.ts +1 -1
  185. package/lib/renderers/Form.js +10 -8
  186. package/lib/renderers/Item.d.ts +24 -56
  187. package/lib/renderers/Item.js +26 -31
  188. package/lib/renderers/Options.js +14 -12
  189. package/lib/renderers/Placeholder.js +1 -1
  190. package/lib/renderers/builtin.js +1 -1
  191. package/lib/renderers/register.js +1 -1
  192. package/lib/renderers/wrapControl.js +70 -79
  193. package/lib/store/app.js +3 -1
  194. package/lib/store/combo.d.ts +384 -0
  195. package/lib/store/combo.js +1 -1
  196. package/lib/store/crud.js +31 -25
  197. package/lib/store/form.d.ts +160 -0
  198. package/lib/store/form.js +15 -13
  199. package/lib/store/formItem.d.ts +4 -0
  200. package/lib/store/formItem.js +41 -25
  201. package/lib/store/iRenderer.js +3 -1
  202. package/lib/store/index.js +1 -1
  203. package/lib/store/list.js +1 -1
  204. package/lib/store/manager.js +1 -1
  205. package/lib/store/modal.js +1 -1
  206. package/lib/store/node.js +1 -1
  207. package/lib/store/pagination.js +1 -1
  208. package/lib/store/root.d.ts +1 -1
  209. package/lib/store/root.js +11 -4
  210. package/lib/store/service.js +38 -33
  211. package/lib/store/status.js +1 -1
  212. package/lib/store/table.d.ts +760 -21
  213. package/lib/store/table.js +157 -57
  214. package/lib/store/table2.js +11 -8
  215. package/lib/theme.d.ts +18 -31
  216. package/lib/theme.js +1 -1
  217. package/lib/utils/Animation.js +1 -1
  218. package/lib/utils/ColorScale.js +1 -1
  219. package/lib/utils/DataSchema.js +1 -1
  220. package/lib/utils/DataScope.js +1 -1
  221. package/lib/utils/RootClose.js +1 -1
  222. package/lib/utils/SimpleMap.js +1 -1
  223. package/lib/utils/api.d.ts +3 -3
  224. package/lib/utils/api.js +3 -2
  225. package/lib/utils/arraySlice.js +1 -1
  226. package/lib/utils/attachmentAdpator.js +1 -1
  227. package/lib/utils/autobind.js +1 -1
  228. package/lib/utils/columnsSplit.js +1 -1
  229. package/lib/utils/dataMapping.js +1 -1
  230. package/lib/utils/date.js +1 -1
  231. package/lib/utils/debug.d.ts +1 -0
  232. package/lib/utils/debug.js +24 -1
  233. package/lib/utils/decodeEntity.js +1 -1
  234. package/lib/utils/dom.js +1 -1
  235. package/lib/utils/errors.js +1 -1
  236. package/lib/utils/escapeHtml.js +1 -1
  237. package/lib/utils/filter-schema.js +1 -1
  238. package/lib/utils/filter.js +1 -1
  239. package/lib/utils/formatDuration.js +1 -1
  240. package/lib/utils/formula.js +1 -1
  241. package/lib/utils/getVariable.js +1 -1
  242. package/lib/utils/grammar.js +1 -1
  243. package/lib/utils/handleAction.js +1 -1
  244. package/lib/utils/helper.d.ts +13 -1
  245. package/lib/utils/helper.js +101 -4
  246. package/lib/utils/highlight.js +1 -1
  247. package/lib/utils/icon.js +1 -1
  248. package/lib/utils/image.js +1 -1
  249. package/lib/utils/isPureVariable.js +1 -1
  250. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  251. package/lib/utils/keyToPath.d.ts +1 -1
  252. package/lib/utils/keyToPath.js +2 -1
  253. package/lib/utils/makeSorter.js +1 -1
  254. package/lib/utils/math.js +1 -1
  255. package/lib/utils/memoryParse.js +1 -1
  256. package/lib/utils/normalizeLink.js +1 -1
  257. package/lib/utils/normalizeOptions.js +1 -1
  258. package/lib/utils/object.js +1 -1
  259. package/lib/utils/offset.js +1 -1
  260. package/lib/utils/offsetParent.js +1 -1
  261. package/lib/utils/optionValueCompare.js +1 -1
  262. package/lib/utils/position.js +1 -1
  263. package/lib/utils/prettyBytes.js +1 -1
  264. package/lib/utils/renderer-event.js +2 -2
  265. package/lib/utils/replaceText.js +1 -1
  266. package/lib/utils/resize-sensor.d.ts +3 -1
  267. package/lib/utils/resize-sensor.js +34 -22
  268. package/lib/utils/resolveCondition.js +1 -1
  269. package/lib/utils/resolveVariable.js +1 -1
  270. package/lib/utils/resolveVariableAndFilter.js +1 -1
  271. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  272. package/lib/utils/scrollPosition.js +1 -1
  273. package/lib/utils/string2regExp.js +1 -1
  274. package/lib/utils/stripNumber.js +1 -1
  275. package/lib/utils/style-helper.d.ts +22 -14
  276. package/lib/utils/style-helper.js +188 -120
  277. package/lib/utils/style.js +1 -1
  278. package/lib/utils/toNumber.js +1 -1
  279. package/lib/utils/tokenize.js +1 -1
  280. package/lib/utils/tpl-builtin.js +1 -1
  281. package/lib/utils/tpl-lodash.js +1 -1
  282. package/lib/utils/tpl.js +1 -1
  283. package/lib/utils/uncontrollable.js +1 -1
  284. package/lib/utils/validations.js +1 -1
  285. package/package.json +5 -5
@@ -1,5 +1,5 @@
1
1
  import { Api, ApiObject, EventTrack, fetcherResult, Payload } from '../types';
2
- import { fetcherConfig } from '../factory';
2
+ import { FetcherConfig } from '../factory';
3
3
  interface ApiCacheConfig extends ApiObject {
4
4
  cachedPromise: Promise<any>;
5
5
  requestTime: number;
@@ -14,14 +14,14 @@ export declare function str2function(contents: string, ...args: Array<string>):
14
14
  export declare function str2AsyncFunction(contents: string, ...args: Array<string>): Function | null;
15
15
  export declare function callStrFunction(this: any, fn: string | Function, argNames: Array<string>, ...args: Array<any>): any;
16
16
  export declare function responseAdaptor(ret: fetcherResult, api: ApiObject): Payload;
17
- export declare function wrapFetcher(fn: (config: fetcherConfig) => Promise<fetcherResult>, tracker?: (eventTrack: EventTrack, data: any) => void): any;
17
+ export declare function wrapFetcher(fn: (config: FetcherConfig) => Promise<fetcherResult>, tracker?: (eventTrack: EventTrack, data: any) => void): any;
18
18
  export declare function wrapAdaptor(promise: Promise<fetcherResult>, api: ApiObject, context: any): Promise<Payload>;
19
19
  /**
20
20
  * 请求远程 js 文件然后 new Function 执行,用于 schemaApi 支持 JavaScript
21
21
  * @param api
22
22
  * @returns
23
23
  */
24
- export declare function jsFetcher(fetcher: (config: fetcherConfig) => Promise<fetcherResult>, api: ApiObject): Promise<fetcherResult>;
24
+ export declare function jsFetcher(fetcher: (config: FetcherConfig) => Promise<fetcherResult>, api: ApiObject): Promise<fetcherResult>;
25
25
  export declare function jsonpFetcher(api: ApiObject): Promise<fetcherResult>;
26
26
  export declare function isApiOutdatedWithData(prevApi: Api | undefined, nextApi: Api | undefined, prevData: any, nextData: any): nextApi is Api;
27
27
  export declare function isApiOutdated(prevApi: Api | undefined, nextApi: Api | undefined, prevData: any, nextData: any): nextApi is Api;
package/lib/utils/api.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -153,6 +153,7 @@ function buildApi(api, data, options) {
153
153
  if (ignoreData) {
154
154
  return api;
155
155
  }
156
+ var hasCustomData = api.data;
156
157
  if (api.data) {
157
158
  api.body = api.data = dataMapping.dataMapping(api.data, data, undefined, api.convertKeyToPath);
158
159
  }
@@ -217,7 +218,7 @@ function buildApi(api, data, options) {
217
218
  object.extendObject(data, tslib.__assign(tslib.__assign({}, api.query), data), false), undefined, false, true);
218
219
  /** 同时设置了JSONQL和data时走兼容场景 */
219
220
  api.body = api.data =
220
- api.data && api.jsonql
221
+ hasCustomData && api.jsonql
221
222
  ? {
222
223
  data: api.data,
223
224
  jsonql: api.jsonql
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/utils/date.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -29,4 +29,5 @@ export declare function debug(cat: Category, msg: string, ext?: object): void;
29
29
  * @param ext 扩展信息
30
30
  */
31
31
  export declare function warning(cat: Category, msg: string, ext?: object): void;
32
+ export declare function traceProps(props: any, prevProps: any, componentName: string): void;
32
33
  export {};
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -421,10 +421,33 @@ function warning(cat, msg, ext) {
421
421
  console.groupEnd();
422
422
  store.logs.push(log);
423
423
  }
424
+ // 辅助定位是因为什么属性变化导致了组件更新
425
+ function traceProps(props, prevProps, componentName) {
426
+ console.log(componentName, Object.keys(props)
427
+ .map(function (key) {
428
+ if (props[key] !== prevProps[key]) {
429
+ if (key === 'data') {
430
+ return "data[".concat(Object.keys(props[key])
431
+ .map(function (item) {
432
+ if (props[key][item] !== prevProps[key][item]) {
433
+ return "".concat(item);
434
+ }
435
+ return '';
436
+ })
437
+ .filter(function (item) { return item; })
438
+ .join(', '), "]");
439
+ }
440
+ return key;
441
+ }
442
+ return '';
443
+ })
444
+ .filter(function (item) { return item; }));
445
+ }
424
446
 
425
447
  exports.DebugWrapper = DebugWrapper;
426
448
  exports.JsonView = JsonView;
427
449
  exports.debug = debug;
428
450
  exports.disableDebug = disableDebug;
429
451
  exports.enableDebug = enableDebug;
452
+ exports.traceProps = traceProps;
430
453
  exports.warning = warning;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/utils/dom.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -36,6 +36,10 @@ export declare function anyChanged(attrs: string | Array<string>, from: {
36
36
  }, to: {
37
37
  [propName: string]: any;
38
38
  }, strictMode?: boolean): boolean;
39
+ type Mutable<T> = {
40
+ -readonly [k in keyof T]: T[k];
41
+ };
42
+ export declare function changedEffect<T extends Record<string, any>>(attrs: string | Array<string>, origin: T, data: T, effect: (changes: Partial<Mutable<T>>) => void, strictMode?: boolean): void;
39
43
  export declare function rmUndefined(obj: PlainObject): PlainObject;
40
44
  export declare function isObjectShallowModified(prev: any, next: any, strictMode?: boolean, ignoreUndefined?: boolean, statck?: Array<any>): boolean;
41
45
  export declare function isArrayChildrenModified(prev: Array<any>, next: Array<any>, strictMode?: boolean): boolean;
@@ -329,7 +333,7 @@ export declare function hashCode(s: string): number;
329
333
  * @param json
330
334
  * @param mapper
331
335
  */
332
- export declare function JSONTraverse(json: any, mapper: (value: any, key: string | number, host: Object) => any): void;
336
+ export declare function JSONTraverse(json: any, mapper: (value: any, key: string | number, host: Object) => any, maxDeep?: number): void;
333
337
  /**
334
338
  * 每层都会执行,返回新的对象,新对象不会递归下去
335
339
  * @param json
@@ -352,3 +356,11 @@ export declare function parseQuery(location?: Location | {
352
356
  [propName: string]: any;
353
357
  }): Record<string, any>;
354
358
  export declare function differenceFromAll<T>(allOptions: Array<T>, options: Array<T>, getValue: (item: T) => any): Array<T>;
359
+ /**
360
+ * 基于 schema 自动提取 trackExpression
361
+ * 可能会不准确,建议用户自己配置
362
+ * @param schema
363
+ * @returns
364
+ */
365
+ export declare function buildTrackExpression(schema: any): string;
366
+ export declare function evalTrackExpression(expression: string, data: Record<string, any>): string;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -23,6 +23,7 @@ var autobind$1 = require('./autobind.js');
23
23
  require('amis-formula');
24
24
  require('moment');
25
25
  var object = require('./object.js');
26
+ var tokenize = require('./tokenize.js');
26
27
  var isPureVariable = require('./isPureVariable.js');
27
28
  var resolveVariable = require('./resolveVariable.js');
28
29
  var resolveVariableAndFilter = require('./resolveVariableAndFilter.js');
@@ -146,7 +147,22 @@ function hasOwnPropertyInPath(data, key) {
146
147
  function noop() { }
147
148
  function anyChanged(attrs, from, to, strictMode) {
148
149
  if (strictMode === void 0) { strictMode = true; }
149
- return (typeof attrs === 'string' ? attrs.split(/\s*,\s*/) : attrs).some(function (key) { return (strictMode ? from[key] !== to[key] : from[key] != to[key]); });
150
+ return (typeof attrs === 'string'
151
+ ? attrs.split(',').map(function (item) { return item.trim(); })
152
+ : attrs).some(function (key) { return (strictMode ? from[key] !== to[key] : from[key] != to[key]); });
153
+ }
154
+ function changedEffect(attrs, origin, data, effect, strictMode) {
155
+ if (strictMode === void 0) { strictMode = true; }
156
+ var changes = {};
157
+ var keys = typeof attrs === 'string'
158
+ ? attrs.split(',').map(function (item) { return item.trim(); })
159
+ : attrs;
160
+ keys.forEach(function (key) {
161
+ if (strictMode ? origin[key] !== data[key] : origin[key] != data[key]) {
162
+ changes[key] = data[key];
163
+ }
164
+ });
165
+ Object.keys(changes).length && effect(changes);
150
166
  }
151
167
  function rmUndefined(obj) {
152
168
  var newObj = {};
@@ -1322,12 +1338,16 @@ function hashCode(s) {
1322
1338
  * @param json
1323
1339
  * @param mapper
1324
1340
  */
1325
- function JSONTraverse(json, mapper) {
1341
+ function JSONTraverse(json, mapper, maxDeep) {
1342
+ if (maxDeep === void 0) { maxDeep = Number.MAX_VALUE; }
1343
+ if (maxDeep <= 0) {
1344
+ return;
1345
+ }
1326
1346
  Object.keys(json).forEach(function (key) {
1327
1347
  var value = json[key];
1328
1348
  if (!mobx.isObservable(value)) {
1329
1349
  if (isPlainObject__default["default"](value) || Array.isArray(value)) {
1330
- JSONTraverse(value, mapper);
1350
+ JSONTraverse(value, mapper, maxDeep - 1);
1331
1351
  }
1332
1352
  else {
1333
1353
  mapper(value, key, json);
@@ -1458,6 +1478,80 @@ function differenceFromAll(allOptions, options, getValue) {
1458
1478
  differenceFromAllCache.res = res;
1459
1479
  return res;
1460
1480
  }
1481
+ /**
1482
+ * 基于 schema 自动提取 trackExpression
1483
+ * 可能会不准确,建议用户自己配置
1484
+ * @param schema
1485
+ * @returns
1486
+ */
1487
+ function buildTrackExpression(schema) {
1488
+ if (!isPlainObject__default["default"](schema) && !Array.isArray(schema)) {
1489
+ return '';
1490
+ }
1491
+ var trackExpressions = [];
1492
+ JSONTraverse(schema, function (value, key) {
1493
+ if (typeof value !== 'string') {
1494
+ return;
1495
+ }
1496
+ if (key === 'name') {
1497
+ trackExpressions.push(isPureVariable.isPureVariable(value) ? value : "${".concat(value, "}"));
1498
+ }
1499
+ else if (key === 'source') {
1500
+ trackExpressions.push(value);
1501
+ }
1502
+ else if (key.endsWith('On') ||
1503
+ key === 'condition' ||
1504
+ key === 'trackExpression') {
1505
+ trackExpressions.push(value.startsWith('${') ? value : "<script>".concat(value, "</script>"));
1506
+ }
1507
+ else if (value.includes('$')) {
1508
+ trackExpressions.push(value);
1509
+ }
1510
+ }, 10 // 最多遍历 10 层
1511
+ );
1512
+ return trackExpressions.join('|');
1513
+ }
1514
+ function evalTrackExpression(expression, data) {
1515
+ if (typeof expression !== 'string') {
1516
+ return '';
1517
+ }
1518
+ var parts = [];
1519
+ while (true) {
1520
+ // 这个是自动提取的时候才会用到,用户配置不要用到这个语法
1521
+ var idx = expression.indexOf('<script>');
1522
+ if (idx === -1) {
1523
+ break;
1524
+ }
1525
+ var endIdx = expression.indexOf('</script>');
1526
+ if (endIdx === -1) {
1527
+ throw new Error('Invalid trackExpression miss end script token `</script>`');
1528
+ }
1529
+ if (idx) {
1530
+ parts.push({
1531
+ type: 'text',
1532
+ value: expression.substring(0, idx)
1533
+ });
1534
+ }
1535
+ parts.push({
1536
+ type: 'script',
1537
+ value: expression.substring(idx + 8, endIdx)
1538
+ });
1539
+ expression = expression.substring(endIdx + 9);
1540
+ }
1541
+ expression &&
1542
+ parts.push({
1543
+ type: 'text',
1544
+ value: expression
1545
+ });
1546
+ return parts
1547
+ .map(function (item) {
1548
+ if (item.type === 'text') {
1549
+ return tokenize.tokenize(item.value, data);
1550
+ }
1551
+ return tpl.evalExpression(item.value, data);
1552
+ })
1553
+ .join('');
1554
+ }
1461
1555
 
1462
1556
  exports.cloneObject = object.cloneObject;
1463
1557
  exports.createObject = object.createObject;
@@ -1475,15 +1569,18 @@ exports.ValidateError = ValidateError;
1475
1569
  exports.__uri = __uri;
1476
1570
  exports.anyChanged = anyChanged;
1477
1571
  exports.autobind = autobind;
1572
+ exports.buildTrackExpression = buildTrackExpression;
1478
1573
  exports.bulkBindFunctions = bulkBindFunctions;
1479
1574
  exports.camel = camel;
1480
1575
  exports.chainEvents = chainEvents;
1481
1576
  exports.chainFunctions = chainFunctions;
1577
+ exports.changedEffect = changedEffect;
1482
1578
  exports.convertArrayValueToMoment = convertArrayValueToMoment;
1483
1579
  exports.detectPropValueChanged = detectPropValueChanged;
1484
1580
  exports.difference = difference;
1485
1581
  exports.differenceFromAll = differenceFromAll;
1486
1582
  exports.eachTree = eachTree;
1583
+ exports.evalTrackExpression = evalTrackExpression;
1487
1584
  exports.everyTree = everyTree;
1488
1585
  exports.filterTree = filterTree;
1489
1586
  exports.findIndex = findIndex;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/utils/icon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @param string 要转换的字符串
5
5
  */
6
- export declare const keyToPath: (string: string) => string[];
6
+ export declare const keyToPath: (string?: string) => string[];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -13,6 +13,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
13
13
  * @param string 要转换的字符串
14
14
  */
15
15
  var keyToPath = function (string) {
16
+ if (string === void 0) { string = ''; }
16
17
  var result = [];
17
18
  if (string.charCodeAt(0) === '.'.charCodeAt(0)) {
18
19
  result.push('');
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
package/lib/utils/math.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -96,7 +96,7 @@ var bindEvent = function (renderer) {
96
96
  return function (eventName) {
97
97
  // eventName用来避免过滤广播事件
98
98
  rendererEventListeners = rendererEventListeners.filter(function (item) {
99
- return item.renderer !== renderer && eventName !== undefined
99
+ return item.renderer === renderer && eventName !== undefined
100
100
  ? item.type !== eventName
101
101
  : true;
102
102
  });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v3.4.0
2
+ * amis-core v3.4.2
3
3
  * Copyright 2018-2023 fex
4
4
  */
5
5
 
@@ -2,5 +2,7 @@
2
2
  * @file resize-sensor.js.
3
3
  * @author fex
4
4
  */
5
+ type EventType = 'both' | 'width' | 'height';
5
6
  export declare function getComputedStyle(element: HTMLElement, prop: string): any;
6
- export declare function resizeSensor(element: HTMLElement, callback: () => void): () => void;
7
+ export declare function resizeSensor(element: HTMLElement, callback: () => void, once?: boolean, type?: EventType): () => void;
8
+ export {};