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
package/src/Schema.ts CHANGED
@@ -39,6 +39,7 @@ import {QRCodeSchema} from './renderers/QRCode';
39
39
  import {ServiceSchema} from './renderers/Service';
40
40
  import {StatusSchema} from './renderers/Status';
41
41
  import {TabsSchema} from './renderers/Tabs';
42
+ import {PortletSchema} from './renderers/Portlet';
42
43
  import {TasksSchema} from './renderers/Tasks';
43
44
  import {VBoxSchema} from './renderers/VBox';
44
45
  import {VideoSchema} from './renderers/Video';
@@ -109,6 +110,8 @@ import {TransferControlSchema} from './renderers/Form/Transfer';
109
110
  import {TreeSelectControlSchema} from './renderers/Form/TreeSelect';
110
111
  import {UUIDControlSchema} from './renderers/Form/UUID';
111
112
  import {FormControlSchema} from './renderers/Form/Control';
113
+ import {TransferPickerControlSchema} from './renderers/Form/TransferPicker';
114
+ import {TabsTransferPickerControlSchema} from './renderers/Form/TabsTransferPicker';
112
115
 
113
116
  // 每加个类型,这补充一下。
114
117
  export type SchemaType =
@@ -308,9 +311,12 @@ export type SchemaType =
308
311
  | 'multi-select'
309
312
  | 'textarea'
310
313
  | 'transfer'
314
+ | 'transfer-picker'
315
+ | 'tabs-transfer-picker'
311
316
  | 'input-tree'
312
317
  | 'tree-select'
313
318
  | 'table-view'
319
+ | 'portlet'
314
320
 
315
321
  // 原生 input 类型
316
322
  | 'native-date'
@@ -375,6 +381,7 @@ export type SchemaObject =
375
381
  | FormSchema
376
382
  | AnchorNavSchema
377
383
  | StepsSchema
384
+ | PortletSchema
378
385
 
379
386
  // 表单项
380
387
  | FormControlSchema
@@ -429,6 +436,8 @@ export type SchemaObject =
429
436
  | TextControlSchema
430
437
  | TextareaControlSchema
431
438
  | TransferControlSchema
439
+ | TransferPickerControlSchema
440
+ | TabsTransferPickerControlSchema
432
441
  | TreeControlSchema
433
442
  | TreeSelectControlSchema;
434
443
 
@@ -492,6 +501,24 @@ export interface SchemaApiObject {
492
501
  [propName: string]: any;
493
502
  };
494
503
 
504
+ /**
505
+ * 默认数据映射中的key如果带点,或者带大括号,会转成对象比如:
506
+ *
507
+ * {
508
+ * 'a.b': '123'
509
+ * }
510
+ *
511
+ * 经过数据映射后变成
512
+ * {
513
+ * a: {
514
+ * b: '123
515
+ * }
516
+ * }
517
+ *
518
+ * 如果想要关闭此功能,请设置 convertKeyToPath 为 false
519
+ */
520
+ convertKeyToPath?: boolean;
521
+
495
522
  /**
496
523
  * 用来做接口返回的数据映射。
497
524
  */
@@ -705,6 +732,11 @@ export interface BaseSchema {
705
732
  * 是否显示表达式
706
733
  */
707
734
  visibleOn?: SchemaExpression;
735
+
736
+ /**
737
+ * 是否使用移动端交互
738
+ */
739
+ useMobileUI?: boolean;
708
740
  }
709
741
 
710
742
  export interface Option {
@@ -113,7 +113,9 @@ export class Alert extends React.Component<AlertProps, AlertState> {
113
113
 
114
114
  this.setState(
115
115
  {
116
- show: false
116
+ show: false,
117
+ prompt: false,
118
+ confirm: false
117
119
  },
118
120
  isConfirm ? () => this._resolve(confirmed) /*this._reject()*/ : undefined
119
121
  );
@@ -46,6 +46,7 @@ export interface AnchorNavProps extends ThemeProps {
46
46
  props?: AnchorNavProps
47
47
  ) => JSX.Element; // 锚点区域渲染器
48
48
  onSelect?: (key: string | number) => void; // 选中回调方法
49
+ direction?: 'vertical' | 'horizontal'; // 导航方向
49
50
  }
50
51
 
51
52
  export interface AnchorNavState {
@@ -56,10 +57,11 @@ export interface AnchorNavState {
56
57
  export class AnchorNav extends React.Component<AnchorNavProps, AnchorNavState> {
57
58
  static defaultProps: Pick<
58
59
  AnchorNavProps,
59
- 'linkClassName' | 'sectionClassName'
60
+ 'linkClassName' | 'sectionClassName' | 'direction'
60
61
  > = {
61
62
  linkClassName: '',
62
- sectionClassName: ''
63
+ sectionClassName: '',
64
+ direction: 'vertical'
63
65
  };
64
66
 
65
67
  // 滚动区域DOM
@@ -214,7 +216,8 @@ export class AnchorNav extends React.Component<AnchorNavProps, AnchorNavState> {
214
216
  className,
215
217
  linkClassName,
216
218
  sectionClassName,
217
- children
219
+ children,
220
+ direction
218
221
  } = this.props;
219
222
 
220
223
  if (!Array.isArray(children)) {
@@ -222,7 +225,15 @@ export class AnchorNav extends React.Component<AnchorNavProps, AnchorNavState> {
222
225
  }
223
226
 
224
227
  return (
225
- <div className={cx(`AnchorNav`, className)}>
228
+ <div
229
+ className={cx(
230
+ 'AnchorNav',
231
+ {
232
+ [`AnchorNav--${direction}`]: direction
233
+ },
234
+ className
235
+ )}
236
+ >
226
237
  <ul
227
238
  className={cx('AnchorNav-link-wrap', linkClassName)}
228
239
  role="anchorlist"
@@ -5,27 +5,24 @@
5
5
  */
6
6
 
7
7
  import React from 'react';
8
- import {BaseCheckboxesProps, BaseCheckboxes} from './Checkboxes';
8
+ import {BaseSelectionProps, BaseSelection} from './Selection';
9
9
  import {Options, Option} from './Select';
10
- import ListMenu from './ListMenu';
11
10
  import {autobind} from '../utils/helper';
12
- import ListRadios from './ListRadios';
13
11
  import {themeable} from '../theme';
14
12
  import {uncontrollable} from 'uncontrollable';
15
- import ListCheckboxes from './ListCheckboxes';
16
- import TableCheckboxes from './TableCheckboxes';
17
- import TreeCheckboxes from './TreeCheckboxes';
18
- import ChainedCheckboxes from './ChainedCheckboxes';
19
- import Spinner from './Spinner';
20
- import TreeRadios from './TreeRadios';
13
+ import GroupedSelection from './GroupedSelection';
14
+ import TableSelection from './TableSelection';
15
+ import TreeSelection from './TreeSelection';
16
+ import GroupedSelecton from './GroupedSelection';
17
+ import ChainedSelection from './ChainedSelection';
21
18
  import {Icon} from './icons';
22
19
  import {localeable} from '../locale';
23
20
 
24
- export interface AssociatedCheckboxesProps extends BaseCheckboxesProps {
21
+ export interface AssociatedSelectionProps extends BaseSelectionProps {
25
22
  leftOptions: Options;
26
23
  leftDefaultValue?: any;
27
- leftMode?: 'tree' | 'list';
28
- rightMode?: 'table' | 'list' | 'tree' | 'chained';
24
+ leftMode?: 'tree' | 'list' | 'group';
25
+ rightMode?: 'table' | 'list' | 'group' | 'tree' | 'chained';
29
26
  columns?: Array<any>;
30
27
  cellRender?: (
31
28
  column: {
@@ -39,15 +36,15 @@ export interface AssociatedCheckboxesProps extends BaseCheckboxesProps {
39
36
  ) => JSX.Element;
40
37
  }
41
38
 
42
- export interface AssociatedCheckboxesState {
39
+ export interface AssociatedSelectionState {
43
40
  leftValue?: Option;
44
41
  }
45
42
 
46
- export class AssociatedCheckboxes extends BaseCheckboxes<
47
- AssociatedCheckboxesProps,
48
- AssociatedCheckboxesState
43
+ export class AssociatedSelection extends BaseSelection<
44
+ AssociatedSelectionProps,
45
+ AssociatedSelectionState
49
46
  > {
50
- state: AssociatedCheckboxesState = {
47
+ state: AssociatedSelectionState = {
51
48
  leftValue: this.props.leftDefaultValue
52
49
  };
53
50
 
@@ -56,7 +53,7 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
56
53
  const {options, onDeferLoad} = this.props;
57
54
 
58
55
  if (leftValue) {
59
- const selectdOption = ListRadios.resolveSelected(
56
+ const selectdOption = BaseSelection.resolveSelected(
60
57
  leftValue,
61
58
  options,
62
59
  (option: Option) => option.ref
@@ -78,7 +75,7 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
78
75
  const {options, onDeferLoad} = this.props;
79
76
  this.setState({leftValue: value});
80
77
 
81
- const selectdOption = ListRadios.resolveSelected(
78
+ const selectdOption = BaseSelection.resolveSelected(
82
79
  value,
83
80
  options,
84
81
  (option: Option) => option.ref
@@ -107,10 +104,11 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
107
104
  value,
108
105
  disabled,
109
106
  leftMode,
110
- cellRender
107
+ cellRender,
108
+ multiple
111
109
  } = this.props;
112
110
 
113
- const selectdOption = ListRadios.resolveSelected(
111
+ const selectdOption = BaseSelection.resolveSelected(
114
112
  this.state.leftValue,
115
113
  options,
116
114
  (option: Option) => option.ref
@@ -118,36 +116,38 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
118
116
  const __ = this.props.translate;
119
117
 
120
118
  return (
121
- <div className={cx('AssociatedCheckboxes', className)}>
122
- <div className={cx('AssociatedCheckboxes-left')}>
119
+ <div className={cx('AssociatedSelection', className)}>
120
+ <div className={cx('AssociatedSelection-left')}>
123
121
  {leftMode === 'tree' ? (
124
- <TreeRadios
122
+ <TreeSelection
125
123
  option2value={this.leftOption2Value}
126
124
  options={leftOptions}
127
125
  value={this.state.leftValue}
128
126
  disabled={disabled}
129
127
  onChange={this.handleLeftSelect}
130
- showRadio={false}
128
+ multiple={false}
129
+ clearable={false}
131
130
  />
132
131
  ) : (
133
- <ListRadios
132
+ <GroupedSelecton
134
133
  option2value={this.leftOption2Value}
135
134
  options={leftOptions}
136
135
  value={this.state.leftValue}
137
136
  disabled={disabled}
138
137
  onChange={this.handleLeftSelect}
139
- showRadio={false}
138
+ multiple={false}
139
+ clearable={false}
140
140
  />
141
141
  )}
142
142
  </div>
143
- <div className={cx('AssociatedCheckboxes-right')}>
143
+ <div className={cx('AssociatedSelection-right')}>
144
144
  {this.state.leftValue ? (
145
145
  selectdOption ? (
146
146
  selectdOption.defer && !selectdOption.loaded ? (
147
- <div className={cx('AssociatedCheckboxes-box')}>
147
+ <div className={cx('AssociatedSelection-box')}>
148
148
  <div
149
149
  className={cx(
150
- 'AssociatedCheckboxes-reload',
150
+ 'AssociatedSelection-reload',
151
151
  selectdOption.loading ? 'is-spin' : 'is-clickable'
152
152
  )}
153
153
  onClick={
@@ -166,7 +166,7 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
166
166
  )}
167
167
  </div>
168
168
  ) : rightMode === 'table' ? (
169
- <TableCheckboxes
169
+ <TableSelection
170
170
  columns={columns!}
171
171
  value={value}
172
172
  disabled={disabled}
@@ -174,39 +174,43 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
174
174
  onChange={onChange}
175
175
  option2value={option2value}
176
176
  cellRender={cellRender}
177
+ multiple={multiple}
177
178
  />
178
179
  ) : rightMode === 'tree' ? (
179
- <TreeCheckboxes
180
+ <TreeSelection
180
181
  value={value}
181
182
  disabled={disabled}
182
183
  options={selectdOption.children || []}
183
184
  onChange={onChange}
184
185
  option2value={option2value}
186
+ multiple={multiple}
185
187
  />
186
188
  ) : rightMode === 'chained' ? (
187
- <ChainedCheckboxes
189
+ <ChainedSelection
188
190
  value={value}
189
191
  disabled={disabled}
190
192
  options={selectdOption.children || []}
191
193
  onChange={onChange}
192
194
  option2value={option2value}
195
+ multiple={multiple}
193
196
  />
194
197
  ) : (
195
- <ListCheckboxes
198
+ <GroupedSelection
196
199
  value={value}
197
200
  disabled={disabled}
198
201
  options={selectdOption.children || []}
199
202
  onChange={onChange}
200
203
  option2value={option2value}
204
+ multiple={multiple}
201
205
  />
202
206
  )
203
207
  ) : (
204
- <div className={cx('AssociatedCheckboxes-box')}>
208
+ <div className={cx('AssociatedSelection-box')}>
205
209
  {__('Transfer.configError')}
206
210
  </div>
207
211
  )
208
212
  ) : (
209
- <div className={cx('AssociatedCheckboxes-box')}>
213
+ <div className={cx('AssociatedSelection-box')}>
210
214
  {__('Transfer.selectFromLeft')}
211
215
  </div>
212
216
  )}
@@ -218,7 +222,7 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
218
222
 
219
223
  export default themeable(
220
224
  localeable(
221
- uncontrollable(AssociatedCheckboxes, {
225
+ uncontrollable(AssociatedSelection, {
222
226
  value: 'onChange'
223
227
  })
224
228
  )
@@ -6,14 +6,14 @@ import React from 'react';
6
6
  import hoistNonReactStatic from 'hoist-non-react-statics';
7
7
  import {BaseSchema, SchemaExpression} from '../Schema';
8
8
  import {evalExpression} from '../utils/tpl';
9
- import {resolveVariable} from '../utils/tpl-builtin';
9
+ import {resolveVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';
10
10
  import {ClassNamesFn} from '../theme';
11
11
 
12
12
  /**
13
13
  * Badge 角标。
14
14
  * 文档:https://baidu.gitee.io/amis/docs/components/badge
15
15
  */
16
- export interface BadgeSchema extends BaseSchema {
16
+ export interface BadgeSchema extends Omit<BaseSchema, 'type'> {
17
17
  /**
18
18
  * 文本内容
19
19
  */
@@ -64,7 +64,7 @@ export interface BadgeSchema extends BaseSchema {
64
64
  /**
65
65
  * 提示类型
66
66
  */
67
- level?: 'info' | 'warning' | 'success' | 'danger';
67
+ level?: 'info' | 'warning' | 'success' | 'danger' | SchemaExpression;
68
68
  }
69
69
 
70
70
  export interface BadgeProps {
@@ -88,13 +88,14 @@ export class Badge extends React.Component<BadgeProps, object> {
88
88
  sizeStyle: any,
89
89
  animationElement: any
90
90
  ) {
91
- const {classnames: cx, badge} = this.props;
92
- const {
93
- mode = 'dot',
94
- level = 'danger',
95
- style
96
- } = badge as BadgeSchema;
97
- switch(mode) {
91
+ const {classnames: cx, badge, data} = this.props;
92
+ let {mode = 'dot', level = 'danger', style} = badge as BadgeSchema;
93
+
94
+ if (typeof level === 'string' && level[0] === '$') {
95
+ level = resolveVariableAndFilter(level, data);
96
+ }
97
+
98
+ switch (mode) {
98
99
  case 'dot':
99
100
  return (
100
101
  <span
@@ -107,7 +108,11 @@ export class Badge extends React.Component<BadgeProps, object> {
107
108
  case 'text':
108
109
  return (
109
110
  <span
110
- className={cx('Badge-text', `Badge--${position}`, `Badge--${level}`)}
111
+ className={cx(
112
+ 'Badge-text',
113
+ `Badge--${position}`,
114
+ `Badge--${level}`
115
+ )}
111
116
  style={{...offsetStyle, ...sizeStyle, ...style}}
112
117
  >
113
118
  {text}
@@ -122,14 +127,17 @@ export class Badge extends React.Component<BadgeProps, object> {
122
127
  style={{width: outSize, height: outSize}}
123
128
  >
124
129
  <span
125
- className={cx('Badge-ribbon', `Badge-ribbon--${position}`, `Badge--${level}`)}
130
+ className={cx(
131
+ 'Badge-ribbon',
132
+ `Badge-ribbon--${position}`,
133
+ `Badge--${level}`
134
+ )}
126
135
  style={{...sizeStyle, ...style}}
127
136
  >
128
137
  {text}
129
138
  {animationElement}
130
139
  </span>
131
140
  </div>
132
-
133
141
  );
134
142
  default:
135
143
  return null;
@@ -150,6 +158,7 @@ export class Badge extends React.Component<BadgeProps, object> {
150
158
  let {
151
159
  mode = 'dot',
152
160
  text,
161
+ level,
153
162
  size,
154
163
  style,
155
164
  offset,
@@ -165,14 +174,14 @@ export class Badge extends React.Component<BadgeProps, object> {
165
174
  }
166
175
 
167
176
  if (typeof text === 'string' && text[0] === '$') {
168
- text = resolveVariable(text, data);
177
+ text = resolveVariableAndFilter(text, data);
169
178
  }
170
179
 
171
180
  // 设置默认值
172
181
  if (typeof size === 'undefined') {
173
182
  if (mode === 'dot') {
174
183
  size = 6;
175
- } else if (mode === 'ribbon'){
184
+ } else if (mode === 'ribbon') {
176
185
  size = 12;
177
186
  } else {
178
187
  size = 16;
@@ -189,7 +198,9 @@ export class Badge extends React.Component<BadgeProps, object> {
189
198
  // 当text、overflowCount都为number类型时,进行封顶值处理
190
199
  if (typeof text === 'number' && typeof overflowCount === 'number') {
191
200
  text = (
192
- (text as number) > (overflowCount as number) ? `${overflowCount}+` : text
201
+ (text as number) > (overflowCount as number)
202
+ ? `${overflowCount}+`
203
+ : text
193
204
  ) as string | number;
194
205
  }
195
206
 
@@ -217,7 +228,7 @@ export class Badge extends React.Component<BadgeProps, object> {
217
228
  const left = `calc(50% + ${parseInt(offset[0] as string, 10)}px)`;
218
229
  const right = `calc(-50% + ${parseInt(offset[1] as string, 10)}px)`;
219
230
  offsetStyle = {
220
- transform: `translate(${left}, ${right})`,
231
+ transform: `translate(${left}, ${right})`
221
232
  };
222
233
  }
223
234
 
@@ -245,15 +256,16 @@ export class Badge extends React.Component<BadgeProps, object> {
245
256
  return (
246
257
  <div className={cx('Badge', className)}>
247
258
  {children}
248
- {isDisplay ?
249
- this.renderBadge(
250
- text,
251
- size,
252
- position,
253
- offsetStyle,
254
- sizeStyle,
255
- animationElement
256
- ) : null}
259
+ {isDisplay
260
+ ? this.renderBadge(
261
+ text,
262
+ size,
263
+ position,
264
+ offsetStyle,
265
+ sizeStyle,
266
+ animationElement
267
+ )
268
+ : null}
257
269
  </div>
258
270
  );
259
271
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * 级联多选框,支持无限极。从左侧到右侧一层层点选。
3
3
  */
4
- import {BaseCheckboxes, BaseCheckboxesProps} from './Checkboxes';
4
+ import {BaseSelection, BaseSelectionProps} from './Selection';
5
5
  import {themeable} from '../theme';
6
6
  import React from 'react';
7
7
  import {uncontrollable} from 'uncontrollable';
@@ -12,20 +12,20 @@ import times from 'lodash/times';
12
12
  import Spinner from './Spinner';
13
13
  import {localeable} from '../locale';
14
14
 
15
- export interface ChainedCheckboxesProps extends BaseCheckboxesProps {
15
+ export interface ChainedSelectionProps extends BaseSelectionProps {
16
16
  defaultSelectedIndex?: string;
17
17
  }
18
18
 
19
- export interface ChainedCheckboxesState {
19
+ export interface ChainedSelectionState {
20
20
  selected: Array<string>;
21
21
  }
22
22
 
23
- export class ChainedCheckboxes extends BaseCheckboxes<
24
- ChainedCheckboxesProps,
25
- ChainedCheckboxesState
23
+ export class ChainedSelection extends BaseSelection<
24
+ ChainedSelectionProps,
25
+ ChainedSelectionState
26
26
  > {
27
27
  valueArray: Array<Option>;
28
- state: ChainedCheckboxesState = {
28
+ state: ChainedSelectionState = {
29
29
  selected: []
30
30
  };
31
31
 
@@ -54,6 +54,46 @@ export class ChainedCheckboxes extends BaseCheckboxes<
54
54
  );
55
55
  }
56
56
 
57
+ renderItem(option: Option, index: number, depth: number, id: string) {
58
+ const {
59
+ labelClassName,
60
+ disabled,
61
+ classnames: cx,
62
+ itemClassName,
63
+ itemRender,
64
+ multiple
65
+ } = this.props;
66
+ const valueArray = this.valueArray;
67
+
68
+ return (
69
+ <div
70
+ key={index}
71
+ className={cx(
72
+ 'ChainedSelection-item',
73
+ itemClassName,
74
+ option.className,
75
+ disabled || option.disabled ? 'is-disabled' : '',
76
+ !!~valueArray.indexOf(option) ? 'is-active' : ''
77
+ )}
78
+ onClick={() => this.toggleOption(option)}
79
+ >
80
+ <div className={cx('ChainedSelection-itemLabel')}>
81
+ {itemRender(option)}
82
+ </div>
83
+
84
+ {multiple ? (
85
+ <Checkbox
86
+ size="sm"
87
+ checked={!!~valueArray.indexOf(option)}
88
+ disabled={disabled || option.disabled}
89
+ labelClassName={labelClassName}
90
+ description={option.description}
91
+ />
92
+ ) : null}
93
+ </div>
94
+ );
95
+ }
96
+
57
97
  renderOption(option: Option, index: number, depth: number, id: string) {
58
98
  const {
59
99
  labelClassName,
@@ -69,7 +109,7 @@ export class ChainedCheckboxes extends BaseCheckboxes<
69
109
  <div
70
110
  key={index}
71
111
  className={cx(
72
- 'ChainedCheckboxes-item',
112
+ 'ChainedSelection-item',
73
113
  itemClassName,
74
114
  option.className,
75
115
  disabled || option.disabled ? 'is-disabled' : '',
@@ -77,7 +117,7 @@ export class ChainedCheckboxes extends BaseCheckboxes<
77
117
  )}
78
118
  onClick={() => this.selectOption(option, depth, id)}
79
119
  >
80
- <div className={cx('ChainedCheckboxes-itemLabel')}>
120
+ <div className={cx('ChainedSelection-itemLabel')}>
81
121
  {itemRender(option)}
82
122
  </div>
83
123
 
@@ -86,30 +126,7 @@ export class ChainedCheckboxes extends BaseCheckboxes<
86
126
  );
87
127
  }
88
128
 
89
- return (
90
- <div
91
- key={index}
92
- className={cx(
93
- 'ChainedCheckboxes-item',
94
- itemClassName,
95
- option.className,
96
- disabled || option.disabled ? 'is-disabled' : ''
97
- )}
98
- onClick={() => this.toggleOption(option)}
99
- >
100
- <div className={cx('ChainedCheckboxes-itemLabel')}>
101
- {itemRender(option)}
102
- </div>
103
-
104
- <Checkbox
105
- size="sm"
106
- checked={!!~valueArray.indexOf(option)}
107
- disabled={disabled || option.disabled}
108
- labelClassName={labelClassName}
109
- description={option.description}
110
- />
111
- </div>
112
- );
129
+ return this.renderItem(option, index, depth, id);
113
130
  }
114
131
 
115
132
  render() {
@@ -124,7 +141,7 @@ export class ChainedCheckboxes extends BaseCheckboxes<
124
141
  translate: __
125
142
  } = this.props;
126
143
 
127
- this.valueArray = BaseCheckboxes.value2array(value, options, option2value);
144
+ this.valueArray = BaseSelection.value2array(value, options, option2value);
128
145
  let body: Array<React.ReactNode> = [];
129
146
 
130
147
  if (Array.isArray(options) && options.length) {
@@ -156,9 +173,9 @@ export class ChainedCheckboxes extends BaseCheckboxes<
156
173
  let nextIndexes = indexes;
157
174
 
158
175
  body.push(
159
- <div key={depth} className={cx('ChainedCheckboxes-col')}>
176
+ <div key={depth} className={cx('ChainedSelection-col')}>
160
177
  {subTitle ? (
161
- <div className={cx('ChainedCheckboxes-subTitle')}>
178
+ <div className={cx('ChainedSelection-subTitle')}>
162
179
  {subTitle}
163
180
  </div>
164
181
  ) : null}
@@ -176,7 +193,7 @@ export class ChainedCheckboxes extends BaseCheckboxes<
176
193
  return this.renderOption(option, index, depth, id);
177
194
  })
178
195
  ) : (
179
- <div className={cx('ChainedCheckboxes-placeholder')}>
196
+ <div className={cx('ChainedSelection-placeholder')}>
180
197
  {__(placeholder)}
181
198
  </div>
182
199
  )}
@@ -201,11 +218,11 @@ export class ChainedCheckboxes extends BaseCheckboxes<
201
218
  }
202
219
 
203
220
  return (
204
- <div className={cx('ChainedCheckboxes', className)}>
221
+ <div className={cx('ChainedSelection', className)}>
205
222
  {body && body.length ? (
206
223
  body
207
224
  ) : (
208
- <div className={cx('ChainedCheckboxes-placeholder')}>
225
+ <div className={cx('ChainedSelection-placeholder')}>
209
226
  {__(placeholder)}
210
227
  </div>
211
228
  )}
@@ -216,7 +233,7 @@ export class ChainedCheckboxes extends BaseCheckboxes<
216
233
 
217
234
  export default themeable(
218
235
  localeable(
219
- uncontrollable(ChainedCheckboxes, {
236
+ uncontrollable(ChainedSelection, {
220
237
  value: 'onChange'
221
238
  })
222
239
  )