amis 1.3.5-beta.7 → 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 (577) 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 +16 -3
  14. package/lib/components/Badge.js +54 -5
  15. package/lib/components/Badge.js.map +2 -2
  16. package/lib/components/Button.d.ts +24 -22
  17. package/lib/components/Button.js +13 -7
  18. package/lib/components/Button.js.map +2 -2
  19. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  20. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  21. package/lib/components/ChainedSelection.js.map +13 -0
  22. package/lib/components/Checkbox.d.ts +1 -1
  23. package/lib/components/Checkbox.js +1 -1
  24. package/lib/components/Checkbox.js.map +2 -2
  25. package/lib/components/Collapse.js +1 -1
  26. package/lib/components/Collapse.js.map +2 -2
  27. package/lib/components/ColorPicker.d.ts +84 -84
  28. package/lib/components/DatePicker.d.ts +84 -84
  29. package/lib/components/DatePicker.js +1 -1
  30. package/lib/components/DatePicker.js.map +2 -2
  31. package/lib/components/DateRangePicker.d.ts +84 -84
  32. package/lib/components/DateRangePicker.js +1 -1
  33. package/lib/components/DateRangePicker.js.map +2 -2
  34. package/lib/components/Drawer.js +1 -1
  35. package/lib/components/Drawer.js.map +2 -2
  36. package/lib/components/Editor.d.ts +84 -84
  37. package/lib/components/GroupedSelection.d.ts +907 -0
  38. package/lib/components/GroupedSelection.js +48 -0
  39. package/lib/components/GroupedSelection.js.map +13 -0
  40. package/lib/components/InputBox.js +1 -1
  41. package/lib/components/InputBox.js.map +2 -2
  42. package/lib/components/Link.d.ts +84 -0
  43. package/lib/components/Link.js +43 -0
  44. package/lib/components/Link.js.map +13 -0
  45. package/lib/components/ListGroup.d.ts +21 -21
  46. package/lib/components/Modal.js +1 -1
  47. package/lib/components/Modal.js.map +2 -2
  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/MonthRangePicker.js +1 -1
  52. package/lib/components/MonthRangePicker.js.map +2 -2
  53. package/lib/components/NumberInput.d.ts +20 -20
  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/Radios.d.ts +22 -21
  61. package/lib/components/Radios.js +1 -0
  62. package/lib/components/Radios.js.map +2 -2
  63. package/lib/components/Rating.d.ts +21 -21
  64. package/lib/components/ResultBox.d.ts +84 -84
  65. package/lib/components/RichText.d.ts +6 -1
  66. package/lib/components/RichText.js +207 -8
  67. package/lib/components/RichText.js.map +2 -2
  68. package/lib/components/SearchBox.d.ts +84 -84
  69. package/lib/components/SearchBox.js +4 -4
  70. package/lib/components/SearchBox.js.map +2 -2
  71. package/lib/components/Select.d.ts +252 -237
  72. package/lib/components/Select.js +28 -4
  73. package/lib/components/Select.js.map +2 -2
  74. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  75. package/lib/components/Selection.js +134 -0
  76. package/lib/components/Selection.js.map +13 -0
  77. package/lib/components/SparkLine.d.ts +85 -84
  78. package/lib/components/SparkLine.js +2 -2
  79. package/lib/components/SparkLine.js.map +2 -2
  80. package/lib/components/Steps.d.ts +3 -3
  81. package/lib/components/Steps.js.map +1 -1
  82. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  83. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  84. package/lib/components/TableSelection.js.map +13 -0
  85. package/lib/components/Tabs.d.ts +20 -20
  86. package/lib/components/TabsTransfer.d.ts +84 -84
  87. package/lib/components/TabsTransfer.js +9 -9
  88. package/lib/components/TabsTransfer.js.map +2 -2
  89. package/lib/components/TabsTransferPicker.d.ts +489 -0
  90. package/lib/components/TabsTransferPicker.js +60 -0
  91. package/lib/components/TabsTransferPicker.js.map +13 -0
  92. package/lib/components/Toast.js +2 -2
  93. package/lib/components/Toast.js.map +2 -2
  94. package/lib/components/Transfer.d.ts +908 -274
  95. package/lib/components/Transfer.js +31 -24
  96. package/lib/components/Transfer.js.map +2 -2
  97. package/lib/components/TransferDropDown.d.ts +487 -0
  98. package/lib/components/TransferDropDown.js +59 -0
  99. package/lib/components/TransferDropDown.js.map +13 -0
  100. package/lib/components/TransferPicker.d.ts +489 -0
  101. package/lib/components/TransferPicker.js +60 -0
  102. package/lib/components/TransferPicker.js.map +13 -0
  103. package/lib/components/Tree.d.ts +84 -84
  104. package/lib/components/Tree.js +5 -3
  105. package/lib/components/Tree.js.map +2 -2
  106. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  107. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  108. package/lib/components/TreeSelection.js.map +13 -0
  109. package/lib/components/WithRemoteConfig.d.ts +8 -0
  110. package/lib/components/WithRemoteConfig.js +29 -3
  111. package/lib/components/WithRemoteConfig.js.map +2 -2
  112. package/lib/components/calendar/DaysView.js +2 -2
  113. package/lib/components/calendar/DaysView.js.map +2 -2
  114. package/lib/components/condition-builder/Field.js +5 -3
  115. package/lib/components/condition-builder/Field.js.map +2 -2
  116. package/lib/components/condition-builder/Func.js +2 -2
  117. package/lib/components/condition-builder/Func.js.map +2 -2
  118. package/lib/components/condition-builder/InputSwitch.js +2 -2
  119. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  120. package/lib/components/condition-builder/Item.js +3 -3
  121. package/lib/components/condition-builder/Item.js.map +2 -2
  122. package/lib/components/condition-builder/Value.js +2 -1
  123. package/lib/components/condition-builder/Value.js.map +2 -2
  124. package/lib/components/condition-builder/types.d.ts +5 -0
  125. package/lib/components/condition-builder/types.js.map +1 -1
  126. package/lib/components/icons.js +14 -0
  127. package/lib/components/icons.js.map +2 -2
  128. package/lib/components/index.d.ts +8 -8
  129. package/lib/components/index.js +16 -16
  130. package/lib/components/index.js.map +2 -2
  131. package/lib/envOverwrite.js.map +2 -2
  132. package/lib/factory.d.ts +9 -1
  133. package/lib/factory.js +13 -6
  134. package/lib/factory.js.map +2 -2
  135. package/lib/helper.css.map +1 -1
  136. package/lib/hooks/index.d.ts +5 -0
  137. package/lib/hooks/index.js +14 -0
  138. package/lib/hooks/index.js.map +13 -0
  139. package/lib/hooks/use-set-state.d.ts +2 -0
  140. package/lib/hooks/use-set-state.js +15 -0
  141. package/lib/hooks/use-set-state.js.map +13 -0
  142. package/lib/hooks/use-touch.d.ts +16 -0
  143. package/lib/hooks/use-touch.js +73 -0
  144. package/lib/hooks/use-touch.js.map +13 -0
  145. package/lib/hooks/use-update-effect.d.ts +3 -0
  146. package/lib/hooks/use-update-effect.js +17 -0
  147. package/lib/hooks/use-update-effect.js.map +13 -0
  148. package/lib/icons/clock.js +10 -0
  149. package/lib/icons/loading-outline.js +7 -0
  150. package/lib/icons/status-close.js +11 -0
  151. package/lib/icons/status-fail.js +11 -0
  152. package/lib/icons/status-info.js +10 -0
  153. package/lib/icons/status-success.js +11 -0
  154. package/lib/icons/status-warning.js +10 -0
  155. package/lib/index.d.ts +3 -0
  156. package/lib/index.js +4 -1
  157. package/lib/index.js.map +2 -2
  158. package/lib/locale/de-DE.js +5 -0
  159. package/lib/locale/de-DE.js.map +2 -2
  160. package/lib/locale/en-US.js +6 -1
  161. package/lib/locale/en-US.js.map +2 -2
  162. package/lib/locale/zh-CN.js +9 -4
  163. package/lib/locale/zh-CN.js.map +2 -2
  164. package/lib/renderers/Action.d.ts +17 -1
  165. package/lib/renderers/Action.js +21 -8
  166. package/lib/renderers/Action.js.map +2 -2
  167. package/lib/renderers/AnchorNav.d.ts +1 -0
  168. package/lib/renderers/AnchorNav.js +2 -2
  169. package/lib/renderers/AnchorNav.js.map +2 -2
  170. package/lib/renderers/Avatar.js +3 -3
  171. package/lib/renderers/Avatar.js.map +2 -2
  172. package/lib/renderers/Breadcrumb.js +1 -1
  173. package/lib/renderers/Breadcrumb.js.map +2 -2
  174. package/lib/renderers/CRUD.d.ts +9 -0
  175. package/lib/renderers/CRUD.js +48 -23
  176. package/lib/renderers/CRUD.js.map +2 -2
  177. package/lib/renderers/Card.d.ts +4 -0
  178. package/lib/renderers/Card.js +29 -23
  179. package/lib/renderers/Card.js.map +2 -2
  180. package/lib/renderers/Chart.js +1 -1
  181. package/lib/renderers/Chart.js.map +2 -2
  182. package/lib/renderers/Collapse.d.ts +1 -1
  183. package/lib/renderers/Collapse.js +8 -3
  184. package/lib/renderers/Collapse.js.map +2 -2
  185. package/lib/renderers/Dialog.d.ts +0 -252
  186. package/lib/renderers/Dialog.js +1 -4
  187. package/lib/renderers/Dialog.js.map +2 -2
  188. package/lib/renderers/Drawer.js +0 -3
  189. package/lib/renderers/Drawer.js.map +2 -2
  190. package/lib/renderers/DropDownButton.d.ts +13 -1
  191. package/lib/renderers/DropDownButton.js +9 -5
  192. package/lib/renderers/DropDownButton.js.map +2 -2
  193. package/lib/renderers/Form/Checkbox.d.ts +5 -0
  194. package/lib/renderers/Form/Checkbox.js +4 -0
  195. package/lib/renderers/Form/Checkbox.js.map +2 -2
  196. package/lib/renderers/Form/Combo.js +2 -2
  197. package/lib/renderers/Form/Combo.js.map +2 -2
  198. package/lib/renderers/Form/DiffEditor.d.ts +4 -5
  199. package/lib/renderers/Form/Editor.d.ts +3 -4
  200. package/lib/renderers/Form/Editor.js +1 -1
  201. package/lib/renderers/Form/Editor.js.map +2 -2
  202. package/lib/renderers/Form/InputCity.d.ts +84 -84
  203. package/lib/renderers/Form/InputCity.js +7 -6
  204. package/lib/renderers/Form/InputCity.js.map +2 -2
  205. package/lib/renderers/Form/InputColor.d.ts +84 -84
  206. package/lib/renderers/Form/InputExcel.d.ts +5 -0
  207. package/lib/renderers/Form/InputExcel.js +24 -3
  208. package/lib/renderers/Form/InputExcel.js.map +2 -2
  209. package/lib/renderers/Form/InputFile.js +12 -6
  210. package/lib/renderers/Form/InputFile.js.map +2 -2
  211. package/lib/renderers/Form/InputImage.d.ts +8 -0
  212. package/lib/renderers/Form/InputImage.js +18 -8
  213. package/lib/renderers/Form/InputImage.js.map +2 -2
  214. package/lib/renderers/Form/InputTable.d.ts +23 -5
  215. package/lib/renderers/Form/InputTable.js +32 -3
  216. package/lib/renderers/Form/InputTable.js.map +2 -2
  217. package/lib/renderers/Form/Item.d.ts +1 -1
  218. package/lib/renderers/Form/Item.js.map +1 -1
  219. package/lib/renderers/Form/Options.js +19 -6
  220. package/lib/renderers/Form/Options.js.map +2 -2
  221. package/lib/renderers/Form/Picker.js +2 -2
  222. package/lib/renderers/Form/Picker.js.map +2 -2
  223. package/lib/renderers/Form/Select.d.ts +41 -4
  224. package/lib/renderers/Form/Select.js +23 -3
  225. package/lib/renderers/Form/Select.js.map +2 -2
  226. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  227. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  228. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  229. package/lib/renderers/Form/Transfer.js +3 -2
  230. package/lib/renderers/Form/Transfer.js.map +2 -2
  231. package/lib/renderers/Form/TransferPicker.d.ts +48 -0
  232. package/lib/renderers/Form/TransferPicker.js +29 -0
  233. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  234. package/lib/renderers/Form/TreeSelect.js +2 -2
  235. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  236. package/lib/renderers/Form/index.js +1 -1
  237. package/lib/renderers/Form/index.js.map +2 -2
  238. package/lib/renderers/Form/wrapControl.js +15 -3
  239. package/lib/renderers/Form/wrapControl.js.map +2 -2
  240. package/lib/renderers/IFrame.js +3 -5
  241. package/lib/renderers/IFrame.js.map +2 -2
  242. package/lib/renderers/Image.d.ts +1 -0
  243. package/lib/renderers/Image.js +15 -1
  244. package/lib/renderers/Image.js.map +2 -2
  245. package/lib/renderers/Json.d.ts +4 -0
  246. package/lib/renderers/Json.js +7 -12
  247. package/lib/renderers/Json.js.map +2 -2
  248. package/lib/renderers/Link.d.ts +18 -3
  249. package/lib/renderers/Link.js +27 -15
  250. package/lib/renderers/Link.js.map +2 -2
  251. package/lib/renderers/List.js +1 -1
  252. package/lib/renderers/List.js.map +2 -2
  253. package/lib/renderers/Log.d.ts +2 -2
  254. package/lib/renderers/Log.js +7 -1
  255. package/lib/renderers/Log.js.map +2 -2
  256. package/lib/renderers/Mapping.d.ts +9 -2
  257. package/lib/renderers/Mapping.js +18 -6
  258. package/lib/renderers/Mapping.js.map +2 -2
  259. package/lib/renderers/Nav.d.ts +81 -25
  260. package/lib/renderers/Nav.js +292 -31
  261. package/lib/renderers/Nav.js.map +2 -2
  262. package/lib/renderers/Page.js +4 -1
  263. package/lib/renderers/Page.js.map +2 -2
  264. package/lib/renderers/Portlet.d.ts +125 -0
  265. package/lib/renderers/Portlet.js +156 -0
  266. package/lib/renderers/Portlet.js.map +13 -0
  267. package/lib/renderers/Property.js +2 -1
  268. package/lib/renderers/Property.js.map +2 -2
  269. package/lib/renderers/SearchBox.d.ts +6 -1
  270. package/lib/renderers/SearchBox.js +19 -5
  271. package/lib/renderers/SearchBox.js.map +2 -2
  272. package/lib/renderers/Service.d.ts +10 -1
  273. package/lib/renderers/Service.js +85 -3
  274. package/lib/renderers/Service.js.map +2 -2
  275. package/lib/renderers/SparkLine.d.ts +4 -0
  276. package/lib/renderers/SparkLine.js.map +2 -2
  277. package/lib/renderers/Steps.d.ts +4 -4
  278. package/lib/renderers/Steps.js +5 -2
  279. package/lib/renderers/Steps.js.map +2 -2
  280. package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
  281. package/lib/renderers/Table/ColumnToggler.js +216 -0
  282. package/lib/renderers/Table/ColumnToggler.js.map +13 -0
  283. package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  284. package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
  285. package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
  286. package/lib/renderers/Table/TableBody.d.ts +5 -1
  287. package/lib/renderers/Table/TableBody.js.map +1 -1
  288. package/lib/renderers/Table/TableCell.js +3 -1
  289. package/lib/renderers/Table/TableCell.js.map +2 -2
  290. package/lib/renderers/Table/TableContent.d.ts +5 -2
  291. package/lib/renderers/Table/TableContent.js +21 -1
  292. package/lib/renderers/Table/TableContent.js.map +2 -2
  293. package/lib/renderers/Table/index.d.ts +27 -5
  294. package/lib/renderers/Table/index.js +251 -101
  295. package/lib/renderers/Table/index.js.map +2 -2
  296. package/lib/renderers/Tabs.js +9 -1
  297. package/lib/renderers/Tabs.js.map +2 -2
  298. package/lib/renderers/WebComponent.js +1 -1
  299. package/lib/renderers/WebComponent.js.map +2 -2
  300. package/lib/store/app.d.ts +0 -1
  301. package/lib/store/combo.d.ts +2 -18
  302. package/lib/store/crud.d.ts +0 -1
  303. package/lib/store/crud.js +3 -7
  304. package/lib/store/crud.js.map +2 -2
  305. package/lib/store/form.d.ts +1 -2
  306. package/lib/store/form.js +5 -6
  307. package/lib/store/form.js.map +2 -2
  308. package/lib/store/modal.d.ts +1 -1
  309. package/lib/store/modal.js +4 -0
  310. package/lib/store/modal.js.map +2 -2
  311. package/lib/store/root.d.ts +0 -1
  312. package/lib/store/service.d.ts +0 -1
  313. package/lib/store/service.js +5 -17
  314. package/lib/store/service.js.map +2 -2
  315. package/lib/store/table.d.ts +260 -5
  316. package/lib/store/table.js +83 -7
  317. package/lib/store/table.js.map +2 -2
  318. package/lib/themes/ang-ie11.css +1360 -244
  319. package/lib/themes/ang.css +1360 -244
  320. package/lib/themes/ang.css.map +1 -1
  321. package/lib/themes/antd-ie11.css +1360 -244
  322. package/lib/themes/antd.css +1360 -244
  323. package/lib/themes/antd.css.map +1 -1
  324. package/lib/themes/cxd-ie11.css +1960 -517
  325. package/lib/themes/cxd.css +1960 -517
  326. package/lib/themes/cxd.css.map +1 -1
  327. package/lib/themes/dark-ie11.css +1360 -244
  328. package/lib/themes/dark.css +1360 -244
  329. package/lib/themes/dark.css.map +1 -1
  330. package/lib/themes/default.css +1960 -517
  331. package/lib/themes/default.css.map +1 -1
  332. package/lib/types.d.ts +37 -0
  333. package/lib/types.js +0 -5
  334. package/lib/types.js.map +2 -2
  335. package/lib/utils/api.d.ts +3 -2
  336. package/lib/utils/api.js +43 -15
  337. package/lib/utils/api.js.map +2 -2
  338. package/lib/utils/attachmentAdpator.d.ts +7 -0
  339. package/lib/utils/attachmentAdpator.js +82 -0
  340. package/lib/utils/attachmentAdpator.js.map +13 -0
  341. package/lib/utils/dom.d.ts +4 -0
  342. package/lib/utils/dom.js +11 -1
  343. package/lib/utils/dom.js.map +2 -2
  344. package/lib/utils/handleAction.d.ts +7 -0
  345. package/lib/utils/handleAction.js +30 -0
  346. package/lib/utils/handleAction.js.map +13 -0
  347. package/lib/utils/helper.d.ts +3 -1
  348. package/lib/utils/helper.js +14 -5
  349. package/lib/utils/helper.js.map +2 -2
  350. package/lib/utils/icon.js +3 -0
  351. package/lib/utils/icon.js.map +2 -2
  352. package/lib/utils/tpl-builtin.d.ts +1 -1
  353. package/lib/utils/tpl-builtin.js +25 -15
  354. package/lib/utils/tpl-builtin.js.map +2 -2
  355. package/lib/utils/validations.js +62 -5
  356. package/lib/utils/validations.js.map +2 -2
  357. package/package.json +1 -2
  358. package/schema.json +3638 -1030
  359. package/scss/_mixins.scss +27 -0
  360. package/scss/_properties.scss +88 -13
  361. package/scss/_utilities.scss +4 -0
  362. package/scss/base/_normalize.scss +2 -0
  363. package/scss/components/_anchor-nav.scss +88 -29
  364. package/scss/components/_badge.scss +67 -2
  365. package/scss/components/_button.scss +34 -3
  366. package/scss/components/_card.scss +8 -14
  367. package/scss/components/_collapse.scss +41 -8
  368. package/scss/components/_column-toggler.scss +234 -0
  369. package/scss/components/_dropdown.scss +2 -1
  370. package/scss/components/_image-gallery.scss +1 -1
  371. package/scss/components/_images.scss +2 -1
  372. package/scss/components/_link.scss +6 -0
  373. package/scss/components/_mapping.scss +6 -0
  374. package/scss/components/_markdown.scss +266 -0
  375. package/scss/components/_nav.scss +236 -154
  376. package/scss/components/_page.scss +5 -4
  377. package/scss/components/_picker-columns.scss +123 -0
  378. package/scss/components/_popover.scss +17 -0
  379. package/scss/components/_portlet.scss +51 -0
  380. package/scss/components/_progress.scss +2 -0
  381. package/scss/components/_spinner.scss +6 -2
  382. package/scss/components/_status.scss +1 -1
  383. package/scss/components/_steps.scss +1 -1
  384. package/scss/components/_table.scss +51 -1
  385. package/scss/components/form/_checks.scss +0 -351
  386. package/scss/components/form/_color.scss +1 -0
  387. package/scss/components/form/_date-range.scss +2 -0
  388. package/scss/components/form/_date.scss +2 -0
  389. package/scss/components/form/_fieldset.scss +6 -3
  390. package/scss/components/form/_file.scss +5 -4
  391. package/scss/components/form/_group.scss +4 -0
  392. package/scss/components/form/_image.scss +7 -2
  393. package/scss/components/form/_list.scss +1 -0
  394. package/scss/components/form/_location.scss +1 -1
  395. package/scss/components/form/_selection.scss +354 -0
  396. package/scss/components/form/_text.scss +13 -0
  397. package/scss/components/form/_textarea.scss +10 -0
  398. package/scss/components/form/_transfer.scss +77 -18
  399. package/scss/themes/_common.scss +7 -0
  400. package/scss/themes/_cxd-colors.scss +56 -0
  401. package/scss/themes/_cxd-variables.scss +219 -91
  402. package/scss/themes/cxd.scss +370 -0
  403. package/sdk/ang-ie11.css +1752 -431
  404. package/sdk/ang.css +1706 -323
  405. package/sdk/antd-ie11.css +1739 -420
  406. package/sdk/antd.css +1706 -323
  407. package/sdk/charts.js +13 -13
  408. package/sdk/color-picker.js +65 -69
  409. package/sdk/cropperjs.js +2 -2
  410. package/sdk/cxd-ie11.css +3015 -1397
  411. package/sdk/cxd.css +2402 -651
  412. package/sdk/dark-ie11.css +1750 -429
  413. package/sdk/dark.css +1706 -323
  414. package/sdk/exceljs.js +1 -1
  415. package/sdk/helper.css.map +1 -1
  416. package/sdk/ie11-patch.css +1 -0
  417. package/sdk/locale/de-DE.js +5 -0
  418. package/sdk/markdown.js +69 -69
  419. package/sdk/papaparse.js +1 -1
  420. package/sdk/renderers/Form/CityDB.js +1 -1
  421. package/sdk/rest.js +20 -30
  422. package/sdk/rich-text.js +62 -64
  423. package/sdk/sdk-ie11.css +3015 -1397
  424. package/sdk/sdk.css +2402 -651
  425. package/sdk/sdk.js +1278 -1220
  426. package/sdk/thirds/hls.js/hls.js +1 -1
  427. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  428. package/sdk/tinymce.js +57 -57
  429. package/src/Schema.ts +32 -0
  430. package/src/components/Alert.tsx +3 -1
  431. package/src/components/AnchorNav.tsx +15 -4
  432. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  433. package/src/components/Badge.tsx +126 -23
  434. package/src/components/Button.tsx +23 -7
  435. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  436. package/src/components/Checkbox.tsx +5 -2
  437. package/src/components/Collapse.tsx +14 -9
  438. package/src/components/DatePicker.tsx +1 -1
  439. package/src/components/DateRangePicker.tsx +23 -11
  440. package/src/components/Drawer.tsx +3 -2
  441. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  442. package/src/components/InputBox.tsx +1 -1
  443. package/src/components/Link.tsx +85 -0
  444. package/src/components/Modal.tsx +3 -2
  445. package/src/components/ModalManager.ts +1 -1
  446. package/src/components/MonthRangePicker.tsx +10 -2
  447. package/src/components/PickerColumn.tsx +429 -0
  448. package/src/components/PickerContainer.tsx +128 -0
  449. package/src/components/Radios.tsx +3 -8
  450. package/src/components/RichText.tsx +244 -3
  451. package/src/components/SearchBox.tsx +4 -5
  452. package/src/components/Select.tsx +61 -5
  453. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  454. package/src/components/SparkLine.tsx +4 -1
  455. package/src/components/Steps.tsx +3 -3
  456. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  457. package/src/components/TabsTransfer.tsx +13 -7
  458. package/src/components/TabsTransferPicker.tsx +85 -0
  459. package/src/components/Toast.tsx +5 -5
  460. package/src/components/Transfer.tsx +71 -50
  461. package/src/components/TransferDropDown.tsx +117 -0
  462. package/src/components/TransferPicker.tsx +84 -0
  463. package/src/components/Tree.tsx +6 -8
  464. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  465. package/src/components/WithRemoteConfig.tsx +44 -4
  466. package/src/components/calendar/DaysView.tsx +2 -2
  467. package/src/components/condition-builder/Field.tsx +6 -7
  468. package/src/components/condition-builder/Func.tsx +3 -3
  469. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  470. package/src/components/condition-builder/Item.tsx +5 -12
  471. package/src/components/condition-builder/Value.tsx +3 -0
  472. package/src/components/condition-builder/types.ts +6 -0
  473. package/src/components/icons.tsx +15 -0
  474. package/src/components/index.tsx +13 -13
  475. package/src/envOverwrite.ts +0 -1
  476. package/src/factory.tsx +31 -6
  477. package/src/hooks/index.ts +5 -0
  478. package/src/hooks/use-set-state.ts +19 -0
  479. package/src/hooks/use-touch.ts +100 -0
  480. package/src/hooks/use-update-effect.ts +16 -0
  481. package/src/icons/clock.svg +1 -0
  482. package/src/icons/loading-outline.svg +4 -0
  483. package/src/icons/status-close.svg +10 -0
  484. package/src/icons/status-fail.svg +10 -0
  485. package/src/icons/status-info.svg +8 -0
  486. package/src/icons/status-success.svg +10 -0
  487. package/src/icons/status-warning.svg +8 -0
  488. package/src/index.tsx +3 -0
  489. package/src/locale/de-DE.ts +5 -0
  490. package/src/locale/en-US.ts +6 -1
  491. package/src/locale/zh-CN.ts +9 -4
  492. package/src/renderers/Action.tsx +99 -15
  493. package/src/renderers/AnchorNav.tsx +4 -0
  494. package/src/renderers/Avatar.tsx +8 -4
  495. package/src/renderers/Breadcrumb.tsx +5 -1
  496. package/src/renderers/CRUD.tsx +70 -56
  497. package/src/renderers/Card.tsx +63 -34
  498. package/src/renderers/Chart.tsx +6 -2
  499. package/src/renderers/Collapse.tsx +9 -3
  500. package/src/renderers/Dialog.tsx +1 -5
  501. package/src/renderers/Drawer.tsx +0 -4
  502. package/src/renderers/DropDownButton.tsx +34 -12
  503. package/src/renderers/Form/Checkbox.tsx +8 -0
  504. package/src/renderers/Form/Combo.tsx +2 -3
  505. package/src/renderers/Form/Editor.tsx +19 -20
  506. package/src/renderers/Form/InputCity.tsx +4 -8
  507. package/src/renderers/Form/InputExcel.tsx +28 -3
  508. package/src/renderers/Form/InputFile.tsx +30 -20
  509. package/src/renderers/Form/InputImage.tsx +39 -13
  510. package/src/renderers/Form/InputTable.tsx +88 -9
  511. package/src/renderers/Form/Item.tsx +1 -1
  512. package/src/renderers/Form/Options.tsx +32 -7
  513. package/src/renderers/Form/Picker.tsx +3 -2
  514. package/src/renderers/Form/Select.tsx +144 -21
  515. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  516. package/src/renderers/Form/Transfer.tsx +3 -2
  517. package/src/renderers/Form/TransferPicker.tsx +123 -0
  518. package/src/renderers/Form/TreeSelect.tsx +25 -0
  519. package/src/renderers/Form/index.tsx +1 -1
  520. package/src/renderers/Form/wrapControl.tsx +28 -3
  521. package/src/renderers/IFrame.tsx +4 -5
  522. package/src/renderers/Image.tsx +10 -0
  523. package/src/renderers/Json.tsx +19 -10
  524. package/src/renderers/Link.tsx +53 -14
  525. package/src/renderers/List.tsx +1 -1
  526. package/src/renderers/Log.tsx +16 -3
  527. package/src/renderers/Mapping.tsx +27 -11
  528. package/src/renderers/Nav.tsx +392 -60
  529. package/src/renderers/Page.tsx +3 -1
  530. package/src/renderers/Portlet.tsx +423 -0
  531. package/src/renderers/Property.tsx +3 -2
  532. package/src/renderers/SearchBox.tsx +23 -4
  533. package/src/renderers/Service.tsx +101 -3
  534. package/src/renderers/SparkLine.tsx +5 -0
  535. package/src/renderers/Steps.tsx +12 -9
  536. package/src/renderers/Table/ColumnToggler.tsx +544 -0
  537. package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
  538. package/src/renderers/Table/TableBody.tsx +1 -1
  539. package/src/renderers/Table/TableCell.tsx +16 -1
  540. package/src/renderers/Table/TableContent.tsx +41 -3
  541. package/src/renderers/Table/index.tsx +318 -92
  542. package/src/renderers/Tabs.tsx +9 -1
  543. package/src/renderers/WebComponent.tsx +2 -2
  544. package/src/store/crud.ts +3 -8
  545. package/src/store/form.ts +5 -10
  546. package/src/store/modal.ts +4 -0
  547. package/src/store/service.ts +5 -23
  548. package/src/store/table.ts +103 -4
  549. package/src/types.ts +57 -0
  550. package/src/utils/api.ts +63 -23
  551. package/src/utils/attachmentAdpator.ts +90 -0
  552. package/src/utils/dom.tsx +12 -0
  553. package/src/utils/handleAction.ts +41 -0
  554. package/src/utils/helper.ts +12 -3
  555. package/src/utils/icon.tsx +4 -0
  556. package/src/utils/tpl-builtin.ts +48 -17
  557. package/src/utils/validations.ts +80 -12
  558. package/dump.rdb +0 -0
  559. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  560. package/lib/components/AssociatedCheckboxes.js +0 -90
  561. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  562. package/lib/components/ChainedCheckboxes.js.map +0 -13
  563. package/lib/components/Checkboxes.js +0 -101
  564. package/lib/components/Checkboxes.js.map +0 -13
  565. package/lib/components/ListCheckboxes.d.ts +0 -739
  566. package/lib/components/ListCheckboxes.js +0 -48
  567. package/lib/components/ListCheckboxes.js.map +0 -13
  568. package/lib/components/ListRadios.d.ts +0 -763
  569. package/lib/components/ListRadios.js +0 -86
  570. package/lib/components/ListRadios.js.map +0 -13
  571. package/lib/components/TableCheckboxes.js.map +0 -13
  572. package/lib/components/TreeCheckboxes.js.map +0 -13
  573. package/lib/components/TreeRadios.d.ts +0 -838
  574. package/lib/components/TreeRadios.js +0 -116
  575. package/lib/components/TreeRadios.js.map +0 -13
  576. package/src/components/ListRadios.tsx +0 -159
  577. package/src/components/TreeRadios.tsx +0 -202
@@ -29,6 +29,8 @@ import {
29
29
  SchemaUrlPath
30
30
  } from '../../Schema';
31
31
  import {filter} from '../../utils/tpl';
32
+ import isPlainObject from 'lodash/isPlainObject';
33
+ import merge from 'lodash/merge';
32
34
 
33
35
  /**
34
36
  * Image 图片上传控件
@@ -110,6 +112,16 @@ export interface ImageControlSchema extends FormBaseControl {
110
112
  scalable?: boolean;
111
113
  };
112
114
 
115
+ /**
116
+ * 裁剪后的图片类型
117
+ */
118
+ cropFormat?: string;
119
+
120
+ /**
121
+ * 裁剪后的质量
122
+ */
123
+ cropQuality?: number;
124
+
113
125
  /**
114
126
  * 是否允许二次裁剪。
115
127
  */
@@ -780,8 +792,8 @@ export default class ImageControl extends React.Component<
780
792
  }
781
793
 
782
794
  syncAutoFill() {
783
- const {autoFill, multiple, onBulkChange} = this.props;
784
- if (!isEmpty(autoFill)) {
795
+ const {autoFill, multiple, onBulkChange, data} = this.props;
796
+ if (!isEmpty(autoFill) && onBulkChange) {
785
797
  const files = this.state.files.filter(
786
798
  file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)
787
799
  );
@@ -793,7 +805,13 @@ export default class ImageControl extends React.Component<
793
805
  }
794
806
  : files[0]
795
807
  );
796
- onBulkChange && onBulkChange(toSync);
808
+
809
+ Object.keys(toSync).forEach(key => {
810
+ if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {
811
+ toSync[key] = merge({}, data[key], toSync[key]);
812
+ }
813
+ });
814
+ onBulkChange(toSync);
797
815
  }
798
816
  }
799
817
 
@@ -862,14 +880,19 @@ export default class ImageControl extends React.Component<
862
880
  }
863
881
 
864
882
  handleCrop() {
865
- this.cropper.getCroppedCanvas().toBlob((file: File) => {
866
- this.addFiles([file]);
867
- this.setState({
868
- cropFile: undefined,
869
- locked: false,
870
- lockedReason: ''
871
- });
872
- });
883
+ const {cropFormat, cropQuality} = this.props;
884
+ this.cropper.getCroppedCanvas().toBlob(
885
+ (file: File) => {
886
+ this.addFiles([file]);
887
+ this.setState({
888
+ cropFile: undefined,
889
+ locked: false,
890
+ lockedReason: ''
891
+ });
892
+ },
893
+ cropFormat || 'image/png',
894
+ cropQuality || 1
895
+ );
873
896
  }
874
897
 
875
898
  cancelCrop() {
@@ -1362,7 +1385,6 @@ export default class ImageControl extends React.Component<
1362
1385
  fixedSize ? fixedSizeClassName : ''
1363
1386
  )}
1364
1387
  >
1365
- <p>{__('File.uploading')}</p>
1366
1388
  <div className={cx('ImageControl-progress')}>
1367
1389
  <span
1368
1390
  style={{
@@ -1375,6 +1397,7 @@ export default class ImageControl extends React.Component<
1375
1397
  )}
1376
1398
  />
1377
1399
  </div>
1400
+ <p>{__('File.uploading')}</p>
1378
1401
  </div>
1379
1402
  </>
1380
1403
  ) : (
@@ -1509,7 +1532,10 @@ export default class ImageControl extends React.Component<
1509
1532
  thumbRatio={thumbRatio}
1510
1533
  />
1511
1534
  ) : (
1512
- <Icon icon="plus" className="icon" />
1535
+ <>
1536
+ <Icon icon="plus" className="icon" />
1537
+ <span>{__('File.upload')}</span>
1538
+ </>
1513
1539
  )}
1514
1540
 
1515
1541
  {isFocused ? (
@@ -30,6 +30,26 @@ export interface TableControlSchema
30
30
  */
31
31
  addable?: boolean;
32
32
 
33
+ /**
34
+ * 可复制新增
35
+ */
36
+ copyable?: boolean;
37
+
38
+ /**
39
+ * 复制按钮文字
40
+ */
41
+ copyBtnLabel?: string;
42
+
43
+ /**
44
+ * 复制按钮图标
45
+ */
46
+ copyBtnIcon?: string;
47
+
48
+ /**
49
+ * 是否显示复制按钮
50
+ */
51
+ copyAddBtn?: boolean;
52
+
33
53
  /**
34
54
  * 是否可以拖拽排序
35
55
  */
@@ -41,12 +61,12 @@ export interface TableControlSchema
41
61
  addApi?: SchemaApi;
42
62
 
43
63
  /**
44
- * 新增按钮
64
+ * 新增按钮文字
45
65
  */
46
66
  addBtnLabel?: string;
47
67
 
48
68
  /**
49
- * 新增图标
69
+ * 新增按钮图标
50
70
  */
51
71
  addBtnIcon?: string;
52
72
 
@@ -73,12 +93,12 @@ export interface TableControlSchema
73
93
  /**
74
94
  * 更新按钮名称
75
95
  */
76
- updateBtnLabel?: string;
96
+ editBtnLabel?: string;
77
97
 
78
98
  /**
79
99
  * 更新按钮图标
80
100
  */
81
- updateBtnIcon?: string;
101
+ editBtnIcon?: string;
82
102
 
83
103
  /**
84
104
  * 确认按钮文字
@@ -172,7 +192,8 @@ export default class FormTable extends React.Component<TableProps, TableState> {
172
192
  placeholder: '空',
173
193
  scaffold: {},
174
194
  addBtnIcon: 'plus',
175
- updateBtnIcon: 'pencil',
195
+ copyBtnIcon: 'copy',
196
+ editBtnIcon: 'pencil',
176
197
  deleteBtnIcon: 'minus',
177
198
  confirmBtnIcon: 'check',
178
199
  cancelBtnIcon: 'close',
@@ -188,6 +209,7 @@ export default class FormTable extends React.Component<TableProps, TableState> {
188
209
  'showAddBtn',
189
210
  'addable',
190
211
  'removable',
212
+ 'copyable',
191
213
  'editable',
192
214
  'addApi',
193
215
  'updateApi',
@@ -423,6 +445,26 @@ export default class FormTable extends React.Component<TableProps, TableState> {
423
445
  return onAction && onAction(action, ctx, ...rest);
424
446
  }
425
447
 
448
+ copyItem(index: number) {
449
+ const {needConfirm} = this.props;
450
+ const items = this.state.items.concat();
451
+
452
+ items.splice(index + 1, 0, items[index]);
453
+ index = Math.min(index + 1, items.length - 1);
454
+ this.setState(
455
+ {
456
+ items
457
+ },
458
+ () => {
459
+ if (needConfirm === false) {
460
+ this.emitValue();
461
+ } else {
462
+ this.startEdit(index, true);
463
+ }
464
+ }
465
+ );
466
+ }
467
+
426
468
  addItem(index: number) {
427
469
  const {needConfirm, scaffold, columns} = this.props;
428
470
  const items = this.state.items.concat();
@@ -653,6 +695,38 @@ export default class FormTable extends React.Component<TableProps, TableState> {
653
695
  });
654
696
  }
655
697
 
698
+ if (props.copyable && props.showCopyBtn !== false) {
699
+ btns.push({
700
+ children: ({
701
+ key,
702
+ rowIndex,
703
+ offset
704
+ }: {
705
+ key: any;
706
+ rowIndex: number;
707
+ offset: number;
708
+ }) =>
709
+ ~this.state.editIndex && needConfirm !== false ? null : (
710
+ <Button
711
+ classPrefix={ns}
712
+ size="sm"
713
+ key={key}
714
+ level="link"
715
+ tooltip={__('Table.copyRow')}
716
+ tooltipContainer={
717
+ env && env.getModalContainer ? env.getModalContainer : undefined
718
+ }
719
+ onClick={this.copyItem.bind(this, rowIndex + offset, undefined)}
720
+ >
721
+ {props.copyBtnLabel ? <span>{props.copyBtnLabel}</span> : null}
722
+ {props.copyBtnIcon ? (
723
+ <Icon icon={props.copyBtnIcon} className="icon" />
724
+ ) : null}
725
+ </Button>
726
+ )
727
+ });
728
+ }
729
+
656
730
  if (props.needConfirm === false) {
657
731
  columns = columns.map(column => {
658
732
  const quickEdit = column.quickEdit;
@@ -716,11 +790,16 @@ export default class FormTable extends React.Component<TableProps, TableState> {
716
790
  }
717
791
  onClick={() => this.startEdit(rowIndex + offset)}
718
792
  >
719
- {props.updateBtnLabel ? (
720
- <span>{props.updateBtnLabel}</span>
793
+ {props.updateBtnLabel || props.editBtnLabel ? (
794
+ <span>{props.updateBtnLabel || props.editBtnLabel}</span>
721
795
  ) : null}
722
- {props.updateBtnIcon ? (
723
- <Icon icon={props.updateBtnIcon} className="icon" />
796
+ {/* 兼容之前的写法 */}
797
+ {typeof props.updateBtnIcon !== 'undefined' ? (
798
+ props.updateBtnIcon ? (
799
+ <Icon icon={props.updateBtnIcon} className="icon" />
800
+ ) : null
801
+ ) : props.editBtnIcon ? (
802
+ <Icon icon={props.editBtnIcon} className="icon" />
724
803
  ) : null}
725
804
  </Button>
726
805
  )
@@ -314,7 +314,7 @@ export interface FormItemProps extends RendererProps {
314
314
  submitOnChange?: boolean,
315
315
  changeImmediately?: boolean
316
316
  ) => void;
317
- onBulkChange: (
317
+ onBulkChange?: (
318
318
  values: {[propName: string]: any},
319
319
  submitOnChange?: boolean
320
320
  ) => void;
@@ -48,6 +48,8 @@ import {
48
48
  SchemaObject,
49
49
  SchemaTokenizeableString
50
50
  } from '../../Schema';
51
+ import isPlainObject from 'lodash/isPlainObject';
52
+ import merge from 'lodash/merge';
51
53
 
52
54
  export {Option};
53
55
 
@@ -270,7 +272,8 @@ export function registerOptionsControl(config: OptionsConfig) {
270
272
  : [];
271
273
  static ComposedComponent = Control;
272
274
 
273
- reaction?: () => void;
275
+ toDispose: Array<() => void> = [];
276
+
274
277
  input: any;
275
278
  mounted = false;
276
279
 
@@ -302,9 +305,18 @@ export function registerOptionsControl(config: OptionsConfig) {
302
305
  data
303
306
  );
304
307
 
305
- this.reaction = reaction(
306
- () => JSON.stringify([formItem.loading, formItem.filteredOptions]),
307
- () => this.mounted && this.forceUpdate()
308
+ this.toDispose.push(
309
+ reaction(
310
+ () => JSON.stringify([formItem.loading, formItem.filteredOptions]),
311
+ () => this.mounted && this.forceUpdate()
312
+ )
313
+ );
314
+
315
+ this.toDispose.push(
316
+ reaction(
317
+ () => JSON.stringify(formItem.options),
318
+ () => this.mounted && this.syncAutoFill(formItem.tmpValue)
319
+ )
308
320
  );
309
321
  // 默认全选。这里会和默认值\回填值逻辑冲突,所以如果有配置source则不执行默认全选
310
322
  if (
@@ -432,14 +444,20 @@ export function registerOptionsControl(config: OptionsConfig) {
432
444
 
433
445
  componentWillUnmount() {
434
446
  this.props.removeHook?.(this.reload, 'init');
435
- this.reaction?.();
447
+ this.toDispose.forEach(fn => fn());
448
+ this.toDispose = [];
436
449
  }
437
450
 
438
451
  syncAutoFill(value: any) {
439
452
  const {autoFill, multiple, onBulkChange, data} = this.props;
440
453
  const formItem = this.props.formItem as IFormItemStore;
441
454
 
442
- if (autoFill && !isEmpty(autoFill) && formItem.filteredOptions.length) {
455
+ if (
456
+ onBulkChange &&
457
+ autoFill &&
458
+ !isEmpty(autoFill) &&
459
+ formItem.filteredOptions.length
460
+ ) {
443
461
  const selectedOptions = formItem.getSelectedOptions(value);
444
462
  const toSync = dataMapping(
445
463
  autoFill,
@@ -471,7 +489,14 @@ export function registerOptionsControl(config: OptionsConfig) {
471
489
  selectedOptions[0]
472
490
  )
473
491
  );
474
- onBulkChange?.(toSync);
492
+
493
+ Object.keys(toSync).forEach(key => {
494
+ if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {
495
+ toSync[key] = merge({}, data[key], toSync[key]);
496
+ }
497
+ });
498
+
499
+ onBulkChange(toSync);
475
500
  }
476
501
  }
477
502
 
@@ -397,14 +397,15 @@ export default class PickerControl extends React.PureComponent<
397
397
  options,
398
398
  multiple,
399
399
  valueField,
400
- embed
400
+ embed,
401
+ source
401
402
  } = this.props;
402
403
 
403
404
  return render('modal-body', this.state.schema, {
404
405
  value: selectedOptions,
405
406
  valueField,
406
407
  primaryField: valueField,
407
- options: options,
408
+ options: source ? [] : options,
408
409
  multiple,
409
410
  onSelect: embed ? this.handleChange : undefined,
410
411
  ref: this.crudRef,
@@ -14,6 +14,9 @@ import {isEffectiveApi} from '../../utils/api';
14
14
  import {isEmpty, createObject, autobind} from '../../utils/helper';
15
15
  import {dataMapping} from '../../utils/tpl-builtin';
16
16
  import {SchemaApi} from '../../Schema';
17
+ import Spinner from '../../components/Spinner';
18
+ import {BaseTransferRenderer, TransferControlSchema} from './Transfer';
19
+ import TransferDropDown from '../../components/TransferDropDown';
17
20
 
18
21
  /**
19
22
  * Select 下拉选择框。
@@ -28,11 +31,6 @@ export interface SelectControlSchema extends FormOptionsControl {
28
31
  */
29
32
  autoComplete?: SchemaApi;
30
33
 
31
- /**
32
- * 是否可以搜索值
33
- */
34
- searchable?: boolean;
35
-
36
34
  /**
37
35
  * 可以自定义菜单展示。
38
36
  */
@@ -42,6 +40,51 @@ export interface SelectControlSchema extends FormOptionsControl {
42
40
  * 边框模式,全边框,还是半边框,或者没边框。
43
41
  */
44
42
  borderMode?: 'full' | 'half' | 'none';
43
+
44
+ /**
45
+ * 勾选展示模式
46
+ */
47
+ selectMode?: 'table' | 'group' | 'tree' | 'chained' | 'associated';
48
+
49
+ /**
50
+ * 当 selectMode 为 associated 时用来定义左侧的选项
51
+ */
52
+ leftOptions?: Array<Option>;
53
+
54
+ /**
55
+ * 当 selectMode 为 associated 时用来定义左侧的选择模式
56
+ */
57
+ leftMode?: 'tree' | 'list';
58
+
59
+ /**
60
+ * 当 selectMode 为 associated 时用来定义右侧的选择模式
61
+ */
62
+ rightMode?: 'table' | 'list' | 'tree' | 'chained';
63
+
64
+ /**
65
+ * 搜索结果展示模式
66
+ */
67
+ searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
68
+
69
+ /**
70
+ * 当 selectMode 为 table 时定义表格列信息。
71
+ */
72
+ columns?: Array<any>;
73
+
74
+ /**
75
+ * 当 searchResultMode 为 table 时定义表格列信息。
76
+ */
77
+ searchResultColumns?: Array<any>;
78
+
79
+ /**
80
+ * 可搜索?
81
+ */
82
+ searchable?: boolean;
83
+
84
+ /**
85
+ * 搜索 API
86
+ */
87
+ searchApi?: SchemaApi;
45
88
  }
46
89
 
47
90
  export interface SelectProps extends OptionsControlProps {
@@ -220,6 +263,18 @@ export default class SelectControl extends React.Component<SelectProps, any> {
220
263
  reload && reload();
221
264
  }
222
265
 
266
+ option2value() {}
267
+
268
+ renderOtherMode() {
269
+ const {selectMode, ...rest} = this.props;
270
+ return (
271
+ <TransferDropdownRenderer
272
+ {...rest}
273
+ selectMode={selectMode === 'group' ? 'list' : selectMode}
274
+ />
275
+ );
276
+ }
277
+
223
278
  render() {
224
279
  let {
225
280
  autoComplete,
@@ -241,6 +296,7 @@ export default class SelectControl extends React.Component<SelectProps, any> {
241
296
  render,
242
297
  menuTpl,
243
298
  borderMode,
299
+ selectMode,
244
300
  ...rest
245
301
  } = this.props;
246
302
 
@@ -250,25 +306,92 @@ export default class SelectControl extends React.Component<SelectProps, any> {
250
306
 
251
307
  return (
252
308
  <div className={cx(`${classPrefix}SelectControl`, className)}>
253
- <Select
254
- {...rest}
255
- borderMode={borderMode}
256
- placeholder={placeholder}
257
- multiple={multiple || multi}
258
- ref={this.inputRef}
309
+ {['table', 'list', 'group', 'tree', 'chained', 'associated'].includes(
310
+ selectMode
311
+ ) ? (
312
+ this.renderOtherMode()
313
+ ) : (
314
+ <Select
315
+ {...rest}
316
+ borderMode={borderMode}
317
+ placeholder={placeholder}
318
+ multiple={multiple || multi}
319
+ ref={this.inputRef}
320
+ value={selectedOptions}
321
+ options={options}
322
+ loadOptions={
323
+ isEffectiveApi(autoComplete) ? this.lazyloadRemote : undefined
324
+ }
325
+ creatable={creatable}
326
+ searchable={searchable || !!autoComplete}
327
+ onChange={this.changeValue}
328
+ loading={loading}
329
+ noResultsText={noResultsText}
330
+ renderMenu={menuTpl ? this.renderMenu : undefined}
331
+ />
332
+ )}
333
+ </div>
334
+ );
335
+ }
336
+ }
337
+
338
+ export interface TransferDropDownProps
339
+ extends OptionsControlProps,
340
+ Omit<
341
+ TransferControlSchema,
342
+ | 'type'
343
+ | 'options'
344
+ | 'inputClassName'
345
+ | 'className'
346
+ | 'descriptionClassName'
347
+ > {}
348
+
349
+ class TransferDropdownRenderer extends BaseTransferRenderer<TransferDropDownProps> {
350
+ render() {
351
+ const {
352
+ className,
353
+ classnames: cx,
354
+ options,
355
+ selectedOptions,
356
+ sortable,
357
+ loading,
358
+ searchable,
359
+ searchResultMode,
360
+ showArrow,
361
+ deferLoad,
362
+ disabled,
363
+ selectTitle,
364
+ selectMode,
365
+ multiple,
366
+ leftMode,
367
+ leftOptions,
368
+ columns
369
+ } = this.props;
370
+
371
+ return (
372
+ <>
373
+ <TransferDropDown
374
+ selectMode={selectMode}
375
+ className={className}
259
376
  value={selectedOptions}
377
+ disabled={disabled}
260
378
  options={options}
261
- loadOptions={
262
- isEffectiveApi(autoComplete) ? this.lazyloadRemote : undefined
263
- }
264
- creatable={creatable}
265
- searchable={searchable || !!autoComplete}
266
- onChange={this.changeValue}
267
- loading={loading}
268
- noResultsText={noResultsText}
269
- renderMenu={menuTpl ? this.renderMenu : undefined}
379
+ onChange={this.handleChange}
380
+ option2value={this.option2value}
381
+ sortable={sortable}
382
+ searchResultMode={searchResultMode}
383
+ onSearch={searchable ? this.handleSearch : undefined}
384
+ showArrow={showArrow}
385
+ onDeferLoad={deferLoad}
386
+ selectTitle={selectTitle}
387
+ multiple={multiple}
388
+ columns={columns}
389
+ leftMode={leftMode}
390
+ leftOptions={leftOptions}
270
391
  />
271
- </div>
392
+
393
+ <Spinner overlay key="info" show={loading} />
394
+ </>
272
395
  );
273
396
  }
274
397
  }
@@ -0,0 +1,123 @@
1
+ import {
2
+ OptionsControlProps,
3
+ OptionsControl,
4
+ FormOptionsControl
5
+ } from './Options';
6
+ import React from 'react';
7
+ import {Api} from '../../types';
8
+ import Spinner from '../../components/Spinner';
9
+ import {BaseTransferRenderer} from './Transfer';
10
+ import TabsTransfer from '../../components/TabsTransfer';
11
+ import {SchemaApi} from '../../Schema';
12
+ import TransferPicker from '../../components/TransferPicker';
13
+ import TabsTransferPicker from '../../components/TabsTransferPicker';
14
+
15
+ /**
16
+ * TabsTransferPicker 穿梭器的弹框形态
17
+ * 文档:https://baidu.gitee.io/amis/docs/components/form/tabs-transfer-picker
18
+ */
19
+ export interface TabsTransferPickerControlSchema extends FormOptionsControl {
20
+ type: 'tabs-transfer-picker';
21
+
22
+ /**
23
+ * 是否显示剪头
24
+ */
25
+ showArrow?: boolean;
26
+
27
+ /**
28
+ * 可排序?
29
+ */
30
+ sortable?: boolean;
31
+
32
+ /**
33
+ * 搜索结果展示模式
34
+ */
35
+ searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
36
+
37
+ /**
38
+ * 可搜索?
39
+ */
40
+ searchable?: boolean;
41
+
42
+ /**
43
+ * 搜索 API
44
+ */
45
+ searchApi?: SchemaApi;
46
+
47
+ /**
48
+ * 左侧的标题文字
49
+ */
50
+ selectTitle?: string;
51
+
52
+ /**
53
+ * 右侧结果的标题文字
54
+ */
55
+ resultTitle?: string;
56
+
57
+ /**
58
+ * 弹窗大小
59
+ */
60
+ pickerSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
61
+ }
62
+
63
+ export interface TabsTransferProps
64
+ extends OptionsControlProps,
65
+ Omit<
66
+ TabsTransferPickerControlSchema,
67
+ | 'type'
68
+ | 'options'
69
+ | 'inputClassName'
70
+ | 'className'
71
+ | 'descriptionClassName'
72
+ > {}
73
+
74
+ @OptionsControl({
75
+ type: 'tabs-transfer-picker'
76
+ })
77
+ export class TabsTransferPickerRenderer extends BaseTransferRenderer<TabsTransferProps> {
78
+ render() {
79
+ const {
80
+ className,
81
+ classnames: cx,
82
+ options,
83
+ selectedOptions,
84
+ sortable,
85
+ loading,
86
+ searchable,
87
+ searchResultMode,
88
+ showArrow,
89
+ deferLoad,
90
+ disabled,
91
+ selectTitle,
92
+ resultTitle,
93
+ pickerSize,
94
+ columns,
95
+ leftMode,
96
+ leftOptions
97
+ } = this.props;
98
+
99
+ return (
100
+ <div className={cx('TabsTransferControl', className)}>
101
+ <TabsTransferPicker
102
+ value={selectedOptions}
103
+ disabled={disabled}
104
+ options={options}
105
+ onChange={this.handleChange}
106
+ option2value={this.option2value}
107
+ sortable={sortable}
108
+ searchResultMode={searchResultMode}
109
+ onSearch={searchable ? this.handleSearch : undefined}
110
+ showArrow={showArrow}
111
+ onDeferLoad={deferLoad}
112
+ selectTitle={selectTitle}
113
+ resultTitle={resultTitle}
114
+ size={pickerSize}
115
+ leftMode={leftMode}
116
+ leftOptions={leftOptions}
117
+ />
118
+
119
+ <Spinner overlay key="info" show={loading} />
120
+ </div>
121
+ );
122
+ }
123
+ }