amis 1.4.2-beta.6 → 1.5.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 (488) hide show
  1. package/lib/Schema.d.ts +11 -3
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/components/Alert2.d.ts +26 -21
  4. package/lib/components/Alert2.js +11 -4
  5. package/lib/components/Alert2.js.map +2 -2
  6. package/lib/components/AnchorNav.d.ts +22 -21
  7. package/lib/components/AnchorNav.js +7 -3
  8. package/lib/components/AnchorNav.js.map +2 -2
  9. package/lib/components/ArrayInput.d.ts +84 -84
  10. package/lib/components/AssociatedSelection.d.ts +930 -0
  11. package/lib/components/AssociatedSelection.js +89 -0
  12. package/lib/components/AssociatedSelection.js.map +13 -0
  13. package/lib/components/Badge.js +2 -2
  14. package/lib/components/Badge.js.map +2 -2
  15. package/lib/components/Button.js +1 -1
  16. package/lib/components/Button.js.map +2 -2
  17. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  18. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  19. package/lib/components/ChainedSelection.js.map +13 -0
  20. package/lib/components/Checkbox.d.ts +20 -20
  21. package/lib/components/Collapse.d.ts +51 -23
  22. package/lib/components/Collapse.js +70 -11
  23. package/lib/components/Collapse.js.map +2 -2
  24. package/lib/components/CollapseGroup.d.ts +88 -0
  25. package/lib/components/CollapseGroup.js +81 -0
  26. package/lib/components/CollapseGroup.js.map +13 -0
  27. package/lib/components/ColorPicker.d.ts +89 -85
  28. package/lib/components/ColorPicker.js +17 -4
  29. package/lib/components/ColorPicker.js.map +2 -2
  30. package/lib/components/DatePicker.d.ts +84 -84
  31. package/lib/components/DateRangePicker.d.ts +84 -84
  32. package/lib/components/Drawer.js +2 -2
  33. package/lib/components/Drawer.js.map +2 -2
  34. package/lib/components/Editor.d.ts +84 -84
  35. package/lib/components/GridNav.d.ts +52 -0
  36. package/lib/components/GridNav.js +123 -0
  37. package/lib/components/GridNav.js.map +13 -0
  38. package/lib/components/GroupedSelection.d.ts +907 -0
  39. package/lib/components/GroupedSelection.js +48 -0
  40. package/lib/components/GroupedSelection.js.map +13 -0
  41. package/lib/components/InputBox.d.ts +22 -21
  42. package/lib/components/InputBox.js +10 -2
  43. package/lib/components/InputBox.js.map +2 -2
  44. package/lib/components/Link.d.ts +29 -36
  45. package/lib/components/Link.js +14 -15
  46. package/lib/components/Link.js.map +2 -2
  47. package/lib/components/ListGroup.d.ts +21 -21
  48. package/lib/components/ModalManager.js +1 -1
  49. package/lib/components/ModalManager.js.map +2 -2
  50. package/lib/components/MonthRangePicker.d.ts +84 -84
  51. package/lib/components/NumberInput.d.ts +20 -20
  52. package/lib/components/Overlay.js +5 -0
  53. package/lib/components/Overlay.js.map +2 -2
  54. package/lib/components/PickerColumn.d.ts +514 -0
  55. package/lib/components/PickerColumn.js +279 -0
  56. package/lib/components/PickerColumn.js.map +13 -0
  57. package/lib/components/PickerContainer.d.ts +513 -0
  58. package/lib/components/PickerContainer.js +96 -0
  59. package/lib/components/PickerContainer.js.map +13 -0
  60. package/lib/components/PopOver.d.ts +1 -0
  61. package/lib/components/PopOver.js +12 -1
  62. package/lib/components/PopOver.js.map +2 -2
  63. package/lib/components/Progress.d.ts +85 -0
  64. package/lib/components/Progress.js +81 -0
  65. package/lib/components/Progress.js.map +13 -0
  66. package/lib/components/Radios.d.ts +22 -21
  67. package/lib/components/Radios.js +1 -0
  68. package/lib/components/Radios.js.map +2 -2
  69. package/lib/components/Rating.d.ts +21 -21
  70. package/lib/components/ResultBox.d.ts +84 -84
  71. package/lib/components/ResultBox.js +10 -2
  72. package/lib/components/ResultBox.js.map +2 -2
  73. package/lib/components/SearchBox.d.ts +84 -84
  74. package/lib/components/Select.d.ts +245 -237
  75. package/lib/components/Select.js +25 -4
  76. package/lib/components/Select.js.map +2 -2
  77. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  78. package/lib/components/Selection.js +134 -0
  79. package/lib/components/Selection.js.map +13 -0
  80. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  81. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  82. package/lib/components/TableSelection.js.map +13 -0
  83. package/lib/components/Tabs.d.ts +20 -20
  84. package/lib/components/TabsTransfer.d.ts +84 -84
  85. package/lib/components/TabsTransfer.js +9 -9
  86. package/lib/components/TabsTransfer.js.map +2 -2
  87. package/lib/components/TabsTransferPicker.d.ts +489 -0
  88. package/lib/components/TabsTransferPicker.js +60 -0
  89. package/lib/components/TabsTransferPicker.js.map +13 -0
  90. package/lib/components/Toast.d.ts +90 -87
  91. package/lib/components/Toast.js +15 -5
  92. package/lib/components/Toast.js.map +2 -2
  93. package/lib/components/Transfer.d.ts +908 -274
  94. package/lib/components/Transfer.js +31 -24
  95. package/lib/components/Transfer.js.map +2 -2
  96. package/lib/components/TransferDropDown.d.ts +488 -0
  97. package/lib/components/TransferDropDown.js +59 -0
  98. package/lib/components/TransferDropDown.js.map +13 -0
  99. package/lib/components/TransferPicker.d.ts +493 -0
  100. package/lib/components/TransferPicker.js +60 -0
  101. package/lib/components/TransferPicker.js.map +13 -0
  102. package/lib/components/Tree.d.ts +115 -84
  103. package/lib/components/Tree.js +183 -30
  104. package/lib/components/Tree.js.map +2 -2
  105. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  106. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  107. package/lib/components/TreeSelection.js.map +13 -0
  108. package/lib/components/condition-builder/Field.js +4 -2
  109. package/lib/components/condition-builder/Field.js.map +2 -2
  110. package/lib/components/condition-builder/Func.js +2 -2
  111. package/lib/components/condition-builder/Func.js.map +2 -2
  112. package/lib/components/condition-builder/InputSwitch.js +2 -2
  113. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  114. package/lib/components/condition-builder/Item.js +3 -3
  115. package/lib/components/condition-builder/Item.js.map +2 -2
  116. package/lib/components/icons.js +10 -0
  117. package/lib/components/icons.js.map +2 -2
  118. package/lib/components/index.d.ts +8 -8
  119. package/lib/components/index.js +16 -16
  120. package/lib/components/index.js.map +2 -2
  121. package/lib/envOverwrite.d.ts +1 -1
  122. package/lib/envOverwrite.js +24 -9
  123. package/lib/envOverwrite.js.map +2 -2
  124. package/lib/factory.d.ts +15 -1
  125. package/lib/factory.js +35 -6
  126. package/lib/factory.js.map +2 -2
  127. package/lib/helper.css.map +1 -1
  128. package/lib/hooks/index.d.ts +5 -0
  129. package/lib/hooks/index.js +14 -0
  130. package/lib/hooks/index.js.map +13 -0
  131. package/lib/hooks/use-set-state.d.ts +2 -0
  132. package/lib/hooks/use-set-state.js +15 -0
  133. package/lib/hooks/use-set-state.js.map +13 -0
  134. package/lib/hooks/use-touch.d.ts +16 -0
  135. package/lib/hooks/use-touch.js +73 -0
  136. package/lib/hooks/use-touch.js.map +13 -0
  137. package/lib/hooks/use-update-effect.d.ts +3 -0
  138. package/lib/hooks/use-update-effect.js +17 -0
  139. package/lib/hooks/use-update-effect.js.map +13 -0
  140. package/lib/icons/alert-danger.js +7 -0
  141. package/lib/icons/alert-info.js +7 -0
  142. package/lib/icons/alert-success.js +7 -0
  143. package/lib/icons/alert-warning.js +7 -0
  144. package/lib/icons/download.js +7 -0
  145. package/lib/icons/drag-bar.js +10 -3
  146. package/lib/index.d.ts +5 -0
  147. package/lib/index.js +6 -1
  148. package/lib/index.js.map +2 -2
  149. package/lib/locale/de-DE.js +2 -0
  150. package/lib/locale/de-DE.js.map +2 -2
  151. package/lib/locale/en-US.js +3 -0
  152. package/lib/locale/en-US.js.map +2 -2
  153. package/lib/locale/zh-CN.js +5 -2
  154. package/lib/locale/zh-CN.js.map +2 -2
  155. package/lib/renderers/Action.d.ts +10 -5
  156. package/lib/renderers/Action.js +23 -5
  157. package/lib/renderers/Action.js.map +2 -2
  158. package/lib/renderers/Alert.d.ts +21 -1
  159. package/lib/renderers/Alert.js.map +2 -2
  160. package/lib/renderers/AnchorNav.d.ts +1 -0
  161. package/lib/renderers/AnchorNav.js +2 -2
  162. package/lib/renderers/AnchorNav.js.map +2 -2
  163. package/lib/renderers/Avatar.js +3 -3
  164. package/lib/renderers/Avatar.js.map +2 -2
  165. package/lib/renderers/Breadcrumb.js +1 -1
  166. package/lib/renderers/Breadcrumb.js.map +2 -2
  167. package/lib/renderers/CRUD.d.ts +5 -0
  168. package/lib/renderers/CRUD.js +25 -4
  169. package/lib/renderers/CRUD.js.map +2 -2
  170. package/lib/renderers/Card.d.ts +5 -0
  171. package/lib/renderers/Card.js +34 -23
  172. package/lib/renderers/Card.js.map +2 -2
  173. package/lib/renderers/Collapse.d.ts +25 -20
  174. package/lib/renderers/Collapse.js +10 -72
  175. package/lib/renderers/Collapse.js.map +2 -2
  176. package/lib/renderers/CollapseGroup.d.ts +42 -0
  177. package/lib/renderers/CollapseGroup.js +33 -0
  178. package/lib/renderers/CollapseGroup.js.map +13 -0
  179. package/lib/renderers/Form/ConditionBuilder.js +2 -2
  180. package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
  181. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  182. package/lib/renderers/Form/Editor.d.ts +3 -2
  183. package/lib/renderers/Form/InputCity.d.ts +84 -84
  184. package/lib/renderers/Form/InputCity.js +7 -6
  185. package/lib/renderers/Form/InputCity.js.map +2 -2
  186. package/lib/renderers/Form/InputColor.d.ts +86 -85
  187. package/lib/renderers/Form/InputColor.js +1 -1
  188. package/lib/renderers/Form/InputColor.js.map +2 -2
  189. package/lib/renderers/Form/InputFile.d.ts +6 -0
  190. package/lib/renderers/Form/InputFile.js +28 -8
  191. package/lib/renderers/Form/InputFile.js.map +2 -2
  192. package/lib/renderers/Form/InputImage.js +11 -4
  193. package/lib/renderers/Form/InputImage.js.map +2 -2
  194. package/lib/renderers/Form/Item.d.ts +1 -1
  195. package/lib/renderers/Form/Item.js +2 -1
  196. package/lib/renderers/Form/Item.js.map +2 -2
  197. package/lib/renderers/Form/Options.js +25 -4
  198. package/lib/renderers/Form/Options.js.map +2 -2
  199. package/lib/renderers/Form/Select.d.ts +42 -4
  200. package/lib/renderers/Form/Select.js +37 -3
  201. package/lib/renderers/Form/Select.js.map +2 -2
  202. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  203. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  204. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  205. package/lib/renderers/Form/Transfer.js +18 -3
  206. package/lib/renderers/Form/Transfer.js.map +2 -2
  207. package/lib/renderers/Form/TransferPicker.d.ts +52 -0
  208. package/lib/renderers/Form/TransferPicker.js +43 -0
  209. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  210. package/lib/renderers/Form/TreeSelect.js +2 -2
  211. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  212. package/lib/renderers/Form/index.d.ts +5 -0
  213. package/lib/renderers/Form/index.js +5 -3
  214. package/lib/renderers/Form/index.js.map +2 -2
  215. package/lib/renderers/Form/wrapControl.js +13 -1
  216. package/lib/renderers/Form/wrapControl.js.map +2 -2
  217. package/lib/renderers/GridNav.d.ts +99 -0
  218. package/lib/renderers/GridNav.js +82 -0
  219. package/lib/renderers/GridNav.js.map +13 -0
  220. package/lib/renderers/IFrame.js +1 -3
  221. package/lib/renderers/IFrame.js.map +2 -2
  222. package/lib/renderers/Image.js +7 -5
  223. package/lib/renderers/Image.js.map +2 -2
  224. package/lib/renderers/Json.d.ts +4 -0
  225. package/lib/renderers/Json.js +4 -13
  226. package/lib/renderers/Json.js.map +2 -2
  227. package/lib/renderers/Link.d.ts +4 -2
  228. package/lib/renderers/Link.js +15 -8
  229. package/lib/renderers/Link.js.map +2 -2
  230. package/lib/renderers/List.js +1 -1
  231. package/lib/renderers/List.js.map +2 -2
  232. package/lib/renderers/Nav.d.ts +21 -21
  233. package/lib/renderers/Nav.js +37 -19
  234. package/lib/renderers/Nav.js.map +2 -2
  235. package/lib/renderers/Page.d.ts +18 -0
  236. package/lib/renderers/Page.js +53 -9
  237. package/lib/renderers/Page.js.map +2 -2
  238. package/lib/renderers/Portlet.d.ts +125 -0
  239. package/lib/renderers/Portlet.js +156 -0
  240. package/lib/renderers/Portlet.js.map +13 -0
  241. package/lib/renderers/Progress.d.ts +23 -3
  242. package/lib/renderers/Progress.js +15 -19
  243. package/lib/renderers/Progress.js.map +2 -2
  244. package/lib/renderers/Property.js +1 -1
  245. package/lib/renderers/Property.js.map +2 -2
  246. package/lib/renderers/Table/ColumnToggler.js +1 -1
  247. package/lib/renderers/Table/ColumnToggler.js.map +2 -2
  248. package/lib/renderers/Table/TableContent.d.ts +4 -1
  249. package/lib/renderers/Table/TableContent.js +21 -1
  250. package/lib/renderers/Table/TableContent.js.map +2 -2
  251. package/lib/renderers/Table/index.d.ts +5 -1
  252. package/lib/renderers/Table/index.js +65 -30
  253. package/lib/renderers/Table/index.js.map +2 -2
  254. package/lib/renderers/Tabs.js +9 -1
  255. package/lib/renderers/Tabs.js.map +2 -2
  256. package/lib/renderers/WebComponent.js +1 -1
  257. package/lib/renderers/WebComponent.js.map +2 -2
  258. package/lib/store/combo.d.ts +2 -2
  259. package/lib/store/form.d.ts +1 -1
  260. package/lib/store/form.js +3 -5
  261. package/lib/store/form.js.map +2 -2
  262. package/lib/store/formItem.js +44 -4
  263. package/lib/store/formItem.js.map +2 -2
  264. package/lib/store/table.d.ts +3 -2
  265. package/lib/store/table.js +35 -12
  266. package/lib/store/table.js.map +2 -2
  267. package/lib/themes/ang-ie11.css +934 -222
  268. package/lib/themes/ang.css +934 -222
  269. package/lib/themes/ang.css.map +1 -1
  270. package/lib/themes/antd-ie11.css +934 -222
  271. package/lib/themes/antd.css +934 -222
  272. package/lib/themes/antd.css.map +1 -1
  273. package/lib/themes/cxd-ie11.css +970 -260
  274. package/lib/themes/cxd.css +970 -260
  275. package/lib/themes/cxd.css.map +1 -1
  276. package/lib/themes/dark-ie11.css +934 -222
  277. package/lib/themes/dark.css +934 -222
  278. package/lib/themes/dark.css.map +1 -1
  279. package/lib/themes/default.css +970 -260
  280. package/lib/themes/default.css.map +1 -1
  281. package/lib/types.d.ts +38 -1
  282. package/lib/types.js +0 -5
  283. package/lib/types.js.map +2 -2
  284. package/lib/utils/api.d.ts +3 -2
  285. package/lib/utils/api.js +90 -17
  286. package/lib/utils/api.js.map +2 -2
  287. package/lib/utils/dom.d.ts +4 -0
  288. package/lib/utils/dom.js +11 -1
  289. package/lib/utils/dom.js.map +2 -2
  290. package/lib/utils/helper.d.ts +12 -23
  291. package/lib/utils/helper.js +62 -166
  292. package/lib/utils/helper.js.map +2 -2
  293. package/lib/utils/tpl-builtin.d.ts +2 -20
  294. package/lib/utils/tpl-builtin.js +25 -743
  295. package/lib/utils/tpl-builtin.js.map +2 -2
  296. package/lib/utils/tpl.js +24 -0
  297. package/lib/utils/tpl.js.map +2 -2
  298. package/package.json +5 -2
  299. package/schema.json +3966 -1263
  300. package/scss/_mixins.scss +1 -3
  301. package/scss/_properties.scss +42 -13
  302. package/scss/base/_common.scss +3 -0
  303. package/scss/base/_normalize.scss +2 -0
  304. package/scss/components/_alert.scss +28 -5
  305. package/scss/components/_anchor-nav.scss +89 -29
  306. package/scss/components/_button.scss +12 -0
  307. package/scss/components/_card.scss +9 -15
  308. package/scss/components/_collapse-group.scss +15 -0
  309. package/scss/components/_collapse.scss +48 -23
  310. package/scss/components/_grid-nav.scss +128 -0
  311. package/scss/components/_images.scss +1 -0
  312. package/scss/components/_input-box.scss +1 -0
  313. package/scss/components/_nav.scss +2 -7
  314. package/scss/components/_page.scss +35 -2
  315. package/scss/components/_picker-columns.scss +124 -0
  316. package/scss/components/_popover.scss +13 -0
  317. package/scss/components/_portlet.scss +51 -0
  318. package/scss/components/_progress.scss +141 -33
  319. package/scss/components/_result-box.scss +1 -0
  320. package/scss/components/_spinner.scss +5 -4
  321. package/scss/components/_status.scss +1 -1
  322. package/scss/components/_table.scss +32 -0
  323. package/scss/components/_toast.scss +41 -11
  324. package/scss/components/form/_checks.scss +0 -351
  325. package/scss/components/form/_color.scss +32 -3
  326. package/scss/components/form/_combo.scss +4 -0
  327. package/scss/components/form/_fieldset.scss +6 -1
  328. package/scss/components/form/_file.scss +11 -0
  329. package/scss/components/form/_form.scss +48 -0
  330. package/scss/components/form/_selection.scss +354 -0
  331. package/scss/components/form/_transfer.scss +76 -18
  332. package/scss/components/form/_tree.scss +42 -0
  333. package/scss/themes/_common.scss +6 -0
  334. package/scss/themes/_cxd-variables.scss +13 -6
  335. package/scss/themes/cxd.scss +19 -20
  336. package/sdk/ang-ie11.css +1065 -246
  337. package/sdk/ang.css +1069 -230
  338. package/sdk/antd-ie11.css +1068 -249
  339. package/sdk/antd.css +1069 -230
  340. package/sdk/charts.js +17 -17
  341. package/sdk/color-picker.js +65 -69
  342. package/sdk/cropperjs.js +3 -3
  343. package/sdk/cxd-ie11.css +1081 -268
  344. package/sdk/cxd.css +1116 -279
  345. package/sdk/dark-ie11.css +1069 -250
  346. package/sdk/dark.css +1069 -230
  347. package/sdk/exceljs.js +1 -1
  348. package/sdk/helper.css.map +1 -1
  349. package/sdk/iconfont.svg +2513 -0
  350. package/sdk/iconfont.ttf +0 -0
  351. package/sdk/iconfont.woff +0 -0
  352. package/sdk/locale/de-DE.js +2 -0
  353. package/sdk/markdown.js +69 -69
  354. package/sdk/papaparse.js +1 -1
  355. package/sdk/renderers/Form/CityDB.js +1 -1
  356. package/sdk/rest.js +20 -28
  357. package/sdk/rich-text.js +62 -62
  358. package/sdk/sdk-ie11.css +1081 -268
  359. package/sdk/sdk.css +1116 -279
  360. package/sdk/sdk.js +1371 -1189
  361. package/sdk/thirds/hls.js/hls.js +18 -18
  362. package/sdk/thirds/mpegts.js/mpegts.js +2 -2
  363. package/sdk/tinymce.js +57 -57
  364. package/src/Schema.ts +19 -1
  365. package/src/components/Alert2.tsx +32 -4
  366. package/src/components/AnchorNav.tsx +15 -4
  367. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +43 -37
  368. package/src/components/Badge.tsx +3 -3
  369. package/src/components/Button.tsx +1 -0
  370. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  371. package/src/components/Collapse.tsx +139 -20
  372. package/src/components/CollapseGroup.tsx +130 -0
  373. package/src/components/ColorPicker.tsx +32 -10
  374. package/src/components/Drawer.tsx +8 -6
  375. package/src/components/GridNav.tsx +233 -0
  376. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  377. package/src/components/InputBox.tsx +10 -9
  378. package/src/components/Link.tsx +28 -37
  379. package/src/components/ModalManager.ts +1 -1
  380. package/src/components/Overlay.tsx +6 -0
  381. package/src/components/PickerColumn.tsx +429 -0
  382. package/src/components/PickerContainer.tsx +128 -0
  383. package/src/components/PopOver.tsx +15 -1
  384. package/src/components/Progress.tsx +140 -0
  385. package/src/components/Radios.tsx +3 -8
  386. package/src/components/ResultBox.tsx +9 -9
  387. package/src/components/Select.tsx +57 -5
  388. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  389. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  390. package/src/components/TabsTransfer.tsx +13 -7
  391. package/src/components/TabsTransferPicker.tsx +85 -0
  392. package/src/components/Toast.tsx +48 -21
  393. package/src/components/Transfer.tsx +71 -50
  394. package/src/components/TransferDropDown.tsx +120 -0
  395. package/src/components/TransferPicker.tsx +91 -0
  396. package/src/components/Tree.tsx +194 -8
  397. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  398. package/src/components/condition-builder/Field.tsx +7 -5
  399. package/src/components/condition-builder/Func.tsx +3 -3
  400. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  401. package/src/components/condition-builder/Item.tsx +5 -12
  402. package/src/components/icons.tsx +10 -0
  403. package/src/components/index.tsx +13 -13
  404. package/src/envOverwrite.ts +20 -8
  405. package/src/factory.tsx +70 -9
  406. package/src/hooks/index.ts +5 -0
  407. package/src/hooks/use-set-state.ts +19 -0
  408. package/src/hooks/use-touch.ts +100 -0
  409. package/src/hooks/use-update-effect.ts +16 -0
  410. package/src/icons/alert-danger.svg +1 -0
  411. package/src/icons/alert-info.svg +1 -0
  412. package/src/icons/alert-success.svg +1 -0
  413. package/src/icons/alert-warning.svg +1 -0
  414. package/src/icons/download.svg +4 -0
  415. package/src/icons/drag-bar.svg +12 -6
  416. package/src/index.tsx +5 -0
  417. package/src/locale/de-DE.ts +2 -0
  418. package/src/locale/en-US.ts +3 -0
  419. package/src/locale/zh-CN.ts +5 -2
  420. package/src/renderers/Action.tsx +58 -3
  421. package/src/renderers/Alert.tsx +31 -1
  422. package/src/renderers/AnchorNav.tsx +4 -0
  423. package/src/renderers/Avatar.tsx +8 -4
  424. package/src/renderers/Breadcrumb.tsx +5 -1
  425. package/src/renderers/CRUD.tsx +29 -3
  426. package/src/renderers/Card.tsx +76 -36
  427. package/src/renderers/Collapse.tsx +70 -115
  428. package/src/renderers/CollapseGroup.tsx +80 -0
  429. package/src/renderers/Form/ConditionBuilder.tsx +2 -2
  430. package/src/renderers/Form/InputCity.tsx +4 -8
  431. package/src/renderers/Form/InputColor.tsx +4 -2
  432. package/src/renderers/Form/InputFile.tsx +65 -24
  433. package/src/renderers/Form/InputImage.tsx +11 -3
  434. package/src/renderers/Form/Item.tsx +3 -2
  435. package/src/renderers/Form/Options.tsx +29 -3
  436. package/src/renderers/Form/Select.tsx +162 -21
  437. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  438. package/src/renderers/Form/Transfer.tsx +19 -4
  439. package/src/renderers/Form/TransferPicker.tsx +145 -0
  440. package/src/renderers/Form/TreeSelect.tsx +25 -0
  441. package/src/renderers/Form/index.tsx +15 -2
  442. package/src/renderers/Form/wrapControl.tsx +26 -1
  443. package/src/renderers/GridNav.tsx +204 -0
  444. package/src/renderers/IFrame.tsx +2 -4
  445. package/src/renderers/Image.tsx +19 -15
  446. package/src/renderers/Json.tsx +9 -9
  447. package/src/renderers/Link.tsx +29 -16
  448. package/src/renderers/List.tsx +1 -1
  449. package/src/renderers/Nav.tsx +105 -56
  450. package/src/renderers/Page.tsx +62 -1
  451. package/src/renderers/Portlet.tsx +423 -0
  452. package/src/renderers/Progress.tsx +56 -38
  453. package/src/renderers/Property.tsx +6 -4
  454. package/src/renderers/Table/ColumnToggler.tsx +1 -1
  455. package/src/renderers/Table/TableContent.tsx +40 -2
  456. package/src/renderers/Table/index.tsx +88 -43
  457. package/src/renderers/Tabs.tsx +9 -1
  458. package/src/renderers/WebComponent.tsx +2 -2
  459. package/src/store/form.ts +3 -9
  460. package/src/store/formItem.ts +94 -2
  461. package/src/store/table.ts +55 -14
  462. package/src/types.ts +58 -1
  463. package/src/utils/api.ts +120 -26
  464. package/src/utils/dom.tsx +12 -0
  465. package/src/utils/helper.ts +55 -185
  466. package/src/utils/tpl-builtin.ts +40 -866
  467. package/src/utils/tpl.ts +33 -0
  468. package/tsconfig-for-declaration.json +1 -1
  469. package/dump.rdb +0 -0
  470. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  471. package/lib/components/AssociatedCheckboxes.js +0 -90
  472. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  473. package/lib/components/ChainedCheckboxes.js.map +0 -13
  474. package/lib/components/Checkboxes.js +0 -101
  475. package/lib/components/Checkboxes.js.map +0 -13
  476. package/lib/components/ListCheckboxes.d.ts +0 -739
  477. package/lib/components/ListCheckboxes.js +0 -48
  478. package/lib/components/ListCheckboxes.js.map +0 -13
  479. package/lib/components/ListRadios.d.ts +0 -763
  480. package/lib/components/ListRadios.js +0 -86
  481. package/lib/components/ListRadios.js.map +0 -13
  482. package/lib/components/TableCheckboxes.js.map +0 -13
  483. package/lib/components/TreeCheckboxes.js.map +0 -13
  484. package/lib/components/TreeRadios.d.ts +0 -838
  485. package/lib/components/TreeRadios.js +0 -116
  486. package/lib/components/TreeRadios.js.map +0 -13
  487. package/src/components/ListRadios.tsx +0 -159
  488. package/src/components/TreeRadios.tsx +0 -202
@@ -2,14 +2,14 @@ import React from 'react';
2
2
  import {autobind} from '../utils/helper';
3
3
  import Tabs, {Tab} from './Tabs';
4
4
  import SearchBox from './SearchBox';
5
- import TableCheckboxes from './TableCheckboxes';
6
- import TreeCheckboxes from './TreeCheckboxes';
7
- import ChainedCheckboxes from './ChainedCheckboxes';
8
- import ListCheckboxes from './ListCheckboxes';
5
+ import TableCheckboxes from './TableSelection';
6
+ import TreeCheckboxes from './TreeSelection';
7
+ import ChainedCheckboxes from './ChainedSelection';
8
+ import ListCheckboxes from './GroupedSelection';
9
9
  import {Options, Option} from './Select';
10
10
  import Transfer, {TransferProps} from './Transfer';
11
11
  import {themeable} from '../theme';
12
- import AssociatedCheckboxes from './AssociatedCheckboxes';
12
+ import AssociatedCheckboxes from './AssociatedSelection';
13
13
  import {localeable} from '../locale';
14
14
 
15
15
  export interface TabsTransferProps
@@ -121,7 +121,7 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
121
121
  return (
122
122
  <Tabs
123
123
  mode="card"
124
- className={cx('Transfer-tabs')}
124
+ className={cx('TabsTransfer-tabs')}
125
125
  activeKey={searchResult !== null ? 0 : undefined}
126
126
  toolbar={
127
127
  searchable ? (
@@ -134,7 +134,12 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
134
134
  >
135
135
  {searchResult !== null
136
136
  ? [
137
- <Tab title={__('searchResult')} key={0} eventKey={0}>
137
+ <Tab
138
+ className="TabsTransfer-tab"
139
+ title={__('searchResult')}
140
+ key={0}
141
+ eventKey={0}
142
+ >
138
143
  {this.renderSearchResult(searchResult)}
139
144
  </Tab>
140
145
  ]
@@ -143,6 +148,7 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
143
148
  eventKey={index}
144
149
  key={index}
145
150
  title={option.label || option.title}
151
+ className="TabsTransfer-tab"
146
152
  >
147
153
  {option.selectMode === 'table' ? (
148
154
  <TableCheckboxes
@@ -0,0 +1,85 @@
1
+ import {localeable} from '../locale';
2
+ import {themeable} from '../theme';
3
+ import {uncontrollable} from 'uncontrollable';
4
+ import React from 'react';
5
+ import ResultBox from './ResultBox';
6
+ import {Icon} from './icons';
7
+ import PickerContainer from './PickerContainer';
8
+ import {autobind} from '../utils/helper';
9
+ import TabsTransfer, {TabsTransferProps} from './TabsTransfer';
10
+
11
+ export interface TabsTransferPickerProps
12
+ extends Omit<TabsTransferProps, 'itemRender'> {
13
+ // 新的属性?
14
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
15
+ }
16
+
17
+ export class TransferPicker extends React.Component<TabsTransferPickerProps> {
18
+ @autobind
19
+ handleClose() {
20
+ this.setState({
21
+ inputValue: '',
22
+ searchResult: null
23
+ });
24
+ }
25
+
26
+ @autobind
27
+ handleConfirm(value: any) {
28
+ this.props.onChange?.(value);
29
+ this.handleClose();
30
+ }
31
+
32
+ render() {
33
+ const {
34
+ classnames: cx,
35
+ value,
36
+ translate: __,
37
+ disabled,
38
+ className,
39
+ onChange,
40
+ size,
41
+ ...rest
42
+ } = this.props;
43
+
44
+ return (
45
+ <PickerContainer
46
+ title={__('Select.placeholder')}
47
+ popOverRender={({onClose, value, onChange}) => {
48
+ return <TabsTransfer {...rest} value={value} onChange={onChange} />;
49
+ }}
50
+ value={value}
51
+ onConfirm={this.handleConfirm}
52
+ onCancel={this.handleClose}
53
+ size={size}
54
+ >
55
+ {({onClick, isOpened}) => (
56
+ <ResultBox
57
+ className={cx(
58
+ 'TransferPicker',
59
+ className,
60
+ isOpened ? 'is-active' : ''
61
+ )}
62
+ allowInput={false}
63
+ result={value}
64
+ onResultChange={onChange}
65
+ onResultClick={onClick}
66
+ placeholder={__('Select.placeholder')}
67
+ disabled={disabled}
68
+ >
69
+ <span className={cx('TransferPicker-icon')}>
70
+ <Icon icon="pencil" className="icon" />
71
+ </span>
72
+ </ResultBox>
73
+ )}
74
+ </PickerContainer>
75
+ );
76
+ }
77
+ }
78
+
79
+ export default themeable(
80
+ localeable(
81
+ uncontrollable(TransferPicker, {
82
+ value: 'onChange'
83
+ })
84
+ )
85
+ );
@@ -51,11 +51,13 @@ interface ToastComponentProps extends ThemeProps, LocaleProps {
51
51
  closeButton: boolean;
52
52
  showIcon?: boolean;
53
53
  timeout: number;
54
+ errorTimeout: number;
54
55
  className?: string;
55
56
  }
56
57
 
57
58
  interface Item extends Config {
58
- body: string;
59
+ title?: string | React.ReactNode;
60
+ body: string | React.ReactNode;
59
61
  level: 'info' | 'success' | 'error' | 'warning';
60
62
  id: string;
61
63
  onDissmiss?: () => void;
@@ -78,11 +80,12 @@ export class ToastComponent extends React.Component<
78
80
  > {
79
81
  static defaultProps: Pick<
80
82
  ToastComponentProps,
81
- 'position' | 'closeButton' | 'timeout'
83
+ 'position' | 'closeButton' | 'timeout' | 'errorTimeout'
82
84
  > = {
83
85
  position: 'top-center',
84
86
  closeButton: false,
85
- timeout: 5000
87
+ timeout: 4000,
88
+ errorTimeout: 6000 // 错误的时候 time 调长
86
89
  };
87
90
  static themeKey = 'toast';
88
91
 
@@ -155,18 +158,17 @@ export class ToastComponent extends React.Component<
155
158
  classnames: cx,
156
159
  className,
157
160
  timeout,
161
+ errorTimeout,
158
162
  position,
159
163
  showIcon,
160
164
  translate,
161
165
  closeButton
162
166
  } = this.props;
163
167
  const items = this.state.items;
164
-
165
168
  const groupedItems = groupBy(items, item => item.position || position);
166
169
 
167
170
  return Object.keys(groupedItems).map(position => {
168
171
  const toasts = groupedItems[position];
169
-
170
172
  return (
171
173
  <div
172
174
  key={position}
@@ -177,19 +179,25 @@ export class ToastComponent extends React.Component<
177
179
  className
178
180
  )}
179
181
  >
180
- {toasts.map(item => (
181
- <ToastMessage
182
- classnames={cx}
183
- key={item.id}
184
- body={item.body}
185
- level={item.level || 'info'}
186
- timeout={item.timeout ?? timeout}
187
- closeButton={item.closeButton ?? closeButton}
188
- onDismiss={this.handleDismissed.bind(this, items.indexOf(item))}
189
- translate={translate}
190
- showIcon={showIcon}
191
- />
192
- ))}
182
+ {toasts.map(item => {
183
+ const level = item.level || 'info';
184
+ const toastTimeout =
185
+ item.timeout ?? (level === 'error' ? errorTimeout : timeout);
186
+ return (
187
+ <ToastMessage
188
+ classnames={cx}
189
+ key={item.id}
190
+ title={item.title}
191
+ body={item.body}
192
+ level={level}
193
+ timeout={toastTimeout}
194
+ closeButton={item.closeButton ?? closeButton}
195
+ onDismiss={this.handleDismissed.bind(this, items.indexOf(item))}
196
+ translate={translate}
197
+ showIcon={showIcon}
198
+ />
199
+ );
200
+ })}
193
201
  </div>
194
202
  );
195
203
  });
@@ -199,7 +207,8 @@ export class ToastComponent extends React.Component<
199
207
  export default themeable(localeable(ToastComponent));
200
208
 
201
209
  interface ToastMessageProps {
202
- body: string;
210
+ title?: string | React.ReactNode;
211
+ body: string | React.ReactNode;
203
212
  level: 'info' | 'success' | 'error' | 'warning';
204
213
  timeout: number;
205
214
  closeButton?: boolean;
@@ -284,6 +293,7 @@ export class ToastMessage extends React.Component<
284
293
  onDismiss,
285
294
  classnames: cx,
286
295
  closeButton,
296
+ title,
287
297
  body,
288
298
  allowHtml,
289
299
  level,
@@ -321,8 +331,25 @@ export class ToastMessage extends React.Component<
321
331
  ) : null}
322
332
  </div>
323
333
  )}
324
- <div className={cx('Toast-body')}>
325
- {allowHtml ? <Html html={body} /> : body}
334
+
335
+ <div className={cx('Toast-content')}>
336
+ {typeof title === 'string' ? (
337
+ <span className={cx(`Toast-title`)}>{title}</span>
338
+ ) : React.isValidElement(title) ? (
339
+ React.cloneElement(title, {
340
+ className: cx(`Toast-title`, title?.props?.className ?? '')
341
+ })
342
+ ) : null}
343
+
344
+ {typeof body === 'string' ? (
345
+ <div className={cx('Toast-body')}>
346
+ {allowHtml ? <Html html={body} /> : body}
347
+ </div>
348
+ ) : React.isValidElement(body) ? (
349
+ React.cloneElement(body, {
350
+ className: cx(`Toast-body`, body?.props?.className ?? '')
351
+ })
352
+ ) : null}
326
353
  </div>
327
354
 
328
355
  {closeButton ? (
@@ -1,30 +1,31 @@
1
1
  import React from 'react';
2
2
  import {ThemeProps, themeable} from '../theme';
3
- import {BaseCheckboxesProps, BaseCheckboxes} from './Checkboxes';
3
+ import {BaseSelectionProps, BaseSelection} from './Selection';
4
4
  import {Options, Option} from './Select';
5
5
  import {uncontrollable} from 'uncontrollable';
6
6
  import ResultList from './ResultList';
7
- import TableCheckboxes from './TableCheckboxes';
8
- import ListCheckboxes from './ListCheckboxes';
9
- import TreeCheckboxes from './TreeCheckboxes';
7
+ import TableSelection from './TableSelection';
8
+ import TreeSelection from './TreeSelection';
10
9
  import {autobind, flattenTree} from '../utils/helper';
11
10
  import InputBox from './InputBox';
12
11
  import {Icon} from './icons';
13
12
  import debounce from 'lodash/debounce';
14
- import ChainedCheckboxes from './ChainedCheckboxes';
15
- import AssociatedCheckboxes from './AssociatedCheckboxes';
13
+ import AssociatedSelection from './AssociatedSelection';
16
14
  import {LocaleProps, localeable} from '../locale';
15
+ import GroupedSelection from './GroupedSelection';
16
+ import ChainedSelection from './ChainedSelection';
17
17
 
18
18
  export interface TransferProps
19
19
  extends ThemeProps,
20
20
  LocaleProps,
21
- BaseCheckboxesProps {
21
+ BaseSelectionProps {
22
22
  inline?: boolean;
23
23
  statistics?: boolean;
24
24
  showArrow?: boolean;
25
+ multiple?: boolean;
25
26
 
26
27
  selectTitle?: string;
27
- selectMode?: 'table' | 'list' | 'tree' | 'chained' | 'associated';
28
+ selectMode?: 'table' | 'group' | 'list' | 'tree' | 'chained' | 'associated';
28
29
  columns?: Array<{
29
30
  name: string;
30
31
  label: string;
@@ -41,12 +42,12 @@ export interface TransferProps
41
42
  rowIndex: number
42
43
  ) => JSX.Element;
43
44
  leftOptions?: Array<Option>;
44
- leftMode?: 'tree' | 'list';
45
+ leftMode?: 'tree' | 'list' | 'group';
45
46
  leftDefaultValue?: any;
46
- rightMode?: 'table' | 'list' | 'tree' | 'chained';
47
+ rightMode?: 'table' | 'list' | 'group' | 'tree' | 'chained';
47
48
 
48
49
  // search 相关
49
- searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
50
+ searchResultMode?: 'table' | 'list' | 'group' | 'tree' | 'chained';
50
51
  searchResultColumns?: Array<{
51
52
  name: string;
52
53
  label: string;
@@ -79,8 +80,11 @@ export interface TransferState {
79
80
  searchResult: Options | null;
80
81
  }
81
82
 
82
- export class Transfer extends React.Component<TransferProps, TransferState> {
83
- static defaultProps = {
83
+ export class Transfer<
84
+ T extends TransferProps = TransferProps
85
+ > extends React.Component<T, TransferState> {
86
+ static defaultProps: Pick<TransferProps, 'itemRender' | 'multiple'> = {
87
+ multiple: true,
84
88
  itemRender: (option: Option) => <span>{option.label}</span>
85
89
  };
86
90
 
@@ -102,7 +106,7 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
102
106
  @autobind
103
107
  toggleAll() {
104
108
  const {options, option2value, onChange, value} = this.props;
105
- let valueArray = BaseCheckboxes.value2array(value, options, option2value);
109
+ let valueArray = BaseSelection.value2array(value, options, option2value);
106
110
  const availableOptions = flattenTree(options).filter(
107
111
  (option, index, list) =>
108
112
  !option.disabled &&
@@ -192,7 +196,11 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
192
196
  }
193
197
  );
194
198
 
195
- renderSelect() {
199
+ renderSelect(
200
+ props: TransferProps & {
201
+ onToggleAll?: () => void;
202
+ }
203
+ ) {
196
204
  const {
197
205
  selectRender,
198
206
  selectMode,
@@ -203,11 +211,11 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
203
211
  options,
204
212
  statistics,
205
213
  translate: __
206
- } = this.props;
214
+ } = props;
207
215
 
208
216
  if (selectRender) {
209
217
  return selectRender({
210
- ...this.props,
218
+ ...props,
211
219
  onSearch: this.handleSearch,
212
220
  onSearchCancel: this.handleSeachCancel,
213
221
  searchResult: this.state.searchResult
@@ -223,7 +231,7 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
223
231
  )}
224
232
  >
225
233
  <span>
226
- {__(selectTitle || 'Select.placeholder')}
234
+ {__(selectTitle || 'Transfer.available')}
227
235
  {statistics !== false ? (
228
236
  <span>
229
237
  ({this.valueArray.length}/{this.availableOptions.length})
@@ -232,13 +240,13 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
232
240
  </span>
233
241
  {selectMode !== 'table' ? (
234
242
  <a
235
- onClick={this.toggleAll}
243
+ onClick={props.onToggleAll || this.toggleAll}
236
244
  className={cx(
237
245
  'Transfer-checkAll',
238
246
  disabled || !options.length ? 'is-disabled' : ''
239
247
  )}
240
248
  >
241
- {__('Select.placeholder')}
249
+ {__('Select.checkAll')}
242
250
  </a>
243
251
  ) : null}
244
252
  </div>
@@ -264,13 +272,13 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
264
272
  ) : null}
265
273
 
266
274
  {this.state.searchResult !== null
267
- ? this.renderSearchResult()
268
- : this.renderOptions()}
275
+ ? this.renderSearchResult(props)
276
+ : this.renderOptions(props)}
269
277
  </>
270
278
  );
271
279
  }
272
280
 
273
- renderSearchResult() {
281
+ renderSearchResult(props: TransferProps) {
274
282
  const {
275
283
  searchResultMode,
276
284
  selectMode,
@@ -283,16 +291,17 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
283
291
  onChange,
284
292
  option2value,
285
293
  optionItemRender,
286
- cellRender
287
- } = this.props;
294
+ cellRender,
295
+ multiple
296
+ } = props;
288
297
  const options = this.state.searchResult || [];
289
298
  const mode = searchResultMode || selectMode;
290
299
  const resultColumns = searchResultColumns || columns;
291
300
 
292
301
  return mode === 'table' ? (
293
- <TableCheckboxes
302
+ <TableSelection
294
303
  placeholder={noResultsText}
295
- className={cx('Transfer-checkboxes')}
304
+ className={cx('Transfer-selection')}
296
305
  columns={resultColumns!}
297
306
  options={options}
298
307
  value={value}
@@ -301,44 +310,48 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
301
310
  option2value={option2value}
302
311
  cellRender={cellRender}
303
312
  itemRender={optionItemRender}
313
+ multiple={multiple}
304
314
  />
305
315
  ) : mode === 'tree' ? (
306
- <TreeCheckboxes
316
+ <TreeSelection
307
317
  placeholder={noResultsText}
308
- className={cx('Transfer-checkboxes')}
318
+ className={cx('Transfer-selection')}
309
319
  options={options}
310
320
  value={value}
311
321
  disabled={disabled}
312
322
  onChange={onChange}
313
323
  option2value={option2value}
314
324
  itemRender={optionItemRender}
325
+ multiple={multiple}
315
326
  />
316
327
  ) : mode === 'chained' ? (
317
- <ChainedCheckboxes
328
+ <ChainedSelection
318
329
  placeholder={noResultsText}
319
- className={cx('Transfer-checkboxes')}
330
+ className={cx('Transfer-selection')}
320
331
  options={options}
321
332
  value={value}
322
333
  disabled={disabled}
323
334
  onChange={onChange}
324
335
  option2value={option2value}
325
336
  itemRender={optionItemRender}
337
+ multiple={multiple}
326
338
  />
327
339
  ) : (
328
- <ListCheckboxes
340
+ <GroupedSelection
329
341
  placeholder={noResultsText}
330
- className={cx('Transfer-checkboxes')}
342
+ className={cx('Transfer-selection')}
331
343
  options={options}
332
344
  value={value}
333
345
  disabled={disabled}
334
346
  onChange={onChange}
335
347
  option2value={option2value}
336
348
  itemRender={optionItemRender}
349
+ multiple={multiple}
337
350
  />
338
351
  );
339
352
  }
340
353
 
341
- renderOptions() {
354
+ renderOptions(props: TransferProps) {
342
355
  const {
343
356
  selectMode,
344
357
  columns,
@@ -354,12 +367,13 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
354
367
  rightMode,
355
368
  cellRender,
356
369
  leftDefaultValue,
357
- optionItemRender
358
- } = this.props;
370
+ optionItemRender,
371
+ multiple
372
+ } = props;
359
373
 
360
374
  return selectMode === 'table' ? (
361
- <TableCheckboxes
362
- className={cx('Transfer-checkboxes')}
375
+ <TableSelection
376
+ className={cx('Transfer-selection')}
363
377
  columns={columns!}
364
378
  options={options || []}
365
379
  value={value}
@@ -369,10 +383,11 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
369
383
  onDeferLoad={onDeferLoad}
370
384
  cellRender={cellRender}
371
385
  itemRender={optionItemRender}
386
+ multiple={multiple}
372
387
  />
373
388
  ) : selectMode === 'tree' ? (
374
- <TreeCheckboxes
375
- className={cx('Transfer-checkboxes')}
389
+ <TreeSelection
390
+ className={cx('Transfer-selection')}
376
391
  options={options || []}
377
392
  value={value}
378
393
  disabled={disabled}
@@ -380,10 +395,11 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
380
395
  option2value={option2value}
381
396
  onDeferLoad={onDeferLoad}
382
397
  itemRender={optionItemRender}
398
+ multiple={multiple}
383
399
  />
384
400
  ) : selectMode === 'chained' ? (
385
- <ChainedCheckboxes
386
- className={cx('Transfer-checkboxes')}
401
+ <ChainedSelection
402
+ className={cx('Transfer-selection')}
387
403
  options={options || []}
388
404
  value={value}
389
405
  disabled={disabled}
@@ -391,10 +407,11 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
391
407
  option2value={option2value}
392
408
  onDeferLoad={onDeferLoad}
393
409
  itemRender={optionItemRender}
410
+ multiple={multiple}
394
411
  />
395
412
  ) : selectMode === 'associated' ? (
396
- <AssociatedCheckboxes
397
- className={cx('Transfer-checkboxes')}
413
+ <AssociatedSelection
414
+ className={cx('Transfer-selection')}
398
415
  options={options || []}
399
416
  value={value}
400
417
  disabled={disabled}
@@ -407,10 +424,11 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
407
424
  rightMode={rightMode}
408
425
  leftDefaultValue={leftDefaultValue}
409
426
  itemRender={optionItemRender}
427
+ multiple={multiple}
410
428
  />
411
429
  ) : (
412
- <ListCheckboxes
413
- className={cx('Transfer-checkboxes')}
430
+ <GroupedSelection
431
+ className={cx('Transfer-selection')}
414
432
  options={options || []}
415
433
  value={value}
416
434
  disabled={disabled}
@@ -418,6 +436,7 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
418
436
  option2value={option2value}
419
437
  onDeferLoad={onDeferLoad}
420
438
  itemRender={optionItemRender}
439
+ multiple={multiple}
421
440
  />
422
441
  );
423
442
  }
@@ -440,7 +459,7 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
440
459
  translate: __
441
460
  } = this.props;
442
461
 
443
- this.valueArray = BaseCheckboxes.value2array(value, options, option2value);
462
+ this.valueArray = BaseSelection.value2array(value, options, option2value);
444
463
  this.availableOptions = flattenTree(options).filter(
445
464
  (option, index, list) =>
446
465
  !option.disabled &&
@@ -452,7 +471,9 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
452
471
  <div
453
472
  className={cx('Transfer', className, inline ? 'Transfer--inline' : '')}
454
473
  >
455
- <div className={cx('Transfer-select')}>{this.renderSelect()}</div>
474
+ <div className={cx('Transfer-select')}>
475
+ {this.renderSelect(this.props)}
476
+ </div>
456
477
  <div className={cx('Transfer-mid')}>
457
478
  {showArrow /*todo 需要改成确认模式,即:点了按钮才到右边 */ ? (
458
479
  <div className={cx('Transfer-arrow')}>
@@ -481,7 +502,7 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
481
502
  </a>
482
503
  </div>
483
504
  <ResultList
484
- className={cx('Transfer-selections')}
505
+ className={cx('Transfer-value')}
485
506
  sortable={sortable}
486
507
  disabled={disabled}
487
508
  value={value}
@@ -497,7 +518,7 @@ export class Transfer extends React.Component<TransferProps, TransferState> {
497
518
 
498
519
  export default themeable(
499
520
  localeable(
500
- uncontrollable(Transfer, {
521
+ uncontrollable(class extends Transfer {}, {
501
522
  value: 'onChange'
502
523
  })
503
524
  )