amis 1.4.1 → 1.4.2-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 (516) hide show
  1. package/README.md +1 -1
  2. package/lib/Schema.d.ts +26 -2
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/Alert.js +3 -1
  5. package/lib/components/Alert.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.d.ts +2 -2
  14. package/lib/components/Badge.js +13 -7
  15. package/lib/components/Badge.js.map +2 -2
  16. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  17. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  18. package/lib/components/ChainedSelection.js.map +13 -0
  19. package/lib/components/Collapse.js +1 -1
  20. package/lib/components/Collapse.js.map +2 -2
  21. package/lib/components/ColorPicker.d.ts +84 -84
  22. package/lib/components/DatePicker.d.ts +84 -84
  23. package/lib/components/DatePicker.js +1 -1
  24. package/lib/components/DatePicker.js.map +2 -2
  25. package/lib/components/DateRangePicker.d.ts +84 -84
  26. package/lib/components/DateRangePicker.js +1 -1
  27. package/lib/components/DateRangePicker.js.map +2 -2
  28. package/lib/components/Editor.d.ts +84 -84
  29. package/lib/components/GroupedSelection.d.ts +907 -0
  30. package/lib/components/GroupedSelection.js +48 -0
  31. package/lib/components/GroupedSelection.js.map +13 -0
  32. package/lib/components/InputBox.d.ts +22 -21
  33. package/lib/components/InputBox.js +11 -3
  34. package/lib/components/InputBox.js.map +2 -2
  35. package/lib/components/Link.d.ts +84 -0
  36. package/lib/components/Link.js +43 -0
  37. package/lib/components/Link.js.map +13 -0
  38. package/lib/components/ListGroup.d.ts +21 -21
  39. package/lib/components/ModalManager.js +1 -1
  40. package/lib/components/ModalManager.js.map +2 -2
  41. package/lib/components/MonthRangePicker.d.ts +84 -84
  42. package/lib/components/MonthRangePicker.js +1 -1
  43. package/lib/components/MonthRangePicker.js.map +2 -2
  44. package/lib/components/NumberInput.d.ts +20 -20
  45. package/lib/components/PickerColumn.d.ts +514 -0
  46. package/lib/components/PickerColumn.js +279 -0
  47. package/lib/components/PickerColumn.js.map +13 -0
  48. package/lib/components/PickerContainer.d.ts +513 -0
  49. package/lib/components/PickerContainer.js +96 -0
  50. package/lib/components/PickerContainer.js.map +13 -0
  51. package/lib/components/Radios.d.ts +22 -21
  52. package/lib/components/Radios.js +1 -0
  53. package/lib/components/Radios.js.map +2 -2
  54. package/lib/components/Rating.d.ts +21 -21
  55. package/lib/components/ResultBox.d.ts +84 -84
  56. package/lib/components/ResultBox.js +10 -2
  57. package/lib/components/ResultBox.js.map +2 -2
  58. package/lib/components/RichText.js +17 -53
  59. package/lib/components/RichText.js.map +2 -2
  60. package/lib/components/SearchBox.d.ts +84 -84
  61. package/lib/components/SearchBox.js +4 -4
  62. package/lib/components/SearchBox.js.map +2 -2
  63. package/lib/components/Select.d.ts +245 -237
  64. package/lib/components/Select.js +28 -4
  65. package/lib/components/Select.js.map +2 -2
  66. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  67. package/lib/components/Selection.js +134 -0
  68. package/lib/components/Selection.js.map +13 -0
  69. package/lib/components/SparkLine.d.ts +85 -84
  70. package/lib/components/SparkLine.js +2 -2
  71. package/lib/components/SparkLine.js.map +2 -2
  72. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  73. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  74. package/lib/components/TableSelection.js.map +13 -0
  75. package/lib/components/Tabs.d.ts +20 -20
  76. package/lib/components/TabsTransfer.d.ts +84 -84
  77. package/lib/components/TabsTransfer.js +9 -9
  78. package/lib/components/TabsTransfer.js.map +2 -2
  79. package/lib/components/TabsTransferPicker.d.ts +489 -0
  80. package/lib/components/TabsTransferPicker.js +60 -0
  81. package/lib/components/TabsTransferPicker.js.map +13 -0
  82. package/lib/components/Toast.js +2 -2
  83. package/lib/components/Toast.js.map +2 -2
  84. package/lib/components/Transfer.d.ts +908 -274
  85. package/lib/components/Transfer.js +31 -24
  86. package/lib/components/Transfer.js.map +2 -2
  87. package/lib/components/TransferDropDown.d.ts +488 -0
  88. package/lib/components/TransferDropDown.js +59 -0
  89. package/lib/components/TransferDropDown.js.map +13 -0
  90. package/lib/components/TransferPicker.d.ts +493 -0
  91. package/lib/components/TransferPicker.js +60 -0
  92. package/lib/components/TransferPicker.js.map +13 -0
  93. package/lib/components/Tree.d.ts +84 -84
  94. package/lib/components/Tree.js +5 -3
  95. package/lib/components/Tree.js.map +2 -2
  96. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  97. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  98. package/lib/components/TreeSelection.js.map +13 -0
  99. package/lib/components/WithRemoteConfig.js +1 -1
  100. package/lib/components/WithRemoteConfig.js.map +2 -2
  101. package/lib/components/condition-builder/Field.js +5 -2
  102. package/lib/components/condition-builder/Field.js.map +2 -2
  103. package/lib/components/condition-builder/Func.js +2 -2
  104. package/lib/components/condition-builder/Func.js.map +2 -2
  105. package/lib/components/condition-builder/InputSwitch.js +2 -2
  106. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  107. package/lib/components/condition-builder/Item.js +3 -3
  108. package/lib/components/condition-builder/Item.js.map +2 -2
  109. package/lib/components/icons.js +14 -0
  110. package/lib/components/icons.js.map +2 -2
  111. package/lib/components/index.d.ts +8 -8
  112. package/lib/components/index.js +16 -16
  113. package/lib/components/index.js.map +2 -2
  114. package/lib/envOverwrite.js.map +2 -2
  115. package/lib/factory.d.ts +4 -0
  116. package/lib/factory.js +4 -2
  117. package/lib/factory.js.map +2 -2
  118. package/lib/helper.css.map +1 -1
  119. package/lib/hooks/index.d.ts +5 -0
  120. package/lib/hooks/index.js +14 -0
  121. package/lib/hooks/index.js.map +13 -0
  122. package/lib/hooks/use-set-state.d.ts +2 -0
  123. package/lib/hooks/use-set-state.js +15 -0
  124. package/lib/hooks/use-set-state.js.map +13 -0
  125. package/lib/hooks/use-touch.d.ts +16 -0
  126. package/lib/hooks/use-touch.js +73 -0
  127. package/lib/hooks/use-touch.js.map +13 -0
  128. package/lib/hooks/use-update-effect.d.ts +3 -0
  129. package/lib/hooks/use-update-effect.js +17 -0
  130. package/lib/hooks/use-update-effect.js.map +13 -0
  131. package/lib/icons/clock.js +10 -0
  132. package/lib/icons/download.js +7 -0
  133. package/lib/icons/status-close.js +11 -0
  134. package/lib/icons/status-fail.js +11 -0
  135. package/lib/icons/status-info.js +10 -0
  136. package/lib/icons/status-success.js +11 -0
  137. package/lib/icons/status-warning.js +10 -0
  138. package/lib/index.d.ts +3 -0
  139. package/lib/index.js +4 -1
  140. package/lib/index.js.map +2 -2
  141. package/lib/locale/de-DE.js +4 -0
  142. package/lib/locale/de-DE.js.map +2 -2
  143. package/lib/locale/en-US.js +5 -0
  144. package/lib/locale/en-US.js.map +2 -2
  145. package/lib/locale/zh-CN.js +8 -3
  146. package/lib/locale/zh-CN.js.map +2 -2
  147. package/lib/renderers/Action.d.ts +8 -0
  148. package/lib/renderers/Action.js +17 -4
  149. package/lib/renderers/Action.js.map +2 -2
  150. package/lib/renderers/AnchorNav.d.ts +1 -0
  151. package/lib/renderers/AnchorNav.js +2 -2
  152. package/lib/renderers/AnchorNav.js.map +2 -2
  153. package/lib/renderers/Avatar.js +3 -3
  154. package/lib/renderers/Avatar.js.map +2 -2
  155. package/lib/renderers/Breadcrumb.js +1 -1
  156. package/lib/renderers/Breadcrumb.js.map +2 -2
  157. package/lib/renderers/CRUD.d.ts +9 -0
  158. package/lib/renderers/CRUD.js +43 -8
  159. package/lib/renderers/CRUD.js.map +2 -2
  160. package/lib/renderers/Card.d.ts +4 -0
  161. package/lib/renderers/Card.js +29 -23
  162. package/lib/renderers/Card.js.map +2 -2
  163. package/lib/renderers/Chart.js +1 -1
  164. package/lib/renderers/Chart.js.map +2 -2
  165. package/lib/renderers/Collapse.js +3 -2
  166. package/lib/renderers/Collapse.js.map +2 -2
  167. package/lib/renderers/Dialog.js +0 -3
  168. package/lib/renderers/Dialog.js.map +2 -2
  169. package/lib/renderers/Drawer.js +0 -3
  170. package/lib/renderers/Drawer.js.map +2 -2
  171. package/lib/renderers/DropDownButton.d.ts +5 -1
  172. package/lib/renderers/DropDownButton.js +8 -6
  173. package/lib/renderers/DropDownButton.js.map +2 -2
  174. package/lib/renderers/Form/Checkbox.d.ts +5 -0
  175. package/lib/renderers/Form/Checkbox.js +4 -0
  176. package/lib/renderers/Form/Checkbox.js.map +2 -2
  177. package/lib/renderers/Form/Combo.js +2 -2
  178. package/lib/renderers/Form/Combo.js.map +2 -2
  179. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  180. package/lib/renderers/Form/Editor.d.ts +3 -2
  181. package/lib/renderers/Form/InputCity.d.ts +84 -84
  182. package/lib/renderers/Form/InputCity.js +7 -6
  183. package/lib/renderers/Form/InputCity.js.map +2 -2
  184. package/lib/renderers/Form/InputColor.d.ts +84 -84
  185. package/lib/renderers/Form/InputFile.d.ts +6 -0
  186. package/lib/renderers/Form/InputFile.js +30 -10
  187. package/lib/renderers/Form/InputFile.js.map +2 -2
  188. package/lib/renderers/Form/InputImage.js +16 -7
  189. package/lib/renderers/Form/InputImage.js.map +2 -2
  190. package/lib/renderers/Form/Item.d.ts +1 -1
  191. package/lib/renderers/Form/Item.js.map +1 -1
  192. package/lib/renderers/Form/Options.js +19 -6
  193. package/lib/renderers/Form/Options.js.map +2 -2
  194. package/lib/renderers/Form/Picker.js +2 -2
  195. package/lib/renderers/Form/Picker.js.map +2 -2
  196. package/lib/renderers/Form/Select.d.ts +42 -4
  197. package/lib/renderers/Form/Select.js +37 -3
  198. package/lib/renderers/Form/Select.js.map +2 -2
  199. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  200. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  201. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  202. package/lib/renderers/Form/Transfer.js +18 -3
  203. package/lib/renderers/Form/Transfer.js.map +2 -2
  204. package/lib/renderers/Form/TransferPicker.d.ts +52 -0
  205. package/lib/renderers/Form/TransferPicker.js +43 -0
  206. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  207. package/lib/renderers/Form/TreeSelect.js +2 -2
  208. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  209. package/lib/renderers/Form/index.d.ts +5 -0
  210. package/lib/renderers/Form/index.js +5 -3
  211. package/lib/renderers/Form/index.js.map +2 -2
  212. package/lib/renderers/Form/wrapControl.js +15 -3
  213. package/lib/renderers/Form/wrapControl.js.map +2 -2
  214. package/lib/renderers/IFrame.js +3 -5
  215. package/lib/renderers/IFrame.js.map +2 -2
  216. package/lib/renderers/Image.d.ts +1 -0
  217. package/lib/renderers/Image.js +15 -1
  218. package/lib/renderers/Image.js.map +2 -2
  219. package/lib/renderers/Json.d.ts +4 -0
  220. package/lib/renderers/Json.js +4 -13
  221. package/lib/renderers/Json.js.map +2 -2
  222. package/lib/renderers/Link.d.ts +18 -3
  223. package/lib/renderers/Link.js +27 -15
  224. package/lib/renderers/Link.js.map +2 -2
  225. package/lib/renderers/List.js +1 -1
  226. package/lib/renderers/List.js.map +2 -2
  227. package/lib/renderers/Log.d.ts +2 -2
  228. package/lib/renderers/Log.js +7 -1
  229. package/lib/renderers/Log.js.map +2 -2
  230. package/lib/renderers/Mapping.d.ts +9 -2
  231. package/lib/renderers/Mapping.js +18 -6
  232. package/lib/renderers/Mapping.js.map +2 -2
  233. package/lib/renderers/Nav.d.ts +62 -36
  234. package/lib/renderers/Nav.js +272 -96
  235. package/lib/renderers/Nav.js.map +2 -2
  236. package/lib/renderers/Portlet.d.ts +125 -0
  237. package/lib/renderers/Portlet.js +156 -0
  238. package/lib/renderers/Portlet.js.map +13 -0
  239. package/lib/renderers/Property.js +2 -1
  240. package/lib/renderers/Property.js.map +2 -2
  241. package/lib/renderers/SearchBox.d.ts +6 -1
  242. package/lib/renderers/SearchBox.js +19 -5
  243. package/lib/renderers/SearchBox.js.map +2 -2
  244. package/lib/renderers/SparkLine.d.ts +4 -0
  245. package/lib/renderers/SparkLine.js.map +2 -2
  246. package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
  247. package/lib/renderers/Table/ColumnToggler.js +216 -0
  248. package/lib/renderers/Table/ColumnToggler.js.map +13 -0
  249. package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  250. package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
  251. package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
  252. package/lib/renderers/Table/TableBody.d.ts +4 -0
  253. package/lib/renderers/Table/TableCell.js +3 -1
  254. package/lib/renderers/Table/TableCell.js.map +2 -2
  255. package/lib/renderers/Table/TableContent.d.ts +4 -1
  256. package/lib/renderers/Table/TableContent.js +21 -1
  257. package/lib/renderers/Table/TableContent.js.map +2 -2
  258. package/lib/renderers/Table/index.d.ts +19 -2
  259. package/lib/renderers/Table/index.js +172 -57
  260. package/lib/renderers/Table/index.js.map +2 -2
  261. package/lib/renderers/Tabs.js +9 -1
  262. package/lib/renderers/Tabs.js.map +2 -2
  263. package/lib/renderers/WebComponent.js +1 -1
  264. package/lib/renderers/WebComponent.js.map +2 -2
  265. package/lib/store/combo.d.ts +2 -16
  266. package/lib/store/crud.js +3 -7
  267. package/lib/store/crud.js.map +2 -2
  268. package/lib/store/form.d.ts +1 -1
  269. package/lib/store/form.js +5 -6
  270. package/lib/store/form.js.map +2 -2
  271. package/lib/store/service.js +5 -4
  272. package/lib/store/service.js.map +2 -2
  273. package/lib/store/table.d.ts +260 -3
  274. package/lib/store/table.js +69 -11
  275. package/lib/store/table.js.map +2 -2
  276. package/lib/themes/ang-ie11.css +888 -238
  277. package/lib/themes/ang.css +888 -238
  278. package/lib/themes/ang.css.map +1 -1
  279. package/lib/themes/antd-ie11.css +888 -238
  280. package/lib/themes/antd.css +888 -238
  281. package/lib/themes/antd.css.map +1 -1
  282. package/lib/themes/cxd-ie11.css +1446 -457
  283. package/lib/themes/cxd.css +1446 -457
  284. package/lib/themes/cxd.css.map +1 -1
  285. package/lib/themes/dark-ie11.css +888 -238
  286. package/lib/themes/dark.css +888 -238
  287. package/lib/themes/dark.css.map +1 -1
  288. package/lib/themes/default.css +1446 -457
  289. package/lib/themes/default.css.map +1 -1
  290. package/lib/types.d.ts +37 -0
  291. package/lib/types.js +0 -5
  292. package/lib/types.js.map +2 -2
  293. package/lib/utils/api.d.ts +3 -2
  294. package/lib/utils/api.js +31 -15
  295. package/lib/utils/api.js.map +2 -2
  296. package/lib/utils/dom.d.ts +4 -0
  297. package/lib/utils/dom.js +11 -1
  298. package/lib/utils/dom.js.map +2 -2
  299. package/lib/utils/handleAction.d.ts +7 -0
  300. package/lib/utils/handleAction.js +30 -0
  301. package/lib/utils/handleAction.js.map +13 -0
  302. package/lib/utils/helper.d.ts +3 -1
  303. package/lib/utils/helper.js +14 -5
  304. package/lib/utils/helper.js.map +2 -2
  305. package/lib/utils/icon.js +3 -0
  306. package/lib/utils/icon.js.map +2 -2
  307. package/lib/utils/tpl-builtin.d.ts +1 -1
  308. package/lib/utils/tpl-builtin.js +25 -15
  309. package/lib/utils/tpl-builtin.js.map +2 -2
  310. package/package.json +1 -1
  311. package/schema.json +3341 -998
  312. package/scss/_mixins.scss +1 -3
  313. package/scss/_properties.scss +63 -4
  314. package/scss/_utilities.scss +4 -0
  315. package/scss/base/_common.scss +3 -0
  316. package/scss/base/_normalize.scss +2 -0
  317. package/scss/components/_anchor-nav.scss +88 -29
  318. package/scss/components/_button.scss +4 -5
  319. package/scss/components/_card.scss +8 -14
  320. package/scss/components/_collapse.scss +41 -8
  321. package/scss/components/_column-toggler.scss +234 -0
  322. package/scss/components/_dropdown.scss +2 -1
  323. package/scss/components/_images.scss +2 -1
  324. package/scss/components/_input-box.scss +1 -0
  325. package/scss/components/_link.scss +6 -0
  326. package/scss/components/_mapping.scss +6 -0
  327. package/scss/components/_nav.scss +231 -223
  328. package/scss/components/_page.scss +5 -4
  329. package/scss/components/_picker-columns.scss +124 -0
  330. package/scss/components/_popover.scss +13 -0
  331. package/scss/components/_portlet.scss +51 -0
  332. package/scss/components/_progress.scss +2 -0
  333. package/scss/components/_result-box.scss +1 -0
  334. package/scss/components/_status.scss +1 -1
  335. package/scss/components/_steps.scss +1 -1
  336. package/scss/components/_table.scss +51 -1
  337. package/scss/components/form/_checks.scss +0 -351
  338. package/scss/components/form/_color.scss +1 -0
  339. package/scss/components/form/_date-range.scss +2 -0
  340. package/scss/components/form/_date.scss +2 -0
  341. package/scss/components/form/_fieldset.scss +6 -3
  342. package/scss/components/form/_file.scss +16 -4
  343. package/scss/components/form/_form.scss +48 -0
  344. package/scss/components/form/_image.scss +7 -2
  345. package/scss/components/form/_list.scss +1 -0
  346. package/scss/components/form/_location.scss +1 -1
  347. package/scss/components/form/_selection.scss +354 -0
  348. package/scss/components/form/_text.scss +13 -0
  349. package/scss/components/form/_textarea.scss +10 -0
  350. package/scss/components/form/_transfer.scss +77 -18
  351. package/scss/themes/_common.scss +7 -0
  352. package/scss/themes/_cxd-colors.scss +56 -0
  353. package/scss/themes/_cxd-variables.scss +217 -89
  354. package/scss/themes/cxd.scss +370 -0
  355. package/sdk/ang-ie11.css +1117 -392
  356. package/sdk/ang.css +1110 -342
  357. package/sdk/antd-ie11.css +1105 -380
  358. package/sdk/antd.css +1110 -342
  359. package/sdk/charts.js +13 -13
  360. package/sdk/color-picker.js +65 -69
  361. package/sdk/cropperjs.js +2 -2
  362. package/sdk/cxd-ie11.css +2086 -1062
  363. package/sdk/cxd.css +1643 -495
  364. package/sdk/dark-ie11.css +1117 -392
  365. package/sdk/dark.css +1110 -342
  366. package/sdk/exceljs.js +1 -1
  367. package/sdk/helper.css.map +1 -1
  368. package/sdk/iconfont.svg +2513 -0
  369. package/sdk/iconfont.ttf +0 -0
  370. package/sdk/iconfont.woff +0 -0
  371. package/sdk/ie11-patch.css +1 -0
  372. package/sdk/locale/de-DE.js +4 -0
  373. package/sdk/markdown.js +69 -69
  374. package/sdk/papaparse.js +1 -1
  375. package/sdk/renderers/Form/CityDB.js +1 -1
  376. package/sdk/rest.js +20 -28
  377. package/sdk/rich-text.js +62 -62
  378. package/sdk/sdk-ie11.css +2086 -1062
  379. package/sdk/sdk.css +1643 -495
  380. package/sdk/sdk.js +1219 -1165
  381. package/sdk/thirds/hls.js/hls.js +1 -1
  382. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  383. package/sdk/tinymce.js +57 -57
  384. package/src/Schema.ts +32 -0
  385. package/src/components/Alert.tsx +3 -1
  386. package/src/components/AnchorNav.tsx +15 -4
  387. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  388. package/src/components/Badge.tsx +38 -26
  389. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  390. package/src/components/Collapse.tsx +14 -9
  391. package/src/components/DatePicker.tsx +1 -1
  392. package/src/components/DateRangePicker.tsx +23 -11
  393. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  394. package/src/components/InputBox.tsx +11 -10
  395. package/src/components/Link.tsx +85 -0
  396. package/src/components/ModalManager.ts +1 -1
  397. package/src/components/MonthRangePicker.tsx +10 -2
  398. package/src/components/PickerColumn.tsx +429 -0
  399. package/src/components/PickerContainer.tsx +128 -0
  400. package/src/components/Radios.tsx +3 -8
  401. package/src/components/ResultBox.tsx +9 -9
  402. package/src/components/RichText.tsx +17 -57
  403. package/src/components/SearchBox.tsx +4 -5
  404. package/src/components/Select.tsx +60 -5
  405. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  406. package/src/components/SparkLine.tsx +4 -1
  407. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  408. package/src/components/TabsTransfer.tsx +13 -7
  409. package/src/components/TabsTransferPicker.tsx +85 -0
  410. package/src/components/Toast.tsx +5 -5
  411. package/src/components/Transfer.tsx +71 -50
  412. package/src/components/TransferDropDown.tsx +120 -0
  413. package/src/components/TransferPicker.tsx +91 -0
  414. package/src/components/Tree.tsx +6 -8
  415. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  416. package/src/components/WithRemoteConfig.tsx +7 -2
  417. package/src/components/condition-builder/Field.tsx +5 -5
  418. package/src/components/condition-builder/Func.tsx +3 -3
  419. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  420. package/src/components/condition-builder/Item.tsx +5 -12
  421. package/src/components/icons.tsx +15 -0
  422. package/src/components/index.tsx +13 -13
  423. package/src/envOverwrite.ts +0 -1
  424. package/src/factory.tsx +18 -3
  425. package/src/hooks/index.ts +5 -0
  426. package/src/hooks/use-set-state.ts +19 -0
  427. package/src/hooks/use-touch.ts +100 -0
  428. package/src/hooks/use-update-effect.ts +16 -0
  429. package/src/icons/clock.svg +1 -0
  430. package/src/icons/download.svg +4 -0
  431. package/src/icons/status-close.svg +10 -0
  432. package/src/icons/status-fail.svg +10 -0
  433. package/src/icons/status-info.svg +8 -0
  434. package/src/icons/status-success.svg +10 -0
  435. package/src/icons/status-warning.svg +8 -0
  436. package/src/index.tsx +3 -0
  437. package/src/locale/de-DE.ts +4 -0
  438. package/src/locale/en-US.ts +5 -0
  439. package/src/locale/zh-CN.ts +8 -3
  440. package/src/renderers/Action.tsx +33 -2
  441. package/src/renderers/AnchorNav.tsx +4 -0
  442. package/src/renderers/Avatar.tsx +8 -4
  443. package/src/renderers/Breadcrumb.tsx +5 -1
  444. package/src/renderers/CRUD.tsx +63 -28
  445. package/src/renderers/Card.tsx +63 -34
  446. package/src/renderers/Chart.tsx +6 -2
  447. package/src/renderers/Collapse.tsx +4 -2
  448. package/src/renderers/Dialog.tsx +0 -4
  449. package/src/renderers/Drawer.tsx +0 -4
  450. package/src/renderers/DropDownButton.tsx +18 -13
  451. package/src/renderers/Form/Checkbox.tsx +8 -0
  452. package/src/renderers/Form/Combo.tsx +2 -3
  453. package/src/renderers/Form/InputCity.tsx +4 -8
  454. package/src/renderers/Form/InputFile.tsx +66 -24
  455. package/src/renderers/Form/InputImage.tsx +16 -5
  456. package/src/renderers/Form/Item.tsx +3 -2
  457. package/src/renderers/Form/Options.tsx +32 -7
  458. package/src/renderers/Form/Picker.tsx +3 -2
  459. package/src/renderers/Form/Select.tsx +162 -21
  460. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  461. package/src/renderers/Form/Transfer.tsx +19 -4
  462. package/src/renderers/Form/TransferPicker.tsx +145 -0
  463. package/src/renderers/Form/TreeSelect.tsx +25 -0
  464. package/src/renderers/Form/index.tsx +15 -2
  465. package/src/renderers/Form/wrapControl.tsx +28 -3
  466. package/src/renderers/IFrame.tsx +4 -5
  467. package/src/renderers/Image.tsx +10 -0
  468. package/src/renderers/Json.tsx +9 -9
  469. package/src/renderers/Link.tsx +53 -14
  470. package/src/renderers/List.tsx +1 -1
  471. package/src/renderers/Log.tsx +16 -3
  472. package/src/renderers/Mapping.tsx +27 -11
  473. package/src/renderers/Nav.tsx +325 -122
  474. package/src/renderers/Portlet.tsx +423 -0
  475. package/src/renderers/Property.tsx +3 -2
  476. package/src/renderers/SearchBox.tsx +23 -4
  477. package/src/renderers/SparkLine.tsx +5 -0
  478. package/src/renderers/Table/ColumnToggler.tsx +544 -0
  479. package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
  480. package/src/renderers/Table/TableCell.tsx +16 -1
  481. package/src/renderers/Table/TableContent.tsx +40 -2
  482. package/src/renderers/Table/index.tsx +257 -80
  483. package/src/renderers/Tabs.tsx +9 -1
  484. package/src/renderers/WebComponent.tsx +2 -2
  485. package/src/store/crud.ts +3 -8
  486. package/src/store/form.ts +5 -10
  487. package/src/store/service.ts +5 -4
  488. package/src/store/table.ts +103 -11
  489. package/src/types.ts +57 -0
  490. package/src/utils/api.ts +52 -23
  491. package/src/utils/dom.tsx +12 -0
  492. package/src/utils/handleAction.ts +41 -0
  493. package/src/utils/helper.ts +12 -4
  494. package/src/utils/icon.tsx +4 -0
  495. package/src/utils/tpl-builtin.ts +48 -17
  496. package/dump.rdb +0 -0
  497. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  498. package/lib/components/AssociatedCheckboxes.js +0 -90
  499. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  500. package/lib/components/ChainedCheckboxes.js.map +0 -13
  501. package/lib/components/Checkboxes.js +0 -101
  502. package/lib/components/Checkboxes.js.map +0 -13
  503. package/lib/components/ListCheckboxes.d.ts +0 -739
  504. package/lib/components/ListCheckboxes.js +0 -48
  505. package/lib/components/ListCheckboxes.js.map +0 -13
  506. package/lib/components/ListRadios.d.ts +0 -763
  507. package/lib/components/ListRadios.js +0 -86
  508. package/lib/components/ListRadios.js.map +0 -13
  509. package/lib/components/TableCheckboxes.js.map +0 -13
  510. package/lib/components/TreeCheckboxes.js.map +0 -13
  511. package/lib/components/TreeRadios.d.ts +0 -838
  512. package/lib/components/TreeRadios.js +0 -116
  513. package/lib/components/TreeRadios.js.map +0 -13
  514. package/sdk.zip +0 -0
  515. package/src/components/ListRadios.tsx +0 -159
  516. 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
+ );
@@ -311,13 +311,13 @@ export class ToastMessage extends React.Component<
311
311
  {showIcon === false ? null : (
312
312
  <div className={cx('Toast-icon')}>
313
313
  {level === 'success' ? (
314
- <Icon icon="success" className="icon" />
314
+ <Icon icon="status-success" className="icon" />
315
315
  ) : level == 'error' ? (
316
- <Icon icon="fail" className="icon" />
316
+ <Icon icon="status-fail" className="icon" />
317
317
  ) : level == 'info' ? (
318
- <Icon icon="info-circle" className="icon" />
318
+ <Icon icon="status-info" className="icon" />
319
319
  ) : level == 'warning' ? (
320
- <Icon icon="warning" className="icon" />
320
+ <Icon icon="status-warning" className="icon" />
321
321
  ) : null}
322
322
  </div>
323
323
  )}
@@ -327,7 +327,7 @@ export class ToastMessage extends React.Component<
327
327
 
328
328
  {closeButton ? (
329
329
  <a onClick={this.close} className={cx(`Toast-close`)}>
330
- <Icon icon="close" className="icon" />
330
+ <Icon icon="status-close" className="icon" />
331
331
  </a>
332
332
  ) : null}
333
333
  </div>
@@ -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
  )
@@ -0,0 +1,120 @@
1
+ import {localeable} from '../locale';
2
+ import {themeable} from '../theme';
3
+ import {Transfer, TransferProps} from './Transfer';
4
+ import {uncontrollable} from 'uncontrollable';
5
+ import React from 'react';
6
+ import ResultBox from './ResultBox';
7
+ import {Icon} from './icons';
8
+ import InputBox from './InputBox';
9
+ import PopOverContainer from './PopOverContainer';
10
+
11
+ export interface TransferDropDownProps extends TransferProps {
12
+ // 新的属性?
13
+ multiple?: boolean;
14
+ borderMode?: 'full' | 'half' | 'none';
15
+ }
16
+
17
+ export class TransferDropDown extends Transfer<TransferDropDownProps> {
18
+ render() {
19
+ const {
20
+ classnames: cx,
21
+ value,
22
+ translate: __,
23
+ disabled,
24
+ className,
25
+ onChange,
26
+ onSearch,
27
+ multiple,
28
+ borderMode
29
+ } = this.props;
30
+ const {inputValue, searchResult} = this.state;
31
+
32
+ return (
33
+ <PopOverContainer
34
+ popOverClassName={cx('TransferDropDown-popover')}
35
+ popOverRender={({onClose}) => (
36
+ <div className={cx('TransferDropDown-content')}>
37
+ {onSearch ? (
38
+ <div className={cx('Transfer-search')}>
39
+ <InputBox
40
+ value={inputValue}
41
+ onChange={this.handleSearch}
42
+ placeholder={__('Transfer.searchKeyword')}
43
+ clearable={false}
44
+ onKeyDown={this.handleSearchKeyDown}
45
+ >
46
+ {searchResult !== null ? (
47
+ <a onClick={this.handleSeachCancel}>
48
+ <Icon icon="close" className="icon" />
49
+ </a>
50
+ ) : (
51
+ <Icon icon="search" className="icon" />
52
+ )}
53
+ </InputBox>
54
+ </div>
55
+ ) : null}
56
+ {searchResult !== null
57
+ ? this.renderSearchResult({
58
+ ...this.props,
59
+ value,
60
+ onChange: multiple
61
+ ? onChange
62
+ : (value: any) => {
63
+ onClose();
64
+ onChange?.(value);
65
+ },
66
+ multiple
67
+ })
68
+ : this.renderOptions({
69
+ ...this.props,
70
+ value,
71
+ onChange: multiple
72
+ ? onChange
73
+ : (value: any) => {
74
+ onClose();
75
+ onChange?.(value);
76
+ },
77
+ multiple
78
+ })}
79
+ </div>
80
+ )}
81
+ >
82
+ {({onClick, isOpened, ref}) => (
83
+ <ResultBox
84
+ className={cx(
85
+ 'TransferDropDown',
86
+ className,
87
+ isOpened ? 'is-active' : ''
88
+ )}
89
+ borderMode={borderMode}
90
+ allowInput={false}
91
+ result={
92
+ multiple
93
+ ? value
94
+ : value?.[0]
95
+ ? this.props.itemRender(value[0])
96
+ : null
97
+ }
98
+ onResultChange={onChange}
99
+ onResultClick={onClick}
100
+ placeholder={__('Select.placeholder')}
101
+ disabled={disabled}
102
+ ref={ref}
103
+ >
104
+ <span className={cx('TransferDropDown-icon')}>
105
+ <Icon icon="caret" className="icon" />
106
+ </span>
107
+ </ResultBox>
108
+ )}
109
+ </PopOverContainer>
110
+ );
111
+ }
112
+ }
113
+
114
+ export default themeable(
115
+ localeable(
116
+ uncontrollable(TransferDropDown, {
117
+ value: 'onChange'
118
+ })
119
+ )
120
+ );