amis 1.5.6 → 1.6.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) 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/CRUD.js +1 -2
  225. package/lib/renderers/CRUD.js.map +2 -2
  226. package/lib/renderers/Card.js +6 -5
  227. package/lib/renderers/Card.js.map +2 -2
  228. package/lib/renderers/Custom.d.ts +1 -1
  229. package/lib/renderers/Custom.js +1 -1
  230. package/lib/renderers/Custom.js.map +2 -2
  231. package/lib/renderers/DropDownButton.d.ts +11 -2
  232. package/lib/renderers/DropDownButton.js +30 -12
  233. package/lib/renderers/DropDownButton.js.map +2 -2
  234. package/lib/renderers/Each.js +5 -2
  235. package/lib/renderers/Each.js.map +2 -2
  236. package/lib/renderers/Flex.js +1 -5
  237. package/lib/renderers/Flex.js.map +2 -2
  238. package/lib/renderers/Form/ChartRadios.js.map +2 -2
  239. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  240. package/lib/renderers/Form/CityDB.js +526 -2
  241. package/lib/renderers/Form/CityDB.js.map +2 -2
  242. package/lib/renderers/Form/DiffEditor.d.ts +6 -0
  243. package/lib/renderers/Form/DiffEditor.js +2 -1
  244. package/lib/renderers/Form/DiffEditor.js.map +2 -2
  245. package/lib/renderers/Form/Editor.d.ts +6 -0
  246. package/lib/renderers/Form/InputCity.d.ts +85 -84
  247. package/lib/renderers/Form/InputCity.js +4 -2
  248. package/lib/renderers/Form/InputCity.js.map +2 -2
  249. package/lib/renderers/Form/InputColor.d.ts +84 -84
  250. package/lib/renderers/Form/InputColor.js +6 -2
  251. package/lib/renderers/Form/InputColor.js.map +2 -2
  252. package/lib/renderers/Form/InputDate.js +10 -5
  253. package/lib/renderers/Form/InputDate.js.map +2 -2
  254. package/lib/renderers/Form/InputDateRange.js +6 -2
  255. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  256. package/lib/renderers/Form/InputFormula.d.ts +4 -1
  257. package/lib/renderers/Form/InputFormula.js +2 -2
  258. package/lib/renderers/Form/InputFormula.js.map +2 -2
  259. package/lib/renderers/Form/InputImage.d.ts +1 -0
  260. package/lib/renderers/Form/InputImage.js +8 -4
  261. package/lib/renderers/Form/InputImage.js.map +2 -2
  262. package/lib/renderers/Form/InputMonthRange.js +1 -1
  263. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  264. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  265. package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
  266. package/lib/renderers/Form/InputYearRange.js +1 -1
  267. package/lib/renderers/Form/InputYearRange.js.map +2 -2
  268. package/lib/renderers/Form/Item.d.ts +10 -14
  269. package/lib/renderers/Form/Item.js +18 -9
  270. package/lib/renderers/Form/Item.js.map +2 -2
  271. package/lib/renderers/Form/NestedSelect.d.ts +1 -0
  272. package/lib/renderers/Form/NestedSelect.js +8 -4
  273. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  274. package/lib/renderers/Form/Options.js +9 -7
  275. package/lib/renderers/Form/Options.js.map +2 -2
  276. package/lib/renderers/Form/Select.d.ts +2 -0
  277. package/lib/renderers/Form/Select.js +9 -6
  278. package/lib/renderers/Form/Select.js.map +2 -2
  279. package/lib/renderers/Form/TabsTransfer.d.ts +5 -32
  280. package/lib/renderers/Form/TabsTransfer.js +20 -1
  281. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  282. package/lib/renderers/Form/TabsTransferPicker.d.ts +5 -35
  283. package/lib/renderers/Form/TabsTransferPicker.js +21 -2
  284. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  285. package/lib/renderers/Form/Transfer.d.ts +15 -4
  286. package/lib/renderers/Form/Transfer.js +55 -18
  287. package/lib/renderers/Form/Transfer.js.map +2 -2
  288. package/lib/renderers/Form/TransferPicker.d.ts +3 -32
  289. package/lib/renderers/Form/TransferPicker.js +1 -1
  290. package/lib/renderers/Form/TransferPicker.js.map +2 -2
  291. package/lib/renderers/Form/TreeSelect.js +4 -4
  292. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  293. package/lib/renderers/Form/index.js +10 -2
  294. package/lib/renderers/Form/index.js.map +2 -2
  295. package/lib/renderers/IFrame.js +0 -2
  296. package/lib/renderers/IFrame.js.map +2 -2
  297. package/lib/renderers/Link.d.ts +1 -1
  298. package/lib/renderers/Link.js +27 -6
  299. package/lib/renderers/Link.js.map +2 -2
  300. package/lib/renderers/Nav.d.ts +21 -21
  301. package/lib/renderers/Nav.js +4 -1
  302. package/lib/renderers/Nav.js.map +2 -2
  303. package/lib/renderers/Remark.d.ts +5 -1
  304. package/lib/renderers/Remark.js +39 -7
  305. package/lib/renderers/Remark.js.map +2 -2
  306. package/lib/renderers/Steps.js +5 -5
  307. package/lib/renderers/Steps.js.map +2 -2
  308. package/lib/renderers/Table/TableRow.js +4 -1
  309. package/lib/renderers/Table/TableRow.js.map +2 -2
  310. package/lib/renderers/Table/index.js +4 -1
  311. package/lib/renderers/Table/index.js.map +2 -2
  312. package/lib/renderers/Tabs.js +1 -1
  313. package/lib/renderers/Tabs.js.map +2 -2
  314. package/lib/renderers/Timeline.d.ts +65 -0
  315. package/lib/renderers/Timeline.js +54 -0
  316. package/lib/renderers/Timeline.js.map +13 -0
  317. package/lib/renderers/Video.js.map +2 -2
  318. package/lib/schemaExtend.js +23 -9
  319. package/lib/schemaExtend.js.map +2 -2
  320. package/lib/store/combo.js.map +2 -2
  321. package/lib/store/formItem.js +7 -7
  322. package/lib/store/formItem.js.map +2 -2
  323. package/lib/store/table.js +1 -1
  324. package/lib/store/table.js.map +2 -2
  325. package/lib/themes/ang-ie11.css +1149 -53
  326. package/lib/themes/ang.css +1149 -53
  327. package/lib/themes/ang.css.map +1 -1
  328. package/lib/themes/antd-ie11.css +1187 -53
  329. package/lib/themes/antd.css +1187 -53
  330. package/lib/themes/antd.css.map +1 -1
  331. package/lib/themes/cxd-ie11.css +1190 -71
  332. package/lib/themes/cxd.css +1190 -71
  333. package/lib/themes/cxd.css.map +1 -1
  334. package/lib/themes/dark-ie11.css +1152 -53
  335. package/lib/themes/dark.css +1152 -53
  336. package/lib/themes/dark.css.map +1 -1
  337. package/lib/themes/default.css +1190 -71
  338. package/lib/themes/default.css.map +1 -1
  339. package/lib/utils/RootClose.js +3 -1
  340. package/lib/utils/RootClose.js.map +2 -2
  341. package/lib/utils/api.js +14 -3
  342. package/lib/utils/api.js.map +2 -2
  343. package/lib/utils/debug.d.ts +26 -0
  344. package/lib/utils/debug.js +351 -0
  345. package/lib/utils/debug.js.map +13 -0
  346. package/lib/utils/helper.d.ts +1 -6
  347. package/lib/utils/helper.js +6 -17
  348. package/lib/utils/helper.js.map +2 -2
  349. package/lib/utils/renderer-event.d.ts +38 -0
  350. package/lib/utils/renderer-event.js +28 -0
  351. package/lib/utils/renderer-event.js.map +13 -0
  352. package/package.json +12 -6
  353. package/schema.json +3483 -810
  354. package/scss/_properties.scss +20 -6
  355. package/scss/_variables.scss +1 -0
  356. package/scss/components/_avatar.scss +27 -9
  357. package/scss/components/_calendar.scss +291 -0
  358. package/scss/components/_card.scss +1 -1
  359. package/scss/components/_cascader.scss +102 -0
  360. package/scss/components/_city-area.scss +27 -0
  361. package/scss/components/_collapse-group.scss +1 -3
  362. package/scss/components/_debug.scss +167 -0
  363. package/scss/components/_dropdown.scss +39 -9
  364. package/scss/components/_formula.scss +30 -6
  365. package/scss/components/_modal.scss +18 -0
  366. package/scss/components/_panel.scss +45 -0
  367. package/scss/components/_picker-columns.scss +15 -5
  368. package/scss/components/_popup.scss +43 -16
  369. package/scss/components/_result-box.scss +31 -0
  370. package/scss/components/_timeline.scss +198 -0
  371. package/scss/components/form/_checks.scss +2 -0
  372. package/scss/components/form/_color.scss +2 -2
  373. package/scss/components/form/_date-range.scss +34 -1
  374. package/scss/components/form/_date.scss +46 -1
  375. package/scss/components/form/_form.scss +170 -0
  376. package/scss/components/form/_nested-select.scss +3 -0
  377. package/scss/components/form/_result-list.scss +2 -0
  378. package/scss/components/form/_select.scss +32 -3
  379. package/scss/components/form/_selection.scss +5 -4
  380. package/scss/components/form/_transfer.scss +3 -0
  381. package/scss/components/form/_tree-select.scss +1 -1
  382. package/scss/themes/_antd-variables.scss +45 -0
  383. package/scss/themes/_common.scss +5 -0
  384. package/scss/themes/_cxd-variables.scss +51 -2
  385. package/scss/themes/_dark-variables.scss +4 -0
  386. package/scss/themes/cxd.scss +0 -19
  387. package/sdk/ang-ie11.css +1450 -142
  388. package/sdk/ang.css +1473 -159
  389. package/sdk/antd-ie11.css +1451 -142
  390. package/sdk/antd.css +1511 -159
  391. package/sdk/charts.js +15 -15
  392. package/sdk/codemirror.js +7 -7
  393. package/sdk/color-picker.js +65 -65
  394. package/sdk/cropperjs.js +2 -2
  395. package/sdk/cxd-ie11.css +1449 -159
  396. package/sdk/cxd.css +1514 -179
  397. package/sdk/dark-ie11.css +1450 -142
  398. package/sdk/dark.css +1476 -159
  399. package/sdk/exceljs.js +1 -1
  400. package/sdk/helper.css.map +1 -1
  401. package/sdk/locale/de-DE.js +17 -2
  402. package/sdk/markdown.js +69 -69
  403. package/sdk/papaparse.js +1 -1
  404. package/sdk/renderers/Form/CityDB.js +1 -1
  405. package/sdk/rest.js +18 -18
  406. package/sdk/rich-text.js +62 -62
  407. package/sdk/sdk-ie11.css +1449 -159
  408. package/sdk/sdk.css +1514 -179
  409. package/sdk/sdk.js +1311 -1253
  410. package/sdk/thirds/hls.js/hls.js +1 -1
  411. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  412. package/sdk/tinymce.js +57 -57
  413. package/src/RootRenderer.tsx +27 -1
  414. package/src/Schema.ts +3 -0
  415. package/src/SchemaRenderer.tsx +70 -4
  416. package/src/Scoped.tsx +46 -4
  417. package/src/actions/Action.ts +138 -0
  418. package/src/actions/AjaxAction.ts +58 -0
  419. package/src/actions/BreakAction.ts +27 -0
  420. package/src/actions/BroadcastAction.ts +41 -0
  421. package/src/actions/CmptAction.ts +36 -0
  422. package/src/actions/ContinueAction.ts +27 -0
  423. package/src/actions/CopyAction.ts +41 -0
  424. package/src/actions/CustomAction.ts +46 -0
  425. package/src/actions/DialogAction.ts +28 -0
  426. package/src/actions/DrawerAction.ts +28 -0
  427. package/src/actions/EmailAction.ts +38 -0
  428. package/src/actions/LoopAction.ts +77 -0
  429. package/src/actions/OpenPageAction.ts +39 -0
  430. package/src/actions/ParallelAction.ts +26 -0
  431. package/src/actions/SwitchAction.ts +35 -0
  432. package/src/actions/index.ts +20 -0
  433. package/src/components/AssociatedSelection.tsx +5 -1
  434. package/src/components/Avatar.tsx +253 -0
  435. package/src/components/BaiduMapPicker.tsx +19 -14
  436. package/src/components/CalendarMobile.tsx +658 -0
  437. package/src/components/Cascader.tsx +564 -0
  438. package/src/components/ChainedSelection.tsx +16 -3
  439. package/src/components/CityArea.tsx +315 -0
  440. package/src/components/ColorPicker.tsx +41 -40
  441. package/src/components/DatePicker.tsx +80 -34
  442. package/src/components/DateRangePicker.tsx +85 -30
  443. package/src/components/GroupedSelection.tsx +14 -2
  444. package/src/components/MonthRangePicker.tsx +78 -31
  445. package/src/components/Overlay.tsx +1 -1
  446. package/src/components/Picker.tsx +55 -35
  447. package/src/components/PickerColumn.tsx +43 -36
  448. package/src/components/PickerContainer.tsx +13 -1
  449. package/src/components/PopOverContainer.tsx +31 -17
  450. package/src/components/PopUp.tsx +84 -57
  451. package/src/components/ResultBox.tsx +14 -2
  452. package/src/components/ResultList.tsx +36 -6
  453. package/src/components/Select.tsx +24 -26
  454. package/src/components/Selection.tsx +21 -3
  455. package/src/components/Steps.tsx +23 -10
  456. package/src/components/TableSelection.tsx +1 -44
  457. package/src/components/Tabs.tsx +65 -54
  458. package/src/components/TabsTransfer.tsx +78 -9
  459. package/src/components/TabsTransferPicker.tsx +25 -13
  460. package/src/components/Timeline.tsx +36 -0
  461. package/src/components/TimelineItem.tsx +140 -0
  462. package/src/components/Transfer.tsx +11 -8
  463. package/src/components/TransferDropDown.tsx +20 -12
  464. package/src/components/TransferPicker.tsx +25 -4
  465. package/src/components/TreeSelection.tsx +7 -1
  466. package/src/components/calendar/Calendar.tsx +101 -4
  467. package/src/components/calendar/DaysView.tsx +165 -33
  468. package/src/components/calendar/MonthsView.tsx +108 -1
  469. package/src/components/calendar/QuartersView.tsx +3 -2
  470. package/src/components/calendar/TimeView.tsx +104 -41
  471. package/src/components/calendar/YearsView.tsx +34 -17
  472. package/src/components/condition-builder/Field.tsx +1 -3
  473. package/src/components/condition-builder/Func.tsx +1 -1
  474. package/src/components/formula/Editor.tsx +16 -11
  475. package/src/components/formula/FuncList.tsx +3 -1
  476. package/src/components/formula/Picker.tsx +2 -1
  477. package/src/components/formula/plugin.ts +0 -2
  478. package/src/components/icons.tsx +2 -0
  479. package/src/components/index.tsx +2 -0
  480. package/src/components/virtual-list/SizeAndPositionManager.ts +6 -3
  481. package/src/components/virtual-list/index.tsx +4 -6
  482. package/src/env.tsx +22 -0
  483. package/src/factory.tsx +93 -1
  484. package/src/icons/tree-down.svg +5 -0
  485. package/src/index.tsx +5 -0
  486. package/src/locale/de-DE.ts +17 -2
  487. package/src/locale/en-US.ts +17 -2
  488. package/src/locale/zh-CN.ts +16 -1
  489. package/src/renderers/Action.tsx +11 -2
  490. package/src/renderers/Avatar.tsx +83 -74
  491. package/src/renderers/CRUD.tsx +1 -3
  492. package/src/renderers/Card.tsx +10 -6
  493. package/src/renderers/Custom.tsx +7 -4
  494. package/src/renderers/DropDownButton.tsx +69 -35
  495. package/src/renderers/Each.tsx +4 -4
  496. package/src/renderers/Flex.tsx +3 -7
  497. package/src/renderers/Form/ChartRadios.tsx +2 -7
  498. package/src/renderers/Form/Checkboxes.tsx +1 -1
  499. package/src/renderers/Form/CityDB.ts +526 -2
  500. package/src/renderers/Form/DiffEditor.tsx +2 -3
  501. package/src/renderers/Form/InputCity.tsx +23 -3
  502. package/src/renderers/Form/InputColor.tsx +21 -2
  503. package/src/renderers/Form/InputDate.tsx +48 -20
  504. package/src/renderers/Form/InputDateRange.tsx +9 -2
  505. package/src/renderers/Form/InputFormula.tsx +9 -4
  506. package/src/renderers/Form/InputImage.tsx +9 -4
  507. package/src/renderers/Form/InputMonthRange.tsx +0 -1
  508. package/src/renderers/Form/InputQuarterRange.tsx +0 -1
  509. package/src/renderers/Form/InputYearRange.tsx +0 -1
  510. package/src/renderers/Form/Item.tsx +29 -8
  511. package/src/renderers/Form/NestedSelect.tsx +32 -4
  512. package/src/renderers/Form/Options.tsx +15 -7
  513. package/src/renderers/Form/Select.tsx +21 -5
  514. package/src/renderers/Form/TabsTransfer.tsx +28 -38
  515. package/src/renderers/Form/TabsTransferPicker.tsx +28 -46
  516. package/src/renderers/Form/Transfer.tsx +75 -24
  517. package/src/renderers/Form/TransferPicker.tsx +6 -38
  518. package/src/renderers/Form/TreeSelect.tsx +18 -16
  519. package/src/renderers/Form/index.tsx +9 -2
  520. package/src/renderers/IFrame.tsx +0 -2
  521. package/src/renderers/Link.tsx +18 -3
  522. package/src/renderers/Nav.tsx +4 -1
  523. package/src/renderers/Remark.tsx +68 -18
  524. package/src/renderers/Steps.tsx +11 -13
  525. package/src/renderers/Table/TableRow.tsx +3 -1
  526. package/src/renderers/Table/index.tsx +7 -1
  527. package/src/renderers/Tabs.tsx +6 -2
  528. package/src/renderers/Timeline.tsx +141 -0
  529. package/src/renderers/Video.tsx +4 -20
  530. package/src/schemaExtend.ts +22 -10
  531. package/src/store/combo.ts +1 -3
  532. package/src/store/formItem.ts +3 -3
  533. package/src/store/table.ts +2 -1
  534. package/src/utils/RootClose.ts +5 -1
  535. package/src/utils/api.ts +15 -2
  536. package/src/utils/debug.tsx +438 -0
  537. package/src/utils/helper.ts +6 -16
  538. package/src/utils/renderer-event.ts +75 -0
@@ -5,7 +5,7 @@ import React from 'react';
5
5
  import ResultBox from './ResultBox';
6
6
  import {Icon} from './icons';
7
7
  import PickerContainer from './PickerContainer';
8
- import {autobind} from '../utils/helper';
8
+ import {autobind, mapTree} from '../utils/helper';
9
9
  import TabsTransfer, {TabsTransferProps} from './TabsTransfer';
10
10
 
11
11
  export interface TabsTransferPickerProps
@@ -15,18 +15,12 @@ export interface TabsTransferPickerProps
15
15
  }
16
16
 
17
17
  export class TransferPicker extends React.Component<TabsTransferPickerProps> {
18
- @autobind
19
- handleClose() {
20
- this.setState({
21
- inputValue: '',
22
- searchResult: null
23
- });
24
- }
18
+ optionModified = false;
25
19
 
26
20
  @autobind
27
21
  handleConfirm(value: any) {
28
- this.props.onChange?.(value);
29
- this.handleClose();
22
+ this.props.onChange?.(value, this.optionModified);
23
+ this.optionModified = false;
30
24
  }
31
25
 
32
26
  render() {
@@ -44,12 +38,30 @@ export class TransferPicker extends React.Component<TabsTransferPickerProps> {
44
38
  return (
45
39
  <PickerContainer
46
40
  title={__('Select.placeholder')}
47
- bodyRender={({onClose, value, onChange}) => {
48
- return <TabsTransfer {...rest} value={value} onChange={onChange} />;
41
+ bodyRender={({onClose, value, onChange, setState, ...states}) => {
42
+ return (
43
+ <TabsTransfer
44
+ {...rest}
45
+ {...states}
46
+ value={value}
47
+ onChange={(value: any, optionModified) => {
48
+ if (optionModified) {
49
+ let options = mapTree(rest.options, item => {
50
+ return (
51
+ value.find((a: any) => a.value === item.value) || item
52
+ );
53
+ });
54
+ this.optionModified = true;
55
+ setState({options, value});
56
+ } else {
57
+ onChange(value);
58
+ }
59
+ }}
60
+ />
61
+ );
49
62
  }}
50
63
  value={value}
51
64
  onConfirm={this.handleConfirm}
52
- onCancel={this.handleClose}
53
65
  size={size}
54
66
  >
55
67
  {({onClick, isOpened}) => (
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import {themeable, ThemeProps} from '../theme';
3
+ import TimelineItem, {TimelineItemProps} from './TimelineItem';
4
+
5
+ export interface TimelineProps extends ThemeProps {
6
+ items: Array<TimelineItemProps>;
7
+ direction?: 'vertical' | 'horizontal';
8
+ reverse?: boolean;
9
+ mode?: 'left' | 'right' | 'alternate';
10
+ }
11
+
12
+ export function Timeline(props: TimelineProps) {
13
+ const {
14
+ items,
15
+ classnames: cx,
16
+ direction = 'vertical',
17
+ reverse = false,
18
+ mode = 'right'
19
+ } = props;
20
+
21
+ const timelineDatasource = items?.slice();
22
+
23
+ reverse && timelineDatasource?.reverse();
24
+
25
+ return (
26
+ <div
27
+ className={cx('Timeline', `Timeline-${direction}`, `Timeline-${mode}`)}
28
+ >
29
+ {timelineDatasource?.map((item: TimelineItemProps, index: number) => (
30
+ <TimelineItem {...item} key={`TimelineItem-${index}`} />
31
+ ))}
32
+ </div>
33
+ );
34
+ }
35
+
36
+ export default themeable(Timeline);
@@ -0,0 +1,140 @@
1
+ import React, {ReactNode, useState} from 'react';
2
+ import {localeable, LocaleProps} from '../locale';
3
+ import {SchemaExpression} from '../Schema';
4
+ import {themeable, ThemeProps} from '../theme';
5
+ import {Icon} from './icons';
6
+
7
+ export interface TimelineItemProps {
8
+ /**
9
+ * 时间点
10
+ */
11
+ time: string;
12
+
13
+ /**
14
+ * 事件名称
15
+ */
16
+ title?: string | ReactNode;
17
+
18
+ /**
19
+ * 详细内容
20
+ */
21
+ detail?: string;
22
+
23
+ /**
24
+ * detail折叠时文案
25
+ */
26
+ detailCollapsedText?: string;
27
+
28
+ /**
29
+ * detail展开时文案
30
+ */
31
+ detailExpandedText?: string;
32
+
33
+ /**
34
+ * 时间点圆圈颜色,可传入英文/颜色值/level样式(info、success、warning、danger)
35
+ */
36
+ color?: SchemaExpression;
37
+
38
+ /**
39
+ * 图标
40
+ */
41
+ icon?: string | ReactNode;
42
+ }
43
+
44
+ export interface TimelineItem
45
+ extends ThemeProps,
46
+ LocaleProps,
47
+ TimelineItemProps {
48
+ key: string;
49
+ }
50
+
51
+ export function TimelineItem(props: TimelineItem) {
52
+ const {
53
+ time,
54
+ title,
55
+ detail,
56
+ detailCollapsedText,
57
+ detailExpandedText,
58
+ color,
59
+ icon,
60
+ classnames: cx,
61
+ translate: __,
62
+ key
63
+ } = props;
64
+
65
+ const [detailVisible, setDetailVisible] = useState<boolean>(false);
66
+
67
+ const renderDetail = (
68
+ detail: string,
69
+ detailCollapsedText: string = __('Timeline.collapseText'),
70
+ detailExpandedText: string = __('Timeline.expandText')
71
+ ): ReactNode => {
72
+ return (
73
+ <>
74
+ <div
75
+ className={cx('TimelineItem-detail-button')}
76
+ onClick={() => setDetailVisible(!detailVisible)}
77
+ >
78
+ {detailVisible ? detailExpandedText : detailCollapsedText}
79
+ <div
80
+ className={cx(
81
+ 'TimelineItem-detail-arrow',
82
+ `${detailVisible && 'TimelineItem-detail-arrow-top'}`
83
+ )}
84
+ >
85
+ <Icon icon="tree-down" />
86
+ </div>
87
+ </div>
88
+ <div
89
+ className={cx(
90
+ `${
91
+ detailVisible
92
+ ? 'TimelineItem-detail-visible'
93
+ : 'TimelineItem-detail-invisible'
94
+ }`
95
+ )}
96
+ >
97
+ {detail}
98
+ </div>
99
+ </>
100
+ );
101
+ };
102
+
103
+ // 判断是否为颜色值
104
+ const isColorVal = color && /^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/.test(color);
105
+
106
+ // 取level级颜色
107
+ const levelColor = !isColorVal && color;
108
+
109
+ return (
110
+ <div className={cx('TimelineItem')} key={key}>
111
+ <div className={cx('TimelineItem-axle')}>
112
+ <div className={cx('TimelineItem-line')}></div>
113
+ {icon ? (
114
+ <div className={cx('TimelineItem-icon')}>
115
+ <Icon icon={icon} className="icon" />
116
+ </div>
117
+ ) : (
118
+ <div
119
+ className={cx(
120
+ 'TimelineItem-round',
121
+ levelColor && `TimelineItem-round--${levelColor}`
122
+ )}
123
+ style={isColorVal ? {backgroundColor: color} : undefined}
124
+ ></div>
125
+ )}
126
+ </div>
127
+ <div className={cx('TimelineItem-content')}>
128
+ <div className={cx('TimelineItem-time')}>{time}</div>
129
+ <div className={cx('TimelineItem-title')}>{title}</div>
130
+ {detail && (
131
+ <div className={cx('TimelineItem-detail')}>
132
+ {renderDetail(detail, detailCollapsedText, detailExpandedText)}
133
+ </div>
134
+ )}
135
+ </div>
136
+ </div>
137
+ );
138
+ }
139
+
140
+ export default themeable(localeable(TimelineItem));
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import {ThemeProps, themeable} from '../theme';
3
- import {BaseSelectionProps, BaseSelection} from './Selection';
3
+ import {BaseSelectionProps, BaseSelection, ItemRenderStates} from './Selection';
4
4
  import {Options, Option} from './Select';
5
5
  import {uncontrollable} from 'uncontrollable';
6
6
  import ResultList from './ResultList';
@@ -14,11 +14,12 @@ import AssociatedSelection from './AssociatedSelection';
14
14
  import {LocaleProps, localeable} from '../locale';
15
15
  import GroupedSelection from './GroupedSelection';
16
16
  import ChainedSelection from './ChainedSelection';
17
+ import {ItemRenderStates as ResultItemRenderStates} from './ResultList';
17
18
 
18
19
  export interface TransferProps
19
20
  extends ThemeProps,
20
21
  LocaleProps,
21
- BaseSelectionProps {
22
+ Omit<BaseSelectionProps, 'itemRender'> {
22
23
  inline?: boolean;
23
24
  statistics?: boolean;
24
25
  showArrow?: boolean;
@@ -55,6 +56,7 @@ export interface TransferProps
55
56
  }>;
56
57
  searchPlaceholder?: string;
57
58
  noResultsText?: string;
59
+ onChange?: (value: Array<Option>, optionModified?: boolean) => void;
58
60
  onSearch?: (
59
61
  term: string,
60
62
  setCancel: (cancel: () => void) => void
@@ -70,8 +72,11 @@ export interface TransferProps
70
72
  ) => JSX.Element;
71
73
 
72
74
  resultTitle?: string;
73
- optionItemRender?: (option: Option) => JSX.Element;
74
- resultItemRender?: (option: Option) => JSX.Element;
75
+ optionItemRender?: (option: Option, states: ItemRenderStates) => JSX.Element;
76
+ resultItemRender?: (
77
+ option: Option,
78
+ states: ResultItemRenderStates
79
+ ) => JSX.Element;
75
80
  sortable?: boolean;
76
81
  }
77
82
 
@@ -83,9 +88,8 @@ export interface TransferState {
83
88
  export class Transfer<
84
89
  T extends TransferProps = TransferProps
85
90
  > extends React.Component<T, TransferState> {
86
- static defaultProps: Pick<TransferProps, 'itemRender' | 'multiple'> = {
87
- multiple: true,
88
- itemRender: (option: Option) => <span>{option.label}</span>
91
+ static defaultProps: Pick<TransferProps, 'multiple'> = {
92
+ multiple: true
89
93
  };
90
94
 
91
95
  state = {
@@ -382,7 +386,6 @@ export class Transfer<
382
386
  option2value={option2value}
383
387
  onDeferLoad={onDeferLoad}
384
388
  cellRender={cellRender}
385
- itemRender={optionItemRender}
386
389
  multiple={multiple}
387
390
  />
388
391
  ) : selectMode === 'tree' ? (
@@ -7,11 +7,13 @@ import ResultBox from './ResultBox';
7
7
  import {Icon} from './icons';
8
8
  import InputBox from './InputBox';
9
9
  import PopOverContainer from './PopOverContainer';
10
+ import {isMobile} from '../utils/helper';
10
11
 
11
12
  export interface TransferDropDownProps extends TransferProps {
12
13
  // 新的属性?
13
14
  multiple?: boolean;
14
15
  borderMode?: 'full' | 'half' | 'none';
16
+ useMobileUI?: boolean;
15
17
  }
16
18
 
17
19
  export class TransferDropDown extends Transfer<TransferDropDownProps> {
@@ -25,15 +27,22 @@ export class TransferDropDown extends Transfer<TransferDropDownProps> {
25
27
  onChange,
26
28
  onSearch,
27
29
  multiple,
28
- borderMode
30
+ borderMode,
31
+ useMobileUI
29
32
  } = this.props;
30
33
  const {inputValue, searchResult} = this.state;
31
34
 
35
+ const mobileUI = useMobileUI && isMobile();
32
36
  return (
33
37
  <PopOverContainer
38
+ useMobileUI={useMobileUI}
34
39
  popOverClassName={cx('TransferDropDown-popover')}
35
40
  popOverRender={({onClose}) => (
36
- <div className={cx('TransferDropDown-content')}>
41
+ <div
42
+ className={cx('TransferDropDown-content', {
43
+ 'is-mobile': mobileUI
44
+ })}
45
+ >
37
46
  {onSearch ? (
38
47
  <div className={cx('Transfer-search')}>
39
48
  <InputBox
@@ -88,22 +97,21 @@ export class TransferDropDown extends Transfer<TransferDropDownProps> {
88
97
  )}
89
98
  borderMode={borderMode}
90
99
  allowInput={false}
91
- result={
92
- multiple
93
- ? value
94
- : value?.[0]
95
- ? this.props.itemRender(value[0])
96
- : null
97
- }
100
+ result={multiple ? value : value?.[0] ? value?.[0] : null}
98
101
  onResultChange={onChange}
99
102
  onResultClick={onClick}
100
103
  placeholder={__('Select.placeholder')}
101
104
  disabled={disabled}
102
105
  ref={ref}
106
+ useMobileUI={useMobileUI}
103
107
  >
104
- <span className={cx('TransferDropDown-icon')}>
105
- <Icon icon="caret" className="icon" />
106
- </span>
108
+ {!mobileUI ? (
109
+ <span className={cx('TransferDropDown-icon')}>
110
+ <Icon icon="caret" className="icon" />
111
+ </span>
112
+ ) : (
113
+ <></>
114
+ )}
107
115
  </ResultBox>
108
116
  )}
109
117
  </PopOverContainer>
@@ -6,7 +6,7 @@ import React from 'react';
6
6
  import ResultBox from './ResultBox';
7
7
  import {Icon} from './icons';
8
8
  import PickerContainer from './PickerContainer';
9
- import {autobind} from '../utils/helper';
9
+ import {autobind, mapTree} from '../utils/helper';
10
10
 
11
11
  export interface TransferPickerProps extends Omit<TransferProps, 'itemRender'> {
12
12
  // 新的属性?
@@ -19,9 +19,11 @@ export interface TransferPickerProps extends Omit<TransferProps, 'itemRender'> {
19
19
  }
20
20
 
21
21
  export class TransferPicker extends React.Component<TransferPickerProps> {
22
+ optionModified = false;
22
23
  @autobind
23
24
  handleConfirm(value: any) {
24
- this.props.onChange?.(value);
25
+ this.props.onChange?.(value, this.optionModified);
26
+ this.optionModified = false;
25
27
  }
26
28
 
27
29
  render() {
@@ -40,8 +42,27 @@ export class TransferPicker extends React.Component<TransferPickerProps> {
40
42
  return (
41
43
  <PickerContainer
42
44
  title={__('Select.placeholder')}
43
- bodyRender={({onClose, value, onChange}) => {
44
- return <Transfer {...rest} value={value} onChange={onChange} />;
45
+ bodyRender={({onClose, value, onChange, setState, ...states}) => {
46
+ return (
47
+ <Transfer
48
+ {...rest}
49
+ {...states}
50
+ value={value}
51
+ onChange={(value: any, optionModified) => {
52
+ if (optionModified) {
53
+ let options = mapTree(rest.options, item => {
54
+ return (
55
+ value.find((a: any) => a.value === item.value) || item
56
+ );
57
+ });
58
+ this.optionModified = true;
59
+ setState({options, value});
60
+ } else {
61
+ onChange(value);
62
+ }
63
+ }}
64
+ />
65
+ );
45
66
  }}
46
67
  value={value}
47
68
  onConfirm={this.handleConfirm}
@@ -239,7 +239,13 @@ export class TreeSelection extends BaseSelection<
239
239
  ) : null}
240
240
 
241
241
  <div className={cx('TreeSelection-itemLabel')}>
242
- {itemRender(option)}
242
+ {itemRender(option, {
243
+ index: index,
244
+ multiple: multiple,
245
+ checked: checked,
246
+ onChange: () => this.toggleOption(option),
247
+ disabled: disabled || option.disabled
248
+ })}
243
249
  </div>
244
250
 
245
251
  {option.defer && option.loading ? <Spinner show size="sm" /> : null}
@@ -7,7 +7,23 @@ import CustomCalendarContainer from './CalendarContainer';
7
7
  import cx from 'classnames';
8
8
  import moment from 'moment';
9
9
  import {themeable, ThemeOutterProps, ThemeProps} from '../../theme';
10
- import {convertDateArrayToDate} from "../../utils/helper";
10
+ import {convertArrayValueToMoment, getRange} from "../../utils/helper";
11
+ import {PickerOption} from '../PickerColumn';
12
+
13
+ export type DateType = 'year' | 'month' | 'date' | 'hours' | 'minutes' | 'seconds';
14
+ export interface BoundaryObject {
15
+ max: number;
16
+ min: number;
17
+ }
18
+
19
+ export interface DateBoundary {
20
+ year: BoundaryObject;
21
+ month: BoundaryObject;
22
+ date: BoundaryObject;
23
+ hours: BoundaryObject;
24
+ minutes: BoundaryObject;
25
+ seconds: BoundaryObject;
26
+ }
11
27
 
12
28
  interface BaseDatePickerProps
13
29
  extends Omit<ReactDatePicker.DatetimepickerProps, 'viewMode'> {
@@ -18,6 +34,7 @@ interface BaseDatePickerProps
18
34
  onClose?: () => void;
19
35
  isEndDate?: boolean;
20
36
  minDate?: moment.Moment;
37
+ maxDate?: moment.Moment;
21
38
  renderDay?: (
22
39
  props: any,
23
40
  currentDate: moment.Moment,
@@ -37,6 +54,11 @@ interface BaseDatePickerProps
37
54
  }>;
38
55
  largeMode?: boolean;
39
56
  onScheduleClick?: (scheduleData: any) => void;
57
+ hideHeader?: boolean;
58
+ updateOn?: string;
59
+ useMobileUI?: boolean;
60
+ embed?: boolean;
61
+ showToolbar?: boolean;
40
62
  }
41
63
 
42
64
  class BaseDatePicker extends ReactDatePicker {
@@ -45,6 +67,16 @@ class BaseDatePicker extends ReactDatePicker {
45
67
  setState: (state: any) => void;
46
68
  getStateFromProps: any;
47
69
 
70
+ timeCellLength = {
71
+ year: 4,
72
+ month: 2,
73
+ date: 2,
74
+ hours: 2,
75
+ minutes: 2,
76
+ seconds: 2,
77
+ milliseconds: 3
78
+ };
79
+
48
80
  constructor(props: any) {
49
81
  super(props);
50
82
  const state = this.getStateFromProps(this.props);
@@ -92,8 +124,15 @@ class BaseDatePicker extends ReactDatePicker {
92
124
  'isEndDate',
93
125
  'classnames',
94
126
  'minDate',
127
+ 'maxDate',
95
128
  'schedules',
96
129
  'largeMode',
130
+ 'onScheduleClick',
131
+ 'hideHeader',
132
+ 'updateOn',
133
+ 'useMobileUI',
134
+ 'showToolbar',
135
+ 'embed',
97
136
  'onScheduleClick'
98
137
  ].forEach(key => (props[key] = (this.props as any)[key]));
99
138
 
@@ -192,10 +231,58 @@ class BaseDatePicker extends ReactDatePicker {
192
231
  that.props.onChange(date);
193
232
  };
194
233
 
234
+ getDateBoundary = (currentDate: moment.Moment) => {
235
+ const {years, months} = currentDate.toObject();
236
+ const maxDateObject = this.props.maxDate?.toObject();
237
+ const minDateObject = this.props.minDate?.toObject();
238
+
239
+ const yearBoundary = {
240
+ max: maxDateObject ? maxDateObject.years : years + 100,
241
+ min: minDateObject ? minDateObject.years : years - 100,
242
+ };
243
+ const monthBoundary = {
244
+ max: years === maxDateObject?.years ? maxDateObject.months : 11,
245
+ min: years === minDateObject?.years ? minDateObject.months : 0
246
+ };
247
+ const dateBoundary = {
248
+ max: years === maxDateObject?.years && months === maxDateObject?.months ? maxDateObject.date : currentDate.daysInMonth(),
249
+ min: years === minDateObject?.years && months === minDateObject?.months ? minDateObject.date : 1
250
+ }
251
+ return {
252
+ year: yearBoundary,
253
+ month: monthBoundary,
254
+ date: dateBoundary,
255
+ hours: {max: 23, min: 0},
256
+ minutes: {max: 59, min: 0},
257
+ seconds: {max: 59, min: 0}
258
+ };
259
+ };
260
+
261
+ timeCell = (value: number, type: DateType) => {
262
+ let str = value + '';
263
+ while (str.length < this.timeCellLength[type])
264
+ str = '0' + str;
265
+ return str;
266
+ };
267
+
268
+ getColumns = (types: DateType[], dateBoundary: DateBoundary) => {
269
+ const columns: { options: PickerOption[] }[] = [];
270
+ types.map((type: DateType) => {
271
+ const options = getRange(dateBoundary[type].min, dateBoundary[type].max, 1).map(item => {
272
+
273
+ return {
274
+ text: type === 'month' ? this.timeCell(item+1, type) : this.timeCell(item, type),
275
+ value: item
276
+ };
277
+ });
278
+ columns.push({options})
279
+ });
280
+ return columns;
281
+ };
282
+
195
283
  onConfirm = (value: number[], types: string[]) => {
196
284
  const currentDate = (this.state.selectedDate || this.state.viewDate || moment()).clone();
197
-
198
- const date = convertDateArrayToDate(value, types, currentDate);
285
+ const date = convertArrayValueToMoment(value, types, currentDate);
199
286
 
200
287
  if (!this.props.value) {
201
288
  this.setState({
@@ -205,7 +292,7 @@ class BaseDatePicker extends ReactDatePicker {
205
292
  }
206
293
  this.props.onChange && this.props.onChange(date);
207
294
  this.props.onClose && this.props.onClose();
208
- }
295
+ };
209
296
 
210
297
 
211
298
  render() {
@@ -218,8 +305,18 @@ class BaseDatePicker extends ReactDatePicker {
218
305
  this.props.renderQuarter
219
306
  ];
220
307
  }
308
+ else if (this.props.viewMode === 'years') {
309
+ viewProps.updateOn = 'years';
310
+ }
311
+ else if (this.props.viewMode === 'months') {
312
+ viewProps.updateOn = 'months';
313
+ }
221
314
 
222
315
  viewProps.onConfirm = this.onConfirm;
316
+ viewProps.getDateBoundary = this.getDateBoundary;
317
+ viewProps.getColumns = this.getColumns;
318
+ viewProps.timeCell = this.timeCell;
319
+
223
320
  return (
224
321
  <div className={cx('rdt rdtStatic rdtOpen', this.props.className)}>
225
322
  <div key="dt" className="rdtPicker">