amis 1.4.2-beta.6 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/lib/Schema.d.ts +11 -3
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/components/Alert2.d.ts +26 -21
  4. package/lib/components/Alert2.js +11 -4
  5. package/lib/components/Alert2.js.map +2 -2
  6. package/lib/components/AnchorNav.d.ts +22 -21
  7. package/lib/components/AnchorNav.js +7 -3
  8. package/lib/components/AnchorNav.js.map +2 -2
  9. package/lib/components/ArrayInput.d.ts +84 -84
  10. package/lib/components/AssociatedSelection.d.ts +930 -0
  11. package/lib/components/AssociatedSelection.js +89 -0
  12. package/lib/components/AssociatedSelection.js.map +13 -0
  13. package/lib/components/Badge.js +2 -2
  14. package/lib/components/Badge.js.map +2 -2
  15. package/lib/components/Button.js +1 -1
  16. package/lib/components/Button.js.map +2 -2
  17. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  18. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  19. package/lib/components/ChainedSelection.js.map +13 -0
  20. package/lib/components/Checkbox.d.ts +20 -20
  21. package/lib/components/Collapse.d.ts +51 -23
  22. package/lib/components/Collapse.js +70 -11
  23. package/lib/components/Collapse.js.map +2 -2
  24. package/lib/components/CollapseGroup.d.ts +88 -0
  25. package/lib/components/CollapseGroup.js +81 -0
  26. package/lib/components/CollapseGroup.js.map +13 -0
  27. package/lib/components/ColorPicker.d.ts +89 -85
  28. package/lib/components/ColorPicker.js +17 -4
  29. package/lib/components/ColorPicker.js.map +2 -2
  30. package/lib/components/DatePicker.d.ts +84 -84
  31. package/lib/components/DateRangePicker.d.ts +84 -84
  32. package/lib/components/Drawer.js +2 -2
  33. package/lib/components/Drawer.js.map +2 -2
  34. package/lib/components/Editor.d.ts +84 -84
  35. package/lib/components/GridNav.d.ts +52 -0
  36. package/lib/components/GridNav.js +123 -0
  37. package/lib/components/GridNav.js.map +13 -0
  38. package/lib/components/GroupedSelection.d.ts +907 -0
  39. package/lib/components/GroupedSelection.js +48 -0
  40. package/lib/components/GroupedSelection.js.map +13 -0
  41. package/lib/components/InputBox.d.ts +22 -21
  42. package/lib/components/InputBox.js +10 -2
  43. package/lib/components/InputBox.js.map +2 -2
  44. package/lib/components/Link.d.ts +29 -36
  45. package/lib/components/Link.js +14 -15
  46. package/lib/components/Link.js.map +2 -2
  47. package/lib/components/ListGroup.d.ts +21 -21
  48. package/lib/components/ModalManager.js +1 -1
  49. package/lib/components/ModalManager.js.map +2 -2
  50. package/lib/components/MonthRangePicker.d.ts +84 -84
  51. package/lib/components/NumberInput.d.ts +20 -20
  52. package/lib/components/Overlay.js +5 -0
  53. package/lib/components/Overlay.js.map +2 -2
  54. package/lib/components/PickerColumn.d.ts +514 -0
  55. package/lib/components/PickerColumn.js +279 -0
  56. package/lib/components/PickerColumn.js.map +13 -0
  57. package/lib/components/PickerContainer.d.ts +513 -0
  58. package/lib/components/PickerContainer.js +96 -0
  59. package/lib/components/PickerContainer.js.map +13 -0
  60. package/lib/components/PopOver.d.ts +1 -0
  61. package/lib/components/PopOver.js +12 -1
  62. package/lib/components/PopOver.js.map +2 -2
  63. package/lib/components/Progress.d.ts +85 -0
  64. package/lib/components/Progress.js +81 -0
  65. package/lib/components/Progress.js.map +13 -0
  66. package/lib/components/Radios.d.ts +22 -21
  67. package/lib/components/Radios.js +1 -0
  68. package/lib/components/Radios.js.map +2 -2
  69. package/lib/components/Rating.d.ts +21 -21
  70. package/lib/components/ResultBox.d.ts +84 -84
  71. package/lib/components/ResultBox.js +10 -2
  72. package/lib/components/ResultBox.js.map +2 -2
  73. package/lib/components/SearchBox.d.ts +84 -84
  74. package/lib/components/Select.d.ts +245 -237
  75. package/lib/components/Select.js +25 -4
  76. package/lib/components/Select.js.map +2 -2
  77. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  78. package/lib/components/Selection.js +134 -0
  79. package/lib/components/Selection.js.map +13 -0
  80. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  81. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  82. package/lib/components/TableSelection.js.map +13 -0
  83. package/lib/components/Tabs.d.ts +20 -20
  84. package/lib/components/TabsTransfer.d.ts +84 -84
  85. package/lib/components/TabsTransfer.js +9 -9
  86. package/lib/components/TabsTransfer.js.map +2 -2
  87. package/lib/components/TabsTransferPicker.d.ts +489 -0
  88. package/lib/components/TabsTransferPicker.js +60 -0
  89. package/lib/components/TabsTransferPicker.js.map +13 -0
  90. package/lib/components/Toast.d.ts +90 -87
  91. package/lib/components/Toast.js +15 -5
  92. package/lib/components/Toast.js.map +2 -2
  93. package/lib/components/Transfer.d.ts +908 -274
  94. package/lib/components/Transfer.js +31 -24
  95. package/lib/components/Transfer.js.map +2 -2
  96. package/lib/components/TransferDropDown.d.ts +488 -0
  97. package/lib/components/TransferDropDown.js +59 -0
  98. package/lib/components/TransferDropDown.js.map +13 -0
  99. package/lib/components/TransferPicker.d.ts +493 -0
  100. package/lib/components/TransferPicker.js +60 -0
  101. package/lib/components/TransferPicker.js.map +13 -0
  102. package/lib/components/Tree.d.ts +115 -84
  103. package/lib/components/Tree.js +183 -30
  104. package/lib/components/Tree.js.map +2 -2
  105. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  106. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  107. package/lib/components/TreeSelection.js.map +13 -0
  108. package/lib/components/condition-builder/Field.js +4 -2
  109. package/lib/components/condition-builder/Field.js.map +2 -2
  110. package/lib/components/condition-builder/Func.js +2 -2
  111. package/lib/components/condition-builder/Func.js.map +2 -2
  112. package/lib/components/condition-builder/InputSwitch.js +2 -2
  113. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  114. package/lib/components/condition-builder/Item.js +3 -3
  115. package/lib/components/condition-builder/Item.js.map +2 -2
  116. package/lib/components/icons.js +10 -0
  117. package/lib/components/icons.js.map +2 -2
  118. package/lib/components/index.d.ts +8 -8
  119. package/lib/components/index.js +16 -16
  120. package/lib/components/index.js.map +2 -2
  121. package/lib/envOverwrite.d.ts +1 -1
  122. package/lib/envOverwrite.js +24 -9
  123. package/lib/envOverwrite.js.map +2 -2
  124. package/lib/factory.d.ts +15 -1
  125. package/lib/factory.js +35 -6
  126. package/lib/factory.js.map +2 -2
  127. package/lib/helper.css.map +1 -1
  128. package/lib/hooks/index.d.ts +5 -0
  129. package/lib/hooks/index.js +14 -0
  130. package/lib/hooks/index.js.map +13 -0
  131. package/lib/hooks/use-set-state.d.ts +2 -0
  132. package/lib/hooks/use-set-state.js +15 -0
  133. package/lib/hooks/use-set-state.js.map +13 -0
  134. package/lib/hooks/use-touch.d.ts +16 -0
  135. package/lib/hooks/use-touch.js +73 -0
  136. package/lib/hooks/use-touch.js.map +13 -0
  137. package/lib/hooks/use-update-effect.d.ts +3 -0
  138. package/lib/hooks/use-update-effect.js +17 -0
  139. package/lib/hooks/use-update-effect.js.map +13 -0
  140. package/lib/icons/alert-danger.js +7 -0
  141. package/lib/icons/alert-info.js +7 -0
  142. package/lib/icons/alert-success.js +7 -0
  143. package/lib/icons/alert-warning.js +7 -0
  144. package/lib/icons/download.js +7 -0
  145. package/lib/icons/drag-bar.js +10 -3
  146. package/lib/index.d.ts +5 -0
  147. package/lib/index.js +6 -1
  148. package/lib/index.js.map +2 -2
  149. package/lib/locale/de-DE.js +2 -0
  150. package/lib/locale/de-DE.js.map +2 -2
  151. package/lib/locale/en-US.js +3 -0
  152. package/lib/locale/en-US.js.map +2 -2
  153. package/lib/locale/zh-CN.js +5 -2
  154. package/lib/locale/zh-CN.js.map +2 -2
  155. package/lib/renderers/Action.d.ts +10 -5
  156. package/lib/renderers/Action.js +23 -5
  157. package/lib/renderers/Action.js.map +2 -2
  158. package/lib/renderers/Alert.d.ts +21 -1
  159. package/lib/renderers/Alert.js.map +2 -2
  160. package/lib/renderers/AnchorNav.d.ts +1 -0
  161. package/lib/renderers/AnchorNav.js +2 -2
  162. package/lib/renderers/AnchorNav.js.map +2 -2
  163. package/lib/renderers/Avatar.js +3 -3
  164. package/lib/renderers/Avatar.js.map +2 -2
  165. package/lib/renderers/Breadcrumb.js +1 -1
  166. package/lib/renderers/Breadcrumb.js.map +2 -2
  167. package/lib/renderers/CRUD.d.ts +5 -0
  168. package/lib/renderers/CRUD.js +25 -4
  169. package/lib/renderers/CRUD.js.map +2 -2
  170. package/lib/renderers/Card.d.ts +5 -0
  171. package/lib/renderers/Card.js +34 -23
  172. package/lib/renderers/Card.js.map +2 -2
  173. package/lib/renderers/Collapse.d.ts +25 -20
  174. package/lib/renderers/Collapse.js +10 -72
  175. package/lib/renderers/Collapse.js.map +2 -2
  176. package/lib/renderers/CollapseGroup.d.ts +42 -0
  177. package/lib/renderers/CollapseGroup.js +33 -0
  178. package/lib/renderers/CollapseGroup.js.map +13 -0
  179. package/lib/renderers/Form/ConditionBuilder.js +2 -2
  180. package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
  181. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  182. package/lib/renderers/Form/Editor.d.ts +3 -2
  183. package/lib/renderers/Form/InputCity.d.ts +84 -84
  184. package/lib/renderers/Form/InputCity.js +7 -6
  185. package/lib/renderers/Form/InputCity.js.map +2 -2
  186. package/lib/renderers/Form/InputColor.d.ts +86 -85
  187. package/lib/renderers/Form/InputColor.js +1 -1
  188. package/lib/renderers/Form/InputColor.js.map +2 -2
  189. package/lib/renderers/Form/InputFile.d.ts +6 -0
  190. package/lib/renderers/Form/InputFile.js +28 -8
  191. package/lib/renderers/Form/InputFile.js.map +2 -2
  192. package/lib/renderers/Form/InputImage.js +11 -4
  193. package/lib/renderers/Form/InputImage.js.map +2 -2
  194. package/lib/renderers/Form/Item.d.ts +1 -1
  195. package/lib/renderers/Form/Item.js +2 -1
  196. package/lib/renderers/Form/Item.js.map +2 -2
  197. package/lib/renderers/Form/Options.js +25 -4
  198. package/lib/renderers/Form/Options.js.map +2 -2
  199. package/lib/renderers/Form/Select.d.ts +42 -4
  200. package/lib/renderers/Form/Select.js +37 -3
  201. package/lib/renderers/Form/Select.js.map +2 -2
  202. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  203. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  204. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  205. package/lib/renderers/Form/Transfer.js +18 -3
  206. package/lib/renderers/Form/Transfer.js.map +2 -2
  207. package/lib/renderers/Form/TransferPicker.d.ts +52 -0
  208. package/lib/renderers/Form/TransferPicker.js +43 -0
  209. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  210. package/lib/renderers/Form/TreeSelect.js +2 -2
  211. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  212. package/lib/renderers/Form/index.d.ts +5 -0
  213. package/lib/renderers/Form/index.js +5 -3
  214. package/lib/renderers/Form/index.js.map +2 -2
  215. package/lib/renderers/Form/wrapControl.js +13 -1
  216. package/lib/renderers/Form/wrapControl.js.map +2 -2
  217. package/lib/renderers/GridNav.d.ts +99 -0
  218. package/lib/renderers/GridNav.js +82 -0
  219. package/lib/renderers/GridNav.js.map +13 -0
  220. package/lib/renderers/IFrame.js +1 -3
  221. package/lib/renderers/IFrame.js.map +2 -2
  222. package/lib/renderers/Image.js +7 -5
  223. package/lib/renderers/Image.js.map +2 -2
  224. package/lib/renderers/Json.d.ts +4 -0
  225. package/lib/renderers/Json.js +4 -13
  226. package/lib/renderers/Json.js.map +2 -2
  227. package/lib/renderers/Link.d.ts +4 -2
  228. package/lib/renderers/Link.js +15 -8
  229. package/lib/renderers/Link.js.map +2 -2
  230. package/lib/renderers/List.js +1 -1
  231. package/lib/renderers/List.js.map +2 -2
  232. package/lib/renderers/Nav.d.ts +21 -21
  233. package/lib/renderers/Nav.js +37 -19
  234. package/lib/renderers/Nav.js.map +2 -2
  235. package/lib/renderers/Page.d.ts +18 -0
  236. package/lib/renderers/Page.js +53 -9
  237. package/lib/renderers/Page.js.map +2 -2
  238. package/lib/renderers/Portlet.d.ts +125 -0
  239. package/lib/renderers/Portlet.js +156 -0
  240. package/lib/renderers/Portlet.js.map +13 -0
  241. package/lib/renderers/Progress.d.ts +23 -3
  242. package/lib/renderers/Progress.js +15 -19
  243. package/lib/renderers/Progress.js.map +2 -2
  244. package/lib/renderers/Property.js +1 -1
  245. package/lib/renderers/Property.js.map +2 -2
  246. package/lib/renderers/Table/ColumnToggler.js +1 -1
  247. package/lib/renderers/Table/ColumnToggler.js.map +2 -2
  248. package/lib/renderers/Table/TableContent.d.ts +4 -1
  249. package/lib/renderers/Table/TableContent.js +21 -1
  250. package/lib/renderers/Table/TableContent.js.map +2 -2
  251. package/lib/renderers/Table/index.d.ts +5 -1
  252. package/lib/renderers/Table/index.js +65 -30
  253. package/lib/renderers/Table/index.js.map +2 -2
  254. package/lib/renderers/Tabs.js +9 -1
  255. package/lib/renderers/Tabs.js.map +2 -2
  256. package/lib/renderers/WebComponent.js +1 -1
  257. package/lib/renderers/WebComponent.js.map +2 -2
  258. package/lib/store/combo.d.ts +2 -2
  259. package/lib/store/form.d.ts +1 -1
  260. package/lib/store/form.js +3 -5
  261. package/lib/store/form.js.map +2 -2
  262. package/lib/store/formItem.js +44 -4
  263. package/lib/store/formItem.js.map +2 -2
  264. package/lib/store/table.d.ts +3 -2
  265. package/lib/store/table.js +35 -12
  266. package/lib/store/table.js.map +2 -2
  267. package/lib/themes/ang-ie11.css +934 -222
  268. package/lib/themes/ang.css +934 -222
  269. package/lib/themes/ang.css.map +1 -1
  270. package/lib/themes/antd-ie11.css +934 -222
  271. package/lib/themes/antd.css +934 -222
  272. package/lib/themes/antd.css.map +1 -1
  273. package/lib/themes/cxd-ie11.css +970 -260
  274. package/lib/themes/cxd.css +970 -260
  275. package/lib/themes/cxd.css.map +1 -1
  276. package/lib/themes/dark-ie11.css +934 -222
  277. package/lib/themes/dark.css +934 -222
  278. package/lib/themes/dark.css.map +1 -1
  279. package/lib/themes/default.css +970 -260
  280. package/lib/themes/default.css.map +1 -1
  281. package/lib/types.d.ts +38 -1
  282. package/lib/types.js +0 -5
  283. package/lib/types.js.map +2 -2
  284. package/lib/utils/api.d.ts +3 -2
  285. package/lib/utils/api.js +90 -17
  286. package/lib/utils/api.js.map +2 -2
  287. package/lib/utils/dom.d.ts +4 -0
  288. package/lib/utils/dom.js +11 -1
  289. package/lib/utils/dom.js.map +2 -2
  290. package/lib/utils/helper.d.ts +12 -23
  291. package/lib/utils/helper.js +62 -166
  292. package/lib/utils/helper.js.map +2 -2
  293. package/lib/utils/tpl-builtin.d.ts +2 -20
  294. package/lib/utils/tpl-builtin.js +25 -743
  295. package/lib/utils/tpl-builtin.js.map +2 -2
  296. package/lib/utils/tpl.js +24 -0
  297. package/lib/utils/tpl.js.map +2 -2
  298. package/package.json +5 -2
  299. package/schema.json +3966 -1263
  300. package/scss/_mixins.scss +1 -3
  301. package/scss/_properties.scss +42 -13
  302. package/scss/base/_common.scss +3 -0
  303. package/scss/base/_normalize.scss +2 -0
  304. package/scss/components/_alert.scss +28 -5
  305. package/scss/components/_anchor-nav.scss +89 -29
  306. package/scss/components/_button.scss +12 -0
  307. package/scss/components/_card.scss +9 -15
  308. package/scss/components/_collapse-group.scss +15 -0
  309. package/scss/components/_collapse.scss +48 -23
  310. package/scss/components/_grid-nav.scss +128 -0
  311. package/scss/components/_images.scss +1 -0
  312. package/scss/components/_input-box.scss +1 -0
  313. package/scss/components/_nav.scss +2 -7
  314. package/scss/components/_page.scss +35 -2
  315. package/scss/components/_picker-columns.scss +124 -0
  316. package/scss/components/_popover.scss +13 -0
  317. package/scss/components/_portlet.scss +51 -0
  318. package/scss/components/_progress.scss +141 -33
  319. package/scss/components/_result-box.scss +1 -0
  320. package/scss/components/_spinner.scss +5 -4
  321. package/scss/components/_status.scss +1 -1
  322. package/scss/components/_table.scss +32 -0
  323. package/scss/components/_toast.scss +41 -11
  324. package/scss/components/form/_checks.scss +0 -351
  325. package/scss/components/form/_color.scss +32 -3
  326. package/scss/components/form/_combo.scss +4 -0
  327. package/scss/components/form/_fieldset.scss +6 -1
  328. package/scss/components/form/_file.scss +11 -0
  329. package/scss/components/form/_form.scss +48 -0
  330. package/scss/components/form/_selection.scss +354 -0
  331. package/scss/components/form/_transfer.scss +76 -18
  332. package/scss/components/form/_tree.scss +42 -0
  333. package/scss/themes/_common.scss +6 -0
  334. package/scss/themes/_cxd-variables.scss +13 -6
  335. package/scss/themes/cxd.scss +19 -20
  336. package/sdk/ang-ie11.css +1065 -246
  337. package/sdk/ang.css +1069 -230
  338. package/sdk/antd-ie11.css +1068 -249
  339. package/sdk/antd.css +1069 -230
  340. package/sdk/charts.js +17 -17
  341. package/sdk/color-picker.js +65 -69
  342. package/sdk/cropperjs.js +3 -3
  343. package/sdk/cxd-ie11.css +1081 -268
  344. package/sdk/cxd.css +1116 -279
  345. package/sdk/dark-ie11.css +1069 -250
  346. package/sdk/dark.css +1069 -230
  347. package/sdk/exceljs.js +1 -1
  348. package/sdk/helper.css.map +1 -1
  349. package/sdk/iconfont.svg +2513 -0
  350. package/sdk/iconfont.ttf +0 -0
  351. package/sdk/iconfont.woff +0 -0
  352. package/sdk/locale/de-DE.js +2 -0
  353. package/sdk/markdown.js +69 -69
  354. package/sdk/papaparse.js +1 -1
  355. package/sdk/renderers/Form/CityDB.js +1 -1
  356. package/sdk/rest.js +20 -28
  357. package/sdk/rich-text.js +62 -62
  358. package/sdk/sdk-ie11.css +1081 -268
  359. package/sdk/sdk.css +1116 -279
  360. package/sdk/sdk.js +1371 -1189
  361. package/sdk/thirds/hls.js/hls.js +18 -18
  362. package/sdk/thirds/mpegts.js/mpegts.js +2 -2
  363. package/sdk/tinymce.js +57 -57
  364. package/src/Schema.ts +19 -1
  365. package/src/components/Alert2.tsx +32 -4
  366. package/src/components/AnchorNav.tsx +15 -4
  367. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +43 -37
  368. package/src/components/Badge.tsx +3 -3
  369. package/src/components/Button.tsx +1 -0
  370. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  371. package/src/components/Collapse.tsx +139 -20
  372. package/src/components/CollapseGroup.tsx +130 -0
  373. package/src/components/ColorPicker.tsx +32 -10
  374. package/src/components/Drawer.tsx +8 -6
  375. package/src/components/GridNav.tsx +233 -0
  376. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  377. package/src/components/InputBox.tsx +10 -9
  378. package/src/components/Link.tsx +28 -37
  379. package/src/components/ModalManager.ts +1 -1
  380. package/src/components/Overlay.tsx +6 -0
  381. package/src/components/PickerColumn.tsx +429 -0
  382. package/src/components/PickerContainer.tsx +128 -0
  383. package/src/components/PopOver.tsx +15 -1
  384. package/src/components/Progress.tsx +140 -0
  385. package/src/components/Radios.tsx +3 -8
  386. package/src/components/ResultBox.tsx +9 -9
  387. package/src/components/Select.tsx +57 -5
  388. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  389. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  390. package/src/components/TabsTransfer.tsx +13 -7
  391. package/src/components/TabsTransferPicker.tsx +85 -0
  392. package/src/components/Toast.tsx +48 -21
  393. package/src/components/Transfer.tsx +71 -50
  394. package/src/components/TransferDropDown.tsx +120 -0
  395. package/src/components/TransferPicker.tsx +91 -0
  396. package/src/components/Tree.tsx +194 -8
  397. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  398. package/src/components/condition-builder/Field.tsx +7 -5
  399. package/src/components/condition-builder/Func.tsx +3 -3
  400. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  401. package/src/components/condition-builder/Item.tsx +5 -12
  402. package/src/components/icons.tsx +10 -0
  403. package/src/components/index.tsx +13 -13
  404. package/src/envOverwrite.ts +20 -8
  405. package/src/factory.tsx +70 -9
  406. package/src/hooks/index.ts +5 -0
  407. package/src/hooks/use-set-state.ts +19 -0
  408. package/src/hooks/use-touch.ts +100 -0
  409. package/src/hooks/use-update-effect.ts +16 -0
  410. package/src/icons/alert-danger.svg +1 -0
  411. package/src/icons/alert-info.svg +1 -0
  412. package/src/icons/alert-success.svg +1 -0
  413. package/src/icons/alert-warning.svg +1 -0
  414. package/src/icons/download.svg +4 -0
  415. package/src/icons/drag-bar.svg +12 -6
  416. package/src/index.tsx +5 -0
  417. package/src/locale/de-DE.ts +2 -0
  418. package/src/locale/en-US.ts +3 -0
  419. package/src/locale/zh-CN.ts +5 -2
  420. package/src/renderers/Action.tsx +58 -3
  421. package/src/renderers/Alert.tsx +31 -1
  422. package/src/renderers/AnchorNav.tsx +4 -0
  423. package/src/renderers/Avatar.tsx +8 -4
  424. package/src/renderers/Breadcrumb.tsx +5 -1
  425. package/src/renderers/CRUD.tsx +29 -3
  426. package/src/renderers/Card.tsx +76 -36
  427. package/src/renderers/Collapse.tsx +70 -115
  428. package/src/renderers/CollapseGroup.tsx +80 -0
  429. package/src/renderers/Form/ConditionBuilder.tsx +2 -2
  430. package/src/renderers/Form/InputCity.tsx +4 -8
  431. package/src/renderers/Form/InputColor.tsx +4 -2
  432. package/src/renderers/Form/InputFile.tsx +65 -24
  433. package/src/renderers/Form/InputImage.tsx +11 -3
  434. package/src/renderers/Form/Item.tsx +3 -2
  435. package/src/renderers/Form/Options.tsx +29 -3
  436. package/src/renderers/Form/Select.tsx +162 -21
  437. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  438. package/src/renderers/Form/Transfer.tsx +19 -4
  439. package/src/renderers/Form/TransferPicker.tsx +145 -0
  440. package/src/renderers/Form/TreeSelect.tsx +25 -0
  441. package/src/renderers/Form/index.tsx +15 -2
  442. package/src/renderers/Form/wrapControl.tsx +26 -1
  443. package/src/renderers/GridNav.tsx +204 -0
  444. package/src/renderers/IFrame.tsx +2 -4
  445. package/src/renderers/Image.tsx +19 -15
  446. package/src/renderers/Json.tsx +9 -9
  447. package/src/renderers/Link.tsx +29 -16
  448. package/src/renderers/List.tsx +1 -1
  449. package/src/renderers/Nav.tsx +105 -56
  450. package/src/renderers/Page.tsx +62 -1
  451. package/src/renderers/Portlet.tsx +423 -0
  452. package/src/renderers/Progress.tsx +56 -38
  453. package/src/renderers/Property.tsx +6 -4
  454. package/src/renderers/Table/ColumnToggler.tsx +1 -1
  455. package/src/renderers/Table/TableContent.tsx +40 -2
  456. package/src/renderers/Table/index.tsx +88 -43
  457. package/src/renderers/Tabs.tsx +9 -1
  458. package/src/renderers/WebComponent.tsx +2 -2
  459. package/src/store/form.ts +3 -9
  460. package/src/store/formItem.ts +94 -2
  461. package/src/store/table.ts +55 -14
  462. package/src/types.ts +58 -1
  463. package/src/utils/api.ts +120 -26
  464. package/src/utils/dom.tsx +12 -0
  465. package/src/utils/helper.ts +55 -185
  466. package/src/utils/tpl-builtin.ts +40 -866
  467. package/src/utils/tpl.ts +33 -0
  468. package/tsconfig-for-declaration.json +1 -1
  469. package/dump.rdb +0 -0
  470. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  471. package/lib/components/AssociatedCheckboxes.js +0 -90
  472. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  473. package/lib/components/ChainedCheckboxes.js.map +0 -13
  474. package/lib/components/Checkboxes.js +0 -101
  475. package/lib/components/Checkboxes.js.map +0 -13
  476. package/lib/components/ListCheckboxes.d.ts +0 -739
  477. package/lib/components/ListCheckboxes.js +0 -48
  478. package/lib/components/ListCheckboxes.js.map +0 -13
  479. package/lib/components/ListRadios.d.ts +0 -763
  480. package/lib/components/ListRadios.js +0 -86
  481. package/lib/components/ListRadios.js.map +0 -13
  482. package/lib/components/TableCheckboxes.js.map +0 -13
  483. package/lib/components/TreeCheckboxes.js.map +0 -13
  484. package/lib/components/TreeRadios.d.ts +0 -838
  485. package/lib/components/TreeRadios.js +0 -116
  486. package/lib/components/TreeRadios.js.map +0 -13
  487. package/src/components/ListRadios.tsx +0 -159
  488. package/src/components/TreeRadios.tsx +0 -202
package/src/Schema.ts CHANGED
@@ -12,6 +12,7 @@ import {FormSchema} from './renderers/Form';
12
12
  import {CarouselSchema} from './renderers/Carousel';
13
13
  import {ChartSchema} from './renderers/Chart';
14
14
  import {CollapseSchema} from './renderers/Collapse';
15
+ import {CollapseGroupSchema} from './renderers/CollapseGroup';
15
16
  import {ColorSchema} from './renderers/Color';
16
17
  import {ContainerSchema} from './renderers/Container';
17
18
  import {CRUDSchema} from './renderers/CRUD';
@@ -39,6 +40,7 @@ import {QRCodeSchema} from './renderers/QRCode';
39
40
  import {ServiceSchema} from './renderers/Service';
40
41
  import {StatusSchema} from './renderers/Status';
41
42
  import {TabsSchema} from './renderers/Tabs';
43
+ import {PortletSchema} from './renderers/Portlet';
42
44
  import {TasksSchema} from './renderers/Tasks';
43
45
  import {VBoxSchema} from './renderers/VBox';
44
46
  import {VideoSchema} from './renderers/Video';
@@ -109,6 +111,8 @@ import {TransferControlSchema} from './renderers/Form/Transfer';
109
111
  import {TreeSelectControlSchema} from './renderers/Form/TreeSelect';
110
112
  import {UUIDControlSchema} from './renderers/Form/UUID';
111
113
  import {FormControlSchema} from './renderers/Form/Control';
114
+ import {TransferPickerControlSchema} from './renderers/Form/TransferPicker';
115
+ import {TabsTransferPickerControlSchema} from './renderers/Form/TabsTransferPicker';
112
116
 
113
117
  // 每加个类型,这补充一下。
114
118
  export type SchemaType =
@@ -128,6 +132,7 @@ export type SchemaType =
128
132
  | 'carousel'
129
133
  | 'chart'
130
134
  | 'collapse'
135
+ | 'collapse-group'
131
136
  | 'color'
132
137
  | 'container'
133
138
  | 'crud'
@@ -308,9 +313,13 @@ export type SchemaType =
308
313
  | 'multi-select'
309
314
  | 'textarea'
310
315
  | 'transfer'
316
+ | 'transfer-picker'
317
+ | 'tabs-transfer-picker'
311
318
  | 'input-tree'
312
319
  | 'tree-select'
313
320
  | 'table-view'
321
+ | 'portlet'
322
+ | 'grid-nav'
314
323
 
315
324
  // 原生 input 类型
316
325
  | 'native-date'
@@ -333,6 +342,7 @@ export type SchemaObject =
333
342
  | CarouselSchema
334
343
  | ChartSchema
335
344
  | CollapseSchema
345
+ | CollapseGroupSchema
336
346
  | ColorSchema
337
347
  | ContainerSchema
338
348
  | CRUDSchema
@@ -375,6 +385,7 @@ export type SchemaObject =
375
385
  | FormSchema
376
386
  | AnchorNavSchema
377
387
  | StepsSchema
388
+ | PortletSchema
378
389
 
379
390
  // 表单项
380
391
  | FormControlSchema
@@ -429,6 +440,8 @@ export type SchemaObject =
429
440
  | TextControlSchema
430
441
  | TextareaControlSchema
431
442
  | TransferControlSchema
443
+ | TransferPickerControlSchema
444
+ | TabsTransferPickerControlSchema
432
445
  | TreeControlSchema
433
446
  | TreeSelectControlSchema;
434
447
 
@@ -478,7 +491,7 @@ export interface SchemaApiObject {
478
491
  /**
479
492
  * API 发送类型
480
493
  */
481
- method?: 'get' | 'post' | 'put' | 'delete' | 'patch';
494
+ method?: 'get' | 'post' | 'put' | 'delete' | 'patch' | 'jsonp';
482
495
 
483
496
  /**
484
497
  * API 发送目标地址
@@ -723,6 +736,11 @@ export interface BaseSchema {
723
736
  * 是否显示表达式
724
737
  */
725
738
  visibleOn?: SchemaExpression;
739
+
740
+ /**
741
+ * 是否使用移动端交互
742
+ */
743
+ useMobileUI?: boolean;
726
744
  }
727
745
 
728
746
  export interface Option {
@@ -9,8 +9,13 @@ import {Icon} from './icons';
9
9
 
10
10
  export interface AlertProps {
11
11
  level: 'danger' | 'info' | 'success' | 'warning';
12
- className: string;
12
+ title?: string;
13
+ className?: string;
13
14
  showCloseButton: boolean;
15
+ showIcon?: boolean;
16
+ icon?: string | React.ReactNode;
17
+ iconClassName?: string;
18
+ closeButtonClassName?: string;
14
19
  onClose?: () => void;
15
20
  classnames: ClassNamesFn;
16
21
  classPrefix: string;
@@ -60,21 +65,44 @@ export class Alert extends React.Component<AlertProps, AlertState> {
60
65
  className,
61
66
  level,
62
67
  children,
63
- showCloseButton
68
+ showCloseButton,
69
+ title,
70
+ icon,
71
+ showIcon,
72
+ iconClassName,
73
+ closeButtonClassName
64
74
  } = this.props;
65
75
 
76
+ const iconNode = icon ? (
77
+ typeof icon === 'string' ? (
78
+ <Icon icon={icon} className={cx(`Alert-icon icon`)} />
79
+ ) : React.isValidElement(icon) ? (
80
+ React.cloneElement(icon, {
81
+ className: cx(`Alert-icon`, icon.props?.className)
82
+ })
83
+ ) : null
84
+ ) : showIcon ? (
85
+ <Icon icon={`alert-${level}`} className={cx(`Alert-icon icon`)} />
86
+ ) : null;
87
+
66
88
  return this.state.show ? (
67
89
  <div className={cx('Alert', level ? `Alert--${level}` : '', className)}>
90
+ {showIcon && iconNode ? (
91
+ <div className={cx('Alert-icon', iconClassName)}>{iconNode}</div>
92
+ ) : null}
93
+ <div className={cx('Alert-content')}>
94
+ {title ? <div className={cx('Alert-title')}>{title}</div> : null}
95
+ <div className={cx('Alert-desc')}>{children}</div>
96
+ </div>
68
97
  {showCloseButton ? (
69
98
  <button
70
- className={cx('Alert-close')}
99
+ className={cx('Alert-close', closeButtonClassName)}
71
100
  onClick={this.handleClick}
72
101
  type="button"
73
102
  >
74
103
  <Icon icon="close" className="icon" />
75
104
  </button>
76
105
  ) : null}
77
- {children}
78
106
  </div>
79
107
  ) : null;
80
108
  }
@@ -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,12 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
107
104
  value,
108
105
  disabled,
109
106
  leftMode,
110
- cellRender
107
+ cellRender,
108
+ multiple,
109
+ onDeferLoad
111
110
  } = this.props;
112
111
 
113
- const selectdOption = ListRadios.resolveSelected(
112
+ const selectdOption = BaseSelection.resolveSelected(
114
113
  this.state.leftValue,
115
114
  options,
116
115
  (option: Option) => option.ref
@@ -118,36 +117,39 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
118
117
  const __ = this.props.translate;
119
118
 
120
119
  return (
121
- <div className={cx('AssociatedCheckboxes', className)}>
122
- <div className={cx('AssociatedCheckboxes-left')}>
120
+ <div className={cx('AssociatedSelection', className)}>
121
+ <div className={cx('AssociatedSelection-left')}>
123
122
  {leftMode === 'tree' ? (
124
- <TreeRadios
123
+ <TreeSelection
125
124
  option2value={this.leftOption2Value}
126
125
  options={leftOptions}
127
126
  value={this.state.leftValue}
128
127
  disabled={disabled}
129
128
  onChange={this.handleLeftSelect}
130
- showRadio={false}
129
+ multiple={false}
130
+ clearable={false}
131
+ onDeferLoad={onDeferLoad}
131
132
  />
132
133
  ) : (
133
- <ListRadios
134
+ <GroupedSelecton
134
135
  option2value={this.leftOption2Value}
135
136
  options={leftOptions}
136
137
  value={this.state.leftValue}
137
138
  disabled={disabled}
138
139
  onChange={this.handleLeftSelect}
139
- showRadio={false}
140
+ multiple={false}
141
+ clearable={false}
140
142
  />
141
143
  )}
142
144
  </div>
143
- <div className={cx('AssociatedCheckboxes-right')}>
145
+ <div className={cx('AssociatedSelection-right')}>
144
146
  {this.state.leftValue ? (
145
147
  selectdOption ? (
146
148
  selectdOption.defer && !selectdOption.loaded ? (
147
- <div className={cx('AssociatedCheckboxes-box')}>
149
+ <div className={cx('AssociatedSelection-box')}>
148
150
  <div
149
151
  className={cx(
150
- 'AssociatedCheckboxes-reload',
152
+ 'AssociatedSelection-reload',
151
153
  selectdOption.loading ? 'is-spin' : 'is-clickable'
152
154
  )}
153
155
  onClick={
@@ -166,7 +168,7 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
166
168
  )}
167
169
  </div>
168
170
  ) : rightMode === 'table' ? (
169
- <TableCheckboxes
171
+ <TableSelection
170
172
  columns={columns!}
171
173
  value={value}
172
174
  disabled={disabled}
@@ -174,39 +176,43 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
174
176
  onChange={onChange}
175
177
  option2value={option2value}
176
178
  cellRender={cellRender}
179
+ multiple={multiple}
177
180
  />
178
181
  ) : rightMode === 'tree' ? (
179
- <TreeCheckboxes
182
+ <TreeSelection
180
183
  value={value}
181
184
  disabled={disabled}
182
185
  options={selectdOption.children || []}
183
186
  onChange={onChange}
184
187
  option2value={option2value}
188
+ multiple={multiple}
185
189
  />
186
190
  ) : rightMode === 'chained' ? (
187
- <ChainedCheckboxes
191
+ <ChainedSelection
188
192
  value={value}
189
193
  disabled={disabled}
190
194
  options={selectdOption.children || []}
191
195
  onChange={onChange}
192
196
  option2value={option2value}
197
+ multiple={multiple}
193
198
  />
194
199
  ) : (
195
- <ListCheckboxes
200
+ <GroupedSelection
196
201
  value={value}
197
202
  disabled={disabled}
198
203
  options={selectdOption.children || []}
199
204
  onChange={onChange}
200
205
  option2value={option2value}
206
+ multiple={multiple}
201
207
  />
202
208
  )
203
209
  ) : (
204
- <div className={cx('AssociatedCheckboxes-box')}>
210
+ <div className={cx('AssociatedSelection-box')}>
205
211
  {__('Transfer.configError')}
206
212
  </div>
207
213
  )
208
214
  ) : (
209
- <div className={cx('AssociatedCheckboxes-box')}>
215
+ <div className={cx('AssociatedSelection-box')}>
210
216
  {__('Transfer.selectFromLeft')}
211
217
  </div>
212
218
  )}
@@ -218,7 +224,7 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
218
224
 
219
225
  export default themeable(
220
226
  localeable(
221
- uncontrollable(AssociatedCheckboxes, {
227
+ uncontrollable(AssociatedSelection, {
222
228
  value: 'onChange'
223
229
  })
224
230
  )
@@ -6,7 +6,7 @@ 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
  /**
@@ -92,7 +92,7 @@ export class Badge extends React.Component<BadgeProps, object> {
92
92
  let {mode = 'dot', level = 'danger', style} = badge as BadgeSchema;
93
93
 
94
94
  if (typeof level === 'string' && level[0] === '$') {
95
- level = resolveVariable(level, data);
95
+ level = resolveVariableAndFilter(level, data);
96
96
  }
97
97
 
98
98
  switch (mode) {
@@ -174,7 +174,7 @@ export class Badge extends React.Component<BadgeProps, object> {
174
174
  }
175
175
 
176
176
  if (typeof text === 'string' && text[0] === '$') {
177
- text = resolveVariable(text, data);
177
+ text = resolveVariableAndFilter(text, data);
178
178
  }
179
179
 
180
180
  // 设置默认值
@@ -82,6 +82,7 @@ export class Button extends React.Component<ButtonProps> {
82
82
  <Comp
83
83
  type={Comp === 'input' || Comp === 'button' ? type : undefined}
84
84
  {...pickEventsProps(rest)}
85
+ onClick={rest.onClick && disabled ? () => {} : rest.onClick}
85
86
  href={href}
86
87
  className={cx(
87
88
  overrideClassName
@@ -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
  )