amis 2.0.0-rc.9 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (532) hide show
  1. package/esm/Schema.d.ts +442 -0
  2. package/esm/compat.d.ts +1 -0
  3. package/esm/compat.js +459 -0
  4. package/esm/index.d.ts +146 -0
  5. package/esm/index.js +144 -0
  6. package/esm/preset.d.ts +1 -0
  7. package/esm/preset.js +40 -0
  8. package/esm/renderers/Action.d.ts +393 -0
  9. package/esm/renderers/Action.js +443 -0
  10. package/esm/renderers/Alert.d.ts +49 -0
  11. package/esm/renderers/Alert.js +35 -0
  12. package/esm/renderers/AnchorNav.d.ts +69 -0
  13. package/esm/renderers/AnchorNav.js +97 -0
  14. package/esm/renderers/App.d.ts +125 -0
  15. package/esm/renderers/App.js +198 -0
  16. package/esm/renderers/Audio.d.ts +88 -0
  17. package/esm/renderers/Audio.js +382 -0
  18. package/esm/renderers/Avatar.d.ts +75 -0
  19. package/esm/renderers/Avatar.js +54 -0
  20. package/esm/renderers/BarCode.d.ts +35 -0
  21. package/esm/renderers/BarCode.js +38 -0
  22. package/esm/renderers/Breadcrumb.d.ts +89 -0
  23. package/esm/renderers/Breadcrumb.js +58 -0
  24. package/esm/renderers/ButtonGroup.d.ts +64 -0
  25. package/esm/renderers/ButtonGroup.js +22 -0
  26. package/esm/renderers/CRUD.d.ts +302 -0
  27. package/esm/renderers/CRUD.js +1244 -0
  28. package/esm/renderers/CRUD2.d.ts +215 -0
  29. package/esm/renderers/CRUD2.js +742 -0
  30. package/esm/renderers/Calendar.d.ts +45 -0
  31. package/esm/renderers/Calendar.js +22 -0
  32. package/esm/renderers/Card.d.ts +231 -0
  33. package/esm/renderers/Card.js +372 -0
  34. package/esm/renderers/Card2.d.ts +77 -0
  35. package/esm/renderers/Card2.js +83 -0
  36. package/esm/renderers/Cards.d.ts +170 -0
  37. package/esm/renderers/Cards.js +555 -0
  38. package/esm/renderers/Carousel.d.ts +103 -0
  39. package/esm/renderers/Carousel.js +329 -0
  40. package/esm/renderers/Chart.d.ts +116 -0
  41. package/esm/renderers/Chart.js +352 -0
  42. package/esm/renderers/Code.d.ts +84 -0
  43. package/esm/renderers/Code.js +130 -0
  44. package/esm/renderers/Collapse.d.ts +83 -0
  45. package/esm/renderers/Collapse.js +47 -0
  46. package/esm/renderers/CollapseGroup.d.ts +42 -0
  47. package/esm/renderers/CollapseGroup.js +35 -0
  48. package/esm/renderers/Color.d.ts +36 -0
  49. package/esm/renderers/Color.js +42 -0
  50. package/esm/renderers/Container.d.ts +44 -0
  51. package/esm/renderers/Container.js +49 -0
  52. package/esm/renderers/Copyable.d.ts +25 -0
  53. package/esm/renderers/Copyable.js +49 -0
  54. package/esm/renderers/Custom.d.ts +51 -0
  55. package/esm/renderers/Custom.js +163 -0
  56. package/esm/renderers/Date.d.ts +58 -0
  57. package/esm/renderers/Date.js +121 -0
  58. package/esm/renderers/Dialog.d.ts +1357 -0
  59. package/esm/renderers/Dialog.js +633 -0
  60. package/esm/renderers/Divider.d.ts +20 -0
  61. package/esm/renderers/Divider.js +38 -0
  62. package/esm/renderers/Drawer.d.ts +153 -0
  63. package/esm/renderers/Drawer.js +608 -0
  64. package/esm/renderers/DropDownButton.d.ts +114 -0
  65. package/esm/renderers/DropDownButton.js +151 -0
  66. package/esm/renderers/Each.d.ts +38 -0
  67. package/esm/renderers/Each.js +59 -0
  68. package/esm/renderers/Flex.d.ts +77 -0
  69. package/esm/renderers/Flex.js +84 -0
  70. package/esm/renderers/Form/ButtonGroupSelect.d.ts +26 -0
  71. package/esm/renderers/Form/ButtonGroupSelect.js +114 -0
  72. package/esm/renderers/Form/ButtonToolbar.d.ts +28 -0
  73. package/esm/renderers/Form/ButtonToolbar.js +50 -0
  74. package/esm/renderers/Form/ChainedSelect.d.ts +36 -0
  75. package/esm/renderers/Form/ChainedSelect.js +213 -0
  76. package/esm/renderers/Form/ChartRadios.d.ts +34 -0
  77. package/esm/renderers/Form/ChartRadios.js +121 -0
  78. package/esm/renderers/Form/Checkbox.d.ts +47 -0
  79. package/esm/renderers/Form/Checkbox.js +83 -0
  80. package/esm/renderers/Form/Checkboxes.d.ts +65 -0
  81. package/esm/renderers/Form/Checkboxes.js +226 -0
  82. package/esm/renderers/Form/Combo.d.ts +251 -0
  83. package/esm/renderers/Form/Combo.js +822 -0
  84. package/esm/renderers/Form/ConditionBuilder.d.ts +56 -0
  85. package/esm/renderers/Form/ConditionBuilder.js +69 -0
  86. package/esm/renderers/Form/Control.d.ts +18 -0
  87. package/esm/renderers/Form/Control.js +38 -0
  88. package/esm/renderers/Form/DiffEditor.d.ts +3925 -0
  89. package/esm/renderers/Form/DiffEditor.js +199 -0
  90. package/esm/renderers/Form/Editor.d.ts +3856 -0
  91. package/esm/renderers/Form/Editor.js +247 -0
  92. package/esm/renderers/Form/FieldSet.d.ts +70 -0
  93. package/esm/renderers/Form/FieldSet.js +59 -0
  94. package/esm/renderers/Form/Formula.d.ts +53 -0
  95. package/esm/renderers/Form/Formula.js +128 -0
  96. package/esm/renderers/Form/Group.d.ts +57 -0
  97. package/esm/renderers/Form/Group.js +99 -0
  98. package/esm/renderers/Form/Hidden.d.ts +15 -0
  99. package/esm/renderers/Form/Hidden.js +35 -0
  100. package/esm/renderers/Form/IconPicker.d.ts +49 -0
  101. package/esm/renderers/Form/IconPicker.js +305 -0
  102. package/esm/renderers/Form/IconPickerIcons.d.ts +8 -0
  103. package/esm/renderers/Form/IconPickerIcons.js +26 -0
  104. package/esm/renderers/Form/InputArray.d.ts +31 -0
  105. package/esm/renderers/Form/InputArray.js +45 -0
  106. package/esm/renderers/Form/InputCity.d.ts +654 -0
  107. package/esm/renderers/Form/InputCity.js +347 -0
  108. package/esm/renderers/Form/InputColor.d.ts +504 -0
  109. package/esm/renderers/Form/InputColor.js +52 -0
  110. package/esm/renderers/Form/InputDate.d.ts +359 -0
  111. package/esm/renderers/Form/InputDate.js +258 -0
  112. package/esm/renderers/Form/InputDateRange.d.ts +121 -0
  113. package/esm/renderers/Form/InputDateRange.js +166 -0
  114. package/esm/renderers/Form/InputExcel.d.ts +51 -0
  115. package/esm/renderers/Form/InputExcel.js +195 -0
  116. package/esm/renderers/Form/InputFile.d.ts +257 -0
  117. package/esm/renderers/Form/InputFile.js +937 -0
  118. package/esm/renderers/Form/InputFormula.d.ts +91 -0
  119. package/esm/renderers/Form/InputFormula.js +67 -0
  120. package/esm/renderers/Form/InputGroup.d.ts +33 -0
  121. package/esm/renderers/Form/InputGroup.js +111 -0
  122. package/esm/renderers/Form/InputImage.d.ts +315 -0
  123. package/esm/renderers/Form/InputImage.js +908 -0
  124. package/esm/renderers/Form/InputMonthRange.d.ts +22 -0
  125. package/esm/renderers/Form/InputMonthRange.js +46 -0
  126. package/esm/renderers/Form/InputNumber.d.ts +128 -0
  127. package/esm/renderers/Form/InputNumber.js +210 -0
  128. package/esm/renderers/Form/InputQuarterRange.d.ts +22 -0
  129. package/esm/renderers/Form/InputQuarterRange.js +46 -0
  130. package/esm/renderers/Form/InputRange.d.ts +271 -0
  131. package/esm/renderers/Form/InputRange.js +388 -0
  132. package/esm/renderers/Form/InputRating.d.ts +74 -0
  133. package/esm/renderers/Form/InputRating.js +82 -0
  134. package/esm/renderers/Form/InputRepeat.d.ts +35 -0
  135. package/esm/renderers/Form/InputRepeat.js +115 -0
  136. package/esm/renderers/Form/InputRichText.d.ts +56 -0
  137. package/esm/renderers/Form/InputRichText.js +177 -0
  138. package/esm/renderers/Form/InputSubForm.d.ts +123 -0
  139. package/esm/renderers/Form/InputSubForm.js +269 -0
  140. package/esm/renderers/Form/InputTable.d.ts +180 -0
  141. package/esm/renderers/Form/InputTable.js +677 -0
  142. package/esm/renderers/Form/InputTag.d.ts +108 -0
  143. package/esm/renderers/Form/InputTag.js +439 -0
  144. package/esm/renderers/Form/InputText.d.ts +133 -0
  145. package/esm/renderers/Form/InputText.js +632 -0
  146. package/esm/renderers/Form/InputTree.d.ts +86 -0
  147. package/esm/renderers/Form/InputTree.js +108 -0
  148. package/esm/renderers/Form/InputYearRange.d.ts +22 -0
  149. package/esm/renderers/Form/InputYearRange.js +46 -0
  150. package/esm/renderers/Form/JSONSchema.d.ts +24 -0
  151. package/esm/renderers/Form/JSONSchema.js +45 -0
  152. package/esm/renderers/Form/JSONSchemaEditor.d.ts +64 -0
  153. package/esm/renderers/Form/JSONSchemaEditor.js +57 -0
  154. package/esm/renderers/Form/ListSelect.d.ts +45 -0
  155. package/esm/renderers/Form/ListSelect.js +89 -0
  156. package/esm/renderers/Form/LocationPicker.d.ts +35 -0
  157. package/esm/renderers/Form/LocationPicker.js +39 -0
  158. package/esm/renderers/Form/MatrixCheckboxes.d.ts +79 -0
  159. package/esm/renderers/Form/MatrixCheckboxes.js +266 -0
  160. package/esm/renderers/Form/NestedSelect.d.ts +91 -0
  161. package/esm/renderers/Form/NestedSelect.js +703 -0
  162. package/esm/renderers/Form/Picker.d.ts +86 -0
  163. package/esm/renderers/Form/Picker.js +361 -0
  164. package/esm/renderers/Form/Radios.d.ts +39 -0
  165. package/esm/renderers/Form/Radios.js +91 -0
  166. package/esm/renderers/Form/Select.d.ts +140 -0
  167. package/esm/renderers/Form/Select.js +309 -0
  168. package/esm/renderers/Form/Static.d.ts +59 -0
  169. package/esm/renderers/Form/Static.js +109 -0
  170. package/esm/renderers/Form/Switch.d.ts +54 -0
  171. package/esm/renderers/Form/Switch.js +77 -0
  172. package/esm/renderers/Form/TabsTransfer.d.ts +30 -0
  173. package/esm/renderers/Form/TabsTransfer.js +241 -0
  174. package/esm/renderers/Form/TabsTransferPicker.d.ts +26 -0
  175. package/esm/renderers/Form/TabsTransferPicker.js +72 -0
  176. package/esm/renderers/Form/Textarea.d.ts +69 -0
  177. package/esm/renderers/Form/Textarea.js +103 -0
  178. package/esm/renderers/Form/Transfer.d.ts +115 -0
  179. package/esm/renderers/Form/Transfer.js +276 -0
  180. package/esm/renderers/Form/TransferPicker.d.ts +26 -0
  181. package/esm/renderers/Form/TransferPicker.js +66 -0
  182. package/esm/renderers/Form/TreeSelect.d.ts +132 -0
  183. package/esm/renderers/Form/TreeSelect.js +376 -0
  184. package/esm/renderers/Form/UUID.d.ts +22 -0
  185. package/esm/renderers/Form/UUID.js +52 -0
  186. package/esm/renderers/Form/UserSelect.d.ts +55 -0
  187. package/esm/renderers/Form/UserSelect.js +194 -0
  188. package/esm/renderers/Grid.d.ts +82 -0
  189. package/esm/renderers/Grid.js +88 -0
  190. package/esm/renderers/Grid2D.d.ts +91 -0
  191. package/esm/renderers/Grid2D.js +113 -0
  192. package/esm/renderers/GridNav.d.ts +99 -0
  193. package/esm/renderers/GridNav.js +80 -0
  194. package/esm/renderers/HBox.d.ts +95 -0
  195. package/esm/renderers/HBox.js +75 -0
  196. package/esm/renderers/IFrame.d.ts +49 -0
  197. package/esm/renderers/IFrame.js +169 -0
  198. package/esm/renderers/Icon.d.ts +28 -0
  199. package/esm/renderers/Icon.js +60 -0
  200. package/esm/renderers/Image.d.ts +415 -0
  201. package/esm/renderers/Image.js +120 -0
  202. package/esm/renderers/Images.d.ts +80 -0
  203. package/esm/renderers/Images.js +89 -0
  204. package/esm/renderers/Json.d.ts +68 -0
  205. package/esm/renderers/Json.js +98 -0
  206. package/esm/renderers/Link.d.ts +56 -0
  207. package/esm/renderers/Link.js +61 -0
  208. package/esm/renderers/List.d.ts +260 -0
  209. package/esm/renderers/List.js +680 -0
  210. package/esm/renderers/Log.d.ts +91 -0
  211. package/esm/renderers/Log.js +247 -0
  212. package/esm/renderers/Mapping.d.ts +354 -0
  213. package/esm/renderers/Mapping.js +160 -0
  214. package/esm/renderers/Markdown.d.ts +42 -0
  215. package/esm/renderers/Markdown.js +97 -0
  216. package/esm/renderers/Nav.d.ts +258 -0
  217. package/esm/renderers/Nav.js +544 -0
  218. package/esm/renderers/Operation.d.ts +28 -0
  219. package/esm/renderers/Operation.js +43 -0
  220. package/esm/renderers/Page.d.ts +228 -0
  221. package/esm/renderers/Page.js +593 -0
  222. package/esm/renderers/Pagination.d.ts +68 -0
  223. package/esm/renderers/Pagination.js +35 -0
  224. package/esm/renderers/PaginationWrapper.d.ts +67 -0
  225. package/esm/renderers/PaginationWrapper.js +74 -0
  226. package/esm/renderers/Panel.d.ts +86 -0
  227. package/esm/renderers/Panel.js +144 -0
  228. package/esm/renderers/Plain.d.ts +35 -0
  229. package/esm/renderers/Plain.js +42 -0
  230. package/esm/renderers/PopOver.d.ts +69 -0
  231. package/esm/renderers/PopOver.js +166 -0
  232. package/esm/renderers/Portlet.d.ts +125 -0
  233. package/esm/renderers/Portlet.js +152 -0
  234. package/esm/renderers/Progress.d.ts +81 -0
  235. package/esm/renderers/Progress.js +61 -0
  236. package/esm/renderers/Property.d.ts +99 -0
  237. package/esm/renderers/Property.js +95 -0
  238. package/esm/renderers/QRCode.d.ts +63 -0
  239. package/esm/renderers/QRCode.js +75 -0
  240. package/esm/renderers/QuickEdit.d.ts +65 -0
  241. package/esm/renderers/QuickEdit.js +337 -0
  242. package/esm/renderers/Remark.d.ts +105 -0
  243. package/esm/renderers/Remark.js +100 -0
  244. package/esm/renderers/SearchBox.d.ts +69 -0
  245. package/esm/renderers/SearchBox.js +77 -0
  246. package/esm/renderers/Service.d.ts +120 -0
  247. package/esm/renderers/Service.js +437 -0
  248. package/esm/renderers/SparkLine.d.ts +44 -0
  249. package/esm/renderers/SparkLine.js +40 -0
  250. package/esm/renderers/Spinner.d.ts +64 -0
  251. package/esm/renderers/Spinner.js +32 -0
  252. package/esm/renderers/Status.d.ts +55 -0
  253. package/esm/renderers/Status.js +84 -0
  254. package/esm/renderers/Steps.d.ts +66 -0
  255. package/esm/renderers/Steps.js +77 -0
  256. package/esm/renderers/Table/ColumnToggler.d.ts +120 -0
  257. package/esm/renderers/Table/ColumnToggler.js +255 -0
  258. package/esm/renderers/Table/HeadCellFilterDropdown.d.ts +32 -0
  259. package/esm/renderers/Table/HeadCellFilterDropdown.js +211 -0
  260. package/esm/renderers/Table/HeadCellSearchDropdown.d.ts +32 -0
  261. package/esm/renderers/Table/HeadCellSearchDropdown.js +193 -0
  262. package/esm/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  263. package/esm/renderers/Table/ItemActionsWrapper.js +35 -0
  264. package/esm/renderers/Table/TableBody.d.ts +90 -0
  265. package/esm/renderers/Table/TableBody.js +105 -0
  266. package/esm/renderers/Table/TableCell.d.ts +21 -0
  267. package/esm/renderers/Table/TableCell.js +139 -0
  268. package/esm/renderers/Table/TableContent.d.ts +54 -0
  269. package/esm/renderers/Table/TableContent.js +69 -0
  270. package/esm/renderers/Table/TableRow.d.ts +27 -0
  271. package/esm/renderers/Table/TableRow.js +129 -0
  272. package/esm/renderers/Table/exportExcel.d.ts +6 -0
  273. package/esm/renderers/Table/exportExcel.js +301 -0
  274. package/esm/renderers/Table/index.d.ts +371 -0
  275. package/esm/renderers/Table/index.js +1539 -0
  276. package/esm/renderers/Table-v2/ColumnToggler.d.ts +19 -0
  277. package/esm/renderers/Table-v2/ColumnToggler.js +88 -0
  278. package/esm/renderers/Table-v2/HeadCellSearchDropdown.d.ts +29 -0
  279. package/esm/renderers/Table-v2/HeadCellSearchDropdown.js +206 -0
  280. package/esm/renderers/Table-v2/TableCell.d.ts +6 -0
  281. package/esm/renderers/Table-v2/TableCell.js +30 -0
  282. package/esm/renderers/Table-v2/index.d.ts +285 -0
  283. package/esm/renderers/Table-v2/index.js +833 -0
  284. package/esm/renderers/TableView.d.ts +136 -0
  285. package/esm/renderers/TableView.js +95 -0
  286. package/esm/renderers/Tabs.d.ts +204 -0
  287. package/esm/renderers/Tabs.js +501 -0
  288. package/esm/renderers/Tag.d.ts +66 -0
  289. package/esm/renderers/Tag.js +50 -0
  290. package/esm/renderers/Tasks.d.ts +140 -0
  291. package/esm/renderers/Tasks.js +209 -0
  292. package/esm/renderers/Timeline.d.ts +65 -0
  293. package/esm/renderers/Timeline.js +54 -0
  294. package/esm/renderers/TooltipWrapper.d.ts +133 -0
  295. package/esm/renderers/TooltipWrapper.js +70 -0
  296. package/esm/renderers/Tpl.d.ts +51 -0
  297. package/esm/renderers/Tpl.js +88 -0
  298. package/esm/renderers/VBox.d.ts +30 -0
  299. package/esm/renderers/VBox.js +48 -0
  300. package/esm/renderers/Video.d.ts +171 -0
  301. package/esm/renderers/Video.js +457 -0
  302. package/esm/renderers/WebComponent.d.ts +33 -0
  303. package/esm/renderers/WebComponent.js +48 -0
  304. package/esm/renderers/Wizard.d.ts +179 -0
  305. package/esm/renderers/Wizard.js +921 -0
  306. package/esm/renderers/Wrapper.d.ts +36 -0
  307. package/esm/renderers/Wrapper.js +53 -0
  308. package/esm/schemaExtend.d.ts +1 -0
  309. package/esm/schemaExtend.js +72 -0
  310. package/esm/types.d.ts +160 -0
  311. package/lib/Schema.d.ts +4 -3
  312. package/lib/compat.js +1 -1
  313. package/lib/helper.css +0 -1
  314. package/lib/index.d.ts +1 -0
  315. package/lib/index.js +2 -1
  316. package/lib/preset.js +1 -1
  317. package/lib/renderers/Action.js +1 -1
  318. package/lib/renderers/Alert.js +1 -1
  319. package/lib/renderers/AnchorNav.js +1 -1
  320. package/lib/renderers/App.d.ts +4 -0
  321. package/lib/renderers/App.js +3 -3
  322. package/lib/renderers/Audio.js +1 -1
  323. package/lib/renderers/Avatar.js +1 -1
  324. package/lib/renderers/BarCode.js +1 -1
  325. package/lib/renderers/Breadcrumb.js +1 -1
  326. package/lib/renderers/ButtonGroup.d.ts +2 -2
  327. package/lib/renderers/ButtonGroup.js +1 -1
  328. package/lib/renderers/CRUD.js +6 -7
  329. package/lib/renderers/CRUD2.d.ts +215 -0
  330. package/lib/renderers/CRUD2.js +752 -0
  331. package/lib/renderers/Calendar.js +1 -1
  332. package/lib/renderers/Card.js +1 -1
  333. package/lib/renderers/Card2.d.ts +1 -1
  334. package/lib/renderers/Card2.js +3 -3
  335. package/lib/renderers/Cards.d.ts +4 -0
  336. package/lib/renderers/Cards.js +49 -6
  337. package/lib/renderers/Carousel.js +1 -1
  338. package/lib/renderers/Chart.js +19 -3
  339. package/lib/renderers/Code.js +1 -1
  340. package/lib/renderers/Collapse.js +1 -1
  341. package/lib/renderers/CollapseGroup.js +1 -1
  342. package/lib/renderers/Color.js +1 -1
  343. package/lib/renderers/Container.js +1 -1
  344. package/lib/renderers/Copyable.js +1 -1
  345. package/lib/renderers/Custom.js +1 -1
  346. package/lib/renderers/Date.js +1 -1
  347. package/lib/renderers/Dialog.js +1 -1
  348. package/lib/renderers/Divider.js +1 -1
  349. package/lib/renderers/Drawer.js +1 -1
  350. package/lib/renderers/DropDownButton.js +3 -3
  351. package/lib/renderers/Each.js +1 -1
  352. package/lib/renderers/Flex.js +3 -2
  353. package/lib/renderers/Form/ButtonGroupSelect.js +2 -2
  354. package/lib/renderers/Form/ButtonToolbar.js +1 -1
  355. package/lib/renderers/Form/ChainedSelect.js +2 -2
  356. package/lib/renderers/Form/ChartRadios.js +1 -1
  357. package/lib/renderers/Form/Checkbox.js +1 -1
  358. package/lib/renderers/Form/Checkboxes.d.ts +5 -0
  359. package/lib/renderers/Form/Checkboxes.js +8 -3
  360. package/lib/renderers/Form/Combo.d.ts +1 -1
  361. package/lib/renderers/Form/Combo.js +4 -3
  362. package/lib/renderers/Form/ConditionBuilder.d.ts +10 -0
  363. package/lib/renderers/Form/ConditionBuilder.js +7 -3
  364. package/lib/renderers/Form/Control.js +1 -1
  365. package/lib/renderers/Form/DiffEditor.d.ts +705 -141
  366. package/lib/renderers/Form/DiffEditor.js +1 -1
  367. package/lib/renderers/Form/Editor.d.ts +701 -137
  368. package/lib/renderers/Form/Editor.js +1 -1
  369. package/lib/renderers/Form/FieldSet.js +1 -1
  370. package/lib/renderers/Form/Formula.js +1 -1
  371. package/lib/renderers/Form/Group.js +2 -2
  372. package/lib/renderers/Form/Hidden.js +1 -1
  373. package/lib/renderers/Form/IconPicker.js +1 -1
  374. package/lib/renderers/Form/IconPickerIcons.js +1 -1
  375. package/lib/renderers/Form/InputArray.js +1 -1
  376. package/lib/renderers/Form/InputCity.d.ts +40 -40
  377. package/lib/renderers/Form/InputCity.js +1 -1
  378. package/lib/renderers/Form/InputColor.js +1 -1
  379. package/lib/renderers/Form/InputDate.js +1 -1
  380. package/lib/renderers/Form/InputDateRange.js +1 -1
  381. package/lib/renderers/Form/InputExcel.js +1 -1
  382. package/lib/renderers/Form/InputFile.d.ts +5 -0
  383. package/lib/renderers/Form/InputFile.js +34 -15
  384. package/lib/renderers/Form/InputFormula.js +1 -1
  385. package/lib/renderers/Form/InputGroup.js +1 -1
  386. package/lib/renderers/Form/InputImage.js +27 -11
  387. package/lib/renderers/Form/InputMonthRange.js +1 -1
  388. package/lib/renderers/Form/InputNumber.js +1 -1
  389. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  390. package/lib/renderers/Form/InputRange.d.ts +12 -5
  391. package/lib/renderers/Form/InputRange.js +1 -1
  392. package/lib/renderers/Form/InputRating.js +1 -1
  393. package/lib/renderers/Form/InputRepeat.js +1 -1
  394. package/lib/renderers/Form/InputRichText.js +1 -1
  395. package/lib/renderers/Form/InputSubForm.js +1 -1
  396. package/lib/renderers/Form/InputTable.js +2 -2
  397. package/lib/renderers/Form/InputTag.d.ts +34 -0
  398. package/lib/renderers/Form/InputTag.js +78 -40
  399. package/lib/renderers/Form/InputText.js +1 -1
  400. package/lib/renderers/Form/InputTree.d.ts +5 -2
  401. package/lib/renderers/Form/InputTree.js +7 -3
  402. package/lib/renderers/Form/InputYearRange.js +1 -1
  403. package/lib/renderers/Form/JSONSchema.js +1 -1
  404. package/lib/renderers/Form/JSONSchemaEditor.js +1 -1
  405. package/lib/renderers/Form/ListSelect.js +1 -1
  406. package/lib/renderers/Form/LocationPicker.js +1 -1
  407. package/lib/renderers/Form/MatrixCheckboxes.js +1 -1
  408. package/lib/renderers/Form/NestedSelect.js +4 -4
  409. package/lib/renderers/Form/Picker.js +1 -1
  410. package/lib/renderers/Form/Radios.d.ts +6 -1
  411. package/lib/renderers/Form/Radios.js +5 -3
  412. package/lib/renderers/Form/Select.js +1 -1
  413. package/lib/renderers/Form/Static.js +1 -1
  414. package/lib/renderers/Form/Switch.d.ts +3 -0
  415. package/lib/renderers/Form/Switch.js +3 -3
  416. package/lib/renderers/Form/TabsTransfer.js +1 -1
  417. package/lib/renderers/Form/TabsTransferPicker.js +1 -1
  418. package/lib/renderers/Form/Textarea.d.ts +2 -1
  419. package/lib/renderers/Form/Textarea.js +13 -2
  420. package/lib/renderers/Form/Transfer.js +1 -1
  421. package/lib/renderers/Form/TransferPicker.js +1 -1
  422. package/lib/renderers/Form/TreeSelect.js +4 -4
  423. package/lib/renderers/Form/UUID.js +1 -1
  424. package/lib/renderers/Form/UserSelect.js +3 -3
  425. package/lib/renderers/Grid.js +1 -1
  426. package/lib/renderers/Grid2D.js +1 -1
  427. package/lib/renderers/GridNav.js +1 -1
  428. package/lib/renderers/HBox.js +1 -1
  429. package/lib/renderers/IFrame.js +1 -1
  430. package/lib/renderers/Icon.d.ts +1 -1
  431. package/lib/renderers/Icon.js +11 -6
  432. package/lib/renderers/Image.js +1 -1
  433. package/lib/renderers/Images.js +1 -1
  434. package/lib/renderers/Json.d.ts +4 -0
  435. package/lib/renderers/Json.js +5 -4
  436. package/lib/renderers/Link.js +1 -1
  437. package/lib/renderers/List.d.ts +1 -0
  438. package/lib/renderers/List.js +30 -25
  439. package/lib/renderers/Log.js +1 -1
  440. package/lib/renderers/Mapping.js +1 -1
  441. package/lib/renderers/Markdown.js +1 -1
  442. package/lib/renderers/Nav.js +1 -1
  443. package/lib/renderers/Operation.js +1 -1
  444. package/lib/renderers/Page.js +1 -1
  445. package/lib/renderers/Pagination.js +1 -1
  446. package/lib/renderers/PaginationWrapper.js +2 -1
  447. package/lib/renderers/Panel.js +1 -1
  448. package/lib/renderers/Plain.js +1 -1
  449. package/lib/renderers/PopOver.js +4 -4
  450. package/lib/renderers/Portlet.js +1 -1
  451. package/lib/renderers/Progress.js +1 -1
  452. package/lib/renderers/Property.js +1 -1
  453. package/lib/renderers/QRCode.js +1 -1
  454. package/lib/renderers/QuickEdit.js +4 -3
  455. package/lib/renderers/Remark.js +1 -1
  456. package/lib/renderers/SearchBox.js +1 -1
  457. package/lib/renderers/Service.js +1 -1
  458. package/lib/renderers/SparkLine.js +1 -1
  459. package/lib/renderers/Spinner.js +1 -1
  460. package/lib/renderers/Status.js +1 -1
  461. package/lib/renderers/Steps.js +3 -2
  462. package/lib/renderers/Table/ColumnToggler.d.ts +4 -3
  463. package/lib/renderers/Table/ColumnToggler.js +4 -4
  464. package/lib/renderers/Table/HeadCellFilterDropdown.js +3 -3
  465. package/lib/renderers/Table/HeadCellSearchDropdown.js +4 -4
  466. package/lib/renderers/Table/ItemActionsWrapper.js +1 -1
  467. package/lib/renderers/Table/TableBody.js +1 -1
  468. package/lib/renderers/Table/TableCell.js +1 -1
  469. package/lib/renderers/Table/TableContent.js +1 -1
  470. package/lib/renderers/Table/TableRow.js +1 -1
  471. package/lib/renderers/Table/exportExcel.js +6 -6
  472. package/lib/renderers/Table/index.d.ts +2 -1
  473. package/lib/renderers/Table/index.js +24 -4
  474. package/lib/renderers/Table-v2/ColumnToggler.d.ts +18 -2
  475. package/lib/renderers/Table-v2/ColumnToggler.js +72 -2
  476. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +1 -1
  477. package/lib/renderers/Table-v2/TableCell.js +1 -1
  478. package/lib/renderers/Table-v2/index.d.ts +12 -10
  479. package/lib/renderers/Table-v2/index.js +125 -100
  480. package/lib/renderers/TableView.js +1 -1
  481. package/lib/renderers/Tabs.js +1 -1
  482. package/lib/renderers/Tag.js +1 -1
  483. package/lib/renderers/Tasks.js +1 -1
  484. package/lib/renderers/Timeline.js +1 -1
  485. package/lib/renderers/TooltipWrapper.js +3 -3
  486. package/lib/renderers/Tpl.js +1 -1
  487. package/lib/renderers/VBox.js +1 -1
  488. package/lib/renderers/Video.js +1 -1
  489. package/lib/renderers/WebComponent.js +1 -1
  490. package/lib/renderers/Wizard.d.ts +1 -1
  491. package/lib/renderers/Wizard.js +70 -75
  492. package/lib/renderers/Wrapper.js +1 -1
  493. package/lib/schemaExtend.js +1 -1
  494. package/lib/themes/ang-ie11.css +328 -250
  495. package/lib/themes/ang.css +341 -245
  496. package/lib/themes/antd-ie11.css +346 -268
  497. package/lib/themes/antd.css +345 -245
  498. package/lib/themes/cxd-ie11.css +349 -287
  499. package/lib/themes/cxd.css +356 -276
  500. package/lib/themes/dark-ie11.css +328 -250
  501. package/lib/themes/dark.css +341 -245
  502. package/lib/themes/default-ie11.css +349 -287
  503. package/lib/themes/default.css +356 -276
  504. package/lib/types.d.ts +1 -1
  505. package/package.json +15 -2
  506. package/schema.json +2494 -836
  507. package/sdk/ang-ie11.css +359 -64
  508. package/sdk/ang.css +372 -59
  509. package/sdk/antd-ie11.css +377 -82
  510. package/sdk/antd.css +376 -59
  511. package/sdk/barcode.js +50 -50
  512. package/sdk/charts.js +14 -14
  513. package/sdk/codemirror.js +7 -7
  514. package/sdk/color-picker.js +65 -65
  515. package/sdk/cropperjs.js +2 -2
  516. package/sdk/cxd-ie11.css +380 -106
  517. package/sdk/cxd.css +387 -95
  518. package/sdk/dark-ie11.css +359 -64
  519. package/sdk/dark.css +372 -59
  520. package/sdk/exceljs.js +1 -1
  521. package/sdk/helper.css +0 -1
  522. package/sdk/locale/de-DE.js +2 -1
  523. package/sdk/markdown.js +68 -68
  524. package/sdk/papaparse.js +1 -1
  525. package/sdk/rest.js +24 -24
  526. package/sdk/rich-text.js +62 -62
  527. package/sdk/sdk-ie11.css +380 -106
  528. package/sdk/sdk.css +387 -95
  529. package/sdk/sdk.js +1788 -1710
  530. package/sdk/thirds/hls.js/hls.js +1 -1
  531. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  532. package/sdk/tinymce.js +57 -57
@@ -0,0 +1,1539 @@
1
+ /**
2
+ * amis v2.0.0
3
+ * Copyright 2018-2022 baidu
4
+ */
5
+
6
+ import { __extends, __awaiter, __generator, __spreadArray, __assign, __rest, __decorate, __metadata } from 'tslib';
7
+ import React from 'react';
8
+ import { findDOMNode } from 'react-dom';
9
+ import { resolveVariableAndFilter, getScrollParent, offset, getStyleNumber, anyChanged, isPureVariable, isArrayChildrenModified, createObject, difference, resizeSensor, eachTree, resolveVariable, filter, noop, isObject, evalExpression, ScopedContext, autobind, Renderer, TableStore } from 'amis-core';
10
+ import forEach from 'lodash/forEach';
11
+ import { Icon, Checkbox, Button, Spinner } from 'amis-ui';
12
+ import debouce from 'lodash/debounce';
13
+ import Sortable from 'sortablejs';
14
+ import find from 'lodash/find';
15
+ export { TableCell } from './TableCell.js';
16
+ import { HeadCellFilterDropDown } from './HeadCellFilterDropdown.js';
17
+ import { HeadCellSearchDropDown } from './HeadCellSearchDropdown.js';
18
+ import { TableContent } from './TableContent.js';
19
+ import { TableBody } from './TableBody.js';
20
+ import { isAlive } from 'mobx-state-tree';
21
+ import ColumnToggler from './ColumnToggler.js';
22
+ import { exportExcel } from './exportExcel.js';
23
+
24
+ var Table = /** @class */ (function (_super) {
25
+ __extends(Table, _super);
26
+ function Table(props, context) {
27
+ var _this = _super.call(this, props) || this;
28
+ _this.lastScrollLeft = -1;
29
+ _this.totalWidth = 0;
30
+ _this.totalHeight = 0;
31
+ _this.outterWidth = 0;
32
+ _this.outterHeight = 0;
33
+ _this.widths = {};
34
+ _this.widths2 = {};
35
+ _this.heights = {};
36
+ _this.renderedToolbars = [];
37
+ _this.subForms = {};
38
+ var scoped = context;
39
+ scoped.registerComponent(_this);
40
+ _this.handleOutterScroll = _this.handleOutterScroll.bind(_this);
41
+ _this.affixDetect = _this.affixDetect.bind(_this);
42
+ _this.updateTableInfoLazy = debouce(_this.updateTableInfo.bind(_this), 250, {
43
+ trailing: true,
44
+ leading: true
45
+ });
46
+ _this.tableRef = _this.tableRef.bind(_this);
47
+ _this.affixedTableRef = _this.affixedTableRef.bind(_this);
48
+ _this.handleAction = _this.handleAction.bind(_this);
49
+ _this.handleCheck = _this.handleCheck.bind(_this);
50
+ _this.handleCheckAll = _this.handleCheckAll.bind(_this);
51
+ _this.handleQuickChange = _this.handleQuickChange.bind(_this);
52
+ _this.handleSave = _this.handleSave.bind(_this);
53
+ _this.handleSaveOrder = _this.handleSaveOrder.bind(_this);
54
+ _this.reset = _this.reset.bind(_this);
55
+ _this.dragTipRef = _this.dragTipRef.bind(_this);
56
+ _this.getPopOverContainer = _this.getPopOverContainer.bind(_this);
57
+ _this.renderCell = _this.renderCell.bind(_this);
58
+ _this.renderHeadCell = _this.renderHeadCell.bind(_this);
59
+ _this.renderToolbar = _this.renderToolbar.bind(_this);
60
+ _this.handleMouseMove = _this.handleMouseMove.bind(_this);
61
+ _this.handleMouseLeave = _this.handleMouseLeave.bind(_this);
62
+ _this.subFormRef = _this.subFormRef.bind(_this);
63
+ _this.handleColumnToggle = _this.handleColumnToggle.bind(_this);
64
+ _this.updateAutoFillHeight = _this.updateAutoFillHeight.bind(_this);
65
+ 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;
66
+ var combineNum = props.combineNum;
67
+ if (typeof combineNum === 'string') {
68
+ combineNum = parseInt(resolveVariableAndFilter(combineNum, props.data, '| raw'), 10);
69
+ }
70
+ store.update({
71
+ selectable: selectable,
72
+ draggable: draggable,
73
+ columns: columns,
74
+ columnsTogglable: columnsTogglable,
75
+ orderBy: orderBy,
76
+ orderDir: orderDir,
77
+ multiple: multiple,
78
+ footable: footable,
79
+ expandConfig: expandConfig,
80
+ primaryField: primaryField,
81
+ itemCheckableOn: itemCheckableOn,
82
+ itemDraggableOn: itemDraggableOn,
83
+ hideCheckToggler: hideCheckToggler,
84
+ combineNum: combineNum,
85
+ combineFromIndex: combineFromIndex,
86
+ keepItemSelectionOnPageChange: keepItemSelectionOnPageChange,
87
+ maxKeepItemSelectionLength: maxKeepItemSelectionLength
88
+ });
89
+ formItem && isAlive(formItem) && formItem.setSubStore(store);
90
+ Table.syncRows(store, _this.props, undefined) && _this.syncSelected();
91
+ return _this;
92
+ }
93
+ Table.syncRows = function (store, props, prevProps) {
94
+ var source = props.source;
95
+ var value = props.value || props.items;
96
+ var rows = [];
97
+ var updateRows = false;
98
+ if (Array.isArray(value) &&
99
+ (!prevProps || (prevProps.value || prevProps.items) !== value)) {
100
+ updateRows = true;
101
+ rows = value;
102
+ }
103
+ else if (typeof source === 'string') {
104
+ var resolved = resolveVariableAndFilter(source, props.data, '| raw');
105
+ var prev = prevProps
106
+ ? resolveVariableAndFilter(source, prevProps.data, '| raw')
107
+ : null;
108
+ if (prev && prev === resolved) {
109
+ updateRows = false;
110
+ }
111
+ else if (Array.isArray(resolved)) {
112
+ updateRows = true;
113
+ rows = resolved;
114
+ }
115
+ }
116
+ updateRows && store.initRows(rows, props.getEntryId, props.reUseRow);
117
+ typeof props.selected !== 'undefined' &&
118
+ store.updateSelected(props.selected, props.valueField);
119
+ return updateRows;
120
+ };
121
+ Table.prototype.componentDidMount = function () {
122
+ var parent = getScrollParent(findDOMNode(this));
123
+ if (!parent || parent === document.body) {
124
+ parent = window;
125
+ }
126
+ this.parentNode = parent;
127
+ this.updateTableInfo();
128
+ var dom = findDOMNode(this);
129
+ if (dom.closest('.modal-body')) {
130
+ return;
131
+ }
132
+ this.affixDetect();
133
+ parent.addEventListener('scroll', this.affixDetect);
134
+ window.addEventListener('resize', this.affixDetect);
135
+ this.updateAutoFillHeight();
136
+ window.addEventListener('resize', this.updateAutoFillHeight);
137
+ var _a = this.props, store = _a.store, autoGenerateFilter = _a.autoGenerateFilter, onSearchableFromInit = _a.onSearchableFromInit;
138
+ // autoGenerateFilter 开启后
139
+ // 如果没有一个 searchable 的 column crud 就不会初始化加载
140
+ // 所以这里加个判断默认初始加载一次
141
+ if (autoGenerateFilter &&
142
+ !store.searchableColumns.length &&
143
+ onSearchableFromInit) {
144
+ onSearchableFromInit({});
145
+ }
146
+ };
147
+ /**
148
+ * 自动设置表格高度占满界面剩余区域
149
+ * 用 css 实现有点麻烦,要改很多结构,所以先用 dom hack 了,避免对之前的功能有影响
150
+ */
151
+ Table.prototype.updateAutoFillHeight = function () {
152
+ var _this = this;
153
+ var _a = this.props, autoFillHeight = _a.autoFillHeight, footerToolbar = _a.footerToolbar, ns = _a.classPrefix;
154
+ if (!autoFillHeight) {
155
+ return;
156
+ }
157
+ var table = findDOMNode(this);
158
+ var tableContent = table.querySelector(".".concat(ns, "Table-content"));
159
+ var tableContentWrap = table.querySelector(".".concat(ns, "Table-contentWrap"));
160
+ var footToolbar = table.querySelector(".".concat(ns, "Table-footToolbar"));
161
+ if (!tableContent) {
162
+ return;
163
+ }
164
+ // 计算 table-content 在 dom 中的位置
165
+ var tableContentTop = offset(tableContent).top;
166
+ var viewportHeight = window.innerHeight;
167
+ // 有时候会拿不到 footToolbar?
168
+ var footToolbarHeight = footToolbar ? offset(footToolbar).height : 0;
169
+ // 有时候会拿不到 footToolbar,等一下在执行
170
+ if (!footToolbarHeight && footerToolbar && footerToolbar.length) {
171
+ this.timer = setTimeout(function () {
172
+ _this.updateAutoFillHeight();
173
+ }, 100);
174
+ return;
175
+ }
176
+ var tableContentWrapMarginButtom = getStyleNumber(tableContentWrap, 'margin-bottom');
177
+ // 循环计算父级节点的 pddding,这里不考虑父级节点还可能会有其它兄弟节点的情况了
178
+ var allParentPaddingButtom = 0;
179
+ var parentNode = tableContent.parentElement;
180
+ while (parentNode) {
181
+ var paddingButtom = getStyleNumber(parentNode, 'padding-bottom');
182
+ var borderBottom = getStyleNumber(parentNode, 'border-bottom-width');
183
+ allParentPaddingButtom =
184
+ allParentPaddingButtom + paddingButtom + borderBottom;
185
+ parentNode = parentNode.parentElement;
186
+ }
187
+ tableContent.style.height = "".concat(viewportHeight -
188
+ tableContentTop -
189
+ tableContentWrapMarginButtom -
190
+ footToolbarHeight -
191
+ allParentPaddingButtom, "px");
192
+ };
193
+ Table.prototype.componentDidUpdate = function (prevProps) {
194
+ var props = this.props;
195
+ var store = props.store;
196
+ if (anyChanged([
197
+ 'selectable',
198
+ 'columnsTogglable',
199
+ 'draggable',
200
+ 'orderBy',
201
+ 'orderDir',
202
+ 'multiple',
203
+ 'footable',
204
+ 'primaryField',
205
+ 'itemCheckableOn',
206
+ 'itemDraggableOn',
207
+ 'hideCheckToggler',
208
+ 'combineNum',
209
+ 'combineFromIndex',
210
+ 'expandConfig'
211
+ ], prevProps, props)) {
212
+ var combineNum = props.combineNum;
213
+ if (typeof combineNum === 'string') {
214
+ combineNum = parseInt(resolveVariableAndFilter(combineNum, props.data, '| raw'), 10);
215
+ }
216
+ store.update({
217
+ selectable: props.selectable,
218
+ columnsTogglable: props.columnsTogglable,
219
+ draggable: props.draggable,
220
+ orderBy: props.orderBy,
221
+ orderDir: props.orderDir,
222
+ multiple: props.multiple,
223
+ primaryField: props.primaryField,
224
+ footable: props.footable,
225
+ itemCheckableOn: props.itemCheckableOn,
226
+ itemDraggableOn: props.itemDraggableOn,
227
+ hideCheckToggler: props.hideCheckToggler,
228
+ combineNum: combineNum,
229
+ combineFromIndex: props.combineFromIndex,
230
+ expandConfig: props.expandConfig
231
+ });
232
+ }
233
+ if (prevProps.columns !== props.columns) {
234
+ store.update({
235
+ columns: props.columns
236
+ });
237
+ }
238
+ if (anyChanged(['source', 'value', 'items'], prevProps, props) ||
239
+ (!props.value &&
240
+ !props.items &&
241
+ (props.data !== prevProps.data ||
242
+ (typeof props.source === 'string' && isPureVariable(props.source))))) {
243
+ Table.syncRows(store, props, prevProps) && this.syncSelected();
244
+ }
245
+ else if (isArrayChildrenModified(prevProps.selected, props.selected)) {
246
+ var prevSelectedRows = store.selectedRows
247
+ .map(function (item) { return item.id; })
248
+ .join(',');
249
+ store.updateSelected(props.selected || [], props.valueField);
250
+ var selectedRows = store.selectedRows.map(function (item) { return item.id; }).join(',');
251
+ prevSelectedRows !== selectedRows && this.syncSelected();
252
+ }
253
+ this.updateTableInfoLazy();
254
+ };
255
+ Table.prototype.componentWillUnmount = function () {
256
+ var formItem = this.props.formItem;
257
+ var parent = this.parentNode;
258
+ parent && parent.removeEventListener('scroll', this.affixDetect);
259
+ window.removeEventListener('resize', this.affixDetect);
260
+ window.removeEventListener('resize', this.updateAutoFillHeight);
261
+ this.updateTableInfoLazy.cancel();
262
+ this.unSensor && this.unSensor();
263
+ formItem && isAlive(formItem) && formItem.setSubStore(null);
264
+ clearTimeout(this.timer);
265
+ var scoped = this.context;
266
+ scoped.unRegisterComponent(this);
267
+ };
268
+ Table.prototype.subFormRef = function (form, x, y) {
269
+ var quickEditFormRef = this.props.quickEditFormRef;
270
+ quickEditFormRef && quickEditFormRef(form, x, y);
271
+ this.subForms["".concat(x, "-").concat(y)] = form;
272
+ form && this.props.store.addForm(form.props.store, y);
273
+ };
274
+ Table.prototype.handleAction = function (e, action, ctx) {
275
+ var onAction = this.props.onAction;
276
+ // todo
277
+ onAction(e, action, ctx);
278
+ };
279
+ Table.prototype.handleCheck = function (item, value, shift) {
280
+ return __awaiter(this, void 0, void 0, function () {
281
+ var _a, store, data, dispatchEvent, selectedItems, unSelectedItems, rendererEvent;
282
+ return __generator(this, function (_b) {
283
+ switch (_b.label) {
284
+ case 0:
285
+ _a = this.props, store = _a.store, data = _a.data, dispatchEvent = _a.dispatchEvent;
286
+ selectedItems = value
287
+ ? __spreadArray(__spreadArray([], store.selectedRows.map(function (row) { return row.data; }), true), [item.data], false) : store.selectedRows.filter(function (row) { return row.id !== item.id; });
288
+ unSelectedItems = value
289
+ ? store.unSelectedRows.filter(function (row) { return row.id !== item.id; })
290
+ : __spreadArray(__spreadArray([], store.unSelectedRows.map(function (row) { return row.data; }), true), [item.data], false);
291
+ return [4 /*yield*/, dispatchEvent('selectedChange', createObject(data, {
292
+ selectedItems: selectedItems,
293
+ unSelectedItems: unSelectedItems
294
+ }))];
295
+ case 1:
296
+ rendererEvent = _b.sent();
297
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
298
+ return [2 /*return*/];
299
+ }
300
+ if (shift) {
301
+ store.toggleShift(item);
302
+ }
303
+ else {
304
+ item.toggle();
305
+ }
306
+ this.syncSelected();
307
+ return [2 /*return*/];
308
+ }
309
+ });
310
+ });
311
+ };
312
+ Table.prototype.handleCheckAll = function () {
313
+ return __awaiter(this, void 0, void 0, function () {
314
+ var _a, store, data, dispatchEvent, items, rendererEvent;
315
+ return __generator(this, function (_b) {
316
+ switch (_b.label) {
317
+ case 0:
318
+ _a = this.props, store = _a.store, data = _a.data, dispatchEvent = _a.dispatchEvent;
319
+ items = store.getSelectedRows().map(function (item) { return item.data; });
320
+ return [4 /*yield*/, dispatchEvent('selectedChange', createObject(data, {
321
+ selectedItems: store.allChecked ? [] : items,
322
+ unSelectedItems: store.allChecked ? items : []
323
+ }))];
324
+ case 1:
325
+ rendererEvent = _b.sent();
326
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
327
+ return [2 /*return*/];
328
+ }
329
+ store.toggleAll();
330
+ this.syncSelected();
331
+ return [2 /*return*/];
332
+ }
333
+ });
334
+ });
335
+ };
336
+ Table.prototype.handleQuickChange = function (item, values, saveImmediately, savePristine, resetOnFailed) {
337
+ if (!isAlive(item)) {
338
+ return;
339
+ }
340
+ var _a = this.props, onSave = _a.onSave, onPristineChange = _a.onPristineChange, propsSaveImmediately = _a.saveImmediately, primaryField = _a.primaryField;
341
+ item.change(values, savePristine);
342
+ // 值发生变化了,需要通过 onSelect 通知到外面,否则会出现数据不同步的问题
343
+ item.modified && this.syncSelected();
344
+ if (savePristine) {
345
+ onPristineChange === null || onPristineChange === void 0 ? void 0 : onPristineChange(item.data, item.path);
346
+ return;
347
+ }
348
+ else if (!saveImmediately && !propsSaveImmediately) {
349
+ return;
350
+ }
351
+ if (saveImmediately && saveImmediately.api) {
352
+ this.props.onAction(null, {
353
+ actionType: 'ajax',
354
+ api: saveImmediately.api
355
+ }, values);
356
+ return;
357
+ }
358
+ if (!onSave) {
359
+ return;
360
+ }
361
+ onSave(item.data, difference(item.data, item.pristine, ['id', primaryField]), item.path, undefined, item.pristine, resetOnFailed);
362
+ };
363
+ Table.prototype.handleSave = function () {
364
+ return __awaiter(this, void 0, void 0, function () {
365
+ var _a, store, onSave, primaryField, subForms, result, rows, rowIndexes, diff, unModifiedRows;
366
+ var _this = this;
367
+ return __generator(this, function (_b) {
368
+ switch (_b.label) {
369
+ case 0:
370
+ _a = this.props, store = _a.store, onSave = _a.onSave, primaryField = _a.primaryField;
371
+ if (!onSave || !store.modifiedRows.length) {
372
+ return [2 /*return*/];
373
+ }
374
+ subForms = [];
375
+ Object.keys(this.subForms).forEach(function (key) { return _this.subForms[key] && subForms.push(_this.subForms[key]); });
376
+ if (!subForms.length) return [3 /*break*/, 2];
377
+ return [4 /*yield*/, Promise.all(subForms.map(function (item) { return item.validate(); }))];
378
+ case 1:
379
+ result = _b.sent();
380
+ if (~result.indexOf(false)) {
381
+ return [2 /*return*/];
382
+ }
383
+ _b.label = 2;
384
+ case 2:
385
+ rows = store.modifiedRows.map(function (item) { return item.data; });
386
+ rowIndexes = store.modifiedRows.map(function (item) { return item.path; });
387
+ diff = store.modifiedRows.map(function (item) {
388
+ return difference(item.data, item.pristine, ['id', primaryField]);
389
+ });
390
+ unModifiedRows = store.rows
391
+ .filter(function (item) { return !item.modified; })
392
+ .map(function (item) { return item.data; });
393
+ onSave(rows, diff, rowIndexes, unModifiedRows, store.modifiedRows.map(function (item) { return item.pristine; }));
394
+ return [2 /*return*/];
395
+ }
396
+ });
397
+ });
398
+ };
399
+ Table.prototype.handleSaveOrder = function () {
400
+ return __awaiter(this, void 0, void 0, function () {
401
+ var _a, store, onSaveOrder, data, dispatchEvent, movedItems, items, rendererEvent;
402
+ return __generator(this, function (_b) {
403
+ switch (_b.label) {
404
+ case 0:
405
+ _a = this.props, store = _a.store, onSaveOrder = _a.onSaveOrder, data = _a.data, dispatchEvent = _a.dispatchEvent;
406
+ movedItems = store.movedRows.map(function (item) { return item.data; });
407
+ items = store.rows.map(function (item) { return item.getDataWithModifiedChilden(); });
408
+ return [4 /*yield*/, dispatchEvent('orderChange', createObject(data, { movedItems: movedItems }))];
409
+ case 1:
410
+ rendererEvent = _b.sent();
411
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
412
+ return [2 /*return*/];
413
+ }
414
+ if (!onSaveOrder || !store.movedRows.length) {
415
+ return [2 /*return*/];
416
+ }
417
+ onSaveOrder(movedItems, items);
418
+ return [2 /*return*/];
419
+ }
420
+ });
421
+ });
422
+ };
423
+ Table.prototype.syncSelected = function () {
424
+ var _a = this.props, store = _a.store, onSelect = _a.onSelect;
425
+ onSelect &&
426
+ onSelect(store.selectedRows.map(function (item) { return item.data; }), store.unSelectedRows.map(function (item) { return item.data; }));
427
+ };
428
+ Table.prototype.reset = function () {
429
+ var _this = this;
430
+ var store = this.props.store;
431
+ store.reset();
432
+ var subForms = [];
433
+ Object.keys(this.subForms).forEach(function (key) { return _this.subForms[key] && subForms.push(_this.subForms[key]); });
434
+ subForms.forEach(function (item) { return item.clearErrors(); });
435
+ };
436
+ Table.prototype.bulkUpdate = function (value, items) {
437
+ var _a = this.props, store = _a.store, primaryField = _a.primaryField;
438
+ if (primaryField && value.ids) {
439
+ var ids_1 = value.ids.split(',');
440
+ var rows = store.rows.filter(function (item) {
441
+ return find(ids_1, function (id) { return id && id == item.data[primaryField]; });
442
+ });
443
+ var newValue_1 = __assign(__assign({}, value), { ids: undefined });
444
+ rows.forEach(function (row) { return row.change(newValue_1); });
445
+ }
446
+ else {
447
+ var rows = store.rows.filter(function (item) { return ~items.indexOf(item.pristine); });
448
+ rows.forEach(function (row) { return row.change(value); });
449
+ }
450
+ };
451
+ Table.prototype.getSelected = function () {
452
+ var store = this.props.store;
453
+ return store.selectedRows.map(function (item) { return item.data; });
454
+ };
455
+ Table.prototype.affixDetect = function () {
456
+ var _a, _b, _c, _d;
457
+ if (!this.props.affixHeader || !this.table || this.props.autoFillHeight) {
458
+ return;
459
+ }
460
+ var ns = this.props.classPrefix;
461
+ var dom = findDOMNode(this);
462
+ var clip = this.table.getBoundingClientRect();
463
+ var offsetY = (_b = (_a = this.props.affixOffsetTop) !== null && _a !== void 0 ? _a : this.props.env.affixOffsetTop) !== null && _b !== void 0 ? _b : 0;
464
+ var headingHeight = ((_c = dom.querySelector(".".concat(ns, "Table-heading"))) === null || _c === void 0 ? void 0 : _c.getBoundingClientRect().height) || 0;
465
+ var headerHeight = ((_d = dom.querySelector(".".concat(ns, "Table-headToolbar"))) === null || _d === void 0 ? void 0 : _d.getBoundingClientRect().height) || 0;
466
+ var affixed = clip.top - headerHeight - headingHeight < offsetY &&
467
+ clip.top + clip.height - 40 > offsetY;
468
+ var affixedDom = dom.querySelector(".".concat(ns, "Table-fixedTop"));
469
+ affixedDom.style.cssText += "top: ".concat(offsetY, "px;width: ").concat(this.table.parentNode.offsetWidth, "px");
470
+ affixed
471
+ ? affixedDom.classList.add('in')
472
+ : affixedDom.classList.remove('in');
473
+ // store.markHeaderAffix(clip.top < offsetY && (clip.top + clip.height - 40) > offsetY);
474
+ };
475
+ Table.prototype.updateTableInfo = function () {
476
+ if (!this.table) {
477
+ return;
478
+ }
479
+ var table = this.table;
480
+ var outter = table.parentNode;
481
+ var affixHeader = this.props.affixHeader;
482
+ var ns = this.props.classPrefix;
483
+ // 完成宽高都没有变化就直接跳过了。
484
+ // if (this.totalWidth === table.scrollWidth && this.totalHeight === table.scrollHeight) {
485
+ // return;
486
+ // }
487
+ this.totalWidth = table.scrollWidth;
488
+ this.totalHeight = table.scrollHeight;
489
+ this.outterWidth = outter.offsetWidth;
490
+ this.outterHeight = outter.offsetHeight;
491
+ var widths = (this.widths = {});
492
+ var widths2 = (this.widths2 = {});
493
+ var heights = (this.heights = {});
494
+ heights.header = table
495
+ .querySelector('thead>tr:last-child')
496
+ .getBoundingClientRect().height;
497
+ heights.header2 = table
498
+ .querySelector('thead>tr:first-child')
499
+ .getBoundingClientRect().height;
500
+ forEach(table.querySelectorAll('thead>tr:last-child>th'), function (item) {
501
+ widths[item.getAttribute('data-index')] =
502
+ item.getBoundingClientRect().width;
503
+ });
504
+ forEach(table.querySelectorAll('thead>tr:first-child>th'), function (item) {
505
+ widths2[item.getAttribute('data-index')] =
506
+ item.getBoundingClientRect().width;
507
+ });
508
+ forEach(table.querySelectorAll('tbody>tr>*:last-child'), function (item, index) {
509
+ return (heights[index] = item.getBoundingClientRect().height);
510
+ });
511
+ // 让 react 去更新非常慢,还是手动更新吧。
512
+ var dom = findDOMNode(this);
513
+ forEach(
514
+ // 折叠 footTable 不需要改变
515
+ dom.querySelectorAll(".".concat(ns, "Table-fixedTop table, .").concat(ns, "Table-fixedLeft>table, .").concat(ns, "Table-fixedRight>table")), function (table) {
516
+ var totalWidth = 0;
517
+ var totalWidth2 = 0;
518
+ forEach(table.querySelectorAll('thead>tr:last-child>th'), function (item) {
519
+ var width = widths[item.getAttribute('data-index')];
520
+ item.style.cssText += "width: ".concat(width, "px; height: ").concat(heights.header, "px");
521
+ totalWidth += width;
522
+ });
523
+ forEach(table.querySelectorAll('thead>tr:first-child>th'), function (item) {
524
+ var width = widths2[item.getAttribute('data-index')];
525
+ item.style.cssText += "width: ".concat(width, "px; height: ").concat(heights.header2, "px");
526
+ totalWidth2 += width;
527
+ });
528
+ forEach(table.querySelectorAll('colgroup>col'), function (item) {
529
+ var width = widths[item.getAttribute('data-index')];
530
+ item.setAttribute('width', "".concat(width));
531
+ });
532
+ forEach(table.querySelectorAll('tbody>tr'), function (item, index) {
533
+ item.style.cssText += "height: ".concat(heights[index], "px");
534
+ });
535
+ table.style.cssText += "width: ".concat(Math.max(totalWidth, totalWidth2), "px;table-layout: auto;");
536
+ });
537
+ if (affixHeader) {
538
+ dom.querySelector(".".concat(ns, "Table-fixedTop>.").concat(ns, "Table-wrapper")).style.cssText += "width: ".concat(this.outterWidth, "px");
539
+ }
540
+ this.lastScrollLeft = -1;
541
+ this.handleOutterScroll();
542
+ };
543
+ Table.prototype.handleOutterScroll = function () {
544
+ var outter = this.table.parentNode;
545
+ var scrollLeft = outter.scrollLeft;
546
+ if (scrollLeft === this.lastScrollLeft) {
547
+ return;
548
+ }
549
+ this.lastScrollLeft = scrollLeft;
550
+ var leading = scrollLeft === 0;
551
+ var trailing = Math.ceil(scrollLeft) + this.outterWidth >= this.totalWidth;
552
+ // console.log(scrollLeft, store.outterWidth, store.totalWidth, (scrollLeft + store.outterWidth) === store.totalWidth);
553
+ // store.setLeading(leading);
554
+ // store.setTrailing(trailing);
555
+ var ns = this.props.classPrefix;
556
+ var dom = findDOMNode(this);
557
+ var fixedLeft = dom.querySelectorAll(".".concat(ns, "Table-fixedLeft"));
558
+ if (fixedLeft && fixedLeft.length) {
559
+ for (var i = 0, len = fixedLeft.length; i < len; i++) {
560
+ var node = fixedLeft[i];
561
+ leading ? node.classList.remove('in') : node.classList.add('in');
562
+ }
563
+ }
564
+ var fixedRight = dom.querySelectorAll(".".concat(ns, "Table-fixedRight"));
565
+ if (fixedRight && fixedRight.length) {
566
+ for (var i = 0, len = fixedRight.length; i < len; i++) {
567
+ var node = fixedRight[i];
568
+ trailing ? node.classList.remove('in') : node.classList.add('in');
569
+ }
570
+ }
571
+ var table = this.affixedTable;
572
+ if (table) {
573
+ table.style.cssText += "transform: translateX(-".concat(scrollLeft, "px)");
574
+ }
575
+ };
576
+ Table.prototype.tableRef = function (ref) {
577
+ this.table = ref;
578
+ if (ref) {
579
+ this.unSensor = resizeSensor(ref.parentNode, this.updateTableInfoLazy);
580
+ }
581
+ else {
582
+ this.unSensor && this.unSensor();
583
+ delete this.unSensor;
584
+ }
585
+ };
586
+ Table.prototype.dragTipRef = function (ref) {
587
+ if (!this.dragTip && ref) {
588
+ this.initDragging();
589
+ }
590
+ else if (this.dragTip && !ref) {
591
+ this.destroyDragging();
592
+ }
593
+ this.dragTip = ref;
594
+ };
595
+ Table.prototype.affixedTableRef = function (ref) {
596
+ this.affixedTable = ref;
597
+ };
598
+ Table.prototype.initDragging = function () {
599
+ var _this = this;
600
+ var _a = this.props, store = _a.store, ns = _a.classPrefix;
601
+ this.sortable = new Sortable(this.table.querySelector('tbody'), {
602
+ group: 'table',
603
+ animation: 150,
604
+ handle: ".".concat(ns, "Table-dragCell"),
605
+ filter: ".".concat(ns, "Table-dragCell.is-dragDisabled"),
606
+ ghostClass: 'is-dragging',
607
+ onEnd: function (e) { return __awaiter(_this, void 0, void 0, function () {
608
+ var parent;
609
+ return __generator(this, function (_a) {
610
+ // 没有移动
611
+ if (e.newIndex === e.oldIndex) {
612
+ return [2 /*return*/];
613
+ }
614
+ parent = e.to;
615
+ if (e.oldIndex < parent.childNodes.length - 1) {
616
+ parent.insertBefore(e.item, parent.childNodes[e.oldIndex]);
617
+ }
618
+ else {
619
+ parent.appendChild(e.item);
620
+ }
621
+ store.exchange(e.oldIndex, e.newIndex);
622
+ return [2 /*return*/];
623
+ });
624
+ }); }
625
+ });
626
+ };
627
+ Table.prototype.destroyDragging = function () {
628
+ this.sortable && this.sortable.destroy();
629
+ };
630
+ Table.prototype.getPopOverContainer = function () {
631
+ return findDOMNode(this);
632
+ };
633
+ Table.prototype.handleMouseMove = function (e) {
634
+ var tr = e.target.closest('tr[data-id]');
635
+ if (!tr) {
636
+ return;
637
+ }
638
+ var _a = this.props, store = _a.store, affixColumns = _a.affixColumns, itemActions = _a.itemActions;
639
+ if ((affixColumns === false ||
640
+ (store.leftFixedColumns.length === 0 &&
641
+ store.rightFixedColumns.length === 0)) &&
642
+ (!itemActions || !itemActions.filter(function (item) { return !item.hiddenOnHover; }).length)) {
643
+ return;
644
+ }
645
+ var id = tr.getAttribute('data-id');
646
+ var row = store.hoverRow;
647
+ if ((row === null || row === void 0 ? void 0 : row.id) === id) {
648
+ return;
649
+ }
650
+ eachTree(store.rows, function (item) { return item.setIsHover(item.id === id); });
651
+ };
652
+ Table.prototype.handleMouseLeave = function () {
653
+ var store = this.props.store;
654
+ var row = store.hoverRow;
655
+ row === null || row === void 0 ? void 0 : row.setIsHover(false);
656
+ };
657
+ Table.prototype.handleDragStart = function (e) {
658
+ var store = this.props.store;
659
+ var target = e.currentTarget;
660
+ var tr = (this.draggingTr = target.closest('tr'));
661
+ var id = tr.getAttribute('data-id');
662
+ var tbody = tr.parentNode;
663
+ this.originIndex = Array.prototype.indexOf.call(tbody.childNodes, tr);
664
+ tr.classList.add('is-dragging');
665
+ e.dataTransfer.effectAllowed = 'move';
666
+ e.dataTransfer.setData('text/plain', id);
667
+ e.dataTransfer.setDragImage(tr, 0, 0);
668
+ var item = store.getRowById(id);
669
+ store.collapseAllAtDepth(item.depth);
670
+ var siblings = store.rows;
671
+ if (item.parentId) {
672
+ var parent_1 = store.getRowById(item.parentId);
673
+ siblings = parent_1.children;
674
+ }
675
+ siblings = siblings.filter(function (sibling) { return sibling !== item; });
676
+ tbody.addEventListener('dragover', this.handleDragOver);
677
+ tbody.addEventListener('drop', this.handleDrop);
678
+ this.draggingSibling = siblings.map(function (item) {
679
+ var tr = tbody.querySelector("tr[data-id=\"".concat(item.id, "\"]"));
680
+ tr.classList.add('is-drop-allowed');
681
+ return tr;
682
+ });
683
+ tr.addEventListener('dragend', this.handleDragEnd);
684
+ };
685
+ Table.prototype.handleDragOver = function (e) {
686
+ if (!e.target) {
687
+ return;
688
+ }
689
+ e.preventDefault();
690
+ e.dataTransfer.dropEffect = 'move';
691
+ var overTr = e.target.closest('tr');
692
+ if (!overTr ||
693
+ !~overTr.className.indexOf('is-drop-allowed') ||
694
+ overTr === this.draggingTr) {
695
+ return;
696
+ }
697
+ var tbody = overTr.parentElement;
698
+ var dRect = this.draggingTr.getBoundingClientRect();
699
+ var tRect = overTr.getBoundingClientRect();
700
+ var ratio = dRect.top < tRect.top ? 0.1 : 0.9;
701
+ var next = (e.clientY - tRect.top) / (tRect.bottom - tRect.top) > ratio;
702
+ tbody.insertBefore(this.draggingTr, (next && overTr.nextSibling) || overTr);
703
+ };
704
+ Table.prototype.handleDrop = function () {
705
+ return __awaiter(this, void 0, void 0, function () {
706
+ var store, tr, tbody, index, item;
707
+ return __generator(this, function (_a) {
708
+ store = this.props.store;
709
+ tr = this.draggingTr;
710
+ tbody = tr.parentElement;
711
+ index = Array.prototype.indexOf.call(tbody.childNodes, tr);
712
+ item = store.getRowById(tr.getAttribute('data-id'));
713
+ // destroy
714
+ this.handleDragEnd();
715
+ store.exchange(this.originIndex, index, item);
716
+ return [2 /*return*/];
717
+ });
718
+ });
719
+ };
720
+ Table.prototype.handleDragEnd = function () {
721
+ var tr = this.draggingTr;
722
+ var tbody = tr.parentElement;
723
+ var index = Array.prototype.indexOf.call(tbody.childNodes, tr);
724
+ tbody.insertBefore(tr, tbody.childNodes[index < this.originIndex ? this.originIndex + 1 : this.originIndex]);
725
+ tr.classList.remove('is-dragging');
726
+ tr.removeEventListener('dragend', this.handleDragEnd);
727
+ tbody.removeEventListener('dragover', this.handleDragOver);
728
+ tbody.removeEventListener('drop', this.handleDrop);
729
+ this.draggingSibling.forEach(function (item) {
730
+ return item.classList.remove('is-drop-allowed');
731
+ });
732
+ };
733
+ Table.prototype.handleImageEnlarge = function (info, target) {
734
+ var onImageEnlarge = this.props.onImageEnlarge;
735
+ // 如果已经是多张了,直接跳过
736
+ if (Array.isArray(info.list)) {
737
+ return onImageEnlarge && onImageEnlarge(info, target);
738
+ }
739
+ // 从列表中收集所有图片,然后作为一个图片集合派送出去。
740
+ var store = this.props.store;
741
+ var column = store.columns[target.colIndex].pristine;
742
+ var index = target.rowIndex;
743
+ var list = [];
744
+ store.rows.forEach(function (row, i) {
745
+ var src = resolveVariable(column.name, row.data);
746
+ if (!src) {
747
+ if (i < target.rowIndex) {
748
+ index--;
749
+ }
750
+ return;
751
+ }
752
+ list.push({
753
+ src: src,
754
+ originalSrc: column.originalSrc
755
+ ? filter(column.originalSrc, row.data)
756
+ : src,
757
+ title: column.enlargeTitle
758
+ ? filter(column.enlargeTitle, row.data)
759
+ : column.title
760
+ ? filter(column.title, row.data)
761
+ : undefined,
762
+ caption: column.enlargeCaption
763
+ ? filter(column.enlargeCaption, row.data)
764
+ : column.caption
765
+ ? filter(column.caption, row.data)
766
+ : undefined
767
+ });
768
+ });
769
+ if (list.length > 1) {
770
+ onImageEnlarge &&
771
+ onImageEnlarge(__assign(__assign({}, info), { list: list, index: index }), target);
772
+ }
773
+ else {
774
+ onImageEnlarge && onImageEnlarge(info, target);
775
+ }
776
+ };
777
+ // 开始列宽度调整
778
+ Table.prototype.handleColResizeMouseDown = function (e) {
779
+ this.lineStartX = e.clientX;
780
+ var currentTarget = e.currentTarget;
781
+ this.resizeLine = currentTarget;
782
+ this.resizeLineLeft = parseInt(getComputedStyle(this.resizeLine).getPropertyValue('left'), 10);
783
+ this.targetTh = this.resizeLine.parentElement;
784
+ this.targetThWidth = this.targetTh.getBoundingClientRect().width;
785
+ document.addEventListener('mousemove', this.handleColResizeMouseMove);
786
+ document.addEventListener('mouseup', this.handleColResizeMouseUp);
787
+ };
788
+ // 垂直线拖拽移动
789
+ Table.prototype.handleColResizeMouseMove = function (e) {
790
+ var moveX = e.clientX - this.lineStartX;
791
+ // 光标right为-4px,列宽改变时会自动跟随,不需要单独处理位置
792
+ // this.resizeLine.style.left = this.resizeLineLeft + moveX + 'px';
793
+ this.targetTh.style.width = this.targetThWidth + moveX + 'px';
794
+ };
795
+ // 垂直线拖拽结束
796
+ Table.prototype.handleColResizeMouseUp = function (e) {
797
+ document.removeEventListener('mousemove', this.handleColResizeMouseMove);
798
+ document.removeEventListener('mouseup', this.handleColResizeMouseUp);
799
+ };
800
+ Table.prototype.handleColumnToggle = function (columns) {
801
+ var store = this.props.store;
802
+ store.updateColumns(columns);
803
+ };
804
+ Table.prototype.renderAutoFilterForm = function () {
805
+ var _a = this.props, render = _a.render, store = _a.store, onSearchableFromReset = _a.onSearchableFromReset, onSearchableFromSubmit = _a.onSearchableFromSubmit, onSearchableFromInit = _a.onSearchableFromInit, cx = _a.classnames, __ = _a.translate;
806
+ var searchableColumns = store.searchableColumns;
807
+ var activedSearchableColumns = store.activedSearchableColumns;
808
+ if (!searchableColumns.length) {
809
+ return null;
810
+ }
811
+ var groupedSearchableColumns = [
812
+ { body: [], md: 4 },
813
+ { body: [], md: 4 },
814
+ { body: [], md: 4 }
815
+ ];
816
+ activedSearchableColumns.forEach(function (column, index) {
817
+ var _a, _b, _c, _d;
818
+ groupedSearchableColumns[index % 3].body.push(__assign(__assign({}, (column.searchable === true
819
+ ? {
820
+ type: 'input-text',
821
+ name: column.name,
822
+ label: column.label
823
+ }
824
+ : __assign({ type: 'input-text', name: column.name }, 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' }));
825
+ });
826
+ return render('searchable-form', {
827
+ type: 'form',
828
+ api: null,
829
+ title: '',
830
+ mode: 'normal',
831
+ submitText: __('search'),
832
+ body: [
833
+ {
834
+ type: 'grid',
835
+ columns: groupedSearchableColumns
836
+ }
837
+ ],
838
+ actions: [
839
+ {
840
+ type: 'dropdown-button',
841
+ label: __('Table.searchFields'),
842
+ className: cx('Table-searchableForm-dropdown', 'mr-2'),
843
+ level: 'link',
844
+ trigger: 'click',
845
+ size: 'sm',
846
+ align: 'right',
847
+ buttons: searchableColumns.map(function (column) {
848
+ var _a, _b, _c, _d;
849
+ return {
850
+ type: 'checkbox',
851
+ className: cx('Table-searchableForm-checkbox'),
852
+ name: "__search_".concat((_b = (_a = column.searchable) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : column.name),
853
+ option: (_d = (_c = column.searchable) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : column.label,
854
+ value: column.enableSearch,
855
+ badge: {
856
+ offset: [-10, 5],
857
+ visibleOn: "".concat(column.toggable && !column.toggled && column.enableSearch)
858
+ },
859
+ onChange: function (value) {
860
+ column.setEnableSearch(value);
861
+ }
862
+ };
863
+ })
864
+ },
865
+ {
866
+ type: 'submit',
867
+ label: __('search'),
868
+ level: 'primary',
869
+ className: 'w-18'
870
+ },
871
+ {
872
+ type: 'reset',
873
+ label: __('reset'),
874
+ className: 'w-18'
875
+ }
876
+ ]
877
+ }, {
878
+ key: 'searchable-form',
879
+ panelClassName: cx('Table-searchableForm'),
880
+ actionsClassName: cx('Table-searchableForm-footer'),
881
+ onReset: onSearchableFromReset,
882
+ onSubmit: onSearchableFromSubmit,
883
+ onInit: onSearchableFromInit,
884
+ formStore: undefined
885
+ });
886
+ };
887
+ Table.prototype.renderHeading = function () {
888
+ 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;
889
+ if (title ||
890
+ (quickSaveApi &&
891
+ !saveImmediately &&
892
+ store.modified &&
893
+ !hideQuickSaveBtn) ||
894
+ store.moved) {
895
+ return (React.createElement("div", { className: cx('Table-heading', headingClassName), key: "heading" }, !saveImmediately && store.modified && !hideQuickSaveBtn ? (React.createElement("span", null,
896
+ __('Table.modified', {
897
+ modified: store.modified
898
+ }),
899
+ React.createElement("button", { type: "button", className: cx('Button Button--xs Button--success m-l-sm'), onClick: this.handleSave },
900
+ React.createElement(Icon, { icon: "check", className: "icon m-r-xs" }),
901
+ __('Form.submit')),
902
+ React.createElement("button", { type: "button", className: cx('Button Button--xs Button--danger m-l-sm'), onClick: this.reset },
903
+ React.createElement(Icon, { icon: "close", className: "icon m-r-xs" }),
904
+ __('Table.discard')))) : store.moved ? (React.createElement("span", null,
905
+ __('Table.moved', {
906
+ moved: store.moved
907
+ }),
908
+ React.createElement("button", { type: "button", className: cx('Button Button--xs Button--success m-l-sm'), onClick: this.handleSaveOrder },
909
+ React.createElement(Icon, { icon: "check", className: "icon m-r-xs" }),
910
+ __('Form.submit')),
911
+ React.createElement("button", { type: "button", className: cx('Button Button--xs Button--danger m-l-sm'), onClick: this.reset },
912
+ React.createElement(Icon, { icon: "close", className: "icon m-r-xs" }),
913
+ __('Table.discard')))) : title ? (filter(title, data)) : ('')));
914
+ }
915
+ return null;
916
+ };
917
+ Table.prototype.renderHeadCell = function (column, props) {
918
+ var _this = this;
919
+ 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, dispatchEvent = _a.dispatchEvent, data = _a.data;
920
+ if (column.type === '__checkme') {
921
+ return (React.createElement("th", __assign({}, props, { className: cx(column.pristine.className) }), store.rows.length && multiple ? (React.createElement(Checkbox, { classPrefix: ns, partial: store.someChecked && !store.allChecked, checked: store.someChecked, disabled: store.disabledHeadCheckbox, onChange: this.handleCheckAll })) : ('\u00A0')));
922
+ }
923
+ else if (column.type === '__dragme') {
924
+ return React.createElement("th", __assign({}, props, { className: cx(column.pristine.className) }));
925
+ }
926
+ else if (column.type === '__expandme') {
927
+ return (React.createElement("th", __assign({}, props, { className: cx(column.pristine.className) }), (store.footable &&
928
+ (store.footable.expandAll === false || store.footable.accordion)) ||
929
+ (store.expandConfig &&
930
+ (store.expandConfig.expandAll === false ||
931
+ store.expandConfig.accordion)) ? null : (React.createElement("a", { className: cx('Table-expandBtn', store.allExpanded ? 'is-active' : ''),
932
+ // data-tooltip="展开/收起全部"
933
+ // data-position="top"
934
+ onClick: store.toggleExpandAll },
935
+ React.createElement(Icon, { icon: "right-arrow-bold", className: "icon" })))));
936
+ }
937
+ var affix = null;
938
+ if (column.searchable && column.name && !autoGenerateFilter) {
939
+ affix = (React.createElement(HeadCellSearchDropDown, __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 })));
940
+ }
941
+ else if (column.sortable && column.name) {
942
+ affix = (React.createElement("span", { className: cx('TableCell-sortBtn'), onClick: function () { return __awaiter(_this, void 0, void 0, function () {
943
+ var orderBy, orderDir, order, rendererEvent;
944
+ return __generator(this, function (_a) {
945
+ switch (_a.label) {
946
+ case 0:
947
+ orderBy = '';
948
+ orderDir = '';
949
+ if (column.name === store.orderBy) {
950
+ if (store.orderDir !== 'desc') {
951
+ // 升序之后降序
952
+ orderBy = column.name;
953
+ orderDir = 'desc';
954
+ }
955
+ }
956
+ else {
957
+ orderBy = column.name;
958
+ }
959
+ order = orderDir ? 'desc' : 'asc';
960
+ return [4 /*yield*/, dispatchEvent('columnSort', createObject(data, {
961
+ orderBy: orderBy,
962
+ orderDir: order
963
+ }))];
964
+ case 1:
965
+ rendererEvent = _a.sent();
966
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
967
+ return [2 /*return*/];
968
+ }
969
+ store.setOrderByInfo(orderBy, order);
970
+ onQuery &&
971
+ onQuery({
972
+ orderBy: store.orderBy,
973
+ orderDir: store.orderDir
974
+ });
975
+ return [2 /*return*/];
976
+ }
977
+ });
978
+ }); } },
979
+ React.createElement("i", { className: cx('TableCell-sortBtn--down', store.orderBy === column.name && store.orderDir === 'desc'
980
+ ? 'is-active'
981
+ : '') },
982
+ React.createElement(Icon, { icon: "sort-desc", className: "icon" })),
983
+ React.createElement("i", { className: cx('TableCell-sortBtn--up', store.orderBy === column.name && store.orderDir === 'asc'
984
+ ? 'is-active'
985
+ : '') },
986
+ React.createElement(Icon, { icon: "sort-asc", className: "icon" })),
987
+ React.createElement("i", { className: cx('TableCell-sortBtn--default', store.orderBy === column.name ? '' : 'is-active') },
988
+ React.createElement(Icon, { icon: "sort-default", className: "icon" }))));
989
+ }
990
+ else if (column.filterable && column.name) {
991
+ affix = (React.createElement(HeadCellFilterDropDown, __assign({}, this.props, { onQuery: onQuery, name: column.name, type: column.type, data: query, filterable: column.filterable, popOverContainer: this.getPopOverContainer })));
992
+ }
993
+ if (column.pristine.width) {
994
+ props.style = props.style || {};
995
+ props.style.width = column.pristine.width;
996
+ }
997
+ if (column.pristine.align) {
998
+ props.style = props.style || {};
999
+ props.style.textAlign = column.pristine.align;
1000
+ }
1001
+ var resizeLine = (React.createElement("div", { className: cx('Table-content-colDragLine'), key: "resize-".concat(column.index), onMouseDown: this.handleColResizeMouseDown }));
1002
+ return (React.createElement("th", __assign({}, props, { className: cx(props ? props.className : '', {
1003
+ 'TableCell--sortable': column.sortable,
1004
+ 'TableCell--searchable': column.searchable,
1005
+ 'TableCell--filterable': column.filterable,
1006
+ 'Table-operationCell': column.type === 'operation'
1007
+ }) }),
1008
+ React.createElement("div", { className: cx("".concat(ns, "TableCell--title"), column.pristine.className, column.pristine.labelClassName) },
1009
+ column.label ? render('tpl', column.label) : null,
1010
+ column.remark
1011
+ ? render('remark', {
1012
+ type: 'remark',
1013
+ tooltip: column.remark,
1014
+ container: env && env.getModalContainer
1015
+ ? env.getModalContainer
1016
+ : undefined
1017
+ })
1018
+ : null),
1019
+ affix,
1020
+ resizable === false ? null : resizeLine));
1021
+ };
1022
+ Table.prototype.renderCell = function (region, column, item, props, ignoreDrag) {
1023
+ if (ignoreDrag === void 0) { ignoreDrag = false; }
1024
+ 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;
1025
+ if (column.name && item.rowSpans[column.name] === 0) {
1026
+ return null;
1027
+ }
1028
+ if (column.type === '__checkme') {
1029
+ return (React.createElement("td", { key: props.key, className: cx(column.pristine.className) },
1030
+ React.createElement(Checkbox, { classPrefix: ns, type: multiple ? 'checkbox' : 'radio', checked: item.checked, disabled: item.checkdisable, onChange: checkOnItemClick ? noop : this.handleCheck.bind(this, item) })));
1031
+ }
1032
+ else if (column.type === '__dragme') {
1033
+ return (React.createElement("td", { key: props.key, className: cx(column.pristine.className, {
1034
+ 'is-dragDisabled': !item.draggable
1035
+ }) }, item.draggable ? React.createElement(Icon, { icon: "drag", className: "icon" }) : null));
1036
+ }
1037
+ else if (column.type === '__expandme') {
1038
+ return (React.createElement("td", { key: props.key, className: cx(column.pristine.className) },
1039
+ item.depth > 2
1040
+ ? Array.from({ length: item.depth - 2 }).map(function (_, index) { return (React.createElement("i", { key: index, className: cx('Table-divider-' + (index + 1)) })); })
1041
+ : null,
1042
+ item.expandable ? (React.createElement("a", { className: cx('Table-expandBtn', item.expanded ? 'is-active' : ''),
1043
+ // data-tooltip="展开/收起"
1044
+ // data-position="top"
1045
+ onClick: item.toggleExpanded },
1046
+ React.createElement(Icon, { icon: "right-arrow-bold", className: "icon" }))) : null));
1047
+ }
1048
+ var prefix = null;
1049
+ if (!ignoreDrag &&
1050
+ column.isPrimary &&
1051
+ store.isNested &&
1052
+ store.draggable &&
1053
+ item.draggable) {
1054
+ prefix = (React.createElement("a", { draggable: true, onDragStart: this.handleDragStart, className: cx('Table-dragBtn') },
1055
+ React.createElement(Icon, { icon: "drag", className: "icon" })));
1056
+ }
1057
+ var subProps = __assign(__assign({}, props), { btnDisabled: store.dragging, data: item.locals, value: column.name
1058
+ ? resolveVariable(column.name, canAccessSuperData ? item.locals : item.data)
1059
+ : 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 &&
1060
+ itemBadge &&
1061
+ store.firstToggledColumnIndex === props.colIndex });
1062
+ delete subProps.label;
1063
+ return render(region, __assign(__assign({}, column.pristine), { column: column.pristine, type: 'cell' }), subProps);
1064
+ };
1065
+ Table.prototype.renderAffixHeader = function (tableClassName) {
1066
+ var _this = this;
1067
+ var _a = this.props, store = _a.store, affixHeader = _a.affixHeader, render = _a.render, cx = _a.classnames;
1068
+ var hideHeader = store.filteredColumns.every(function (column) { return !column.label; });
1069
+ var columnsGroup = store.columnGroup;
1070
+ return affixHeader ? (React.createElement("div", { className: cx('Table-fixedTop', {
1071
+ 'is-fakeHide': hideHeader
1072
+ }) },
1073
+ this.renderHeader(false),
1074
+ this.renderHeading(),
1075
+ React.createElement("div", { className: cx('Table-fixedLeft') }, store.leftFixedColumns.length
1076
+ ? this.renderFixedColumns(store.rows, store.leftFixedColumns, true, tableClassName)
1077
+ : null),
1078
+ React.createElement("div", { className: cx('Table-fixedRight') }, store.rightFixedColumns.length
1079
+ ? this.renderFixedColumns(store.rows, store.rightFixedColumns, true, tableClassName)
1080
+ : null),
1081
+ React.createElement("div", { className: cx('Table-wrapper') },
1082
+ React.createElement("table", { ref: this.affixedTableRef, className: tableClassName },
1083
+ React.createElement("colgroup", null, store.filteredColumns.map(function (column) { return (React.createElement("col", { key: column.index, "data-index": column.index })); })),
1084
+ React.createElement("thead", null,
1085
+ columnsGroup.length ? (React.createElement("tr", null, columnsGroup.map(function (item, index) { return (React.createElement("th", { key: index, "data-index": item.index, colSpan: item.colSpan, rowSpan: item.rowSpan }, item.label ? render('tpl', item.label) : null)); }))) : null,
1086
+ React.createElement("tr", null, store.filteredColumns.map(function (column) {
1087
+ var _a;
1088
+ return ((_a = columnsGroup.find(function (group) { return ~group.has.indexOf(column); })) === null || _a === void 0 ? void 0 : _a.rowSpan) === 2
1089
+ ? null
1090
+ : _this.renderHeadCell(column, {
1091
+ 'key': column.index,
1092
+ 'data-index': column.index
1093
+ });
1094
+ }))))))) : null;
1095
+ };
1096
+ Table.prototype.renderFixedColumns = function (rows, columns, headerOnly, tableClassName) {
1097
+ var _this = this;
1098
+ if (headerOnly === void 0) { headerOnly = false; }
1099
+ if (tableClassName === void 0) { tableClassName = ''; }
1100
+ var _a = this.props, placeholder = _a.placeholder, store = _a.store, cx = _a.classnames, render = _a.render, data = _a.data, translate = _a.translate, locale = _a.locale, checkOnItemClick = _a.checkOnItemClick, buildItemProps = _a.buildItemProps, rowClassNameExpr = _a.rowClassNameExpr, rowClassName = _a.rowClassName, itemAction = _a.itemAction, dispatchEvent = _a.dispatchEvent, onEvent = _a.onEvent;
1101
+ var hideHeader = store.filteredColumns.every(function (column) { return !column.label; });
1102
+ var columnsGroup = store.columnGroup;
1103
+ return (React.createElement("table", { className: cx('Table-table', store.combineNum > 0 ? 'Table-table--withCombine' : '', tableClassName) },
1104
+ React.createElement("thead", null,
1105
+ columnsGroup.length ? (React.createElement("tr", null, columnsGroup.map(function (item, index) {
1106
+ var renderColumns = columns.filter(function (a) { return ~item.has.indexOf(a); });
1107
+ return renderColumns.length ? (React.createElement("th", { key: index, "data-index": item.index, colSpan: renderColumns.length, rowSpan: item.rowSpan }, item.label)) : null;
1108
+ }))) : null,
1109
+ React.createElement("tr", { className: hideHeader ? 'fake-hide' : '' }, columns.map(function (column) {
1110
+ var _a;
1111
+ return ((_a = columnsGroup.find(function (group) { return ~group.has.indexOf(column); })) === null || _a === void 0 ? void 0 : _a.rowSpan) === 2
1112
+ ? null
1113
+ : _this.renderHeadCell(column, {
1114
+ 'key': column.index,
1115
+ 'data-index': column.index
1116
+ });
1117
+ }))),
1118
+ headerOnly ? null : !rows.length ? (React.createElement("tbody", null,
1119
+ React.createElement("tr", { className: cx('Table-placeholder') },
1120
+ React.createElement("td", { colSpan: columns.length }, render('placeholder', translate(placeholder || 'placeholder.noData')))))) : (React.createElement(TableBody, { tableClassName: cx(store.combineNum > 0 ? 'Table-table--withCombine' : '', tableClassName), itemAction: itemAction, classnames: cx, render: render, renderCell: this.renderCell, onCheck: this.handleCheck, onQuickChange: store.dragging ? undefined : this.handleQuickChange, footable: store.footable, ignoreFootableContent: true, footableColumns: store.footableColumns, checkOnItemClick: checkOnItemClick, buildItemProps: buildItemProps, onAction: this.handleAction, rowClassNameExpr: rowClassNameExpr, rowClassName: rowClassName, columns: columns, rows: rows, locale: locale, translate: translate, rowsProps: {
1121
+ regionPrefix: 'fixed/',
1122
+ renderCell: function (region, column, item, props) { return _this.renderCell(region, column, item, props, true); },
1123
+ data: data,
1124
+ dispatchEvent: dispatchEvent,
1125
+ onEvent: onEvent
1126
+ } }))));
1127
+ };
1128
+ Table.prototype.renderToolbar = function (toolbar) {
1129
+ var type = toolbar.type || toolbar;
1130
+ if (type === 'columns-toggler') {
1131
+ this.renderedToolbars.push(type);
1132
+ return this.renderColumnsToggler(toolbar);
1133
+ }
1134
+ else if (type === 'drag-toggler') {
1135
+ this.renderedToolbars.push(type);
1136
+ return this.renderDragToggler();
1137
+ }
1138
+ else if (type === 'export-excel') {
1139
+ this.renderedToolbars.push(type);
1140
+ return this.renderExportExcel(toolbar);
1141
+ }
1142
+ return void 0;
1143
+ };
1144
+ Table.prototype.renderColumnsToggler = function (config) {
1145
+ var _this = this;
1146
+ var _a;
1147
+ var _b = this.props; _b.className; var store = _b.store, ns = _b.classPrefix, cx = _b.classnames, rest = __rest(_b, ["className", "store", "classPrefix", "classnames"]);
1148
+ var __ = rest.translate;
1149
+ var env = rest.env;
1150
+ var render = this.props.render;
1151
+ if (!store.columnsTogglable) {
1152
+ return null;
1153
+ }
1154
+ return (React.createElement(ColumnToggler, __assign({}, rest, (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', icon: config === null || config === void 0 ? void 0 : config.icon, label: config === null || config === void 0 ? void 0 : config.label, draggable: config === null || config === void 0 ? void 0 : config.draggable, columns: store.columnsData, activeToggaleColumns: store.activeToggaleColumns, onColumnToggle: this.handleColumnToggle }),
1155
+ store.toggableColumns.length ? (React.createElement("li", { className: cx('ColumnToggler-menuItem'), key: 'selectAll', onClick: function () { return __awaiter(_this, void 0, void 0, function () {
1156
+ var _a, data, dispatchEvent, allToggled, rendererEvent;
1157
+ return __generator(this, function (_b) {
1158
+ switch (_b.label) {
1159
+ case 0:
1160
+ _a = this.props, data = _a.data, dispatchEvent = _a.dispatchEvent;
1161
+ allToggled = !(store.activeToggaleColumns.length ===
1162
+ store.toggableColumns.length);
1163
+ return [4 /*yield*/, dispatchEvent('columnToggled', createObject(data, {
1164
+ columns: allToggled
1165
+ ? store.toggableColumns.map(function (column) { return column.pristine; })
1166
+ : []
1167
+ }))];
1168
+ case 1:
1169
+ rendererEvent = _b.sent();
1170
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
1171
+ return [2 /*return*/];
1172
+ }
1173
+ store.toggleAllColumns();
1174
+ return [2 /*return*/];
1175
+ }
1176
+ });
1177
+ }); } },
1178
+ React.createElement(Checkbox, { size: "sm", classPrefix: ns, key: "checkall", checked: !!store.activeToggaleColumns.length, partial: !!(store.activeToggaleColumns.length &&
1179
+ store.activeToggaleColumns.length !==
1180
+ store.toggableColumns.length) }, __('Checkboxes.selectAll')))) : null,
1181
+ store.toggableColumns.map(function (column) { return (React.createElement("li", { className: cx('ColumnToggler-menuItem'), key: column.index, onClick: function () { return __awaiter(_this, void 0, void 0, function () {
1182
+ var _a, data, dispatchEvent, columns, rendererEvent;
1183
+ return __generator(this, function (_b) {
1184
+ switch (_b.label) {
1185
+ case 0:
1186
+ _a = this.props, data = _a.data, dispatchEvent = _a.dispatchEvent;
1187
+ columns = store.activeToggaleColumns.map(function (item) { return item.pristine; });
1188
+ if (!column.toggled) {
1189
+ columns.push(column.pristine);
1190
+ }
1191
+ else {
1192
+ columns = columns.filter(function (c) { return c.name !== column.pristine.name; });
1193
+ }
1194
+ return [4 /*yield*/, dispatchEvent('columnToggled', createObject(data, {
1195
+ columns: columns
1196
+ }))];
1197
+ case 1:
1198
+ rendererEvent = _b.sent();
1199
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
1200
+ return [2 /*return*/];
1201
+ }
1202
+ column.toggleToggle();
1203
+ return [2 /*return*/];
1204
+ }
1205
+ });
1206
+ }); } },
1207
+ React.createElement(Checkbox, { size: "sm", classPrefix: ns, checked: column.toggled }, column.label ? render('tpl', column.label) : null))); })));
1208
+ };
1209
+ Table.prototype.renderDragToggler = function () {
1210
+ var _a = this.props, store = _a.store, env = _a.env, draggable = _a.draggable, ns = _a.classPrefix, __ = _a.translate;
1211
+ if (!draggable || store.isNested) {
1212
+ return null;
1213
+ }
1214
+ return (React.createElement(Button, { disabled: !!store.modified, classPrefix: ns, key: "dragging-toggle", tooltip: __('Table.startSort'), tooltipContainer: env && env.getModalContainer ? env.getModalContainer : undefined, size: "sm", active: store.dragging, onClick: function (e) {
1215
+ e.preventDefault();
1216
+ store.toggleDragging();
1217
+ store.dragging && store.clear();
1218
+ }, iconOnly: true },
1219
+ React.createElement(Icon, { icon: "exchange", className: "icon" })));
1220
+ };
1221
+ Table.prototype.renderExportExcel = function (toolbar) {
1222
+ var _this = this;
1223
+ var _a = this.props, store = _a.store; _a.env; _a.classPrefix; _a.classnames; var __ = _a.translate; _a.data; var render = _a.render;
1224
+ var columns = store.filteredColumns || [];
1225
+ if (!columns) {
1226
+ return null;
1227
+ }
1228
+ return render('exportExcel', __assign(__assign({ label: __('CRUD.exportExcel') }, toolbar), { type: 'button' }), {
1229
+ onAction: function () {
1230
+ import('exceljs').then(function (ExcelJS) { return __awaiter(_this, void 0, void 0, function () {
1231
+ return __generator(this, function (_a) {
1232
+ exportExcel(ExcelJS, this.props, toolbar);
1233
+ return [2 /*return*/];
1234
+ });
1235
+ }); });
1236
+ }
1237
+ });
1238
+ };
1239
+ Table.prototype.renderActions = function (region) {
1240
+ var _this = this;
1241
+ var _a = this.props, actions = _a.actions, render = _a.render, store = _a.store, cx = _a.classnames, data = _a.data;
1242
+ actions = Array.isArray(actions) ? actions.concat() : [];
1243
+ if (store.toggable &&
1244
+ region === 'header' &&
1245
+ !~this.renderedToolbars.indexOf('columns-toggler')) {
1246
+ actions.push({
1247
+ type: 'button',
1248
+ children: this.renderColumnsToggler()
1249
+ });
1250
+ }
1251
+ if (store.draggable &&
1252
+ !store.isNested &&
1253
+ region === 'header' &&
1254
+ store.rows.length > 1 &&
1255
+ !~this.renderedToolbars.indexOf('drag-toggler')) {
1256
+ actions.push({
1257
+ type: 'button',
1258
+ children: this.renderDragToggler()
1259
+ });
1260
+ }
1261
+ return Array.isArray(actions) && actions.length ? (React.createElement("div", { className: cx('Table-actions') }, actions.map(function (action, key) {
1262
+ return render("action/".concat(key), __assign({ type: 'button' }, action), {
1263
+ onAction: _this.handleAction,
1264
+ key: key,
1265
+ btnDisabled: store.dragging,
1266
+ data: store.getData(data)
1267
+ });
1268
+ }))) : null;
1269
+ };
1270
+ Table.prototype.renderHeader = function (editable) {
1271
+ var _a = this.props, header = _a.header, headerClassName = _a.headerClassName, toolbarClassName = _a.toolbarClassName, headerToolbarClassName = _a.headerToolbarClassName, headerToolbarRender = _a.headerToolbarRender, render = _a.render, showHeader = _a.showHeader, store = _a.store, cx = _a.classnames, data = _a.data, __ = _a.translate;
1272
+ if (showHeader === false) {
1273
+ return null;
1274
+ }
1275
+ var otherProps = {};
1276
+ // editable === false && (otherProps.$$editable = false);
1277
+ var child = headerToolbarRender
1278
+ ? headerToolbarRender(__assign(__assign(__assign({}, this.props), { selectedItems: store.selectedRows.map(function (item) { return item.data; }), items: store.rows.map(function (item) { return item.data; }), unSelectedItems: store.unSelectedRows.map(function (item) { return item.data; }) }), otherProps), this.renderToolbar)
1279
+ : null;
1280
+ var actions = this.renderActions('header');
1281
+ var toolbarNode = actions || child || store.dragging ? (React.createElement("div", { className: cx('Table-toolbar Table-headToolbar', toolbarClassName, headerToolbarClassName), key: "header-toolbar" },
1282
+ actions,
1283
+ child,
1284
+ store.dragging ? (React.createElement("div", { className: cx('Table-dragTip'), ref: this.dragTipRef }, __('Table.dragTip'))) : null)) : null;
1285
+ var headerNode = header && (!Array.isArray(header) || header.length) ? (React.createElement("div", { className: cx('Table-header', headerClassName), key: "header" }, render('header', header, __assign(__assign({}, (editable === false ? otherProps : null)), { data: store.getData(data) })))) : null;
1286
+ return headerNode && toolbarNode
1287
+ ? [headerNode, toolbarNode]
1288
+ : headerNode || toolbarNode || null;
1289
+ };
1290
+ Table.prototype.renderFooter = function () {
1291
+ var _a = this.props, footer = _a.footer, toolbarClassName = _a.toolbarClassName, footerToolbarClassName = _a.footerToolbarClassName, footerClassName = _a.footerClassName, footerToolbarRender = _a.footerToolbarRender, render = _a.render, showFooter = _a.showFooter, store = _a.store, data = _a.data, cx = _a.classnames;
1292
+ if (showFooter === false) {
1293
+ return null;
1294
+ }
1295
+ var child = footerToolbarRender
1296
+ ? footerToolbarRender(__assign(__assign({}, this.props), { selectedItems: store.selectedRows.map(function (item) { return item.data; }), items: store.rows.map(function (item) { return item.data; }) }), this.renderToolbar)
1297
+ : null;
1298
+ var actions = this.renderActions('footer');
1299
+ var toolbarNode = actions || child ? (React.createElement("div", { className: cx('Table-toolbar Table-footToolbar', toolbarClassName, footerToolbarClassName), key: "footer-toolbar" },
1300
+ actions,
1301
+ child)) : null;
1302
+ var footerNode = footer && (!Array.isArray(footer) || footer.length) ? (React.createElement("div", { className: cx('Table-footer', footerClassName), key: "footer" }, render('footer', footer, {
1303
+ data: store.getData(data)
1304
+ }))) : null;
1305
+ return footerNode && toolbarNode
1306
+ ? [toolbarNode, footerNode]
1307
+ : footerNode || toolbarNode || null;
1308
+ };
1309
+ Table.prototype.renderTableContent = function () {
1310
+ 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; _a.affixRowClassNameExpr; var affixRowClassName = _a.affixRowClassName; _a.prefixRowClassNameExpr; var prefixRowClassName = _a.prefixRowClassName; _a.autoFillHeight; var itemActions = _a.itemActions, dispatchEvent = _a.dispatchEvent, onEvent = _a.onEvent, _b = _a.loading, loading = _b === void 0 ? false : _b;
1311
+ // 理论上来说 store.rows 应该也行啊
1312
+ // 不过目前看来只有这样写它才会重新更新视图
1313
+ store.rows.length;
1314
+ return (React.createElement(React.Fragment, null,
1315
+ React.createElement(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, prefixRowClassName: prefixRowClassName, affixRowClassName: affixRowClassName, locale: locale, translate: translate, dispatchEvent: dispatchEvent, onEvent: onEvent, loading: loading }),
1316
+ React.createElement(Spinner, { overlay: true, show: loading })));
1317
+ };
1318
+ Table.prototype.doAction = function (action, args, throwErrors) {
1319
+ var _a = this.props, store = _a.store, valueField = _a.valueField, data = _a.data;
1320
+ var actionType = action === null || action === void 0 ? void 0 : action.actionType;
1321
+ switch (actionType) {
1322
+ case 'selectAll':
1323
+ store.clear();
1324
+ store.toggleAll();
1325
+ break;
1326
+ case 'clearAll':
1327
+ store.clear();
1328
+ break;
1329
+ case 'select':
1330
+ var dataSource = store.getData(data);
1331
+ var selected_1 = [];
1332
+ dataSource.items.forEach(function (item, rowIndex) {
1333
+ var flag = evalExpression(args === null || args === void 0 ? void 0 : args.selected, { record: item, rowIndex: rowIndex });
1334
+ if (flag) {
1335
+ selected_1.push(item);
1336
+ }
1337
+ });
1338
+ store.updateSelected(selected_1, valueField);
1339
+ break;
1340
+ case 'initDrag':
1341
+ store.stopDragging();
1342
+ store.toggleDragging();
1343
+ break;
1344
+ default:
1345
+ this.handleAction(undefined, action, data);
1346
+ break;
1347
+ }
1348
+ };
1349
+ Table.prototype.render = function () {
1350
+ var _a = this.props, className = _a.className, store = _a.store, cx = _a.classnames, affixColumns = _a.affixColumns, autoFillHeight = _a.autoFillHeight, autoGenerateFilter = _a.autoGenerateFilter;
1351
+ this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了,已经渲染了就不重复渲染了。
1352
+ var heading = this.renderHeading();
1353
+ var header = this.renderHeader();
1354
+ var footer = this.renderFooter();
1355
+ var tableClassName = cx('Table-table', store.combineNum > 0 ? 'Table-table--withCombine' : '', this.props.tableClassName);
1356
+ return (React.createElement("div", { className: cx('Table', className, {
1357
+ 'Table--unsaved': !!store.modified || !!store.moved,
1358
+ 'Table--autoFillHeight': autoFillHeight
1359
+ }) },
1360
+ autoGenerateFilter ? this.renderAutoFilterForm() : null,
1361
+ header,
1362
+ heading,
1363
+ React.createElement("div", { className: cx('Table-contentWrap'), onMouseLeave: this.handleMouseLeave },
1364
+ React.createElement("div", { className: cx('Table-fixedLeft'), onMouseMove: this.handleMouseMove }, affixColumns !== false && store.leftFixedColumns.length
1365
+ ? this.renderFixedColumns(store.rows, store.leftFixedColumns, false, tableClassName)
1366
+ : null),
1367
+ React.createElement("div", { className: cx('Table-fixedRight'), onMouseMove: this.handleMouseMove }, affixColumns !== false && store.rightFixedColumns.length
1368
+ ? this.renderFixedColumns(store.rows, store.rightFixedColumns, false, tableClassName)
1369
+ : null),
1370
+ this.renderTableContent()),
1371
+ this.renderAffixHeader(tableClassName),
1372
+ footer));
1373
+ };
1374
+ Table.contextType = ScopedContext;
1375
+ Table.propsList = [
1376
+ 'header',
1377
+ 'headerToolbarRender',
1378
+ 'footer',
1379
+ 'footerToolbarRender',
1380
+ 'footable',
1381
+ 'expandConfig',
1382
+ 'placeholder',
1383
+ 'tableClassName',
1384
+ 'headingClassName',
1385
+ 'source',
1386
+ 'selectable',
1387
+ 'columnsTogglable',
1388
+ 'affixHeader',
1389
+ 'affixColumns',
1390
+ 'headerClassName',
1391
+ 'footerClassName',
1392
+ 'selected',
1393
+ 'multiple',
1394
+ 'primaryField',
1395
+ 'hideQuickSaveBtn',
1396
+ 'itemCheckableOn',
1397
+ 'itemDraggableOn',
1398
+ 'checkOnItemClick',
1399
+ 'hideCheckToggler',
1400
+ 'itemAction',
1401
+ 'itemActions',
1402
+ 'combineNum',
1403
+ 'combineFromIndex',
1404
+ 'items',
1405
+ 'columns',
1406
+ 'valueField',
1407
+ 'saveImmediately',
1408
+ 'rowClassName',
1409
+ 'rowClassNameExpr',
1410
+ 'affixRowClassNameExpr',
1411
+ 'prefixRowClassNameExpr',
1412
+ 'popOverContainer',
1413
+ 'headerToolbarClassName',
1414
+ 'toolbarClassName',
1415
+ 'footerToolbarClassName',
1416
+ 'itemBadge',
1417
+ 'autoFillHeight',
1418
+ 'onSelect',
1419
+ 'keepItemSelectionOnPageChange',
1420
+ 'maxKeepItemSelectionLength'
1421
+ ];
1422
+ Table.defaultProps = {
1423
+ className: '',
1424
+ placeholder: 'placeholder.noData',
1425
+ tableClassName: '',
1426
+ source: '$items',
1427
+ selectable: false,
1428
+ columnsTogglable: 'auto',
1429
+ affixHeader: true,
1430
+ headerClassName: '',
1431
+ footerClassName: '',
1432
+ toolbarClassName: '',
1433
+ headerToolbarClassName: '',
1434
+ footerToolbarClassName: '',
1435
+ primaryField: 'id',
1436
+ itemCheckableOn: '',
1437
+ itemDraggableOn: '',
1438
+ hideCheckToggler: false,
1439
+ canAccessSuperData: false,
1440
+ resizable: true
1441
+ };
1442
+ __decorate([
1443
+ autobind,
1444
+ __metadata("design:type", Function),
1445
+ __metadata("design:paramtypes", [Object]),
1446
+ __metadata("design:returntype", void 0)
1447
+ ], Table.prototype, "handleDragStart", null);
1448
+ __decorate([
1449
+ autobind,
1450
+ __metadata("design:type", Function),
1451
+ __metadata("design:paramtypes", [Object]),
1452
+ __metadata("design:returntype", void 0)
1453
+ ], Table.prototype, "handleDragOver", null);
1454
+ __decorate([
1455
+ autobind,
1456
+ __metadata("design:type", Function),
1457
+ __metadata("design:paramtypes", []),
1458
+ __metadata("design:returntype", Promise)
1459
+ ], Table.prototype, "handleDrop", null);
1460
+ __decorate([
1461
+ autobind,
1462
+ __metadata("design:type", Function),
1463
+ __metadata("design:paramtypes", []),
1464
+ __metadata("design:returntype", void 0)
1465
+ ], Table.prototype, "handleDragEnd", null);
1466
+ __decorate([
1467
+ autobind,
1468
+ __metadata("design:type", Function),
1469
+ __metadata("design:paramtypes", [Object, Object]),
1470
+ __metadata("design:returntype", void 0)
1471
+ ], Table.prototype, "handleImageEnlarge", null);
1472
+ __decorate([
1473
+ autobind,
1474
+ __metadata("design:type", Function),
1475
+ __metadata("design:paramtypes", [Object]),
1476
+ __metadata("design:returntype", void 0)
1477
+ ], Table.prototype, "handleColResizeMouseDown", null);
1478
+ __decorate([
1479
+ autobind,
1480
+ __metadata("design:type", Function),
1481
+ __metadata("design:paramtypes", [MouseEvent]),
1482
+ __metadata("design:returntype", void 0)
1483
+ ], Table.prototype, "handleColResizeMouseMove", null);
1484
+ __decorate([
1485
+ autobind,
1486
+ __metadata("design:type", Function),
1487
+ __metadata("design:paramtypes", [MouseEvent]),
1488
+ __metadata("design:returntype", void 0)
1489
+ ], Table.prototype, "handleColResizeMouseUp", null);
1490
+ return Table;
1491
+ }(React.Component));
1492
+ /** @class */ ((function (_super) {
1493
+ __extends(TableRenderer, _super);
1494
+ function TableRenderer() {
1495
+ return _super !== null && _super.apply(this, arguments) || this;
1496
+ }
1497
+ TableRenderer.prototype.receive = function (values, subPath) {
1498
+ var _this = this;
1499
+ var _a, _b;
1500
+ var scoped = this.context;
1501
+ var parents = (_a = scoped === null || scoped === void 0 ? void 0 : scoped.parent) === null || _a === void 0 ? void 0 : _a.getComponents();
1502
+ /**
1503
+ * 因为Table在scope上注册,导致getComponentByName查询组件时会优先找到Table,和CRUD联动的动作都会失效
1504
+ * 这里先做兼容处理,把动作交给上层的CRUD处理
1505
+ */
1506
+ if (Array.isArray(parents) && parents.length) {
1507
+ // CRUD的name会透传给Table,这样可以保证找到CRUD
1508
+ var crud = parents.find(function (cmpt) { var _a, _b; return ((_a = cmpt === null || cmpt === void 0 ? void 0 : cmpt.props) === null || _a === void 0 ? void 0 : _a.name) === ((_b = _this.props) === null || _b === void 0 ? void 0 : _b.name); });
1509
+ return (_b = crud === null || crud === void 0 ? void 0 : crud.receive) === null || _b === void 0 ? void 0 : _b.call(crud, values, subPath);
1510
+ }
1511
+ if (subPath) {
1512
+ return scoped.send(subPath, values);
1513
+ }
1514
+ };
1515
+ TableRenderer.prototype.reload = function (subPath, query, ctx) {
1516
+ var _this = this;
1517
+ var _a, _b;
1518
+ var scoped = this.context;
1519
+ var parents = (_a = scoped === null || scoped === void 0 ? void 0 : scoped.parent) === null || _a === void 0 ? void 0 : _a.getComponents();
1520
+ if (Array.isArray(parents) && parents.length) {
1521
+ // CRUD的name会透传给Table,这样可以保证找到CRUD
1522
+ var crud = parents.find(function (cmpt) { var _a, _b; return ((_a = cmpt === null || cmpt === void 0 ? void 0 : cmpt.props) === null || _a === void 0 ? void 0 : _a.name) === ((_b = _this.props) === null || _b === void 0 ? void 0 : _b.name); });
1523
+ return (_b = crud === null || crud === void 0 ? void 0 : crud.reload) === null || _b === void 0 ? void 0 : _b.call(crud, subPath, query, ctx);
1524
+ }
1525
+ if (subPath) {
1526
+ return scoped.reload(subPath, ctx);
1527
+ }
1528
+ };
1529
+ TableRenderer = __decorate([
1530
+ Renderer({
1531
+ type: 'table',
1532
+ storeType: TableStore.name,
1533
+ name: 'table'
1534
+ })
1535
+ ], TableRenderer);
1536
+ return TableRenderer;
1537
+ })(Table));
1538
+
1539
+ export { Table as default };