amis 1.4.2-beta.1 → 1.4.2-beta.11

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 (381) hide show
  1. package/lib/Schema.d.ts +9 -2
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/components/AnchorNav.d.ts +22 -21
  4. package/lib/components/AnchorNav.js +7 -3
  5. package/lib/components/AnchorNav.js.map +2 -2
  6. package/lib/components/ArrayInput.d.ts +84 -84
  7. package/lib/components/AssociatedSelection.d.ts +930 -0
  8. package/lib/components/AssociatedSelection.js +89 -0
  9. package/lib/components/AssociatedSelection.js.map +13 -0
  10. package/lib/components/Badge.js +2 -2
  11. package/lib/components/Badge.js.map +2 -2
  12. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  13. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  14. package/lib/components/ChainedSelection.js.map +13 -0
  15. package/lib/components/ColorPicker.d.ts +84 -84
  16. package/lib/components/DatePicker.d.ts +84 -84
  17. package/lib/components/DateRangePicker.d.ts +84 -84
  18. package/lib/components/Editor.d.ts +84 -84
  19. package/lib/components/GroupedSelection.d.ts +907 -0
  20. package/lib/components/GroupedSelection.js +48 -0
  21. package/lib/components/GroupedSelection.js.map +13 -0
  22. package/lib/components/Link.d.ts +29 -36
  23. package/lib/components/Link.js +14 -15
  24. package/lib/components/Link.js.map +2 -2
  25. package/lib/components/ListGroup.d.ts +21 -21
  26. package/lib/components/ModalManager.js +1 -1
  27. package/lib/components/ModalManager.js.map +2 -2
  28. package/lib/components/MonthRangePicker.d.ts +84 -84
  29. package/lib/components/NumberInput.d.ts +20 -20
  30. package/lib/components/PickerColumn.d.ts +514 -0
  31. package/lib/components/PickerColumn.js +279 -0
  32. package/lib/components/PickerColumn.js.map +13 -0
  33. package/lib/components/PickerContainer.d.ts +513 -0
  34. package/lib/components/PickerContainer.js +96 -0
  35. package/lib/components/PickerContainer.js.map +13 -0
  36. package/lib/components/Radios.d.ts +22 -21
  37. package/lib/components/Radios.js +1 -0
  38. package/lib/components/Radios.js.map +2 -2
  39. package/lib/components/Rating.d.ts +21 -21
  40. package/lib/components/ResultBox.d.ts +84 -84
  41. package/lib/components/SearchBox.d.ts +84 -84
  42. package/lib/components/SearchBox.js +4 -4
  43. package/lib/components/SearchBox.js.map +2 -2
  44. package/lib/components/Select.d.ts +245 -237
  45. package/lib/components/Select.js +25 -4
  46. package/lib/components/Select.js.map +2 -2
  47. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  48. package/lib/components/Selection.js +134 -0
  49. package/lib/components/Selection.js.map +13 -0
  50. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  51. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  52. package/lib/components/TableSelection.js.map +13 -0
  53. package/lib/components/Tabs.d.ts +20 -20
  54. package/lib/components/TabsTransfer.d.ts +84 -84
  55. package/lib/components/TabsTransfer.js +9 -9
  56. package/lib/components/TabsTransfer.js.map +2 -2
  57. package/lib/components/TabsTransferPicker.d.ts +489 -0
  58. package/lib/components/TabsTransferPicker.js +60 -0
  59. package/lib/components/TabsTransferPicker.js.map +13 -0
  60. package/lib/components/Transfer.d.ts +908 -274
  61. package/lib/components/Transfer.js +31 -24
  62. package/lib/components/Transfer.js.map +2 -2
  63. package/lib/components/TransferDropDown.d.ts +487 -0
  64. package/lib/components/TransferDropDown.js +59 -0
  65. package/lib/components/TransferDropDown.js.map +13 -0
  66. package/lib/components/TransferPicker.d.ts +489 -0
  67. package/lib/components/TransferPicker.js +60 -0
  68. package/lib/components/TransferPicker.js.map +13 -0
  69. package/lib/components/Tree.d.ts +84 -84
  70. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  71. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  72. package/lib/components/TreeSelection.js.map +13 -0
  73. package/lib/components/WithRemoteConfig.js +1 -1
  74. package/lib/components/WithRemoteConfig.js.map +2 -2
  75. package/lib/components/condition-builder/Field.js +5 -2
  76. package/lib/components/condition-builder/Field.js.map +2 -2
  77. package/lib/components/condition-builder/Func.js +2 -2
  78. package/lib/components/condition-builder/Func.js.map +2 -2
  79. package/lib/components/condition-builder/InputSwitch.js +2 -2
  80. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  81. package/lib/components/condition-builder/Item.js +3 -3
  82. package/lib/components/condition-builder/Item.js.map +2 -2
  83. package/lib/components/index.d.ts +8 -8
  84. package/lib/components/index.js +16 -16
  85. package/lib/components/index.js.map +2 -2
  86. package/lib/envOverwrite.js.map +2 -2
  87. package/lib/factory.d.ts +4 -0
  88. package/lib/factory.js +4 -2
  89. package/lib/factory.js.map +2 -2
  90. package/lib/helper.css.map +1 -1
  91. package/lib/hooks/index.d.ts +5 -0
  92. package/lib/hooks/index.js +14 -0
  93. package/lib/hooks/index.js.map +13 -0
  94. package/lib/hooks/use-set-state.d.ts +2 -0
  95. package/lib/hooks/use-set-state.js +15 -0
  96. package/lib/hooks/use-set-state.js.map +13 -0
  97. package/lib/hooks/use-touch.d.ts +16 -0
  98. package/lib/hooks/use-touch.js +73 -0
  99. package/lib/hooks/use-touch.js.map +13 -0
  100. package/lib/hooks/use-update-effect.d.ts +3 -0
  101. package/lib/hooks/use-update-effect.js +17 -0
  102. package/lib/hooks/use-update-effect.js.map +13 -0
  103. package/lib/index.d.ts +3 -0
  104. package/lib/index.js +4 -1
  105. package/lib/index.js.map +2 -2
  106. package/lib/locale/de-DE.js +2 -0
  107. package/lib/locale/de-DE.js.map +2 -2
  108. package/lib/locale/en-US.js +2 -0
  109. package/lib/locale/en-US.js.map +2 -2
  110. package/lib/locale/zh-CN.js +4 -2
  111. package/lib/locale/zh-CN.js.map +2 -2
  112. package/lib/renderers/Action.d.ts +4 -3
  113. package/lib/renderers/Action.js +17 -4
  114. package/lib/renderers/Action.js.map +2 -2
  115. package/lib/renderers/AnchorNav.d.ts +1 -0
  116. package/lib/renderers/AnchorNav.js +2 -2
  117. package/lib/renderers/AnchorNav.js.map +2 -2
  118. package/lib/renderers/Avatar.js +3 -3
  119. package/lib/renderers/Avatar.js.map +2 -2
  120. package/lib/renderers/Breadcrumb.js +1 -1
  121. package/lib/renderers/Breadcrumb.js.map +2 -2
  122. package/lib/renderers/CRUD.d.ts +9 -0
  123. package/lib/renderers/CRUD.js +24 -4
  124. package/lib/renderers/CRUD.js.map +2 -2
  125. package/lib/renderers/Card.d.ts +4 -0
  126. package/lib/renderers/Card.js +29 -23
  127. package/lib/renderers/Card.js.map +2 -2
  128. package/lib/renderers/Chart.js +1 -1
  129. package/lib/renderers/Chart.js.map +2 -2
  130. package/lib/renderers/Collapse.js +3 -2
  131. package/lib/renderers/Collapse.js.map +2 -2
  132. package/lib/renderers/DropDownButton.js +1 -1
  133. package/lib/renderers/DropDownButton.js.map +2 -2
  134. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  135. package/lib/renderers/Form/Editor.d.ts +3 -2
  136. package/lib/renderers/Form/InputCity.d.ts +84 -84
  137. package/lib/renderers/Form/InputCity.js +7 -6
  138. package/lib/renderers/Form/InputCity.js.map +2 -2
  139. package/lib/renderers/Form/InputColor.d.ts +84 -84
  140. package/lib/renderers/Form/InputFile.js +10 -4
  141. package/lib/renderers/Form/InputFile.js.map +2 -2
  142. package/lib/renderers/Form/InputImage.js +11 -4
  143. package/lib/renderers/Form/InputImage.js.map +2 -2
  144. package/lib/renderers/Form/Item.d.ts +1 -1
  145. package/lib/renderers/Form/Item.js.map +1 -1
  146. package/lib/renderers/Form/Options.js +13 -3
  147. package/lib/renderers/Form/Options.js.map +2 -2
  148. package/lib/renderers/Form/Select.d.ts +41 -4
  149. package/lib/renderers/Form/Select.js +23 -3
  150. package/lib/renderers/Form/Select.js.map +2 -2
  151. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  152. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  153. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  154. package/lib/renderers/Form/Transfer.js +3 -2
  155. package/lib/renderers/Form/Transfer.js.map +2 -2
  156. package/lib/renderers/Form/TransferPicker.d.ts +48 -0
  157. package/lib/renderers/Form/TransferPicker.js +29 -0
  158. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  159. package/lib/renderers/Form/TreeSelect.js +2 -2
  160. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  161. package/lib/renderers/Form/index.js +1 -1
  162. package/lib/renderers/Form/index.js.map +2 -2
  163. package/lib/renderers/Form/wrapControl.js +13 -1
  164. package/lib/renderers/Form/wrapControl.js.map +2 -2
  165. package/lib/renderers/IFrame.js +1 -3
  166. package/lib/renderers/IFrame.js.map +2 -2
  167. package/lib/renderers/Json.d.ts +4 -0
  168. package/lib/renderers/Json.js +4 -13
  169. package/lib/renderers/Json.js.map +2 -2
  170. package/lib/renderers/Link.d.ts +4 -2
  171. package/lib/renderers/Link.js +15 -6
  172. package/lib/renderers/Link.js.map +2 -2
  173. package/lib/renderers/List.js +1 -1
  174. package/lib/renderers/List.js.map +2 -2
  175. package/lib/renderers/Mapping.d.ts +9 -2
  176. package/lib/renderers/Mapping.js +18 -6
  177. package/lib/renderers/Mapping.js.map +2 -2
  178. package/lib/renderers/Nav.d.ts +21 -21
  179. package/lib/renderers/Nav.js +39 -21
  180. package/lib/renderers/Nav.js.map +2 -2
  181. package/lib/renderers/Portlet.d.ts +125 -0
  182. package/lib/renderers/Portlet.js +156 -0
  183. package/lib/renderers/Portlet.js.map +13 -0
  184. package/lib/renderers/Property.js +2 -1
  185. package/lib/renderers/Property.js.map +2 -2
  186. package/lib/renderers/SearchBox.d.ts +6 -1
  187. package/lib/renderers/SearchBox.js +19 -5
  188. package/lib/renderers/SearchBox.js.map +2 -2
  189. package/lib/renderers/Table/TableContent.d.ts +4 -1
  190. package/lib/renderers/Table/TableContent.js +21 -1
  191. package/lib/renderers/Table/TableContent.js.map +2 -2
  192. package/lib/renderers/Table/index.d.ts +5 -1
  193. package/lib/renderers/Table/index.js +64 -29
  194. package/lib/renderers/Table/index.js.map +2 -2
  195. package/lib/renderers/Tabs.js +9 -1
  196. package/lib/renderers/Tabs.js.map +2 -2
  197. package/lib/renderers/WebComponent.js +1 -1
  198. package/lib/renderers/WebComponent.js.map +2 -2
  199. package/lib/store/combo.d.ts +2 -16
  200. package/lib/store/crud.js +3 -7
  201. package/lib/store/crud.js.map +2 -2
  202. package/lib/store/form.d.ts +1 -1
  203. package/lib/store/form.js +5 -6
  204. package/lib/store/form.js.map +2 -2
  205. package/lib/store/service.js +5 -4
  206. package/lib/store/service.js.map +2 -2
  207. package/lib/store/table.d.ts +2 -2
  208. package/lib/themes/ang-ie11.css +422 -149
  209. package/lib/themes/ang.css +422 -149
  210. package/lib/themes/ang.css.map +1 -1
  211. package/lib/themes/antd-ie11.css +422 -149
  212. package/lib/themes/antd.css +422 -149
  213. package/lib/themes/antd.css.map +1 -1
  214. package/lib/themes/cxd-ie11.css +456 -182
  215. package/lib/themes/cxd.css +456 -182
  216. package/lib/themes/cxd.css.map +1 -1
  217. package/lib/themes/dark-ie11.css +422 -149
  218. package/lib/themes/dark.css +422 -149
  219. package/lib/themes/dark.css.map +1 -1
  220. package/lib/themes/default.css +456 -182
  221. package/lib/themes/default.css.map +1 -1
  222. package/lib/types.d.ts +37 -0
  223. package/lib/types.js +0 -5
  224. package/lib/types.js.map +2 -2
  225. package/lib/utils/api.d.ts +3 -2
  226. package/lib/utils/api.js +28 -12
  227. package/lib/utils/api.js.map +2 -2
  228. package/lib/utils/dom.d.ts +4 -0
  229. package/lib/utils/dom.js +11 -1
  230. package/lib/utils/dom.js.map +2 -2
  231. package/lib/utils/helper.d.ts +2 -0
  232. package/lib/utils/helper.js +11 -2
  233. package/lib/utils/helper.js.map +2 -2
  234. package/lib/utils/icon.js +3 -0
  235. package/lib/utils/icon.js.map +2 -2
  236. package/package.json +1 -1
  237. package/schema.json +3038 -790
  238. package/scss/_mixins.scss +1 -3
  239. package/scss/_properties.scss +25 -1
  240. package/scss/base/_normalize.scss +2 -0
  241. package/scss/components/_anchor-nav.scss +88 -29
  242. package/scss/components/_card.scss +8 -14
  243. package/scss/components/_collapse.scss +16 -1
  244. package/scss/components/_mapping.scss +6 -0
  245. package/scss/components/_nav.scss +1 -1
  246. package/scss/components/_picker-columns.scss +123 -0
  247. package/scss/components/_popover.scss +17 -0
  248. package/scss/components/_portlet.scss +51 -0
  249. package/scss/components/_status.scss +1 -1
  250. package/scss/components/_table.scss +26 -0
  251. package/scss/components/form/_checks.scss +0 -351
  252. package/scss/components/form/_fieldset.scss +5 -1
  253. package/scss/components/form/_selection.scss +354 -0
  254. package/scss/components/form/_transfer.scss +75 -18
  255. package/scss/themes/_common.scss +4 -0
  256. package/scss/themes/_cxd-variables.scss +4 -1
  257. package/scss/themes/cxd.scss +16 -12
  258. package/sdk/ang-ie11.css +457 -152
  259. package/sdk/ang.css +480 -154
  260. package/sdk/antd-ie11.css +456 -151
  261. package/sdk/antd.css +480 -154
  262. package/sdk/charts.js +13 -13
  263. package/sdk/color-picker.js +65 -69
  264. package/sdk/cropperjs.js +2 -2
  265. package/sdk/cxd-ie11.css +496 -194
  266. package/sdk/cxd.css +517 -190
  267. package/sdk/dark-ie11.css +457 -152
  268. package/sdk/dark.css +480 -154
  269. package/sdk/exceljs.js +1 -1
  270. package/sdk/helper.css.map +1 -1
  271. package/sdk/locale/de-DE.js +2 -0
  272. package/sdk/markdown.js +69 -69
  273. package/sdk/papaparse.js +1 -1
  274. package/sdk/renderers/Form/CityDB.js +1 -1
  275. package/sdk/rest.js +20 -28
  276. package/sdk/rich-text.js +62 -62
  277. package/sdk/sdk-ie11.css +496 -194
  278. package/sdk/sdk.css +517 -190
  279. package/sdk/sdk.js +1268 -1236
  280. package/sdk/thirds/hls.js/hls.js +1 -1
  281. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  282. package/sdk/tinymce.js +57 -57
  283. package/src/Schema.ts +14 -0
  284. package/src/components/AnchorNav.tsx +15 -4
  285. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  286. package/src/components/Badge.tsx +3 -3
  287. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  288. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  289. package/src/components/Link.tsx +28 -37
  290. package/src/components/ModalManager.ts +1 -1
  291. package/src/components/PickerColumn.tsx +429 -0
  292. package/src/components/PickerContainer.tsx +128 -0
  293. package/src/components/Radios.tsx +3 -8
  294. package/src/components/SearchBox.tsx +4 -5
  295. package/src/components/Select.tsx +57 -5
  296. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  297. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  298. package/src/components/TabsTransfer.tsx +13 -7
  299. package/src/components/TabsTransferPicker.tsx +85 -0
  300. package/src/components/Transfer.tsx +71 -50
  301. package/src/components/TransferDropDown.tsx +117 -0
  302. package/src/components/TransferPicker.tsx +84 -0
  303. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  304. package/src/components/WithRemoteConfig.tsx +7 -2
  305. package/src/components/condition-builder/Field.tsx +5 -5
  306. package/src/components/condition-builder/Func.tsx +3 -3
  307. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  308. package/src/components/condition-builder/Item.tsx +5 -12
  309. package/src/components/index.tsx +13 -13
  310. package/src/envOverwrite.ts +0 -1
  311. package/src/factory.tsx +18 -3
  312. package/src/hooks/index.ts +5 -0
  313. package/src/hooks/use-set-state.ts +19 -0
  314. package/src/hooks/use-touch.ts +100 -0
  315. package/src/hooks/use-update-effect.ts +16 -0
  316. package/src/index.tsx +3 -0
  317. package/src/locale/de-DE.ts +2 -0
  318. package/src/locale/en-US.ts +2 -0
  319. package/src/locale/zh-CN.ts +4 -2
  320. package/src/renderers/Action.tsx +28 -2
  321. package/src/renderers/AnchorNav.tsx +4 -0
  322. package/src/renderers/Avatar.tsx +8 -4
  323. package/src/renderers/Breadcrumb.tsx +5 -1
  324. package/src/renderers/CRUD.tsx +33 -3
  325. package/src/renderers/Card.tsx +63 -34
  326. package/src/renderers/Chart.tsx +6 -2
  327. package/src/renderers/Collapse.tsx +4 -2
  328. package/src/renderers/DropDownButton.tsx +1 -1
  329. package/src/renderers/Form/InputCity.tsx +4 -8
  330. package/src/renderers/Form/InputFile.tsx +29 -20
  331. package/src/renderers/Form/InputImage.tsx +11 -3
  332. package/src/renderers/Form/Item.tsx +1 -1
  333. package/src/renderers/Form/Options.tsx +16 -2
  334. package/src/renderers/Form/Select.tsx +144 -21
  335. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  336. package/src/renderers/Form/Transfer.tsx +3 -2
  337. package/src/renderers/Form/TransferPicker.tsx +123 -0
  338. package/src/renderers/Form/TreeSelect.tsx +25 -0
  339. package/src/renderers/Form/index.tsx +1 -1
  340. package/src/renderers/Form/wrapControl.tsx +26 -1
  341. package/src/renderers/IFrame.tsx +2 -4
  342. package/src/renderers/Json.tsx +9 -9
  343. package/src/renderers/Link.tsx +27 -13
  344. package/src/renderers/List.tsx +1 -1
  345. package/src/renderers/Mapping.tsx +27 -11
  346. package/src/renderers/Nav.tsx +108 -60
  347. package/src/renderers/Portlet.tsx +423 -0
  348. package/src/renderers/Property.tsx +3 -2
  349. package/src/renderers/SearchBox.tsx +23 -4
  350. package/src/renderers/Table/TableContent.tsx +40 -2
  351. package/src/renderers/Table/index.tsx +87 -41
  352. package/src/renderers/Tabs.tsx +9 -1
  353. package/src/renderers/WebComponent.tsx +2 -2
  354. package/src/store/crud.ts +3 -8
  355. package/src/store/form.ts +5 -10
  356. package/src/store/service.ts +5 -4
  357. package/src/types.ts +57 -0
  358. package/src/utils/api.ts +40 -20
  359. package/src/utils/dom.tsx +12 -0
  360. package/src/utils/helper.ts +8 -0
  361. package/src/utils/icon.tsx +4 -0
  362. package/dump.rdb +0 -0
  363. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  364. package/lib/components/AssociatedCheckboxes.js +0 -90
  365. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  366. package/lib/components/ChainedCheckboxes.js.map +0 -13
  367. package/lib/components/Checkboxes.js +0 -101
  368. package/lib/components/Checkboxes.js.map +0 -13
  369. package/lib/components/ListCheckboxes.d.ts +0 -739
  370. package/lib/components/ListCheckboxes.js +0 -48
  371. package/lib/components/ListCheckboxes.js.map +0 -13
  372. package/lib/components/ListRadios.d.ts +0 -763
  373. package/lib/components/ListRadios.js +0 -86
  374. package/lib/components/ListRadios.js.map +0 -13
  375. package/lib/components/TableCheckboxes.js.map +0 -13
  376. package/lib/components/TreeCheckboxes.js.map +0 -13
  377. package/lib/components/TreeRadios.d.ts +0 -838
  378. package/lib/components/TreeRadios.js +0 -116
  379. package/lib/components/TreeRadios.js.map +0 -13
  380. package/src/components/ListRadios.tsx +0 -159
  381. package/src/components/TreeRadios.tsx +0 -202
@@ -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,117 @@
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
+ }
15
+
16
+ export class TransferDropDown extends Transfer<TransferDropDownProps> {
17
+ render() {
18
+ const {
19
+ classnames: cx,
20
+ value,
21
+ translate: __,
22
+ disabled,
23
+ className,
24
+ onChange,
25
+ onSearch,
26
+ multiple
27
+ } = this.props;
28
+ const {inputValue, searchResult} = this.state;
29
+
30
+ return (
31
+ <PopOverContainer
32
+ popOverClassName={cx('TransferDropDown-popover')}
33
+ popOverRender={({onClose}) => (
34
+ <div className={cx('TransferDropDown-content')}>
35
+ {onSearch ? (
36
+ <div className={cx('Transfer-search')}>
37
+ <InputBox
38
+ value={inputValue}
39
+ onChange={this.handleSearch}
40
+ placeholder={__('Transfer.searchKeyword')}
41
+ clearable={false}
42
+ onKeyDown={this.handleSearchKeyDown}
43
+ >
44
+ {searchResult !== null ? (
45
+ <a onClick={this.handleSeachCancel}>
46
+ <Icon icon="close" className="icon" />
47
+ </a>
48
+ ) : (
49
+ <Icon icon="search" className="icon" />
50
+ )}
51
+ </InputBox>
52
+ </div>
53
+ ) : null}
54
+ {searchResult !== null
55
+ ? this.renderSearchResult({
56
+ ...this.props,
57
+ value,
58
+ onChange: multiple
59
+ ? onChange
60
+ : (value: any) => {
61
+ onClose();
62
+ onChange?.(value);
63
+ },
64
+ multiple
65
+ })
66
+ : this.renderOptions({
67
+ ...this.props,
68
+ value,
69
+ onChange: multiple
70
+ ? onChange
71
+ : (value: any) => {
72
+ onClose();
73
+ onChange?.(value);
74
+ },
75
+ multiple
76
+ })}
77
+ </div>
78
+ )}
79
+ >
80
+ {({onClick, isOpened, ref}) => (
81
+ <ResultBox
82
+ className={cx(
83
+ 'TransferDropDown',
84
+ className,
85
+ isOpened ? 'is-active' : ''
86
+ )}
87
+ allowInput={false}
88
+ result={
89
+ multiple
90
+ ? value
91
+ : value?.[0]
92
+ ? this.props.itemRender(value[0])
93
+ : null
94
+ }
95
+ onResultChange={onChange}
96
+ onResultClick={onClick}
97
+ placeholder={__('Select.placeholder')}
98
+ disabled={disabled}
99
+ ref={ref}
100
+ >
101
+ <span className={cx('TransferDropDown-icon')}>
102
+ <Icon icon="caret" className="icon" />
103
+ </span>
104
+ </ResultBox>
105
+ )}
106
+ </PopOverContainer>
107
+ );
108
+ }
109
+ }
110
+
111
+ export default themeable(
112
+ localeable(
113
+ uncontrollable(TransferDropDown, {
114
+ value: 'onChange'
115
+ })
116
+ )
117
+ );
@@ -0,0 +1,84 @@
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 PickerContainer from './PickerContainer';
9
+ import {autobind} from '../utils/helper';
10
+
11
+ export interface TransferPickerProps extends Omit<TransferProps, 'itemRender'> {
12
+ // 新的属性?
13
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
14
+ }
15
+
16
+ export class TransferPicker extends React.Component<TransferPickerProps> {
17
+ @autobind
18
+ handleClose() {
19
+ this.setState({
20
+ inputValue: '',
21
+ searchResult: null
22
+ });
23
+ }
24
+
25
+ @autobind
26
+ handleConfirm(value: any) {
27
+ this.props.onChange?.(value);
28
+ this.handleClose();
29
+ }
30
+
31
+ render() {
32
+ const {
33
+ classnames: cx,
34
+ value,
35
+ translate: __,
36
+ disabled,
37
+ className,
38
+ onChange,
39
+ size,
40
+ ...rest
41
+ } = this.props;
42
+
43
+ return (
44
+ <PickerContainer
45
+ title={__('Select.placeholder')}
46
+ popOverRender={({onClose, value, onChange}) => {
47
+ return <Transfer {...rest} value={value} onChange={onChange} />;
48
+ }}
49
+ value={value}
50
+ onConfirm={this.handleConfirm}
51
+ onCancel={this.handleClose}
52
+ size={size}
53
+ >
54
+ {({onClick, isOpened}) => (
55
+ <ResultBox
56
+ className={cx(
57
+ 'TransferPicker',
58
+ className,
59
+ isOpened ? 'is-active' : ''
60
+ )}
61
+ allowInput={false}
62
+ result={value}
63
+ onResultChange={onChange}
64
+ onResultClick={onClick}
65
+ placeholder={__('Select.placeholder')}
66
+ disabled={disabled}
67
+ >
68
+ <span className={cx('TransferPicker-icon')}>
69
+ <Icon icon="pencil" className="icon" />
70
+ </span>
71
+ </ResultBox>
72
+ )}
73
+ </PickerContainer>
74
+ );
75
+ }
76
+ }
77
+
78
+ export default themeable(
79
+ localeable(
80
+ uncontrollable(TransferPicker, {
81
+ value: 'onChange'
82
+ })
83
+ )
84
+ );