amis 1.3.5-beta.7 → 1.4.2-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/README.md +1 -1
  2. package/lib/Schema.d.ts +26 -2
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/Alert.js +3 -1
  5. package/lib/components/Alert.js.map +2 -2
  6. package/lib/components/AnchorNav.d.ts +22 -21
  7. package/lib/components/AnchorNav.js +7 -3
  8. package/lib/components/AnchorNav.js.map +2 -2
  9. package/lib/components/ArrayInput.d.ts +84 -84
  10. package/lib/components/AssociatedSelection.d.ts +930 -0
  11. package/lib/components/AssociatedSelection.js +89 -0
  12. package/lib/components/AssociatedSelection.js.map +13 -0
  13. package/lib/components/Badge.d.ts +16 -3
  14. package/lib/components/Badge.js +54 -5
  15. package/lib/components/Badge.js.map +2 -2
  16. package/lib/components/Button.d.ts +24 -22
  17. package/lib/components/Button.js +13 -7
  18. package/lib/components/Button.js.map +2 -2
  19. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  20. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  21. package/lib/components/ChainedSelection.js.map +13 -0
  22. package/lib/components/Checkbox.d.ts +1 -1
  23. package/lib/components/Checkbox.js +1 -1
  24. package/lib/components/Checkbox.js.map +2 -2
  25. package/lib/components/Collapse.js +1 -1
  26. package/lib/components/Collapse.js.map +2 -2
  27. package/lib/components/ColorPicker.d.ts +84 -84
  28. package/lib/components/DatePicker.d.ts +84 -84
  29. package/lib/components/DatePicker.js +1 -1
  30. package/lib/components/DatePicker.js.map +2 -2
  31. package/lib/components/DateRangePicker.d.ts +84 -84
  32. package/lib/components/DateRangePicker.js +1 -1
  33. package/lib/components/DateRangePicker.js.map +2 -2
  34. package/lib/components/Drawer.js +1 -1
  35. package/lib/components/Drawer.js.map +2 -2
  36. package/lib/components/Editor.d.ts +84 -84
  37. package/lib/components/GroupedSelection.d.ts +907 -0
  38. package/lib/components/GroupedSelection.js +48 -0
  39. package/lib/components/GroupedSelection.js.map +13 -0
  40. package/lib/components/InputBox.js +1 -1
  41. package/lib/components/InputBox.js.map +2 -2
  42. package/lib/components/Link.d.ts +84 -0
  43. package/lib/components/Link.js +43 -0
  44. package/lib/components/Link.js.map +13 -0
  45. package/lib/components/ListGroup.d.ts +21 -21
  46. package/lib/components/Modal.js +1 -1
  47. package/lib/components/Modal.js.map +2 -2
  48. package/lib/components/ModalManager.js +1 -1
  49. package/lib/components/ModalManager.js.map +2 -2
  50. package/lib/components/MonthRangePicker.d.ts +84 -84
  51. package/lib/components/MonthRangePicker.js +1 -1
  52. package/lib/components/MonthRangePicker.js.map +2 -2
  53. package/lib/components/NumberInput.d.ts +20 -20
  54. package/lib/components/PickerColumn.d.ts +514 -0
  55. package/lib/components/PickerColumn.js +279 -0
  56. package/lib/components/PickerColumn.js.map +13 -0
  57. package/lib/components/PickerContainer.d.ts +513 -0
  58. package/lib/components/PickerContainer.js +96 -0
  59. package/lib/components/PickerContainer.js.map +13 -0
  60. package/lib/components/Radios.d.ts +22 -21
  61. package/lib/components/Radios.js +1 -0
  62. package/lib/components/Radios.js.map +2 -2
  63. package/lib/components/Rating.d.ts +21 -21
  64. package/lib/components/ResultBox.d.ts +84 -84
  65. package/lib/components/RichText.d.ts +6 -1
  66. package/lib/components/RichText.js +207 -8
  67. package/lib/components/RichText.js.map +2 -2
  68. package/lib/components/SearchBox.d.ts +84 -84
  69. package/lib/components/SearchBox.js +4 -4
  70. package/lib/components/SearchBox.js.map +2 -2
  71. package/lib/components/Select.d.ts +252 -237
  72. package/lib/components/Select.js +28 -4
  73. package/lib/components/Select.js.map +2 -2
  74. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  75. package/lib/components/Selection.js +134 -0
  76. package/lib/components/Selection.js.map +13 -0
  77. package/lib/components/SparkLine.d.ts +85 -84
  78. package/lib/components/SparkLine.js +2 -2
  79. package/lib/components/SparkLine.js.map +2 -2
  80. package/lib/components/Steps.d.ts +3 -3
  81. package/lib/components/Steps.js.map +1 -1
  82. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  83. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  84. package/lib/components/TableSelection.js.map +13 -0
  85. package/lib/components/Tabs.d.ts +20 -20
  86. package/lib/components/TabsTransfer.d.ts +84 -84
  87. package/lib/components/TabsTransfer.js +9 -9
  88. package/lib/components/TabsTransfer.js.map +2 -2
  89. package/lib/components/TabsTransferPicker.d.ts +489 -0
  90. package/lib/components/TabsTransferPicker.js +60 -0
  91. package/lib/components/TabsTransferPicker.js.map +13 -0
  92. package/lib/components/Toast.js +2 -2
  93. package/lib/components/Toast.js.map +2 -2
  94. package/lib/components/Transfer.d.ts +908 -274
  95. package/lib/components/Transfer.js +31 -24
  96. package/lib/components/Transfer.js.map +2 -2
  97. package/lib/components/TransferDropDown.d.ts +487 -0
  98. package/lib/components/TransferDropDown.js +59 -0
  99. package/lib/components/TransferDropDown.js.map +13 -0
  100. package/lib/components/TransferPicker.d.ts +489 -0
  101. package/lib/components/TransferPicker.js +60 -0
  102. package/lib/components/TransferPicker.js.map +13 -0
  103. package/lib/components/Tree.d.ts +84 -84
  104. package/lib/components/Tree.js +5 -3
  105. package/lib/components/Tree.js.map +2 -2
  106. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  107. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  108. package/lib/components/TreeSelection.js.map +13 -0
  109. package/lib/components/WithRemoteConfig.d.ts +8 -0
  110. package/lib/components/WithRemoteConfig.js +29 -3
  111. package/lib/components/WithRemoteConfig.js.map +2 -2
  112. package/lib/components/calendar/DaysView.js +2 -2
  113. package/lib/components/calendar/DaysView.js.map +2 -2
  114. package/lib/components/condition-builder/Field.js +5 -3
  115. package/lib/components/condition-builder/Field.js.map +2 -2
  116. package/lib/components/condition-builder/Func.js +2 -2
  117. package/lib/components/condition-builder/Func.js.map +2 -2
  118. package/lib/components/condition-builder/InputSwitch.js +2 -2
  119. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  120. package/lib/components/condition-builder/Item.js +3 -3
  121. package/lib/components/condition-builder/Item.js.map +2 -2
  122. package/lib/components/condition-builder/Value.js +2 -1
  123. package/lib/components/condition-builder/Value.js.map +2 -2
  124. package/lib/components/condition-builder/types.d.ts +5 -0
  125. package/lib/components/condition-builder/types.js.map +1 -1
  126. package/lib/components/icons.js +14 -0
  127. package/lib/components/icons.js.map +2 -2
  128. package/lib/components/index.d.ts +8 -8
  129. package/lib/components/index.js +16 -16
  130. package/lib/components/index.js.map +2 -2
  131. package/lib/envOverwrite.js.map +2 -2
  132. package/lib/factory.d.ts +9 -1
  133. package/lib/factory.js +13 -6
  134. package/lib/factory.js.map +2 -2
  135. package/lib/helper.css.map +1 -1
  136. package/lib/hooks/index.d.ts +5 -0
  137. package/lib/hooks/index.js +14 -0
  138. package/lib/hooks/index.js.map +13 -0
  139. package/lib/hooks/use-set-state.d.ts +2 -0
  140. package/lib/hooks/use-set-state.js +15 -0
  141. package/lib/hooks/use-set-state.js.map +13 -0
  142. package/lib/hooks/use-touch.d.ts +16 -0
  143. package/lib/hooks/use-touch.js +73 -0
  144. package/lib/hooks/use-touch.js.map +13 -0
  145. package/lib/hooks/use-update-effect.d.ts +3 -0
  146. package/lib/hooks/use-update-effect.js +17 -0
  147. package/lib/hooks/use-update-effect.js.map +13 -0
  148. package/lib/icons/clock.js +10 -0
  149. package/lib/icons/loading-outline.js +7 -0
  150. package/lib/icons/status-close.js +11 -0
  151. package/lib/icons/status-fail.js +11 -0
  152. package/lib/icons/status-info.js +10 -0
  153. package/lib/icons/status-success.js +11 -0
  154. package/lib/icons/status-warning.js +10 -0
  155. package/lib/index.d.ts +3 -0
  156. package/lib/index.js +4 -1
  157. package/lib/index.js.map +2 -2
  158. package/lib/locale/de-DE.js +5 -0
  159. package/lib/locale/de-DE.js.map +2 -2
  160. package/lib/locale/en-US.js +6 -1
  161. package/lib/locale/en-US.js.map +2 -2
  162. package/lib/locale/zh-CN.js +9 -4
  163. package/lib/locale/zh-CN.js.map +2 -2
  164. package/lib/renderers/Action.d.ts +17 -1
  165. package/lib/renderers/Action.js +21 -8
  166. package/lib/renderers/Action.js.map +2 -2
  167. package/lib/renderers/AnchorNav.d.ts +1 -0
  168. package/lib/renderers/AnchorNav.js +2 -2
  169. package/lib/renderers/AnchorNav.js.map +2 -2
  170. package/lib/renderers/Avatar.js +3 -3
  171. package/lib/renderers/Avatar.js.map +2 -2
  172. package/lib/renderers/Breadcrumb.js +1 -1
  173. package/lib/renderers/Breadcrumb.js.map +2 -2
  174. package/lib/renderers/CRUD.d.ts +9 -0
  175. package/lib/renderers/CRUD.js +48 -23
  176. package/lib/renderers/CRUD.js.map +2 -2
  177. package/lib/renderers/Card.d.ts +4 -0
  178. package/lib/renderers/Card.js +29 -23
  179. package/lib/renderers/Card.js.map +2 -2
  180. package/lib/renderers/Chart.js +1 -1
  181. package/lib/renderers/Chart.js.map +2 -2
  182. package/lib/renderers/Collapse.d.ts +1 -1
  183. package/lib/renderers/Collapse.js +8 -3
  184. package/lib/renderers/Collapse.js.map +2 -2
  185. package/lib/renderers/Dialog.d.ts +0 -252
  186. package/lib/renderers/Dialog.js +1 -4
  187. package/lib/renderers/Dialog.js.map +2 -2
  188. package/lib/renderers/Drawer.js +0 -3
  189. package/lib/renderers/Drawer.js.map +2 -2
  190. package/lib/renderers/DropDownButton.d.ts +13 -1
  191. package/lib/renderers/DropDownButton.js +9 -5
  192. package/lib/renderers/DropDownButton.js.map +2 -2
  193. package/lib/renderers/Form/Checkbox.d.ts +5 -0
  194. package/lib/renderers/Form/Checkbox.js +4 -0
  195. package/lib/renderers/Form/Checkbox.js.map +2 -2
  196. package/lib/renderers/Form/Combo.js +2 -2
  197. package/lib/renderers/Form/Combo.js.map +2 -2
  198. package/lib/renderers/Form/DiffEditor.d.ts +4 -5
  199. package/lib/renderers/Form/Editor.d.ts +3 -4
  200. package/lib/renderers/Form/Editor.js +1 -1
  201. package/lib/renderers/Form/Editor.js.map +2 -2
  202. package/lib/renderers/Form/InputCity.d.ts +84 -84
  203. package/lib/renderers/Form/InputCity.js +7 -6
  204. package/lib/renderers/Form/InputCity.js.map +2 -2
  205. package/lib/renderers/Form/InputColor.d.ts +84 -84
  206. package/lib/renderers/Form/InputExcel.d.ts +5 -0
  207. package/lib/renderers/Form/InputExcel.js +24 -3
  208. package/lib/renderers/Form/InputExcel.js.map +2 -2
  209. package/lib/renderers/Form/InputFile.js +12 -6
  210. package/lib/renderers/Form/InputFile.js.map +2 -2
  211. package/lib/renderers/Form/InputImage.d.ts +8 -0
  212. package/lib/renderers/Form/InputImage.js +18 -8
  213. package/lib/renderers/Form/InputImage.js.map +2 -2
  214. package/lib/renderers/Form/InputTable.d.ts +23 -5
  215. package/lib/renderers/Form/InputTable.js +32 -3
  216. package/lib/renderers/Form/InputTable.js.map +2 -2
  217. package/lib/renderers/Form/Item.d.ts +1 -1
  218. package/lib/renderers/Form/Item.js.map +1 -1
  219. package/lib/renderers/Form/Options.js +19 -6
  220. package/lib/renderers/Form/Options.js.map +2 -2
  221. package/lib/renderers/Form/Picker.js +2 -2
  222. package/lib/renderers/Form/Picker.js.map +2 -2
  223. package/lib/renderers/Form/Select.d.ts +41 -4
  224. package/lib/renderers/Form/Select.js +23 -3
  225. package/lib/renderers/Form/Select.js.map +2 -2
  226. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  227. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  228. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  229. package/lib/renderers/Form/Transfer.js +3 -2
  230. package/lib/renderers/Form/Transfer.js.map +2 -2
  231. package/lib/renderers/Form/TransferPicker.d.ts +48 -0
  232. package/lib/renderers/Form/TransferPicker.js +29 -0
  233. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  234. package/lib/renderers/Form/TreeSelect.js +2 -2
  235. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  236. package/lib/renderers/Form/index.js +1 -1
  237. package/lib/renderers/Form/index.js.map +2 -2
  238. package/lib/renderers/Form/wrapControl.js +15 -3
  239. package/lib/renderers/Form/wrapControl.js.map +2 -2
  240. package/lib/renderers/IFrame.js +3 -5
  241. package/lib/renderers/IFrame.js.map +2 -2
  242. package/lib/renderers/Image.d.ts +1 -0
  243. package/lib/renderers/Image.js +15 -1
  244. package/lib/renderers/Image.js.map +2 -2
  245. package/lib/renderers/Json.d.ts +4 -0
  246. package/lib/renderers/Json.js +7 -12
  247. package/lib/renderers/Json.js.map +2 -2
  248. package/lib/renderers/Link.d.ts +18 -3
  249. package/lib/renderers/Link.js +27 -15
  250. package/lib/renderers/Link.js.map +2 -2
  251. package/lib/renderers/List.js +1 -1
  252. package/lib/renderers/List.js.map +2 -2
  253. package/lib/renderers/Log.d.ts +2 -2
  254. package/lib/renderers/Log.js +7 -1
  255. package/lib/renderers/Log.js.map +2 -2
  256. package/lib/renderers/Mapping.d.ts +9 -2
  257. package/lib/renderers/Mapping.js +18 -6
  258. package/lib/renderers/Mapping.js.map +2 -2
  259. package/lib/renderers/Nav.d.ts +81 -25
  260. package/lib/renderers/Nav.js +292 -31
  261. package/lib/renderers/Nav.js.map +2 -2
  262. package/lib/renderers/Page.js +4 -1
  263. package/lib/renderers/Page.js.map +2 -2
  264. package/lib/renderers/Portlet.d.ts +125 -0
  265. package/lib/renderers/Portlet.js +156 -0
  266. package/lib/renderers/Portlet.js.map +13 -0
  267. package/lib/renderers/Property.js +2 -1
  268. package/lib/renderers/Property.js.map +2 -2
  269. package/lib/renderers/SearchBox.d.ts +6 -1
  270. package/lib/renderers/SearchBox.js +19 -5
  271. package/lib/renderers/SearchBox.js.map +2 -2
  272. package/lib/renderers/Service.d.ts +10 -1
  273. package/lib/renderers/Service.js +85 -3
  274. package/lib/renderers/Service.js.map +2 -2
  275. package/lib/renderers/SparkLine.d.ts +4 -0
  276. package/lib/renderers/SparkLine.js.map +2 -2
  277. package/lib/renderers/Steps.d.ts +4 -4
  278. package/lib/renderers/Steps.js +5 -2
  279. package/lib/renderers/Steps.js.map +2 -2
  280. package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
  281. package/lib/renderers/Table/ColumnToggler.js +216 -0
  282. package/lib/renderers/Table/ColumnToggler.js.map +13 -0
  283. package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  284. package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
  285. package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
  286. package/lib/renderers/Table/TableBody.d.ts +5 -1
  287. package/lib/renderers/Table/TableBody.js.map +1 -1
  288. package/lib/renderers/Table/TableCell.js +3 -1
  289. package/lib/renderers/Table/TableCell.js.map +2 -2
  290. package/lib/renderers/Table/TableContent.d.ts +5 -2
  291. package/lib/renderers/Table/TableContent.js +21 -1
  292. package/lib/renderers/Table/TableContent.js.map +2 -2
  293. package/lib/renderers/Table/index.d.ts +27 -5
  294. package/lib/renderers/Table/index.js +251 -101
  295. package/lib/renderers/Table/index.js.map +2 -2
  296. package/lib/renderers/Tabs.js +9 -1
  297. package/lib/renderers/Tabs.js.map +2 -2
  298. package/lib/renderers/WebComponent.js +1 -1
  299. package/lib/renderers/WebComponent.js.map +2 -2
  300. package/lib/store/app.d.ts +0 -1
  301. package/lib/store/combo.d.ts +2 -18
  302. package/lib/store/crud.d.ts +0 -1
  303. package/lib/store/crud.js +3 -7
  304. package/lib/store/crud.js.map +2 -2
  305. package/lib/store/form.d.ts +1 -2
  306. package/lib/store/form.js +5 -6
  307. package/lib/store/form.js.map +2 -2
  308. package/lib/store/modal.d.ts +1 -1
  309. package/lib/store/modal.js +4 -0
  310. package/lib/store/modal.js.map +2 -2
  311. package/lib/store/root.d.ts +0 -1
  312. package/lib/store/service.d.ts +0 -1
  313. package/lib/store/service.js +5 -17
  314. package/lib/store/service.js.map +2 -2
  315. package/lib/store/table.d.ts +260 -5
  316. package/lib/store/table.js +83 -7
  317. package/lib/store/table.js.map +2 -2
  318. package/lib/themes/ang-ie11.css +1360 -244
  319. package/lib/themes/ang.css +1360 -244
  320. package/lib/themes/ang.css.map +1 -1
  321. package/lib/themes/antd-ie11.css +1360 -244
  322. package/lib/themes/antd.css +1360 -244
  323. package/lib/themes/antd.css.map +1 -1
  324. package/lib/themes/cxd-ie11.css +1960 -517
  325. package/lib/themes/cxd.css +1960 -517
  326. package/lib/themes/cxd.css.map +1 -1
  327. package/lib/themes/dark-ie11.css +1360 -244
  328. package/lib/themes/dark.css +1360 -244
  329. package/lib/themes/dark.css.map +1 -1
  330. package/lib/themes/default.css +1960 -517
  331. package/lib/themes/default.css.map +1 -1
  332. package/lib/types.d.ts +37 -0
  333. package/lib/types.js +0 -5
  334. package/lib/types.js.map +2 -2
  335. package/lib/utils/api.d.ts +3 -2
  336. package/lib/utils/api.js +43 -15
  337. package/lib/utils/api.js.map +2 -2
  338. package/lib/utils/attachmentAdpator.d.ts +7 -0
  339. package/lib/utils/attachmentAdpator.js +82 -0
  340. package/lib/utils/attachmentAdpator.js.map +13 -0
  341. package/lib/utils/dom.d.ts +4 -0
  342. package/lib/utils/dom.js +11 -1
  343. package/lib/utils/dom.js.map +2 -2
  344. package/lib/utils/handleAction.d.ts +7 -0
  345. package/lib/utils/handleAction.js +30 -0
  346. package/lib/utils/handleAction.js.map +13 -0
  347. package/lib/utils/helper.d.ts +3 -1
  348. package/lib/utils/helper.js +14 -5
  349. package/lib/utils/helper.js.map +2 -2
  350. package/lib/utils/icon.js +3 -0
  351. package/lib/utils/icon.js.map +2 -2
  352. package/lib/utils/tpl-builtin.d.ts +1 -1
  353. package/lib/utils/tpl-builtin.js +25 -15
  354. package/lib/utils/tpl-builtin.js.map +2 -2
  355. package/lib/utils/validations.js +62 -5
  356. package/lib/utils/validations.js.map +2 -2
  357. package/package.json +1 -2
  358. package/schema.json +3638 -1030
  359. package/scss/_mixins.scss +27 -0
  360. package/scss/_properties.scss +88 -13
  361. package/scss/_utilities.scss +4 -0
  362. package/scss/base/_normalize.scss +2 -0
  363. package/scss/components/_anchor-nav.scss +88 -29
  364. package/scss/components/_badge.scss +67 -2
  365. package/scss/components/_button.scss +34 -3
  366. package/scss/components/_card.scss +8 -14
  367. package/scss/components/_collapse.scss +41 -8
  368. package/scss/components/_column-toggler.scss +234 -0
  369. package/scss/components/_dropdown.scss +2 -1
  370. package/scss/components/_image-gallery.scss +1 -1
  371. package/scss/components/_images.scss +2 -1
  372. package/scss/components/_link.scss +6 -0
  373. package/scss/components/_mapping.scss +6 -0
  374. package/scss/components/_markdown.scss +266 -0
  375. package/scss/components/_nav.scss +236 -154
  376. package/scss/components/_page.scss +5 -4
  377. package/scss/components/_picker-columns.scss +123 -0
  378. package/scss/components/_popover.scss +17 -0
  379. package/scss/components/_portlet.scss +51 -0
  380. package/scss/components/_progress.scss +2 -0
  381. package/scss/components/_spinner.scss +6 -2
  382. package/scss/components/_status.scss +1 -1
  383. package/scss/components/_steps.scss +1 -1
  384. package/scss/components/_table.scss +51 -1
  385. package/scss/components/form/_checks.scss +0 -351
  386. package/scss/components/form/_color.scss +1 -0
  387. package/scss/components/form/_date-range.scss +2 -0
  388. package/scss/components/form/_date.scss +2 -0
  389. package/scss/components/form/_fieldset.scss +6 -3
  390. package/scss/components/form/_file.scss +5 -4
  391. package/scss/components/form/_group.scss +4 -0
  392. package/scss/components/form/_image.scss +7 -2
  393. package/scss/components/form/_list.scss +1 -0
  394. package/scss/components/form/_location.scss +1 -1
  395. package/scss/components/form/_selection.scss +354 -0
  396. package/scss/components/form/_text.scss +13 -0
  397. package/scss/components/form/_textarea.scss +10 -0
  398. package/scss/components/form/_transfer.scss +77 -18
  399. package/scss/themes/_common.scss +7 -0
  400. package/scss/themes/_cxd-colors.scss +56 -0
  401. package/scss/themes/_cxd-variables.scss +219 -91
  402. package/scss/themes/cxd.scss +370 -0
  403. package/sdk/ang-ie11.css +1752 -431
  404. package/sdk/ang.css +1706 -323
  405. package/sdk/antd-ie11.css +1739 -420
  406. package/sdk/antd.css +1706 -323
  407. package/sdk/charts.js +13 -13
  408. package/sdk/color-picker.js +65 -69
  409. package/sdk/cropperjs.js +2 -2
  410. package/sdk/cxd-ie11.css +3015 -1397
  411. package/sdk/cxd.css +2402 -651
  412. package/sdk/dark-ie11.css +1750 -429
  413. package/sdk/dark.css +1706 -323
  414. package/sdk/exceljs.js +1 -1
  415. package/sdk/helper.css.map +1 -1
  416. package/sdk/ie11-patch.css +1 -0
  417. package/sdk/locale/de-DE.js +5 -0
  418. package/sdk/markdown.js +69 -69
  419. package/sdk/papaparse.js +1 -1
  420. package/sdk/renderers/Form/CityDB.js +1 -1
  421. package/sdk/rest.js +20 -30
  422. package/sdk/rich-text.js +62 -64
  423. package/sdk/sdk-ie11.css +3015 -1397
  424. package/sdk/sdk.css +2402 -651
  425. package/sdk/sdk.js +1278 -1220
  426. package/sdk/thirds/hls.js/hls.js +1 -1
  427. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  428. package/sdk/tinymce.js +57 -57
  429. package/src/Schema.ts +32 -0
  430. package/src/components/Alert.tsx +3 -1
  431. package/src/components/AnchorNav.tsx +15 -4
  432. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  433. package/src/components/Badge.tsx +126 -23
  434. package/src/components/Button.tsx +23 -7
  435. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  436. package/src/components/Checkbox.tsx +5 -2
  437. package/src/components/Collapse.tsx +14 -9
  438. package/src/components/DatePicker.tsx +1 -1
  439. package/src/components/DateRangePicker.tsx +23 -11
  440. package/src/components/Drawer.tsx +3 -2
  441. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  442. package/src/components/InputBox.tsx +1 -1
  443. package/src/components/Link.tsx +85 -0
  444. package/src/components/Modal.tsx +3 -2
  445. package/src/components/ModalManager.ts +1 -1
  446. package/src/components/MonthRangePicker.tsx +10 -2
  447. package/src/components/PickerColumn.tsx +429 -0
  448. package/src/components/PickerContainer.tsx +128 -0
  449. package/src/components/Radios.tsx +3 -8
  450. package/src/components/RichText.tsx +244 -3
  451. package/src/components/SearchBox.tsx +4 -5
  452. package/src/components/Select.tsx +61 -5
  453. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  454. package/src/components/SparkLine.tsx +4 -1
  455. package/src/components/Steps.tsx +3 -3
  456. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  457. package/src/components/TabsTransfer.tsx +13 -7
  458. package/src/components/TabsTransferPicker.tsx +85 -0
  459. package/src/components/Toast.tsx +5 -5
  460. package/src/components/Transfer.tsx +71 -50
  461. package/src/components/TransferDropDown.tsx +117 -0
  462. package/src/components/TransferPicker.tsx +84 -0
  463. package/src/components/Tree.tsx +6 -8
  464. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  465. package/src/components/WithRemoteConfig.tsx +44 -4
  466. package/src/components/calendar/DaysView.tsx +2 -2
  467. package/src/components/condition-builder/Field.tsx +6 -7
  468. package/src/components/condition-builder/Func.tsx +3 -3
  469. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  470. package/src/components/condition-builder/Item.tsx +5 -12
  471. package/src/components/condition-builder/Value.tsx +3 -0
  472. package/src/components/condition-builder/types.ts +6 -0
  473. package/src/components/icons.tsx +15 -0
  474. package/src/components/index.tsx +13 -13
  475. package/src/envOverwrite.ts +0 -1
  476. package/src/factory.tsx +31 -6
  477. package/src/hooks/index.ts +5 -0
  478. package/src/hooks/use-set-state.ts +19 -0
  479. package/src/hooks/use-touch.ts +100 -0
  480. package/src/hooks/use-update-effect.ts +16 -0
  481. package/src/icons/clock.svg +1 -0
  482. package/src/icons/loading-outline.svg +4 -0
  483. package/src/icons/status-close.svg +10 -0
  484. package/src/icons/status-fail.svg +10 -0
  485. package/src/icons/status-info.svg +8 -0
  486. package/src/icons/status-success.svg +10 -0
  487. package/src/icons/status-warning.svg +8 -0
  488. package/src/index.tsx +3 -0
  489. package/src/locale/de-DE.ts +5 -0
  490. package/src/locale/en-US.ts +6 -1
  491. package/src/locale/zh-CN.ts +9 -4
  492. package/src/renderers/Action.tsx +99 -15
  493. package/src/renderers/AnchorNav.tsx +4 -0
  494. package/src/renderers/Avatar.tsx +8 -4
  495. package/src/renderers/Breadcrumb.tsx +5 -1
  496. package/src/renderers/CRUD.tsx +70 -56
  497. package/src/renderers/Card.tsx +63 -34
  498. package/src/renderers/Chart.tsx +6 -2
  499. package/src/renderers/Collapse.tsx +9 -3
  500. package/src/renderers/Dialog.tsx +1 -5
  501. package/src/renderers/Drawer.tsx +0 -4
  502. package/src/renderers/DropDownButton.tsx +34 -12
  503. package/src/renderers/Form/Checkbox.tsx +8 -0
  504. package/src/renderers/Form/Combo.tsx +2 -3
  505. package/src/renderers/Form/Editor.tsx +19 -20
  506. package/src/renderers/Form/InputCity.tsx +4 -8
  507. package/src/renderers/Form/InputExcel.tsx +28 -3
  508. package/src/renderers/Form/InputFile.tsx +30 -20
  509. package/src/renderers/Form/InputImage.tsx +39 -13
  510. package/src/renderers/Form/InputTable.tsx +88 -9
  511. package/src/renderers/Form/Item.tsx +1 -1
  512. package/src/renderers/Form/Options.tsx +32 -7
  513. package/src/renderers/Form/Picker.tsx +3 -2
  514. package/src/renderers/Form/Select.tsx +144 -21
  515. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  516. package/src/renderers/Form/Transfer.tsx +3 -2
  517. package/src/renderers/Form/TransferPicker.tsx +123 -0
  518. package/src/renderers/Form/TreeSelect.tsx +25 -0
  519. package/src/renderers/Form/index.tsx +1 -1
  520. package/src/renderers/Form/wrapControl.tsx +28 -3
  521. package/src/renderers/IFrame.tsx +4 -5
  522. package/src/renderers/Image.tsx +10 -0
  523. package/src/renderers/Json.tsx +19 -10
  524. package/src/renderers/Link.tsx +53 -14
  525. package/src/renderers/List.tsx +1 -1
  526. package/src/renderers/Log.tsx +16 -3
  527. package/src/renderers/Mapping.tsx +27 -11
  528. package/src/renderers/Nav.tsx +392 -60
  529. package/src/renderers/Page.tsx +3 -1
  530. package/src/renderers/Portlet.tsx +423 -0
  531. package/src/renderers/Property.tsx +3 -2
  532. package/src/renderers/SearchBox.tsx +23 -4
  533. package/src/renderers/Service.tsx +101 -3
  534. package/src/renderers/SparkLine.tsx +5 -0
  535. package/src/renderers/Steps.tsx +12 -9
  536. package/src/renderers/Table/ColumnToggler.tsx +544 -0
  537. package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
  538. package/src/renderers/Table/TableBody.tsx +1 -1
  539. package/src/renderers/Table/TableCell.tsx +16 -1
  540. package/src/renderers/Table/TableContent.tsx +41 -3
  541. package/src/renderers/Table/index.tsx +318 -92
  542. package/src/renderers/Tabs.tsx +9 -1
  543. package/src/renderers/WebComponent.tsx +2 -2
  544. package/src/store/crud.ts +3 -8
  545. package/src/store/form.ts +5 -10
  546. package/src/store/modal.ts +4 -0
  547. package/src/store/service.ts +5 -23
  548. package/src/store/table.ts +103 -4
  549. package/src/types.ts +57 -0
  550. package/src/utils/api.ts +63 -23
  551. package/src/utils/attachmentAdpator.ts +90 -0
  552. package/src/utils/dom.tsx +12 -0
  553. package/src/utils/handleAction.ts +41 -0
  554. package/src/utils/helper.ts +12 -3
  555. package/src/utils/icon.tsx +4 -0
  556. package/src/utils/tpl-builtin.ts +48 -17
  557. package/src/utils/validations.ts +80 -12
  558. package/dump.rdb +0 -0
  559. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  560. package/lib/components/AssociatedCheckboxes.js +0 -90
  561. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  562. package/lib/components/ChainedCheckboxes.js.map +0 -13
  563. package/lib/components/Checkboxes.js +0 -101
  564. package/lib/components/Checkboxes.js.map +0 -13
  565. package/lib/components/ListCheckboxes.d.ts +0 -739
  566. package/lib/components/ListCheckboxes.js +0 -48
  567. package/lib/components/ListCheckboxes.js.map +0 -13
  568. package/lib/components/ListRadios.d.ts +0 -763
  569. package/lib/components/ListRadios.js +0 -86
  570. package/lib/components/ListRadios.js.map +0 -13
  571. package/lib/components/TableCheckboxes.js.map +0 -13
  572. package/lib/components/TreeCheckboxes.js.map +0 -13
  573. package/lib/components/TreeRadios.d.ts +0 -838
  574. package/lib/components/TreeRadios.js +0 -116
  575. package/lib/components/TreeRadios.js.map +0 -13
  576. package/src/components/ListRadios.tsx +0 -159
  577. package/src/components/TreeRadios.tsx +0 -202
@@ -5,9 +5,11 @@ import {SchemaNode, Action, Schema} from '../../types';
5
5
  import forEach from 'lodash/forEach';
6
6
  import {filter} from '../../utils/tpl';
7
7
  import DropDownButton from '../DropDownButton';
8
+ import './ColumnToggler';
8
9
  import Checkbox from '../../components/Checkbox';
9
10
  import Button from '../../components/Button';
10
11
  import {TableStore, ITableStore, IColumn, IRow} from '../../store/table';
12
+ import {saveAs} from 'file-saver';
11
13
  import {
12
14
  anyChanged,
13
15
  getScrollParent,
@@ -16,7 +18,10 @@ import {
16
18
  autobind,
17
19
  isArrayChildrenModified,
18
20
  getVariable,
19
- removeHTMLTag
21
+ removeHTMLTag,
22
+ eachTree,
23
+ isObject,
24
+ createObject
20
25
  } from '../../utils/helper';
21
26
  import {
22
27
  isPureVariable,
@@ -35,6 +40,7 @@ import {HeadCellSearchDropDown} from './HeadCellSearchDropdown';
35
40
  import {TableContent} from './TableContent';
36
41
  import {
37
42
  BaseSchema,
43
+ SchemaApi,
38
44
  SchemaClassName,
39
45
  SchemaObject,
40
46
  SchemaTokenizeableString,
@@ -49,6 +55,10 @@ import {TableBody} from './TableBody';
49
55
  import {TplSchema} from '../Tpl';
50
56
  import {MappingSchema} from '../Mapping';
51
57
  import {isAlive, getSnapshot} from 'mobx-state-tree';
58
+ import ColumnToggler from './ColumnToggler';
59
+ import {BadgeSchema} from '../../components/Badge';
60
+ import offset from '../../utils/offset';
61
+ import {getStyleNumber} from '../../utils/dom';
52
62
 
53
63
  /**
54
64
  * 表格列,不指定类型时默认为文本类型。
@@ -97,7 +107,7 @@ export type TableColumnObject = {
97
107
  /**
98
108
  * 是否可快速搜索
99
109
  */
100
- searchable?: boolean;
110
+ searchable?: boolean | SchemaObject;
101
111
 
102
112
  /**
103
113
  * 配置是否默认展示
@@ -277,6 +287,16 @@ export interface TableSchema extends BaseSchema {
277
287
  * 行样式表表达式
278
288
  */
279
289
  rowClassNameExpr?: string;
290
+
291
+ /**
292
+ * 行角标
293
+ */
294
+ itemBadge?: BadgeSchema;
295
+
296
+ /**
297
+ * 开启查询区域,会根据列元素的searchable属性值,自动生成查询条件表单
298
+ */
299
+ autoGenerateFilter?: boolean;
280
300
  }
281
301
 
282
302
  export interface TableProps extends RendererProps {
@@ -344,8 +364,15 @@ export interface TableProps extends RendererProps {
344
364
  popOverContainer?: any;
345
365
  canAccessSuperData?: boolean;
346
366
  reUseRow?: boolean;
367
+ itemBadge?: BadgeSchema;
347
368
  }
348
369
 
370
+ type ExportExcelToolbar = SchemaNode & {
371
+ api?: SchemaApi;
372
+ columns?: string[];
373
+ filename?: string;
374
+ };
375
+
349
376
  /**
350
377
  * 将 url 转成绝对地址
351
378
  */
@@ -397,7 +424,9 @@ export default class Table extends React.Component<TableProps, object> {
397
424
  'popOverContainer',
398
425
  'headerToolbarClassName',
399
426
  'toolbarClassName',
400
- 'footerToolbarClassName'
427
+ 'footerToolbarClassName',
428
+ 'itemBadge',
429
+ 'autoFillHeight'
401
430
  ];
402
431
  static defaultProps: Partial<TableProps> = {
403
432
  className: '',
@@ -470,6 +499,9 @@ export default class Table extends React.Component<TableProps, object> {
470
499
  this.handleMouseMove = this.handleMouseMove.bind(this);
471
500
  this.handleMouseLeave = this.handleMouseLeave.bind(this);
472
501
  this.subFormRef = this.subFormRef.bind(this);
502
+ this.handleColumnToggle = this.handleColumnToggle.bind(this);
503
+ this.renderAutoFilterForm = this.renderAutoFilterForm.bind(this);
504
+ this.updateAutoFillHeight = this.updateAutoFillHeight.bind(this);
473
505
 
474
506
  const {
475
507
  store,
@@ -580,6 +612,68 @@ export default class Table extends React.Component<TableProps, object> {
580
612
  this.affixDetect();
581
613
  parent.addEventListener('scroll', this.affixDetect);
582
614
  window.addEventListener('resize', this.affixDetect);
615
+ this.updateAutoFillHeight();
616
+ window.addEventListener('resize', this.updateAutoFillHeight);
617
+ }
618
+
619
+ /**
620
+ * 自动设置表格高度占满界面剩余区域
621
+ * 用 css 实现有点麻烦,要改很多结构,所以先用 dom hack 了,避免对之前的功能有影响
622
+ */
623
+ updateAutoFillHeight() {
624
+ const {autoFillHeight, footerToolbar, classPrefix: ns} = this.props;
625
+ if (!autoFillHeight) {
626
+ return;
627
+ }
628
+ const table = findDOMNode(this) as HTMLElement;
629
+ const tableContent = table.querySelector(
630
+ `.${ns}Table-content`
631
+ ) as HTMLElement;
632
+ const tableContentWrap = table.querySelector(
633
+ `.${ns}Table-contentWrap`
634
+ ) as HTMLElement;
635
+ const footToolbar = table.querySelector(
636
+ `.${ns}Table-footToolbar`
637
+ ) as HTMLElement;
638
+ if (!tableContent) {
639
+ return;
640
+ }
641
+
642
+ // 计算 table-content 在 dom 中的位置
643
+ const tableContentTop = offset(tableContent).top;
644
+ const viewportHeight = window.innerHeight;
645
+ // 有时候会拿不到 footToolbar?
646
+ const footToolbarHeight = footToolbar ? offset(footToolbar).height : 0;
647
+ // 有时候会拿不到 footToolbar,等一下在执行
648
+ if (!footToolbarHeight && footerToolbar && footerToolbar.length) {
649
+ setTimeout(() => {
650
+ this.updateAutoFillHeight();
651
+ }, 100);
652
+ return;
653
+ }
654
+ const tableContentWrapMarginButtom = getStyleNumber(
655
+ tableContentWrap,
656
+ 'margin-bottom'
657
+ );
658
+
659
+ // 循环计算父级节点的 pddding,这里不考虑父级节点还可能会有其它兄弟节点的情况了
660
+ let allParentPaddingButtom = 0;
661
+ let parentNode = tableContent.parentElement;
662
+ while (parentNode) {
663
+ const paddingButtom = getStyleNumber(parentNode, 'padding-bottom');
664
+ const borderBottom = getStyleNumber(parentNode, 'border-bottom-width');
665
+ allParentPaddingButtom =
666
+ allParentPaddingButtom + paddingButtom + borderBottom;
667
+ parentNode = parentNode.parentElement;
668
+ }
669
+
670
+ tableContent.style.height = `${
671
+ viewportHeight -
672
+ tableContentTop -
673
+ tableContentWrapMarginButtom -
674
+ footToolbarHeight -
675
+ allParentPaddingButtom
676
+ }px`;
583
677
  }
584
678
 
585
679
  componentDidUpdate(prevProps: TableProps) {
@@ -648,8 +742,12 @@ export default class Table extends React.Component<TableProps, object> {
648
742
  ) {
649
743
  Table.syncRows(store, props, prevProps) && this.syncSelected();
650
744
  } else if (isArrayChildrenModified(prevProps.selected!, props.selected!)) {
745
+ const prevSelectedRows = store.selectedRows
746
+ .map(item => item.id)
747
+ .join(',');
651
748
  store.updateSelected(props.selected || [], props.valueField);
652
- this.syncSelected();
749
+ const selectedRows = store.selectedRows.map(item => item.id).join(',');
750
+ prevSelectedRows !== selectedRows && this.syncSelected();
653
751
  }
654
752
 
655
753
  this.updateTableInfoLazy();
@@ -661,6 +759,7 @@ export default class Table extends React.Component<TableProps, object> {
661
759
  const parent = this.parentNode;
662
760
  parent && parent.removeEventListener('scroll', this.affixDetect);
663
761
  window.removeEventListener('resize', this.affixDetect);
762
+ window.removeEventListener('resize', this.updateAutoFillHeight);
664
763
  (this.updateTableInfoLazy as any).cancel();
665
764
  this.unSensor && this.unSensor();
666
765
 
@@ -682,8 +781,14 @@ export default class Table extends React.Component<TableProps, object> {
682
781
  onAction(e, action, ctx);
683
782
  }
684
783
 
685
- handleCheck(item: IRow) {
686
- item.toggle();
784
+ handleCheck(item: IRow, value: boolean, shift?: boolean) {
785
+ const {store} = this.props;
786
+ if (shift) {
787
+ store.toggleShift(item);
788
+ } else {
789
+ item.toggle();
790
+ }
791
+
687
792
  this.syncSelected();
688
793
  }
689
794
 
@@ -844,7 +949,7 @@ export default class Table extends React.Component<TableProps, object> {
844
949
  }
845
950
 
846
951
  affixDetect() {
847
- if (!this.props.affixHeader || !this.table) {
952
+ if (!this.props.affixHeader || !this.table || this.props.autoFillHeight) {
848
953
  return;
849
954
  }
850
955
 
@@ -1098,7 +1203,7 @@ export default class Table extends React.Component<TableProps, object> {
1098
1203
 
1099
1204
  handleMouseMove(e: React.MouseEvent<any>) {
1100
1205
  const tr: HTMLElement = (e.target as HTMLElement).closest(
1101
- 'tr[data-index]'
1206
+ 'tr[data-id]'
1102
1207
  ) as HTMLElement;
1103
1208
 
1104
1209
  if (!tr) {
@@ -1116,20 +1221,20 @@ export default class Table extends React.Component<TableProps, object> {
1116
1221
  return;
1117
1222
  }
1118
1223
 
1119
- const index = parseInt(tr.getAttribute('data-index') as string, 10);
1224
+ const id = tr.getAttribute('data-id') as string;
1225
+ const row = store.hoverRow;
1120
1226
 
1121
- if (store.hoverIndex === index) {
1227
+ if (row?.id === id) {
1122
1228
  return;
1123
1229
  }
1124
- store.rows.forEach((item, key) => item.setIsHover(index === key));
1230
+ eachTree<IRow>(store.rows, (item: IRow) => item.setIsHover(item.id === id));
1125
1231
  }
1126
1232
 
1127
1233
  handleMouseLeave() {
1128
1234
  const store = this.props.store;
1235
+ const row = store.hoverRow;
1129
1236
 
1130
- if (~store.hoverIndex) {
1131
- store.rows[store.hoverIndex].setIsHover(false);
1132
- }
1237
+ row?.setIsHover(false);
1133
1238
  }
1134
1239
 
1135
1240
  draggingTr: HTMLTableRowElement;
@@ -1333,6 +1438,111 @@ export default class Table extends React.Component<TableProps, object> {
1333
1438
  document.removeEventListener('mouseup', this.handleColResizeMouseUp);
1334
1439
  }
1335
1440
 
1441
+ handleColumnToggle(columns: Array<IColumn>) {
1442
+ const {store} = this.props;
1443
+
1444
+ store.update({columns});
1445
+ }
1446
+
1447
+ renderAutoFilterForm(): React.ReactNode {
1448
+ const {
1449
+ render,
1450
+ store,
1451
+ onSearchableFromReset,
1452
+ onSearchableFromSubmit,
1453
+ onSearchableFromInit,
1454
+ classnames: cx,
1455
+ translate: __
1456
+ } = this.props;
1457
+ const searchableColumns = store.searchableColumns;
1458
+ const activedSearchableColumns = store.activedSearchableColumns;
1459
+
1460
+ if (!searchableColumns.length) {
1461
+ return null;
1462
+ }
1463
+
1464
+ const groupedSearchableColumns: Array<Record<string, any>> = [
1465
+ {body: [], md: 4},
1466
+ {body: [], md: 4},
1467
+ {body: [], md: 4}
1468
+ ];
1469
+
1470
+ activedSearchableColumns.forEach((column, index) => {
1471
+ groupedSearchableColumns[index % 3].body.push({
1472
+ ...column.searchable,
1473
+ name: column.searchable?.name ?? column.name,
1474
+ label: column.searchable?.label ?? column.label,
1475
+ mode: 'horizontal'
1476
+ });
1477
+ });
1478
+
1479
+ return render(
1480
+ 'searchable-form',
1481
+ {
1482
+ type: 'form',
1483
+ api: null,
1484
+ title: '',
1485
+ mode: 'normal',
1486
+ submitText: __('search'),
1487
+ body: [
1488
+ {
1489
+ type: 'grid',
1490
+ columns: groupedSearchableColumns
1491
+ }
1492
+ ],
1493
+ actions: [
1494
+ {
1495
+ type: 'dropdown-button',
1496
+ label: __('Table.searchFields'),
1497
+ className: cx('Table-searchableForm-dropdown', 'mr-2'),
1498
+ level: 'link',
1499
+ trigger: 'click',
1500
+ size: 'sm',
1501
+ align: 'right',
1502
+ buttons: searchableColumns.map(column => {
1503
+ return {
1504
+ type: 'checkbox',
1505
+ className: cx('Table-searchableForm-checkbox'),
1506
+ name: `__search_${column.searchable?.name ?? column.name}`,
1507
+ option: column.searchable?.label ?? column.label,
1508
+ value: column.enableSearch,
1509
+ badge: {
1510
+ offset: [-10, 5],
1511
+ visibleOn: `${
1512
+ column.toggable && !column.toggled && column.enableSearch
1513
+ }`
1514
+ },
1515
+ onChange: (value: boolean) => {
1516
+ column.setEnableSearch(value);
1517
+ }
1518
+ };
1519
+ })
1520
+ },
1521
+ {
1522
+ type: 'submit',
1523
+ label: __('search'),
1524
+ level: 'primary',
1525
+ className: 'w-18'
1526
+ },
1527
+ {
1528
+ type: 'reset',
1529
+ label: __('reset'),
1530
+ className: 'w-18'
1531
+ }
1532
+ ]
1533
+ },
1534
+ {
1535
+ key: 'searchable-form',
1536
+ panelClassName: cx('Table-searchableForm'),
1537
+ actionsClassName: cx('Table-searchableForm-footer'),
1538
+ onReset: onSearchableFromReset,
1539
+ onSubmit: onSearchableFromSubmit,
1540
+ onInit: onSearchableFromInit,
1541
+ formStore: undefined
1542
+ }
1543
+ );
1544
+ }
1545
+
1336
1546
  renderHeading() {
1337
1547
  let {
1338
1548
  title,
@@ -1422,7 +1632,8 @@ export default class Table extends React.Component<TableProps, object> {
1422
1632
  render,
1423
1633
  classPrefix: ns,
1424
1634
  resizable,
1425
- classnames: cx
1635
+ classnames: cx,
1636
+ autoGenerateFilter
1426
1637
  } = this.props;
1427
1638
 
1428
1639
  if (column.type === '__checkme') {
@@ -1469,7 +1680,7 @@ export default class Table extends React.Component<TableProps, object> {
1469
1680
 
1470
1681
  let affix = null;
1471
1682
 
1472
- if (column.searchable && column.name) {
1683
+ if (column.searchable && column.name && !autoGenerateFilter) {
1473
1684
  affix = (
1474
1685
  <HeadCellSearchDropDown
1475
1686
  {...this.props}
@@ -1622,7 +1833,8 @@ export default class Table extends React.Component<TableProps, object> {
1622
1833
  classnames: cx,
1623
1834
  checkOnItemClick,
1624
1835
  popOverContainer,
1625
- canAccessSuperData
1836
+ canAccessSuperData,
1837
+ itemBadge
1626
1838
  } = this.props;
1627
1839
 
1628
1840
  if (column.name && item.rowSpans[column.name] === 0) {
@@ -1710,7 +1922,13 @@ export default class Table extends React.Component<TableProps, object> {
1710
1922
  quickEditFormRef: this.subFormRef,
1711
1923
  prefix,
1712
1924
  onImageEnlarge: this.handleImageEnlarge,
1713
- canAccessSuperData
1925
+ canAccessSuperData,
1926
+ row: item,
1927
+ itemBadge,
1928
+ showBadge:
1929
+ !props.isHead &&
1930
+ itemBadge &&
1931
+ store.firstToggledColumnIndex === props.colIndex
1714
1932
  };
1715
1933
  delete subProps.label;
1716
1934
 
@@ -1945,23 +2163,29 @@ export default class Table extends React.Component<TableProps, object> {
1945
2163
  }
1946
2164
 
1947
2165
  return (
1948
- <DropDownButton
2166
+ <ColumnToggler
1949
2167
  {...rest}
1950
- tooltip={__('Table.columnsVisibility')}
2168
+ {...(isObject(config) ? config : {})}
2169
+ tooltip={config?.tooltip || __('Table.columnsVisibility')}
1951
2170
  tooltipContainer={
1952
2171
  env && env.getModalContainer ? env.getModalContainer : undefined
1953
2172
  }
1954
- align={config ? config.align : 'left'}
2173
+ align={config?.align ?? 'left'}
1955
2174
  isActived={store.hasColumnHidden()}
1956
2175
  classnames={cx}
1957
2176
  classPrefix={ns}
1958
2177
  key="columns-toggable"
1959
- size="sm"
1960
- label={<Icon icon="columns" className="icon m-r-none" />}
2178
+ size={config?.size || 'sm'}
2179
+ label={
2180
+ config?.label || <Icon icon="columns" className="icon m-r-none" />
2181
+ }
2182
+ draggable={config?.draggable}
2183
+ columns={store.columnsData}
2184
+ onColumnToggle={this.handleColumnToggle}
1961
2185
  >
1962
2186
  {store.toggableColumns.map(column => (
1963
2187
  <li
1964
- className={cx('DropDown-menuItem')}
2188
+ className={cx('ColumnToggler-menuItem')}
1965
2189
  key={column.index}
1966
2190
  onClick={column.toggleToggle}
1967
2191
  >
@@ -1970,7 +2194,7 @@ export default class Table extends React.Component<TableProps, object> {
1970
2194
  </Checkbox>
1971
2195
  </li>
1972
2196
  ))}
1973
- </DropDownButton>
2197
+ </ColumnToggler>
1974
2198
  );
1975
2199
  }
1976
2200
 
@@ -2004,7 +2228,7 @@ export default class Table extends React.Component<TableProps, object> {
2004
2228
  );
2005
2229
  }
2006
2230
 
2007
- renderExportExcel(toolbar: SchemaNode) {
2231
+ renderExportExcel(toolbar: ExportExcelToolbar) {
2008
2232
  const {
2009
2233
  store,
2010
2234
  env,
@@ -2028,8 +2252,8 @@ export default class Table extends React.Component<TableProps, object> {
2028
2252
  let tmpStore;
2029
2253
  let filename = 'data';
2030
2254
  // 支持配置 api 远程获取
2031
- if (typeof toolbar === 'object' && (toolbar as Schema).api) {
2032
- const res = await env.fetcher((toolbar as Schema).api, data);
2255
+ if (typeof toolbar === 'object' && toolbar.api) {
2256
+ const res = await env.fetcher(toolbar.api, data);
2033
2257
  if (!res.data) {
2034
2258
  env.notify('warning', __('placeholder.noData'));
2035
2259
  return;
@@ -2047,8 +2271,8 @@ export default class Table extends React.Component<TableProps, object> {
2047
2271
  rows = store.rows;
2048
2272
  }
2049
2273
 
2050
- if (typeof toolbar === 'object' && (toolbar as Schema).filename) {
2051
- filename = filter((toolbar as Schema).filename, data, '| raw');
2274
+ if (typeof toolbar === 'object' && toolbar.filename) {
2275
+ filename = filter(toolbar.filename, data, '| raw');
2052
2276
  }
2053
2277
 
2054
2278
  if (rows.length === 0) {
@@ -2062,7 +2286,17 @@ export default class Table extends React.Component<TableProps, object> {
2062
2286
  });
2063
2287
  worksheet.views = [{state: 'frozen', xSplit: 0, ySplit: 1}];
2064
2288
 
2065
- const firstRowLabels = columns.map(column => {
2289
+ const filteredColumns = toolbar.columns
2290
+ ? columns.filter(column => {
2291
+ const filterColumnsNames = toolbar.columns!;
2292
+ if (filterColumnsNames.indexOf(column.name) !== -1) {
2293
+ return true;
2294
+ }
2295
+ return false;
2296
+ })
2297
+ : columns;
2298
+
2299
+ const firstRowLabels = filteredColumns.map(column => {
2066
2300
  return column.label;
2067
2301
  });
2068
2302
  const firstRow = worksheet.getRow(1);
@@ -2077,14 +2311,15 @@ export default class Table extends React.Component<TableProps, object> {
2077
2311
  column: firstRowLabels.length
2078
2312
  }
2079
2313
  };
2314
+ // 用于 mapping source 的情况
2315
+ const remoteMappingCache: any = {};
2080
2316
  // 数据从第二行开始
2081
2317
  let rowIndex = 1;
2082
2318
  for (const row of rows) {
2083
2319
  rowIndex += 1;
2084
2320
  const sheetRow = worksheet.getRow(rowIndex);
2085
2321
  let columIndex = 0;
2086
- const cols = columns as any[]; // 为啥 ts 4.4 得这么做?
2087
- for (const column of cols) {
2322
+ for (const column of filteredColumns) {
2088
2323
  columIndex += 1;
2089
2324
  const name = column.name!;
2090
2325
  const value = getVariable(row.data, name);
@@ -2170,7 +2405,30 @@ export default class Table extends React.Component<TableProps, object> {
2170
2405
  };
2171
2406
  } else if (type === 'mapping') {
2172
2407
  // 拷贝自 Mapping.tsx
2173
- const map = (column as MappingSchema).map;
2408
+ let map = (column as MappingSchema).map;
2409
+ const source = (column as MappingSchema).source;
2410
+ if (source) {
2411
+ let sourceValue = source;
2412
+ if (isPureVariable(source)) {
2413
+ sourceValue = resolveVariableAndFilter(
2414
+ source as string,
2415
+ data,
2416
+ '| raw'
2417
+ );
2418
+ }
2419
+
2420
+ const mapKey = JSON.stringify(source);
2421
+ if (mapKey in remoteMappingCache) {
2422
+ map = remoteMappingCache[mapKey];
2423
+ } else {
2424
+ const res = await env.fetcher(sourceValue, data);
2425
+ if (res.data) {
2426
+ remoteMappingCache[mapKey] = res.data;
2427
+ map = res.data;
2428
+ }
2429
+ }
2430
+ }
2431
+
2174
2432
  if (
2175
2433
  typeof value !== 'undefined' &&
2176
2434
  map &&
@@ -2183,14 +2441,18 @@ export default class Table extends React.Component<TableProps, object> {
2183
2441
  : value === false && map['0']
2184
2442
  ? map['0']
2185
2443
  : map['*']); // 兼容平台旧用法:即 value 为 true 时映射 1 ,为 false 时映射 0
2186
- sheetRow.getCell(columIndex).value = viewValue;
2444
+ sheetRow.getCell(columIndex).value =
2445
+ removeHTMLTag(viewValue);
2187
2446
  } else {
2188
- sheetRow.getCell(columIndex).value = value;
2447
+ sheetRow.getCell(columIndex).value = removeHTMLTag(value);
2189
2448
  }
2190
2449
  } else {
2191
2450
  if ((column as TplSchema).tpl) {
2192
2451
  sheetRow.getCell(columIndex).value = removeHTMLTag(
2193
- filter((column as TplSchema).tpl, row.data)
2452
+ filter(
2453
+ (column as TplSchema).tpl,
2454
+ createObject(data, row.data)
2455
+ )
2194
2456
  );
2195
2457
  } else {
2196
2458
  sheetRow.getCell(columIndex).value = value;
@@ -2393,57 +2655,6 @@ export default class Table extends React.Component<TableProps, object> {
2393
2655
  : footerNode || toolbarNode || null;
2394
2656
  }
2395
2657
 
2396
- renderItemActions() {
2397
- const {itemActions, render, store, classnames: cx} = this.props;
2398
- const finalActions = Array.isArray(itemActions)
2399
- ? itemActions.filter(action => !action.hiddenOnHover)
2400
- : [];
2401
-
2402
- if (!finalActions.length) {
2403
- return null;
2404
- }
2405
- const rowIndex = store.hoverIndex;
2406
- const heights = this.heights;
2407
- let height = 40;
2408
- let top = 0;
2409
-
2410
- if (heights && heights[rowIndex]) {
2411
- height = heights[rowIndex];
2412
- top += heights.header;
2413
- for (let i = rowIndex - 1; i >= 0; i--) {
2414
- top += heights[i];
2415
- }
2416
- }
2417
-
2418
- return (
2419
- <div
2420
- className={cx('Table-itemActions-wrap')}
2421
- style={{
2422
- top,
2423
- height
2424
- }}
2425
- >
2426
- <div className={cx('Table-itemActions')}>
2427
- {finalActions.map((action, index) =>
2428
- render(
2429
- `itemAction/${index}`,
2430
- {
2431
- ...(action as any),
2432
- isMenuItem: true
2433
- },
2434
- {
2435
- key: index,
2436
- item: store.rows[rowIndex],
2437
- data: store.rows[rowIndex].locals,
2438
- rowIndex
2439
- }
2440
- )
2441
- )}
2442
- </div>
2443
- </div>
2444
- );
2445
- }
2446
-
2447
2658
  renderTableContent() {
2448
2659
  const {
2449
2660
  classnames: cx,
@@ -2458,8 +2669,11 @@ export default class Table extends React.Component<TableProps, object> {
2458
2669
  prefixRow,
2459
2670
  locale,
2460
2671
  affixRow,
2672
+ tableContentClassName,
2461
2673
  translate,
2462
- itemAction
2674
+ itemAction,
2675
+ autoFillHeight,
2676
+ itemActions
2463
2677
  } = this.props;
2464
2678
 
2465
2679
  // 理论上来说 store.rows 应该也行啊
@@ -2470,9 +2684,13 @@ export default class Table extends React.Component<TableProps, object> {
2470
2684
  <TableContent
2471
2685
  tableClassName={cx(
2472
2686
  store.combineNum > 0 ? 'Table-table--withCombine' : '',
2687
+ {'Table-table--checkOnItemClick': checkOnItemClick},
2473
2688
  tableClassName
2474
2689
  )}
2690
+ className={tableContentClassName}
2691
+ itemActions={itemActions}
2475
2692
  itemAction={itemAction}
2693
+ store={store}
2476
2694
  classnames={cx}
2477
2695
  columns={store.filteredColumns}
2478
2696
  columnsGroup={store.columnGroup}
@@ -2503,7 +2721,14 @@ export default class Table extends React.Component<TableProps, object> {
2503
2721
  }
2504
2722
 
2505
2723
  render() {
2506
- const {className, store, classnames: cx, affixColumns} = this.props;
2724
+ const {
2725
+ className,
2726
+ store,
2727
+ classnames: cx,
2728
+ affixColumns,
2729
+ autoFillHeight,
2730
+ autoGenerateFilter
2731
+ } = this.props;
2507
2732
 
2508
2733
  this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了,已经渲染了就不重复渲染了。
2509
2734
  const heading = this.renderHeading();
@@ -2518,9 +2743,11 @@ export default class Table extends React.Component<TableProps, object> {
2518
2743
  return (
2519
2744
  <div
2520
2745
  className={cx('Table', className, {
2521
- 'Table--unsaved': !!store.modified || !!store.moved
2746
+ 'Table--unsaved': !!store.modified || !!store.moved,
2747
+ 'Table--autoFillHeight': autoFillHeight
2522
2748
  })}
2523
2749
  >
2750
+ {autoGenerateFilter ? this.renderAutoFilterForm() : null}
2524
2751
  {header}
2525
2752
  {heading}
2526
2753
  <div
@@ -2554,7 +2781,6 @@ export default class Table extends React.Component<TableProps, object> {
2554
2781
  : null}
2555
2782
  </div>
2556
2783
  {this.renderTableContent()}
2557
- {~store.hoverIndex ? this.renderItemActions() : null}
2558
2784
  </div>
2559
2785
  {this.renderAffixHeader(tableClassName)}
2560
2786
  {footer}