amis 1.5.7 → 1.6.1

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 (533) hide show
  1. package/.husky/pre-commit +1 -1
  2. package/README.md +1 -0
  3. package/lib/RootRenderer.d.ts +2 -0
  4. package/lib/RootRenderer.js +19 -1
  5. package/lib/RootRenderer.js.map +2 -2
  6. package/lib/Schema.d.ts +3 -2
  7. package/lib/Schema.js.map +1 -1
  8. package/lib/SchemaRenderer.js +52 -1
  9. package/lib/SchemaRenderer.js.map +2 -2
  10. package/lib/Scoped.d.ts +2 -0
  11. package/lib/Scoped.js +27 -1
  12. package/lib/Scoped.js.map +2 -2
  13. package/lib/actions/Action.d.ts +33 -0
  14. package/lib/actions/Action.js +100 -0
  15. package/lib/actions/Action.js.map +13 -0
  16. package/lib/actions/AjaxAction.d.ts +14 -0
  17. package/lib/actions/AjaxAction.js +68 -0
  18. package/lib/actions/AjaxAction.js.map +13 -0
  19. package/lib/actions/BreakAction.d.ts +12 -0
  20. package/lib/actions/BreakAction.js +28 -0
  21. package/lib/actions/BreakAction.js.map +13 -0
  22. package/lib/actions/BroadcastAction.d.ts +12 -0
  23. package/lib/actions/BroadcastAction.js +40 -0
  24. package/lib/actions/BroadcastAction.js.map +13 -0
  25. package/lib/actions/CmptAction.d.ts +12 -0
  26. package/lib/actions/CmptAction.js +40 -0
  27. package/lib/actions/CmptAction.js.map +13 -0
  28. package/lib/actions/ContinueAction.d.ts +12 -0
  29. package/lib/actions/ContinueAction.js +28 -0
  30. package/lib/actions/ContinueAction.js.map +13 -0
  31. package/lib/actions/CopyAction.d.ts +12 -0
  32. package/lib/actions/CopyAction.js +35 -0
  33. package/lib/actions/CopyAction.js.map +13 -0
  34. package/lib/actions/CustomAction.d.ts +12 -0
  35. package/lib/actions/CustomAction.js +43 -0
  36. package/lib/actions/CustomAction.js.map +13 -0
  37. package/lib/actions/DialogAction.d.ts +12 -0
  38. package/lib/actions/DialogAction.js +31 -0
  39. package/lib/actions/DialogAction.js.map +13 -0
  40. package/lib/actions/DrawerAction.d.ts +12 -0
  41. package/lib/actions/DrawerAction.js +31 -0
  42. package/lib/actions/DrawerAction.js.map +13 -0
  43. package/lib/actions/EmailAction.d.ts +12 -0
  44. package/lib/actions/EmailAction.js +37 -0
  45. package/lib/actions/EmailAction.js.map +13 -0
  46. package/lib/actions/LoopAction.d.ts +12 -0
  47. package/lib/actions/LoopAction.js +93 -0
  48. package/lib/actions/LoopAction.js.map +13 -0
  49. package/lib/actions/OpenPageAction.d.ts +12 -0
  50. package/lib/actions/OpenPageAction.js +33 -0
  51. package/lib/actions/OpenPageAction.js.map +13 -0
  52. package/lib/actions/ParallelAction.d.ts +5 -0
  53. package/lib/actions/ParallelAction.js +33 -0
  54. package/lib/actions/ParallelAction.js.map +13 -0
  55. package/lib/actions/SwitchAction.d.ts +8 -0
  56. package/lib/actions/SwitchAction.js +45 -0
  57. package/lib/actions/SwitchAction.js.map +13 -0
  58. package/lib/actions/index.d.ts +18 -0
  59. package/lib/actions/index.js +22 -0
  60. package/lib/actions/index.js.map +13 -0
  61. package/lib/components/AnchorNav.d.ts +20 -20
  62. package/lib/components/AssociatedSelection.d.ts +84 -84
  63. package/lib/components/AssociatedSelection.js +2 -2
  64. package/lib/components/AssociatedSelection.js.map +2 -2
  65. package/lib/components/Avatar.d.ts +135 -0
  66. package/lib/components/Avatar.js +120 -0
  67. package/lib/components/Avatar.js.map +13 -0
  68. package/lib/components/BaiduMapPicker.js.map +2 -2
  69. package/lib/components/Button.d.ts +20 -20
  70. package/lib/components/CalendarMobile.d.ts +573 -0
  71. package/lib/components/CalendarMobile.js +486 -0
  72. package/lib/components/CalendarMobile.js.map +13 -0
  73. package/lib/components/Cascader.d.ts +123 -0
  74. package/lib/components/Cascader.js +487 -0
  75. package/lib/components/Cascader.js.map +13 -0
  76. package/lib/components/ChainedSelection.d.ts +84 -84
  77. package/lib/components/ChainedSelection.js +15 -3
  78. package/lib/components/ChainedSelection.js.map +2 -2
  79. package/lib/components/CityArea.d.ts +527 -0
  80. package/lib/components/CityArea.js +177 -0
  81. package/lib/components/CityArea.js.map +13 -0
  82. package/lib/components/Collapse.d.ts +20 -20
  83. package/lib/components/ColorPicker.d.ts +84 -84
  84. package/lib/components/ColorPicker.js +4 -3
  85. package/lib/components/ColorPicker.js.map +2 -2
  86. package/lib/components/DatePicker.d.ts +85 -84
  87. package/lib/components/DatePicker.js +21 -8
  88. package/lib/components/DatePicker.js.map +2 -2
  89. package/lib/components/DateRangePicker.d.ts +85 -84
  90. package/lib/components/DateRangePicker.js +19 -6
  91. package/lib/components/DateRangePicker.js.map +2 -2
  92. package/lib/components/GroupedSelection.d.ts +84 -84
  93. package/lib/components/GroupedSelection.js +14 -2
  94. package/lib/components/GroupedSelection.js.map +2 -2
  95. package/lib/components/InputBox.d.ts +21 -21
  96. package/lib/components/ListGroup.d.ts +21 -21
  97. package/lib/components/ListMenu.d.ts +84 -84
  98. package/lib/components/MonthRangePicker.d.ts +85 -84
  99. package/lib/components/MonthRangePicker.js +18 -7
  100. package/lib/components/MonthRangePicker.js.map +2 -2
  101. package/lib/components/Overlay.d.ts +1 -1
  102. package/lib/components/Overlay.js.map +1 -1
  103. package/lib/components/Picker.d.ts +1 -0
  104. package/lib/components/Picker.js +16 -7
  105. package/lib/components/Picker.js.map +2 -2
  106. package/lib/components/PickerColumn.d.ts +1 -0
  107. package/lib/components/PickerColumn.js +21 -18
  108. package/lib/components/PickerColumn.js.map +2 -2
  109. package/lib/components/PickerContainer.d.ts +3 -0
  110. package/lib/components/PickerContainer.js +12 -5
  111. package/lib/components/PickerContainer.js.map +2 -2
  112. package/lib/components/PopOverContainer.d.ts +1 -0
  113. package/lib/components/PopOverContainer.js +5 -3
  114. package/lib/components/PopOverContainer.js.map +2 -2
  115. package/lib/components/PopUp.d.ts +1041 -28
  116. package/lib/components/PopUp.js +32 -8
  117. package/lib/components/PopUp.js.map +2 -2
  118. package/lib/components/Radios.d.ts +21 -21
  119. package/lib/components/Rating.d.ts +21 -21
  120. package/lib/components/ResultBox.d.ts +85 -84
  121. package/lib/components/ResultBox.js +9 -4
  122. package/lib/components/ResultBox.js.map +2 -2
  123. package/lib/components/ResultList.d.ts +9 -2
  124. package/lib/components/ResultList.js +22 -2
  125. package/lib/components/ResultList.js.map +2 -2
  126. package/lib/components/Select.d.ts +238 -238
  127. package/lib/components/Select.js +13 -9
  128. package/lib/components/Select.js.map +2 -2
  129. package/lib/components/Selection.d.ts +94 -86
  130. package/lib/components/Selection.js +11 -2
  131. package/lib/components/Selection.js.map +2 -2
  132. package/lib/components/Steps.js.map +2 -2
  133. package/lib/components/TableSelection.d.ts +85 -85
  134. package/lib/components/TableSelection.js +1 -9
  135. package/lib/components/TableSelection.js.map +2 -2
  136. package/lib/components/Tabs.js +31 -33
  137. package/lib/components/Tabs.js.map +2 -2
  138. package/lib/components/TabsTransfer.d.ts +87 -256
  139. package/lib/components/TabsTransfer.js +52 -9
  140. package/lib/components/TabsTransfer.js.map +2 -2
  141. package/lib/components/TabsTransferPicker.d.ts +1 -1
  142. package/lib/components/TabsTransferPicker.js +20 -18
  143. package/lib/components/TabsTransferPicker.js.map +2 -2
  144. package/lib/components/Timeline.d.ts +69 -0
  145. package/lib/components/Timeline.js +16 -0
  146. package/lib/components/Timeline.js.map +13 -0
  147. package/lib/components/TimelineItem.d.ts +517 -0
  148. package/lib/components/TimelineItem.js +40 -0
  149. package/lib/components/TimelineItem.js.map +13 -0
  150. package/lib/components/Transfer.d.ts +100 -98
  151. package/lib/components/Transfer.js +2 -3
  152. package/lib/components/Transfer.js.map +2 -2
  153. package/lib/components/TransferDropDown.d.ts +85 -84
  154. package/lib/components/TransferDropDown.js +9 -10
  155. package/lib/components/TransferDropDown.js.map +2 -2
  156. package/lib/components/TransferPicker.d.ts +1 -0
  157. package/lib/components/TransferPicker.js +19 -4
  158. package/lib/components/TransferPicker.js.map +2 -2
  159. package/lib/components/Tree.d.ts +84 -84
  160. package/lib/components/TreeSelection.d.ts +85 -85
  161. package/lib/components/TreeSelection.js +7 -1
  162. package/lib/components/TreeSelection.js.map +2 -2
  163. package/lib/components/calendar/Calendar.d.ts +19 -0
  164. package/lib/components/calendar/Calendar.js +71 -1
  165. package/lib/components/calendar/Calendar.js.map +2 -2
  166. package/lib/components/calendar/DaysView.d.ts +21 -0
  167. package/lib/components/calendar/DaysView.js +76 -17
  168. package/lib/components/calendar/DaysView.js.map +2 -2
  169. package/lib/components/calendar/MonthsView.d.ts +34 -0
  170. package/lib/components/calendar/MonthsView.js +68 -3
  171. package/lib/components/calendar/MonthsView.js.map +2 -2
  172. package/lib/components/calendar/QuartersView.d.ts +1 -0
  173. package/lib/components/calendar/QuartersView.js +2 -2
  174. package/lib/components/calendar/QuartersView.js.map +2 -2
  175. package/lib/components/calendar/TimeView.d.ts +30 -18
  176. package/lib/components/calendar/TimeView.js +47 -8
  177. package/lib/components/calendar/TimeView.js.map +2 -2
  178. package/lib/components/calendar/YearsView.d.ts +6 -0
  179. package/lib/components/calendar/YearsView.js +21 -10
  180. package/lib/components/calendar/YearsView.js.map +2 -2
  181. package/lib/components/condition-builder/Field.js +1 -4
  182. package/lib/components/condition-builder/Field.js.map +2 -2
  183. package/lib/components/condition-builder/Func.js +1 -1
  184. package/lib/components/condition-builder/Func.js.map +2 -2
  185. package/lib/components/formula/Editor.d.ts +3 -0
  186. package/lib/components/formula/Editor.js +3 -2
  187. package/lib/components/formula/Editor.js.map +2 -2
  188. package/lib/components/formula/FuncList.js +2 -1
  189. package/lib/components/formula/FuncList.js.map +2 -2
  190. package/lib/components/formula/Picker.js +1 -1
  191. package/lib/components/formula/Picker.js.map +2 -2
  192. package/lib/components/formula/plugin.js +0 -1
  193. package/lib/components/formula/plugin.js.map +2 -2
  194. package/lib/components/icons.js +2 -0
  195. package/lib/components/icons.js.map +2 -2
  196. package/lib/components/index.d.ts +2 -1
  197. package/lib/components/index.js +4 -2
  198. package/lib/components/index.js.map +2 -2
  199. package/lib/components/virtual-list/SizeAndPositionManager.js.map +2 -2
  200. package/lib/components/virtual-list/index.js +1 -2
  201. package/lib/components/virtual-list/index.js.map +2 -2
  202. package/lib/env.d.ts +4 -0
  203. package/lib/env.js.map +2 -2
  204. package/lib/factory.d.ts +2 -1
  205. package/lib/factory.js +83 -0
  206. package/lib/factory.js.map +2 -2
  207. package/lib/helper.css.map +1 -1
  208. package/lib/icons/tree-down.js +7 -0
  209. package/lib/index.d.ts +3 -0
  210. package/lib/index.js +4 -1
  211. package/lib/index.js.map +2 -2
  212. package/lib/locale/de-DE.js +17 -2
  213. package/lib/locale/de-DE.js.map +2 -2
  214. package/lib/locale/en-US.js +17 -2
  215. package/lib/locale/en-US.js.map +2 -2
  216. package/lib/locale/zh-CN.js +16 -1
  217. package/lib/locale/zh-CN.js.map +2 -2
  218. package/lib/renderers/Action.d.ts +1 -1
  219. package/lib/renderers/Action.js +26 -10
  220. package/lib/renderers/Action.js.map +2 -2
  221. package/lib/renderers/Avatar.d.ts +35 -26
  222. package/lib/renderers/Avatar.js +14 -19
  223. package/lib/renderers/Avatar.js.map +2 -2
  224. package/lib/renderers/Card.js +6 -5
  225. package/lib/renderers/Card.js.map +2 -2
  226. package/lib/renderers/Custom.d.ts +1 -1
  227. package/lib/renderers/Custom.js +1 -1
  228. package/lib/renderers/Custom.js.map +2 -2
  229. package/lib/renderers/DropDownButton.d.ts +11 -2
  230. package/lib/renderers/DropDownButton.js +30 -12
  231. package/lib/renderers/DropDownButton.js.map +2 -2
  232. package/lib/renderers/Each.js +5 -2
  233. package/lib/renderers/Each.js.map +2 -2
  234. package/lib/renderers/Flex.js +1 -5
  235. package/lib/renderers/Flex.js.map +2 -2
  236. package/lib/renderers/Form/ChartRadios.js.map +2 -2
  237. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  238. package/lib/renderers/Form/CityDB.js +526 -2
  239. package/lib/renderers/Form/CityDB.js.map +2 -2
  240. package/lib/renderers/Form/DiffEditor.d.ts +6 -0
  241. package/lib/renderers/Form/DiffEditor.js +2 -1
  242. package/lib/renderers/Form/DiffEditor.js.map +2 -2
  243. package/lib/renderers/Form/Editor.d.ts +6 -0
  244. package/lib/renderers/Form/InputCity.d.ts +85 -84
  245. package/lib/renderers/Form/InputCity.js +4 -2
  246. package/lib/renderers/Form/InputCity.js.map +2 -2
  247. package/lib/renderers/Form/InputColor.d.ts +84 -84
  248. package/lib/renderers/Form/InputColor.js +6 -2
  249. package/lib/renderers/Form/InputColor.js.map +2 -2
  250. package/lib/renderers/Form/InputDate.js +10 -5
  251. package/lib/renderers/Form/InputDate.js.map +2 -2
  252. package/lib/renderers/Form/InputDateRange.js +6 -2
  253. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  254. package/lib/renderers/Form/InputFormula.d.ts +4 -1
  255. package/lib/renderers/Form/InputFormula.js +2 -2
  256. package/lib/renderers/Form/InputFormula.js.map +2 -2
  257. package/lib/renderers/Form/InputImage.d.ts +1 -0
  258. package/lib/renderers/Form/InputImage.js +8 -4
  259. package/lib/renderers/Form/InputImage.js.map +2 -2
  260. package/lib/renderers/Form/InputMonthRange.js +1 -1
  261. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  262. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  263. package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
  264. package/lib/renderers/Form/InputRichText.d.ts +4 -0
  265. package/lib/renderers/Form/InputRichText.js +2 -1
  266. package/lib/renderers/Form/InputRichText.js.map +2 -2
  267. package/lib/renderers/Form/InputYearRange.js +1 -1
  268. package/lib/renderers/Form/InputYearRange.js.map +2 -2
  269. package/lib/renderers/Form/Item.d.ts +10 -14
  270. package/lib/renderers/Form/Item.js +18 -9
  271. package/lib/renderers/Form/Item.js.map +2 -2
  272. package/lib/renderers/Form/NestedSelect.d.ts +1 -0
  273. package/lib/renderers/Form/NestedSelect.js +8 -4
  274. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  275. package/lib/renderers/Form/Options.js +9 -7
  276. package/lib/renderers/Form/Options.js.map +2 -2
  277. package/lib/renderers/Form/Select.d.ts +2 -0
  278. package/lib/renderers/Form/Select.js +9 -6
  279. package/lib/renderers/Form/Select.js.map +2 -2
  280. package/lib/renderers/Form/TabsTransfer.d.ts +5 -32
  281. package/lib/renderers/Form/TabsTransfer.js +20 -1
  282. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  283. package/lib/renderers/Form/TabsTransferPicker.d.ts +5 -35
  284. package/lib/renderers/Form/TabsTransferPicker.js +21 -2
  285. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  286. package/lib/renderers/Form/Transfer.d.ts +15 -4
  287. package/lib/renderers/Form/Transfer.js +55 -18
  288. package/lib/renderers/Form/Transfer.js.map +2 -2
  289. package/lib/renderers/Form/TransferPicker.d.ts +3 -32
  290. package/lib/renderers/Form/TransferPicker.js +1 -1
  291. package/lib/renderers/Form/TransferPicker.js.map +2 -2
  292. package/lib/renderers/Form/TreeSelect.js +4 -4
  293. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  294. package/lib/renderers/Form/index.js +8 -1
  295. package/lib/renderers/Form/index.js.map +2 -2
  296. package/lib/renderers/IFrame.js +0 -2
  297. package/lib/renderers/IFrame.js.map +2 -2
  298. package/lib/renderers/Link.d.ts +1 -1
  299. package/lib/renderers/Link.js +27 -6
  300. package/lib/renderers/Link.js.map +2 -2
  301. package/lib/renderers/Log.js +15 -10
  302. package/lib/renderers/Log.js.map +2 -2
  303. package/lib/renderers/Nav.d.ts +21 -21
  304. package/lib/renderers/Remark.d.ts +5 -1
  305. package/lib/renderers/Remark.js +39 -7
  306. package/lib/renderers/Remark.js.map +2 -2
  307. package/lib/renderers/Steps.js +5 -5
  308. package/lib/renderers/Steps.js.map +2 -2
  309. package/lib/renderers/Table/index.js +4 -1
  310. package/lib/renderers/Table/index.js.map +2 -2
  311. package/lib/renderers/Tabs.js +1 -1
  312. package/lib/renderers/Tabs.js.map +2 -2
  313. package/lib/renderers/Timeline.d.ts +65 -0
  314. package/lib/renderers/Timeline.js +54 -0
  315. package/lib/renderers/Timeline.js.map +13 -0
  316. package/lib/renderers/Video.js.map +2 -2
  317. package/lib/schemaExtend.js +23 -9
  318. package/lib/schemaExtend.js.map +2 -2
  319. package/lib/store/combo.js.map +2 -2
  320. package/lib/store/formItem.js +1 -1
  321. package/lib/store/formItem.js.map +2 -2
  322. package/lib/themes/ang-ie11.css +1149 -53
  323. package/lib/themes/ang.css +1149 -53
  324. package/lib/themes/ang.css.map +1 -1
  325. package/lib/themes/antd-ie11.css +1187 -53
  326. package/lib/themes/antd.css +1187 -53
  327. package/lib/themes/antd.css.map +1 -1
  328. package/lib/themes/cxd-ie11.css +1189 -70
  329. package/lib/themes/cxd.css +1189 -70
  330. package/lib/themes/cxd.css.map +1 -1
  331. package/lib/themes/dark-ie11.css +1152 -53
  332. package/lib/themes/dark.css +1152 -53
  333. package/lib/themes/dark.css.map +1 -1
  334. package/lib/themes/default.css +1189 -70
  335. package/lib/themes/default.css.map +1 -1
  336. package/lib/utils/RootClose.js +3 -1
  337. package/lib/utils/RootClose.js.map +2 -2
  338. package/lib/utils/api.js +14 -3
  339. package/lib/utils/api.js.map +2 -2
  340. package/lib/utils/debug.d.ts +26 -0
  341. package/lib/utils/debug.js +351 -0
  342. package/lib/utils/debug.js.map +13 -0
  343. package/lib/utils/helper.d.ts +1 -6
  344. package/lib/utils/helper.js +6 -17
  345. package/lib/utils/helper.js.map +2 -2
  346. package/lib/utils/renderer-event.d.ts +38 -0
  347. package/lib/utils/renderer-event.js +28 -0
  348. package/lib/utils/renderer-event.js.map +13 -0
  349. package/package.json +12 -6
  350. package/schema.json +3516 -839
  351. package/scss/_properties.scss +20 -6
  352. package/scss/_variables.scss +1 -0
  353. package/scss/components/_avatar.scss +27 -9
  354. package/scss/components/_calendar.scss +291 -0
  355. package/scss/components/_card.scss +1 -1
  356. package/scss/components/_cascader.scss +102 -0
  357. package/scss/components/_city-area.scss +27 -0
  358. package/scss/components/_collapse-group.scss +1 -3
  359. package/scss/components/_debug.scss +167 -0
  360. package/scss/components/_dropdown.scss +39 -9
  361. package/scss/components/_formula.scss +30 -6
  362. package/scss/components/_modal.scss +18 -0
  363. package/scss/components/_panel.scss +45 -0
  364. package/scss/components/_picker-columns.scss +15 -5
  365. package/scss/components/_popup.scss +43 -16
  366. package/scss/components/_result-box.scss +31 -0
  367. package/scss/components/_timeline.scss +198 -0
  368. package/scss/components/form/_checks.scss +2 -0
  369. package/scss/components/form/_color.scss +2 -2
  370. package/scss/components/form/_date-range.scss +34 -1
  371. package/scss/components/form/_date.scss +46 -1
  372. package/scss/components/form/_form.scss +170 -0
  373. package/scss/components/form/_nested-select.scss +3 -0
  374. package/scss/components/form/_result-list.scss +2 -0
  375. package/scss/components/form/_select.scss +32 -3
  376. package/scss/components/form/_selection.scss +5 -4
  377. package/scss/components/form/_transfer.scss +3 -0
  378. package/scss/components/form/_tree-select.scss +1 -1
  379. package/scss/themes/_antd-variables.scss +45 -0
  380. package/scss/themes/_common.scss +5 -0
  381. package/scss/themes/_cxd-variables.scss +50 -1
  382. package/scss/themes/_dark-variables.scss +4 -0
  383. package/scss/themes/cxd.scss +0 -19
  384. package/sdk/ang-ie11.css +1450 -142
  385. package/sdk/ang.css +1473 -159
  386. package/sdk/antd-ie11.css +1451 -142
  387. package/sdk/antd.css +1511 -159
  388. package/sdk/charts.js +15 -15
  389. package/sdk/codemirror.js +7 -7
  390. package/sdk/color-picker.js +65 -65
  391. package/sdk/cropperjs.js +2 -2
  392. package/sdk/cxd-ie11.css +1448 -158
  393. package/sdk/cxd.css +1513 -178
  394. package/sdk/dark-ie11.css +1450 -142
  395. package/sdk/dark.css +1476 -159
  396. package/sdk/exceljs.js +1 -1
  397. package/sdk/helper.css.map +1 -1
  398. package/sdk/locale/de-DE.js +17 -2
  399. package/sdk/markdown.js +69 -69
  400. package/sdk/papaparse.js +1 -1
  401. package/sdk/renderers/Form/CityDB.js +1 -1
  402. package/sdk/rest.js +18 -18
  403. package/sdk/rich-text.js +62 -62
  404. package/sdk/sdk-ie11.css +1448 -158
  405. package/sdk/sdk.css +1513 -178
  406. package/sdk/sdk.js +1309 -1251
  407. package/sdk/thirds/hls.js/hls.js +1 -1
  408. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  409. package/sdk/tinymce.js +57 -57
  410. package/src/RootRenderer.tsx +27 -1
  411. package/src/Schema.ts +3 -0
  412. package/src/SchemaRenderer.tsx +70 -4
  413. package/src/Scoped.tsx +46 -4
  414. package/src/actions/Action.ts +138 -0
  415. package/src/actions/AjaxAction.ts +58 -0
  416. package/src/actions/BreakAction.ts +27 -0
  417. package/src/actions/BroadcastAction.ts +41 -0
  418. package/src/actions/CmptAction.ts +36 -0
  419. package/src/actions/ContinueAction.ts +27 -0
  420. package/src/actions/CopyAction.ts +41 -0
  421. package/src/actions/CustomAction.ts +46 -0
  422. package/src/actions/DialogAction.ts +28 -0
  423. package/src/actions/DrawerAction.ts +28 -0
  424. package/src/actions/EmailAction.ts +38 -0
  425. package/src/actions/LoopAction.ts +77 -0
  426. package/src/actions/OpenPageAction.ts +39 -0
  427. package/src/actions/ParallelAction.ts +26 -0
  428. package/src/actions/SwitchAction.ts +35 -0
  429. package/src/actions/index.ts +20 -0
  430. package/src/components/AssociatedSelection.tsx +5 -1
  431. package/src/components/Avatar.tsx +253 -0
  432. package/src/components/BaiduMapPicker.tsx +19 -14
  433. package/src/components/CalendarMobile.tsx +658 -0
  434. package/src/components/Cascader.tsx +564 -0
  435. package/src/components/ChainedSelection.tsx +16 -3
  436. package/src/components/CityArea.tsx +315 -0
  437. package/src/components/ColorPicker.tsx +41 -40
  438. package/src/components/DatePicker.tsx +80 -34
  439. package/src/components/DateRangePicker.tsx +85 -30
  440. package/src/components/GroupedSelection.tsx +14 -2
  441. package/src/components/MonthRangePicker.tsx +78 -31
  442. package/src/components/Overlay.tsx +1 -1
  443. package/src/components/Picker.tsx +55 -35
  444. package/src/components/PickerColumn.tsx +43 -36
  445. package/src/components/PickerContainer.tsx +13 -1
  446. package/src/components/PopOverContainer.tsx +31 -17
  447. package/src/components/PopUp.tsx +84 -57
  448. package/src/components/ResultBox.tsx +14 -2
  449. package/src/components/ResultList.tsx +36 -6
  450. package/src/components/Select.tsx +24 -26
  451. package/src/components/Selection.tsx +21 -3
  452. package/src/components/Steps.tsx +23 -10
  453. package/src/components/TableSelection.tsx +1 -44
  454. package/src/components/Tabs.tsx +65 -54
  455. package/src/components/TabsTransfer.tsx +78 -9
  456. package/src/components/TabsTransferPicker.tsx +25 -13
  457. package/src/components/Timeline.tsx +36 -0
  458. package/src/components/TimelineItem.tsx +140 -0
  459. package/src/components/Transfer.tsx +11 -8
  460. package/src/components/TransferDropDown.tsx +20 -12
  461. package/src/components/TransferPicker.tsx +25 -4
  462. package/src/components/TreeSelection.tsx +7 -1
  463. package/src/components/calendar/Calendar.tsx +101 -4
  464. package/src/components/calendar/DaysView.tsx +165 -33
  465. package/src/components/calendar/MonthsView.tsx +108 -1
  466. package/src/components/calendar/QuartersView.tsx +3 -2
  467. package/src/components/calendar/TimeView.tsx +104 -41
  468. package/src/components/calendar/YearsView.tsx +34 -17
  469. package/src/components/condition-builder/Field.tsx +1 -3
  470. package/src/components/condition-builder/Func.tsx +1 -1
  471. package/src/components/formula/Editor.tsx +16 -11
  472. package/src/components/formula/FuncList.tsx +3 -1
  473. package/src/components/formula/Picker.tsx +2 -1
  474. package/src/components/formula/plugin.ts +0 -2
  475. package/src/components/icons.tsx +2 -0
  476. package/src/components/index.tsx +2 -0
  477. package/src/components/virtual-list/SizeAndPositionManager.ts +6 -3
  478. package/src/components/virtual-list/index.tsx +4 -6
  479. package/src/env.tsx +22 -0
  480. package/src/factory.tsx +93 -1
  481. package/src/icons/tree-down.svg +5 -0
  482. package/src/index.tsx +5 -0
  483. package/src/locale/de-DE.ts +17 -2
  484. package/src/locale/en-US.ts +17 -2
  485. package/src/locale/zh-CN.ts +16 -1
  486. package/src/renderers/Action.tsx +11 -2
  487. package/src/renderers/Avatar.tsx +83 -74
  488. package/src/renderers/Card.tsx +10 -6
  489. package/src/renderers/Custom.tsx +7 -4
  490. package/src/renderers/DropDownButton.tsx +69 -35
  491. package/src/renderers/Each.tsx +4 -4
  492. package/src/renderers/Flex.tsx +3 -7
  493. package/src/renderers/Form/ChartRadios.tsx +2 -7
  494. package/src/renderers/Form/Checkboxes.tsx +1 -1
  495. package/src/renderers/Form/CityDB.ts +526 -2
  496. package/src/renderers/Form/DiffEditor.tsx +2 -3
  497. package/src/renderers/Form/InputCity.tsx +23 -3
  498. package/src/renderers/Form/InputColor.tsx +21 -2
  499. package/src/renderers/Form/InputDate.tsx +48 -20
  500. package/src/renderers/Form/InputDateRange.tsx +9 -2
  501. package/src/renderers/Form/InputFormula.tsx +9 -4
  502. package/src/renderers/Form/InputImage.tsx +9 -4
  503. package/src/renderers/Form/InputMonthRange.tsx +0 -1
  504. package/src/renderers/Form/InputQuarterRange.tsx +0 -1
  505. package/src/renderers/Form/InputRichText.tsx +11 -1
  506. package/src/renderers/Form/InputYearRange.tsx +0 -1
  507. package/src/renderers/Form/Item.tsx +29 -8
  508. package/src/renderers/Form/NestedSelect.tsx +32 -4
  509. package/src/renderers/Form/Options.tsx +15 -7
  510. package/src/renderers/Form/Select.tsx +21 -5
  511. package/src/renderers/Form/TabsTransfer.tsx +28 -38
  512. package/src/renderers/Form/TabsTransferPicker.tsx +28 -46
  513. package/src/renderers/Form/Transfer.tsx +75 -24
  514. package/src/renderers/Form/TransferPicker.tsx +6 -38
  515. package/src/renderers/Form/TreeSelect.tsx +18 -16
  516. package/src/renderers/Form/index.tsx +7 -1
  517. package/src/renderers/IFrame.tsx +0 -2
  518. package/src/renderers/Link.tsx +18 -3
  519. package/src/renderers/Log.tsx +5 -1
  520. package/src/renderers/Remark.tsx +68 -18
  521. package/src/renderers/Steps.tsx +11 -13
  522. package/src/renderers/Table/index.tsx +7 -1
  523. package/src/renderers/Tabs.tsx +6 -2
  524. package/src/renderers/Timeline.tsx +141 -0
  525. package/src/renderers/Video.tsx +4 -20
  526. package/src/schemaExtend.ts +22 -10
  527. package/src/store/combo.ts +1 -3
  528. package/src/store/formItem.ts +1 -1
  529. package/src/utils/RootClose.ts +5 -1
  530. package/src/utils/api.ts +15 -2
  531. package/src/utils/debug.tsx +438 -0
  532. package/src/utils/helper.ts +6 -16
  533. package/src/utils/renderer-event.ts +75 -0
@@ -4,7 +4,7 @@ import moment from 'moment';
4
4
  import React from 'react';
5
5
  import {LocaleProps, localeable} from '../../locale';
6
6
  import Picker from '../Picker';
7
- import {convertDateToObject, getRange, isMobile} from "../../utils/helper";
7
+ import {getRange, isMobile} from '../../utils/helper';
8
8
 
9
9
  export class CustomYearsView extends YearsView {
10
10
  props: {
@@ -28,6 +28,8 @@ export class CustomYearsView extends YearsView {
28
28
  onConfirm?: (value: number[], types: string[]) => void;
29
29
  useMobileUI: boolean;
30
30
  } & LocaleProps;
31
+ state: {pickerValue: number[]};
32
+ setState: (arg0: any) => () => any;
31
33
  renderYears: (year: number) => JSX.Element;
32
34
  renderYear = (props: any, year: number) => {
33
35
  return (
@@ -37,29 +39,49 @@ export class CustomYearsView extends YearsView {
37
39
  );
38
40
  };
39
41
 
42
+ constructor(props: any) {
43
+ super(props);
44
+
45
+ const {selectedDate, viewDate} = props;
46
+ const currentDate = (selectedDate || viewDate || moment());
47
+
48
+ this.state = {
49
+ pickerValue: currentDate.toObject().years
50
+ }
51
+ }
52
+
40
53
  onConfirm = (value: number[]) => {
41
- this.props.onConfirm && this.props.onConfirm(value, ["year"])
54
+ this.props.onConfirm && this.props.onConfirm(value, ['year']);
55
+ };
56
+
57
+ onPickerChange = (value: number[]) => {
58
+ this.setState({pickerValue: value[0]});
42
59
  }
43
60
 
44
61
  renderYearPicker = () => {
45
- const {minDate, maxDate, selectedDate, viewDate} = this.props;
62
+ const {translate: __, minDate, maxDate, selectedDate, viewDate} = this.props;
46
63
  const year = (selectedDate || viewDate || moment()).year();
47
- const maxYear = maxDate ? convertDateToObject(maxDate)!.year : year + 100;
48
- const minYear = minDate ? convertDateToObject(minDate)!.year : year - 100;
49
-
50
- const columns = [{
51
- options: getRange(minYear, maxYear, 1)
52
- }];
64
+ const maxYear = maxDate ? maxDate.toObject().years : year + 100;
65
+ const minYear = minDate ? minDate.toObject().years : year - 100;
66
+ const title = __('Date.titleYear');
67
+
68
+ const columns = [
69
+ {
70
+ options: getRange(minYear, maxYear, 1)
71
+ }
72
+ ];
53
73
 
54
74
  return (
55
75
  <Picker
56
76
  translate={this.props.translate}
57
77
  locale={this.props.locale}
78
+ title={title}
58
79
  columns={columns}
59
- value={[year]}
80
+ value={this.state.pickerValue}
60
81
  onConfirm={this.onConfirm}
82
+ onChange={this.onPickerChange}
61
83
  onClose={this.props.onClose}
62
- />
84
+ />
63
85
  );
64
86
  };
65
87
 
@@ -67,13 +89,8 @@ export class CustomYearsView extends YearsView {
67
89
  let year = this.props.viewDate.year();
68
90
  year = year - (year % 10);
69
91
  const __ = this.props.translate;
70
-
71
92
  if (isMobile() && this.props.useMobileUI) {
72
- return (
73
- <div className="rdtYears">
74
- {this.renderYearPicker()}
75
- </div>
76
- );
93
+ return <div className="rdtYears">{this.renderYearPicker()}</div>;
77
94
  }
78
95
  return (
79
96
  <div className="rdtYears">
@@ -114,9 +114,7 @@ export class ConditionField extends React.Component<
114
114
  ref={ref}
115
115
  allowInput={false}
116
116
  result={
117
- value
118
- ? findTree(options, item => item.name === value)?.label
119
- : ''
117
+ value ? findTree(options, item => item.name === value) : ''
120
118
  }
121
119
  onResultChange={noop}
122
120
  onResultClick={onClick}
@@ -97,7 +97,7 @@ export class ConditionFunc extends React.Component<ConditionFuncProps> {
97
97
  )}
98
98
  ref={ref}
99
99
  allowInput={false}
100
- result={func?.label}
100
+ result={func}
101
101
  onResultChange={noop}
102
102
  onResultClick={onClick}
103
103
  placeholder="请选择字段"
@@ -45,6 +45,9 @@ export interface FormulaEditorProps extends ThemeProps, LocaleProps {
45
45
  */
46
46
  variables: Array<VariableItem>;
47
47
 
48
+ /**
49
+ * 变量展现模式,可选值:'tabs' | 'tree'
50
+ */
48
51
  variableMode?: 'tabs' | 'tree';
49
52
 
50
53
  /**
@@ -216,17 +219,19 @@ export class FormulaEditor extends React.Component<
216
219
  'is-focused': focused
217
220
  })}
218
221
  >
219
- <div className={cx(`FormulaEditor-header`)}>{header ?? '表达式'}</div>
220
-
221
- <CodeMirrorEditor
222
- className={cx('FormulaEditor-editor')}
223
- value={value}
224
- onChange={this.handleOnChange}
225
- editorFactory={this.editorFactory}
226
- editorDidMount={this.handleEditorMounted}
227
- onFocus={this.handleFocus}
228
- onBlur={this.handleBlur}
229
- ></CodeMirrorEditor>
222
+ <div className={cx(`FormulaEditor-content`)}>
223
+ <div className={cx(`FormulaEditor-header`)}>{header ?? '表达式'}</div>
224
+
225
+ <CodeMirrorEditor
226
+ className={cx('FormulaEditor-editor')}
227
+ value={value}
228
+ onChange={this.handleOnChange}
229
+ editorFactory={this.editorFactory}
230
+ editorDidMount={this.handleEditorMounted}
231
+ onFocus={this.handleFocus}
232
+ onBlur={this.handleBlur}
233
+ ></CodeMirrorEditor>
234
+ </div>
230
235
 
231
236
  <div className={cx('FormulaEditor-settings')}>
232
237
  {Array.isArray(functions) && functions.length ? (
@@ -69,7 +69,9 @@ export function FuncList(props: FuncListProps) {
69
69
  <div className={cx('FormulaFuncList-column')}>
70
70
  {activeFunc ? (
71
71
  <div className={cx('FormulaFuncList-funcDetail')}>
72
- <p>{activeFunc.example}</p>
72
+ <pre>
73
+ <code>{activeFunc.example}</code>
74
+ </pre>
73
75
  <div>{activeFunc.description}</div>
74
76
  </div>
75
77
  ) : null}
@@ -1,7 +1,7 @@
1
1
  import {uncontrollable} from 'uncontrollable';
2
2
  import React from 'react';
3
3
  import {FormulaEditor, FormulaEditorProps} from './Editor';
4
- import {autobind} from '../../utils/helper';
4
+ import {autobind, noop} from '../../utils/helper';
5
5
  import PickerContainer from '../PickerContainer';
6
6
  import Editor from './Editor';
7
7
  import ResultBox from '../ResultBox';
@@ -63,6 +63,7 @@ export class FormulaPicker extends React.Component<FormulaPickerProps> {
63
63
  rest.variables,
64
64
  rest.functions
65
65
  )}
66
+ onResultChange={noop}
66
67
  onResultClick={onClick}
67
68
  disabled={disabled}
68
69
  borderMode={borderMode}
@@ -13,8 +13,6 @@ export function editorFactory(
13
13
  ) {
14
14
  registerLaunguageMode(cm);
15
15
 
16
- console.log('here', props.evalMode);
17
-
18
16
  return cm(dom, {
19
17
  value: props.value || '',
20
18
  autofocus: true,
@@ -43,6 +43,7 @@ import ExchangeIcon from '../icons/exchange.svg';
43
43
  import ColmunsIcon from '../icons/columns.svg';
44
44
  import CalendarIcon from '../icons/calendar.svg';
45
45
  import ClockIcon from '../icons/clock.svg';
46
+ import TreeDownIcon from '../icons/tree-down.svg';
46
47
 
47
48
  import CopyIcon from '../icons/copy.svg';
48
49
  import FilterIcon from '../icons/filter.svg';
@@ -176,6 +177,7 @@ registerIcon('alert-success', AlertSuccess);
176
177
  registerIcon('alert-info', AlertInfo);
177
178
  registerIcon('alert-warning', AlertWarning);
178
179
  registerIcon('alert-danger', AlertDanger);
180
+ registerIcon('tree-down', TreeDownIcon);
179
181
 
180
182
  export function Icon({
181
183
  icon,
@@ -8,6 +8,7 @@ import NotFound from './404';
8
8
  import {default as Alert, alert, confirm, prompt} from './Alert';
9
9
  import {default as ContextMenu, openContextMenus} from './ContextMenu';
10
10
  import AsideNav from './AsideNav';
11
+ import Avatar from './Avatar';
11
12
  import Button from './Button';
12
13
  import Checkbox from './Checkbox';
13
14
  import Checkboxes from './Selection';
@@ -60,6 +61,7 @@ export {
60
61
  NotFound,
61
62
  Alert as AlertComponent,
62
63
  alert,
64
+ Avatar,
63
65
  confirm,
64
66
  prompt,
65
67
  ContextMenu,
@@ -72,7 +72,8 @@ export default class SizeAndPositionManager {
72
72
  }
73
73
 
74
74
  if (index > this.lastMeasuredIndex) {
75
- const lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();
75
+ const lastMeasuredSizeAndPosition =
76
+ this.getSizeAndPositionOfLastMeasuredItem();
76
77
  let offset =
77
78
  lastMeasuredSizeAndPosition.offset + lastMeasuredSizeAndPosition.size;
78
79
 
@@ -109,7 +110,8 @@ export default class SizeAndPositionManager {
109
110
  * As items as measured the estimate will be updated.
110
111
  */
111
112
  getTotalSize(): number {
112
- const lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();
113
+ const lastMeasuredSizeAndPosition =
114
+ this.getSizeAndPositionOfLastMeasuredItem();
113
115
 
114
116
  return (
115
117
  lastMeasuredSizeAndPosition.offset +
@@ -232,7 +234,8 @@ export default class SizeAndPositionManager {
232
234
  // So make sure the offset is at least 0 or no match will be found.
233
235
  offset = Math.max(0, offset);
234
236
 
235
- const lastMeasuredSizeAndPosition = this.getSizeAndPositionOfLastMeasuredItem();
237
+ const lastMeasuredSizeAndPosition =
238
+ this.getSizeAndPositionOfLastMeasuredItem();
236
239
  const lastMeasuredIndex = Math.max(0, this.lastMeasuredIndex);
237
240
 
238
241
  if (lastMeasuredSizeAndPosition.offset >= offset) {
@@ -181,8 +181,8 @@ export default class VirtualList extends React.PureComponent<Props, State> {
181
181
  const itemsDom = this.rootNode.children[0].children;
182
182
  const scrollbarWidth =
183
183
  window.innerWidth - document.documentElement.clientWidth || 15;
184
- const containerWidth = this.rootNode.parentElement!.getBoundingClientRect()
185
- .width;
184
+ const containerWidth =
185
+ this.rootNode.parentElement!.getBoundingClientRect().width;
186
186
  let maxItemWidth = 0;
187
187
  for (let i = 0; i < itemsDom.length; i++) {
188
188
  let itemWidth = itemsDom[i].getBoundingClientRect().width;
@@ -427,10 +427,8 @@ export default class VirtualList extends React.PureComponent<Props, State> {
427
427
  }
428
428
 
429
429
  const {scrollDirection = DIRECTION.VERTICAL} = this.props;
430
- const {
431
- size,
432
- offset
433
- } = this.sizeAndPositionManager.getSizeAndPositionForIndex(index);
430
+ const {size, offset} =
431
+ this.sizeAndPositionManager.getSizeAndPositionForIndex(index);
434
432
 
435
433
  return (this.styleCache[index] = sticky
436
434
  ? {
package/src/env.tsx CHANGED
@@ -6,6 +6,11 @@ import {RendererConfig} from './factory';
6
6
  import {ThemeInstance} from './theme';
7
7
  import {Action, Api, Payload, Schema} from './types';
8
8
  import hoistNonReactStatic from 'hoist-non-react-statics';
9
+ import {
10
+ RendererEvent,
11
+ RendererEventListener,
12
+ EventListeners
13
+ } from './utils/renderer-event';
9
14
 
10
15
  export interface RendererEnv {
11
16
  fetcher: (api: Api, data?: any, options?: object) => Promise<Payload>;
@@ -54,6 +59,23 @@ export interface RendererEnv {
54
59
  ) => Promise<React.ReactType> | React.ReactType | JSX.Element | void;
55
60
  loadChartExtends?: () => void | Promise<void>;
56
61
  useMobileUI?: boolean;
62
+ bindEvent: (context: any) => (() => void) | undefined;
63
+ dispatchEvent: (
64
+ e:
65
+ | string
66
+ | React.ClipboardEvent<any>
67
+ | React.DragEvent<any>
68
+ | React.ChangeEvent<any>
69
+ | React.KeyboardEvent<any>
70
+ | React.TouchEvent<any>
71
+ | React.WheelEvent<any>
72
+ | React.AnimationEvent<any>
73
+ | React.TransitionEvent<any>
74
+ | React.MouseEvent<any>,
75
+ context: any,
76
+ data: any
77
+ ) => Promise<RendererEvent<any> | undefined>;
78
+ rendererEventListeners: RendererEventListener[];
57
79
  [propName: string]: any;
58
80
  }
59
81
 
package/src/factory.tsx CHANGED
@@ -4,6 +4,7 @@ import {getEnv, destroy} from 'mobx-state-tree';
4
4
  import {wrapFetcher} from './utils/api';
5
5
  import {normalizeLink} from './utils/normalizeLink';
6
6
  import {
7
+ createObject,
7
8
  findIndex,
8
9
  isObject,
9
10
  JSONTraverse,
@@ -33,6 +34,14 @@ import ScopedRootRenderer, {RootRenderProps} from './Root';
33
34
  import {HocStoreFactory} from './WithStore';
34
35
  import {EnvContext, RendererEnv} from './env';
35
36
  import {envOverwrite} from './envOverwrite';
37
+ import {
38
+ EventListeners,
39
+ createRendererEvent,
40
+ RendererEventListener,
41
+ OnEventProps,
42
+ RendererEvent
43
+ } from './utils/renderer-event';
44
+ import {runActions} from './actions/Action';
36
45
 
37
46
  export interface TestFunc {
38
47
  (
@@ -63,7 +72,7 @@ export interface RendererBasicConfig {
63
72
  // [propName:string]:any;
64
73
  }
65
74
 
66
- export interface RendererProps extends ThemeProps, LocaleProps {
75
+ export interface RendererProps extends ThemeProps, LocaleProps, OnEventProps {
67
76
  render: (region: string, node: SchemaNode, props?: any) => JSX.Element;
68
77
  env: RendererEnv;
69
78
  $path: string; // 当前组件所在的层级信息
@@ -257,7 +266,9 @@ const defaultOptions: RenderOptions = {
257
266
  affixOffsetTop: 0,
258
267
  affixOffsetBottom: 0,
259
268
  richTextToken: '',
269
+ useMobileUI: true, // 是否启用移动端原生 UI
260
270
  loadRenderer,
271
+ rendererEventListeners: [],
261
272
  fetcher() {
262
273
  return Promise.reject('fetcher is required');
263
274
  },
@@ -347,6 +358,82 @@ const defaultOptions: RenderOptions = {
347
358
  },
348
359
  // 用于跟踪用户在界面中的各种操作
349
360
  tracker(eventTrack: EventTrack, props: PlainObject) {},
361
+ // 返回解绑函数
362
+ bindEvent(renderer: any) {
363
+ const listeners: EventListeners = renderer.props.$schema.onEvent;
364
+ if (listeners) {
365
+ // 暂存
366
+ for (let key of Object.keys(listeners)) {
367
+ this.rendererEventListeners.push({
368
+ renderer,
369
+ type: key,
370
+ weight: listeners[key].weight || 0,
371
+ actions: listeners[key].actions
372
+ });
373
+ }
374
+
375
+ return () => {
376
+ this.rendererEventListeners = this.rendererEventListeners.filter(
377
+ (item: RendererEventListener) => item.renderer === renderer
378
+ );
379
+ };
380
+ }
381
+
382
+ return undefined;
383
+ },
384
+ async dispatchEvent(
385
+ e: string | React.MouseEvent<any>,
386
+ renderer: React.Component<RendererProps>,
387
+ data: any,
388
+ broadcast: RendererEvent<any>
389
+ ) {
390
+ const eventName = typeof e === 'string' ? e : e.type;
391
+ if (!broadcast) {
392
+ const eventConfig = renderer?.props?.onEvent?.[eventName];
393
+
394
+ if (!eventConfig) {
395
+ // 没命中也没关系
396
+ return Promise.resolve(undefined);
397
+ }
398
+ }
399
+
400
+ // 没有可处理的监听
401
+ if (!this.rendererEventListeners.length) {
402
+ return Promise.resolve();
403
+ }
404
+
405
+ // 如果是广播动作,就直接复用
406
+ const rendererEvent =
407
+ broadcast ||
408
+ createRendererEvent(eventName, {
409
+ env: this,
410
+ nativeEvent: e,
411
+ data
412
+ });
413
+
414
+ // 过滤&排序
415
+ const listeners = this.rendererEventListeners
416
+ .filter(
417
+ (item: RendererEventListener) =>
418
+ item.type === eventName &&
419
+ (broadcast ? true : item.renderer === renderer)
420
+ )
421
+ .sort(
422
+ (prev: RendererEventListener, next: RendererEventListener) =>
423
+ next.weight - prev.weight
424
+ );
425
+
426
+ for (let listener of listeners) {
427
+ await runActions(listener.actions, listener.renderer, rendererEvent);
428
+
429
+ // 停止后续监听器执行
430
+ if (rendererEvent.stoped) {
431
+ break;
432
+ }
433
+ }
434
+
435
+ return rendererEvent;
436
+ },
350
437
  rendererResolver: resolveRenderer,
351
438
  replaceTextIgnoreKeys: [
352
439
  'type',
@@ -410,6 +497,11 @@ export function render(
410
497
  env.locale = locale;
411
498
  }
412
499
 
500
+ // 默认将开启移动端原生 UI
501
+ if (typeof options.useMobileUI) {
502
+ props.useMobileUI = true;
503
+ }
504
+
413
505
  // 进行文本替换
414
506
  if (env.replaceText && isObject(env.replaceText)) {
415
507
  const replaceKeys = Object.keys(env.replaceText);
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg"
2
+ viewBox="0 0 1024 1024" width="30"
3
+ fill="currentColor">
4
+ <path d="M512 704L256 384h512z"></path>
5
+ </svg>
package/src/index.tsx CHANGED
@@ -41,6 +41,8 @@ import {
41
41
 
42
42
  import './locale/zh-CN';
43
43
 
44
+ import './utils/debug';
45
+
44
46
  import animation from './utils/Animation';
45
47
 
46
48
  export * from './Schema';
@@ -165,6 +167,7 @@ import './renderers/Icon';
165
167
  import './renderers/Carousel';
166
168
  import './renderers/AnchorNav';
167
169
  import './renderers/Steps';
170
+ import './renderers/Timeline';
168
171
  import './renderers/Markdown';
169
172
  import './renderers/TableView';
170
173
  import './renderers/Code';
@@ -211,6 +214,8 @@ import {
211
214
  } from './theme';
212
215
  const classPrefix = getClassPrefix();
213
216
 
217
+ import './actions';
218
+
214
219
  export * from './components/index';
215
220
 
216
221
  export {
@@ -6,6 +6,15 @@ register('de-DE', {
6
6
  'asc': 'Aufsteigend',
7
7
  'App.home': 'Startseite',
8
8
  'App.navigation': 'Navigation',
9
+ 'Calendar.datepicker': 'Auswahl des Datums',
10
+ 'Calendar.yearmonth': 'YYYY MM',
11
+ 'Calendar.year': 'YYYY',
12
+ 'Calendar.begin': 'beginnt',
13
+ 'Calendar.end': 'ende',
14
+ 'Calendar.beginAndEnd': 'b/e',
15
+ 'Calendar.toast': 'Außerhalb des Datumsbereichs',
16
+ 'Calendar.startPick': 'Wählen Sie Startzeit',
17
+ 'Calendar.endPick': 'Wählen Sie Endzeit',
9
18
  'cancel': 'Abbrechen',
10
19
  'Card.dragTip': 'Obere Schaltfläche zum Sortieren ziehen',
11
20
  'Card.toggleDrag': 'Zum Sortieren umschalten',
@@ -34,6 +43,10 @@ register('de-DE', {
34
43
  'CRUD.paginationGoText': 'Wechseln zu',
35
44
  'CRUD.paginationPageText': 'Seite',
36
45
  'PaginationWrapper.placeholder': 'Textkörper konfigurieren',
46
+ 'Date.titleYear': '',
47
+ 'Date.titleMonth': '',
48
+ 'Date.titleDate': '',
49
+ 'Date.titleTime': '',
37
50
  'Date.daysago': 'Vor {{days}} Tag(en)',
38
51
  'Date.dayslater': '{{days}} Tag(e) später',
39
52
  'Date.endOfMonth': 'Letzter Tag des Monats',
@@ -215,7 +228,7 @@ register('de-DE', {
215
228
  'validate.minimum': 'Der Eingabewert ist kleiner als der Mindestwert von $1.',
216
229
  'validate.minLength': 'Geben Sie weitere Zeichen ein, mindestens $1.',
217
230
  'validate.notEmptyString': 'Geben Sie nicht nur Leerzeichen ein.',
218
- 'validateFailed': 'Fehler bei der Überprüfung,',
231
+ 'validateFailed': 'Fehler bei der Überprüfung',
219
232
  'Wizard.configError': 'Konfigurationsfehler',
220
233
  'Wizard.finish': 'Ende',
221
234
  'Wizard.next': 'Weiter',
@@ -254,5 +267,7 @@ register('de-DE', {
254
267
  'Condition.cond_placeholder': 'Bedingung auswählen',
255
268
  'Condition.field_placeholder': 'Feld auswählen',
256
269
  'Condition.blank': 'leer',
257
- 'InputTable.uniqueError': 'Column `{{label}}` unique validate failed'
270
+ 'InputTable.uniqueError': 'Column `{{label}}` unique validate failed',
271
+ 'Timeline.collapseText': 'Entfalten',
272
+ 'Timeline.expandText': 'Falten'
258
273
  });
@@ -6,6 +6,15 @@ register('en-US', {
6
6
  'App.home': 'Home',
7
7
  'App.navigation': 'Navigation',
8
8
  'asc': 'Asc',
9
+ 'Calendar.datepicker': 'Date Picker',
10
+ 'Calendar.yearmonth': 'YYYY MM',
11
+ 'Calendar.year': 'YYYY',
12
+ 'Calendar.begin': 'begin',
13
+ 'Calendar.end': 'end',
14
+ 'Calendar.beginAndEnd': 'b/e',
15
+ 'Calendar.toast': 'Out of date range',
16
+ 'Calendar.startPick': 'Select start time',
17
+ 'Calendar.endPick': 'Select end time',
9
18
  'cancel': 'Cancel',
10
19
  'Card.dragTip': 'Drag top button to sort',
11
20
  'Card.toggleDrag': 'Toggle drag to sort',
@@ -34,6 +43,10 @@ register('en-US', {
34
43
  'CRUD.paginationGoText': 'Go to',
35
44
  'CRUD.paginationPageText': 'page',
36
45
  'PaginationWrapper.placeholder': 'please config body',
46
+ 'Date.titleYear': 'select year',
47
+ 'Date.titleMonth': 'select month and year',
48
+ 'Date.titleDate': 'select month, year and day',
49
+ 'Date.titleTime': 'select time',
37
50
  'Date.daysago': '{{days}} day(s) ago',
38
51
  'Date.dayslater': '{{days}} day(s) later',
39
52
  'Date.endOfMonth': 'last day of the month',
@@ -217,7 +230,7 @@ register('en-US', {
217
230
  'validate.minimum': 'The input value is lower than the minimum value of $1',
218
231
  'validate.minLength': 'Please enter more, at least $1 characters.',
219
232
  'validate.notEmptyString': 'Please do not enter all blank characters',
220
- 'validateFailed': 'Validate failed,',
233
+ 'validateFailed': 'Validate failed',
221
234
  'Wizard.configError': 'Config error',
222
235
  'Wizard.finish': 'Finish',
223
236
  'Wizard.next': 'Next',
@@ -256,5 +269,7 @@ register('en-US', {
256
269
  'Condition.cond_placeholder': 'select condition',
257
270
  'Condition.field_placeholder': 'select field',
258
271
  'Condition.blank': 'blank',
259
- 'InputTable.uniqueError': 'Column `{{label}}` unique validate failed'
272
+ 'InputTable.uniqueError': 'Column `{{label}}` unique validate failed',
273
+ 'Timeline.collapseText': 'Unfold',
274
+ 'Timeline.expandText': 'Fold'
260
275
  });
@@ -6,6 +6,15 @@ register('zh-CN', {
6
6
  'App.home': '首页',
7
7
  'App.navigation': '导航',
8
8
  'asc': '正序',
9
+ 'Calendar.datepicker': '日期选择',
10
+ 'Calendar.yearmonth': 'YYYY年MM月',
11
+ 'Calendar.year': 'YYYY年',
12
+ 'Calendar.begin': '开始',
13
+ 'Calendar.end': '结束',
14
+ 'Calendar.beginAndEnd': '始/终',
15
+ 'Calendar.toast': '超出日期范围',
16
+ 'Calendar.startPick': '选择开始时间',
17
+ 'Calendar.endPick': '选择结束时间',
9
18
  'cancel': '取消',
10
19
  'Card.dragTip': '请拖动顶部的按钮进行排序',
11
20
  'Card.toggleDrag': '对卡片进行排序操作',
@@ -34,6 +43,10 @@ register('zh-CN', {
34
43
  'CRUD.paginationGoText': '前往',
35
44
  'CRUD.paginationPageText': '页',
36
45
  'PaginationWrapper.placeholder': '请配置内容',
46
+ 'Date.titleYear': '选择年',
47
+ 'Date.titleMonth': '选择年月',
48
+ 'Date.titleDate': '选择年月日',
49
+ 'Date.titleTime': '选择时间',
37
50
  'Date.daysago': '{{days}}天前',
38
51
  'Date.dayslater': '{{days}}天后',
39
52
  'Date.endOfMonth': '本月最后一天',
@@ -260,5 +273,7 @@ register('zh-CN', {
260
273
  'Condition.cond_placeholder': '请选择操作',
261
274
  'Condition.field_placeholder': '请选择字段',
262
275
  'Condition.blank': '空',
263
- 'InputTable.uniqueError': '列`{{label}}`没有通过唯一验证'
276
+ 'InputTable.uniqueError': '列`{{label}}`没有通过唯一验证',
277
+ 'Timeline.collapseText': '展开',
278
+ 'Timeline.expandText': '折叠'
264
279
  });
@@ -405,6 +405,7 @@ import {generateIcon} from '../utils/icon';
405
405
  import {BadgeSchema, withBadge} from '../components/Badge';
406
406
  import {normalizeApi, str2AsyncFunction} from '../utils/api';
407
407
  import {TooltipWrapper} from '../components/TooltipWrapper';
408
+ import handleAction from '../utils/handleAction';
408
409
 
409
410
  // 构造一个假的 React 事件避免可能的报错,主要用于快捷键功能
410
411
  // 来自 https://stackoverflow.com/questions/27062455/reactjs-can-i-create-my-own-syntheticevent
@@ -828,8 +829,16 @@ export class ActionRenderer extends React.Component<
828
829
  }
829
830
  > {
830
831
  @autobind
831
- handleAction(e: React.MouseEvent<any> | void | null, action: any) {
832
- const {env, onAction, data, ignoreConfirm} = this.props;
832
+ async handleAction(e: React.MouseEvent<any> | void | null, action: any) {
833
+ const {env, onAction, data, ignoreConfirm, dispatchEvent} = this.props;
834
+
835
+ // 触发渲染器事件
836
+ const rendererEvent = await dispatchEvent(e as React.MouseEvent<any>, data);
837
+
838
+ // 阻止原有动作执行
839
+ if (rendererEvent?.prevented) {
840
+ return;
841
+ }
833
842
 
834
843
  if (!ignoreConfirm && action.confirmText && env.confirm) {
835
844
  env