amis-core 6.14.0-beta.8 → 7.0.0-next.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 (397) hide show
  1. package/esm/Root.d.ts +3 -2
  2. package/esm/Root.js +3 -2
  3. package/esm/RootRenderer.d.ts +18 -0
  4. package/esm/RootRenderer.js +8 -5
  5. package/esm/SchemaRenderer.js +7 -3
  6. package/esm/Scoped.js +1 -1
  7. package/esm/StatusScoped.js +1 -1
  8. package/esm/StyleManager.js +1 -1
  9. package/esm/TaggerWrapper.d.ts +14 -0
  10. package/esm/TaggerWrapper.js +57 -0
  11. package/esm/WithRootStore.d.ts +70 -358
  12. package/esm/WithRootStore.js +1 -1
  13. package/esm/WithStore.js +2 -3
  14. package/esm/actions/Action.d.ts +3 -17
  15. package/esm/actions/Action.js +2 -2
  16. package/esm/actions/AjaxAction.d.ts +1 -1
  17. package/esm/actions/AjaxAction.js +11 -11
  18. package/esm/actions/BreakAction.js +1 -1
  19. package/esm/actions/BroadcastAction.js +2 -2
  20. package/esm/actions/CmptAction.d.ts +1 -1
  21. package/esm/actions/CmptAction.js +41 -41
  22. package/esm/actions/ContinueAction.js +1 -1
  23. package/esm/actions/CopyAction.js +2 -2
  24. package/esm/actions/CustomAction.d.ts +2 -1
  25. package/esm/actions/CustomAction.js +3 -3
  26. package/esm/actions/DialogAction.d.ts +6 -6
  27. package/esm/actions/DialogAction.js +13 -13
  28. package/esm/actions/DrawerAction.d.ts +3 -3
  29. package/esm/actions/DrawerAction.js +11 -11
  30. package/esm/actions/EmailAction.js +2 -2
  31. package/esm/actions/EventAction.js +7 -7
  32. package/esm/actions/LinkAction.js +2 -2
  33. package/esm/actions/LoopAction.js +12 -12
  34. package/esm/actions/PageAction.js +2 -2
  35. package/esm/actions/ParallelAction.js +1 -1
  36. package/esm/actions/PrintAction.js +2 -2
  37. package/esm/actions/StatusAction.js +2 -2
  38. package/esm/actions/SwitchAction.js +1 -1
  39. package/esm/actions/ToastAction.js +2 -2
  40. package/esm/actions/WaitAction.js +2 -2
  41. package/esm/actions/index.d.ts +66 -0
  42. package/esm/components/Animations.d.ts +2 -2
  43. package/esm/components/Animations.js +2 -2
  44. package/esm/components/CustomStyle.js +1 -1
  45. package/esm/components/ErrorBoundary.js +1 -1
  46. package/esm/components/LazyComponent.d.ts +0 -1
  47. package/esm/components/LazyComponent.js +2 -3
  48. package/esm/components/Overlay.js +6 -13
  49. package/esm/components/PopOver.d.ts +0 -1
  50. package/esm/components/PopOver.js +6 -6
  51. package/esm/env.d.ts +24 -22
  52. package/esm/env.js +1 -1
  53. package/esm/envOverwrite.js +1 -1
  54. package/esm/factory.d.ts +3 -1
  55. package/esm/factory.js +10 -7
  56. package/esm/globalVar.js +1 -1
  57. package/esm/globalVarClientHandler.js +1 -1
  58. package/esm/globalVarDefaultValueHandler.js +1 -1
  59. package/esm/hooks/useEnvContext.js +1 -1
  60. package/esm/hooks/useRenderOptionsContext.js +1 -1
  61. package/esm/index.d.ts +6 -6
  62. package/esm/index.js +15 -9
  63. package/esm/locale.d.ts +22 -22
  64. package/esm/locale.js +6 -6
  65. package/esm/polyfills.js +1 -1
  66. package/esm/renderers/Form.d.ts +42 -18
  67. package/esm/renderers/Form.js +35 -29
  68. package/esm/renderers/Item.d.ts +52 -206
  69. package/esm/renderers/Item.js +20 -16
  70. package/esm/renderers/Options.d.ts +18 -17
  71. package/esm/renderers/Options.js +48 -49
  72. package/esm/renderers/Placeholder.js +1 -1
  73. package/esm/renderers/builtin.js +1 -1
  74. package/esm/renderers/register.js +1 -1
  75. package/esm/renderers/wrapControl.d.ts +36 -180
  76. package/esm/renderers/wrapControl.js +49 -50
  77. package/esm/schema.d.ts +1317 -0
  78. package/esm/store/app.d.ts +17 -17
  79. package/esm/store/app.js +1 -1
  80. package/esm/store/combo.d.ts +1504 -10289
  81. package/esm/store/combo.js +1 -1
  82. package/esm/store/crud.d.ts +22 -22
  83. package/esm/store/crud.js +9 -5
  84. package/esm/store/form.d.ts +571 -4232
  85. package/esm/store/form.js +1 -1
  86. package/esm/store/formItem.d.ts +48 -48
  87. package/esm/store/formItem.js +9 -4
  88. package/esm/store/iRenderer.d.ts +7 -7
  89. package/esm/store/iRenderer.js +6 -6
  90. package/esm/store/index.d.ts +15 -15
  91. package/esm/store/index.js +1 -1
  92. package/esm/store/list.d.ts +10 -10
  93. package/esm/store/list.js +1 -1
  94. package/esm/store/manager.d.ts +18 -18
  95. package/esm/store/manager.js +1 -1
  96. package/esm/store/modal.d.ts +16 -16
  97. package/esm/store/modal.js +1 -1
  98. package/esm/store/node.d.ts +1 -1
  99. package/esm/store/node.js +1 -1
  100. package/esm/store/pagination.d.ts +9 -9
  101. package/esm/store/pagination.js +1 -1
  102. package/esm/store/root.d.ts +20 -19
  103. package/esm/store/root.js +9 -3
  104. package/esm/store/service.d.ts +9 -9
  105. package/esm/store/service.js +1 -1
  106. package/esm/store/status.js +1 -1
  107. package/esm/store/table.d.ts +16 -11238
  108. package/esm/store/table.js +8 -8
  109. package/esm/store/table2.d.ts +20 -20
  110. package/esm/store/table2.js +4 -4
  111. package/esm/theme.d.ts +2 -2
  112. package/esm/theme.js +5 -5
  113. package/esm/types.d.ts +21 -352
  114. package/esm/utils/Animation.js +1 -1
  115. package/esm/utils/ColorScale.js +1 -1
  116. package/esm/utils/DataSchema.js +1 -1
  117. package/esm/utils/DataScope.js +1 -1
  118. package/esm/utils/RootClose.js +3 -3
  119. package/esm/utils/SimpleMap.js +1 -1
  120. package/esm/utils/animations.d.ts +2 -27
  121. package/esm/utils/animations.js +1 -1
  122. package/esm/utils/api.d.ts +1 -1
  123. package/esm/utils/api.js +2 -2
  124. package/esm/utils/arraySlice.js +1 -1
  125. package/esm/utils/attachmentAdpator.js +1 -1
  126. package/esm/utils/autobind.js +1 -1
  127. package/esm/utils/browser.js +1 -1
  128. package/esm/utils/columnsSplit.js +1 -1
  129. package/esm/utils/concatData.js +1 -1
  130. package/esm/utils/dataMapping.js +1 -1
  131. package/esm/utils/date.js +1 -1
  132. package/esm/utils/debug.js +6 -5
  133. package/esm/utils/decodeEntity.js +1 -1
  134. package/esm/utils/dom.js +4 -5
  135. package/esm/utils/errors.js +1 -1
  136. package/esm/utils/escapeHtml.js +3 -4
  137. package/esm/utils/filter-schema.js +1 -1
  138. package/esm/utils/filter.js +1 -1
  139. package/esm/utils/findDomCompat.d.ts +16 -0
  140. package/esm/utils/findDomCompat.js +253 -0
  141. package/esm/utils/formatDuration.js +1 -1
  142. package/esm/utils/formula.js +2 -2
  143. package/esm/utils/getPageId.js +1 -1
  144. package/esm/utils/getVariable.js +1 -1
  145. package/esm/utils/grammar.js +1 -1
  146. package/esm/utils/handleAction.d.ts +0 -1
  147. package/esm/utils/handleAction.js +1 -1
  148. package/esm/utils/helper.d.ts +5 -4
  149. package/esm/utils/helper.js +2 -2
  150. package/esm/utils/highlight.js +1 -1
  151. package/esm/utils/icon.js +1 -1
  152. package/esm/utils/image.d.ts +0 -1
  153. package/esm/utils/image.js +1 -1
  154. package/esm/utils/index.d.ts +1 -0
  155. package/esm/utils/index.js +2 -2
  156. package/esm/utils/isPureVariable.js +1 -1
  157. package/esm/utils/json-schema-2-amis-schema.js +1 -1
  158. package/esm/utils/keyToPath.js +1 -1
  159. package/esm/utils/labelToString.js +1 -1
  160. package/esm/utils/loopTooMuch.js +1 -1
  161. package/esm/utils/makeSorter.js +1 -1
  162. package/esm/utils/math.js +1 -1
  163. package/esm/utils/memoryParse.js +1 -1
  164. package/esm/utils/normalizeLink.js +1 -1
  165. package/esm/utils/normalizeOptions.js +1 -1
  166. package/esm/utils/object.js +1 -1
  167. package/esm/utils/offset.js +1 -1
  168. package/esm/utils/offsetParent.js +1 -1
  169. package/esm/utils/optionValueCompare.js +1 -1
  170. package/esm/utils/position.js +1 -1
  171. package/esm/utils/prettyBytes.js +1 -1
  172. package/esm/utils/printElement.js +1 -1
  173. package/esm/utils/renderer-event.d.ts +4 -5
  174. package/esm/utils/renderer-event.js +10 -10
  175. package/esm/utils/replaceText.js +1 -1
  176. package/esm/utils/resize-sensor.js +1 -1
  177. package/esm/utils/resolveCondition.d.ts +1 -1
  178. package/esm/utils/resolveCondition.js +8 -8
  179. package/esm/utils/resolveVariable.js +1 -1
  180. package/esm/utils/resolveVariableAndFilter.js +1 -1
  181. package/esm/utils/resolveVariableAndFilterForAsync.js +12 -8
  182. package/esm/utils/scrollPosition.js +1 -1
  183. package/esm/utils/string2regExp.js +1 -1
  184. package/esm/utils/stripNumber.js +1 -1
  185. package/esm/utils/style-helper.js +1 -1
  186. package/esm/utils/style.js +1 -1
  187. package/esm/utils/toNumber.js +1 -1
  188. package/esm/utils/tokenize.js +1 -1
  189. package/esm/utils/tpl-builtin.d.ts +1 -1
  190. package/esm/utils/tpl-builtin.js +9 -5
  191. package/esm/utils/tpl-lodash.js +1 -1
  192. package/esm/utils/tpl.d.ts +1 -1
  193. package/esm/utils/tpl.js +6 -2
  194. package/esm/utils/uncontrollable.d.ts +0 -1
  195. package/esm/utils/uncontrollable.js +1 -1
  196. package/esm/utils/validateId.js +1 -1
  197. package/esm/utils/validations.js +5 -1
  198. package/esm/utils/visitedCache.js +1 -1
  199. package/lib/Root.d.ts +3 -2
  200. package/lib/Root.js +3 -1
  201. package/lib/RootRenderer.d.ts +18 -0
  202. package/lib/RootRenderer.js +8 -5
  203. package/lib/SchemaRenderer.js +6 -2
  204. package/lib/Scoped.js +1 -1
  205. package/lib/StatusScoped.js +1 -1
  206. package/lib/StyleManager.js +1 -1
  207. package/lib/TaggerWrapper.d.ts +14 -0
  208. package/lib/TaggerWrapper.js +66 -0
  209. package/lib/WithRootStore.d.ts +70 -358
  210. package/lib/WithRootStore.js +1 -1
  211. package/lib/WithStore.js +2 -3
  212. package/lib/actions/Action.d.ts +3 -17
  213. package/lib/actions/Action.js +1 -1
  214. package/lib/actions/AjaxAction.d.ts +1 -1
  215. package/lib/actions/AjaxAction.js +11 -11
  216. package/lib/actions/BreakAction.js +1 -1
  217. package/lib/actions/BroadcastAction.js +2 -2
  218. package/lib/actions/CmptAction.d.ts +1 -1
  219. package/lib/actions/CmptAction.js +41 -41
  220. package/lib/actions/ContinueAction.js +1 -1
  221. package/lib/actions/CopyAction.js +2 -2
  222. package/lib/actions/CustomAction.d.ts +2 -1
  223. package/lib/actions/CustomAction.js +2 -2
  224. package/lib/actions/DialogAction.d.ts +6 -6
  225. package/lib/actions/DialogAction.js +12 -12
  226. package/lib/actions/DrawerAction.d.ts +3 -3
  227. package/lib/actions/DrawerAction.js +10 -10
  228. package/lib/actions/EmailAction.js +2 -2
  229. package/lib/actions/EventAction.js +6 -6
  230. package/lib/actions/LinkAction.js +2 -2
  231. package/lib/actions/LoopAction.js +12 -12
  232. package/lib/actions/PageAction.js +2 -2
  233. package/lib/actions/ParallelAction.js +1 -1
  234. package/lib/actions/PrintAction.js +2 -2
  235. package/lib/actions/StatusAction.js +2 -2
  236. package/lib/actions/SwitchAction.js +1 -1
  237. package/lib/actions/ToastAction.js +2 -2
  238. package/lib/actions/WaitAction.js +2 -2
  239. package/lib/actions/index.d.ts +66 -0
  240. package/lib/components/Animations.d.ts +2 -2
  241. package/lib/components/Animations.js +1 -1
  242. package/lib/components/CustomStyle.js +1 -1
  243. package/lib/components/ErrorBoundary.js +1 -1
  244. package/lib/components/LazyComponent.d.ts +0 -1
  245. package/lib/components/LazyComponent.js +2 -3
  246. package/lib/components/Overlay.js +6 -14
  247. package/lib/components/PopOver.d.ts +0 -1
  248. package/lib/components/PopOver.js +5 -5
  249. package/lib/env.d.ts +24 -22
  250. package/lib/env.js +1 -1
  251. package/lib/envOverwrite.js +1 -1
  252. package/lib/factory.d.ts +3 -1
  253. package/lib/factory.js +10 -7
  254. package/lib/globalVar.js +1 -1
  255. package/lib/globalVarClientHandler.js +1 -1
  256. package/lib/globalVarDefaultValueHandler.js +1 -1
  257. package/lib/hooks/useEnvContext.js +1 -1
  258. package/lib/hooks/useRenderOptionsContext.js +1 -1
  259. package/lib/index.d.ts +6 -6
  260. package/lib/index.js +16 -7
  261. package/lib/locale.d.ts +22 -22
  262. package/lib/locale.js +6 -6
  263. package/lib/polyfills.js +1 -1
  264. package/lib/renderers/Form.d.ts +42 -18
  265. package/lib/renderers/Form.js +35 -29
  266. package/lib/renderers/Item.d.ts +52 -206
  267. package/lib/renderers/Item.js +19 -15
  268. package/lib/renderers/Options.d.ts +18 -17
  269. package/lib/renderers/Options.js +48 -49
  270. package/lib/renderers/Placeholder.js +1 -1
  271. package/lib/renderers/builtin.js +1 -1
  272. package/lib/renderers/register.js +1 -1
  273. package/lib/renderers/wrapControl.d.ts +36 -180
  274. package/lib/renderers/wrapControl.js +49 -50
  275. package/lib/schema.d.ts +1317 -0
  276. package/lib/store/app.d.ts +17 -17
  277. package/lib/store/app.js +1 -1
  278. package/lib/store/combo.d.ts +1504 -10289
  279. package/lib/store/combo.js +1 -1
  280. package/lib/store/crud.d.ts +22 -22
  281. package/lib/store/crud.js +8 -4
  282. package/lib/store/form.d.ts +571 -4232
  283. package/lib/store/form.js +1 -1
  284. package/lib/store/formItem.d.ts +48 -48
  285. package/lib/store/formItem.js +9 -4
  286. package/lib/store/iRenderer.d.ts +7 -7
  287. package/lib/store/iRenderer.js +6 -6
  288. package/lib/store/index.d.ts +15 -15
  289. package/lib/store/index.js +1 -1
  290. package/lib/store/list.d.ts +10 -10
  291. package/lib/store/list.js +1 -1
  292. package/lib/store/manager.d.ts +18 -18
  293. package/lib/store/manager.js +1 -1
  294. package/lib/store/modal.d.ts +16 -16
  295. package/lib/store/modal.js +1 -1
  296. package/lib/store/node.d.ts +1 -1
  297. package/lib/store/node.js +1 -1
  298. package/lib/store/pagination.d.ts +9 -9
  299. package/lib/store/pagination.js +1 -1
  300. package/lib/store/root.d.ts +20 -19
  301. package/lib/store/root.js +9 -3
  302. package/lib/store/service.d.ts +9 -9
  303. package/lib/store/service.js +1 -1
  304. package/lib/store/status.js +1 -1
  305. package/lib/store/table.d.ts +16 -11238
  306. package/lib/store/table.js +8 -8
  307. package/lib/store/table2.d.ts +20 -20
  308. package/lib/store/table2.js +4 -4
  309. package/lib/theme.d.ts +2 -2
  310. package/lib/theme.js +5 -5
  311. package/lib/types.d.ts +21 -352
  312. package/lib/utils/Animation.js +1 -1
  313. package/lib/utils/ColorScale.js +1 -1
  314. package/lib/utils/DataSchema.js +1 -1
  315. package/lib/utils/DataScope.js +1 -1
  316. package/lib/utils/RootClose.js +3 -3
  317. package/lib/utils/SimpleMap.js +1 -1
  318. package/lib/utils/animations.d.ts +2 -27
  319. package/lib/utils/animations.js +1 -1
  320. package/lib/utils/api.d.ts +1 -1
  321. package/lib/utils/api.js +2 -2
  322. package/lib/utils/arraySlice.js +1 -1
  323. package/lib/utils/attachmentAdpator.js +1 -1
  324. package/lib/utils/autobind.js +1 -1
  325. package/lib/utils/browser.js +1 -1
  326. package/lib/utils/columnsSplit.js +1 -1
  327. package/lib/utils/concatData.js +1 -1
  328. package/lib/utils/dataMapping.js +1 -1
  329. package/lib/utils/date.js +1 -1
  330. package/lib/utils/debug.js +7 -6
  331. package/lib/utils/decodeEntity.js +1 -1
  332. package/lib/utils/dom.js +4 -9
  333. package/lib/utils/errors.js +1 -1
  334. package/lib/utils/escapeHtml.js +3 -4
  335. package/lib/utils/filter-schema.js +1 -1
  336. package/lib/utils/filter.js +1 -1
  337. package/lib/utils/findDomCompat.d.ts +16 -0
  338. package/lib/utils/findDomCompat.js +262 -0
  339. package/lib/utils/formatDuration.js +1 -1
  340. package/lib/utils/formula.js +2 -2
  341. package/lib/utils/getPageId.js +1 -1
  342. package/lib/utils/getVariable.js +1 -1
  343. package/lib/utils/grammar.js +1 -1
  344. package/lib/utils/handleAction.d.ts +0 -1
  345. package/lib/utils/handleAction.js +1 -1
  346. package/lib/utils/helper.d.ts +5 -4
  347. package/lib/utils/helper.js +2 -2
  348. package/lib/utils/highlight.js +1 -1
  349. package/lib/utils/icon.js +1 -1
  350. package/lib/utils/image.d.ts +0 -1
  351. package/lib/utils/image.js +1 -1
  352. package/lib/utils/index.d.ts +1 -0
  353. package/lib/utils/index.js +1 -1
  354. package/lib/utils/isPureVariable.js +1 -1
  355. package/lib/utils/json-schema-2-amis-schema.js +1 -1
  356. package/lib/utils/keyToPath.js +1 -1
  357. package/lib/utils/labelToString.js +1 -1
  358. package/lib/utils/loopTooMuch.js +1 -1
  359. package/lib/utils/makeSorter.js +1 -1
  360. package/lib/utils/math.js +1 -1
  361. package/lib/utils/memoryParse.js +1 -1
  362. package/lib/utils/normalizeLink.js +1 -1
  363. package/lib/utils/normalizeOptions.js +1 -1
  364. package/lib/utils/object.js +1 -1
  365. package/lib/utils/offset.js +1 -1
  366. package/lib/utils/offsetParent.js +1 -1
  367. package/lib/utils/optionValueCompare.js +1 -1
  368. package/lib/utils/position.js +1 -1
  369. package/lib/utils/prettyBytes.js +1 -1
  370. package/lib/utils/printElement.js +1 -1
  371. package/lib/utils/renderer-event.d.ts +4 -5
  372. package/lib/utils/renderer-event.js +10 -10
  373. package/lib/utils/replaceText.js +1 -1
  374. package/lib/utils/resize-sensor.js +1 -1
  375. package/lib/utils/resolveCondition.d.ts +1 -1
  376. package/lib/utils/resolveCondition.js +8 -8
  377. package/lib/utils/resolveVariable.js +1 -1
  378. package/lib/utils/resolveVariableAndFilter.js +1 -1
  379. package/lib/utils/resolveVariableAndFilterForAsync.js +11 -7
  380. package/lib/utils/scrollPosition.js +1 -1
  381. package/lib/utils/string2regExp.js +1 -1
  382. package/lib/utils/stripNumber.js +1 -1
  383. package/lib/utils/style-helper.js +1 -1
  384. package/lib/utils/style.js +1 -1
  385. package/lib/utils/toNumber.js +1 -1
  386. package/lib/utils/tokenize.js +1 -1
  387. package/lib/utils/tpl-builtin.d.ts +1 -1
  388. package/lib/utils/tpl-builtin.js +8 -4
  389. package/lib/utils/tpl-lodash.js +1 -1
  390. package/lib/utils/tpl.d.ts +1 -1
  391. package/lib/utils/tpl.js +6 -2
  392. package/lib/utils/uncontrollable.d.ts +0 -1
  393. package/lib/utils/uncontrollable.js +1 -1
  394. package/lib/utils/validateId.js +1 -1
  395. package/lib/utils/validations.js +5 -1
  396. package/lib/utils/visitedCache.js +1 -1
  397. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1091,7 +1091,7 @@ function qsparse(data, options) {
1091
1091
  if (options === void 0) { options = {
1092
1092
  arrayFormat: 'indices',
1093
1093
  encodeValuesOnly: true,
1094
- depth: 1000,
1094
+ depth: 1000, // 默认是 5, 所以condition-builder只要来个条件组就会导致报错
1095
1095
  arrayLimit: 1000 /** array元素数量超出限制,会被自动转化为object格式,默认值1000 */
1096
1096
  }; }
1097
1097
  return qs__default["default"].parse(data, options);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/lib/utils/icon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -2,7 +2,6 @@
2
2
  * @file image 相关的工具
3
3
  * @param url
4
4
  */
5
- /// <reference types="lodash" />
6
5
  /**
7
6
  * 将 url 转成 dataurl
8
7
  * @param url
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -61,5 +61,6 @@ export * from './resolveCondition';
61
61
  export * from './arraySlice';
62
62
  export * from './math';
63
63
  export * from './memoryParse';
64
+ export * from './findDomCompat';
64
65
  import animation from './Animation';
65
66
  export { animation };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
package/lib/utils/math.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,9 +1,8 @@
1
- /// <reference types="react" />
2
- import { ListenerAction } from '../actions/Action';
3
1
  import { RendererProps } from '../factory';
4
2
  import { IScopedContext } from '../Scoped';
5
3
  import { TreeItem } from './helper';
6
4
  import type { PlainObject } from '../types';
5
+ import { AMISAction } from '../schema';
7
6
  export interface debounceConfig {
8
7
  maxWait?: number;
9
8
  wait?: number;
@@ -19,14 +18,14 @@ export interface EventListeners {
19
18
  debounce?: debounceConfig;
20
19
  track?: trackConfig;
21
20
  weight?: number;
22
- actions: ListenerAction[];
21
+ actions: AMISAction[];
23
22
  };
24
23
  }
25
24
  export interface OnEventProps {
26
25
  onEvent?: {
27
26
  [propName: string]: {
28
27
  weight?: number;
29
- actions: ListenerAction[];
28
+ actions: AMISAction[];
30
29
  debounce?: debounceConfig;
31
30
  track?: trackConfig;
32
31
  };
@@ -38,7 +37,7 @@ export interface RendererEventListener {
38
37
  weight: number;
39
38
  debounce: debounceConfig | null;
40
39
  track: trackConfig | null;
41
- actions: ListenerAction[];
40
+ actions: AMISAction[];
42
41
  executing?: boolean;
43
42
  debounceInstance?: any;
44
43
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -214,11 +214,11 @@ var bindGlobalEvent = function (eventName, callback) {
214
214
  };
215
215
  // 触发事件
216
216
  function dispatchEvent(e, renderer, scoped, data, broadcast) {
217
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
218
217
  return tslib.__awaiter(this, void 0, void 0, function () {
219
218
  var unbindEvent, eventName, from, eventConfig, rendererEvent, listeners, executedCount, checkExecuted, _loop_3, listeners_1, listeners_1_1, listener, state_2, e_3_1;
220
- var e_3, _l;
219
+ var e_3, _a;
221
220
  var _this = this;
221
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
222
222
  return tslib.__generator(this, function (_m) {
223
223
  switch (_m.label) {
224
224
  case 0:
@@ -226,10 +226,10 @@ function dispatchEvent(e, renderer, scoped, data, broadcast) {
226
226
  eventName = typeof e === 'string' ? e : e.type;
227
227
  from = (renderer === null || renderer === void 0 ? void 0 : renderer.props.id) || (renderer === null || renderer === void 0 ? void 0 : renderer.props.name) || '';
228
228
  debug.debug('event', "dispatch `".concat(eventName, "` from \u300C").concat((renderer === null || renderer === void 0 ? void 0 : renderer.props.type) || 'unknown').concat(from ? "#".concat(from) : '', "\u300D"), data);
229
- (_c = (_b = (_a = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _a === void 0 ? void 0 : _a.env) === null || _b === void 0 ? void 0 : _b.beforeDispatchEvent) === null || _c === void 0 ? void 0 : _c.call(_b, e, renderer, scoped, data, broadcast);
230
- broadcast && ((_e = (_d = renderer.props).onBroadcast) === null || _e === void 0 ? void 0 : _e.call(_d, e, broadcast, data));
229
+ (_d = (_c = (_b = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _b === void 0 ? void 0 : _b.env) === null || _c === void 0 ? void 0 : _c.beforeDispatchEvent) === null || _d === void 0 ? void 0 : _d.call(_c, e, renderer, scoped, data, broadcast);
230
+ broadcast && ((_f = (_e = renderer.props).onBroadcast) === null || _f === void 0 ? void 0 : _f.call(_e, e, broadcast, data));
231
231
  if (!broadcast) {
232
- eventConfig = (_g = (_f = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _f === void 0 ? void 0 : _f.onEvent) === null || _g === void 0 ? void 0 : _g[eventName];
232
+ eventConfig = (_h = (_g = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _g === void 0 ? void 0 : _g.onEvent) === null || _h === void 0 ? void 0 : _h[eventName];
233
233
  if (!eventConfig) {
234
234
  // 没命中也没关系
235
235
  return [2 /*return*/, Promise.resolve()];
@@ -242,7 +242,7 @@ function dispatchEvent(e, renderer, scoped, data, broadcast) {
242
242
  }
243
243
  rendererEvent = broadcast ||
244
244
  createRendererEvent(eventName, {
245
- env: (_h = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _h === void 0 ? void 0 : _h.env,
245
+ env: (_j = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _j === void 0 ? void 0 : _j.env,
246
246
  nativeEvent: e,
247
247
  data: data,
248
248
  scoped: scoped
@@ -306,7 +306,7 @@ function dispatchEvent(e, renderer, scoped, data, broadcast) {
306
306
  case 3:
307
307
  if (listener === null || listener === void 0 ? void 0 : listener.track) {
308
308
  _t = listener.track, trackId = _t.id, trackName = _t.name;
309
- (_k = (_j = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _j === void 0 ? void 0 : _j.env) === null || _k === void 0 ? void 0 : _k.tracker({
309
+ (_l = (_k = renderer === null || renderer === void 0 ? void 0 : renderer.props) === null || _k === void 0 ? void 0 : _k.env) === null || _l === void 0 ? void 0 : _l.tracker({
310
310
  eventType: listener.type,
311
311
  eventData: {
312
312
  trackId: trackId,
@@ -346,7 +346,7 @@ function dispatchEvent(e, renderer, scoped, data, broadcast) {
346
346
  return [3 /*break*/, 8];
347
347
  case 7:
348
348
  try {
349
- if (listeners_1_1 && !listeners_1_1.done && (_l = listeners_1.return)) _l.call(listeners_1);
349
+ if (listeners_1_1 && !listeners_1_1.done && (_a = listeners_1.return)) _a.call(listeners_1);
350
350
  }
351
351
  finally { if (e_3) throw e_3.error; }
352
352
  return [7 /*endfinally*/];
@@ -356,9 +356,9 @@ function dispatchEvent(e, renderer, scoped, data, broadcast) {
356
356
  });
357
357
  }
358
358
  function dispatchGlobalEventForRenderer(eventName, renderer, scoped, data, broadcast) {
359
- var _a, _b, _c, _d, _e;
360
359
  return tslib.__awaiter(this, void 0, void 0, function () {
361
360
  var from;
361
+ var _a, _b, _c, _d, _e;
362
362
  return tslib.__generator(this, function (_f) {
363
363
  from = (renderer === null || renderer === void 0 ? void 0 : renderer.props.id) || (renderer === null || renderer === void 0 ? void 0 : renderer.props.name) || '';
364
364
  debug.debug('event', "dispatch `".concat(eventName, "` from \u300C").concat((renderer === null || renderer === void 0 ? void 0 : renderer.props.type) || 'unknown').concat(from ? "#".concat(from) : '', "\u300D"), data);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -2,6 +2,6 @@ export declare function resolveConditionAsync(conditions: any, data: any, defaul
2
2
  export declare function resolveCondition(conditions: any, data: any, defaultResult?: boolean): boolean | Promise<boolean>;
3
3
  export declare function registerConditionComputer(op: string, func: (left: any, right: any, fieldType?: string) => boolean, fieldType?: string): void;
4
4
  export declare function getConditionComputers(): {
5
- [op: string]: (left: any, right: any, fieldType?: string | undefined) => boolean;
5
+ [op: string]: (left: any, right: any, fieldType?: string) => boolean;
6
6
  };
7
7
  export declare function setConditionComputeErrorHandler(fn: (conditions: any, data: any, defaultResult: boolean) => boolean | Promise<boolean>): void;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -37,10 +37,10 @@ var capitalize__default = /*#__PURE__*/_interopDefaultLegacy(capitalize);
37
37
  var conditionResolverMap = {};
38
38
  var DEFAULT_RESULT = true;
39
39
  var conditionComputeErrorHandler;
40
- function resolveConditionAsync(conditions, data, defaultResult) {
41
- if (defaultResult === void 0) { defaultResult = true; }
42
- return tslib.__awaiter(this, void 0, void 0, function () {
40
+ function resolveConditionAsync(conditions_1, data_1) {
41
+ return tslib.__awaiter(this, arguments, void 0, function (conditions, data, defaultResult) {
43
42
  var e_1;
43
+ if (defaultResult === void 0) { defaultResult = true; }
44
44
  return tslib.__generator(this, function (_a) {
45
45
  switch (_a.label) {
46
46
  case 0:
@@ -85,10 +85,10 @@ function resolveCondition(conditions, data, defaultResult) {
85
85
  return defaultResult;
86
86
  }
87
87
  }
88
- function computeConditionsAsync(conditions, conjunction, data) {
89
- if (conjunction === void 0) { conjunction = 'and'; }
90
- return tslib.__awaiter(this, void 0, void 0, function () {
88
+ function computeConditionsAsync(conditions_1) {
89
+ return tslib.__awaiter(this, arguments, void 0, function (conditions, conjunction, data) {
91
90
  var computeResult, index, len, item, result, _a;
91
+ if (conjunction === void 0) { conjunction = 'and'; }
92
92
  return tslib.__generator(this, function (_b) {
93
93
  switch (_b.label) {
94
94
  case 0:
@@ -140,9 +140,9 @@ function computeConditions(conditions, conjunction, data) {
140
140
  return computeResult;
141
141
  }
142
142
  function computeConditionAsync(rule, index, data) {
143
- var _a;
144
143
  return tslib.__awaiter(this, void 0, void 0, function () {
145
144
  var leftValue, rightValue, func;
145
+ var _a;
146
146
  return tslib.__generator(this, function (_b) {
147
147
  switch (_b.label) {
148
148
  case 0:
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -19,13 +19,17 @@ var formulaEvalErrorHandler;
19
19
  function setFormulaEvalErrorHandler(fn) {
20
20
  formulaEvalErrorHandler = fn;
21
21
  }
22
- var resolveVariableAndFilterForAsync = function (path, data, defaultFilter, fallbackValue, skipFormulaEvalErrorHandler) {
23
- if (data === void 0) { data = {}; }
24
- if (defaultFilter === void 0) { defaultFilter = '| html'; }
25
- if (fallbackValue === void 0) { fallbackValue = function (value) { return value; }; }
26
- if (skipFormulaEvalErrorHandler === void 0) { skipFormulaEvalErrorHandler = false; }
27
- return tslib.__awaiter(void 0, void 0, void 0, function () {
22
+ var resolveVariableAndFilterForAsync = function (path_1) {
23
+ var args_1 = [];
24
+ for (var _i = 1; _i < arguments.length; _i++) {
25
+ args_1[_i - 1] = arguments[_i];
26
+ }
27
+ return tslib.__awaiter(void 0, tslib.__spreadArray([path_1], tslib.__read(args_1), false), void 0, function (path, data, defaultFilter, fallbackValue, skipFormulaEvalErrorHandler) {
28
28
  var ast, ret, e_1;
29
+ if (data === void 0) { data = {}; }
30
+ if (defaultFilter === void 0) { defaultFilter = '| html'; }
31
+ if (fallbackValue === void 0) { fallbackValue = function (value) { return value; }; }
32
+ if (skipFormulaEvalErrorHandler === void 0) { skipFormulaEvalErrorHandler = false; }
29
33
  return tslib.__generator(this, function (_a) {
30
34
  switch (_a.label) {
31
35
  case 0:
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -17,4 +17,4 @@ export { prettyBytes, escapeHtml, formatDuration, filterDate, relativeValueRe, p
17
17
  export declare function register(): Enginer & {
18
18
  name: string;
19
19
  };
20
- export declare const testResolveVariableAndFilter: (path?: string | undefined, data?: object, defaultFilter?: string, fallbackValue?: (value: any) => any) => any;
20
+ export declare const testResolveVariableAndFilter: (path?: string, data?: object, defaultFilter?: string, fallbackValue?: (value: any) => any) => any;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -61,9 +61,13 @@ function register() {
61
61
  return "error: ".concat(e.message);
62
62
  }
63
63
  },
64
- asyncCompile: function (str, data, defaultFilter) {
65
- if (defaultFilter === void 0) { defaultFilter = '| html'; }
66
- return tslib.__awaiter(_this, void 0, void 0, function () {
64
+ asyncCompile: function (str_1, data_1) {
65
+ var args_1 = [];
66
+ for (var _i = 2; _i < arguments.length; _i++) {
67
+ args_1[_i - 2] = arguments[_i];
68
+ }
69
+ return tslib.__awaiter(_this, tslib.__spreadArray([str_1, data_1], tslib.__read(args_1), false), void 0, function (str, data, defaultFilter) {
70
+ if (defaultFilter === void 0) { defaultFilter = '| html'; }
67
71
  return tslib.__generator(this, function (_a) {
68
72
  try {
69
73
  return [2 /*return*/, resolveVariableAndFilterForAsync.resolveVariableAndFilterForAsync(str, data, defaultFilter)];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -22,6 +22,6 @@ export declare function evalExpressionWithConditionBuilderAsync(expression: any,
22
22
  * @param data 上下文
23
23
  * @returns
24
24
  */
25
- export declare function evalExpressionWithConditionBuilder(expression: any, data?: object, defaultResult?: boolean): boolean | Promise<boolean>;
25
+ export declare function evalExpressionWithConditionBuilder(expression: any, data?: object, defaultResult?: boolean): boolean;
26
26
  export declare function setCustomEvalJs(fn: (expression: string, data?: any) => any): void;
27
27
  export declare function evalJS(js: string, data: object): any;
package/lib/utils/tpl.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -138,7 +138,11 @@ function evalExpressionWithConditionBuilderAsync(expression, data, defaultResult
138
138
  function evalExpressionWithConditionBuilder(expression, data, defaultResult) {
139
139
  // 支持ConditionBuilder
140
140
  if (Object.prototype.toString.call(expression) === '[object Object]') {
141
- return resolveCondition.resolveCondition(expression, data, defaultResult);
141
+ var ret = resolveCondition.resolveCondition(expression, data, defaultResult);
142
+ if (ret === null || ret === void 0 ? void 0 : ret.then) {
143
+ return false;
144
+ }
145
+ return !!ret;
142
146
  }
143
147
  return evalExpression(String(expression), data);
144
148
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare function uncontrollable<T extends React.ComponentType<any>, P extends {
3
2
  [propName: string]: any;
4
3
  }>(arg: T, config: P, mapping?: Array<string>): T;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5
 
@@ -245,6 +245,9 @@ var validations = {
245
245
  notEmptyString: function (values, value) {
246
246
  return !isExisty(value) || !(String(value) && String(value).trim() === '');
247
247
  },
248
+ notEmpty: function (values, value) {
249
+ return !isExisty(value) || !(String(value) && String(value).trim() === '');
250
+ },
248
251
  matchRegexp1: function (values, value, regexp) {
249
252
  return validations.matchRegexp(values, value, regexp);
250
253
  },
@@ -349,6 +352,7 @@ var validateMessages = {
349
352
  isJson: 'validate.isJson',
350
353
  isLength: 'validate.isLength',
351
354
  notEmptyString: 'validate.notEmptyString',
355
+ notEmpty: 'validate.notEmptyString',
352
356
  equalsField: 'validate.equalsField',
353
357
  equals: 'validate.equals',
354
358
  isPhoneNumber: 'validate.isPhoneNumber',
@@ -1,5 +1,5 @@
1
1
  /**
2
- * amis-core v6.14.0-beta.8
2
+ * amis-core v7.0.0-next.0
3
3
  * Copyright 2018-2025 fex
4
4
  */
5
5