amis 1.4.2-beta.1 → 1.4.2-beta.15

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 (449) hide show
  1. package/lib/Schema.d.ts +11 -3
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/components/AnchorNav.d.ts +22 -21
  4. package/lib/components/AnchorNav.js +7 -3
  5. package/lib/components/AnchorNav.js.map +2 -2
  6. package/lib/components/ArrayInput.d.ts +84 -84
  7. package/lib/components/AssociatedSelection.d.ts +930 -0
  8. package/lib/components/AssociatedSelection.js +89 -0
  9. package/lib/components/AssociatedSelection.js.map +13 -0
  10. package/lib/components/Badge.js +2 -2
  11. package/lib/components/Badge.js.map +2 -2
  12. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  13. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  14. package/lib/components/ChainedSelection.js.map +13 -0
  15. package/lib/components/Checkbox.d.ts +20 -20
  16. package/lib/components/Collapse.d.ts +51 -23
  17. package/lib/components/Collapse.js +69 -11
  18. package/lib/components/Collapse.js.map +2 -2
  19. package/lib/components/CollapseGroup.d.ts +88 -0
  20. package/lib/components/CollapseGroup.js +81 -0
  21. package/lib/components/CollapseGroup.js.map +13 -0
  22. package/lib/components/ColorPicker.d.ts +84 -84
  23. package/lib/components/DatePicker.d.ts +84 -84
  24. package/lib/components/DateRangePicker.d.ts +84 -84
  25. package/lib/components/Editor.d.ts +84 -84
  26. package/lib/components/GridNav.d.ts +52 -0
  27. package/lib/components/GridNav.js +123 -0
  28. package/lib/components/GridNav.js.map +13 -0
  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 +10 -2
  34. package/lib/components/InputBox.js.map +2 -2
  35. package/lib/components/Link.d.ts +29 -36
  36. package/lib/components/Link.js +14 -15
  37. package/lib/components/Link.js.map +2 -2
  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/NumberInput.d.ts +20 -20
  43. package/lib/components/PickerColumn.d.ts +514 -0
  44. package/lib/components/PickerColumn.js +279 -0
  45. package/lib/components/PickerColumn.js.map +13 -0
  46. package/lib/components/PickerContainer.d.ts +513 -0
  47. package/lib/components/PickerContainer.js +96 -0
  48. package/lib/components/PickerContainer.js.map +13 -0
  49. package/lib/components/Radios.d.ts +22 -21
  50. package/lib/components/Radios.js +1 -0
  51. package/lib/components/Radios.js.map +2 -2
  52. package/lib/components/Rating.d.ts +21 -21
  53. package/lib/components/ResultBox.d.ts +84 -84
  54. package/lib/components/ResultBox.js +10 -2
  55. package/lib/components/ResultBox.js.map +2 -2
  56. package/lib/components/SearchBox.d.ts +84 -84
  57. package/lib/components/SearchBox.js +4 -4
  58. package/lib/components/SearchBox.js.map +2 -2
  59. package/lib/components/Select.d.ts +245 -237
  60. package/lib/components/Select.js +25 -4
  61. package/lib/components/Select.js.map +2 -2
  62. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  63. package/lib/components/Selection.js +134 -0
  64. package/lib/components/Selection.js.map +13 -0
  65. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  66. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  67. package/lib/components/TableSelection.js.map +13 -0
  68. package/lib/components/Tabs.d.ts +20 -20
  69. package/lib/components/TabsTransfer.d.ts +84 -84
  70. package/lib/components/TabsTransfer.js +9 -9
  71. package/lib/components/TabsTransfer.js.map +2 -2
  72. package/lib/components/TabsTransferPicker.d.ts +489 -0
  73. package/lib/components/TabsTransferPicker.js +60 -0
  74. package/lib/components/TabsTransferPicker.js.map +13 -0
  75. package/lib/components/Toast.d.ts +86 -85
  76. package/lib/components/Toast.js +6 -3
  77. package/lib/components/Toast.js.map +2 -2
  78. package/lib/components/Transfer.d.ts +908 -274
  79. package/lib/components/Transfer.js +31 -24
  80. package/lib/components/Transfer.js.map +2 -2
  81. package/lib/components/TransferDropDown.d.ts +488 -0
  82. package/lib/components/TransferDropDown.js +59 -0
  83. package/lib/components/TransferDropDown.js.map +13 -0
  84. package/lib/components/TransferPicker.d.ts +493 -0
  85. package/lib/components/TransferPicker.js +60 -0
  86. package/lib/components/TransferPicker.js.map +13 -0
  87. package/lib/components/Tree.d.ts +115 -84
  88. package/lib/components/Tree.js +183 -30
  89. package/lib/components/Tree.js.map +2 -2
  90. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  91. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  92. package/lib/components/TreeSelection.js.map +13 -0
  93. package/lib/components/WithRemoteConfig.js +1 -1
  94. package/lib/components/WithRemoteConfig.js.map +2 -2
  95. package/lib/components/condition-builder/Field.js +5 -2
  96. package/lib/components/condition-builder/Field.js.map +2 -2
  97. package/lib/components/condition-builder/Func.js +2 -2
  98. package/lib/components/condition-builder/Func.js.map +2 -2
  99. package/lib/components/condition-builder/InputSwitch.js +2 -2
  100. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  101. package/lib/components/condition-builder/Item.js +3 -3
  102. package/lib/components/condition-builder/Item.js.map +2 -2
  103. package/lib/components/icons.js +2 -0
  104. package/lib/components/icons.js.map +2 -2
  105. package/lib/components/index.d.ts +8 -8
  106. package/lib/components/index.js +16 -16
  107. package/lib/components/index.js.map +2 -2
  108. package/lib/envOverwrite.d.ts +1 -1
  109. package/lib/envOverwrite.js +24 -9
  110. package/lib/envOverwrite.js.map +2 -2
  111. package/lib/factory.d.ts +15 -1
  112. package/lib/factory.js +35 -6
  113. package/lib/factory.js.map +2 -2
  114. package/lib/helper.css.map +1 -1
  115. package/lib/hooks/index.d.ts +5 -0
  116. package/lib/hooks/index.js +14 -0
  117. package/lib/hooks/index.js.map +13 -0
  118. package/lib/hooks/use-set-state.d.ts +2 -0
  119. package/lib/hooks/use-set-state.js +15 -0
  120. package/lib/hooks/use-set-state.js.map +13 -0
  121. package/lib/hooks/use-touch.d.ts +16 -0
  122. package/lib/hooks/use-touch.js +73 -0
  123. package/lib/hooks/use-touch.js.map +13 -0
  124. package/lib/hooks/use-update-effect.d.ts +3 -0
  125. package/lib/hooks/use-update-effect.js +17 -0
  126. package/lib/hooks/use-update-effect.js.map +13 -0
  127. package/lib/icons/download.js +7 -0
  128. package/lib/icons/drag-bar.js +10 -3
  129. package/lib/index.d.ts +5 -0
  130. package/lib/index.js +6 -1
  131. package/lib/index.js.map +2 -2
  132. package/lib/locale/de-DE.js +2 -0
  133. package/lib/locale/de-DE.js.map +2 -2
  134. package/lib/locale/en-US.js +3 -0
  135. package/lib/locale/en-US.js.map +2 -2
  136. package/lib/locale/zh-CN.js +5 -2
  137. package/lib/locale/zh-CN.js.map +2 -2
  138. package/lib/renderers/Action.d.ts +4 -3
  139. package/lib/renderers/Action.js +17 -4
  140. package/lib/renderers/Action.js.map +2 -2
  141. package/lib/renderers/AnchorNav.d.ts +1 -0
  142. package/lib/renderers/AnchorNav.js +2 -2
  143. package/lib/renderers/AnchorNav.js.map +2 -2
  144. package/lib/renderers/Avatar.js +3 -3
  145. package/lib/renderers/Avatar.js.map +2 -2
  146. package/lib/renderers/Breadcrumb.js +1 -1
  147. package/lib/renderers/Breadcrumb.js.map +2 -2
  148. package/lib/renderers/CRUD.d.ts +9 -0
  149. package/lib/renderers/CRUD.js +24 -4
  150. package/lib/renderers/CRUD.js.map +2 -2
  151. package/lib/renderers/Card.d.ts +4 -0
  152. package/lib/renderers/Card.js +29 -23
  153. package/lib/renderers/Card.js.map +2 -2
  154. package/lib/renderers/Chart.js +1 -1
  155. package/lib/renderers/Chart.js.map +2 -2
  156. package/lib/renderers/Collapse.d.ts +25 -20
  157. package/lib/renderers/Collapse.js +10 -72
  158. package/lib/renderers/Collapse.js.map +2 -2
  159. package/lib/renderers/CollapseGroup.d.ts +42 -0
  160. package/lib/renderers/CollapseGroup.js +33 -0
  161. package/lib/renderers/CollapseGroup.js.map +13 -0
  162. package/lib/renderers/DropDownButton.js +1 -1
  163. package/lib/renderers/DropDownButton.js.map +2 -2
  164. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  165. package/lib/renderers/Form/Editor.d.ts +3 -2
  166. package/lib/renderers/Form/InputCity.d.ts +84 -84
  167. package/lib/renderers/Form/InputCity.js +7 -6
  168. package/lib/renderers/Form/InputCity.js.map +2 -2
  169. package/lib/renderers/Form/InputColor.d.ts +84 -84
  170. package/lib/renderers/Form/InputFile.d.ts +6 -0
  171. package/lib/renderers/Form/InputFile.js +28 -8
  172. package/lib/renderers/Form/InputFile.js.map +2 -2
  173. package/lib/renderers/Form/InputImage.js +11 -4
  174. package/lib/renderers/Form/InputImage.js.map +2 -2
  175. package/lib/renderers/Form/Item.d.ts +1 -1
  176. package/lib/renderers/Form/Item.js +2 -1
  177. package/lib/renderers/Form/Item.js.map +2 -2
  178. package/lib/renderers/Form/Options.js +13 -3
  179. package/lib/renderers/Form/Options.js.map +2 -2
  180. package/lib/renderers/Form/Select.d.ts +42 -4
  181. package/lib/renderers/Form/Select.js +37 -3
  182. package/lib/renderers/Form/Select.js.map +2 -2
  183. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  184. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  185. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  186. package/lib/renderers/Form/Transfer.js +18 -3
  187. package/lib/renderers/Form/Transfer.js.map +2 -2
  188. package/lib/renderers/Form/TransferPicker.d.ts +52 -0
  189. package/lib/renderers/Form/TransferPicker.js +43 -0
  190. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  191. package/lib/renderers/Form/TreeSelect.js +2 -2
  192. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  193. package/lib/renderers/Form/index.d.ts +5 -0
  194. package/lib/renderers/Form/index.js +5 -3
  195. package/lib/renderers/Form/index.js.map +2 -2
  196. package/lib/renderers/Form/wrapControl.js +13 -1
  197. package/lib/renderers/Form/wrapControl.js.map +2 -2
  198. package/lib/renderers/GridNav.d.ts +99 -0
  199. package/lib/renderers/GridNav.js +82 -0
  200. package/lib/renderers/GridNav.js.map +13 -0
  201. package/lib/renderers/IFrame.js +1 -3
  202. package/lib/renderers/IFrame.js.map +2 -2
  203. package/lib/renderers/Json.d.ts +4 -0
  204. package/lib/renderers/Json.js +4 -13
  205. package/lib/renderers/Json.js.map +2 -2
  206. package/lib/renderers/Link.d.ts +4 -2
  207. package/lib/renderers/Link.js +15 -6
  208. package/lib/renderers/Link.js.map +2 -2
  209. package/lib/renderers/List.js +1 -1
  210. package/lib/renderers/List.js.map +2 -2
  211. package/lib/renderers/Mapping.d.ts +9 -2
  212. package/lib/renderers/Mapping.js +18 -6
  213. package/lib/renderers/Mapping.js.map +2 -2
  214. package/lib/renderers/Nav.d.ts +21 -21
  215. package/lib/renderers/Nav.js +39 -21
  216. package/lib/renderers/Nav.js.map +2 -2
  217. package/lib/renderers/Portlet.d.ts +125 -0
  218. package/lib/renderers/Portlet.js +156 -0
  219. package/lib/renderers/Portlet.js.map +13 -0
  220. package/lib/renderers/Property.js +2 -1
  221. package/lib/renderers/Property.js.map +2 -2
  222. package/lib/renderers/SearchBox.d.ts +6 -1
  223. package/lib/renderers/SearchBox.js +19 -5
  224. package/lib/renderers/SearchBox.js.map +2 -2
  225. package/lib/renderers/Table/TableContent.d.ts +4 -1
  226. package/lib/renderers/Table/TableContent.js +21 -1
  227. package/lib/renderers/Table/TableContent.js.map +2 -2
  228. package/lib/renderers/Table/index.d.ts +5 -1
  229. package/lib/renderers/Table/index.js +65 -30
  230. package/lib/renderers/Table/index.js.map +2 -2
  231. package/lib/renderers/Tabs.js +9 -1
  232. package/lib/renderers/Tabs.js.map +2 -2
  233. package/lib/renderers/WebComponent.js +1 -1
  234. package/lib/renderers/WebComponent.js.map +2 -2
  235. package/lib/store/combo.d.ts +2 -16
  236. package/lib/store/crud.js +3 -7
  237. package/lib/store/crud.js.map +2 -2
  238. package/lib/store/form.d.ts +1 -1
  239. package/lib/store/form.js +5 -6
  240. package/lib/store/form.js.map +2 -2
  241. package/lib/store/formItem.js +44 -4
  242. package/lib/store/formItem.js.map +2 -2
  243. package/lib/store/service.js +5 -4
  244. package/lib/store/service.js.map +2 -2
  245. package/lib/store/table.d.ts +3 -2
  246. package/lib/store/table.js +35 -12
  247. package/lib/store/table.js.map +2 -2
  248. package/lib/themes/ang-ie11.css +689 -175
  249. package/lib/themes/ang.css +689 -175
  250. package/lib/themes/ang.css.map +1 -1
  251. package/lib/themes/antd-ie11.css +689 -175
  252. package/lib/themes/antd.css +689 -175
  253. package/lib/themes/antd.css.map +1 -1
  254. package/lib/themes/cxd-ie11.css +728 -213
  255. package/lib/themes/cxd.css +728 -213
  256. package/lib/themes/cxd.css.map +1 -1
  257. package/lib/themes/dark-ie11.css +689 -175
  258. package/lib/themes/dark.css +689 -175
  259. package/lib/themes/dark.css.map +1 -1
  260. package/lib/themes/default.css +728 -213
  261. package/lib/themes/default.css.map +1 -1
  262. package/lib/types.d.ts +38 -1
  263. package/lib/types.js +0 -5
  264. package/lib/types.js.map +2 -2
  265. package/lib/utils/api.d.ts +4 -2
  266. package/lib/utils/api.js +104 -17
  267. package/lib/utils/api.js.map +2 -2
  268. package/lib/utils/dom.d.ts +4 -0
  269. package/lib/utils/dom.js +11 -1
  270. package/lib/utils/dom.js.map +2 -2
  271. package/lib/utils/helper.d.ts +8 -0
  272. package/lib/utils/helper.js +28 -2
  273. package/lib/utils/helper.js.map +2 -2
  274. package/lib/utils/icon.js +3 -0
  275. package/lib/utils/icon.js.map +2 -2
  276. package/package.json +1 -1
  277. package/schema.json +3326 -836
  278. package/scss/_mixins.scss +1 -3
  279. package/scss/_properties.scss +25 -1
  280. package/scss/base/_common.scss +3 -0
  281. package/scss/base/_normalize.scss +2 -0
  282. package/scss/components/_anchor-nav.scss +89 -29
  283. package/scss/components/_card.scss +8 -14
  284. package/scss/components/_collapse-group.scss +11 -0
  285. package/scss/components/_collapse.scss +48 -22
  286. package/scss/components/_grid-nav.scss +128 -0
  287. package/scss/components/_input-box.scss +1 -0
  288. package/scss/components/_mapping.scss +6 -0
  289. package/scss/components/_nav.scss +2 -2
  290. package/scss/components/_picker-columns.scss +124 -0
  291. package/scss/components/_popover.scss +13 -0
  292. package/scss/components/_portlet.scss +51 -0
  293. package/scss/components/_result-box.scss +1 -0
  294. package/scss/components/_spinner.scss +5 -4
  295. package/scss/components/_status.scss +1 -1
  296. package/scss/components/_table.scss +32 -0
  297. package/scss/components/form/_checks.scss +0 -351
  298. package/scss/components/form/_combo.scss +4 -0
  299. package/scss/components/form/_fieldset.scss +5 -1
  300. package/scss/components/form/_file.scss +11 -0
  301. package/scss/components/form/_form.scss +48 -0
  302. package/scss/components/form/_selection.scss +354 -0
  303. package/scss/components/form/_transfer.scss +75 -18
  304. package/scss/components/form/_tree.scss +42 -0
  305. package/scss/themes/_common.scss +7 -0
  306. package/scss/themes/_cxd-variables.scss +8 -6
  307. package/scss/themes/cxd.scss +17 -12
  308. package/sdk/ang-ie11.css +786 -196
  309. package/sdk/ang.css +820 -213
  310. package/sdk/antd-ie11.css +786 -196
  311. package/sdk/antd.css +820 -213
  312. package/sdk/charts.js +13 -13
  313. package/sdk/color-picker.js +65 -69
  314. package/sdk/cropperjs.js +2 -2
  315. package/sdk/cxd-ie11.css +825 -236
  316. package/sdk/cxd.css +862 -254
  317. package/sdk/dark-ie11.css +787 -197
  318. package/sdk/dark.css +820 -213
  319. package/sdk/exceljs.js +1 -1
  320. package/sdk/helper.css.map +1 -1
  321. package/sdk/iconfont.svg +2513 -0
  322. package/sdk/iconfont.ttf +0 -0
  323. package/sdk/iconfont.woff +0 -0
  324. package/sdk/locale/de-DE.js +2 -0
  325. package/sdk/markdown.js +69 -69
  326. package/sdk/papaparse.js +1 -1
  327. package/sdk/renderers/Form/CityDB.js +1 -1
  328. package/sdk/rest.js +20 -28
  329. package/sdk/rich-text.js +62 -62
  330. package/sdk/sdk-ie11.css +825 -236
  331. package/sdk/sdk.css +862 -254
  332. package/sdk/sdk.js +1243 -1175
  333. package/sdk/thirds/hls.js/hls.js +1 -1
  334. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  335. package/sdk/tinymce.js +57 -57
  336. package/src/Schema.ts +19 -1
  337. package/src/components/AnchorNav.tsx +15 -4
  338. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +43 -37
  339. package/src/components/Badge.tsx +3 -3
  340. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  341. package/src/components/Collapse.tsx +144 -20
  342. package/src/components/CollapseGroup.tsx +130 -0
  343. package/src/components/GridNav.tsx +233 -0
  344. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  345. package/src/components/InputBox.tsx +10 -9
  346. package/src/components/Link.tsx +28 -37
  347. package/src/components/ModalManager.ts +1 -1
  348. package/src/components/PickerColumn.tsx +429 -0
  349. package/src/components/PickerContainer.tsx +128 -0
  350. package/src/components/Radios.tsx +3 -8
  351. package/src/components/ResultBox.tsx +9 -9
  352. package/src/components/SearchBox.tsx +4 -5
  353. package/src/components/Select.tsx +57 -5
  354. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  355. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  356. package/src/components/TabsTransfer.tsx +13 -7
  357. package/src/components/TabsTransferPicker.tsx +85 -0
  358. package/src/components/Toast.tsx +23 -16
  359. package/src/components/Transfer.tsx +71 -50
  360. package/src/components/TransferDropDown.tsx +120 -0
  361. package/src/components/TransferPicker.tsx +91 -0
  362. package/src/components/Tree.tsx +194 -8
  363. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  364. package/src/components/WithRemoteConfig.tsx +7 -2
  365. package/src/components/condition-builder/Field.tsx +5 -5
  366. package/src/components/condition-builder/Func.tsx +3 -3
  367. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  368. package/src/components/condition-builder/Item.tsx +5 -12
  369. package/src/components/icons.tsx +2 -0
  370. package/src/components/index.tsx +13 -13
  371. package/src/envOverwrite.ts +20 -8
  372. package/src/factory.tsx +70 -9
  373. package/src/hooks/index.ts +5 -0
  374. package/src/hooks/use-set-state.ts +19 -0
  375. package/src/hooks/use-touch.ts +100 -0
  376. package/src/hooks/use-update-effect.ts +16 -0
  377. package/src/icons/download.svg +4 -0
  378. package/src/icons/drag-bar.svg +12 -6
  379. package/src/index.tsx +5 -0
  380. package/src/locale/de-DE.ts +2 -0
  381. package/src/locale/en-US.ts +3 -0
  382. package/src/locale/zh-CN.ts +5 -2
  383. package/src/renderers/Action.tsx +28 -2
  384. package/src/renderers/AnchorNav.tsx +4 -0
  385. package/src/renderers/Avatar.tsx +8 -4
  386. package/src/renderers/Breadcrumb.tsx +5 -1
  387. package/src/renderers/CRUD.tsx +33 -3
  388. package/src/renderers/Card.tsx +63 -34
  389. package/src/renderers/Chart.tsx +6 -2
  390. package/src/renderers/Collapse.tsx +70 -115
  391. package/src/renderers/CollapseGroup.tsx +80 -0
  392. package/src/renderers/DropDownButton.tsx +1 -1
  393. package/src/renderers/Form/InputCity.tsx +4 -8
  394. package/src/renderers/Form/InputFile.tsx +65 -24
  395. package/src/renderers/Form/InputImage.tsx +11 -3
  396. package/src/renderers/Form/Item.tsx +3 -2
  397. package/src/renderers/Form/Options.tsx +16 -2
  398. package/src/renderers/Form/Select.tsx +162 -21
  399. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  400. package/src/renderers/Form/Transfer.tsx +19 -4
  401. package/src/renderers/Form/TransferPicker.tsx +145 -0
  402. package/src/renderers/Form/TreeSelect.tsx +25 -0
  403. package/src/renderers/Form/index.tsx +15 -2
  404. package/src/renderers/Form/wrapControl.tsx +26 -1
  405. package/src/renderers/GridNav.tsx +204 -0
  406. package/src/renderers/IFrame.tsx +2 -4
  407. package/src/renderers/Json.tsx +9 -9
  408. package/src/renderers/Link.tsx +27 -13
  409. package/src/renderers/List.tsx +1 -1
  410. package/src/renderers/Mapping.tsx +27 -11
  411. package/src/renderers/Nav.tsx +108 -60
  412. package/src/renderers/Portlet.tsx +423 -0
  413. package/src/renderers/Property.tsx +3 -2
  414. package/src/renderers/SearchBox.tsx +23 -4
  415. package/src/renderers/Table/TableContent.tsx +40 -2
  416. package/src/renderers/Table/index.tsx +88 -43
  417. package/src/renderers/Tabs.tsx +9 -1
  418. package/src/renderers/WebComponent.tsx +2 -2
  419. package/src/store/crud.ts +3 -8
  420. package/src/store/form.ts +5 -10
  421. package/src/store/formItem.ts +94 -2
  422. package/src/store/service.ts +5 -4
  423. package/src/store/table.ts +55 -14
  424. package/src/types.ts +58 -1
  425. package/src/utils/api.ts +133 -26
  426. package/src/utils/dom.tsx +12 -0
  427. package/src/utils/helper.ts +27 -0
  428. package/src/utils/icon.tsx +4 -0
  429. package/tsconfig-for-declaration.json +1 -1
  430. package/dump.rdb +0 -0
  431. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  432. package/lib/components/AssociatedCheckboxes.js +0 -90
  433. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  434. package/lib/components/ChainedCheckboxes.js.map +0 -13
  435. package/lib/components/Checkboxes.js +0 -101
  436. package/lib/components/Checkboxes.js.map +0 -13
  437. package/lib/components/ListCheckboxes.d.ts +0 -739
  438. package/lib/components/ListCheckboxes.js +0 -48
  439. package/lib/components/ListCheckboxes.js.map +0 -13
  440. package/lib/components/ListRadios.d.ts +0 -763
  441. package/lib/components/ListRadios.js +0 -86
  442. package/lib/components/ListRadios.js.map +0 -13
  443. package/lib/components/TableCheckboxes.js.map +0 -13
  444. package/lib/components/TreeCheckboxes.js.map +0 -13
  445. package/lib/components/TreeRadios.d.ts +0 -838
  446. package/lib/components/TreeRadios.js +0 -116
  447. package/lib/components/TreeRadios.js.map +0 -13
  448. package/src/components/ListRadios.tsx +0 -159
  449. package/src/components/TreeRadios.tsx +0 -202
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChainedCheckboxes = void 0;
3
+ exports.ChainedSelection = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  /**
6
6
  * 级联多选框,支持无限极。从左侧到右侧一层层点选。
7
7
  */
8
- var Checkboxes_1 = require("./Checkboxes");
8
+ var Selection_1 = require("./Selection");
9
9
  var theme_1 = require("../theme");
10
10
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
11
11
  var uncontrollable_1 = require("uncontrollable");
@@ -14,16 +14,16 @@ var helper_1 = require("../utils/helper");
14
14
  var times_1 = (0, tslib_1.__importDefault)(require("lodash/times"));
15
15
  var Spinner_1 = (0, tslib_1.__importDefault)(require("./Spinner"));
16
16
  var locale_1 = require("../locale");
17
- var ChainedCheckboxes = /** @class */ (function (_super) {
18
- (0, tslib_1.__extends)(ChainedCheckboxes, _super);
19
- function ChainedCheckboxes() {
17
+ var ChainedSelection = /** @class */ (function (_super) {
18
+ (0, tslib_1.__extends)(ChainedSelection, _super);
19
+ function ChainedSelection() {
20
20
  var _this = _super !== null && _super.apply(this, arguments) || this;
21
21
  _this.state = {
22
22
  selected: []
23
23
  };
24
24
  return _this;
25
25
  }
26
- ChainedCheckboxes.prototype.componentDidMount = function () {
26
+ ChainedSelection.prototype.componentDidMount = function () {
27
27
  var defaultSelectedIndex = this.props.defaultSelectedIndex;
28
28
  if (defaultSelectedIndex !== undefined) {
29
29
  this.setState({
@@ -31,7 +31,7 @@ var ChainedCheckboxes = /** @class */ (function (_super) {
31
31
  });
32
32
  }
33
33
  };
34
- ChainedCheckboxes.prototype.selectOption = function (option, depth, id) {
34
+ ChainedSelection.prototype.selectOption = function (option, depth, id) {
35
35
  var onDeferLoad = this.props.onDeferLoad;
36
36
  var selected = this.state.selected.concat();
37
37
  selected.splice(depth, selected.length - depth);
@@ -40,23 +40,29 @@ var ChainedCheckboxes = /** @class */ (function (_super) {
40
40
  selected: selected
41
41
  }, option.defer && onDeferLoad ? function () { return onDeferLoad(option); } : undefined);
42
42
  };
43
- ChainedCheckboxes.prototype.renderOption = function (option, index, depth, id) {
43
+ ChainedSelection.prototype.renderItem = function (option, index, depth, id) {
44
+ var _this = this;
45
+ var _a = this.props, labelClassName = _a.labelClassName, disabled = _a.disabled, cx = _a.classnames, itemClassName = _a.itemClassName, itemRender = _a.itemRender, multiple = _a.multiple;
46
+ var valueArray = this.valueArray;
47
+ return (react_1.default.createElement("div", { key: index, className: cx('ChainedSelection-item', itemClassName, option.className, disabled || option.disabled ? 'is-disabled' : '', !!~valueArray.indexOf(option) ? 'is-active' : ''), onClick: function () { return _this.toggleOption(option); } },
48
+ react_1.default.createElement("div", { className: cx('ChainedSelection-itemLabel') }, itemRender(option)),
49
+ multiple ? (react_1.default.createElement(Checkbox_1.default, { size: "sm", checked: !!~valueArray.indexOf(option), disabled: disabled || option.disabled, labelClassName: labelClassName, description: option.description })) : null));
50
+ };
51
+ ChainedSelection.prototype.renderOption = function (option, index, depth, id) {
44
52
  var _this = this;
45
53
  var _a = this.props, labelClassName = _a.labelClassName, disabled = _a.disabled, cx = _a.classnames, itemClassName = _a.itemClassName, itemRender = _a.itemRender;
46
54
  var valueArray = this.valueArray;
47
55
  if (Array.isArray(option.children) || option.defer) {
48
- return (react_1.default.createElement("div", { key: index, className: cx('ChainedCheckboxes-item', itemClassName, option.className, disabled || option.disabled ? 'is-disabled' : '', ~this.state.selected.indexOf(id) ? 'is-active' : ''), onClick: function () { return _this.selectOption(option, depth, id); } },
49
- react_1.default.createElement("div", { className: cx('ChainedCheckboxes-itemLabel') }, itemRender(option)),
56
+ return (react_1.default.createElement("div", { key: index, className: cx('ChainedSelection-item', itemClassName, option.className, disabled || option.disabled ? 'is-disabled' : '', ~this.state.selected.indexOf(id) ? 'is-active' : ''), onClick: function () { return _this.selectOption(option, depth, id); } },
57
+ react_1.default.createElement("div", { className: cx('ChainedSelection-itemLabel') }, itemRender(option)),
50
58
  option.defer && option.loading ? react_1.default.createElement(Spinner_1.default, { size: "sm", show: true }) : null));
51
59
  }
52
- return (react_1.default.createElement("div", { key: index, className: cx('ChainedCheckboxes-item', itemClassName, option.className, disabled || option.disabled ? 'is-disabled' : ''), onClick: function () { return _this.toggleOption(option); } },
53
- react_1.default.createElement("div", { className: cx('ChainedCheckboxes-itemLabel') }, itemRender(option)),
54
- react_1.default.createElement(Checkbox_1.default, { size: "sm", checked: !!~valueArray.indexOf(option), disabled: disabled || option.disabled, labelClassName: labelClassName, description: option.description })));
60
+ return this.renderItem(option, index, depth, id);
55
61
  };
56
- ChainedCheckboxes.prototype.render = function () {
62
+ ChainedSelection.prototype.render = function () {
57
63
  var _this = this;
58
64
  var _a = this.props, value = _a.value, options = _a.options, className = _a.className, placeholder = _a.placeholder, cx = _a.classnames, option2value = _a.option2value, itemRender = _a.itemRender, __ = _a.translate;
59
- this.valueArray = Checkboxes_1.BaseCheckboxes.value2array(value, options, option2value);
65
+ this.valueArray = Selection_1.BaseSelection.value2array(value, options, option2value);
60
66
  var body = [];
61
67
  if (Array.isArray(options) && options.length) {
62
68
  var selected_1 = this.state.selected.concat();
@@ -68,8 +74,8 @@ var ChainedCheckboxes = /** @class */ (function (_super) {
68
74
  var nextSubTitle = '';
69
75
  var nextPlaceholder = '';
70
76
  var nextIndexes = indexes;
71
- body.push(react_1.default.createElement("div", { key: depth, className: cx('ChainedCheckboxes-col') },
72
- subTitle ? (react_1.default.createElement("div", { className: cx('ChainedCheckboxes-subTitle') }, subTitle)) : null,
77
+ body.push(react_1.default.createElement("div", { key: depth, className: cx('ChainedSelection-col') },
78
+ subTitle ? (react_1.default.createElement("div", { className: cx('ChainedSelection-subTitle') }, subTitle)) : null,
73
79
  Array.isArray(options) && options.length ? (options.map(function (option, index) {
74
80
  var id = indexes.concat(index).join('-');
75
81
  if (id === selected) {
@@ -79,7 +85,7 @@ var ChainedCheckboxes = /** @class */ (function (_super) {
79
85
  nextPlaceholder = option.placeholder;
80
86
  }
81
87
  return _this.renderOption(option, index, depth, id);
82
- })) : (react_1.default.createElement("div", { className: cx('ChainedCheckboxes-placeholder') }, __(placeholder)))));
88
+ })) : (react_1.default.createElement("div", { className: cx('ChainedSelection-placeholder') }, __(placeholder)))));
83
89
  return {
84
90
  options: nextOptions,
85
91
  subTitle: nextSubTitle,
@@ -94,12 +100,12 @@ var ChainedCheckboxes = /** @class */ (function (_super) {
94
100
  placeholder: placeholder
95
101
  });
96
102
  }
97
- return (react_1.default.createElement("div", { className: cx('ChainedCheckboxes', className) }, body && body.length ? (body) : (react_1.default.createElement("div", { className: cx('ChainedCheckboxes-placeholder') }, __(placeholder)))));
103
+ return (react_1.default.createElement("div", { className: cx('ChainedSelection', className) }, body && body.length ? (body) : (react_1.default.createElement("div", { className: cx('ChainedSelection-placeholder') }, __(placeholder)))));
98
104
  };
99
- return ChainedCheckboxes;
100
- }(Checkboxes_1.BaseCheckboxes));
101
- exports.ChainedCheckboxes = ChainedCheckboxes;
102
- exports.default = (0, theme_1.themeable)((0, locale_1.localeable)((0, uncontrollable_1.uncontrollable)(ChainedCheckboxes, {
105
+ return ChainedSelection;
106
+ }(Selection_1.BaseSelection));
107
+ exports.ChainedSelection = ChainedSelection;
108
+ exports.default = (0, theme_1.themeable)((0, locale_1.localeable)((0, uncontrollable_1.uncontrollable)(ChainedSelection, {
103
109
  value: 'onChange'
104
110
  })));
105
- //# sourceMappingURL=./components/ChainedCheckboxes.js.map
111
+ //# sourceMappingURL=./components/ChainedSelection.js.map
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "file": "ChainedSelection.js",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "/src/components/ChainedSelection.tsx"
7
+ ],
8
+ "names": [],
9
+ "mappings": "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",
10
+ "sourcesContent": [
11
+ "/**\n * 级联多选框,支持无限极。从左侧到右侧一层层点选。\n */\nimport {BaseSelection, BaseSelectionProps} from './Selection';\nimport {themeable} from '../theme';\nimport React from 'react';\nimport {uncontrollable} from 'uncontrollable';\nimport Checkbox from './Checkbox';\nimport {Option} from './Select';\nimport {getTreeDepth} from '../utils/helper';\nimport times from 'lodash/times';\nimport Spinner from './Spinner';\nimport {localeable} from '../locale';\n\nexport interface ChainedSelectionProps extends BaseSelectionProps {\n defaultSelectedIndex?: string;\n}\n\nexport interface ChainedSelectionState {\n selected: Array<string>;\n}\n\nexport class ChainedSelection extends BaseSelection<\n ChainedSelectionProps,\n ChainedSelectionState\n> {\n valueArray: Array<Option>;\n state: ChainedSelectionState = {\n selected: []\n };\n\n componentDidMount() {\n const defaultSelectedIndex = this.props.defaultSelectedIndex;\n\n if (defaultSelectedIndex !== undefined) {\n this.setState({\n selected: [`${defaultSelectedIndex}`]\n });\n }\n }\n\n selectOption(option: Option, depth: number, id: string) {\n const {onDeferLoad} = this.props;\n\n const selected = this.state.selected.concat();\n selected.splice(depth, selected.length - depth);\n selected.push(id);\n\n this.setState(\n {\n selected\n },\n option.defer && onDeferLoad ? () => onDeferLoad(option) : undefined\n );\n }\n\n renderItem(option: Option, index: number, depth: number, id: string) {\n const {\n labelClassName,\n disabled,\n classnames: cx,\n itemClassName,\n itemRender,\n multiple\n } = this.props;\n const valueArray = this.valueArray;\n\n return (\n <div\n key={index}\n className={cx(\n 'ChainedSelection-item',\n itemClassName,\n option.className,\n disabled || option.disabled ? 'is-disabled' : '',\n !!~valueArray.indexOf(option) ? 'is-active' : ''\n )}\n onClick={() => this.toggleOption(option)}\n >\n <div className={cx('ChainedSelection-itemLabel')}>\n {itemRender(option)}\n </div>\n\n {multiple ? (\n <Checkbox\n size=\"sm\"\n checked={!!~valueArray.indexOf(option)}\n disabled={disabled || option.disabled}\n labelClassName={labelClassName}\n description={option.description}\n />\n ) : null}\n </div>\n );\n }\n\n renderOption(option: Option, index: number, depth: number, id: string) {\n const {\n labelClassName,\n disabled,\n classnames: cx,\n itemClassName,\n itemRender\n } = this.props;\n const valueArray = this.valueArray;\n\n if (Array.isArray(option.children) || option.defer) {\n return (\n <div\n key={index}\n className={cx(\n 'ChainedSelection-item',\n itemClassName,\n option.className,\n disabled || option.disabled ? 'is-disabled' : '',\n ~this.state.selected.indexOf(id) ? 'is-active' : ''\n )}\n onClick={() => this.selectOption(option, depth, id)}\n >\n <div className={cx('ChainedSelection-itemLabel')}>\n {itemRender(option)}\n </div>\n\n {option.defer && option.loading ? <Spinner size=\"sm\" show /> : null}\n </div>\n );\n }\n\n return this.renderItem(option, index, depth, id);\n }\n\n render() {\n const {\n value,\n options,\n className,\n placeholder,\n classnames: cx,\n option2value,\n itemRender,\n translate: __\n } = this.props;\n\n this.valueArray = BaseSelection.value2array(value, options, option2value);\n let body: Array<React.ReactNode> = [];\n\n if (Array.isArray(options) && options.length) {\n const selected: Array<string | null> = this.state.selected.concat();\n const depth = Math.min(getTreeDepth(options), 3);\n times(Math.max(depth - selected.length, 1), () => selected.push(null));\n\n selected.reduce(\n (\n {\n body,\n options,\n subTitle,\n indexes,\n placeholder\n }: {\n body: Array<React.ReactNode>;\n options: Array<Option> | null;\n subTitle?: string;\n indexes: Array<number>;\n placeholder?: string;\n },\n selected,\n depth\n ) => {\n let nextOptions: Array<Option> = [];\n let nextSubTitle: string = '';\n let nextPlaceholder: string = '';\n let nextIndexes = indexes;\n\n body.push(\n <div key={depth} className={cx('ChainedSelection-col')}>\n {subTitle ? (\n <div className={cx('ChainedSelection-subTitle')}>\n {subTitle}\n </div>\n ) : null}\n {Array.isArray(options) && options.length ? (\n options.map((option, index) => {\n const id = indexes.concat(index).join('-');\n\n if (id === selected) {\n nextSubTitle = option.subTitle;\n nextOptions = option.children!;\n nextIndexes = indexes.concat(index);\n nextPlaceholder = option.placeholder;\n }\n\n return this.renderOption(option, index, depth, id);\n })\n ) : (\n <div className={cx('ChainedSelection-placeholder')}>\n {__(placeholder)}\n </div>\n )}\n </div>\n );\n\n return {\n options: nextOptions,\n subTitle: nextSubTitle,\n placeholder: nextPlaceholder,\n indexes: nextIndexes,\n body: body\n };\n },\n {\n options,\n body,\n indexes: [],\n placeholder\n }\n );\n }\n\n return (\n <div className={cx('ChainedSelection', className)}>\n {body && body.length ? (\n body\n ) : (\n <div className={cx('ChainedSelection-placeholder')}>\n {__(placeholder)}\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default themeable(\n localeable(\n uncontrollable(ChainedSelection, {\n value: 'onChange'\n })\n )\n);\n"
12
+ ]
13
+ }
@@ -31,12 +31,12 @@ export declare class Checkbox extends React.Component<CheckboxProps, any> {
31
31
  render(): JSX.Element;
32
32
  }
33
33
  declare const _default: {
34
- new (props: (Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps) | Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>): {
34
+ new (props: (Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps) | Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>): {
35
35
  render(): JSX.Element;
36
36
  context: any;
37
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
37
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
38
38
  forceUpdate(callback?: (() => void) | undefined): void;
39
- readonly props: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps> & Readonly<{
39
+ readonly props: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps> & Readonly<{
40
40
  children?: React.ReactNode;
41
41
  }>;
42
42
  state: Readonly<{}>;
@@ -44,24 +44,24 @@ declare const _default: {
44
44
  [key: string]: React.ReactInstance;
45
45
  };
46
46
  componentDidMount?(): void;
47
- shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
47
+ shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
48
48
  componentWillUnmount?(): void;
49
49
  componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
50
- getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
51
- componentDidUpdate?(prevProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
50
+ getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
51
+ componentDidUpdate?(prevProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
52
52
  componentWillMount?(): void;
53
53
  UNSAFE_componentWillMount?(): void;
54
- componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
55
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
56
- componentWillUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
57
- UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
54
+ componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
55
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
56
+ componentWillUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
57
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
58
58
  };
59
- new (props: Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps, context: any): {
59
+ new (props: Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps, context: any): {
60
60
  render(): JSX.Element;
61
61
  context: any;
62
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
62
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
63
63
  forceUpdate(callback?: (() => void) | undefined): void;
64
- readonly props: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps> & Readonly<{
64
+ readonly props: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps> & Readonly<{
65
65
  children?: React.ReactNode;
66
66
  }>;
67
67
  state: Readonly<{}>;
@@ -69,17 +69,17 @@ declare const _default: {
69
69
  [key: string]: React.ReactInstance;
70
70
  };
71
71
  componentDidMount?(): void;
72
- shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
72
+ shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
73
73
  componentWillUnmount?(): void;
74
74
  componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
75
- getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
76
- componentDidUpdate?(prevProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
75
+ getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
76
+ componentDidUpdate?(prevProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
77
77
  componentWillMount?(): void;
78
78
  UNSAFE_componentWillMount?(): void;
79
- componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
80
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
81
- componentWillUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
82
- UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "disabled" | "checked" | "name" | "size" | "inline" | "description" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
79
+ componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
80
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
81
+ componentWillUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
82
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "label" | "value" | "description" | "disabled" | "checked" | "name" | "size" | "inline" | "onChange" | "readOnly" | "labelClassName" | "partial"> & Partial<Pick<Omit<CheckboxProps, keyof import("../theme").ThemeProps>, "type" | "trueValue" | "falseValue">> & Partial<Pick<Pick<CheckboxProps, "type" | "trueValue" | "falseValue">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
83
83
  };
84
84
  displayName: string;
85
85
  contextType: React.Context<string>;
@@ -6,16 +6,44 @@
6
6
  /// <reference types="hoist-non-react-statics" />
7
7
  import React from 'react';
8
8
  import { ClassNamesFn } from '../theme';
9
+ import { TranslateFn } from '../locale';
9
10
  export interface CollapseProps {
10
- show?: boolean;
11
+ key?: string;
12
+ id?: string;
11
13
  mountOnEnter?: boolean;
12
14
  unmountOnExit?: boolean;
13
15
  className?: string;
14
16
  classPrefix: string;
15
17
  classnames: ClassNamesFn;
18
+ headerPosition?: 'top' | 'bottom';
19
+ header?: React.ReactElement;
20
+ body: any;
21
+ bodyClassName?: string;
22
+ disabled?: boolean;
23
+ collapsable?: boolean;
24
+ collapsed?: boolean;
25
+ showArrow?: boolean;
26
+ expandIcon?: React.ReactElement | null;
27
+ headingClassName?: string;
28
+ collapseHeader?: React.ReactElement | null;
29
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'base';
30
+ onCollapse?: (item: any, collapsed: boolean) => void;
31
+ wrapperComponent?: any;
32
+ headingComponent?: any;
33
+ translate?: TranslateFn;
34
+ propsUpdate?: boolean;
16
35
  }
17
- export declare class Collapse extends React.Component<CollapseProps, any> {
18
- static defaultProps: Pick<CollapseProps, 'show' | 'mountOnEnter' | 'unmountOnExit'>;
36
+ export interface CollapseState {
37
+ collapsed: boolean;
38
+ }
39
+ export declare class Collapse extends React.Component<CollapseProps, CollapseState> {
40
+ static defaultProps: Partial<CollapseProps>;
41
+ state: CollapseState;
42
+ constructor(props: CollapseProps);
43
+ static getDerivedStateFromProps(nextProps: CollapseProps, preState: CollapseState): {
44
+ collapsed: boolean;
45
+ } | null;
46
+ toggleCollapsed(e: React.MouseEvent<HTMLElement>): void;
19
47
  contentDom: any;
20
48
  contentRef: (ref: any) => any;
21
49
  handleEnter(elem: HTMLElement): void;
@@ -26,12 +54,12 @@ export declare class Collapse extends React.Component<CollapseProps, any> {
26
54
  render(): JSX.Element;
27
55
  }
28
56
  declare const _default: {
29
- new (props: (Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps) | Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>): {
57
+ new (props: (Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps) | Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>): {
30
58
  render(): JSX.Element;
31
59
  context: any;
32
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
60
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
33
61
  forceUpdate(callback?: (() => void) | undefined): void;
34
- readonly props: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps> & Readonly<{
62
+ readonly props: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps> & Readonly<{
35
63
  children?: React.ReactNode;
36
64
  }>;
37
65
  state: Readonly<{}>;
@@ -39,24 +67,24 @@ declare const _default: {
39
67
  [key: string]: React.ReactInstance;
40
68
  };
41
69
  componentDidMount?(): void;
42
- shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
70
+ shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
43
71
  componentWillUnmount?(): void;
44
72
  componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
45
- getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
46
- componentDidUpdate?(prevProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
73
+ getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
74
+ componentDidUpdate?(prevProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
47
75
  componentWillMount?(): void;
48
76
  UNSAFE_componentWillMount?(): void;
49
- componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
50
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
51
- componentWillUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
52
- UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
77
+ componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
78
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
79
+ componentWillUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
80
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
53
81
  };
54
- new (props: Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps, context: any): {
82
+ new (props: Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps, context: any): {
55
83
  render(): JSX.Element;
56
84
  context: any;
57
- setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
85
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
58
86
  forceUpdate(callback?: (() => void) | undefined): void;
59
- readonly props: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps> & Readonly<{
87
+ readonly props: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps> & Readonly<{
60
88
  children?: React.ReactNode;
61
89
  }>;
62
90
  state: Readonly<{}>;
@@ -64,17 +92,17 @@ declare const _default: {
64
92
  [key: string]: React.ReactInstance;
65
93
  };
66
94
  componentDidMount?(): void;
67
- shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
95
+ shouldComponentUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
68
96
  componentWillUnmount?(): void;
69
97
  componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
70
- getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
71
- componentDidUpdate?(prevProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
98
+ getSnapshotBeforeUpdate?(prevProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
99
+ componentDidUpdate?(prevProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
72
100
  componentWillMount?(): void;
73
101
  UNSAFE_componentWillMount?(): void;
74
- componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
75
- UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, nextContext: any): void;
76
- componentWillUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
77
- UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "show" | "mountOnEnter" | "unmountOnExit">> & Partial<Pick<Pick<CollapseProps, "show" | "mountOnEnter" | "unmountOnExit">, never>> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
102
+ componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
103
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, nextContext: any): void;
104
+ componentWillUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
105
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, never> & Partial<Pick<Omit<CollapseProps, keyof import("../theme").ThemeProps>, "body" | "header" | "key" | "disabled" | "id" | "size" | "translate" | "mountOnEnter" | "unmountOnExit" | "wrapperComponent" | "collapsed" | "headerPosition" | "bodyClassName" | "collapsable" | "showArrow" | "expandIcon" | "headingClassName" | "collapseHeader" | "onCollapse" | "headingComponent" | "propsUpdate">> & Partial<Pick<Partial<CollapseProps>, "classPrefix" | "classnames" | "className">> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
78
106
  };
79
107
  displayName: string;
80
108
  contextType: React.Context<string>;
@@ -12,6 +12,7 @@ var react_1 = (0, tslib_1.__importDefault)(require("react"));
12
12
  var theme_1 = require("../theme");
13
13
  var Transition_1 = tslib_1.__importStar(require("react-transition-group/Transition"));
14
14
  var helper_1 = require("../utils/helper");
15
+ var helper_2 = require("../utils/helper");
15
16
  var collapseStyles = (_a = {},
16
17
  _a[Transition_1.EXITED] = 'out',
17
18
  _a[Transition_1.EXITING] = 'out',
@@ -19,11 +20,37 @@ var collapseStyles = (_a = {},
19
20
  _a);
20
21
  var Collapse = /** @class */ (function (_super) {
21
22
  (0, tslib_1.__extends)(Collapse, _super);
22
- function Collapse() {
23
- var _this = _super !== null && _super.apply(this, arguments) || this;
23
+ function Collapse(props) {
24
+ var _this = _super.call(this, props) || this;
25
+ _this.state = {
26
+ collapsed: false
27
+ };
24
28
  _this.contentRef = function (ref) { return (_this.contentDom = ref); };
29
+ _this.toggleCollapsed = _this.toggleCollapsed.bind(_this);
30
+ _this.state.collapsed = !!props.collapsed;
25
31
  return _this;
26
32
  }
33
+ Collapse.getDerivedStateFromProps = function (nextProps, preState) {
34
+ if (nextProps.propsUpdate && nextProps.collapsed !== preState.collapsed) {
35
+ return {
36
+ collapsed: !!nextProps.collapsed
37
+ };
38
+ }
39
+ return null;
40
+ };
41
+ Collapse.prototype.toggleCollapsed = function (e) {
42
+ if ((0, helper_2.isClickOnInput)(e)) {
43
+ return;
44
+ }
45
+ var props = this.props;
46
+ if (props.disabled || props.collapsable === false) {
47
+ return;
48
+ }
49
+ props.onCollapse && props.onCollapse(props, !this.state.collapsed);
50
+ this.setState({
51
+ collapsed: !this.state.collapsed
52
+ });
53
+ };
27
54
  Collapse.prototype.handleEnter = function (elem) {
28
55
  elem.style['height'] = '';
29
56
  };
@@ -46,20 +73,51 @@ var Collapse = /** @class */ (function (_super) {
46
73
  elem.style['height'] = '';
47
74
  };
48
75
  Collapse.prototype.render = function () {
76
+ var _a;
49
77
  var _this = this;
50
- var _a = this.props, show = _a.show, children = _a.children, cx = _a.classnames, mountOnEnter = _a.mountOnEnter, unmountOnExit = _a.unmountOnExit;
51
- return (react_1.default.createElement(Transition_1.default, { mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit, in: show, timeout: 300, onEnter: this.handleEnter, onEntering: this.handleEntering, onEntered: this.handleEntered, onExit: this.handleExit, onExiting: this.handleExiting }, function (status) {
52
- if (status === Transition_1.ENTERING) {
53
- _this.contentDom.offsetWidth;
54
- }
55
- return (react_1.default.createElement("div", { className: cx('Collapse-contentWrapper', collapseStyles[status]), ref: _this.contentRef }, react_1.default.cloneElement(children, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, children.props), { className: cx('Collapse-content', children.props.className) }))));
56
- }));
78
+ var _b = this.props, cx = _b.classnames, mountOnEnter = _b.mountOnEnter, unmountOnExit = _b.unmountOnExit, ns = _b.classPrefix, size = _b.size, WrapperComponent = _b.wrapperComponent, HeadingComponent = _b.headingComponent, className = _b.className, headingClassName = _b.headingClassName, headerPosition = _b.headerPosition, collapseHeader = _b.collapseHeader, header = _b.header, body = _b.body, bodyClassName = _b.bodyClassName, collapsable = _b.collapsable, __ = _b.translate, showArrow = _b.showArrow, expandIcon = _b.expandIcon, disabled = _b.disabled;
79
+ var finalHeader = this.state.collapsed ? header : collapseHeader || header;
80
+ var dom = [
81
+ finalHeader ? (react_1.default.createElement(HeadingComponent, { key: "header", onClick: this.toggleCollapsed, className: cx("Collapse-header", headingClassName) },
82
+ showArrow && collapsable
83
+ ? expandIcon
84
+ ? react_1.default.cloneElement(expandIcon, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, expandIcon.props), { className: cx('Collapse-icon-tranform') }))
85
+ : react_1.default.createElement("span", { className: cx('Collapse-arrow') })
86
+ : '',
87
+ finalHeader)) : null,
88
+ react_1.default.createElement(Transition_1.default, { key: "body", mountOnEnter: mountOnEnter, unmountOnExit: unmountOnExit, in: !this.state.collapsed, timeout: 300, onEnter: this.handleEnter, onEntering: this.handleEntering, onEntered: this.handleEntered, onExit: this.handleExit, onExiting: this.handleExiting }, function (status) {
89
+ if (status === Transition_1.ENTERING) {
90
+ _this.contentDom.offsetWidth;
91
+ }
92
+ return (react_1.default.createElement("div", { className: cx('Collapse-contentWrapper', collapseStyles[status]), ref: _this.contentRef },
93
+ react_1.default.createElement("div", { className: cx('Collapse-body', bodyClassName) }, react_1.default.cloneElement(body, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, body.props), { className: cx('Collapse-content', body.props.className) })))));
94
+ })
95
+ ];
96
+ if (headerPosition === 'bottom') {
97
+ dom.reverse();
98
+ }
99
+ return (react_1.default.createElement(WrapperComponent, { className: cx("Collapse", (_a = {
100
+ 'is-active': !this.state.collapsed
101
+ },
102
+ _a["Collapse--" + size] = size,
103
+ _a['Collapse--disabled'] = disabled || collapsable === false,
104
+ _a['Collapse--title-bottom'] = headerPosition === 'bottom',
105
+ _a), className) }, dom));
57
106
  };
58
107
  var _b, _c, _d, _e, _f;
59
108
  Collapse.defaultProps = {
60
- show: false,
61
109
  mountOnEnter: false,
62
- unmountOnExit: false
110
+ unmountOnExit: false,
111
+ headerPosition: 'top',
112
+ wrapperComponent: 'div',
113
+ headingComponent: 'div',
114
+ className: '',
115
+ headingClassName: '',
116
+ bodyClassName: '',
117
+ collapsable: true,
118
+ disabled: false,
119
+ showArrow: true,
120
+ propsUpdate: false
63
121
  };
64
122
  (0, tslib_1.__decorate)([
65
123
  helper_1.autobind,