amis 1.8.0-beta.1 → 1.8.0-beta.13

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 (426) hide show
  1. package/lib/Schema.d.ts +9 -2
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/SchemaRenderer.js +19 -3
  4. package/lib/SchemaRenderer.js.map +2 -2
  5. package/lib/WithRootStore.d.ts +18 -0
  6. package/lib/WithStore.js +2 -1
  7. package/lib/WithStore.js.map +2 -2
  8. package/lib/actions/CmptAction.js +26 -4
  9. package/lib/actions/CmptAction.js.map +2 -2
  10. package/lib/actions/PageAction.d.ts +32 -0
  11. package/lib/actions/PageAction.js +72 -0
  12. package/lib/actions/PageAction.js.map +13 -0
  13. package/lib/actions/index.d.ts +1 -0
  14. package/lib/actions/index.js +1 -0
  15. package/lib/actions/index.js.map +2 -2
  16. package/lib/components/AssociatedSelection.js +9 -2
  17. package/lib/components/AssociatedSelection.js.map +2 -2
  18. package/lib/components/BarCode.js +1 -1
  19. package/lib/components/BarCode.js.map +2 -2
  20. package/lib/components/CalendarMobile.d.ts +84 -84
  21. package/lib/components/Cascader.d.ts +2 -0
  22. package/lib/components/Cascader.js +28 -12
  23. package/lib/components/Cascader.js.map +2 -2
  24. package/lib/components/Checkbox.d.ts +24 -23
  25. package/lib/components/Checkbox.js +5 -1
  26. package/lib/components/Checkbox.js.map +2 -2
  27. package/lib/components/Collapse.d.ts +20 -20
  28. package/lib/components/DatePicker.d.ts +84 -84
  29. package/lib/components/DatePicker.js +8 -5
  30. package/lib/components/DatePicker.js.map +2 -2
  31. package/lib/components/DateRangePicker.d.ts +285 -171
  32. package/lib/components/DateRangePicker.js +471 -66
  33. package/lib/components/DateRangePicker.js.map +2 -2
  34. package/lib/components/Drawer.js +1 -1
  35. package/lib/components/Drawer.js.map +2 -2
  36. package/lib/components/ListGroup.d.ts +21 -21
  37. package/lib/components/Modal.js +1 -1
  38. package/lib/components/Modal.js.map +2 -2
  39. package/lib/components/MonthRangePicker.d.ts +84 -84
  40. package/lib/components/Overlay.d.ts +1 -0
  41. package/lib/components/Overlay.js +4 -3
  42. package/lib/components/Overlay.js.map +2 -2
  43. package/lib/components/Progress.d.ts +29 -24
  44. package/lib/components/Progress.js +44 -16
  45. package/lib/components/Progress.js.map +2 -2
  46. package/lib/components/PullRefresh.d.ts +86 -0
  47. package/lib/components/PullRefresh.js +135 -0
  48. package/lib/components/PullRefresh.js.map +13 -0
  49. package/lib/components/Radios.d.ts +22 -22
  50. package/lib/components/Radios.js +3 -5
  51. package/lib/components/Radios.js.map +2 -2
  52. package/lib/components/Range.d.ts +2 -2
  53. package/lib/components/Range.js +24 -11
  54. package/lib/components/Range.js.map +2 -2
  55. package/lib/components/Spinner.d.ts +200 -107
  56. package/lib/components/Spinner.js +30 -26
  57. package/lib/components/Spinner.js.map +2 -2
  58. package/lib/components/Steps.d.ts +6 -0
  59. package/lib/components/Steps.js +13 -9
  60. package/lib/components/Steps.js.map +2 -2
  61. package/lib/components/Tooltip.d.ts +4 -0
  62. package/lib/components/Tooltip.js +6 -4
  63. package/lib/components/Tooltip.js.map +2 -2
  64. package/lib/components/TooltipWrapper.d.ts +66 -4
  65. package/lib/components/TooltipWrapper.js +40 -8
  66. package/lib/components/TooltipWrapper.js.map +2 -2
  67. package/lib/components/Transfer.d.ts +84 -84
  68. package/lib/components/TransferDropDown.d.ts +84 -84
  69. package/lib/components/Tree.d.ts +87 -85
  70. package/lib/components/Tree.js +13 -5
  71. package/lib/components/Tree.js.map +2 -2
  72. package/lib/components/TreeSelection.d.ts +84 -84
  73. package/lib/components/calendar/Calendar.js +0 -13
  74. package/lib/components/calendar/Calendar.js.map +2 -2
  75. package/lib/components/calendar/TimeView.d.ts +1 -0
  76. package/lib/components/calendar/TimeView.js +7 -0
  77. package/lib/components/calendar/TimeView.js.map +2 -2
  78. package/lib/components/calendar/YearsView.js +3 -3
  79. package/lib/components/calendar/YearsView.js.map +2 -2
  80. package/lib/components/condition-builder/Expression.d.ts +1 -0
  81. package/lib/components/condition-builder/Expression.js +4 -4
  82. package/lib/components/condition-builder/Expression.js.map +2 -2
  83. package/lib/components/condition-builder/Field.d.ts +1 -0
  84. package/lib/components/condition-builder/Field.js +3 -2
  85. package/lib/components/condition-builder/Field.js.map +2 -2
  86. package/lib/components/condition-builder/Group.d.ts +1 -0
  87. package/lib/components/condition-builder/Group.js +2 -2
  88. package/lib/components/condition-builder/Group.js.map +2 -2
  89. package/lib/components/condition-builder/GroupOrItem.d.ts +1 -0
  90. package/lib/components/condition-builder/GroupOrItem.js +2 -2
  91. package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
  92. package/lib/components/condition-builder/InputSwitch.d.ts +2 -1
  93. package/lib/components/condition-builder/InputSwitch.js +2 -2
  94. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  95. package/lib/components/condition-builder/Item.d.ts +1 -0
  96. package/lib/components/condition-builder/Item.js +9 -8
  97. package/lib/components/condition-builder/Item.js.map +2 -2
  98. package/lib/components/condition-builder/Value.d.ts +1 -0
  99. package/lib/components/condition-builder/Value.js +5 -5
  100. package/lib/components/condition-builder/Value.js.map +2 -2
  101. package/lib/components/condition-builder/index.d.ts +1 -0
  102. package/lib/components/condition-builder/index.js +2 -2
  103. package/lib/components/condition-builder/index.js.map +2 -2
  104. package/lib/components/formula/Editor.d.ts +87 -85
  105. package/lib/components/formula/Editor.js +10 -6
  106. package/lib/components/formula/Editor.js.map +2 -2
  107. package/lib/components/formula/Picker.js +3 -1
  108. package/lib/components/formula/Picker.js.map +2 -2
  109. package/lib/factory.d.ts +5 -0
  110. package/lib/factory.js +22 -1
  111. package/lib/factory.js.map +2 -2
  112. package/lib/index.js +1 -1
  113. package/lib/locale/de-DE.js +18 -1
  114. package/lib/locale/de-DE.js.map +2 -2
  115. package/lib/locale/en-US.js +18 -1
  116. package/lib/locale/en-US.js.map +2 -2
  117. package/lib/locale/zh-CN.js +18 -1
  118. package/lib/locale/zh-CN.js.map +2 -2
  119. package/lib/renderers/Action.d.ts +2 -0
  120. package/lib/renderers/Action.js +23 -5
  121. package/lib/renderers/Action.js.map +2 -2
  122. package/lib/renderers/App.d.ts +1 -0
  123. package/lib/renderers/App.js +3 -0
  124. package/lib/renderers/App.js.map +2 -2
  125. package/lib/renderers/CRUD.d.ts +8 -0
  126. package/lib/renderers/CRUD.js +12 -5
  127. package/lib/renderers/CRUD.js.map +2 -2
  128. package/lib/renderers/Carousel.d.ts +1 -0
  129. package/lib/renderers/Carousel.js +13 -1
  130. package/lib/renderers/Carousel.js.map +2 -2
  131. package/lib/renderers/Chart.d.ts +1 -0
  132. package/lib/renderers/Chart.js +3 -0
  133. package/lib/renderers/Chart.js.map +2 -2
  134. package/lib/renderers/Dialog.d.ts +1 -0
  135. package/lib/renderers/Dialog.js +3 -0
  136. package/lib/renderers/Dialog.js.map +2 -2
  137. package/lib/renderers/Drawer.d.ts +1 -0
  138. package/lib/renderers/Drawer.js +6 -1
  139. package/lib/renderers/Drawer.js.map +2 -2
  140. package/lib/renderers/Form/Checkbox.d.ts +5 -2
  141. package/lib/renderers/Form/Checkbox.js +2 -2
  142. package/lib/renderers/Form/Checkbox.js.map +2 -2
  143. package/lib/renderers/Form/Checkboxes.d.ts +7 -2
  144. package/lib/renderers/Form/Checkboxes.js +101 -12
  145. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  146. package/lib/renderers/Form/Combo.d.ts +2 -1
  147. package/lib/renderers/Form/Combo.js +54 -16
  148. package/lib/renderers/Form/Combo.js.map +2 -2
  149. package/lib/renderers/Form/DiffEditor.d.ts +3 -2
  150. package/lib/renderers/Form/Editor.d.ts +2 -2
  151. package/lib/renderers/Form/InputCity.d.ts +87 -84
  152. package/lib/renderers/Form/InputCity.js +44 -2
  153. package/lib/renderers/Form/InputCity.js.map +2 -2
  154. package/lib/renderers/Form/InputDate.js +10 -3
  155. package/lib/renderers/Form/InputDate.js.map +2 -2
  156. package/lib/renderers/Form/InputDateRange.d.ts +5 -0
  157. package/lib/renderers/Form/InputDateRange.js +12 -3
  158. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  159. package/lib/renderers/Form/InputFile.js +19 -8
  160. package/lib/renderers/Form/InputFile.js.map +2 -2
  161. package/lib/renderers/Form/InputImage.js +18 -7
  162. package/lib/renderers/Form/InputImage.js.map +2 -2
  163. package/lib/renderers/Form/InputMonthRange.js +5 -1
  164. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  165. package/lib/renderers/Form/InputRange.js +13 -14
  166. package/lib/renderers/Form/InputRange.js.map +2 -2
  167. package/lib/renderers/Form/InputText.d.ts +1 -1
  168. package/lib/renderers/Form/InputText.js +8 -10
  169. package/lib/renderers/Form/InputText.js.map +2 -2
  170. package/lib/renderers/Form/InputTree.d.ts +5 -0
  171. package/lib/renderers/Form/InputTree.js +51 -2
  172. package/lib/renderers/Form/InputTree.js.map +2 -2
  173. package/lib/renderers/Form/Item.d.ts +79 -76
  174. package/lib/renderers/Form/Item.js +3 -1
  175. package/lib/renderers/Form/Item.js.map +2 -2
  176. package/lib/renderers/Form/NestedSelect.d.ts +4 -0
  177. package/lib/renderers/Form/NestedSelect.js +14 -5
  178. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  179. package/lib/renderers/Form/Options.js +61 -27
  180. package/lib/renderers/Form/Options.js.map +2 -2
  181. package/lib/renderers/Form/Select.js +4 -2
  182. package/lib/renderers/Form/Select.js.map +2 -2
  183. package/lib/renderers/Form/Textarea.js +2 -1
  184. package/lib/renderers/Form/Textarea.js.map +2 -2
  185. package/lib/renderers/Form/TreeSelect.d.ts +11 -2
  186. package/lib/renderers/Form/TreeSelect.js +56 -10
  187. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  188. package/lib/renderers/Form/index.d.ts +3 -0
  189. package/lib/renderers/Form/index.js +53 -16
  190. package/lib/renderers/Form/index.js.map +2 -2
  191. package/lib/renderers/Form/wrapControl.d.ts +10 -0
  192. package/lib/renderers/Form/wrapControl.js +41 -19
  193. package/lib/renderers/Form/wrapControl.js.map +2 -2
  194. package/lib/renderers/Nav.d.ts +82 -67
  195. package/lib/renderers/Nav.js +49 -13
  196. package/lib/renderers/Nav.js.map +2 -2
  197. package/lib/renderers/Page.d.ts +21 -0
  198. package/lib/renderers/Page.js +54 -14
  199. package/lib/renderers/Page.js.map +2 -2
  200. package/lib/renderers/Progress.d.ts +3 -6
  201. package/lib/renderers/Progress.js +2 -2
  202. package/lib/renderers/Progress.js.map +2 -2
  203. package/lib/renderers/Service.d.ts +3 -0
  204. package/lib/renderers/Service.js +55 -20
  205. package/lib/renderers/Service.js.map +2 -2
  206. package/lib/renderers/Spinner.d.ts +58 -2
  207. package/lib/renderers/Spinner.js +8 -1
  208. package/lib/renderers/Spinner.js.map +2 -2
  209. package/lib/renderers/Steps.d.ts +8 -0
  210. package/lib/renderers/Steps.js +2 -2
  211. package/lib/renderers/Steps.js.map +2 -2
  212. package/lib/renderers/Table/ColumnToggler.d.ts +4 -0
  213. package/lib/renderers/Table/ColumnToggler.js +11 -6
  214. package/lib/renderers/Table/ColumnToggler.js.map +2 -2
  215. package/lib/renderers/Table/TableCell.js +27 -1
  216. package/lib/renderers/Table/TableCell.js.map +2 -2
  217. package/lib/renderers/Table/index.d.ts +2 -0
  218. package/lib/renderers/Table/index.js +23 -10
  219. package/lib/renderers/Table/index.js.map +2 -2
  220. package/lib/renderers/Tabs.d.ts +4 -0
  221. package/lib/renderers/Tabs.js +22 -6
  222. package/lib/renderers/Tabs.js.map +2 -2
  223. package/lib/renderers/TooltipWrapper.d.ts +35 -6
  224. package/lib/renderers/TooltipWrapper.js +19 -8
  225. package/lib/renderers/TooltipWrapper.js.map +2 -2
  226. package/lib/renderers/Wizard.d.ts +7 -3
  227. package/lib/renderers/Wizard.js +269 -152
  228. package/lib/renderers/Wizard.js.map +2 -2
  229. package/lib/store/combo.d.ts +2 -2
  230. package/lib/store/crud.d.ts +1 -0
  231. package/lib/store/crud.js +55 -19
  232. package/lib/store/crud.js.map +2 -2
  233. package/lib/store/form.d.ts +1 -1
  234. package/lib/store/form.js +5 -1
  235. package/lib/store/form.js.map +2 -2
  236. package/lib/store/formItem.js +1 -1
  237. package/lib/store/formItem.js.map +2 -2
  238. package/lib/store/index.d.ts +5 -0
  239. package/lib/store/index.js +14 -0
  240. package/lib/store/index.js.map +2 -2
  241. package/lib/store/table.d.ts +2 -2
  242. package/lib/store/table.js +2 -2
  243. package/lib/store/table.js.map +2 -2
  244. package/lib/themes/ang-ie11.css +768 -199
  245. package/lib/themes/ang.css +723 -142
  246. package/lib/themes/ang.css.map +1 -1
  247. package/lib/themes/antd-ie11.css +851 -282
  248. package/lib/themes/antd.css +724 -143
  249. package/lib/themes/antd.css.map +1 -1
  250. package/lib/themes/cxd-ie11.css +879 -310
  251. package/lib/themes/cxd.css +727 -146
  252. package/lib/themes/cxd.css.map +1 -1
  253. package/lib/themes/dark-ie11.css +769 -200
  254. package/lib/themes/dark.css +723 -142
  255. package/lib/themes/dark.css.map +1 -1
  256. package/lib/themes/default-ie11.css +879 -310
  257. package/lib/themes/default.css +727 -146
  258. package/lib/themes/default.css.map +1 -1
  259. package/lib/types.d.ts +3 -1
  260. package/lib/types.js.map +1 -1
  261. package/lib/utils/ColorScale.d.ts +19 -0
  262. package/lib/utils/ColorScale.js +104 -0
  263. package/lib/utils/ColorScale.js.map +13 -0
  264. package/lib/utils/api.js +20 -4
  265. package/lib/utils/api.js.map +2 -2
  266. package/lib/utils/columnsSplit.d.ts +1 -0
  267. package/lib/utils/columnsSplit.js +40 -0
  268. package/lib/utils/columnsSplit.js.map +13 -0
  269. package/lib/utils/debug.d.ts +1 -1
  270. package/lib/utils/debug.js +16 -22
  271. package/lib/utils/debug.js.map +2 -2
  272. package/lib/utils/dom.d.ts +1 -1
  273. package/lib/utils/dom.js +7 -5
  274. package/lib/utils/dom.js.map +2 -2
  275. package/lib/utils/position.js +0 -1
  276. package/lib/utils/position.js.map +2 -2
  277. package/lib/utils/scrollPosition.d.ts +6 -0
  278. package/lib/utils/scrollPosition.js +31 -0
  279. package/lib/utils/scrollPosition.js.map +13 -0
  280. package/package.json +3 -2
  281. package/schema.json +29681 -28936
  282. package/scss/_properties.scss +44 -13
  283. package/scss/components/_barcode.scss +1 -1
  284. package/scss/components/_carousel.scss +1 -0
  285. package/scss/components/_column-toggler.scss +21 -11
  286. package/scss/components/_debug.scss +3 -3
  287. package/scss/components/_formula.scss +1 -1
  288. package/scss/components/_nav.scss +51 -6
  289. package/scss/components/_progress.scss +4 -6
  290. package/scss/components/_pull-refresh.scss +25 -0
  291. package/scss/components/_spinner.scss +134 -56
  292. package/scss/components/_steps.scss +199 -8
  293. package/scss/components/_tooltip.scss +4 -9
  294. package/scss/components/form/_checks.scss +125 -2
  295. package/scss/components/form/_combo.scss +13 -1
  296. package/scss/components/form/_date-range.scss +27 -2
  297. package/scss/components/form/_date.scss +13 -1
  298. package/scss/components/form/_editor.scss +2 -1
  299. package/scss/components/form/_file.scss +4 -0
  300. package/scss/components/form/_form.scss +31 -8
  301. package/scss/components/form/_number.scss +3 -2
  302. package/scss/components/form/_select.scss +0 -1
  303. package/scss/components/form/_textarea.scss +1 -23
  304. package/scss/components/form/_transfer.scss +3 -2
  305. package/scss/themes/_antd-variables.scss +1 -1
  306. package/scss/themes/_common.scss +1 -0
  307. package/scss/themes/_cxd-variables.scss +4 -4
  308. package/sdk/ang-ie11.css +816 -182
  309. package/sdk/ang.css +775 -129
  310. package/sdk/antd-ie11.css +896 -262
  311. package/sdk/antd.css +776 -130
  312. package/sdk/barcode.js +51 -51
  313. package/sdk/charts.js +14 -14
  314. package/sdk/codemirror.js +7 -7
  315. package/sdk/color-picker.js +65 -65
  316. package/sdk/cropperjs.js +2 -2
  317. package/sdk/cxd-ie11.css +907 -273
  318. package/sdk/cxd.css +779 -133
  319. package/sdk/dark-ie11.css +817 -183
  320. package/sdk/dark.css +775 -129
  321. package/sdk/exceljs.js +1 -1
  322. package/sdk/locale/de-DE.js +18 -1
  323. package/sdk/markdown.js +69 -69
  324. package/sdk/papaparse.js +1 -1
  325. package/sdk/renderers/Form/CityDB.js +1 -1
  326. package/sdk/rest.js +17 -17
  327. package/sdk/rich-text.js +62 -62
  328. package/sdk/sdk-ie11.css +907 -273
  329. package/sdk/sdk.css +779 -133
  330. package/sdk/sdk.js +1317 -1273
  331. package/sdk/thirds/hls.js/hls.js +1 -1
  332. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  333. package/sdk/tinymce.js +57 -57
  334. package/src/Schema.ts +10 -0
  335. package/src/SchemaRenderer.tsx +32 -14
  336. package/src/WithStore.tsx +3 -1
  337. package/src/actions/CmptAction.ts +28 -0
  338. package/src/actions/PageAction.ts +62 -0
  339. package/src/actions/index.ts +1 -0
  340. package/src/components/AssociatedSelection.tsx +9 -3
  341. package/src/components/BarCode.tsx +2 -2
  342. package/src/components/Cascader.tsx +37 -11
  343. package/src/components/Checkbox.tsx +11 -5
  344. package/src/components/DatePicker.tsx +12 -4
  345. package/src/components/DateRangePicker.tsx +551 -88
  346. package/src/components/Drawer.tsx +1 -0
  347. package/src/components/Modal.tsx +1 -0
  348. package/src/components/Overlay.tsx +6 -3
  349. package/src/components/Progress.tsx +57 -22
  350. package/src/components/PullRefresh.tsx +197 -0
  351. package/src/components/Radios.tsx +6 -17
  352. package/src/components/Range.tsx +26 -12
  353. package/src/components/Spinner.tsx +77 -42
  354. package/src/components/Steps.tsx +28 -27
  355. package/src/components/Tooltip.tsx +12 -3
  356. package/src/components/TooltipWrapper.tsx +137 -33
  357. package/src/components/Tree.tsx +19 -5
  358. package/src/components/calendar/Calendar.tsx +0 -14
  359. package/src/components/calendar/TimeView.tsx +12 -0
  360. package/src/components/calendar/YearsView.tsx +3 -4
  361. package/src/components/condition-builder/Expression.tsx +6 -1
  362. package/src/components/condition-builder/Field.tsx +5 -1
  363. package/src/components/condition-builder/Group.tsx +4 -1
  364. package/src/components/condition-builder/GroupOrItem.tsx +4 -1
  365. package/src/components/condition-builder/InputSwitch.tsx +4 -1
  366. package/src/components/condition-builder/Item.tsx +28 -4
  367. package/src/components/condition-builder/Value.tsx +7 -1
  368. package/src/components/condition-builder/index.tsx +4 -2
  369. package/src/components/formula/Editor.tsx +20 -15
  370. package/src/components/formula/Picker.tsx +9 -5
  371. package/src/factory.tsx +29 -1
  372. package/src/locale/de-DE.ts +18 -1
  373. package/src/locale/en-US.ts +18 -1
  374. package/src/locale/zh-CN.ts +18 -1
  375. package/src/renderers/Action.tsx +22 -1
  376. package/src/renderers/App.tsx +4 -0
  377. package/src/renderers/CRUD.tsx +23 -5
  378. package/src/renderers/Carousel.tsx +8 -0
  379. package/src/renderers/Chart.tsx +4 -0
  380. package/src/renderers/Dialog.tsx +4 -0
  381. package/src/renderers/Drawer.tsx +14 -2
  382. package/src/renderers/Form/Checkbox.tsx +11 -2
  383. package/src/renderers/Form/Checkboxes.tsx +106 -23
  384. package/src/renderers/Form/Combo.tsx +104 -49
  385. package/src/renderers/Form/InputCity.tsx +33 -4
  386. package/src/renderers/Form/InputDate.tsx +18 -4
  387. package/src/renderers/Form/InputDateRange.tsx +27 -3
  388. package/src/renderers/Form/InputFile.tsx +23 -7
  389. package/src/renderers/Form/InputImage.tsx +22 -6
  390. package/src/renderers/Form/InputMonthRange.tsx +7 -1
  391. package/src/renderers/Form/InputRange.tsx +18 -16
  392. package/src/renderers/Form/InputText.tsx +14 -4
  393. package/src/renderers/Form/InputTree.tsx +40 -2
  394. package/src/renderers/Form/Item.tsx +7 -0
  395. package/src/renderers/Form/NestedSelect.tsx +23 -4
  396. package/src/renderers/Form/Options.tsx +26 -7
  397. package/src/renderers/Form/Select.tsx +5 -3
  398. package/src/renderers/Form/Textarea.tsx +3 -1
  399. package/src/renderers/Form/TreeSelect.tsx +47 -9
  400. package/src/renderers/Form/index.tsx +56 -25
  401. package/src/renderers/Form/wrapControl.tsx +23 -12
  402. package/src/renderers/Nav.tsx +231 -33
  403. package/src/renderers/Page.tsx +96 -33
  404. package/src/renderers/Progress.tsx +7 -9
  405. package/src/renderers/Service.tsx +66 -27
  406. package/src/renderers/Spinner.tsx +85 -3
  407. package/src/renderers/Steps.tsx +14 -0
  408. package/src/renderers/Table/ColumnToggler.tsx +36 -11
  409. package/src/renderers/Table/TableCell.tsx +39 -1
  410. package/src/renderers/Table/index.tsx +43 -19
  411. package/src/renderers/Tabs.tsx +75 -28
  412. package/src/renderers/TooltipWrapper.tsx +71 -28
  413. package/src/renderers/Wizard.tsx +169 -93
  414. package/src/store/crud.ts +50 -5
  415. package/src/store/form.ts +8 -3
  416. package/src/store/formItem.ts +1 -2
  417. package/src/store/index.ts +20 -0
  418. package/src/store/table.ts +2 -2
  419. package/src/types.ts +8 -1
  420. package/src/utils/ColorScale.ts +138 -0
  421. package/src/utils/api.ts +26 -4
  422. package/src/utils/columnsSplit.tsx +57 -0
  423. package/src/utils/debug.tsx +17 -24
  424. package/src/utils/dom.tsx +7 -6
  425. package/src/utils/position.ts +0 -1
  426. package/src/utils/scrollPosition.ts +29 -0
@@ -7,77 +7,112 @@
7
7
 
8
8
  import React from 'react';
9
9
  import {themeable, ThemeProps} from '../theme';
10
- import Transition, {ENTERED, ENTERING} from 'react-transition-group/Transition';
11
- import {Icon} from './icons';
10
+ import Transition, {ENTERED} from 'react-transition-group/Transition';
11
+ import {Icon, hasIcon} from './icons';
12
+ import {generateIcon} from '../utils/icon';
12
13
 
13
14
  const fadeStyles: {
14
15
  [propName: string]: string;
15
16
  } = {
16
- [ENTERING]: 'in',
17
17
  [ENTERED]: 'in'
18
18
  };
19
19
 
20
- interface SpinnerProps extends ThemeProps {
21
- overlay: boolean;
22
- spinnerClassName: string;
23
- mode: string;
24
- size: 'sm' | 'lg' | '';
25
- show: boolean;
26
- icon?: string;
20
+ // Spinner Props
21
+ export interface SpinnerProps extends ThemeProps {
22
+ show: boolean; // 控制Spinner显示与隐藏
23
+ className?: string; // 自定义最外层元素class
24
+ spinnerClassName?: string; // spin图标位置包裹元素的自定义class
25
+ /**
26
+ * @deprecated 已废弃,没有作用
27
+ */
28
+ mode?: string;
29
+ size?: 'sm' | 'lg' | ''; // spinner Icon 大小
30
+ icon?: string | React.ReactNode; // 自定义icon
31
+ tip?: string; // spinner文案
32
+ tipPlacement?: 'top' | 'right' | 'bottom' | 'left'; // spinner文案位置
33
+ delay?: number; // 延迟显示
34
+ overlay?: boolean; // 是否显示遮罩层,有children属性才生效
27
35
  }
28
36
 
29
- export class Spinner extends React.Component<SpinnerProps, object> {
37
+ export class Spinner extends React.Component<SpinnerProps> {
30
38
  static defaultProps = {
31
- overlay: false,
39
+ show: true,
40
+ className: '',
32
41
  spinnerClassName: '',
33
- mode: '',
34
42
  size: '' as '',
35
- show: true
43
+ icon: '',
44
+ tip: '',
45
+ tipPlacement: 'bottom' as 'bottom',
46
+ delay: 0,
47
+ overlay: false
36
48
  };
37
49
 
38
- div: React.RefObject<HTMLDivElement> = React.createRef();
39
- overlay: React.RefObject<HTMLDivElement> = React.createRef();
40
-
41
50
  render() {
42
51
  const {
43
- show,
44
52
  classnames: cx,
53
+ show,
54
+ className,
45
55
  spinnerClassName,
46
- mode,
47
- size,
56
+ size = '',
48
57
  overlay,
49
- icon
58
+ delay,
59
+ icon,
60
+ tip,
61
+ tipPlacement = ''
50
62
  } = this.props;
63
+ const isCustomIcon = icon && React.isValidElement(icon);
64
+ const timeout = {enter: delay, exit: 0};
65
+
51
66
  return (
52
- <Transition mountOnEnter unmountOnExit in={show} timeout={350}>
67
+ <Transition mountOnEnter unmountOnExit in={show} timeout={timeout}>
53
68
  {(status: string) => {
54
- if (status === ENTERING) {
55
- // force reflow
56
- // 由于从 mount 进来到加上 in 这个 class 估计是时间太短,上次的样式还没应用进去,所以这里强制reflow一把。
57
- // 否则看不到动画。
58
- // this.div.current!.offsetWidth;
59
- this.overlay.current && this.overlay.current.offsetWidth;
60
- }
61
-
62
69
  return (
63
70
  <>
71
+ {/* 遮罩层 */}
64
72
  {overlay ? (
65
- <div
66
- ref={this.overlay}
67
- className={cx(`Spinner-overlay`, fadeStyles[status])}
68
- />
73
+ <div className={cx(`Spinner-overlay`, fadeStyles[status])} />
69
74
  ) : null}
70
75
 
76
+ {/* spinner图标和文案 */}
71
77
  <div
72
- ref={this.div}
73
- className={cx(`Spinner`, spinnerClassName, fadeStyles[status], {
74
- [`Spinner--${mode}`]: mode,
75
- [`Spinner--overlay`]: overlay,
76
- [`Spinner--${size}`]: size,
77
- [`Spinner--icon`]: icon
78
- })}
78
+ className={cx(
79
+ `Spinner`,
80
+ tip && {
81
+ [`Spinner-tip--${tipPlacement}`]: [
82
+ 'top',
83
+ 'right',
84
+ 'bottom',
85
+ 'left'
86
+ ].includes(tipPlacement)
87
+ },
88
+ {[`Spinner--overlay`]: overlay},
89
+ fadeStyles[status],
90
+ className
91
+ )}
79
92
  >
80
- {icon ? <Icon icon={icon} className="icon" /> : null}
93
+ <div
94
+ className={cx(
95
+ `Spinner-icon`,
96
+ {
97
+ [`Spinner-icon--${size}`]: ['lg', 'sm'].includes(size),
98
+ [`Spinner-icon--default`]: !icon,
99
+ [`Spinner-icon--simple`]: !isCustomIcon && icon,
100
+ [`Spinner-icon--custom`]: isCustomIcon
101
+ },
102
+ spinnerClassName
103
+ )}
104
+ >
105
+ {icon ? (
106
+ isCustomIcon ? (
107
+ icon
108
+ ) : hasIcon(icon as string) ? (
109
+ <Icon icon={icon} className="icon" />
110
+ ) : (
111
+ generateIcon(cx, icon as string, 'icon')
112
+ )
113
+ ) : null}
114
+ </div>
115
+ {tip ? <span className={cx(`Spinner-tip`)}>{tip}</span> : ''}
81
116
  </div>
82
117
  </>
83
118
  );
@@ -69,8 +69,12 @@ export interface StepsSchema extends BaseSchema {
69
69
  * 展示模式
70
70
  */
71
71
  mode?: 'horizontal' | 'vertical';
72
- }
73
72
 
73
+ /**
74
+ * 标签放置位置
75
+ */
76
+ labelPlacement?: 'horizontal' | 'vertical';
77
+ }
74
78
  export interface StepsProps extends ThemeProps {
75
79
  steps: StepSchema[];
76
80
  className: string;
@@ -81,6 +85,8 @@ export interface StepsProps extends ThemeProps {
81
85
  [propName: string]: StepStatus;
82
86
  };
83
87
  mode?: 'horizontal' | 'vertical';
88
+ labelPlacement?: 'horizontal' | 'vertical';
89
+ progressDot?: boolean;
84
90
  useMobileUI?: boolean;
85
91
  }
86
92
 
@@ -92,6 +98,8 @@ export function Steps(props: StepsProps) {
92
98
  current,
93
99
  status,
94
100
  mode = 'horizontal',
101
+ labelPlacement = 'horizontal',
102
+ progressDot = false,
95
103
  useMobileUI
96
104
  } = props;
97
105
  const FINISH_ICON = 'check';
@@ -129,48 +137,41 @@ export function Steps(props: StepsProps) {
129
137
 
130
138
  const mobileUI = useMobileUI && isMobile();
131
139
  return (
132
- <ul
133
- className={cx(
134
- 'Steps',
135
- `Steps--${mode}`,
136
- mobileUI ? 'Steps-mobile' : '',
137
- className
138
- )}
139
- >
140
+ <ul className={cx( // 纵向步骤条暂时不支持labelPlacement属性
141
+ 'Steps',
142
+ `Steps--Placement-${(progressDot || (labelPlacement === 'vertical' && mode != 'vertical')) ? 'vertical' : ''}`,
143
+ `Steps--${progressDot ? 'ProgressDot' : ''}`,
144
+ `Steps--${mode}`,
145
+ mobileUI ? 'Steps-mobile' : '', className)}>
140
146
  {stepsRow.map((step, i) => {
141
147
  const {stepStatus, icon} = getStepStatus(step, i);
142
-
143
148
  return (
144
149
  <li
145
150
  key={i}
146
- className={cx('StepsItem', `is-${stepStatus}`, step.className)}
151
+ className={cx('StepsItem', `is-${stepStatus}`, step.className, `StepsItem-${progressDot ? 'ProgressDot' : ''}`)}
147
152
  >
148
153
  <div className={cx('StepsItem-container')}>
149
- <div
150
- className={cx(
151
- 'StepsItem-containerIcon',
152
- i < current && 'is-success'
153
- )}
154
- >
155
- <span className={cx('StepsItem-icon')}>
156
- {icon ? <Icon icon={icon} className="icon" /> : i + 1}
157
- </span>
158
- </div>
154
+ <div className={cx('StepsItem-containerTail')}></div>
155
+ {progressDot ? <div className={cx('StepsItem-containerProgressDot')}></div>
156
+ : <div className={cx('StepsItem-containerIcon', i < current && 'is-success')}>
157
+ <span className={cx('StepsItem-icon')}>
158
+ {icon ? <Icon icon={icon} className="icon" /> : i + 1}
159
+ </span>
160
+ </div>}
159
161
  <div className={cx('StepsItem-containerWrapper')}>
160
162
  <div className={cx('StepsItem-body')}>
161
163
  <div
162
164
  className={cx(
163
165
  'StepsItem-title',
166
+ `StepsItem-${progressDot ? 'vertical-ProgressDot' : ''}`,
164
167
  i < current && 'is-success'
165
168
  )}
166
169
  >
167
- <span>{step.title}</span>
168
- <span className={cx('StepsItem-subTitle')}>
169
- {step.subTitle}
170
- </span>
170
+ <span className={cx('StepsItem-ellText')} title={String(step.title)}>{step.title}</span>
171
+ <span className={cx('StepsItem-subTitle', 'StepsItem-ellText')} title={String(step.subTitle)}>{step.subTitle}</span>
171
172
  </div>
172
- <div className={cx('StepsItem-description')}>
173
- {step.description}
173
+ <div className={cx('StepsItem-description', 'StepsItem-ellText')} title={String(step.description)}>
174
+ <span>{step.description}</span>
174
175
  </div>
175
176
  </div>
176
177
  </div>
@@ -18,18 +18,23 @@ interface TooltipProps extends React.HTMLProps<HTMLDivElement> {
18
18
  style?: any;
19
19
  arrowProps?: any;
20
20
  placement?: string;
21
+ showArrow?: boolean;
22
+ tooltipTheme?: string;
21
23
  [propName: string]: any;
22
24
  }
23
25
 
24
26
  export class Tooltip extends React.Component<TooltipProps> {
25
27
  static defaultProps = {
26
- className: ''
28
+ className: '',
29
+ tooltipTheme: 'light',
30
+ showArrow: true
27
31
  };
28
32
 
29
33
  render() {
30
34
  const {
31
35
  classPrefix: ns,
32
36
  className,
37
+ tooltipTheme,
33
38
  title,
34
39
  children,
35
40
  arrowProps,
@@ -41,6 +46,7 @@ export class Tooltip extends React.Component<TooltipProps> {
41
46
  positionTop,
42
47
  classnames: cx,
43
48
  activePlacement,
49
+ showArrow,
44
50
  onMouseEnter,
45
51
  onMouseLeave,
46
52
  ...rest
@@ -52,14 +58,17 @@ export class Tooltip extends React.Component<TooltipProps> {
52
58
  className={cx(
53
59
  `Tooltip`,
54
60
  activePlacement ? `Tooltip--${activePlacement}` : '',
55
- className
61
+ className,
62
+ `Tooltip--${tooltipTheme === 'dark' ? 'dark' : 'light'}`
56
63
  )}
57
64
  style={style}
58
65
  onMouseEnter={onMouseEnter}
59
66
  onMouseLeave={onMouseLeave}
60
67
  role="tooltip"
61
68
  >
62
- <div className={cx(`Tooltip-arrow`)} {...arrowProps} />
69
+ {showArrow ? (
70
+ <div className={cx(`Tooltip-arrow`)} {...arrowProps} />
71
+ ) : null}
63
72
  {title ? <div className={cx('Tooltip-title')}>{title}</div> : null}
64
73
  <div className={cx('Tooltip-body')}>{children}</div>
65
74
  </div>
@@ -11,21 +11,82 @@ import {findDOMNode} from 'react-dom';
11
11
  import Tooltip from './Tooltip';
12
12
  import {ClassNamesFn, themeable} from '../theme';
13
13
  import Overlay from './Overlay';
14
+ import {isObject} from '../utils/helper';
15
+
16
+ export type Trigger = 'hover' | 'click' | 'focus';
14
17
 
15
18
  export interface TooltipObject {
19
+ /**
20
+ * 文字提示标题
21
+ */
16
22
  title?: string;
23
+ /**
24
+ * 文字提示内容
25
+ */
17
26
  content?: string;
18
- render?: () => JSX.Element;
19
- dom?: JSX.Element;
27
+ /**
28
+ * 浮层出现位置
29
+ */
30
+ placement?: 'top' | 'right' | 'bottom' | 'left';
31
+ /**
32
+ * 主题样式
33
+ */
34
+ tooltipTheme?: 'light' | 'dark';
35
+ /**
36
+ * 浮层位置相对偏移量
37
+ */
38
+ offset?: [number, number];
39
+ /**
40
+ * 内容区自定义样式
41
+ */
42
+ style?: React.CSSProperties;
43
+ /**
44
+ * 是否可以移入浮层中, 默认true
45
+ */
46
+ enterable?: boolean;
47
+ /**
48
+ * 是否展示浮层指向箭头
49
+ */
50
+ showArrow?: boolean;
51
+ /**
52
+ * 是否禁用提示
53
+ */
54
+ disabled?: boolean;
55
+ /**
56
+ * 浮层延迟显示时间, 单位 ms
57
+ */
58
+ mouseEnterDelay?: number;
59
+ /**
60
+ * 浮层延迟隐藏时间, 单位 ms
61
+ */
62
+ mouseLeaveDelay?: number;
63
+ /**
64
+ * 浮层内容可通过JSX渲染
65
+ */
66
+ children?: () => JSX.Element | JSX.Element;
67
+ /**
68
+ * 挂载容器元素
69
+ */
70
+ container?: React.ReactNode;
71
+ /**
72
+ * 浮层触发方式
73
+ */
74
+ trigger?: Trigger | Array<Trigger>;
75
+ /**
76
+ * 是否点击非内容区域关闭提示,默认为true
77
+ */
78
+ rootClose?: boolean;
79
+ /**
80
+ * 文字提示浮层CSS类名
81
+ */
82
+ tooltipClassName?: string;
20
83
  }
21
84
 
22
- export type Trigger = 'hover' | 'click' | 'focus';
23
-
24
85
  export interface TooltipWrapperProps {
86
+ tooltip?: string | TooltipObject;
25
87
  classPrefix: string;
26
88
  classnames: ClassNamesFn;
27
89
  placement: 'top' | 'right' | 'bottom' | 'left';
28
- tooltip?: string | TooltipObject;
29
90
  container?: React.ReactNode;
30
91
  trigger: Trigger | Array<Trigger>;
31
92
  rootClose: boolean;
@@ -106,18 +167,42 @@ export class TooltipWrapper extends React.Component<
106
167
  return child && (child as any).props;
107
168
  }
108
169
 
170
+ tooltipMouseEnter = (e: MouseEvent) => {
171
+ const tooltip = this.props.tooltip;
172
+ const enterable = (tooltip as any)?.enterable ?? true;
173
+ enterable && clearTimeout(this.timer);
174
+ };
175
+
176
+ tooltipMouseLeave = (e: MouseEvent) => {
177
+ const tooltip = this.props.tooltip;
178
+ const enterable = (tooltip as any)?.enterable ?? true;
179
+ enterable && clearTimeout(this.timer);
180
+ this.hide();
181
+ };
182
+
109
183
  handleShow() {
110
184
  this.timer && clearTimeout(this.timer);
111
185
  waitToHide && waitToHide();
112
- this.show();
186
+ const tooltip = this.props.tooltip;
187
+ if (isObject(tooltip)) {
188
+ const {mouseEnterDelay = 0} = tooltip as TooltipObject;
189
+ this.timer = setTimeout(this.show, mouseEnterDelay);
190
+ } else {
191
+ this.timer = setTimeout(this.show, 0);
192
+ }
113
193
  }
114
194
 
115
195
  handleHide() {
116
196
  clearTimeout(this.timer);
117
- const {delay} = this.props;
197
+ const {delay, tooltip} = this.props;
118
198
 
119
199
  waitToHide = this.hide.bind(this);
120
- this.timer = setTimeout(this.hide, delay);
200
+ if (isObject(tooltip)) {
201
+ const {mouseLeaveDelay = 300} = tooltip as TooltipObject;
202
+ this.timer = setTimeout(this.hide, mouseLeaveDelay);
203
+ } else {
204
+ this.timer = setTimeout(this.hide, delay);
205
+ }
121
206
  }
122
207
 
123
208
  handleFocus(e: any) {
@@ -161,22 +246,42 @@ export class TooltipWrapper extends React.Component<
161
246
  }
162
247
 
163
248
  render() {
249
+ const props = this.props;
250
+
251
+ const child = React.Children.only(props.children);
252
+ if (!props.tooltip) {
253
+ return child;
254
+ }
255
+
256
+ // tooltip 对象内属性优先级更高
257
+ const tooltipObj: TooltipObject = {
258
+ placement: props.placement,
259
+ container: props.container,
260
+ trigger: props.trigger,
261
+ rootClose: props.rootClose,
262
+ tooltipClassName: props.tooltipClassName,
263
+ style: props.style,
264
+ mouseLeaveDelay: props.delay,
265
+ ...(typeof props.tooltip === 'string'
266
+ ? {content: props.tooltip}
267
+ : props.tooltip)
268
+ };
269
+
164
270
  const {
165
- tooltip,
166
- children,
271
+ title,
272
+ content,
167
273
  placement,
168
274
  container,
169
275
  trigger,
170
276
  rootClose,
171
277
  tooltipClassName,
172
- style
173
- } = this.props;
174
-
175
- const child = React.Children.only(children);
176
-
177
- if (!tooltip) {
178
- return child;
179
- }
278
+ style,
279
+ disabled = false,
280
+ offset,
281
+ tooltipTheme = 'light',
282
+ showArrow = true,
283
+ children
284
+ } = tooltipObj;
180
285
 
181
286
  const childProps: any = {
182
287
  key: 'target'
@@ -204,31 +309,30 @@ export class TooltipWrapper extends React.Component<
204
309
  <Overlay
205
310
  key="overlay"
206
311
  target={this.getTarget}
207
- show={this.state.show}
312
+ show={this.state.show && !disabled}
208
313
  onHide={this.handleHide}
209
314
  rootClose={rootClose}
210
315
  placement={placement}
211
316
  container={container}
317
+ offset={Array.isArray(offset) ? offset : [0, 0]}
212
318
  >
213
319
  <Tooltip
214
- title={typeof tooltip !== 'string' ? tooltip.title : undefined}
320
+ title={typeof title === 'string' ? title : undefined}
215
321
  style={style}
216
322
  className={tooltipClassName}
217
- onMouseEnter={~triggers.indexOf('hover') && this.handleMouseOver}
218
- onMouseLeave={~triggers.indexOf('hover') && this.handleMouseOut}
323
+ tooltipTheme={tooltipTheme}
324
+ showArrow={showArrow}
325
+ onMouseEnter={
326
+ ~triggers.indexOf('hover') ? this.tooltipMouseEnter : () => {}
327
+ }
328
+ onMouseLeave={
329
+ ~triggers.indexOf('hover') ? this.tooltipMouseLeave : () => {}
330
+ }
219
331
  >
220
- {tooltip && (tooltip as TooltipObject).render ? (
221
- this.state.show ? (
222
- (tooltip as TooltipObject).render!()
223
- ) : null
224
- ) : tooltip && (tooltip as TooltipObject).dom ? (
225
- (tooltip as TooltipObject).dom!
332
+ {children ? (
333
+ <>{typeof children === 'function' ? children() : children}</>
226
334
  ) : (
227
- <Html
228
- html={
229
- typeof tooltip === 'string' ? tooltip : tooltip.content || ''
230
- }
231
- />
335
+ <Html html={typeof content === 'string' ? content : ''} />
232
336
  )}
233
337
  </Tooltip>
234
338
  </Overlay>
@@ -41,6 +41,8 @@ export interface IDropInfo {
41
41
  interface TreeSelectorProps extends ThemeProps, LocaleProps {
42
42
  highlightTxt?: string;
43
43
 
44
+ onRef: any;
45
+
44
46
  showIcon?: boolean;
45
47
  // 是否默认都展开
46
48
  initiallyOpen?: boolean;
@@ -55,6 +57,8 @@ interface TreeSelectorProps extends ThemeProps, LocaleProps {
55
57
  withChildren?: boolean;
56
58
  // 多选时,选中父节点时,是否只将起子节点加入到值中。
57
59
  onlyChildren?: boolean;
60
+ // 单选时,只运行选择子节点
61
+ onlyLeaf?: boolean;
58
62
  // 名称、取值等字段名映射
59
63
  labelField: string;
60
64
  valueField: string;
@@ -206,6 +210,7 @@ export class TreeSelector extends React.Component<
206
210
 
207
211
  componentDidMount() {
208
212
  const {enableNodePath} = this.props;
213
+ this.props.onRef(this)
209
214
  enableNodePath && this.expandLazyLoadNodes();
210
215
  }
211
216
 
@@ -246,20 +251,23 @@ export class TreeSelector extends React.Component<
246
251
  onExpandTree?.(nodePathArr);
247
252
  }
248
253
 
249
- syncUnFolded(props: TreeSelectorProps) {
254
+ syncUnFolded(props: TreeSelectorProps, unfoldedLevel?: Number) {
255
+ // 传入默认展开层级需要重新初始化unfolded
256
+ let initFoldedLevel = typeof unfoldedLevel !== 'undefined';
257
+ let expandLevel = initFoldedLevel ? unfoldedLevel : props.unfoldedLevel;
250
258
  // 初始化树节点的展开状态
251
259
  let unfolded = this.unfolded;
252
260
  const {foldedField, unfoldedField} = this.props;
253
261
 
254
262
  eachTree(props.options, (node: Option, index, level) => {
255
- if (unfolded.has(node)) {
263
+ if (unfolded.has(node) && !initFoldedLevel) {
256
264
  return;
257
265
  }
258
266
 
259
267
  if (node.children && node.children.length) {
260
268
  let ret: any = true;
261
269
 
262
- if (node.defer && node.loaded) {
270
+ if (node.defer && node.loaded && !initFoldedLevel) {
263
271
  ret = true;
264
272
  } else if (
265
273
  unfoldedField &&
@@ -270,7 +278,7 @@ export class TreeSelector extends React.Component<
270
278
  ret = !node[foldedField];
271
279
  } else {
272
280
  ret = !!props.initiallyOpen;
273
- if (!ret && level <= (props.unfoldedLevel as number)) {
281
+ if (!ret && level <= (expandLevel as number)) {
274
282
  ret = true;
275
283
  }
276
284
  }
@@ -278,6 +286,8 @@ export class TreeSelector extends React.Component<
278
286
  }
279
287
  });
280
288
 
289
+ initFoldedLevel && this.forceUpdate();
290
+
281
291
  return unfolded;
282
292
  }
283
293
 
@@ -365,13 +375,17 @@ export class TreeSelector extends React.Component<
365
375
 
366
376
  @autobind
367
377
  handleSelect(node: any, value?: any) {
368
- const {joinValues, valueField, onChange, enableNodePath} = this.props;
378
+ const {joinValues, valueField, onChange, enableNodePath, onlyLeaf} =
379
+ this.props;
369
380
 
370
381
  if (node[valueField as string] === undefined) {
371
382
  if (node.defer && !node.loaded) {
372
383
  this.toggleUnfolded(node);
373
384
  }
385
+ return;
386
+ }
374
387
 
388
+ if (onlyLeaf && node.children) {
375
389
  return;
376
390
  }
377
391
 
@@ -161,20 +161,6 @@ class BaseDatePicker extends React.Component<
161
161
  updatedState = this.getStateFromProps(props);
162
162
  }
163
163
 
164
- // open 是外部控制了
165
- // if (updatedState.open === undefined) {
166
- // if (typeof props.open !== 'undefined') {
167
- // updatedState.open = props.open;
168
- // } else if (
169
- // prevProps.closeOnSelect &&
170
- // this.state.currentView !== viewModes.TIME
171
- // ) {
172
- // updatedState.open = false;
173
- // } else {
174
- // updatedState.open = this.state.open;
175
- // }
176
- // }
177
-
178
164
  if (props.viewMode !== prevProps.viewMode) {
179
165
  updatedState.currentView = props.viewMode;
180
166
  }
@@ -1,5 +1,6 @@
1
1
  import moment from 'moment';
2
2
  import React from 'react';
3
+ import merge from 'lodash/merge';
3
4
  import {LocaleProps, localeable} from '../../locale';
4
5
  import {Icon} from '../icons';
5
6
  import {ClassNamesFn} from '../../theme';
@@ -30,6 +31,7 @@ interface CustomTimeViewProps extends LocaleProps {
30
31
  useMobileUI: boolean;
31
32
  showToolbar?: boolean;
32
33
  onChange?: (value: any) => void;
34
+ timeConstraints?: any;
33
35
  }
34
36
 
35
37
  interface CustomTimeViewState {
@@ -85,6 +87,13 @@ export class CustomTimeView extends React.Component<
85
87
  constructor(props: any) {
86
88
  super(props);
87
89
  this.state = this.calculateState(this.props);
90
+
91
+ if (this.props.timeConstraints) {
92
+ this.timeConstraints = merge(
93
+ this.timeConstraints,
94
+ this.props.timeConstraints
95
+ );
96
+ }
88
97
  }
89
98
 
90
99
  componentDidUpdate(preProps: CustomTimeViewProps) {
@@ -173,6 +182,9 @@ export class CustomTimeView extends React.Component<
173
182
  value =
174
183
  this.timeConstraints[type].min +
175
184
  (value - (this.timeConstraints[type].max + 1));
185
+ if (value < this.timeConstraints[type].min) {
186
+ value = this.timeConstraints[type].min;
187
+ }
176
188
  return this.pad(type, value);
177
189
  }
178
190