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
@@ -3,9 +3,13 @@ import moment from 'moment';
3
3
  import DaysView from 'react-datetime/src/DaysView';
4
4
  import React from 'react';
5
5
  import Downshift from 'downshift';
6
+ import find from 'lodash/find';
6
7
  import {LocaleProps, localeable} from '../../locale';
7
8
  import {ClassNamesFn} from '../../theme';
8
- import find from 'lodash/find';
9
+ import {isMobile, convertArrayValueToMoment} from "../../utils/helper";
10
+ import Picker from '../Picker';
11
+ import {PickerOption} from '../PickerColumn';
12
+ import {DateType} from './Calendar';
9
13
 
10
14
  interface CustomDaysViewProps extends LocaleProps {
11
15
  classPrefix?: string;
@@ -14,12 +18,16 @@ interface CustomDaysViewProps extends LocaleProps {
14
18
  viewDate: moment.Moment;
15
19
  selectedDate: moment.Moment;
16
20
  minDate: moment.Moment;
21
+ maxDate: moment.Moment;
22
+ useMobileUI: boolean;
23
+ embed: boolean;
17
24
  timeFormat: string;
18
25
  requiredConfirm?: boolean;
19
26
  isEndDate?: boolean;
20
27
  renderDay?: Function;
21
28
  onClose?: () => void;
22
29
  onChange: (value: moment.Moment) => void;
30
+ onConfirm?: (value: number[], types: DateType[]) => void;
23
31
  setDateTimeState: (state: any) => void;
24
32
  setTime: (type: string, amount: number) => void;
25
33
  subtractTime: (
@@ -41,20 +49,52 @@ interface CustomDaysViewProps extends LocaleProps {
41
49
  handleClickOutside: () => void;
42
50
  classnames: ClassNamesFn;
43
51
  schedules?: Array<{
44
- startTime: Date,
45
- endTime: Date,
46
- content: any,
47
- className?: string
52
+ startTime: Date;
53
+ endTime: Date;
54
+ content: any;
55
+ className?: string;
48
56
  }>;
49
57
  largeMode?: boolean;
50
58
  onScheduleClick?: (scheduleData: any) => void;
59
+ hideHeader?: boolean;
60
+ getColumns: (types: DateType[], dateBoundary: void) => any;
61
+ getDateBoundary: (currentDate: moment.Moment) => any;
51
62
  }
52
63
 
53
64
  export class CustomDaysView extends DaysView {
54
65
  props: CustomDaysViewProps;
66
+ state: { columns: { options: PickerOption[] }[]; types: DateType[]; pickerValue: number[]};
67
+ setState: (arg0: any) => () => any;
55
68
  getDaysOfWeek: (locale: any) => any;
56
69
  renderDays: () => JSX.Element;
57
70
 
71
+ constructor(props: any) {
72
+ super(props);
73
+
74
+ const {selectedDate, viewDate, timeFormat} = props;
75
+ const currentDate = (selectedDate || viewDate || moment());
76
+
77
+ const types: DateType[] = ['year', 'month', 'date'];
78
+ timeFormat.split(':').forEach((format: string) => {
79
+ const type: DateType | '' = /h/i.test(format)
80
+ ? 'hours'
81
+ : /m/.test(format)
82
+ ? 'minutes'
83
+ : /s/.test(format)
84
+ ? 'seconds'
85
+ : '';
86
+ type && types.push(type)
87
+ });
88
+
89
+ const dateBoundary = this.props.getDateBoundary(currentDate);
90
+ const columns = this.props.getColumns(types, dateBoundary);
91
+ this.state = {
92
+ columns,
93
+ types,
94
+ pickerValue: currentDate.toArray()
95
+ }
96
+ }
97
+
58
98
  updateSelectedDate = (event: React.MouseEvent<any>) => {
59
99
  // need confirm
60
100
  if (this.props.requiredConfirm) {
@@ -129,7 +169,12 @@ export class CustomDaysView extends DaysView {
129
169
  if (this.props.schedules) {
130
170
  let schedule: any[] = [];
131
171
  this.props.schedules.forEach((item: any) => {
132
- if (currentDate.isSameOrAfter(moment(item.startTime).subtract(1, 'days')) && currentDate.isSameOrBefore(item.endTime)) {
172
+ if (
173
+ currentDate.isSameOrAfter(
174
+ moment(item.startTime).subtract(1, 'days')
175
+ ) &&
176
+ currentDate.isSameOrBefore(item.endTime)
177
+ ) {
133
178
  schedule.push(item);
134
179
  }
135
180
  });
@@ -141,8 +186,11 @@ export class CustomDaysView extends DaysView {
141
186
  scheduleData: schedule.map((item: any) => {
142
187
  return {
143
188
  ...item,
144
- time: moment(item.startTime).format('YYYY-MM-DD HH:mm:ss') + ' - ' + moment(item.endTime).format('YYYY-MM-DD HH:mm:ss'),
145
- }
189
+ time:
190
+ moment(item.startTime).format('YYYY-MM-DD HH:mm:ss') +
191
+ ' - ' +
192
+ moment(item.endTime).format('YYYY-MM-DD HH:mm:ss')
193
+ };
146
194
  }),
147
195
  currentDate
148
196
  };
@@ -156,8 +204,7 @@ export class CustomDaysView extends DaysView {
156
204
  }
157
205
  if (moment(schedule[i].startTime).isSame(currentDate, 'day')) {
158
206
  showSchedule.push(schedule[i]);
159
- }
160
- else if (currentDate.weekday() === 0) {
207
+ } else if (currentDate.weekday() === 0) {
161
208
  // 周一重新设置日程
162
209
  showSchedule.push({
163
210
  ...schedule[i],
@@ -166,46 +213,86 @@ export class CustomDaysView extends DaysView {
166
213
  }
167
214
  }
168
215
  [0, 1, 2].forEach((i: number) => {
169
- const findSchedule = find(schedule, (item: any) => item.height === i);
170
- if (findSchedule && findSchedule !== showSchedule[i] && currentDate.weekday() !== 0) {
216
+ const findSchedule = find(
217
+ schedule,
218
+ (item: any) => item.height === i
219
+ );
220
+ if (
221
+ findSchedule &&
222
+ findSchedule !== showSchedule[i] &&
223
+ currentDate.weekday() !== 0
224
+ ) {
171
225
  // 生成一个空白格占位
172
226
  showSchedule.splice(i, 0, {
173
227
  width: 1,
174
228
  className: 'bg-transparent',
175
229
  content: ''
176
230
  });
177
- }
178
- else {
231
+ } else {
179
232
  showSchedule[i] && (showSchedule[i].height = i);
180
233
  }
181
234
  });
182
235
  // 最多展示3个
183
236
  showSchedule = showSchedule.slice(0, 3);
184
237
  const scheduleDiv = showSchedule.map((item: any, index: number) => {
185
- const width = item.width || Math.min(moment(item.endTime).diff(moment(item.startTime), 'days') + 1, 7 - moment(item.startTime).weekday());
186
- return <div key={props.key + 'content' + index}
187
- className={cx('ScheduleCalendar-large-schedule-content', item.className)}
188
- style={{width: width + '00%'}}
189
- onClick={() => this.props.onScheduleClick && this.props.onScheduleClick(scheduleData)}>
190
- <div className={cx('ScheduleCalendar-text-overflow')}>{item.content}</div>
191
- </div>;
238
+ const width =
239
+ item.width ||
240
+ Math.min(
241
+ moment(item.endTime).diff(moment(item.startTime), 'days') + 1,
242
+ 7 - moment(item.startTime).weekday()
243
+ );
244
+ return (
245
+ <div
246
+ key={props.key + 'content' + index}
247
+ className={cx(
248
+ 'ScheduleCalendar-large-schedule-content',
249
+ item.className
250
+ )}
251
+ style={{width: width + '00%'}}
252
+ onClick={() =>
253
+ this.props.onScheduleClick &&
254
+ this.props.onScheduleClick(scheduleData)
255
+ }
256
+ >
257
+ <div className={cx('ScheduleCalendar-text-overflow')}>
258
+ {item.content}
259
+ </div>
260
+ </div>
261
+ );
192
262
  });
193
- return <td {...props}>
263
+ return (
264
+ <td {...props}>
194
265
  <div className={cx('ScheduleCalendar-large-day-wrap')}>
195
- <div className={cx('ScheduleCalendar-large-schedule-header')}>{currentDate.date()}</div>
266
+ <div className={cx('ScheduleCalendar-large-schedule-header')}>
267
+ {currentDate.date()}
268
+ </div>
196
269
  {scheduleDiv}
197
- {schedule.length > 3 && <div className={cx('ScheduleCalendar-large-schedule-footer')}>{schedule.length - 3} {__('more')}</div>}
270
+ {schedule.length > 3 && (
271
+ <div className={cx('ScheduleCalendar-large-schedule-footer')}>
272
+ {schedule.length - 3} {__('more')}
273
+ </div>
274
+ )}
198
275
  </div>
199
- </td>
276
+ </td>
277
+ );
200
278
  }
201
279
 
202
280
  // 正常模式
203
- const ScheduleIcon = <span className={cx('ScheduleCalendar-icon', schedule[0].className)}
204
- onClick={() => this.props.onScheduleClick && this.props.onScheduleClick(scheduleData)}></span>;
205
- return <td {...props}>
206
- {currentDate.date()}
207
- {ScheduleIcon}
208
- </td>;
281
+ const ScheduleIcon = (
282
+ <span
283
+ className={cx('ScheduleCalendar-icon', schedule[0].className)}
284
+ onClick={() =>
285
+ this.props.onScheduleClick &&
286
+ this.props.onScheduleClick(scheduleData)
287
+ }
288
+ ></span>
289
+ );
290
+ return (
291
+ <td {...props}>
292
+ {currentDate.date()}
293
+ {ScheduleIcon}
294
+ </td>
295
+ );
209
296
  }
210
297
  }
211
298
  return <td {...props}>{currentDate.date()}</td>;
@@ -357,14 +444,59 @@ export class CustomDaysView extends DaysView {
357
444
  );
358
445
  };
359
446
 
447
+ onPickerConfirm = (value: number[]) => {
448
+ this.props.onConfirm && this.props.onConfirm(value, this.state.types);
449
+ }
450
+
451
+ onPickerChange = (value: number[], index: number) => {
452
+ const {selectedDate, viewDate} = this.props;
453
+
454
+ // 变更年份、月份的时候,需要更新columns
455
+ if (index === 1 || index === 0) {
456
+ const currentDate = (selectedDate || viewDate || moment()).clone();
457
+
458
+ // 只需计算year 、month
459
+ const selectDate = convertArrayValueToMoment(value, ['year', 'month'], currentDate);
460
+ const dateBoundary = this.props.getDateBoundary(selectDate);
461
+ this.setState({
462
+ columns: this.props.getColumns(this.state.types, dateBoundary),
463
+ pickerValue: value
464
+ });
465
+ }
466
+ }
467
+
468
+ renderPicker = () => {
469
+ const {translate: __} = this.props;
470
+ const title = this.state.types.length > 3 ? __('Date.titleTime') : __('Date.titleDate');
471
+ return (
472
+ <Picker
473
+ translate={this.props.translate}
474
+ locale={this.props.locale}
475
+ title={title}
476
+ columns={this.state.columns}
477
+ value={this.state.pickerValue}
478
+ onChange={this.onPickerChange}
479
+ onConfirm={this.onPickerConfirm}
480
+ onClose={this.cancel}
481
+ />
482
+ );
483
+ };
484
+
360
485
  render() {
486
+ const {viewDate: date, useMobileUI, embed} = this.props;
361
487
  const footer = this.renderFooter();
362
- const date = this.props.viewDate;
363
488
  const locale = date.localeData();
364
489
  const __ = this.props.translate;
490
+ if (isMobile() && useMobileUI && !embed) {
491
+ return (
492
+ <div className="rdtYears">
493
+ {this.renderPicker()}
494
+ </div>
495
+ );
496
+ }
365
497
 
366
498
  const tableChildren = [
367
- <thead key="th">
499
+ this.props.hideHeader ? null : <thead key="th">
368
500
  <tr>
369
501
  <th colSpan={7}>
370
502
  <div className="rdtHeader">
@@ -3,14 +3,20 @@ import MonthsView from 'react-datetime/src/MonthsView';
3
3
  import moment from 'moment';
4
4
  import React from 'react';
5
5
  import {LocaleProps, localeable, TranslateFn} from '../../locale';
6
+ import Picker from '../Picker';
7
+ import {PickerOption} from '../PickerColumn';
8
+ import {getRange, isMobile} from '../../utils/helper';
9
+ import {DateType} from './Calendar';
6
10
 
7
11
  export interface OtherProps {
8
12
  inputFormat?: string;
13
+ hideHeader?: boolean;
9
14
  }
10
15
 
11
16
  export class CustomMonthsView extends MonthsView {
12
17
  props: {
13
18
  viewDate: moment.Moment;
19
+ selectedDate: moment.Moment;
14
20
  subtractTime: (
15
21
  amount: number,
16
22
  type: string,
@@ -22,9 +28,38 @@ export class CustomMonthsView extends MonthsView {
22
28
  toSelected?: moment.Moment
23
29
  ) => () => void;
24
30
  showView: (view: string) => () => void;
31
+ minDate?: moment.Moment;
32
+ maxDate?: moment.Moment;
33
+ onChange?: () => void;
34
+ onClose?: () => void;
35
+ onConfirm?: (value: number[], types: string[]) => void;
36
+ getColumns: (types: DateType[], dateBoundary: void) => any;
37
+ timeCell: (value: number, type: DateType) => string;
38
+ getDateBoundary: (currentDate: moment.Moment) => any;
39
+ useMobileUI: boolean;
25
40
  } & LocaleProps &
26
41
  OtherProps;
42
+ maxDateObject: {year: number; month: number; day?: number};
43
+ minDateObject: {year: number; month: number; day?: number};
44
+ state: { columns: { options: PickerOption[] }[]; pickerValue: number[]};
45
+ setState: (arg0: any) => () => any;
27
46
  renderMonths: () => JSX.Element;
47
+
48
+
49
+ constructor(props: any) {
50
+ super(props);
51
+
52
+ const {selectedDate, viewDate} = props;
53
+ const currentDate = (selectedDate || viewDate || moment());
54
+
55
+ const dateBoundary = this.props.getDateBoundary(currentDate);
56
+ const columns = this.props.getColumns(['year', 'month'], dateBoundary);
57
+ this.state = {
58
+ columns,
59
+ pickerValue: currentDate.toArray()
60
+ }
61
+ }
62
+
28
63
  renderMonth = (props: any, month: number) => {
29
64
  var localMoment = this.props.viewDate;
30
65
  var monthStr = localMoment
@@ -40,11 +75,83 @@ export class CustomMonthsView extends MonthsView {
40
75
  </td>
41
76
  );
42
77
  };
78
+
79
+ onConfirm = (value: number[]) => {
80
+ this.props.onConfirm && this.props.onConfirm(value, ['year', 'month']);
81
+ };
82
+
83
+ onPickerChange = (value: number[], index: number) => {
84
+ const {maxDate, minDate} = this.props;
85
+ const year = moment().year();
86
+ const columns = [...this.state.columns];
87
+ const maxDateObject = maxDate
88
+ ? maxDate.toObject()
89
+ : {
90
+ years: year + 100,
91
+ months: 11
92
+ };
93
+ const minDateObject = minDate
94
+ ? minDate.toObject()
95
+ : {
96
+ years: year - 100,
97
+ months: 0
98
+ };
99
+ let range = [];
100
+ // 选择年份是最大值的年或者最小值的月时,需要重新计算月分选择的cloumn
101
+ if (index === 0) {
102
+ if (
103
+ value[0] === minDateObject.years &&
104
+ value[0] === maxDateObject.years
105
+ ) {
106
+ range = getRange(minDateObject.months, maxDateObject.months, 1);
107
+ }
108
+ else if (value[0] === minDateObject.years) {
109
+ range = getRange(minDateObject.months, 11, 1);
110
+ }
111
+ else if (value[0] === maxDateObject.years) {
112
+ range = getRange(0, maxDateObject.months, 1);
113
+ }
114
+ else {
115
+ range = getRange(0, 11, 1);
116
+ }
117
+ columns[1] = {
118
+ options: range.map(i => {
119
+ return {
120
+ text: this.props.timeCell(i+1, 'month'),
121
+ value: i
122
+ };
123
+ })
124
+ };
125
+ this.setState({columns, pickerValue: value});
126
+ }
127
+ };
128
+
129
+ renderPicker = () => {
130
+ const {translate: __} = this.props;
131
+ const title = __('Date.titleMonth');
132
+
133
+ return (
134
+ <Picker
135
+ translate={this.props.translate}
136
+ locale={this.props.locale}
137
+ title={title}
138
+ columns={this.state.columns}
139
+ value={this.state.pickerValue}
140
+ onChange={this.onPickerChange}
141
+ onConfirm={this.onConfirm}
142
+ onClose={this.props.onClose}
143
+ />
144
+ );
145
+ };
146
+
43
147
  render() {
44
148
  const __ = this.props.translate;
45
- const showYearHead = !/^mm$/i.test(this.props.inputFormat || '');
149
+ const showYearHead = !/^mm$/i.test(this.props.inputFormat || '') && !this.props.hideHeader;
46
150
  const canClick = /yy/i.test(this.props.inputFormat || '');
47
151
 
152
+ if (isMobile() && this.props.useMobileUI) {
153
+ return <div className="rdtYears">{this.renderPicker()}</div>;
154
+ }
48
155
  return (
49
156
  <div className="rdtMonths">
50
157
  {showYearHead && (
@@ -23,6 +23,7 @@ export interface QuarterViewProps extends LocaleProps, ThemeProps {
23
23
  updateSelectedDate: (e: any, close?: boolean) => void;
24
24
  renderQuarter: any;
25
25
  isValidDate: (date: moment.Moment) => boolean;
26
+ hideHeader?: boolean;
26
27
  }
27
28
 
28
29
  export class QuarterView extends React.Component<QuarterViewProps> {
@@ -140,11 +141,11 @@ export class QuarterView extends React.Component<QuarterViewProps> {
140
141
  }
141
142
 
142
143
  render() {
143
- const {classnames: cx} = this.props;
144
+ const {classnames: cx, hideHeader} = this.props;
144
145
 
145
146
  return (
146
147
  <div className={cx('ClalendarQuarter')}>
147
- {this.renderYear()}
148
+ {hideHeader ? null : this.renderYear()}
148
149
  <table>
149
150
  <tbody>{this.renderQuarters()}</tbody>
150
151
  </table>
@@ -7,35 +7,46 @@ import {Icon} from '../icons';
7
7
  import {ClassNamesFn} from '../../theme';
8
8
  import Picker from '../Picker';
9
9
  import {PickerColumnItem} from '../PickerColumn';
10
- import {getRange, isMobile} from "../../utils/helper";
10
+ import {getRange, isMobile} from '../../utils/helper';
11
+
12
+ interface State {
13
+ daypart: any;
14
+ counters: Array<string>;
15
+ [propName: string]: any;
16
+ }
17
+
18
+ interface CustomTimeViewProps {
19
+ viewDate: moment.Moment;
20
+ selectedDate: moment.Moment;
21
+ subtractTime: (
22
+ amount: number,
23
+ type: string,
24
+ toSelected?: moment.Moment
25
+ ) => () => void;
26
+ addTime: (
27
+ amount: number,
28
+ type: string,
29
+ toSelected?: moment.Moment
30
+ ) => () => void;
31
+ showView: (view: string) => () => void;
32
+ timeFormat: string;
33
+ classnames: ClassNamesFn;
34
+ setTime: (type: string, value: any) => void;
35
+ onClose?: () => void;
36
+ onConfirm?: (value: number[], types: string[]) => void;
37
+ useMobileUI: boolean;
38
+ showToolbar?: boolean;
39
+ onChange?: (value: any) => void;
40
+ };
11
41
 
12
42
  export class CustomTimeView extends TimeView {
13
- props: {
14
- viewDate: moment.Moment;
15
- subtractTime: (
16
- amount: number,
17
- type: string,
18
- toSelected?: moment.Moment
19
- ) => () => void;
20
- addTime: (
21
- amount: number,
22
- type: string,
23
- toSelected?: moment.Moment
24
- ) => () => void;
25
- showView: (view: string) => () => void;
26
- timeFormat: string;
27
- classnames: ClassNamesFn;
28
- setTime: (type: string, value: any) => void;
29
- onClose?: () => void;
30
- onConfirm?: (value: number[], types: string[]) => void;
31
- useMobileUI: boolean;
32
- } & LocaleProps;
43
+ props: CustomTimeViewProps & LocaleProps;
33
44
  onStartClicking: any;
34
45
  disableContextMenu: any;
35
46
  updateMilli: any;
36
47
  renderHeader: any;
37
48
  pad: any;
38
- state: {daypart: any; counters: Array<string>; [propName: string]: any};
49
+ state: State;
39
50
  timeConstraints: any;
40
51
  padValues = {
41
52
  hours: 2,
@@ -43,7 +54,22 @@ export class CustomTimeView extends TimeView {
43
54
  seconds: 2,
44
55
  milliseconds: 3
45
56
  };
57
+ setState: (arg0: any) => () => any;
58
+ calculateState: (props: CustomTimeViewProps) => () => any;
46
59
 
60
+ static defaultProps = {
61
+ showToolbar: true
62
+ };
63
+
64
+
65
+ componentWillReceiveProps(nextProps: CustomTimeViewProps) {
66
+ if (nextProps.viewDate !== this.props.viewDate
67
+ || nextProps.selectedDate !== this.props.selectedDate
68
+ || nextProps.timeFormat !== this.props.timeFormat) {
69
+ this.setState(this.calculateState(nextProps));
70
+ }
71
+ }
72
+
47
73
  renderDayPart = () => {
48
74
  const {translate: __, classnames: cx} = this.props;
49
75
  return (
@@ -90,7 +116,7 @@ export class CustomTimeView extends TimeView {
90
116
  return parseInt(value);
91
117
  }
92
118
  return 0;
93
- }
119
+ };
94
120
 
95
121
  renderCounter = (type: string) => {
96
122
  const cx = this.props.classnames;
@@ -148,14 +174,28 @@ export class CustomTimeView extends TimeView {
148
174
  return null;
149
175
  };
150
176
 
151
- onConfirm = (value: number[]) => {
152
- this.props.onConfirm && this.props.onConfirm(value, this.state.counters);
153
- }
177
+ onConfirm = (value: (number | string)[]) => {
178
+ // 修正am、pm
179
+ const hourIndex = this.state.counters.indexOf('hours');
180
+ if (
181
+ hourIndex !== -1 &&
182
+ this.state.daypart !== false &&
183
+ this.props.timeFormat.toLowerCase().indexOf(' a') !== -1
184
+ ) {
185
+ const amMode: string = value.splice(-1, 1)[0] as string;
186
+ let hour = (value[hourIndex] as number) % 12;
187
+ // 修正pm
188
+ amMode.toLowerCase().indexOf('p') !== -1 && (hour = hour + 12);
189
+ value[hourIndex] = hour;
190
+ }
191
+
192
+ this.props.onConfirm && this.props.onConfirm(value as number[], this.state.counters);
193
+ };
154
194
 
155
195
  getDayPartOptions = () => {
156
196
  const {translate: __} = this.props;
157
197
  let options = ['am', 'pm'];
158
- if ( this.props.timeFormat.indexOf( ' A' ) !== -1 ) {
198
+ if (this.props.timeFormat.indexOf(' A') !== -1) {
159
199
  options = ['AM', 'PM'];
160
200
  }
161
201
 
@@ -163,55 +203,78 @@ export class CustomTimeView extends TimeView {
163
203
  text: __(daypart),
164
204
  value: daypart
165
205
  }));
206
+ };
207
+
208
+ onPickerChange = (value: (number | string)[], index: number) => {
209
+ const time: {[prop:string]: any} = {};
210
+ this.state.counters.forEach((type, i) => time[type] = value[i]);
211
+ if (this.state.daypart !== false && index > this.state.counters.length -1) {
212
+ time.daypart = value[value.length -1];
213
+ }
214
+ this.setState((prevState: State) => {
215
+ return {...prevState, ...time}
216
+ });
217
+ this.props.onChange && this.props.onChange(value);
166
218
  }
167
219
 
168
220
  renderTimeViewPicker = () => {
221
+ const {translate: __} = this.props;
222
+ const title = __('Date.titleTime');
169
223
  const columns: PickerColumnItem[] = [];
170
224
  const values = [];
171
225
 
172
226
  this.state.counters.forEach(type => {
173
227
  if (type !== 'daypart') {
174
- const counterValue: number = this.getCounterValue(type);
175
228
  let {min, max, step} = this.timeConstraints[type];
176
229
  // 修正am pm时hours可选最大值
177
- if (type === 'hours'
178
- && this.state.daypart !== false
179
- && this.props.timeFormat.toLowerCase().indexOf(' a') !== -1) {
180
- max = max > 12 ? 12 : max;
230
+ if (
231
+ type === 'hours' &&
232
+ this.state.daypart !== false &&
233
+ this.props.timeFormat.toLowerCase().indexOf(' a') !== -1
234
+ ) {
235
+ max = max > 12 ? 12 : max;
181
236
  }
182
237
  columns.push({
183
- options: getRange(min, max, step)
238
+ options: getRange(min, max, step).map(item => {
239
+ return {
240
+ text: this.pad(type, item),
241
+ value: item
242
+ }
243
+ })
184
244
  });
185
- values.push(counterValue);
245
+ values.push(parseInt(this.state[type], 10));
186
246
  }
187
247
  });
188
248
  if (this.state.daypart !== false) {
189
249
  columns.push({
190
250
  options: this.getDayPartOptions()
191
251
  });
192
- values.push(this.state.daypart)
252
+ values.push(this.state.daypart);
193
253
  }
194
254
 
195
255
  return (
196
256
  <Picker
197
257
  translate={this.props.translate}
198
258
  locale={this.props.locale}
259
+ title={title}
199
260
  columns={columns}
200
- value={values}
261
+ value={values}
201
262
  onConfirm={this.onConfirm}
202
263
  onClose={this.props.onClose}
264
+ showToolbar={this.props.showToolbar}
265
+ onChange={this.onPickerChange}
203
266
  />
204
267
  );
205
- }
268
+ };
206
269
 
207
270
  render() {
208
271
  let counters: Array<JSX.Element | null> = [];
209
272
  const cx = this.props.classnames;
210
-
273
+
211
274
  if (isMobile() && this.props.useMobileUI) {
212
- return <div className={cx('CalendarTime')}>
213
- {this.renderTimeViewPicker()}
214
- </div>
275
+ return (
276
+ <div className={cx('CalendarTime')}>{this.renderTimeViewPicker()}</div>
277
+ );
215
278
  }
216
279
  this.state.counters.forEach(c => {
217
280
  if (counters.length) {