amis-core 6.4.1 → 6.5.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 (305) hide show
  1. package/esm/Root.js +1 -1
  2. package/esm/RootRenderer.js +1 -1
  3. package/esm/SchemaRenderer.js +15 -5
  4. package/esm/Scoped.d.ts +1 -1
  5. package/esm/Scoped.js +2 -1
  6. package/esm/StatusScoped.js +1 -1
  7. package/esm/WithRootStore.js +1 -1
  8. package/esm/WithStore.js +9 -3
  9. package/esm/actions/Action.js +6 -5
  10. package/esm/actions/AjaxAction.js +3 -3
  11. package/esm/actions/BreakAction.js +1 -1
  12. package/esm/actions/BroadcastAction.js +1 -1
  13. package/esm/actions/CmptAction.js +2 -2
  14. package/esm/actions/ContinueAction.js +1 -1
  15. package/esm/actions/CopyAction.js +4 -4
  16. package/esm/actions/CustomAction.js +2 -1
  17. package/esm/actions/DialogAction.js +2 -1
  18. package/esm/actions/DrawerAction.js +2 -1
  19. package/esm/actions/EmailAction.js +1 -1
  20. package/esm/actions/EventAction.js +2 -1
  21. package/esm/actions/LinkAction.js +1 -1
  22. package/esm/actions/LoopAction.js +2 -1
  23. package/esm/actions/PageAction.js +1 -1
  24. package/esm/actions/ParallelAction.js +1 -1
  25. package/esm/actions/PrintAction.d.ts +1 -1
  26. package/esm/actions/PrintAction.js +12 -6
  27. package/esm/actions/StatusAction.js +1 -1
  28. package/esm/actions/SwitchAction.js +3 -3
  29. package/esm/actions/ToastAction.js +1 -1
  30. package/esm/actions/WaitAction.js +1 -1
  31. package/esm/components/CustomStyle.js +1 -1
  32. package/esm/components/ErrorBoundary.js +1 -1
  33. package/esm/components/LazyComponent.js +1 -1
  34. package/esm/components/Overlay.js +2 -1
  35. package/esm/components/PopOver.js +2 -1
  36. package/esm/env.d.ts +2 -4
  37. package/esm/env.js +1 -1
  38. package/esm/envOverwrite.js +1 -1
  39. package/esm/factory.js +1 -1
  40. package/esm/index.js +4 -4
  41. package/esm/locale.js +2 -1
  42. package/esm/polyfills.js +1 -1
  43. package/esm/renderers/Form.d.ts +1 -1
  44. package/esm/renderers/Form.js +40 -6
  45. package/esm/renderers/Item.d.ts +27 -60
  46. package/esm/renderers/Item.js +74 -6
  47. package/esm/renderers/Options.js +2 -1
  48. package/esm/renderers/Placeholder.js +1 -1
  49. package/esm/renderers/builtin.js +1 -1
  50. package/esm/renderers/register.js +1 -1
  51. package/esm/renderers/wrapControl.js +7 -1
  52. package/esm/store/app.js +2 -1
  53. package/esm/store/combo.js +1 -1
  54. package/esm/store/crud.js +2 -1
  55. package/esm/store/form.js +2 -1
  56. package/esm/store/formItem.js +11 -1
  57. package/esm/store/iRenderer.js +2 -1
  58. package/esm/store/index.js +1 -1
  59. package/esm/store/list.js +1 -1
  60. package/esm/store/manager.js +1 -1
  61. package/esm/store/modal.js +1 -1
  62. package/esm/store/node.js +1 -1
  63. package/esm/store/pagination.js +2 -1
  64. package/esm/store/root.js +2 -1
  65. package/esm/store/service.js +2 -1
  66. package/esm/store/status.js +1 -1
  67. package/esm/store/table.js +2 -1
  68. package/esm/store/table2.js +1 -1
  69. package/esm/theme.js +1 -1
  70. package/esm/types.d.ts +1 -0
  71. package/esm/utils/Animation.js +1 -1
  72. package/esm/utils/ColorScale.js +1 -1
  73. package/esm/utils/DataSchema.js +1 -1
  74. package/esm/utils/DataScope.js +1 -1
  75. package/esm/utils/RootClose.js +1 -1
  76. package/esm/utils/SimpleMap.js +1 -1
  77. package/esm/utils/api.js +21 -3
  78. package/esm/utils/arraySlice.js +1 -1
  79. package/esm/utils/attachmentAdpator.js +1 -1
  80. package/esm/utils/autobind.js +1 -1
  81. package/esm/utils/browser.js +1 -1
  82. package/esm/utils/columnsSplit.js +1 -1
  83. package/esm/utils/concatData.js +1 -1
  84. package/esm/utils/dataMapping.js +1 -1
  85. package/esm/utils/date.d.ts +3 -1
  86. package/esm/utils/date.js +11 -5
  87. package/esm/utils/debug.js +1 -1
  88. package/esm/utils/decodeEntity.js +1 -1
  89. package/esm/utils/dom.js +1 -1
  90. package/esm/utils/errors.js +1 -1
  91. package/esm/utils/escapeHtml.js +1 -1
  92. package/esm/utils/filter-schema.js +7 -4
  93. package/esm/utils/filter.js +1 -1
  94. package/esm/utils/formatDuration.js +1 -1
  95. package/esm/utils/formula.js +2 -1
  96. package/esm/utils/getVariable.js +1 -1
  97. package/esm/utils/grammar.js +1 -1
  98. package/esm/utils/handleAction.js +1 -1
  99. package/esm/utils/helper.js +2 -1
  100. package/esm/utils/highlight.js +1 -1
  101. package/esm/utils/icon.js +1 -1
  102. package/esm/utils/image.js +1 -1
  103. package/esm/utils/isPureVariable.js +1 -1
  104. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  105. package/esm/utils/keyToPath.js +1 -1
  106. package/esm/utils/labelToString.js +1 -1
  107. package/esm/utils/makeSorter.js +1 -1
  108. package/esm/utils/math.js +1 -1
  109. package/esm/utils/memoryParse.js +1 -1
  110. package/esm/utils/normalizeLink.js +1 -1
  111. package/esm/utils/normalizeOptions.d.ts +1 -1
  112. package/esm/utils/normalizeOptions.js +3 -2
  113. package/esm/utils/object.js +1 -1
  114. package/esm/utils/offset.js +1 -1
  115. package/esm/utils/offsetParent.js +1 -1
  116. package/esm/utils/optionValueCompare.js +1 -1
  117. package/esm/utils/position.js +1 -1
  118. package/esm/utils/prettyBytes.js +1 -1
  119. package/esm/utils/printElement.js +1 -1
  120. package/esm/utils/renderer-event.js +3 -3
  121. package/esm/utils/replaceText.js +1 -1
  122. package/esm/utils/resize-sensor.js +1 -1
  123. package/esm/utils/resolveCondition.d.ts +2 -1
  124. package/esm/utils/resolveCondition.js +60 -8
  125. package/esm/utils/resolveVariable.js +1 -1
  126. package/esm/utils/resolveVariableAndFilter.js +1 -1
  127. package/esm/utils/resolveVariableAndFilterForAsync.js +1 -1
  128. package/esm/utils/scrollPosition.js +1 -1
  129. package/esm/utils/string2regExp.js +1 -1
  130. package/esm/utils/stripNumber.js +2 -2
  131. package/esm/utils/style-helper.js +5 -3
  132. package/esm/utils/style.js +2 -1
  133. package/esm/utils/toNumber.js +1 -1
  134. package/esm/utils/tokenize.js +1 -1
  135. package/esm/utils/tpl-builtin.js +2 -1
  136. package/esm/utils/tpl-lodash.js +2 -1
  137. package/esm/utils/tpl.d.ts +8 -1
  138. package/esm/utils/tpl.js +18 -5
  139. package/esm/utils/uncontrollable.js +1 -1
  140. package/esm/utils/validateId.js +1 -1
  141. package/esm/utils/validations.js +2 -1
  142. package/lib/Root.js +1 -1
  143. package/lib/RootRenderer.js +1 -1
  144. package/lib/SchemaRenderer.js +15 -5
  145. package/lib/Scoped.d.ts +1 -1
  146. package/lib/Scoped.js +2 -1
  147. package/lib/StatusScoped.js +1 -1
  148. package/lib/WithRootStore.js +1 -1
  149. package/lib/WithStore.js +9 -3
  150. package/lib/actions/Action.js +5 -4
  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 +2 -2
  155. package/lib/actions/ContinueAction.js +1 -1
  156. package/lib/actions/CopyAction.js +4 -4
  157. package/lib/actions/CustomAction.js +2 -1
  158. package/lib/actions/DialogAction.js +2 -1
  159. package/lib/actions/DrawerAction.js +2 -1
  160. package/lib/actions/EmailAction.js +1 -1
  161. package/lib/actions/EventAction.js +2 -1
  162. package/lib/actions/LinkAction.js +1 -1
  163. package/lib/actions/LoopAction.js +2 -1
  164. package/lib/actions/PageAction.js +1 -1
  165. package/lib/actions/ParallelAction.js +1 -1
  166. package/lib/actions/PrintAction.d.ts +1 -1
  167. package/lib/actions/PrintAction.js +12 -6
  168. package/lib/actions/StatusAction.js +1 -1
  169. package/lib/actions/SwitchAction.js +2 -2
  170. package/lib/actions/ToastAction.js +1 -1
  171. package/lib/actions/WaitAction.js +1 -1
  172. package/lib/components/CustomStyle.js +1 -1
  173. package/lib/components/ErrorBoundary.js +1 -1
  174. package/lib/components/LazyComponent.js +1 -1
  175. package/lib/components/Overlay.js +2 -1
  176. package/lib/components/PopOver.js +2 -1
  177. package/lib/env.d.ts +2 -4
  178. package/lib/env.js +1 -1
  179. package/lib/envOverwrite.js +1 -1
  180. package/lib/factory.js +1 -1
  181. package/lib/index.js +4 -2
  182. package/lib/locale.js +2 -1
  183. package/lib/polyfills.js +1 -1
  184. package/lib/renderers/Form.d.ts +1 -1
  185. package/lib/renderers/Form.js +40 -6
  186. package/lib/renderers/Item.d.ts +27 -60
  187. package/lib/renderers/Item.js +74 -6
  188. package/lib/renderers/Options.js +2 -1
  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 +7 -1
  193. package/lib/store/app.js +2 -1
  194. package/lib/store/combo.js +1 -1
  195. package/lib/store/crud.js +2 -1
  196. package/lib/store/form.js +2 -1
  197. package/lib/store/formItem.js +11 -1
  198. package/lib/store/iRenderer.js +2 -1
  199. package/lib/store/index.js +1 -1
  200. package/lib/store/list.js +1 -1
  201. package/lib/store/manager.js +1 -1
  202. package/lib/store/modal.js +1 -1
  203. package/lib/store/node.js +1 -1
  204. package/lib/store/pagination.js +2 -1
  205. package/lib/store/root.js +2 -1
  206. package/lib/store/service.js +2 -1
  207. package/lib/store/status.js +1 -1
  208. package/lib/store/table.js +2 -1
  209. package/lib/store/table2.js +1 -1
  210. package/lib/theme.js +1 -1
  211. package/lib/types.d.ts +1 -0
  212. package/lib/utils/Animation.js +1 -1
  213. package/lib/utils/ColorScale.js +1 -1
  214. package/lib/utils/DataSchema.js +1 -1
  215. package/lib/utils/DataScope.js +1 -1
  216. package/lib/utils/RootClose.js +1 -1
  217. package/lib/utils/SimpleMap.js +1 -1
  218. package/lib/utils/api.js +23 -3
  219. package/lib/utils/arraySlice.js +1 -1
  220. package/lib/utils/attachmentAdpator.js +1 -1
  221. package/lib/utils/autobind.js +1 -1
  222. package/lib/utils/browser.js +1 -1
  223. package/lib/utils/columnsSplit.js +1 -1
  224. package/lib/utils/concatData.js +1 -1
  225. package/lib/utils/dataMapping.js +1 -1
  226. package/lib/utils/date.d.ts +3 -1
  227. package/lib/utils/date.js +11 -5
  228. package/lib/utils/debug.js +1 -1
  229. package/lib/utils/decodeEntity.js +1 -1
  230. package/lib/utils/dom.js +1 -1
  231. package/lib/utils/errors.js +1 -1
  232. package/lib/utils/escapeHtml.js +1 -1
  233. package/lib/utils/filter-schema.js +6 -3
  234. package/lib/utils/filter.js +1 -1
  235. package/lib/utils/formatDuration.js +1 -1
  236. package/lib/utils/formula.js +2 -1
  237. package/lib/utils/getVariable.js +1 -1
  238. package/lib/utils/grammar.js +1 -1
  239. package/lib/utils/handleAction.js +1 -1
  240. package/lib/utils/helper.js +2 -1
  241. package/lib/utils/highlight.js +1 -1
  242. package/lib/utils/icon.js +1 -1
  243. package/lib/utils/image.js +1 -1
  244. package/lib/utils/isPureVariable.js +1 -1
  245. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  246. package/lib/utils/keyToPath.js +1 -1
  247. package/lib/utils/labelToString.js +1 -1
  248. package/lib/utils/makeSorter.js +1 -1
  249. package/lib/utils/math.js +1 -1
  250. package/lib/utils/memoryParse.js +1 -1
  251. package/lib/utils/normalizeLink.js +1 -1
  252. package/lib/utils/normalizeOptions.d.ts +1 -1
  253. package/lib/utils/normalizeOptions.js +3 -2
  254. package/lib/utils/object.js +1 -1
  255. package/lib/utils/offset.js +1 -1
  256. package/lib/utils/offsetParent.js +1 -1
  257. package/lib/utils/optionValueCompare.js +1 -1
  258. package/lib/utils/position.js +1 -1
  259. package/lib/utils/prettyBytes.js +1 -1
  260. package/lib/utils/printElement.js +1 -1
  261. package/lib/utils/renderer-event.js +2 -2
  262. package/lib/utils/replaceText.js +1 -1
  263. package/lib/utils/resize-sensor.js +1 -1
  264. package/lib/utils/resolveCondition.d.ts +2 -1
  265. package/lib/utils/resolveCondition.js +60 -7
  266. package/lib/utils/resolveVariable.js +1 -1
  267. package/lib/utils/resolveVariableAndFilter.js +1 -1
  268. package/lib/utils/resolveVariableAndFilterForAsync.js +1 -1
  269. package/lib/utils/scrollPosition.js +1 -1
  270. package/lib/utils/string2regExp.js +1 -1
  271. package/lib/utils/stripNumber.js +3 -3
  272. package/lib/utils/style-helper.js +5 -3
  273. package/lib/utils/style.js +2 -1
  274. package/lib/utils/toNumber.js +1 -1
  275. package/lib/utils/tokenize.js +1 -1
  276. package/lib/utils/tpl-builtin.js +2 -1
  277. package/lib/utils/tpl-lodash.js +2 -1
  278. package/lib/utils/tpl.d.ts +8 -1
  279. package/lib/utils/tpl.js +17 -3
  280. package/lib/utils/uncontrollable.js +1 -1
  281. package/lib/utils/validateId.js +1 -1
  282. package/lib/utils/validations.js +2 -1
  283. package/package.json +3 -2
  284. package/esm/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +0 -12
  285. package/esm/node_modules/@babel/runtime/helpers/esm/createClass.js +0 -26
  286. package/esm/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -23
  287. package/esm/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -19
  288. package/esm/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -14
  289. package/esm/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -16
  290. package/esm/node_modules/@rc-component/mini-decimal/es/BigIntDecimal.js +0 -184
  291. package/esm/node_modules/@rc-component/mini-decimal/es/MiniDecimal.js +0 -56
  292. package/esm/node_modules/@rc-component/mini-decimal/es/NumberDecimal.js +0 -119
  293. package/esm/node_modules/@rc-component/mini-decimal/es/numberUtil.js +0 -105
  294. package/esm/node_modules/@rc-component/mini-decimal/es/supportUtil.js +0 -10
  295. package/lib/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +0 -16
  296. package/lib/node_modules/@babel/runtime/helpers/esm/createClass.js +0 -30
  297. package/lib/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -27
  298. package/lib/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -23
  299. package/lib/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -18
  300. package/lib/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -20
  301. package/lib/node_modules/@rc-component/mini-decimal/es/BigIntDecimal.js +0 -188
  302. package/lib/node_modules/@rc-component/mini-decimal/es/MiniDecimal.js +0 -61
  303. package/lib/node_modules/@rc-component/mini-decimal/es/NumberDecimal.js +0 -123
  304. package/lib/node_modules/@rc-component/mini-decimal/es/numberUtil.js +0 -114
  305. package/lib/node_modules/@rc-component/mini-decimal/es/supportUtil.js +0 -14
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -10,7 +10,7 @@ import { eachTree, getTree } from './helper.js';
10
10
  import { extendObject, createObject } from './object.js';
11
11
  import debounce from 'lodash/debounce';
12
12
  import { resolveVariableAndFilterForAsync } from './resolveVariableAndFilterForAsync.js';
13
- import { evalExpression, evalExpressionWithConditionBuilder } from './tpl.js';
13
+ import { evalExpression, evalExpressionWithConditionBuilderAsync } from './tpl.js';
14
14
 
15
15
  var rendererEventListeners = [];
16
16
  // 创建渲染器事件对象
@@ -333,7 +333,7 @@ function getMatchedEventTargets(tree, ctx, index, condition, oldCondition) {
333
333
  var result;
334
334
  return __generator(this, function (_a) {
335
335
  switch (_a.label) {
336
- case 0: return [4 /*yield*/, evalExpressionWithConditionBuilder(condition, createObject(ctx, data))];
336
+ case 0: return [4 /*yield*/, evalExpressionWithConditionBuilderAsync(condition, createObject(ctx, data))];
337
337
  case 1:
338
338
  result = _a.sent();
339
339
  result && targets.push(item);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,4 +1,5 @@
1
- export declare function resolveCondition(conditions: any, data: any, defaultResult?: boolean): Promise<boolean>;
1
+ export declare function resolveConditionAsync(conditions: any, data: any, defaultResult?: boolean): Promise<boolean>;
2
+ export declare function resolveCondition(conditions: any, data: any, defaultResult?: boolean): boolean | Promise<boolean>;
2
3
  export declare function registerConditionComputer(op: string, func: (left: any, right: any, fieldType?: string) => boolean, fieldType?: string): void;
3
4
  export declare function getConditionComputers(): {
4
5
  [op: string]: (left: any, right: any, fieldType?: string | undefined) => boolean;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -12,11 +12,17 @@ import startsWith from 'lodash/startsWith';
12
12
  import { resolveVariableAndFilterForAsync } from './resolveVariableAndFilterForAsync.js';
13
13
  import moment from 'moment';
14
14
  import capitalize from 'lodash/capitalize';
15
+ import 'amis-formula';
16
+ import 'lodash/isPlainObject';
17
+ import { isPureVariable } from './isPureVariable.js';
18
+ import '@rc-component/mini-decimal';
19
+ import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
20
+ import './filter.js';
15
21
 
16
22
  var conditionResolverMap = {};
17
23
  var DEFAULT_RESULT = true;
18
24
  var conditionComputeErrorHandler;
19
- function resolveCondition(conditions, data, defaultResult) {
25
+ function resolveConditionAsync(conditions, data, defaultResult) {
20
26
  if (defaultResult === void 0) { defaultResult = true; }
21
27
  return __awaiter(this, void 0, void 0, function () {
22
28
  var e_1;
@@ -32,7 +38,7 @@ function resolveCondition(conditions, data, defaultResult) {
32
38
  _a.label = 1;
33
39
  case 1:
34
40
  _a.trys.push([1, 3, , 6]);
35
- return [4 /*yield*/, computeConditions(conditions.children, conditions.conjunction, data)];
41
+ return [4 /*yield*/, computeConditionsAsync(conditions.children, conditions.conjunction, data)];
36
42
  case 2: return [2 /*return*/, _a.sent()];
37
43
  case 3:
38
44
  e_1 = _a.sent();
@@ -45,7 +51,26 @@ function resolveCondition(conditions, data, defaultResult) {
45
51
  });
46
52
  });
47
53
  }
48
- function computeConditions(conditions, conjunction, data) {
54
+ function resolveCondition(conditions, data, defaultResult) {
55
+ if (defaultResult === void 0) { defaultResult = true; }
56
+ if (!conditions ||
57
+ !conditions.conjunction ||
58
+ !Array.isArray(conditions.children) ||
59
+ !conditions.children.length) {
60
+ return defaultResult;
61
+ }
62
+ try {
63
+ return computeConditions(conditions.children, conditions.conjunction, data);
64
+ }
65
+ catch (e) {
66
+ // 如果函数未定义,则交给handler
67
+ if (e.name === 'FormulaEvalError') {
68
+ return conditionComputeErrorHandler === null || conditionComputeErrorHandler === void 0 ? void 0 : conditionComputeErrorHandler(conditions.children, conditions.conjunction, data);
69
+ }
70
+ return defaultResult;
71
+ }
72
+ }
73
+ function computeConditionsAsync(conditions, conjunction, data) {
49
74
  if (conjunction === void 0) { conjunction = 'and'; }
50
75
  return __awaiter(this, void 0, void 0, function () {
51
76
  var computeResult, index, len, item, result, _a;
@@ -59,11 +84,11 @@ function computeConditions(conditions, conjunction, data) {
59
84
  if (!(index < len)) return [3 /*break*/, 7];
60
85
  item = conditions[index];
61
86
  if (!(item.conjunction && Array.isArray(item.children) && item.children.length)) return [3 /*break*/, 3];
62
- return [4 /*yield*/, computeConditions(item.children, item.conjunction, data)];
87
+ return [4 /*yield*/, computeConditionsAsync(item.children, item.conjunction, data)];
63
88
  case 2:
64
89
  _a = _b.sent();
65
90
  return [3 /*break*/, 5];
66
- case 3: return [4 /*yield*/, computeCondition(item, index, data)];
91
+ case 3: return [4 /*yield*/, computeConditionAsync(item, index, data)];
67
92
  case 4:
68
93
  _a = _b.sent();
69
94
  _b.label = 5;
@@ -83,7 +108,23 @@ function computeConditions(conditions, conjunction, data) {
83
108
  });
84
109
  });
85
110
  }
86
- function computeCondition(rule, index, data) {
111
+ function computeConditions(conditions, conjunction, data) {
112
+ if (conjunction === void 0) { conjunction = 'and'; }
113
+ var computeResult = true;
114
+ for (var index = 0, len = conditions.length; index < len; index++) {
115
+ var item = conditions[index];
116
+ var result = item.conjunction && Array.isArray(item.children) && item.children.length
117
+ ? computeConditions(item.children, item.conjunction, data)
118
+ : computeCondition(item, index, data);
119
+ computeResult = !!result;
120
+ if ((result && conjunction === 'or') ||
121
+ (!result && conjunction === 'and')) {
122
+ break;
123
+ }
124
+ }
125
+ return computeResult;
126
+ }
127
+ function computeConditionAsync(rule, index, data) {
87
128
  var _a;
88
129
  return __awaiter(this, void 0, void 0, function () {
89
130
  var leftValue, rightValue, func;
@@ -100,6 +141,17 @@ function computeCondition(rule, index, data) {
100
141
  });
101
142
  });
102
143
  }
144
+ function computeCondition(rule, index, data) {
145
+ var _a;
146
+ var leftValue = get(data, rule.left.field);
147
+ var rightValue = isPureVariable(rule.right)
148
+ ? resolveVariableAndFilter(rule.right, data)
149
+ : rule.right;
150
+ var func = (_a = conditionResolverMap["".concat(rule.op, "For").concat(capitalize(rule.left.type))]) !== null && _a !== void 0 ? _a : conditionResolverMap[rule.op];
151
+ return func && typeof func === 'function'
152
+ ? func(leftValue, rightValue, rule.left.type)
153
+ : DEFAULT_RESULT;
154
+ }
103
155
  function startsWithFunc(left, right) {
104
156
  if (left === undefined || right === undefined) {
105
157
  return DEFAULT_RESULT;
@@ -318,4 +370,4 @@ registerConditionComputer('select_not_any_in', selectNotAnyInFunc);
318
370
  registerConditionComputer('starts_with', startsWithFunc);
319
371
  registerConditionComputer('ends_with', endsWithFunc);
320
372
 
321
- export { getConditionComputers, registerConditionComputer, resolveCondition, setConditionComputeErrorHandler };
373
+ export { getConditionComputers, registerConditionComputer, resolveCondition, resolveConditionAsync, setConditionComputeErrorHandler };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,9 +1,9 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
6
- import { toFixed } from '../node_modules/@rc-component/mini-decimal/es/MiniDecimal.js';
6
+ import { toFixed } from '@rc-component/mini-decimal';
7
7
 
8
8
  // 主要用于解决 0.1+0.2 结果的精度问题导致太长
9
9
  function stripNumber(number, precision) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -360,9 +360,11 @@ function insertEditCustomStyle(params) {
360
360
  }
361
361
  insertStyle({
362
362
  style: content,
363
- classId: 'wrapperCustomStyle-' + ((id === null || id === void 0 ? void 0 : id.replace('u:', '')) || uuid()) + index,
363
+ classId: 'wrapperCustomStyle-' +
364
+ ((typeof id === 'string' ? id.replace('u:', '') : '') || uuid()) +
365
+ index,
364
366
  doc: doc,
365
- id: id === null || id === void 0 ? void 0 : id.replace('u:', '').replace(/(-.*)/, '')
367
+ id: typeof id === 'string' ? id.replace('u:', '').replace(/(-.*)/, '') : ''
366
368
  });
367
369
  }
368
370
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -7,6 +7,7 @@ import 'tslib';
7
7
  import 'amis-formula';
8
8
  import 'moment';
9
9
  import 'lodash/isPlainObject';
10
+ import '@rc-component/mini-decimal';
10
11
  import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
11
12
  import './filter.js';
12
13
  import mapValues from 'lodash/mapValues';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -9,6 +9,7 @@ import 'moment';
9
9
  import 'lodash/isPlainObject';
10
10
  import { tokenize } from './tokenize.js';
11
11
  export { tokenize } from './tokenize.js';
12
+ import '@rc-component/mini-decimal';
12
13
  import { resolveVariableAndFilterForAsync } from './resolveVariableAndFilterForAsync.js';
13
14
  export { resolveVariableAndFilterForAsync } from './resolveVariableAndFilterForAsync.js';
14
15
  import './filter.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -8,6 +8,7 @@ import template from 'lodash/template';
8
8
  import { getFilters } from 'amis-formula';
9
9
  import moment from 'moment';
10
10
  import 'lodash/isPlainObject';
11
+ import '@rc-component/mini-decimal';
11
12
  import './filter.js';
12
13
 
13
14
  var imports = {
@@ -15,6 +15,13 @@ export declare function evalExpression(expression: string, data?: object): boole
15
15
  * @param data 上下文
16
16
  * @returns
17
17
  */
18
- export declare function evalExpressionWithConditionBuilder(expression: any, data?: object, defaultResult?: boolean): Promise<boolean>;
18
+ export declare function evalExpressionWithConditionBuilderAsync(expression: any, data?: object, defaultResult?: boolean): Promise<boolean>;
19
+ /**
20
+ * 解析表达式(支持condition-builder)
21
+ * @param expression 表达式 or condition-builder对象
22
+ * @param data 上下文
23
+ * @returns
24
+ */
25
+ export declare function evalExpressionWithConditionBuilder(expression: any, data?: object, defaultResult?: boolean): boolean | Promise<boolean>;
19
26
  export declare function setCustomEvalJs(fn: (expression: string, data?: any) => any): void;
20
27
  export declare function evalJS(js: string, data: object): any;
package/esm/utils/tpl.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -7,7 +7,7 @@ import { __spreadArray, __read, __awaiter, __generator } from 'tslib';
7
7
  import { register } from './tpl-builtin.js';
8
8
  import { register as register$1 } from './tpl-lodash.js';
9
9
  import { getFilters, evaluate } from 'amis-formula';
10
- import { resolveCondition } from './resolveCondition.js';
10
+ import { resolveConditionAsync, resolveCondition } from './resolveCondition.js';
11
11
  import { memoParse } from './tokenize.js';
12
12
 
13
13
  var enginers = {};
@@ -108,19 +108,32 @@ function evalExpression(expression, data) {
108
108
  * @param data 上下文
109
109
  * @returns
110
110
  */
111
- function evalExpressionWithConditionBuilder(expression, data, defaultResult) {
111
+ function evalExpressionWithConditionBuilderAsync(expression, data, defaultResult) {
112
112
  return __awaiter(this, void 0, void 0, function () {
113
113
  return __generator(this, function (_a) {
114
114
  switch (_a.label) {
115
115
  case 0:
116
116
  if (!(Object.prototype.toString.call(expression) === '[object Object]')) return [3 /*break*/, 2];
117
- return [4 /*yield*/, resolveCondition(expression, data, defaultResult)];
117
+ return [4 /*yield*/, resolveConditionAsync(expression, data, defaultResult)];
118
118
  case 1: return [2 /*return*/, _a.sent()];
119
119
  case 2: return [2 /*return*/, evalExpression(String(expression), data)];
120
120
  }
121
121
  });
122
122
  });
123
123
  }
124
+ /**
125
+ * 解析表达式(支持condition-builder)
126
+ * @param expression 表达式 or condition-builder对象
127
+ * @param data 上下文
128
+ * @returns
129
+ */
130
+ function evalExpressionWithConditionBuilder(expression, data, defaultResult) {
131
+ // 支持ConditionBuilder
132
+ if (Object.prototype.toString.call(expression) === '[object Object]') {
133
+ return resolveCondition(expression, data, defaultResult);
134
+ }
135
+ return evalExpression(String(expression), data);
136
+ }
124
137
  function evalFormula(expression, data) {
125
138
  var ast = memoParse(expression, {
126
139
  evalMode: false
@@ -168,4 +181,4 @@ function evalJS(js, data) {
168
181
  });
169
182
  });
170
183
 
171
- export { asyncFilter, evalExpression, evalExpressionWithConditionBuilder, evalJS, filter, registerTplEnginer, setCustomEvalExpression, setCustomEvalJs };
184
+ export { asyncFilter, evalExpression, evalExpressionWithConditionBuilder, evalExpressionWithConditionBuilderAsync, evalJS, filter, registerTplEnginer, setCustomEvalExpression, setCustomEvalJs };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -9,6 +9,7 @@ import { filter } from './tpl.js';
9
9
  import 'amis-formula';
10
10
  import isPlainObject from 'lodash/isPlainObject';
11
11
  import { isPureVariable } from './isPureVariable.js';
12
+ import '@rc-component/mini-decimal';
12
13
  import { resolveVariableAndFilter } from './resolveVariableAndFilter.js';
13
14
  import './filter.js';
14
15
  import memoize from 'lodash/memoize';
package/lib/Root.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -26,6 +26,7 @@ var mobx = require('mobx');
26
26
  require('amis-formula');
27
27
  require('moment');
28
28
  require('lodash/isPlainObject');
29
+ require('@rc-component/mini-decimal');
29
30
  var resolveVariableAndFilter = require('./utils/resolveVariableAndFilter.js');
30
31
  require('./utils/filter.js');
31
32
  var style = require('./utils/style.js');
@@ -177,9 +178,15 @@ var SchemaRenderer = /** @class */ (function (_super) {
177
178
  this.ref = ref;
178
179
  };
179
180
  SchemaRenderer.prototype.childRef = function (ref) {
181
+ var _this = this;
180
182
  while (ref && ref.getWrappedInstance) {
181
183
  ref = ref.getWrappedInstance();
182
184
  }
185
+ if (ref && !ref.props) {
186
+ Object.defineProperty(ref, 'props', {
187
+ get: function () { return _this.props; }
188
+ });
189
+ }
183
190
  this.cRef = ref;
184
191
  };
185
192
  SchemaRenderer.prototype.dispatchEvent = function (e, data, renderer // for didmount
@@ -262,7 +269,9 @@ var SchemaRenderer = /** @class */ (function (_super) {
262
269
  ? null
263
270
  : React__default["default"].isValidElement(schema.children)
264
271
  ? schema.children
265
- : schema.children(tslib.__assign(tslib.__assign(tslib.__assign({}, rest), exprProps), { $path: $path, $schema: schema, render: this.renderChild, forwardedRef: this.refFn, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent }));
272
+ : typeof schema.children !== 'function'
273
+ ? null
274
+ : schema.children(tslib.__assign(tslib.__assign(tslib.__assign({}, rest), exprProps), { $path: $path, $schema: schema, render: this.renderChild, forwardedRef: this.refFn, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent }));
266
275
  }
267
276
  else if (schema.component && reactIs.isValidElementType(schema.component)) {
268
277
  var isSFC = !(schema.component.prototype instanceof React__default["default"].Component);
@@ -317,10 +326,11 @@ var SchemaRenderer = /** @class */ (function (_super) {
317
326
  if (renderer.storeType) {
318
327
  exprProps = {};
319
328
  }
320
- var isClassComponent = (_e = Component.prototype) === null || _e === void 0 ? void 0 : _e.isReactComponent;
329
+ var supportRef = ((_e = Component.prototype) === null || _e === void 0 ? void 0 : _e.isReactComponent) ||
330
+ Component.$$typeof === Symbol.for('react.forward_ref');
321
331
  var props = tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign(tslib.__assign({}, theme.getRendererConfig(renderer.name)), restSchema), helper.chainEvents(rest, restSchema)), exprProps), {
322
332
  // value: defaultValue, // 备注: 此处并没有将value传递给渲染器
323
- defaultData: (_f = restSchema.defaultData) !== null && _f !== void 0 ? _f : defaultData, defaultValue: (_g = restSchema.defaultValue) !== null && _g !== void 0 ? _g : defaultValue, defaultActiveKey: defaultActiveKey, propKey: propKey, $path: $path, $schema: schema, ref: this.refFn, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent, mobileUI: schema.useMobileUI === false ? false : rest.mobileUI });
333
+ defaultData: (_f = restSchema.defaultData) !== null && _f !== void 0 ? _f : defaultData, defaultValue: (_g = restSchema.defaultValue) !== null && _g !== void 0 ? _g : defaultValue, defaultActiveKey: defaultActiveKey, propKey: propKey, $path: $path, $schema: schema, render: this.renderChild, rootStore: rootStore, statusStore: statusStore, dispatchEvent: this.dispatchEvent, mobileUI: schema.useMobileUI === false ? false : rest.mobileUI });
324
334
  // style 支持公式
325
335
  if (schema.style) {
326
336
  props.style = style.buildStyle(schema.style, detectData);
@@ -358,7 +368,7 @@ var SchemaRenderer = /** @class */ (function (_super) {
358
368
  finally { if (e_1) throw e_1.error; }
359
369
  }
360
370
  }
361
- var component = isClassComponent ? (_J$X_(Component, tslib.__assign({}, props, { ref: this.childRef }))) : (_J$X_(Component, tslib.__assign({}, props)));
371
+ var component = supportRef ? (_J$X_(Component, tslib.__assign({}, props, { ref: this.childRef }))) : (_J$X_(Component, tslib.__assign({}, props, { forwardedRef: this.childRef })));
362
372
  return this.props.env.enableAMISDebug ? (_J$X_(debug.DebugWrapper, { renderer: renderer }, component)) : (component);
363
373
  };
364
374
  SchemaRenderer.displayName = 'Renderer';
package/lib/Scoped.d.ts CHANGED
@@ -24,7 +24,7 @@ export interface ScopedComponentType extends React.Component<RendererProps> {
24
24
  focus?: () => void;
25
25
  doAction?: (action: ActionObject, data: RendererData, throwErrors?: boolean, args?: any) => void;
26
26
  receive?: (values: RendererData, subPath?: string, replace?: boolean) => void;
27
- reload?: (subPath?: string, query?: RendererData | null, ctx?: RendererData) => void;
27
+ reload?: (subPath?: string, query?: RendererData | null, ctx?: RendererData, silent?: boolean, replace?: boolean, args?: any) => void;
28
28
  context: any;
29
29
  setData?: (value?: object, replace?: boolean, index?: number) => void;
30
30
  }
package/lib/Scoped.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -17,6 +17,7 @@ require('moment');
17
17
  var object = require('./utils/object.js');
18
18
  var tokenize = require('./utils/tokenize.js');
19
19
  var isPureVariable = require('./utils/isPureVariable.js');
20
+ require('@rc-component/mini-decimal');
20
21
  var getVariable = require('./utils/getVariable.js');
21
22
  var dataMapping = require('./utils/dataMapping.js');
22
23
  require('./utils/filter.js');
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
package/lib/WithStore.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -19,6 +19,7 @@ require('amis-formula');
19
19
  require('moment');
20
20
  var object = require('./utils/object.js');
21
21
  var tokenize = require('./utils/tokenize.js');
22
+ require('@rc-component/mini-decimal');
22
23
  var dataMapping = require('./utils/dataMapping.js');
23
24
  require('./utils/filter.js');
24
25
  var WithRootStore = require('./WithRootStore.js');
@@ -210,11 +211,16 @@ function HocStoreFactory(renderer) {
210
211
  return render(region, node, tslib.__assign(tslib.__assign({ data: this.store.data, dataUpdatedAt: this.store.updatedAt }, subProps), { scope: this.store.data, store: this.store }));
211
212
  };
212
213
  StoreFactory.prototype.render = function () {
213
- var _a = this.props; _a.detectField; var rest = tslib.__rest(_a, ["detectField"]);
214
+ var _a;
215
+ var _b = this.props; _b.detectField; var rest = tslib.__rest(_b, ["detectField"]);
214
216
  if (this.state.hidden || this.state.visible === false) {
215
217
  return null;
216
218
  }
217
- return (_J$X_(Component, tslib.__assign({}, rest /* todo */, this.state, { ref: this.refFn, data: this.store.data, dataUpdatedAt: this.store.updatedAt, store: this.store, scope: this.store.data, render: this.renderChild })));
219
+ var refConfig = ((_a = Component.prototype) === null || _a === void 0 ? void 0 : _a.isReactComponent) ||
220
+ Component.$$typeof === Symbol.for('react.forward_ref')
221
+ ? { ref: this.refFn }
222
+ : { forwardedRef: this.refFn };
223
+ return (_J$X_(Component, tslib.__assign({}, rest /* todo */, this.state, refConfig, { data: this.store.data, dataUpdatedAt: this.store.updatedAt, store: this.store, scope: this.store.data, render: this.renderChild })));
218
224
  };
219
225
  StoreFactory.displayName = "WithStore(".concat(Component.displayName || Component.name, ")");
220
226
  StoreFactory.ComposedComponent = Component;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.4.1
2
+ * amis-core v6.5.0
3
3
  * Copyright 2018-2024 fex
4
4
  */
5
5
 
@@ -14,6 +14,7 @@ var tpl = require('../utils/tpl.js');
14
14
  require('amis-formula');
15
15
  require('moment');
16
16
  var object = require('../utils/object.js');
17
+ require('@rc-component/mini-decimal');
17
18
  var dataMapping = require('../utils/dataMapping.js');
18
19
  require('../utils/filter.js');
19
20
 
@@ -212,7 +213,7 @@ var runAction = function (actionInstrance, actionConfig, renderer, event) { retu
212
213
  expression = (_b = action.expression) !== null && _b !== void 0 ? _b : action.execOn;
213
214
  isStop = false;
214
215
  if (!expression) return [3 /*break*/, 2];
215
- return [4 /*yield*/, tpl.evalExpressionWithConditionBuilder(expression, mergeData, true)];
216
+ return [4 /*yield*/, tpl.evalExpressionWithConditionBuilderAsync(expression, mergeData, true)];
216
217
  case 1:
217
218
  isStop = !(_w.sent());
218
219
  _w.label = 2;
@@ -222,7 +223,7 @@ var runAction = function (actionInstrance, actionConfig, renderer, event) { retu
222
223
  }
223
224
  preventDefault = false;
224
225
  if (!action.preventDefault) return [3 /*break*/, 4];
225
- return [4 /*yield*/, tpl.evalExpressionWithConditionBuilder(action.preventDefault, mergeData, false)];
226
+ return [4 /*yield*/, tpl.evalExpressionWithConditionBuilderAsync(action.preventDefault, mergeData, false)];
226
227
  case 3:
227
228
  preventDefault = _w.sent();
228
229
  _w.label = 4;
@@ -293,7 +294,7 @@ var runAction = function (actionInstrance, actionConfig, renderer, event) { retu
293
294
  }
294
295
  stopPropagation = false;
295
296
  if (!action.stopPropagation) return [3 /*break*/, 7];
296
- return [4 /*yield*/, tpl.evalExpressionWithConditionBuilder(action.stopPropagation, mergeData, false)];
297
+ return [4 /*yield*/, tpl.evalExpressionWithConditionBuilderAsync(action.stopPropagation, mergeData, false)];
297
298
  case 6:
298
299
  stopPropagation = _w.sent();
299
300
  _w.label = 7;