amis 1.4.1 → 1.4.2-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/README.md +1 -1
  2. package/lib/Schema.d.ts +26 -2
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/Alert.js +3 -1
  5. package/lib/components/Alert.js.map +2 -2
  6. package/lib/components/AnchorNav.d.ts +22 -21
  7. package/lib/components/AnchorNav.js +7 -3
  8. package/lib/components/AnchorNav.js.map +2 -2
  9. package/lib/components/ArrayInput.d.ts +84 -84
  10. package/lib/components/AssociatedSelection.d.ts +930 -0
  11. package/lib/components/AssociatedSelection.js +89 -0
  12. package/lib/components/AssociatedSelection.js.map +13 -0
  13. package/lib/components/Badge.d.ts +2 -2
  14. package/lib/components/Badge.js +13 -7
  15. package/lib/components/Badge.js.map +2 -2
  16. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  17. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  18. package/lib/components/ChainedSelection.js.map +13 -0
  19. package/lib/components/Collapse.js +1 -1
  20. package/lib/components/Collapse.js.map +2 -2
  21. package/lib/components/ColorPicker.d.ts +84 -84
  22. package/lib/components/DatePicker.d.ts +84 -84
  23. package/lib/components/DatePicker.js +1 -1
  24. package/lib/components/DatePicker.js.map +2 -2
  25. package/lib/components/DateRangePicker.d.ts +84 -84
  26. package/lib/components/DateRangePicker.js +1 -1
  27. package/lib/components/DateRangePicker.js.map +2 -2
  28. package/lib/components/Editor.d.ts +84 -84
  29. package/lib/components/GroupedSelection.d.ts +907 -0
  30. package/lib/components/GroupedSelection.js +48 -0
  31. package/lib/components/GroupedSelection.js.map +13 -0
  32. package/lib/components/InputBox.d.ts +22 -21
  33. package/lib/components/InputBox.js +11 -3
  34. package/lib/components/InputBox.js.map +2 -2
  35. package/lib/components/Link.d.ts +84 -0
  36. package/lib/components/Link.js +43 -0
  37. package/lib/components/Link.js.map +13 -0
  38. package/lib/components/ListGroup.d.ts +21 -21
  39. package/lib/components/ModalManager.js +1 -1
  40. package/lib/components/ModalManager.js.map +2 -2
  41. package/lib/components/MonthRangePicker.d.ts +84 -84
  42. package/lib/components/MonthRangePicker.js +1 -1
  43. package/lib/components/MonthRangePicker.js.map +2 -2
  44. package/lib/components/NumberInput.d.ts +20 -20
  45. package/lib/components/PickerColumn.d.ts +514 -0
  46. package/lib/components/PickerColumn.js +279 -0
  47. package/lib/components/PickerColumn.js.map +13 -0
  48. package/lib/components/PickerContainer.d.ts +513 -0
  49. package/lib/components/PickerContainer.js +96 -0
  50. package/lib/components/PickerContainer.js.map +13 -0
  51. package/lib/components/Radios.d.ts +22 -21
  52. package/lib/components/Radios.js +1 -0
  53. package/lib/components/Radios.js.map +2 -2
  54. package/lib/components/Rating.d.ts +21 -21
  55. package/lib/components/ResultBox.d.ts +84 -84
  56. package/lib/components/ResultBox.js +10 -2
  57. package/lib/components/ResultBox.js.map +2 -2
  58. package/lib/components/RichText.js +17 -53
  59. package/lib/components/RichText.js.map +2 -2
  60. package/lib/components/SearchBox.d.ts +84 -84
  61. package/lib/components/SearchBox.js +4 -4
  62. package/lib/components/SearchBox.js.map +2 -2
  63. package/lib/components/Select.d.ts +245 -237
  64. package/lib/components/Select.js +28 -4
  65. package/lib/components/Select.js.map +2 -2
  66. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  67. package/lib/components/Selection.js +134 -0
  68. package/lib/components/Selection.js.map +13 -0
  69. package/lib/components/SparkLine.d.ts +85 -84
  70. package/lib/components/SparkLine.js +2 -2
  71. package/lib/components/SparkLine.js.map +2 -2
  72. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  73. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  74. package/lib/components/TableSelection.js.map +13 -0
  75. package/lib/components/Tabs.d.ts +20 -20
  76. package/lib/components/TabsTransfer.d.ts +84 -84
  77. package/lib/components/TabsTransfer.js +9 -9
  78. package/lib/components/TabsTransfer.js.map +2 -2
  79. package/lib/components/TabsTransferPicker.d.ts +489 -0
  80. package/lib/components/TabsTransferPicker.js +60 -0
  81. package/lib/components/TabsTransferPicker.js.map +13 -0
  82. package/lib/components/Toast.js +2 -2
  83. package/lib/components/Toast.js.map +2 -2
  84. package/lib/components/Transfer.d.ts +908 -274
  85. package/lib/components/Transfer.js +31 -24
  86. package/lib/components/Transfer.js.map +2 -2
  87. package/lib/components/TransferDropDown.d.ts +488 -0
  88. package/lib/components/TransferDropDown.js +59 -0
  89. package/lib/components/TransferDropDown.js.map +13 -0
  90. package/lib/components/TransferPicker.d.ts +493 -0
  91. package/lib/components/TransferPicker.js +60 -0
  92. package/lib/components/TransferPicker.js.map +13 -0
  93. package/lib/components/Tree.d.ts +84 -84
  94. package/lib/components/Tree.js +5 -3
  95. package/lib/components/Tree.js.map +2 -2
  96. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  97. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  98. package/lib/components/TreeSelection.js.map +13 -0
  99. package/lib/components/WithRemoteConfig.js +1 -1
  100. package/lib/components/WithRemoteConfig.js.map +2 -2
  101. package/lib/components/condition-builder/Field.js +5 -2
  102. package/lib/components/condition-builder/Field.js.map +2 -2
  103. package/lib/components/condition-builder/Func.js +2 -2
  104. package/lib/components/condition-builder/Func.js.map +2 -2
  105. package/lib/components/condition-builder/InputSwitch.js +2 -2
  106. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  107. package/lib/components/condition-builder/Item.js +3 -3
  108. package/lib/components/condition-builder/Item.js.map +2 -2
  109. package/lib/components/icons.js +14 -0
  110. package/lib/components/icons.js.map +2 -2
  111. package/lib/components/index.d.ts +8 -8
  112. package/lib/components/index.js +16 -16
  113. package/lib/components/index.js.map +2 -2
  114. package/lib/envOverwrite.js.map +2 -2
  115. package/lib/factory.d.ts +4 -0
  116. package/lib/factory.js +4 -2
  117. package/lib/factory.js.map +2 -2
  118. package/lib/helper.css.map +1 -1
  119. package/lib/hooks/index.d.ts +5 -0
  120. package/lib/hooks/index.js +14 -0
  121. package/lib/hooks/index.js.map +13 -0
  122. package/lib/hooks/use-set-state.d.ts +2 -0
  123. package/lib/hooks/use-set-state.js +15 -0
  124. package/lib/hooks/use-set-state.js.map +13 -0
  125. package/lib/hooks/use-touch.d.ts +16 -0
  126. package/lib/hooks/use-touch.js +73 -0
  127. package/lib/hooks/use-touch.js.map +13 -0
  128. package/lib/hooks/use-update-effect.d.ts +3 -0
  129. package/lib/hooks/use-update-effect.js +17 -0
  130. package/lib/hooks/use-update-effect.js.map +13 -0
  131. package/lib/icons/clock.js +10 -0
  132. package/lib/icons/download.js +7 -0
  133. package/lib/icons/status-close.js +11 -0
  134. package/lib/icons/status-fail.js +11 -0
  135. package/lib/icons/status-info.js +10 -0
  136. package/lib/icons/status-success.js +11 -0
  137. package/lib/icons/status-warning.js +10 -0
  138. package/lib/index.d.ts +3 -0
  139. package/lib/index.js +4 -1
  140. package/lib/index.js.map +2 -2
  141. package/lib/locale/de-DE.js +4 -0
  142. package/lib/locale/de-DE.js.map +2 -2
  143. package/lib/locale/en-US.js +5 -0
  144. package/lib/locale/en-US.js.map +2 -2
  145. package/lib/locale/zh-CN.js +8 -3
  146. package/lib/locale/zh-CN.js.map +2 -2
  147. package/lib/renderers/Action.d.ts +8 -0
  148. package/lib/renderers/Action.js +17 -4
  149. package/lib/renderers/Action.js.map +2 -2
  150. package/lib/renderers/AnchorNav.d.ts +1 -0
  151. package/lib/renderers/AnchorNav.js +2 -2
  152. package/lib/renderers/AnchorNav.js.map +2 -2
  153. package/lib/renderers/Avatar.js +3 -3
  154. package/lib/renderers/Avatar.js.map +2 -2
  155. package/lib/renderers/Breadcrumb.js +1 -1
  156. package/lib/renderers/Breadcrumb.js.map +2 -2
  157. package/lib/renderers/CRUD.d.ts +9 -0
  158. package/lib/renderers/CRUD.js +43 -8
  159. package/lib/renderers/CRUD.js.map +2 -2
  160. package/lib/renderers/Card.d.ts +4 -0
  161. package/lib/renderers/Card.js +29 -23
  162. package/lib/renderers/Card.js.map +2 -2
  163. package/lib/renderers/Chart.js +1 -1
  164. package/lib/renderers/Chart.js.map +2 -2
  165. package/lib/renderers/Collapse.js +3 -2
  166. package/lib/renderers/Collapse.js.map +2 -2
  167. package/lib/renderers/Dialog.js +0 -3
  168. package/lib/renderers/Dialog.js.map +2 -2
  169. package/lib/renderers/Drawer.js +0 -3
  170. package/lib/renderers/Drawer.js.map +2 -2
  171. package/lib/renderers/DropDownButton.d.ts +5 -1
  172. package/lib/renderers/DropDownButton.js +8 -6
  173. package/lib/renderers/DropDownButton.js.map +2 -2
  174. package/lib/renderers/Form/Checkbox.d.ts +5 -0
  175. package/lib/renderers/Form/Checkbox.js +4 -0
  176. package/lib/renderers/Form/Checkbox.js.map +2 -2
  177. package/lib/renderers/Form/Combo.js +2 -2
  178. package/lib/renderers/Form/Combo.js.map +2 -2
  179. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  180. package/lib/renderers/Form/Editor.d.ts +3 -2
  181. package/lib/renderers/Form/InputCity.d.ts +84 -84
  182. package/lib/renderers/Form/InputCity.js +7 -6
  183. package/lib/renderers/Form/InputCity.js.map +2 -2
  184. package/lib/renderers/Form/InputColor.d.ts +84 -84
  185. package/lib/renderers/Form/InputFile.d.ts +6 -0
  186. package/lib/renderers/Form/InputFile.js +30 -10
  187. package/lib/renderers/Form/InputFile.js.map +2 -2
  188. package/lib/renderers/Form/InputImage.js +16 -7
  189. package/lib/renderers/Form/InputImage.js.map +2 -2
  190. package/lib/renderers/Form/Item.d.ts +1 -1
  191. package/lib/renderers/Form/Item.js.map +1 -1
  192. package/lib/renderers/Form/Options.js +19 -6
  193. package/lib/renderers/Form/Options.js.map +2 -2
  194. package/lib/renderers/Form/Picker.js +2 -2
  195. package/lib/renderers/Form/Picker.js.map +2 -2
  196. package/lib/renderers/Form/Select.d.ts +42 -4
  197. package/lib/renderers/Form/Select.js +37 -3
  198. package/lib/renderers/Form/Select.js.map +2 -2
  199. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  200. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  201. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  202. package/lib/renderers/Form/Transfer.js +18 -3
  203. package/lib/renderers/Form/Transfer.js.map +2 -2
  204. package/lib/renderers/Form/TransferPicker.d.ts +52 -0
  205. package/lib/renderers/Form/TransferPicker.js +43 -0
  206. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  207. package/lib/renderers/Form/TreeSelect.js +2 -2
  208. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  209. package/lib/renderers/Form/index.d.ts +5 -0
  210. package/lib/renderers/Form/index.js +5 -3
  211. package/lib/renderers/Form/index.js.map +2 -2
  212. package/lib/renderers/Form/wrapControl.js +15 -3
  213. package/lib/renderers/Form/wrapControl.js.map +2 -2
  214. package/lib/renderers/IFrame.js +3 -5
  215. package/lib/renderers/IFrame.js.map +2 -2
  216. package/lib/renderers/Image.d.ts +1 -0
  217. package/lib/renderers/Image.js +15 -1
  218. package/lib/renderers/Image.js.map +2 -2
  219. package/lib/renderers/Json.d.ts +4 -0
  220. package/lib/renderers/Json.js +4 -13
  221. package/lib/renderers/Json.js.map +2 -2
  222. package/lib/renderers/Link.d.ts +18 -3
  223. package/lib/renderers/Link.js +27 -15
  224. package/lib/renderers/Link.js.map +2 -2
  225. package/lib/renderers/List.js +1 -1
  226. package/lib/renderers/List.js.map +2 -2
  227. package/lib/renderers/Log.d.ts +2 -2
  228. package/lib/renderers/Log.js +7 -1
  229. package/lib/renderers/Log.js.map +2 -2
  230. package/lib/renderers/Mapping.d.ts +9 -2
  231. package/lib/renderers/Mapping.js +18 -6
  232. package/lib/renderers/Mapping.js.map +2 -2
  233. package/lib/renderers/Nav.d.ts +62 -36
  234. package/lib/renderers/Nav.js +272 -96
  235. package/lib/renderers/Nav.js.map +2 -2
  236. package/lib/renderers/Portlet.d.ts +125 -0
  237. package/lib/renderers/Portlet.js +156 -0
  238. package/lib/renderers/Portlet.js.map +13 -0
  239. package/lib/renderers/Property.js +2 -1
  240. package/lib/renderers/Property.js.map +2 -2
  241. package/lib/renderers/SearchBox.d.ts +6 -1
  242. package/lib/renderers/SearchBox.js +19 -5
  243. package/lib/renderers/SearchBox.js.map +2 -2
  244. package/lib/renderers/SparkLine.d.ts +4 -0
  245. package/lib/renderers/SparkLine.js.map +2 -2
  246. package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
  247. package/lib/renderers/Table/ColumnToggler.js +216 -0
  248. package/lib/renderers/Table/ColumnToggler.js.map +13 -0
  249. package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  250. package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
  251. package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
  252. package/lib/renderers/Table/TableBody.d.ts +4 -0
  253. package/lib/renderers/Table/TableCell.js +3 -1
  254. package/lib/renderers/Table/TableCell.js.map +2 -2
  255. package/lib/renderers/Table/TableContent.d.ts +4 -1
  256. package/lib/renderers/Table/TableContent.js +21 -1
  257. package/lib/renderers/Table/TableContent.js.map +2 -2
  258. package/lib/renderers/Table/index.d.ts +19 -2
  259. package/lib/renderers/Table/index.js +172 -57
  260. package/lib/renderers/Table/index.js.map +2 -2
  261. package/lib/renderers/Tabs.js +9 -1
  262. package/lib/renderers/Tabs.js.map +2 -2
  263. package/lib/renderers/WebComponent.js +1 -1
  264. package/lib/renderers/WebComponent.js.map +2 -2
  265. package/lib/store/combo.d.ts +2 -16
  266. package/lib/store/crud.js +3 -7
  267. package/lib/store/crud.js.map +2 -2
  268. package/lib/store/form.d.ts +1 -1
  269. package/lib/store/form.js +5 -6
  270. package/lib/store/form.js.map +2 -2
  271. package/lib/store/service.js +5 -4
  272. package/lib/store/service.js.map +2 -2
  273. package/lib/store/table.d.ts +260 -3
  274. package/lib/store/table.js +69 -11
  275. package/lib/store/table.js.map +2 -2
  276. package/lib/themes/ang-ie11.css +888 -238
  277. package/lib/themes/ang.css +888 -238
  278. package/lib/themes/ang.css.map +1 -1
  279. package/lib/themes/antd-ie11.css +888 -238
  280. package/lib/themes/antd.css +888 -238
  281. package/lib/themes/antd.css.map +1 -1
  282. package/lib/themes/cxd-ie11.css +1446 -457
  283. package/lib/themes/cxd.css +1446 -457
  284. package/lib/themes/cxd.css.map +1 -1
  285. package/lib/themes/dark-ie11.css +888 -238
  286. package/lib/themes/dark.css +888 -238
  287. package/lib/themes/dark.css.map +1 -1
  288. package/lib/themes/default.css +1446 -457
  289. package/lib/themes/default.css.map +1 -1
  290. package/lib/types.d.ts +37 -0
  291. package/lib/types.js +0 -5
  292. package/lib/types.js.map +2 -2
  293. package/lib/utils/api.d.ts +3 -2
  294. package/lib/utils/api.js +31 -15
  295. package/lib/utils/api.js.map +2 -2
  296. package/lib/utils/dom.d.ts +4 -0
  297. package/lib/utils/dom.js +11 -1
  298. package/lib/utils/dom.js.map +2 -2
  299. package/lib/utils/handleAction.d.ts +7 -0
  300. package/lib/utils/handleAction.js +30 -0
  301. package/lib/utils/handleAction.js.map +13 -0
  302. package/lib/utils/helper.d.ts +3 -1
  303. package/lib/utils/helper.js +14 -5
  304. package/lib/utils/helper.js.map +2 -2
  305. package/lib/utils/icon.js +3 -0
  306. package/lib/utils/icon.js.map +2 -2
  307. package/lib/utils/tpl-builtin.d.ts +1 -1
  308. package/lib/utils/tpl-builtin.js +25 -15
  309. package/lib/utils/tpl-builtin.js.map +2 -2
  310. package/package.json +1 -1
  311. package/schema.json +3341 -998
  312. package/scss/_mixins.scss +1 -3
  313. package/scss/_properties.scss +63 -4
  314. package/scss/_utilities.scss +4 -0
  315. package/scss/base/_common.scss +3 -0
  316. package/scss/base/_normalize.scss +2 -0
  317. package/scss/components/_anchor-nav.scss +88 -29
  318. package/scss/components/_button.scss +4 -5
  319. package/scss/components/_card.scss +8 -14
  320. package/scss/components/_collapse.scss +41 -8
  321. package/scss/components/_column-toggler.scss +234 -0
  322. package/scss/components/_dropdown.scss +2 -1
  323. package/scss/components/_images.scss +2 -1
  324. package/scss/components/_input-box.scss +1 -0
  325. package/scss/components/_link.scss +6 -0
  326. package/scss/components/_mapping.scss +6 -0
  327. package/scss/components/_nav.scss +231 -223
  328. package/scss/components/_page.scss +5 -4
  329. package/scss/components/_picker-columns.scss +124 -0
  330. package/scss/components/_popover.scss +13 -0
  331. package/scss/components/_portlet.scss +51 -0
  332. package/scss/components/_progress.scss +2 -0
  333. package/scss/components/_result-box.scss +1 -0
  334. package/scss/components/_status.scss +1 -1
  335. package/scss/components/_steps.scss +1 -1
  336. package/scss/components/_table.scss +51 -1
  337. package/scss/components/form/_checks.scss +0 -351
  338. package/scss/components/form/_color.scss +1 -0
  339. package/scss/components/form/_date-range.scss +2 -0
  340. package/scss/components/form/_date.scss +2 -0
  341. package/scss/components/form/_fieldset.scss +6 -3
  342. package/scss/components/form/_file.scss +16 -4
  343. package/scss/components/form/_form.scss +48 -0
  344. package/scss/components/form/_image.scss +7 -2
  345. package/scss/components/form/_list.scss +1 -0
  346. package/scss/components/form/_location.scss +1 -1
  347. package/scss/components/form/_selection.scss +354 -0
  348. package/scss/components/form/_text.scss +13 -0
  349. package/scss/components/form/_textarea.scss +10 -0
  350. package/scss/components/form/_transfer.scss +77 -18
  351. package/scss/themes/_common.scss +7 -0
  352. package/scss/themes/_cxd-colors.scss +56 -0
  353. package/scss/themes/_cxd-variables.scss +217 -89
  354. package/scss/themes/cxd.scss +370 -0
  355. package/sdk/ang-ie11.css +1117 -392
  356. package/sdk/ang.css +1110 -342
  357. package/sdk/antd-ie11.css +1105 -380
  358. package/sdk/antd.css +1110 -342
  359. package/sdk/charts.js +13 -13
  360. package/sdk/color-picker.js +65 -69
  361. package/sdk/cropperjs.js +2 -2
  362. package/sdk/cxd-ie11.css +2086 -1062
  363. package/sdk/cxd.css +1643 -495
  364. package/sdk/dark-ie11.css +1117 -392
  365. package/sdk/dark.css +1110 -342
  366. package/sdk/exceljs.js +1 -1
  367. package/sdk/helper.css.map +1 -1
  368. package/sdk/iconfont.svg +2513 -0
  369. package/sdk/iconfont.ttf +0 -0
  370. package/sdk/iconfont.woff +0 -0
  371. package/sdk/ie11-patch.css +1 -0
  372. package/sdk/locale/de-DE.js +4 -0
  373. package/sdk/markdown.js +69 -69
  374. package/sdk/papaparse.js +1 -1
  375. package/sdk/renderers/Form/CityDB.js +1 -1
  376. package/sdk/rest.js +20 -28
  377. package/sdk/rich-text.js +62 -62
  378. package/sdk/sdk-ie11.css +2086 -1062
  379. package/sdk/sdk.css +1643 -495
  380. package/sdk/sdk.js +1219 -1165
  381. package/sdk/thirds/hls.js/hls.js +1 -1
  382. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  383. package/sdk/tinymce.js +57 -57
  384. package/src/Schema.ts +32 -0
  385. package/src/components/Alert.tsx +3 -1
  386. package/src/components/AnchorNav.tsx +15 -4
  387. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  388. package/src/components/Badge.tsx +38 -26
  389. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  390. package/src/components/Collapse.tsx +14 -9
  391. package/src/components/DatePicker.tsx +1 -1
  392. package/src/components/DateRangePicker.tsx +23 -11
  393. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  394. package/src/components/InputBox.tsx +11 -10
  395. package/src/components/Link.tsx +85 -0
  396. package/src/components/ModalManager.ts +1 -1
  397. package/src/components/MonthRangePicker.tsx +10 -2
  398. package/src/components/PickerColumn.tsx +429 -0
  399. package/src/components/PickerContainer.tsx +128 -0
  400. package/src/components/Radios.tsx +3 -8
  401. package/src/components/ResultBox.tsx +9 -9
  402. package/src/components/RichText.tsx +17 -57
  403. package/src/components/SearchBox.tsx +4 -5
  404. package/src/components/Select.tsx +60 -5
  405. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  406. package/src/components/SparkLine.tsx +4 -1
  407. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  408. package/src/components/TabsTransfer.tsx +13 -7
  409. package/src/components/TabsTransferPicker.tsx +85 -0
  410. package/src/components/Toast.tsx +5 -5
  411. package/src/components/Transfer.tsx +71 -50
  412. package/src/components/TransferDropDown.tsx +120 -0
  413. package/src/components/TransferPicker.tsx +91 -0
  414. package/src/components/Tree.tsx +6 -8
  415. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  416. package/src/components/WithRemoteConfig.tsx +7 -2
  417. package/src/components/condition-builder/Field.tsx +5 -5
  418. package/src/components/condition-builder/Func.tsx +3 -3
  419. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  420. package/src/components/condition-builder/Item.tsx +5 -12
  421. package/src/components/icons.tsx +15 -0
  422. package/src/components/index.tsx +13 -13
  423. package/src/envOverwrite.ts +0 -1
  424. package/src/factory.tsx +18 -3
  425. package/src/hooks/index.ts +5 -0
  426. package/src/hooks/use-set-state.ts +19 -0
  427. package/src/hooks/use-touch.ts +100 -0
  428. package/src/hooks/use-update-effect.ts +16 -0
  429. package/src/icons/clock.svg +1 -0
  430. package/src/icons/download.svg +4 -0
  431. package/src/icons/status-close.svg +10 -0
  432. package/src/icons/status-fail.svg +10 -0
  433. package/src/icons/status-info.svg +8 -0
  434. package/src/icons/status-success.svg +10 -0
  435. package/src/icons/status-warning.svg +8 -0
  436. package/src/index.tsx +3 -0
  437. package/src/locale/de-DE.ts +4 -0
  438. package/src/locale/en-US.ts +5 -0
  439. package/src/locale/zh-CN.ts +8 -3
  440. package/src/renderers/Action.tsx +33 -2
  441. package/src/renderers/AnchorNav.tsx +4 -0
  442. package/src/renderers/Avatar.tsx +8 -4
  443. package/src/renderers/Breadcrumb.tsx +5 -1
  444. package/src/renderers/CRUD.tsx +63 -28
  445. package/src/renderers/Card.tsx +63 -34
  446. package/src/renderers/Chart.tsx +6 -2
  447. package/src/renderers/Collapse.tsx +4 -2
  448. package/src/renderers/Dialog.tsx +0 -4
  449. package/src/renderers/Drawer.tsx +0 -4
  450. package/src/renderers/DropDownButton.tsx +18 -13
  451. package/src/renderers/Form/Checkbox.tsx +8 -0
  452. package/src/renderers/Form/Combo.tsx +2 -3
  453. package/src/renderers/Form/InputCity.tsx +4 -8
  454. package/src/renderers/Form/InputFile.tsx +66 -24
  455. package/src/renderers/Form/InputImage.tsx +16 -5
  456. package/src/renderers/Form/Item.tsx +3 -2
  457. package/src/renderers/Form/Options.tsx +32 -7
  458. package/src/renderers/Form/Picker.tsx +3 -2
  459. package/src/renderers/Form/Select.tsx +162 -21
  460. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  461. package/src/renderers/Form/Transfer.tsx +19 -4
  462. package/src/renderers/Form/TransferPicker.tsx +145 -0
  463. package/src/renderers/Form/TreeSelect.tsx +25 -0
  464. package/src/renderers/Form/index.tsx +15 -2
  465. package/src/renderers/Form/wrapControl.tsx +28 -3
  466. package/src/renderers/IFrame.tsx +4 -5
  467. package/src/renderers/Image.tsx +10 -0
  468. package/src/renderers/Json.tsx +9 -9
  469. package/src/renderers/Link.tsx +53 -14
  470. package/src/renderers/List.tsx +1 -1
  471. package/src/renderers/Log.tsx +16 -3
  472. package/src/renderers/Mapping.tsx +27 -11
  473. package/src/renderers/Nav.tsx +325 -122
  474. package/src/renderers/Portlet.tsx +423 -0
  475. package/src/renderers/Property.tsx +3 -2
  476. package/src/renderers/SearchBox.tsx +23 -4
  477. package/src/renderers/SparkLine.tsx +5 -0
  478. package/src/renderers/Table/ColumnToggler.tsx +544 -0
  479. package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
  480. package/src/renderers/Table/TableCell.tsx +16 -1
  481. package/src/renderers/Table/TableContent.tsx +40 -2
  482. package/src/renderers/Table/index.tsx +257 -80
  483. package/src/renderers/Tabs.tsx +9 -1
  484. package/src/renderers/WebComponent.tsx +2 -2
  485. package/src/store/crud.ts +3 -8
  486. package/src/store/form.ts +5 -10
  487. package/src/store/service.ts +5 -4
  488. package/src/store/table.ts +103 -11
  489. package/src/types.ts +57 -0
  490. package/src/utils/api.ts +52 -23
  491. package/src/utils/dom.tsx +12 -0
  492. package/src/utils/handleAction.ts +41 -0
  493. package/src/utils/helper.ts +12 -4
  494. package/src/utils/icon.tsx +4 -0
  495. package/src/utils/tpl-builtin.ts +48 -17
  496. package/dump.rdb +0 -0
  497. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  498. package/lib/components/AssociatedCheckboxes.js +0 -90
  499. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  500. package/lib/components/ChainedCheckboxes.js.map +0 -13
  501. package/lib/components/Checkboxes.js +0 -101
  502. package/lib/components/Checkboxes.js.map +0 -13
  503. package/lib/components/ListCheckboxes.d.ts +0 -739
  504. package/lib/components/ListCheckboxes.js +0 -48
  505. package/lib/components/ListCheckboxes.js.map +0 -13
  506. package/lib/components/ListRadios.d.ts +0 -763
  507. package/lib/components/ListRadios.js +0 -86
  508. package/lib/components/ListRadios.js.map +0 -13
  509. package/lib/components/TableCheckboxes.js.map +0 -13
  510. package/lib/components/TreeCheckboxes.js.map +0 -13
  511. package/lib/components/TreeRadios.d.ts +0 -838
  512. package/lib/components/TreeRadios.js +0 -116
  513. package/lib/components/TreeRadios.js.map +0 -13
  514. package/sdk.zip +0 -0
  515. package/src/components/ListRadios.tsx +0 -159
  516. package/src/components/TreeRadios.tsx +0 -202
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Table/TableCell.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport {RendererProps, Renderer} from '../../factory';\nimport QuickEdit from '../QuickEdit';\nimport Copyable from '../Copyable';\nimport PopOverable from '../PopOver';\nimport {observer} from 'mobx-react';\nimport omit = require('lodash/omit');\nimport {filter} from '../../utils/tpl';\n\nexport interface TableCellProps extends RendererProps {\n wrapperComponent?: React.ReactType;\n column: object;\n}\nexport class TableCell extends React.Component<RendererProps> {\n static defaultProps = {\n wrapperComponent: 'td'\n };\n\n static propsList: Array<string> = [\n 'type',\n 'label',\n 'column',\n 'body',\n 'tpl',\n 'rowSpan',\n 'remark'\n ];\n\n render() {\n let {\n classnames: cx,\n className,\n classNameExpr,\n render,\n style,\n wrapperComponent: Component,\n column,\n value,\n data,\n children,\n width,\n align,\n innerClassName,\n label,\n tabIndex,\n onKeyUp,\n rowSpan,\n body: _body,\n tpl,\n remark,\n prefix,\n affix,\n isHead,\n ...rest\n } = this.props;\n\n const schema = {\n ...column,\n className: innerClassName,\n type: (column && column.type) || 'plain'\n };\n\n // 如果本来就是 type 为 button,不要删除,其他情况下都应该删除。\n if (schema.type !== 'button' && schema.type !== 'dropdown-button') {\n delete schema.label;\n }\n\n let body = children\n ? children\n : render('field', schema, {\n ...omit(rest, Object.keys(schema)),\n inputOnly: true,\n value,\n data\n });\n\n if (width) {\n style = {\n ...style,\n width: (style && style.width) || width\n };\n\n if (!/%$/.test(String(style.width))) {\n body = (\n <div style={{width: style.width}}>\n {prefix}\n {body}\n {affix}\n </div>\n );\n prefix = null;\n affix = null;\n // delete style.width;\n }\n }\n\n if (align) {\n style = {\n ...style,\n textAlign: align\n };\n }\n\n if (!Component) {\n return body as JSX.Element;\n }\n\n if (isHead) {\n Component = 'th';\n }\n\n return (\n <Component\n rowSpan={rowSpan > 1 ? rowSpan : undefined}\n style={style}\n className={cx(\n className,\n column.classNameExpr ? filter(column.classNameExpr, data) : null\n )}\n tabIndex={tabIndex}\n onKeyUp={onKeyUp}\n >\n {prefix}\n {body}\n {affix}\n </Component>\n );\n }\n}\n\n@Renderer({\n test: /(^|\\/)table\\/(?:.*\\/)?cell$/,\n name: 'table-cell'\n})\n@QuickEdit()\n@PopOverable({\n targetOutter: true\n})\n@Copyable()\n@observer\nexport class TableCellRenderer extends TableCell {\n static propsList = [\n 'quickEdit',\n 'quickEditEnabledOn',\n 'popOver',\n 'copyable',\n 'inline',\n ...TableCell.propsList\n ];\n}\n\n@Renderer({\n type: 'field',\n name: 'field'\n})\n@PopOverable()\n@Copyable()\nexport class FieldRenderer extends TableCell {\n static defaultProps = {\n ...TableCell.defaultProps,\n wrapperComponent: 'div'\n };\n}\n"
11
+ "import React from 'react';\nimport {RendererProps, Renderer} from '../../factory';\nimport QuickEdit from '../QuickEdit';\nimport Copyable from '../Copyable';\nimport PopOverable from '../PopOver';\nimport {observer} from 'mobx-react';\nimport omit = require('lodash/omit');\nimport {filter} from '../../utils/tpl';\nimport {Badge} from '../../components/Badge';\n\nexport interface TableCellProps extends RendererProps {\n wrapperComponent?: React.ReactType;\n column: object;\n}\n\nexport class TableCell extends React.Component<RendererProps> {\n static defaultProps = {\n wrapperComponent: 'td'\n };\n\n static propsList: Array<string> = [\n 'type',\n 'label',\n 'column',\n 'body',\n 'tpl',\n 'rowSpan',\n 'remark'\n ];\n\n render() {\n let {\n classnames: cx,\n className,\n classNameExpr,\n render,\n style,\n wrapperComponent: Component,\n column,\n value,\n data,\n children,\n width,\n align,\n innerClassName,\n label,\n tabIndex,\n onKeyUp,\n rowSpan,\n body: _body,\n tpl,\n remark,\n prefix,\n affix,\n isHead,\n colIndex,\n row,\n showBadge,\n itemBadge,\n ...rest\n } = this.props;\n const schema = {\n ...column,\n className: innerClassName,\n type: (column && column.type) || 'plain'\n };\n\n // 如果本来就是 type 为 button,不要删除,其他情况下都应该删除。\n if (schema.type !== 'button' && schema.type !== 'dropdown-button') {\n delete schema.label;\n }\n\n let body = children\n ? children\n : render('field', schema, {\n ...omit(rest, Object.keys(schema)),\n inputOnly: true,\n value,\n data\n });\n\n if (width) {\n style = {\n ...style,\n width: (style && style.width) || width\n };\n\n if (!/%$/.test(String(style.width))) {\n body = (\n <div style={{width: style.width}}>\n {prefix}\n {body}\n {affix}\n </div>\n );\n prefix = null;\n affix = null;\n // delete style.width;\n }\n }\n\n if (align) {\n style = {\n ...style,\n textAlign: align\n };\n }\n\n if (!Component) {\n return body as JSX.Element;\n }\n\n if (isHead) {\n Component = 'th';\n }\n\n return (\n <Component\n rowSpan={rowSpan > 1 ? rowSpan : undefined}\n style={style}\n className={cx(\n className,\n column.classNameExpr ? filter(column.classNameExpr, data) : null\n )}\n tabIndex={tabIndex}\n onKeyUp={onKeyUp}\n >\n {showBadge ? (\n <Badge\n classnames={cx}\n badge={{\n ...itemBadge,\n className: cx(`Table-badge`, itemBadge?.className)\n }}\n data={row.data}\n />\n ) : null}\n {prefix}\n {body}\n {affix}\n </Component>\n );\n }\n}\n\n@Renderer({\n test: /(^|\\/)table\\/(?:.*\\/)?cell$/,\n name: 'table-cell'\n})\n@QuickEdit()\n@PopOverable({\n targetOutter: true\n})\n@Copyable()\n@observer\nexport class TableCellRenderer extends TableCell {\n static propsList = [\n 'quickEdit',\n 'quickEditEnabledOn',\n 'popOver',\n 'copyable',\n 'inline',\n ...TableCell.propsList\n ];\n}\n\n@Renderer({\n type: 'field',\n name: 'field'\n})\n@PopOverable()\n@Copyable()\nexport class FieldRenderer extends TableCell {\n static defaultProps = {\n ...TableCell.defaultProps,\n wrapperComponent: 'div'\n };\n}\n"
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ClassNamesFn } from '../../theme';
3
- import { IColumn, IRow } from '../../store/table';
3
+ import { IColumn, IRow, ITableStore } from '../../store/table';
4
4
  import { SchemaNode, Action } from '../../types';
5
5
  import { LocaleProps } from '../../locale';
6
6
  import { ActionSchema } from '../Action';
@@ -37,7 +37,10 @@ export interface TableContentProps extends LocaleProps {
37
37
  prefixRow?: Array<any>;
38
38
  affixRow?: Array<any>;
39
39
  itemAction?: ActionSchema;
40
+ itemActions?: Array<Action>;
41
+ store: ITableStore;
40
42
  }
41
43
  export declare class TableContent extends React.Component<TableContentProps> {
44
+ renderItemActions(): JSX.Element | null;
42
45
  render(): JSX.Element;
43
46
  }
@@ -5,16 +5,36 @@ var tslib_1 = require("tslib");
5
5
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
6
  var TableBody_1 = require("./TableBody");
7
7
  var mobx_react_1 = require("mobx-react");
8
+ var ItemActionsWrapper_1 = (0, tslib_1.__importDefault)(require("./ItemActionsWrapper"));
8
9
  var TableContent = /** @class */ (function (_super) {
9
10
  (0, tslib_1.__extends)(TableContent, _super);
10
11
  function TableContent() {
11
12
  return _super !== null && _super.apply(this, arguments) || this;
12
13
  }
14
+ TableContent.prototype.renderItemActions = function () {
15
+ var _a = this.props, itemActions = _a.itemActions, render = _a.render, store = _a.store, cx = _a.classnames;
16
+ var finalActions = Array.isArray(itemActions)
17
+ ? itemActions.filter(function (action) { return !action.hiddenOnHover; })
18
+ : [];
19
+ if (!finalActions.length) {
20
+ return null;
21
+ }
22
+ return (react_1.default.createElement(ItemActionsWrapper_1.default, { store: store, classnames: cx },
23
+ react_1.default.createElement("div", { className: cx('Table-itemActions') }, finalActions.map(function (action, index) {
24
+ return render("itemAction/" + index, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, action), { isMenuItem: true }), {
25
+ key: index,
26
+ item: store.hoverRow,
27
+ data: store.hoverRow.locals,
28
+ rowIndex: store.hoverRow.index
29
+ });
30
+ }))));
31
+ };
13
32
  TableContent.prototype.render = function () {
14
- var _a = this.props, placeholder = _a.placeholder, cx = _a.classnames, render = _a.render, className = _a.className, columns = _a.columns, columnsGroup = _a.columnsGroup, onMouseMove = _a.onMouseMove, onScroll = _a.onScroll, tableRef = _a.tableRef, rows = _a.rows, renderHeadCell = _a.renderHeadCell, renderCell = _a.renderCell, onCheck = _a.onCheck, rowClassName = _a.rowClassName, onQuickChange = _a.onQuickChange, footable = _a.footable, footableColumns = _a.footableColumns, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, onAction = _a.onAction, rowClassNameExpr = _a.rowClassNameExpr, data = _a.data, prefixRow = _a.prefixRow, locale = _a.locale, translate = _a.translate, itemAction = _a.itemAction, affixRow = _a.affixRow;
33
+ var _a = this.props, placeholder = _a.placeholder, cx = _a.classnames, render = _a.render, className = _a.className, columns = _a.columns, columnsGroup = _a.columnsGroup, onMouseMove = _a.onMouseMove, onScroll = _a.onScroll, tableRef = _a.tableRef, rows = _a.rows, renderHeadCell = _a.renderHeadCell, renderCell = _a.renderCell, onCheck = _a.onCheck, rowClassName = _a.rowClassName, onQuickChange = _a.onQuickChange, footable = _a.footable, footableColumns = _a.footableColumns, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, onAction = _a.onAction, rowClassNameExpr = _a.rowClassNameExpr, data = _a.data, prefixRow = _a.prefixRow, locale = _a.locale, translate = _a.translate, itemAction = _a.itemAction, affixRow = _a.affixRow, store = _a.store;
15
34
  var tableClassName = cx('Table-table', this.props.tableClassName);
16
35
  var hideHeader = columns.every(function (column) { return !column.label; });
17
36
  return (react_1.default.createElement("div", { onMouseMove: onMouseMove, className: cx('Table-content', className), onScroll: onScroll },
37
+ store.hoverRow ? this.renderItemActions() : null,
18
38
  react_1.default.createElement("table", { ref: tableRef, className: tableClassName },
19
39
  react_1.default.createElement("thead", null,
20
40
  columnsGroup.length ? (react_1.default.createElement("tr", null, columnsGroup.map(function (item, index) { return (react_1.default.createElement("th", { key: index, "data-index": item.index, colSpan: item.colSpan, rowSpan: item.rowSpan }, item.label ? render('tpl', item.label) : null)); }))) : null,
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Table/TableContent.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport {ClassNamesFn} from '../../theme';\nimport {IColumn, IRow} from '../../store/table';\nimport {SchemaNode, Action} from '../../types';\nimport {TableBody} from './TableBody';\nimport {LocaleProps} from '../../locale';\nimport {observer} from 'mobx-react';\nimport {ActionSchema} from '../Action';\n\nexport interface TableContentProps extends LocaleProps {\n className?: string;\n tableClassName?: string;\n classnames: ClassNamesFn;\n columns: Array<IColumn>;\n columnsGroup: Array<{\n label: string;\n index: number;\n colSpan: number;\n rowSpan: number;\n has: Array<any>;\n }>;\n rows: Array<IRow>;\n placeholder?: string;\n render: (region: string, node: SchemaNode, props?: any) => JSX.Element;\n onMouseMove: (event: React.MouseEvent) => void;\n onScroll: (event: React.UIEvent) => void;\n tableRef: (table?: HTMLTableElement | null) => void;\n renderHeadCell: (column: IColumn, props?: any) => JSX.Element;\n renderCell: (\n region: string,\n column: IColumn,\n item: IRow,\n props: any\n ) => React.ReactNode;\n onCheck: (item: IRow, value: boolean, shift?: boolean) => void;\n onQuickChange?: (\n item: IRow,\n values: object,\n saveImmediately?: boolean | any,\n savePristine?: boolean\n ) => void;\n footable?: boolean;\n footableColumns: Array<IColumn>;\n checkOnItemClick?: boolean;\n buildItemProps?: (item: IRow, index: number) => any;\n onAction?: (e: React.UIEvent<any>, action: Action, ctx: object) => void;\n rowClassNameExpr?: string;\n rowClassName?: string;\n data?: any;\n prefixRow?: Array<any>;\n affixRow?: Array<any>;\n itemAction?: ActionSchema;\n}\n\n@observer\nexport class TableContent extends React.Component<TableContentProps> {\n render() {\n const {\n placeholder,\n classnames: cx,\n render,\n className,\n columns,\n columnsGroup,\n onMouseMove,\n onScroll,\n tableRef,\n rows,\n renderHeadCell,\n renderCell,\n onCheck,\n rowClassName,\n onQuickChange,\n footable,\n footableColumns,\n checkOnItemClick,\n buildItemProps,\n onAction,\n rowClassNameExpr,\n data,\n prefixRow,\n locale,\n translate,\n itemAction,\n affixRow\n } = this.props;\n\n const tableClassName = cx('Table-table', this.props.tableClassName);\n const hideHeader = columns.every(column => !column.label);\n\n return (\n <div\n onMouseMove={onMouseMove}\n className={cx('Table-content', className)}\n onScroll={onScroll}\n >\n <table ref={tableRef} className={tableClassName}>\n <thead>\n {columnsGroup.length ? (\n <tr>\n {columnsGroup.map((item, index) => (\n <th\n key={index}\n data-index={item.index}\n colSpan={item.colSpan}\n rowSpan={item.rowSpan}\n >\n {item.label ? render('tpl', item.label) : null}\n </th>\n ))}\n </tr>\n ) : null}\n <tr className={hideHeader ? 'fake-hide' : ''}>\n {columns.map(column =>\n columnsGroup.find(group => ~group.has.indexOf(column))\n ?.rowSpan === 2\n ? null\n : renderHeadCell(column, {\n 'data-index': column.index,\n 'key': column.index\n })\n )}\n </tr>\n </thead>\n {!rows.length ? (\n <tbody>\n <tr className={cx('Table-placeholder')}>\n <td colSpan={columns.length}>\n {render(\n 'placeholder',\n translate(placeholder || 'placeholder.noData')\n )}\n </td>\n </tr>\n </tbody>\n ) : (\n <TableBody\n itemAction={itemAction}\n classnames={cx}\n render={render}\n renderCell={renderCell}\n onCheck={onCheck}\n onQuickChange={onQuickChange}\n footable={footable}\n footableColumns={footableColumns}\n checkOnItemClick={checkOnItemClick}\n buildItemProps={buildItemProps}\n onAction={onAction}\n rowClassNameExpr={rowClassNameExpr}\n rowClassName={rowClassName}\n rows={rows}\n columns={columns}\n locale={locale}\n translate={translate}\n prefixRow={prefixRow}\n affixRow={affixRow}\n data={data}\n ></TableBody>\n )}\n </table>\n </div>\n );\n }\n}\n"
11
+ "import React from 'react';\nimport {ClassNamesFn} from '../../theme';\nimport {IColumn, IRow, ITableStore} from '../../store/table';\nimport {SchemaNode, Action} from '../../types';\nimport {TableBody} from './TableBody';\nimport {LocaleProps} from '../../locale';\nimport {observer} from 'mobx-react';\nimport {ActionSchema} from '../Action';\nimport ItemActionsWrapper from './ItemActionsWrapper';\n\nexport interface TableContentProps extends LocaleProps {\n className?: string;\n tableClassName?: string;\n classnames: ClassNamesFn;\n columns: Array<IColumn>;\n columnsGroup: Array<{\n label: string;\n index: number;\n colSpan: number;\n rowSpan: number;\n has: Array<any>;\n }>;\n rows: Array<IRow>;\n placeholder?: string;\n render: (region: string, node: SchemaNode, props?: any) => JSX.Element;\n onMouseMove: (event: React.MouseEvent) => void;\n onScroll: (event: React.UIEvent) => void;\n tableRef: (table?: HTMLTableElement | null) => void;\n renderHeadCell: (column: IColumn, props?: any) => JSX.Element;\n renderCell: (\n region: string,\n column: IColumn,\n item: IRow,\n props: any\n ) => React.ReactNode;\n onCheck: (item: IRow, value: boolean, shift?: boolean) => void;\n onQuickChange?: (\n item: IRow,\n values: object,\n saveImmediately?: boolean | any,\n savePristine?: boolean\n ) => void;\n footable?: boolean;\n footableColumns: Array<IColumn>;\n checkOnItemClick?: boolean;\n buildItemProps?: (item: IRow, index: number) => any;\n onAction?: (e: React.UIEvent<any>, action: Action, ctx: object) => void;\n rowClassNameExpr?: string;\n rowClassName?: string;\n data?: any;\n prefixRow?: Array<any>;\n affixRow?: Array<any>;\n itemAction?: ActionSchema;\n itemActions?: Array<Action>;\n store: ITableStore;\n}\n\n@observer\nexport class TableContent extends React.Component<TableContentProps> {\n renderItemActions() {\n const {itemActions, render, store, classnames: cx} = this.props;\n const finalActions = Array.isArray(itemActions)\n ? itemActions.filter(action => !action.hiddenOnHover)\n : [];\n\n if (!finalActions.length) {\n return null;\n }\n\n return (\n <ItemActionsWrapper store={store} classnames={cx}>\n <div className={cx('Table-itemActions')}>\n {finalActions.map((action, index) =>\n render(\n `itemAction/${index}`,\n {\n ...(action as any),\n isMenuItem: true\n },\n {\n key: index,\n item: store.hoverRow,\n data: store.hoverRow!.locals,\n rowIndex: store.hoverRow!.index\n }\n )\n )}\n </div>\n </ItemActionsWrapper>\n );\n }\n\n render() {\n const {\n placeholder,\n classnames: cx,\n render,\n className,\n columns,\n columnsGroup,\n onMouseMove,\n onScroll,\n tableRef,\n rows,\n renderHeadCell,\n renderCell,\n onCheck,\n rowClassName,\n onQuickChange,\n footable,\n footableColumns,\n checkOnItemClick,\n buildItemProps,\n onAction,\n rowClassNameExpr,\n data,\n prefixRow,\n locale,\n translate,\n itemAction,\n affixRow,\n store\n } = this.props;\n\n const tableClassName = cx('Table-table', this.props.tableClassName);\n const hideHeader = columns.every(column => !column.label);\n\n return (\n <div\n onMouseMove={onMouseMove}\n className={cx('Table-content', className)}\n onScroll={onScroll}\n >\n {store.hoverRow ? this.renderItemActions() : null}\n <table ref={tableRef} className={tableClassName}>\n <thead>\n {columnsGroup.length ? (\n <tr>\n {columnsGroup.map((item, index) => (\n <th\n key={index}\n data-index={item.index}\n colSpan={item.colSpan}\n rowSpan={item.rowSpan}\n >\n {item.label ? render('tpl', item.label) : null}\n </th>\n ))}\n </tr>\n ) : null}\n <tr className={hideHeader ? 'fake-hide' : ''}>\n {columns.map(column =>\n columnsGroup.find(group => ~group.has.indexOf(column))\n ?.rowSpan === 2\n ? null\n : renderHeadCell(column, {\n 'data-index': column.index,\n 'key': column.index\n })\n )}\n </tr>\n </thead>\n {!rows.length ? (\n <tbody>\n <tr className={cx('Table-placeholder')}>\n <td colSpan={columns.length}>\n {render(\n 'placeholder',\n translate(placeholder || 'placeholder.noData')\n )}\n </td>\n </tr>\n </tbody>\n ) : (\n <TableBody\n itemAction={itemAction}\n classnames={cx}\n render={render}\n renderCell={renderCell}\n onCheck={onCheck}\n onQuickChange={onQuickChange}\n footable={footable}\n footableColumns={footableColumns}\n checkOnItemClick={checkOnItemClick}\n buildItemProps={buildItemProps}\n onAction={onAction}\n rowClassNameExpr={rowClassNameExpr}\n rowClassName={rowClassName}\n rows={rows}\n columns={columns}\n locale={locale}\n translate={translate}\n prefixRow={prefixRow}\n affixRow={affixRow}\n data={data}\n ></TableBody>\n )}\n </table>\n </div>\n );\n }\n}\n"
12
12
  ]
13
13
  }
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { RendererProps } from '../../factory';
3
3
  import { SchemaNode, Action } from '../../types';
4
+ import './ColumnToggler';
4
5
  import { ITableStore, IColumn, IRow } from '../../store/table';
5
6
  import Sortable from 'sortablejs';
6
7
  import { TableCell } from './TableCell';
@@ -9,6 +10,7 @@ import { SchemaPopOver } from '../PopOver';
9
10
  import { SchemaQuickEdit } from '../QuickEdit';
10
11
  import { SchemaCopyable } from '../Copyable';
11
12
  import { SchemaRemark } from '../Remark';
13
+ import { BadgeSchema } from '../../components/Badge';
12
14
  /**
13
15
  * 表格列,不指定类型时默认为文本类型。
14
16
  */
@@ -48,7 +50,7 @@ export declare type TableColumnObject = {
48
50
  /**
49
51
  * 是否可快速搜索
50
52
  */
51
- searchable?: boolean;
53
+ searchable?: boolean | SchemaObject;
52
54
  /**
53
55
  * 配置是否默认展示
54
56
  */
@@ -191,6 +193,14 @@ export interface TableSchema extends BaseSchema {
191
193
  * 行样式表表达式
192
194
  */
193
195
  rowClassNameExpr?: string;
196
+ /**
197
+ * 行角标
198
+ */
199
+ itemBadge?: BadgeSchema;
200
+ /**
201
+ * 开启查询区域,会根据列元素的searchable属性值,自动生成查询条件表单
202
+ */
203
+ autoGenerateFilter?: boolean;
194
204
  }
195
205
  export interface TableProps extends RendererProps {
196
206
  title?: string;
@@ -245,6 +255,7 @@ export interface TableProps extends RendererProps {
245
255
  popOverContainer?: any;
246
256
  canAccessSuperData?: boolean;
247
257
  reUseRow?: boolean;
258
+ itemBadge?: BadgeSchema;
248
259
  }
249
260
  declare type ExportExcelToolbar = SchemaNode & {
250
261
  api?: SchemaApi;
@@ -280,6 +291,11 @@ export default class Table extends React.Component<TableProps, object> {
280
291
  constructor(props: TableProps);
281
292
  static syncRows(store: ITableStore, props: TableProps, prevProps?: TableProps): boolean;
282
293
  componentDidMount(): void;
294
+ /**
295
+ * 自动设置表格高度占满界面剩余区域
296
+ * 用 css 实现有点麻烦,要改很多结构,所以先用 dom hack 了,避免对之前的功能有影响
297
+ */
298
+ updateAutoFillHeight(): void;
283
299
  componentDidUpdate(prevProps: TableProps): void;
284
300
  componentWillUnmount(): void;
285
301
  subFormRef(form: any, x: number, y: number): void;
@@ -323,6 +339,8 @@ export default class Table extends React.Component<TableProps, object> {
323
339
  handleColResizeMouseDown(e: React.MouseEvent<HTMLElement>): void;
324
340
  handleColResizeMouseMove(e: MouseEvent): void;
325
341
  handleColResizeMouseUp(e: MouseEvent): void;
342
+ handleColumnToggle(columns: Array<IColumn>): void;
343
+ renderAutoFilterForm(): React.ReactNode;
326
344
  renderHeading(): JSX.Element | null;
327
345
  renderHeadCell(column: IColumn, props?: any): JSX.Element;
328
346
  renderCell(region: string, column: IColumn, item: IRow, props: any, ignoreDrag?: boolean): JSX.Element | null;
@@ -335,7 +353,6 @@ export default class Table extends React.Component<TableProps, object> {
335
353
  renderActions(region: string): JSX.Element | null;
336
354
  renderHeader(editable?: boolean): JSX.Element | JSX.Element[] | null;
337
355
  renderFooter(): JSX.Element | JSX.Element[] | null;
338
- renderItemActions(): JSX.Element | null;
339
356
  renderTableContent(): JSX.Element;
340
357
  render(): JSX.Element;
341
358
  }
@@ -7,10 +7,11 @@ var react_dom_1 = require("react-dom");
7
7
  var factory_1 = require("../../factory");
8
8
  var forEach_1 = (0, tslib_1.__importDefault)(require("lodash/forEach"));
9
9
  var tpl_1 = require("../../utils/tpl");
10
- var DropDownButton_1 = (0, tslib_1.__importDefault)(require("../DropDownButton"));
10
+ require("./ColumnToggler");
11
11
  var Checkbox_1 = (0, tslib_1.__importDefault)(require("../../components/Checkbox"));
12
12
  var Button_1 = (0, tslib_1.__importDefault)(require("../../components/Button"));
13
13
  var table_1 = require("../../store/table");
14
+ var file_saver_1 = require("file-saver");
14
15
  var helper_1 = require("../../utils/helper");
15
16
  var tpl_builtin_1 = require("../../utils/tpl-builtin");
16
17
  var debounce_1 = (0, tslib_1.__importDefault)(require("lodash/debounce"));
@@ -26,6 +27,9 @@ var TableContent_1 = require("./TableContent");
26
27
  var image_1 = require("../../utils/image");
27
28
  var TableBody_1 = require("./TableBody");
28
29
  var mobx_state_tree_1 = require("mobx-state-tree");
30
+ var ColumnToggler_1 = (0, tslib_1.__importDefault)(require("./ColumnToggler"));
31
+ var offset_1 = (0, tslib_1.__importDefault)(require("../../utils/offset"));
32
+ var dom_1 = require("../../utils/dom");
29
33
  /**
30
34
  * 将 url 转成绝对地址
31
35
  */
@@ -75,6 +79,9 @@ var Table = /** @class */ (function (_super) {
75
79
  _this.handleMouseMove = _this.handleMouseMove.bind(_this);
76
80
  _this.handleMouseLeave = _this.handleMouseLeave.bind(_this);
77
81
  _this.subFormRef = _this.subFormRef.bind(_this);
82
+ _this.handleColumnToggle = _this.handleColumnToggle.bind(_this);
83
+ _this.renderAutoFilterForm = _this.renderAutoFilterForm.bind(_this);
84
+ _this.updateAutoFillHeight = _this.updateAutoFillHeight.bind(_this);
78
85
  var store = props.store, columns = props.columns, selectable = props.selectable, columnsTogglable = props.columnsTogglable, draggable = props.draggable, orderBy = props.orderBy, orderDir = props.orderDir, multiple = props.multiple, footable = props.footable, primaryField = props.primaryField, itemCheckableOn = props.itemCheckableOn, itemDraggableOn = props.itemDraggableOn, hideCheckToggler = props.hideCheckToggler, combineFromIndex = props.combineFromIndex, expandConfig = props.expandConfig, formItem = props.formItem, keepItemSelectionOnPageChange = props.keepItemSelectionOnPageChange, maxKeepItemSelectionLength = props.maxKeepItemSelectionLength;
79
86
  var combineNum = props.combineNum;
80
87
  if (typeof combineNum === 'string') {
@@ -145,6 +152,54 @@ var Table = /** @class */ (function (_super) {
145
152
  this.affixDetect();
146
153
  parent.addEventListener('scroll', this.affixDetect);
147
154
  window.addEventListener('resize', this.affixDetect);
155
+ this.updateAutoFillHeight();
156
+ window.addEventListener('resize', this.updateAutoFillHeight);
157
+ };
158
+ /**
159
+ * 自动设置表格高度占满界面剩余区域
160
+ * 用 css 实现有点麻烦,要改很多结构,所以先用 dom hack 了,避免对之前的功能有影响
161
+ */
162
+ Table.prototype.updateAutoFillHeight = function () {
163
+ var _this = this;
164
+ var _a = this.props, autoFillHeight = _a.autoFillHeight, footerToolbar = _a.footerToolbar, ns = _a.classPrefix;
165
+ if (!autoFillHeight) {
166
+ return;
167
+ }
168
+ var table = (0, react_dom_1.findDOMNode)(this);
169
+ var tableContent = table.querySelector("." + ns + "Table-content");
170
+ var tableContentWrap = table.querySelector("." + ns + "Table-contentWrap");
171
+ var footToolbar = table.querySelector("." + ns + "Table-footToolbar");
172
+ if (!tableContent) {
173
+ return;
174
+ }
175
+ // 计算 table-content 在 dom 中的位置
176
+ var tableContentTop = (0, offset_1.default)(tableContent).top;
177
+ var viewportHeight = window.innerHeight;
178
+ // 有时候会拿不到 footToolbar?
179
+ var footToolbarHeight = footToolbar ? (0, offset_1.default)(footToolbar).height : 0;
180
+ // 有时候会拿不到 footToolbar,等一下在执行
181
+ if (!footToolbarHeight && footerToolbar && footerToolbar.length) {
182
+ setTimeout(function () {
183
+ _this.updateAutoFillHeight();
184
+ }, 100);
185
+ return;
186
+ }
187
+ var tableContentWrapMarginButtom = (0, dom_1.getStyleNumber)(tableContentWrap, 'margin-bottom');
188
+ // 循环计算父级节点的 pddding,这里不考虑父级节点还可能会有其它兄弟节点的情况了
189
+ var allParentPaddingButtom = 0;
190
+ var parentNode = tableContent.parentElement;
191
+ while (parentNode) {
192
+ var paddingButtom = (0, dom_1.getStyleNumber)(parentNode, 'padding-bottom');
193
+ var borderBottom = (0, dom_1.getStyleNumber)(parentNode, 'border-bottom-width');
194
+ allParentPaddingButtom =
195
+ allParentPaddingButtom + paddingButtom + borderBottom;
196
+ parentNode = parentNode.parentElement;
197
+ }
198
+ tableContent.style.height = viewportHeight -
199
+ tableContentTop -
200
+ tableContentWrapMarginButtom -
201
+ footToolbarHeight -
202
+ allParentPaddingButtom + "px";
148
203
  };
149
204
  Table.prototype.componentDidUpdate = function (prevProps) {
150
205
  var props = this.props;
@@ -199,8 +254,12 @@ var Table = /** @class */ (function (_super) {
199
254
  Table.syncRows(store, props, prevProps) && this.syncSelected();
200
255
  }
201
256
  else if ((0, helper_1.isArrayChildrenModified)(prevProps.selected, props.selected)) {
257
+ var prevSelectedRows = store.selectedRows
258
+ .map(function (item) { return item.id; })
259
+ .join(',');
202
260
  store.updateSelected(props.selected || [], props.valueField);
203
- this.syncSelected();
261
+ var selectedRows = store.selectedRows.map(function (item) { return item.id; }).join(',');
262
+ prevSelectedRows !== selectedRows && this.syncSelected();
204
263
  }
205
264
  this.updateTableInfoLazy();
206
265
  };
@@ -209,6 +268,7 @@ var Table = /** @class */ (function (_super) {
209
268
  var parent = this.parentNode;
210
269
  parent && parent.removeEventListener('scroll', this.affixDetect);
211
270
  window.removeEventListener('resize', this.affixDetect);
271
+ window.removeEventListener('resize', this.updateAutoFillHeight);
212
272
  this.updateTableInfoLazy.cancel();
213
273
  this.unSensor && this.unSensor();
214
274
  formItem && (0, mobx_state_tree_1.isAlive)(formItem) && formItem.setSubStore(null);
@@ -343,7 +403,7 @@ var Table = /** @class */ (function (_super) {
343
403
  };
344
404
  Table.prototype.affixDetect = function () {
345
405
  var _a, _b, _c, _d;
346
- if (!this.props.affixHeader || !this.table) {
406
+ if (!this.props.affixHeader || !this.table || this.props.autoFillHeight) {
347
407
  return;
348
408
  }
349
409
  var ns = this.props.classPrefix;
@@ -515,7 +575,7 @@ var Table = /** @class */ (function (_super) {
515
575
  return (0, react_dom_1.findDOMNode)(this);
516
576
  };
517
577
  Table.prototype.handleMouseMove = function (e) {
518
- var tr = e.target.closest('tr[data-index]');
578
+ var tr = e.target.closest('tr[data-id]');
519
579
  if (!tr) {
520
580
  return;
521
581
  }
@@ -526,17 +586,17 @@ var Table = /** @class */ (function (_super) {
526
586
  (!itemActions || !itemActions.filter(function (item) { return !item.hiddenOnHover; }).length)) {
527
587
  return;
528
588
  }
529
- var index = parseInt(tr.getAttribute('data-index'), 10);
530
- if (store.hoverIndex === index) {
589
+ var id = tr.getAttribute('data-id');
590
+ var row = store.hoverRow;
591
+ if ((row === null || row === void 0 ? void 0 : row.id) === id) {
531
592
  return;
532
593
  }
533
- store.rows.forEach(function (item, key) { return item.setIsHover(index === key); });
594
+ (0, helper_1.eachTree)(store.rows, function (item) { return item.setIsHover(item.id === id); });
534
595
  };
535
596
  Table.prototype.handleMouseLeave = function () {
536
597
  var store = this.props.store;
537
- if (~store.hoverIndex) {
538
- store.rows[store.hoverIndex].setIsHover(false);
539
- }
598
+ var row = store.hoverRow;
599
+ row === null || row === void 0 ? void 0 : row.setIsHover(false);
540
600
  };
541
601
  Table.prototype.handleDragStart = function (e) {
542
602
  var store = this.props.store;
@@ -674,6 +734,87 @@ var Table = /** @class */ (function (_super) {
674
734
  document.removeEventListener('mousemove', this.handleColResizeMouseMove);
675
735
  document.removeEventListener('mouseup', this.handleColResizeMouseUp);
676
736
  };
737
+ Table.prototype.handleColumnToggle = function (columns) {
738
+ var store = this.props.store;
739
+ store.updateColumns(columns);
740
+ };
741
+ Table.prototype.renderAutoFilterForm = function () {
742
+ var _a = this.props, render = _a.render, store = _a.store, onSearchableFromReset = _a.onSearchableFromReset, onSearchableFromSubmit = _a.onSearchableFromSubmit, onSearchableFromInit = _a.onSearchableFromInit, cx = _a.classnames, __ = _a.translate;
743
+ var searchableColumns = store.searchableColumns;
744
+ var activedSearchableColumns = store.activedSearchableColumns;
745
+ if (!searchableColumns.length) {
746
+ return null;
747
+ }
748
+ var groupedSearchableColumns = [
749
+ { body: [], md: 4 },
750
+ { body: [], md: 4 },
751
+ { body: [], md: 4 }
752
+ ];
753
+ activedSearchableColumns.forEach(function (column, index) {
754
+ var _a, _b, _c, _d;
755
+ groupedSearchableColumns[index % 3].body.push((0, tslib_1.__assign)((0, tslib_1.__assign)({}, column.searchable), { name: (_b = (_a = column.searchable) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : column.name, label: (_d = (_c = column.searchable) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : column.label, mode: 'horizontal' }));
756
+ });
757
+ return render('searchable-form', {
758
+ type: 'form',
759
+ api: null,
760
+ title: '',
761
+ mode: 'normal',
762
+ submitText: __('search'),
763
+ body: [
764
+ {
765
+ type: 'grid',
766
+ columns: groupedSearchableColumns
767
+ }
768
+ ],
769
+ actions: [
770
+ {
771
+ type: 'dropdown-button',
772
+ label: __('Table.searchFields'),
773
+ className: cx('Table-searchableForm-dropdown', 'mr-2'),
774
+ level: 'link',
775
+ trigger: 'click',
776
+ size: 'sm',
777
+ align: 'right',
778
+ buttons: searchableColumns.map(function (column) {
779
+ var _a, _b, _c, _d;
780
+ return {
781
+ type: 'checkbox',
782
+ className: cx('Table-searchableForm-checkbox'),
783
+ name: "__search_" + ((_b = (_a = column.searchable) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : column.name),
784
+ option: (_d = (_c = column.searchable) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : column.label,
785
+ value: column.enableSearch,
786
+ badge: {
787
+ offset: [-10, 5],
788
+ visibleOn: "" + (column.toggable && !column.toggled && column.enableSearch)
789
+ },
790
+ onChange: function (value) {
791
+ column.setEnableSearch(value);
792
+ }
793
+ };
794
+ })
795
+ },
796
+ {
797
+ type: 'submit',
798
+ label: __('search'),
799
+ level: 'primary',
800
+ className: 'w-18'
801
+ },
802
+ {
803
+ type: 'reset',
804
+ label: __('reset'),
805
+ className: 'w-18'
806
+ }
807
+ ]
808
+ }, {
809
+ key: 'searchable-form',
810
+ panelClassName: cx('Table-searchableForm'),
811
+ actionsClassName: cx('Table-searchableForm-footer'),
812
+ onReset: onSearchableFromReset,
813
+ onSubmit: onSearchableFromSubmit,
814
+ onInit: onSearchableFromInit,
815
+ formStore: undefined
816
+ });
817
+ };
677
818
  Table.prototype.renderHeading = function () {
678
819
  var _a = this.props, title = _a.title, store = _a.store, hideQuickSaveBtn = _a.hideQuickSaveBtn, data = _a.data, cx = _a.classnames, saveImmediately = _a.saveImmediately, headingClassName = _a.headingClassName, quickSaveApi = _a.quickSaveApi, __ = _a.translate;
679
820
  if (title ||
@@ -705,7 +846,7 @@ var Table = /** @class */ (function (_super) {
705
846
  return null;
706
847
  };
707
848
  Table.prototype.renderHeadCell = function (column, props) {
708
- var _a = this.props, store = _a.store, query = _a.query, onQuery = _a.onQuery, multiple = _a.multiple, env = _a.env, render = _a.render, ns = _a.classPrefix, resizable = _a.resizable, cx = _a.classnames;
849
+ var _a = this.props, store = _a.store, query = _a.query, onQuery = _a.onQuery, multiple = _a.multiple, env = _a.env, render = _a.render, ns = _a.classPrefix, resizable = _a.resizable, cx = _a.classnames, autoGenerateFilter = _a.autoGenerateFilter;
709
850
  if (column.type === '__checkme') {
710
851
  return (react_1.default.createElement("th", (0, tslib_1.__assign)({}, props, { className: cx(column.pristine.className) }), store.rows.length && multiple ? (react_1.default.createElement(Checkbox_1.default, { classPrefix: ns, partial: !store.allChecked, checked: store.someChecked, disabled: store.disabledHeadCheckbox, onChange: this.handleCheckAll })) : ('\u00A0')));
711
852
  }
@@ -724,7 +865,7 @@ var Table = /** @class */ (function (_super) {
724
865
  react_1.default.createElement(icons_1.Icon, { icon: "right-arrow-bold", className: "icon" })))));
725
866
  }
726
867
  var affix = null;
727
- if (column.searchable && column.name) {
868
+ if (column.searchable && column.name && !autoGenerateFilter) {
728
869
  affix = (react_1.default.createElement(HeadCellSearchDropdown_1.HeadCellSearchDropDown, (0, tslib_1.__assign)({}, this.props, { onQuery: onQuery, name: column.name, searchable: column.searchable, sortable: column.sortable, type: column.type, data: query, orderBy: store.orderBy, orderDir: store.orderDir, popOverContainer: this.getPopOverContainer })));
729
870
  }
730
871
  else if (column.sortable && column.name) {
@@ -793,7 +934,7 @@ var Table = /** @class */ (function (_super) {
793
934
  };
794
935
  Table.prototype.renderCell = function (region, column, item, props, ignoreDrag) {
795
936
  if (ignoreDrag === void 0) { ignoreDrag = false; }
796
- var _a = this.props, render = _a.render, store = _a.store, multiple = _a.multiple, ns = _a.classPrefix, cx = _a.classnames, checkOnItemClick = _a.checkOnItemClick, popOverContainer = _a.popOverContainer, canAccessSuperData = _a.canAccessSuperData;
937
+ var _a = this.props, render = _a.render, store = _a.store, multiple = _a.multiple, ns = _a.classPrefix, cx = _a.classnames, checkOnItemClick = _a.checkOnItemClick, popOverContainer = _a.popOverContainer, canAccessSuperData = _a.canAccessSuperData, itemBadge = _a.itemBadge;
797
938
  if (column.name && item.rowSpans[column.name] === 0) {
798
939
  return null;
799
940
  }
@@ -826,7 +967,9 @@ var Table = /** @class */ (function (_super) {
826
967
  }
827
968
  var subProps = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, props), { btnDisabled: store.dragging, data: item.locals, value: column.name
828
969
  ? (0, tpl_builtin_1.resolveVariable)(column.name, canAccessSuperData ? item.locals : item.data)
829
- : column.value, popOverContainer: popOverContainer || this.getPopOverContainer, rowSpan: item.rowSpans[column.name], quickEditFormRef: this.subFormRef, prefix: prefix, onImageEnlarge: this.handleImageEnlarge, canAccessSuperData: canAccessSuperData });
970
+ : column.value, popOverContainer: popOverContainer || this.getPopOverContainer, rowSpan: item.rowSpans[column.name], quickEditFormRef: this.subFormRef, prefix: prefix, onImageEnlarge: this.handleImageEnlarge, canAccessSuperData: canAccessSuperData, row: item, itemBadge: itemBadge, showBadge: !props.isHead &&
971
+ itemBadge &&
972
+ store.firstToggledColumnIndex === props.colIndex });
830
973
  delete subProps.label;
831
974
  return render(region, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, column.pristine), { column: column.pristine, type: 'cell' }), subProps);
832
975
  };
@@ -907,14 +1050,15 @@ var Table = /** @class */ (function (_super) {
907
1050
  return void 0;
908
1051
  };
909
1052
  Table.prototype.renderColumnsToggler = function (config) {
910
- var _a = this.props, className = _a.className, store = _a.store, ns = _a.classPrefix, cx = _a.classnames, rest = (0, tslib_1.__rest)(_a, ["className", "store", "classPrefix", "classnames"]);
1053
+ var _a;
1054
+ var _b = this.props, className = _b.className, store = _b.store, ns = _b.classPrefix, cx = _b.classnames, rest = (0, tslib_1.__rest)(_b, ["className", "store", "classPrefix", "classnames"]);
911
1055
  var __ = rest.translate;
912
1056
  var env = rest.env;
913
1057
  var render = this.props.render;
914
1058
  if (!store.columnsTogglable) {
915
1059
  return null;
916
1060
  }
917
- return (react_1.default.createElement(DropDownButton_1.default, (0, tslib_1.__assign)({}, rest, { tooltip: __('Table.columnsVisibility'), tooltipContainer: env && env.getModalContainer ? env.getModalContainer : undefined, align: config ? config.align : 'left', isActived: store.hasColumnHidden(), classnames: cx, classPrefix: ns, key: "columns-toggable", size: "sm", label: react_1.default.createElement(icons_1.Icon, { icon: "columns", className: "icon m-r-none" }) }), store.toggableColumns.map(function (column) { return (react_1.default.createElement("li", { className: cx('DropDown-menuItem'), key: column.index, onClick: column.toggleToggle },
1061
+ return (react_1.default.createElement(ColumnToggler_1.default, (0, tslib_1.__assign)({}, rest, ((0, helper_1.isObject)(config) ? config : {}), { tooltip: (config === null || config === void 0 ? void 0 : config.tooltip) || __('Table.columnsVisibility'), tooltipContainer: env && env.getModalContainer ? env.getModalContainer : undefined, align: (_a = config === null || config === void 0 ? void 0 : config.align) !== null && _a !== void 0 ? _a : 'left', isActived: store.hasColumnHidden(), classnames: cx, classPrefix: ns, key: "columns-toggable", size: (config === null || config === void 0 ? void 0 : config.size) || 'sm', label: (config === null || config === void 0 ? void 0 : config.label) || react_1.default.createElement(icons_1.Icon, { icon: "columns", className: "icon m-r-none" }), draggable: config === null || config === void 0 ? void 0 : config.draggable, columns: store.columnsData, onColumnToggle: this.handleColumnToggle }), store.toggableColumns.map(function (column) { return (react_1.default.createElement("li", { className: cx('ColumnToggler-menuItem'), key: column.index, onClick: column.toggleToggle },
918
1062
  react_1.default.createElement(Checkbox_1.default, { size: "sm", classPrefix: ns, checked: column.toggled }, column.label ? render('tpl', column.label) : null))); })));
919
1063
  };
920
1064
  Table.prototype.renderDragToggler = function () {
@@ -1142,7 +1286,7 @@ var Table = /** @class */ (function (_super) {
1142
1286
  return [3 /*break*/, 17];
1143
1287
  case 16:
1144
1288
  if (column.tpl) {
1145
- sheetRow.getCell(columIndex).value = (0, helper_1.removeHTMLTag)((0, tpl_1.filter)(column.tpl, row.data));
1289
+ sheetRow.getCell(columIndex).value = (0, helper_1.removeHTMLTag)((0, tpl_1.filter)(column.tpl, (0, helper_1.createObject)(data, row.data)));
1146
1290
  }
1147
1291
  else {
1148
1292
  sheetRow.getCell(columIndex).value = value;
@@ -1161,7 +1305,7 @@ var Table = /** @class */ (function (_super) {
1161
1305
  blob = new Blob([buffer], {
1162
1306
  type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
1163
1307
  });
1164
- saveAs(blob, filename + '.xlsx');
1308
+ (0, file_saver_1.saveAs)(blob, filename + '.xlsx');
1165
1309
  }
1166
1310
  return [2 /*return*/];
1167
1311
  }
@@ -1239,55 +1383,25 @@ var Table = /** @class */ (function (_super) {
1239
1383
  ? [toolbarNode, footerNode]
1240
1384
  : footerNode || toolbarNode || null;
1241
1385
  };
1242
- Table.prototype.renderItemActions = function () {
1243
- var _a = this.props, itemActions = _a.itemActions, render = _a.render, store = _a.store, cx = _a.classnames;
1244
- var finalActions = Array.isArray(itemActions)
1245
- ? itemActions.filter(function (action) { return !action.hiddenOnHover; })
1246
- : [];
1247
- if (!finalActions.length) {
1248
- return null;
1249
- }
1250
- var rowIndex = store.hoverIndex;
1251
- var heights = this.heights;
1252
- var height = 40;
1253
- var top = 0;
1254
- if (heights && heights[rowIndex]) {
1255
- height = heights[rowIndex];
1256
- top += heights.header;
1257
- for (var i = rowIndex - 1; i >= 0; i--) {
1258
- top += heights[i];
1259
- }
1260
- }
1261
- return (react_1.default.createElement("div", { className: cx('Table-itemActions-wrap'), style: {
1262
- top: top,
1263
- height: height
1264
- } },
1265
- react_1.default.createElement("div", { className: cx('Table-itemActions') }, finalActions.map(function (action, index) {
1266
- return render("itemAction/" + index, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, action), { isMenuItem: true }), {
1267
- key: index,
1268
- item: store.rows[rowIndex],
1269
- data: store.rows[rowIndex].locals,
1270
- rowIndex: rowIndex
1271
- });
1272
- }))));
1273
- };
1274
1386
  Table.prototype.renderTableContent = function () {
1275
- var _a = this.props, cx = _a.classnames, tableClassName = _a.tableClassName, store = _a.store, placeholder = _a.placeholder, render = _a.render, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, rowClassNameExpr = _a.rowClassNameExpr, rowClassName = _a.rowClassName, prefixRow = _a.prefixRow, locale = _a.locale, affixRow = _a.affixRow, translate = _a.translate, itemAction = _a.itemAction;
1387
+ var _a = this.props, cx = _a.classnames, tableClassName = _a.tableClassName, store = _a.store, placeholder = _a.placeholder, render = _a.render, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, rowClassNameExpr = _a.rowClassNameExpr, rowClassName = _a.rowClassName, prefixRow = _a.prefixRow, locale = _a.locale, affixRow = _a.affixRow, tableContentClassName = _a.tableContentClassName, translate = _a.translate, itemAction = _a.itemAction, autoFillHeight = _a.autoFillHeight, itemActions = _a.itemActions;
1276
1388
  // 理论上来说 store.rows 应该也行啊
1277
1389
  // 不过目前看来只有这样写它才会重新更新视图
1278
1390
  store.rows.length;
1279
- return (react_1.default.createElement(TableContent_1.TableContent, { tableClassName: cx(store.combineNum > 0 ? 'Table-table--withCombine' : '', tableClassName), itemAction: itemAction, classnames: cx, columns: store.filteredColumns, columnsGroup: store.columnGroup, rows: store.rows, placeholder: placeholder, render: render, onMouseMove: this.handleMouseMove, onScroll: this.handleOutterScroll, tableRef: this.tableRef, renderHeadCell: this.renderHeadCell, renderCell: this.renderCell, onCheck: this.handleCheck, onQuickChange: store.dragging ? undefined : this.handleQuickChange, footable: store.footable, footableColumns: store.footableColumns, checkOnItemClick: checkOnItemClick, buildItemProps: buildItemProps, onAction: this.handleAction, rowClassNameExpr: rowClassNameExpr, rowClassName: rowClassName, data: store.data, prefixRow: prefixRow, affixRow: affixRow, locale: locale, translate: translate }));
1391
+ return (react_1.default.createElement(TableContent_1.TableContent, { tableClassName: cx(store.combineNum > 0 ? 'Table-table--withCombine' : '', { 'Table-table--checkOnItemClick': checkOnItemClick }, tableClassName), className: tableContentClassName, itemActions: itemActions, itemAction: itemAction, store: store, classnames: cx, columns: store.filteredColumns, columnsGroup: store.columnGroup, rows: store.rows, placeholder: placeholder, render: render, onMouseMove: this.handleMouseMove, onScroll: this.handleOutterScroll, tableRef: this.tableRef, renderHeadCell: this.renderHeadCell, renderCell: this.renderCell, onCheck: this.handleCheck, onQuickChange: store.dragging ? undefined : this.handleQuickChange, footable: store.footable, footableColumns: store.footableColumns, checkOnItemClick: checkOnItemClick, buildItemProps: buildItemProps, onAction: this.handleAction, rowClassNameExpr: rowClassNameExpr, rowClassName: rowClassName, data: store.data, prefixRow: prefixRow, affixRow: affixRow, locale: locale, translate: translate }));
1280
1392
  };
1281
1393
  Table.prototype.render = function () {
1282
- var _a = this.props, className = _a.className, store = _a.store, cx = _a.classnames, affixColumns = _a.affixColumns;
1394
+ var _a = this.props, className = _a.className, store = _a.store, cx = _a.classnames, affixColumns = _a.affixColumns, autoFillHeight = _a.autoFillHeight, autoGenerateFilter = _a.autoGenerateFilter;
1283
1395
  this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了,已经渲染了就不重复渲染了。
1284
1396
  var heading = this.renderHeading();
1285
1397
  var header = this.renderHeader();
1286
1398
  var footer = this.renderFooter();
1287
1399
  var tableClassName = cx('Table-table', store.combineNum > 0 ? 'Table-table--withCombine' : '', this.props.tableClassName);
1288
1400
  return (react_1.default.createElement("div", { className: cx('Table', className, {
1289
- 'Table--unsaved': !!store.modified || !!store.moved
1401
+ 'Table--unsaved': !!store.modified || !!store.moved,
1402
+ 'Table--autoFillHeight': autoFillHeight
1290
1403
  }) },
1404
+ autoGenerateFilter ? this.renderAutoFilterForm() : null,
1291
1405
  header,
1292
1406
  heading,
1293
1407
  react_1.default.createElement("div", { className: cx('Table-contentWrap'), onMouseLeave: this.handleMouseLeave },
@@ -1297,8 +1411,7 @@ var Table = /** @class */ (function (_super) {
1297
1411
  react_1.default.createElement("div", { className: cx('Table-fixedRight'), onMouseMove: this.handleMouseMove }, affixColumns !== false && store.rightFixedColumns.length
1298
1412
  ? this.renderFixedColumns(store.rows, store.rightFixedColumns, false, tableClassName)
1299
1413
  : null),
1300
- this.renderTableContent(),
1301
- ~store.hoverIndex ? this.renderItemActions() : null),
1414
+ this.renderTableContent()),
1302
1415
  this.renderAffixHeader(tableClassName),
1303
1416
  footer));
1304
1417
  };
@@ -1341,7 +1454,9 @@ var Table = /** @class */ (function (_super) {
1341
1454
  'popOverContainer',
1342
1455
  'headerToolbarClassName',
1343
1456
  'toolbarClassName',
1344
- 'footerToolbarClassName'
1457
+ 'footerToolbarClassName',
1458
+ 'itemBadge',
1459
+ 'autoFillHeight'
1345
1460
  ];
1346
1461
  Table.defaultProps = {
1347
1462
  className: '',