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
@@ -0,0 +1,658 @@
1
+ /**
2
+ * @file CalendarMobile
3
+ * @description 移动端日历组件
4
+ * @author hongyang03
5
+ */
6
+
7
+ import React from 'react';
8
+ import moment from 'moment';
9
+ import Calendar from './calendar/Calendar';
10
+ import {themeable, ThemeProps} from '../theme';
11
+ import {LocaleProps, localeable} from '../locale';
12
+ import {autobind} from '../utils/helper';
13
+
14
+ export interface CalendarMobileProps extends ThemeProps, LocaleProps {
15
+ className?: string;
16
+ timeFormat?: string;
17
+ inputFormat?: string;
18
+ startDate?: moment.Moment;
19
+ endDate?: moment.Moment;
20
+ minDate?: moment.Moment;
21
+ maxDate?: moment.Moment;
22
+ minDuration?: moment.Duration;
23
+ maxDuration?: moment.Duration;
24
+ dateFormat?: string;
25
+ embed?: boolean;
26
+ viewMode?: 'days' | 'months' | 'years' | 'time' | 'quarters';
27
+ close?: () => void;
28
+ confirm?: (startDate?: any, endTime?: any) => void;
29
+ onChange?: (data: any, callback?: () => void) => void;
30
+ footerExtra?: JSX.Element | null;
31
+ showViewMode?: 'years' | 'months';
32
+ isDatePicker?: boolean;
33
+ timeConstraints?: {
34
+ hours?: {
35
+ min: number;
36
+ max: number;
37
+ step: number;
38
+ };
39
+ minutes?: {
40
+ min: number;
41
+ max: number;
42
+ step: number;
43
+ };
44
+ seconds: {
45
+ min: number;
46
+ max: number;
47
+ step: number;
48
+ };
49
+ };
50
+ defaultDate?: moment.Moment;
51
+ }
52
+
53
+ export interface CalendarMobileState {
54
+ startDate?: moment.Moment;
55
+ endDate?: moment.Moment;
56
+ monthHeights?: number[];
57
+ currentDate: moment.Moment;
58
+ showToast: boolean;
59
+ isScrollToBottom: boolean;
60
+ dateTime: any;
61
+ minDate?: moment.Moment;
62
+ maxDate?: moment.Moment;
63
+ }
64
+
65
+ export class CalendarMobile extends React.Component<
66
+ CalendarMobileProps,
67
+ CalendarMobileState
68
+ > {
69
+
70
+ mobileBody: any;
71
+ mobileHeader: any;
72
+ timer: any;
73
+
74
+ static defaultProps: Pick<CalendarMobileProps, 'showViewMode'> = {
75
+ showViewMode: 'months'
76
+ };
77
+
78
+ constructor(props: CalendarMobileProps) {
79
+ super(props);
80
+
81
+ this.mobileBody = React.createRef();
82
+ this.mobileHeader = React.createRef();
83
+
84
+ const {startDate, endDate, defaultDate, minDate, maxDate} = this.props;
85
+ const dateRange = this.getDateRange(minDate, maxDate, defaultDate);
86
+
87
+ this.state = {
88
+ minDate: dateRange.minDate,
89
+ maxDate: dateRange.maxDate,
90
+ startDate,
91
+ endDate,
92
+ showToast: false,
93
+ currentDate: dateRange.currentDate,
94
+ isScrollToBottom: false,
95
+ dateTime: endDate ? [endDate.hour(), endDate.minute()] : [0, 0]
96
+ };
97
+ }
98
+
99
+ getDateRange(minDate?: moment.Moment, maxDate?: moment.Moment, defaultDate?: moment.Moment) {
100
+ !moment.isMoment(minDate) || !minDate.isValid() && (minDate = undefined);
101
+ !moment.isMoment(maxDate) || !maxDate.isValid() && (maxDate = undefined);
102
+
103
+ let currentDate = defaultDate || moment();
104
+ let dateRange: {
105
+ minDate: moment.Moment,
106
+ maxDate: moment.Moment
107
+ } = {
108
+ minDate: currentDate.clone().subtract(1, 'year').startOf('months'),
109
+ maxDate: currentDate.clone().add(1, 'year').endOf('months')
110
+ };
111
+ if (minDate && maxDate) {
112
+ dateRange = {
113
+ minDate,
114
+ maxDate
115
+ };
116
+ }
117
+ else if (minDate && !maxDate) {
118
+ dateRange = {
119
+ minDate,
120
+ maxDate: moment(minDate).add(2, 'year')
121
+ };
122
+ currentDate = minDate.clone();
123
+ }
124
+ else if (!minDate && maxDate) {
125
+ dateRange = {
126
+ minDate: moment(maxDate).subtract(2, 'year'),
127
+ maxDate
128
+ };
129
+ currentDate = maxDate.clone();
130
+ }
131
+
132
+ if (!currentDate.isBetween(dateRange.minDate, dateRange.maxDate, 'days', '[]')) {
133
+ currentDate = dateRange.minDate.clone();
134
+ }
135
+ return {
136
+ ...dateRange,
137
+ currentDate
138
+ };
139
+ }
140
+
141
+ componentDidMount() {
142
+ this.initMonths();
143
+ }
144
+
145
+ componentDidUpdate(prevProps: CalendarMobileProps) {
146
+ const props = this.props;
147
+
148
+ if (prevProps.minDate !== props.minDate || prevProps.maxDate !== props.maxDate) {
149
+ const currentDate = this.state.currentDate;
150
+ const dateRange = this.getDateRange(props.minDate, props.maxDate, moment(currentDate));
151
+ this.setState(
152
+ {
153
+ minDate: dateRange.minDate,
154
+ maxDate: dateRange.maxDate,
155
+ currentDate: dateRange.currentDate,
156
+ },
157
+ () => this.initMonths()
158
+ );
159
+ }
160
+ }
161
+
162
+ componentWillUnmount() {
163
+ this.setState({showToast: false});
164
+ clearTimeout(this.timer);
165
+ }
166
+
167
+ initMonths() {
168
+ if (this.mobileBody.current) {
169
+ const header = this.mobileHeader.current;
170
+ let monthHeights: number[] = [];
171
+ const monthCollection = this.mobileBody.current.children;
172
+ for (let i = 0; i < monthCollection.length; i++) {
173
+ monthHeights[i] = monthCollection[i].offsetTop - header.clientHeight;
174
+ }
175
+ this.setState({
176
+ monthHeights
177
+ });
178
+ const defaultDate = this.props.defaultDate || this.state.currentDate;
179
+ this.scollToDate(defaultDate ? moment(defaultDate) : moment());
180
+ }
181
+ }
182
+
183
+ scollToDate(date: moment.Moment) {
184
+ const {showViewMode} = this.props;
185
+ const {minDate} = this.state;
186
+ const index = date.diff(minDate, showViewMode);
187
+ const currentEl = this.mobileBody.current.children[index];
188
+ if (!currentEl) {
189
+ return;
190
+ }
191
+ const header = this.mobileHeader.current;
192
+ this.mobileBody.current.scrollBy(0, currentEl.offsetTop - this.mobileBody.current.scrollTop - header.clientHeight);
193
+ }
194
+
195
+ @autobind
196
+ onMobileBodyScroll(e: any) {
197
+ const {showViewMode} = this.props;
198
+ const {monthHeights} = this.state;
199
+ let minDate = this.state.minDate?.clone();
200
+ if (!this.mobileBody?.current || !monthHeights || !minDate) {
201
+ return;
202
+ }
203
+ const scrollTop = this.mobileBody.current.scrollTop;
204
+ const clientHeight = this.mobileBody.current.clientHeight;
205
+ const scrollHeight = this.mobileBody.current.scrollHeight;
206
+
207
+ let i = 0;
208
+ for(i; i < monthHeights.length; i++) {
209
+ if (scrollTop < monthHeights[i]) {
210
+ break;
211
+ }
212
+ }
213
+ i--;
214
+ i < 0 && (i = 0);
215
+ const currentDate = minDate.add(i, showViewMode);
216
+ this.setState({
217
+ currentDate,
218
+ isScrollToBottom: scrollTop + clientHeight === scrollHeight
219
+ });
220
+ }
221
+
222
+ @autobind
223
+ scrollPreYear() {
224
+ if (!this.state.currentDate) {
225
+ return;
226
+ }
227
+ let {currentDate, minDate} = this.state;
228
+ currentDate = currentDate.clone().subtract(1, 'years');
229
+ if (minDate && currentDate.isBefore(minDate)) {
230
+ currentDate = minDate;
231
+ }
232
+ this.setState({
233
+ currentDate
234
+ });
235
+ this.scollToDate(currentDate);
236
+ }
237
+
238
+ @autobind
239
+ scrollAfterYear() {
240
+ if (!this.state.currentDate) {
241
+ return;
242
+ }
243
+ let {currentDate, maxDate} = this.state;
244
+ currentDate = currentDate.clone().add(1, 'years');
245
+ if (maxDate && currentDate.isAfter(maxDate)) {
246
+ currentDate = maxDate;
247
+ }
248
+ this.setState({
249
+ currentDate
250
+ });
251
+ this.scollToDate(currentDate);
252
+ }
253
+
254
+ getDaysOfWeek() {
255
+ const locale = moment().localeData();
256
+ const days = locale.weekdaysMin();
257
+ const first = locale.firstDayOfWeek();
258
+ const dow: string[] = [];
259
+ let i = 0;
260
+
261
+ days.forEach((day: string) => {
262
+ dow[ (7 + ( i++ ) - first) % 7 ] = day;
263
+ });
264
+
265
+ return dow;
266
+ }
267
+
268
+ @autobind
269
+ handleCalendarClick(isDisabled: boolean) {
270
+ if (isDisabled) {
271
+ this.setState({showToast: true});
272
+ this.timer = setTimeout(() => {
273
+ this.setState({showToast: false});
274
+ }, 2000);
275
+ }
276
+ }
277
+
278
+ getRenderProps(props: any, currentDate: moment.Moment) {
279
+ let {startDate, endDate} = this.state;
280
+ const {translate: __, viewMode, isDatePicker} = this.props;
281
+ const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';
282
+ let footerText = '';
283
+
284
+ if (startDate &&
285
+ endDate &&
286
+ currentDate.isBetween(startDate, endDate, precision, '()')) {
287
+ props.className += ' rdtBetween';
288
+ }
289
+ else if (startDate
290
+ && endDate
291
+ && startDate.isSame(endDate, precision)
292
+ && currentDate.isSame(startDate, precision)) {
293
+ props.className += ' rdtRangeStart';
294
+ footerText = __('Calendar.beginAndEnd');
295
+ }
296
+ else if (startDate && currentDate.isSame(startDate, precision)) {
297
+ props.className += ' rdtRangeStart';
298
+ footerText = __('Calendar.begin');
299
+ if (endDate) {
300
+ props.className += ' rdtRangeHasEnd';
301
+ }
302
+ }
303
+ else if (endDate && currentDate.isSame(endDate, precision)) {
304
+ props.className += ' rdtRangeEnd';
305
+ footerText = __('Calendar.end');
306
+ }
307
+
308
+ if (precision === 'day' && currentDate.date() === 1 && currentDate.day() === 1) {
309
+ props.className += ' rdtOldNone';
310
+ }
311
+
312
+ if (isDatePicker) {
313
+ footerText = '';
314
+ }
315
+
316
+ const rdtDisabled = props.className.indexOf('rdtDisabled') > -1;
317
+
318
+ return {
319
+ props,
320
+ footerText,
321
+ rdtDisabled
322
+ };
323
+ }
324
+
325
+ @autobind
326
+ handleTimeChange(newTime: any) {
327
+ if (!newTime) {
328
+ return;
329
+ }
330
+ const {onChange} = this.props;
331
+ let {startDate, endDate} = this.state;
332
+ if (startDate) {
333
+ let obj = {
334
+ dateTime: newTime,
335
+ startDate: endDate ? startDate : startDate?.clone().set({hour: newTime[0], minute: newTime[1], second: newTime[2] || 0}),
336
+ endDate: !endDate ? endDate : endDate?.clone().set({hour: newTime[0], minute: newTime[1], second: newTime[2] || 0})
337
+ };
338
+ this.setState(obj, () => {
339
+ onChange && onChange(this.state);
340
+ });
341
+ }
342
+ }
343
+
344
+ @autobind
345
+ checkIsValidDate(currentDate: moment.Moment) {
346
+ const {startDate, endDate, minDate, maxDate} = this.state;
347
+ let {minDuration, maxDuration, viewMode} = this.props;
348
+ const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';
349
+
350
+ if (minDate && currentDate.isBefore(minDate, precision)) {
351
+ return false;
352
+ }
353
+ else if (maxDate && currentDate.isAfter(maxDate, precision)) {
354
+ return false;
355
+ }
356
+ else if (startDate && !endDate) {
357
+ if (minDuration
358
+ && currentDate.isBefore(startDate.clone().add(minDuration))
359
+ && currentDate.isSameOrAfter(startDate)) {
360
+ return false;
361
+ }
362
+ else if (maxDuration && currentDate.isAfter(startDate.clone().add(maxDuration))) {
363
+ return false;
364
+ }
365
+ }
366
+
367
+ return true;
368
+ }
369
+
370
+ @autobind
371
+ renderMobileDay(props: any, currentDate: moment.Moment) {
372
+ const cx = this.props.classnames;
373
+ const renderProps = this.getRenderProps(props, currentDate);
374
+
375
+ return <td {...renderProps.props}>
376
+ <div className="calendar-wrap" onClick={() => this.handleCalendarClick(renderProps.rdtDisabled)}>
377
+ {currentDate.date()}
378
+ <div className={cx('CalendarMobile-range-text')}>{renderProps.footerText}</div>
379
+ </div>
380
+ </td>;
381
+ }
382
+
383
+ @autobind
384
+ renderMonth(props: any, month: number, year: number) {
385
+ const cx = this.props.classnames;
386
+ const currentDate = moment().year(year).month(month);
387
+ const monthStr = currentDate
388
+ .localeData()
389
+ .monthsShort(currentDate.month(month));
390
+ const strLength = 3;
391
+ const monthStrFixedLength = monthStr.substring(0, strLength);
392
+ const renderProps = this.getRenderProps(props, currentDate);
393
+
394
+ return (
395
+ <td {...renderProps.props}>
396
+ <div className="calendar-wrap" onClick={() => this.handleCalendarClick(renderProps.rdtDisabled)}>
397
+ {monthStrFixedLength}
398
+ <div className={cx('CalendarMobile-range-text')}>{renderProps.footerText}</div>
399
+ </div>
400
+ </td>
401
+ );
402
+ }
403
+
404
+ @autobind
405
+ renderQuarter(props: any, quarter: number, year: number) {
406
+ const cx = this.props.classnames;
407
+ const currentDate = moment().year(year).quarter(quarter);
408
+ const renderProps = this.getRenderProps(props, currentDate);
409
+
410
+ return (
411
+ <td {...props}>
412
+ <div className="calendar-wrap" onClick={() => this.handleCalendarClick(renderProps.rdtDisabled)}>
413
+ Q{quarter}
414
+ <div className={cx('CalendarMobile-range-text')}>{renderProps.footerText}</div>
415
+ </div>
416
+ </td>
417
+ );
418
+ }
419
+
420
+ @autobind
421
+ handleMobileChange(newValue: moment.Moment) {
422
+ const {embed, minDuration, maxDuration, confirm, onChange, viewMode, isDatePicker} = this.props;
423
+ const {startDate, endDate, dateTime, minDate, maxDate} = this.state;
424
+ const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';
425
+
426
+ if (minDate && newValue && newValue.isBefore(minDate, 'second')) {
427
+ newValue = minDate;
428
+ }
429
+
430
+ if (maxDate && newValue && newValue.isAfter(maxDate, 'second')) {
431
+ newValue = maxDate;
432
+ }
433
+
434
+ if (
435
+ !isDatePicker &&
436
+ startDate &&
437
+ !endDate &&
438
+ newValue.isSameOrAfter(startDate) &&
439
+ (!minDuration || newValue.isSameOrAfter(startDate.clone().add(minDuration))) &&
440
+ (!maxDuration || newValue.isSameOrBefore(startDate.clone().add(maxDuration)))
441
+ ) {
442
+ return this.setState(
443
+ {
444
+ endDate: newValue.clone().endOf(precision).set({hour: dateTime[0], minute: dateTime[1], second: dateTime[2] || 0})
445
+ },
446
+ () => {
447
+ onChange && onChange(this.state, () => embed && confirm && confirm(startDate, endDate));
448
+ }
449
+ );
450
+ }
451
+
452
+ this.setState(
453
+ {
454
+ startDate: newValue.clone().startOf(precision).set({hour: dateTime[0], minute: dateTime[1], second: dateTime[2] || 0}),
455
+ endDate: undefined
456
+ },
457
+ () => {
458
+ onChange && onChange(this.state);
459
+ }
460
+ );
461
+ }
462
+
463
+ @autobind
464
+ renderMobileCalendarBody() {
465
+ const {
466
+ classnames: cx,
467
+ dateFormat,
468
+ timeFormat,
469
+ inputFormat,
470
+ locale,
471
+ viewMode = 'days',
472
+ close,
473
+ defaultDate,
474
+ showViewMode
475
+ } = this.props;
476
+ const __ = this.props.translate;
477
+
478
+ const {minDate, maxDate} = this.state;
479
+ if (!minDate || !maxDate) {
480
+ return;
481
+ }
482
+ let calendarDates: moment.Moment[] = [];
483
+ for(let minDateClone = minDate.clone(); minDateClone.isSameOrBefore(maxDate); minDateClone.add(1, showViewMode)) {
484
+ let date = minDateClone.clone();
485
+ if (defaultDate) {
486
+ date = moment(defaultDate).set({year: date.get('year'), month: date.get('month')});
487
+ }
488
+ calendarDates.push(date);
489
+ }
490
+
491
+ return (
492
+ <div className={cx('CalendarMobile-body')} ref={this.mobileBody}
493
+ onScroll={this.onMobileBodyScroll}>
494
+ {calendarDates.map((calendarDate: moment.Moment, index: number) => {
495
+ const rdtOldNone = showViewMode === 'months'
496
+ && calendarDate.clone().startOf('month').day() === 1
497
+ ? 'rdtOldNone' : '';
498
+
499
+ return <div className={cx('CalendarMobile-calendar-wrap', rdtOldNone)} key={'calendar-wrap' + index}>
500
+ {showViewMode === 'months' && <div className={cx('CalendarMobile-calendar-mark')} key={'calendar-mark' + index}>
501
+ {calendarDate.month() + 1}
502
+ </div>}
503
+ <div className={cx('CalendarMobile-calendar-header')}>
504
+ <span className="rdtSwitch">
505
+ {calendarDate.format(__('dateformat.year'))}
506
+ </span>
507
+ {showViewMode === 'months' && <span className="rdtSwitch">
508
+ {calendarDate.format(__('MMM'))}
509
+ </span>}
510
+ </div>
511
+ <Calendar
512
+ className={cx('CalendarMobile-calendar', rdtOldNone)}
513
+ viewDate={calendarDate}
514
+ value={calendarDate}
515
+ onChange={this.handleMobileChange}
516
+ requiredConfirm={false}
517
+ dateFormat={dateFormat}
518
+ inputFormat={inputFormat}
519
+ timeFormat=''
520
+ isValidDate={this.checkIsValidDate}
521
+ viewMode={viewMode}
522
+ input={false}
523
+ onClose={close}
524
+ renderDay={this.renderMobileDay}
525
+ renderMonth={this.renderMonth}
526
+ renderQuarter={this.renderQuarter}
527
+ locale={locale}
528
+ hideHeader={true}
529
+ updateOn={viewMode}
530
+ key={'calendar' + index}
531
+ />
532
+ </div>
533
+ })}
534
+ </div>
535
+ );
536
+ }
537
+
538
+ @autobind
539
+ renderMobileTimePicker() {
540
+ const {
541
+ classnames: cx,
542
+ timeFormat,
543
+ locale,
544
+ close,
545
+ timeConstraints,
546
+ defaultDate,
547
+ isDatePicker
548
+ } = this.props;
549
+ const __ = this.props.translate;
550
+
551
+ const {startDate, endDate, dateTime} = this.state;
552
+
553
+ return (
554
+ <div className={cx('CalendarMobile-time')}>
555
+ <div className={cx('CalendarMobile-time-title')}>
556
+ {isDatePicker ? __('Date.titleTime') : startDate && endDate ? __('Calendar.endPick') : __('Calendar.startPick')}
557
+ </div>
558
+ <Calendar
559
+ className={cx('CalendarMobile-time-calendar')}
560
+ value={defaultDate}
561
+ onChange={this.handleTimeChange}
562
+ requiredConfirm={false}
563
+ timeFormat={timeFormat}
564
+ viewMode="time"
565
+ input={false}
566
+ onClose={close}
567
+ locale={locale}
568
+ useMobileUI={true}
569
+ showToolbar={false}
570
+ viewDate={moment().set({hour: dateTime[0], minute: dateTime[1], second: dateTime[2] || 0})}
571
+ timeConstraints={timeConstraints}
572
+ isValidDate={this.checkIsValidDate}
573
+ />
574
+ </div>
575
+ );
576
+ }
577
+
578
+
579
+ render() {
580
+ const {
581
+ className,
582
+ classnames: cx,
583
+ embed,
584
+ close,
585
+ confirm,
586
+ footerExtra,
587
+ timeFormat,
588
+ showViewMode,
589
+ isDatePicker
590
+ } = this.props;
591
+ const __ = this.props.translate;
592
+
593
+ const {startDate, endDate, currentDate, showToast, isScrollToBottom, minDate, maxDate} = this.state;
594
+ let dateNow = currentDate
595
+ ? currentDate.format(__(`Calendar.${showViewMode === 'months' ? 'yearmonth' : 'year'}`))
596
+ : moment().format(__(`Calendar.${showViewMode === 'months' ? 'yearmonth' : 'year'}`));
597
+
598
+ const header = (
599
+ <div className={cx('CalendarMobile-header')} ref={this.mobileHeader}>
600
+ <div className={cx('CalendarMobile-subtitle')}>
601
+ <span className="subtitle-text">
602
+ {currentDate && currentDate.isSameOrBefore(minDate, showViewMode)
603
+ ? null
604
+ : <a className="rdtPrev" onClick={this.scrollPreYear}>&lsaquo;</a>}
605
+ {dateNow}
606
+ {currentDate && currentDate.isSameOrAfter(maxDate, showViewMode) || isScrollToBottom
607
+ ? null
608
+ : <a className="rdtNext" onClick={this.scrollAfterYear}>&rsaquo;</a>}
609
+ </span>
610
+ </div>
611
+ {showViewMode === 'months' ? <div className={cx('CalendarMobile-weekdays')}>
612
+ {this.getDaysOfWeek().map((day: string, index: number) => (
613
+ <span key={day + index} className="weekday">
614
+ {day}
615
+ </span>
616
+ ))}
617
+ </div> : null}
618
+ </div>
619
+ );
620
+
621
+ const footer = (
622
+ <div className={cx('CalendarMobile-footer')}>
623
+ {timeFormat && startDate && this.renderMobileTimePicker()}
624
+ <div className={cx('CalendarMobile-footer-toolbar')}>
625
+ <div className={cx('CalendarMobile-footer-ranges')}>
626
+ {footerExtra}
627
+ </div>
628
+ {confirm && !embed && <a
629
+ className={cx('Button', 'Button--primary', 'date-range-confirm', {
630
+ 'is-disabled': !startDate || !(endDate || isDatePicker)
631
+ })}
632
+ onClick={() => {
633
+ confirm(startDate, endDate);
634
+ close && close();
635
+ }}
636
+ >
637
+ {__('confirm')}
638
+ </a>}
639
+ </div>
640
+ </div>
641
+ );
642
+
643
+ return (
644
+ <div className={cx('CalendarMobile',
645
+ embed ? 'CalendarMobile-embed' : '',
646
+ className)}>
647
+ <div className={cx('CalendarMobile-wrap')}>
648
+ {header}
649
+ {this.renderMobileCalendarBody()}
650
+ {footer}
651
+ </div>
652
+ {showToast? <div className={cx('CalendarMobile-toast')}>{__('Calendar.toast')}</div> : null}
653
+ </div>
654
+ );
655
+ }
656
+ };
657
+
658
+ export default themeable(localeable(CalendarMobile));