amis 2.0.0-rc.10 → 2.0.0-rc.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (535) 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 +121 -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 +1245 -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 +556 -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 +83 -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 +927 -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 +896 -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 +73 -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 +1533 -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 +832 -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 +926 -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.js +1 -1
  321. package/lib/renderers/Audio.js +1 -1
  322. package/lib/renderers/Avatar.js +1 -1
  323. package/lib/renderers/BarCode.js +1 -1
  324. package/lib/renderers/Breadcrumb.js +1 -1
  325. package/lib/renderers/ButtonGroup.d.ts +2 -2
  326. package/lib/renderers/ButtonGroup.js +1 -1
  327. package/lib/renderers/CRUD.d.ts +1 -1
  328. package/lib/renderers/CRUD.js +5 -5
  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 +50 -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.d.ts +40 -40
  348. package/lib/renderers/Dialog.js +1 -1
  349. package/lib/renderers/Divider.js +1 -1
  350. package/lib/renderers/Drawer.js +1 -1
  351. package/lib/renderers/DropDownButton.js +3 -3
  352. package/lib/renderers/Each.js +1 -1
  353. package/lib/renderers/Flex.js +1 -1
  354. package/lib/renderers/Form/ButtonGroupSelect.js +2 -2
  355. package/lib/renderers/Form/ButtonToolbar.js +1 -1
  356. package/lib/renderers/Form/ChainedSelect.js +2 -2
  357. package/lib/renderers/Form/ChartRadios.js +1 -1
  358. package/lib/renderers/Form/Checkbox.js +1 -1
  359. package/lib/renderers/Form/Checkboxes.d.ts +5 -0
  360. package/lib/renderers/Form/Checkboxes.js +8 -3
  361. package/lib/renderers/Form/Combo.js +3 -2
  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 +718 -154
  366. package/lib/renderers/Form/DiffEditor.js +1 -1
  367. package/lib/renderers/Form/Editor.d.ts +703 -139
  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.d.ts +40 -40
  379. package/lib/renderers/Form/InputColor.js +1 -1
  380. package/lib/renderers/Form/InputDate.js +1 -1
  381. package/lib/renderers/Form/InputDateRange.js +1 -1
  382. package/lib/renderers/Form/InputExcel.js +1 -1
  383. package/lib/renderers/Form/InputFile.d.ts +5 -0
  384. package/lib/renderers/Form/InputFile.js +15 -6
  385. package/lib/renderers/Form/InputFormula.js +1 -1
  386. package/lib/renderers/Form/InputGroup.d.ts +1 -1
  387. package/lib/renderers/Form/InputGroup.js +1 -1
  388. package/lib/renderers/Form/InputImage.js +5 -1
  389. package/lib/renderers/Form/InputMonthRange.js +1 -1
  390. package/lib/renderers/Form/InputNumber.js +1 -1
  391. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  392. package/lib/renderers/Form/InputRange.d.ts +12 -5
  393. package/lib/renderers/Form/InputRange.js +1 -1
  394. package/lib/renderers/Form/InputRating.js +1 -1
  395. package/lib/renderers/Form/InputRepeat.js +1 -1
  396. package/lib/renderers/Form/InputRichText.js +1 -1
  397. package/lib/renderers/Form/InputSubForm.js +1 -1
  398. package/lib/renderers/Form/InputTable.js +2 -2
  399. package/lib/renderers/Form/InputTag.d.ts +34 -0
  400. package/lib/renderers/Form/InputTag.js +78 -40
  401. package/lib/renderers/Form/InputText.js +1 -1
  402. package/lib/renderers/Form/InputTree.d.ts +5 -2
  403. package/lib/renderers/Form/InputTree.js +7 -3
  404. package/lib/renderers/Form/InputYearRange.js +1 -1
  405. package/lib/renderers/Form/JSONSchema.js +1 -1
  406. package/lib/renderers/Form/JSONSchemaEditor.js +1 -1
  407. package/lib/renderers/Form/ListSelect.js +1 -1
  408. package/lib/renderers/Form/LocationPicker.js +1 -1
  409. package/lib/renderers/Form/MatrixCheckboxes.js +1 -1
  410. package/lib/renderers/Form/NestedSelect.js +4 -4
  411. package/lib/renderers/Form/Picker.js +1 -1
  412. package/lib/renderers/Form/Radios.d.ts +6 -1
  413. package/lib/renderers/Form/Radios.js +5 -3
  414. package/lib/renderers/Form/Select.js +1 -1
  415. package/lib/renderers/Form/Static.js +1 -1
  416. package/lib/renderers/Form/Switch.d.ts +3 -0
  417. package/lib/renderers/Form/Switch.js +3 -3
  418. package/lib/renderers/Form/TabsTransfer.js +1 -1
  419. package/lib/renderers/Form/TabsTransferPicker.js +1 -1
  420. package/lib/renderers/Form/Textarea.d.ts +2 -1
  421. package/lib/renderers/Form/Textarea.js +13 -2
  422. package/lib/renderers/Form/Transfer.js +1 -1
  423. package/lib/renderers/Form/TransferPicker.js +1 -1
  424. package/lib/renderers/Form/TreeSelect.js +4 -4
  425. package/lib/renderers/Form/UUID.js +1 -1
  426. package/lib/renderers/Form/UserSelect.js +3 -3
  427. package/lib/renderers/Grid.js +1 -1
  428. package/lib/renderers/Grid2D.js +1 -1
  429. package/lib/renderers/GridNav.js +1 -1
  430. package/lib/renderers/HBox.js +1 -1
  431. package/lib/renderers/IFrame.js +1 -1
  432. package/lib/renderers/Icon.d.ts +1 -1
  433. package/lib/renderers/Icon.js +11 -6
  434. package/lib/renderers/Image.js +1 -1
  435. package/lib/renderers/Images.js +1 -1
  436. package/lib/renderers/Json.d.ts +4 -0
  437. package/lib/renderers/Json.js +5 -4
  438. package/lib/renderers/Link.js +1 -1
  439. package/lib/renderers/List.d.ts +1 -0
  440. package/lib/renderers/List.js +30 -25
  441. package/lib/renderers/Log.js +1 -1
  442. package/lib/renderers/Mapping.js +1 -1
  443. package/lib/renderers/Markdown.js +1 -1
  444. package/lib/renderers/Nav.d.ts +10 -10
  445. package/lib/renderers/Nav.js +1 -1
  446. package/lib/renderers/Operation.js +1 -1
  447. package/lib/renderers/Page.js +1 -1
  448. package/lib/renderers/Pagination.js +1 -1
  449. package/lib/renderers/PaginationWrapper.js +1 -1
  450. package/lib/renderers/Panel.js +1 -1
  451. package/lib/renderers/Plain.js +1 -1
  452. package/lib/renderers/PopOver.js +4 -4
  453. package/lib/renderers/Portlet.js +1 -1
  454. package/lib/renderers/Progress.js +1 -1
  455. package/lib/renderers/Property.js +1 -1
  456. package/lib/renderers/QRCode.js +1 -1
  457. package/lib/renderers/QuickEdit.js +4 -3
  458. package/lib/renderers/Remark.d.ts +1 -1
  459. package/lib/renderers/Remark.js +1 -1
  460. package/lib/renderers/SearchBox.js +1 -1
  461. package/lib/renderers/Service.js +1 -1
  462. package/lib/renderers/SparkLine.js +1 -1
  463. package/lib/renderers/Spinner.js +1 -1
  464. package/lib/renderers/Status.js +1 -1
  465. package/lib/renderers/Steps.js +3 -2
  466. package/lib/renderers/Table/ColumnToggler.d.ts +4 -3
  467. package/lib/renderers/Table/ColumnToggler.js +4 -4
  468. package/lib/renderers/Table/HeadCellFilterDropdown.js +3 -3
  469. package/lib/renderers/Table/HeadCellSearchDropdown.js +4 -4
  470. package/lib/renderers/Table/ItemActionsWrapper.js +1 -1
  471. package/lib/renderers/Table/TableBody.js +1 -1
  472. package/lib/renderers/Table/TableCell.js +1 -1
  473. package/lib/renderers/Table/TableContent.js +1 -1
  474. package/lib/renderers/Table/TableRow.js +1 -1
  475. package/lib/renderers/Table/exportExcel.js +6 -6
  476. package/lib/renderers/Table/index.d.ts +1 -0
  477. package/lib/renderers/Table/index.js +15 -1
  478. package/lib/renderers/Table-v2/ColumnToggler.d.ts +18 -2
  479. package/lib/renderers/Table-v2/ColumnToggler.js +72 -2
  480. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +1 -1
  481. package/lib/renderers/Table-v2/TableCell.js +1 -1
  482. package/lib/renderers/Table-v2/index.d.ts +12 -10
  483. package/lib/renderers/Table-v2/index.js +122 -98
  484. package/lib/renderers/TableView.js +1 -1
  485. package/lib/renderers/Tabs.js +1 -1
  486. package/lib/renderers/Tag.js +1 -1
  487. package/lib/renderers/Tasks.js +1 -1
  488. package/lib/renderers/Timeline.js +1 -1
  489. package/lib/renderers/TooltipWrapper.js +1 -1
  490. package/lib/renderers/Tpl.js +1 -1
  491. package/lib/renderers/VBox.js +1 -1
  492. package/lib/renderers/Video.js +1 -1
  493. package/lib/renderers/WebComponent.js +1 -1
  494. package/lib/renderers/Wizard.js +1 -1
  495. package/lib/renderers/Wrapper.js +1 -1
  496. package/lib/schemaExtend.js +1 -1
  497. package/lib/themes/ang-ie11.css +257 -230
  498. package/lib/themes/ang.css +272 -237
  499. package/lib/themes/antd-ie11.css +257 -230
  500. package/lib/themes/antd.css +272 -237
  501. package/lib/themes/cxd-ie11.css +281 -270
  502. package/lib/themes/cxd.css +287 -266
  503. package/lib/themes/dark-ie11.css +257 -230
  504. package/lib/themes/dark.css +272 -237
  505. package/lib/themes/default-ie11.css +281 -270
  506. package/lib/themes/default.css +287 -266
  507. package/lib/types.d.ts +1 -1
  508. package/package.json +13 -2
  509. package/schema.json +2494 -836
  510. package/sdk/ang-ie11.css +276 -42
  511. package/sdk/ang.css +291 -49
  512. package/sdk/antd-ie11.css +276 -42
  513. package/sdk/antd.css +291 -49
  514. package/sdk/barcode.js +50 -50
  515. package/sdk/charts.js +14 -14
  516. package/sdk/codemirror.js +7 -7
  517. package/sdk/color-picker.js +65 -65
  518. package/sdk/cropperjs.js +2 -2
  519. package/sdk/cxd-ie11.css +300 -87
  520. package/sdk/cxd.css +306 -83
  521. package/sdk/dark-ie11.css +276 -42
  522. package/sdk/dark.css +291 -49
  523. package/sdk/exceljs.js +1 -1
  524. package/sdk/helper.css +0 -1
  525. package/sdk/locale/de-DE.js +2 -1
  526. package/sdk/markdown.js +68 -68
  527. package/sdk/papaparse.js +1 -1
  528. package/sdk/rest.js +24 -24
  529. package/sdk/rich-text.js +62 -62
  530. package/sdk/sdk-ie11.css +300 -87
  531. package/sdk/sdk.css +306 -83
  532. package/sdk/sdk.js +1784 -1674
  533. package/sdk/thirds/hls.js/hls.js +1 -1
  534. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  535. package/sdk/tinymce.js +57 -57
@@ -0,0 +1,1533 @@
1
+ /**
2
+ * amis v2.0.0-rc.16
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 } 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
+ this.resizeLine.style.left = this.resizeLineLeft + moveX + 'px';
792
+ this.targetTh.style.width = this.targetThWidth + moveX + 'px';
793
+ };
794
+ // 垂直线拖拽结束
795
+ Table.prototype.handleColResizeMouseUp = function (e) {
796
+ document.removeEventListener('mousemove', this.handleColResizeMouseMove);
797
+ document.removeEventListener('mouseup', this.handleColResizeMouseUp);
798
+ };
799
+ Table.prototype.handleColumnToggle = function (columns) {
800
+ var store = this.props.store;
801
+ store.updateColumns(columns);
802
+ };
803
+ Table.prototype.renderAutoFilterForm = function () {
804
+ var _a = this.props, render = _a.render, store = _a.store, onSearchableFromReset = _a.onSearchableFromReset, onSearchableFromSubmit = _a.onSearchableFromSubmit, onSearchableFromInit = _a.onSearchableFromInit, cx = _a.classnames, __ = _a.translate;
805
+ var searchableColumns = store.searchableColumns;
806
+ var activedSearchableColumns = store.activedSearchableColumns;
807
+ if (!searchableColumns.length) {
808
+ return null;
809
+ }
810
+ var groupedSearchableColumns = [
811
+ { body: [], md: 4 },
812
+ { body: [], md: 4 },
813
+ { body: [], md: 4 }
814
+ ];
815
+ activedSearchableColumns.forEach(function (column, index) {
816
+ var _a, _b, _c, _d;
817
+ groupedSearchableColumns[index % 3].body.push(__assign(__assign({}, (column.searchable === true
818
+ ? {
819
+ type: 'input-text',
820
+ name: column.name,
821
+ label: column.label
822
+ }
823
+ : __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' }));
824
+ });
825
+ return render('searchable-form', {
826
+ type: 'form',
827
+ api: null,
828
+ title: '',
829
+ mode: 'normal',
830
+ submitText: __('search'),
831
+ body: [
832
+ {
833
+ type: 'grid',
834
+ columns: groupedSearchableColumns
835
+ }
836
+ ],
837
+ actions: [
838
+ {
839
+ type: 'dropdown-button',
840
+ label: __('Table.searchFields'),
841
+ className: cx('Table-searchableForm-dropdown', 'mr-2'),
842
+ level: 'link',
843
+ trigger: 'click',
844
+ size: 'sm',
845
+ align: 'right',
846
+ buttons: searchableColumns.map(function (column) {
847
+ var _a, _b, _c, _d;
848
+ return {
849
+ type: 'checkbox',
850
+ className: cx('Table-searchableForm-checkbox'),
851
+ name: "__search_".concat((_b = (_a = column.searchable) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : column.name),
852
+ option: (_d = (_c = column.searchable) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : column.label,
853
+ value: column.enableSearch,
854
+ badge: {
855
+ offset: [-10, 5],
856
+ visibleOn: "".concat(column.toggable && !column.toggled && column.enableSearch)
857
+ },
858
+ onChange: function (value) {
859
+ column.setEnableSearch(value);
860
+ }
861
+ };
862
+ })
863
+ },
864
+ {
865
+ type: 'submit',
866
+ label: __('search'),
867
+ level: 'primary',
868
+ className: 'w-18'
869
+ },
870
+ {
871
+ type: 'reset',
872
+ label: __('reset'),
873
+ className: 'w-18'
874
+ }
875
+ ]
876
+ }, {
877
+ key: 'searchable-form',
878
+ panelClassName: cx('Table-searchableForm'),
879
+ actionsClassName: cx('Table-searchableForm-footer'),
880
+ onReset: onSearchableFromReset,
881
+ onSubmit: onSearchableFromSubmit,
882
+ onInit: onSearchableFromInit,
883
+ formStore: undefined
884
+ });
885
+ };
886
+ Table.prototype.renderHeading = function () {
887
+ 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;
888
+ if (title ||
889
+ (quickSaveApi &&
890
+ !saveImmediately &&
891
+ store.modified &&
892
+ !hideQuickSaveBtn) ||
893
+ store.moved) {
894
+ return (React.createElement("div", { className: cx('Table-heading', headingClassName), key: "heading" }, !saveImmediately && store.modified && !hideQuickSaveBtn ? (React.createElement("span", null,
895
+ __('Table.modified', {
896
+ modified: store.modified
897
+ }),
898
+ React.createElement("button", { type: "button", className: cx('Button Button--xs Button--success m-l-sm'), onClick: this.handleSave },
899
+ React.createElement(Icon, { icon: "check", className: "icon m-r-xs" }),
900
+ __('Form.submit')),
901
+ React.createElement("button", { type: "button", className: cx('Button Button--xs Button--danger m-l-sm'), onClick: this.reset },
902
+ React.createElement(Icon, { icon: "close", className: "icon m-r-xs" }),
903
+ __('Table.discard')))) : store.moved ? (React.createElement("span", null,
904
+ __('Table.moved', {
905
+ moved: store.moved
906
+ }),
907
+ React.createElement("button", { type: "button", className: cx('Button Button--xs Button--success m-l-sm'), onClick: this.handleSaveOrder },
908
+ React.createElement(Icon, { icon: "check", className: "icon m-r-xs" }),
909
+ __('Form.submit')),
910
+ React.createElement("button", { type: "button", className: cx('Button Button--xs Button--danger m-l-sm'), onClick: this.reset },
911
+ React.createElement(Icon, { icon: "close", className: "icon m-r-xs" }),
912
+ __('Table.discard')))) : title ? (filter(title, data)) : ('')));
913
+ }
914
+ return null;
915
+ };
916
+ Table.prototype.renderHeadCell = function (column, props) {
917
+ var _this = this;
918
+ 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;
919
+ if (column.type === '__checkme') {
920
+ 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')));
921
+ }
922
+ else if (column.type === '__dragme') {
923
+ return React.createElement("th", __assign({}, props, { className: cx(column.pristine.className) }));
924
+ }
925
+ else if (column.type === '__expandme') {
926
+ return (React.createElement("th", __assign({}, props, { className: cx(column.pristine.className) }), (store.footable &&
927
+ (store.footable.expandAll === false || store.footable.accordion)) ||
928
+ (store.expandConfig &&
929
+ (store.expandConfig.expandAll === false ||
930
+ store.expandConfig.accordion)) ? null : (React.createElement("a", { className: cx('Table-expandBtn', store.allExpanded ? 'is-active' : ''),
931
+ // data-tooltip="展开/收起全部"
932
+ // data-position="top"
933
+ onClick: store.toggleExpandAll },
934
+ React.createElement(Icon, { icon: "right-arrow-bold", className: "icon" })))));
935
+ }
936
+ var affix = null;
937
+ if (column.searchable && column.name && !autoGenerateFilter) {
938
+ 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 })));
939
+ }
940
+ else if (column.sortable && column.name) {
941
+ affix = (React.createElement("span", { className: cx('TableCell-sortBtn'), onClick: function () { return __awaiter(_this, void 0, void 0, function () {
942
+ var orderBy, orderDir, order, rendererEvent;
943
+ return __generator(this, function (_a) {
944
+ switch (_a.label) {
945
+ case 0:
946
+ orderBy = '';
947
+ orderDir = '';
948
+ if (column.name === store.orderBy) {
949
+ if (store.orderDir !== 'desc') {
950
+ // 升序之后降序
951
+ orderBy = column.name;
952
+ orderDir = 'desc';
953
+ }
954
+ }
955
+ else {
956
+ orderBy = column.name;
957
+ }
958
+ order = orderDir ? 'desc' : 'asc';
959
+ return [4 /*yield*/, dispatchEvent('columnSort', createObject(data, {
960
+ orderBy: orderBy,
961
+ orderDir: order
962
+ }))];
963
+ case 1:
964
+ rendererEvent = _a.sent();
965
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
966
+ return [2 /*return*/];
967
+ }
968
+ store.setOrderByInfo(orderBy, order);
969
+ onQuery &&
970
+ onQuery({
971
+ orderBy: store.orderBy,
972
+ orderDir: store.orderDir
973
+ });
974
+ return [2 /*return*/];
975
+ }
976
+ });
977
+ }); } },
978
+ React.createElement("i", { className: cx('TableCell-sortBtn--down', store.orderBy === column.name && store.orderDir === 'desc'
979
+ ? 'is-active'
980
+ : '') },
981
+ React.createElement(Icon, { icon: "sort-desc", className: "icon" })),
982
+ React.createElement("i", { className: cx('TableCell-sortBtn--up', store.orderBy === column.name && store.orderDir === 'asc'
983
+ ? 'is-active'
984
+ : '') },
985
+ React.createElement(Icon, { icon: "sort-asc", className: "icon" })),
986
+ React.createElement("i", { className: cx('TableCell-sortBtn--default', store.orderBy === column.name ? '' : 'is-active') },
987
+ React.createElement(Icon, { icon: "sort-default", className: "icon" }))));
988
+ }
989
+ else if (column.filterable && column.name) {
990
+ affix = (React.createElement(HeadCellFilterDropDown, __assign({}, this.props, { onQuery: onQuery, name: column.name, type: column.type, data: query, filterable: column.filterable, popOverContainer: this.getPopOverContainer })));
991
+ }
992
+ if (column.pristine.width) {
993
+ props.style = props.style || {};
994
+ props.style.width = column.pristine.width;
995
+ }
996
+ if (column.pristine.align) {
997
+ props.style = props.style || {};
998
+ props.style.textAlign = column.pristine.align;
999
+ }
1000
+ var resizeLine = (React.createElement("div", { className: cx('Table-content-colDragLine'), key: "resize-".concat(column.index), onMouseDown: this.handleColResizeMouseDown }));
1001
+ return (React.createElement("th", __assign({}, props, { className: cx(props ? props.className : '', {
1002
+ 'TableCell--sortable': column.sortable,
1003
+ 'TableCell--searchable': column.searchable,
1004
+ 'TableCell--filterable': column.filterable,
1005
+ 'Table-operationCell': column.type === 'operation'
1006
+ }) }),
1007
+ React.createElement("div", { className: cx("".concat(ns, "TableCell--title"), column.pristine.className, column.pristine.labelClassName) },
1008
+ column.label ? render('tpl', column.label) : null,
1009
+ column.remark
1010
+ ? render('remark', {
1011
+ type: 'remark',
1012
+ tooltip: column.remark,
1013
+ container: env && env.getModalContainer
1014
+ ? env.getModalContainer
1015
+ : undefined
1016
+ })
1017
+ : null),
1018
+ affix,
1019
+ resizable === false ? null : resizeLine));
1020
+ };
1021
+ Table.prototype.renderCell = function (region, column, item, props, ignoreDrag) {
1022
+ if (ignoreDrag === void 0) { ignoreDrag = false; }
1023
+ 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;
1024
+ if (column.name && item.rowSpans[column.name] === 0) {
1025
+ return null;
1026
+ }
1027
+ if (column.type === '__checkme') {
1028
+ return (React.createElement("td", { key: props.key, className: cx(column.pristine.className) },
1029
+ React.createElement(Checkbox, { classPrefix: ns, type: multiple ? 'checkbox' : 'radio', checked: item.checked, disabled: item.checkdisable, onChange: checkOnItemClick ? noop : this.handleCheck.bind(this, item) })));
1030
+ }
1031
+ else if (column.type === '__dragme') {
1032
+ return (React.createElement("td", { key: props.key, className: cx(column.pristine.className, {
1033
+ 'is-dragDisabled': !item.draggable
1034
+ }) }, item.draggable ? React.createElement(Icon, { icon: "drag", className: "icon" }) : null));
1035
+ }
1036
+ else if (column.type === '__expandme') {
1037
+ return (React.createElement("td", { key: props.key, className: cx(column.pristine.className) },
1038
+ item.depth > 2
1039
+ ? Array.from({ length: item.depth - 2 }).map(function (_, index) { return (React.createElement("i", { key: index, className: cx('Table-divider-' + (index + 1)) })); })
1040
+ : null,
1041
+ item.expandable ? (React.createElement("a", { className: cx('Table-expandBtn', item.expanded ? 'is-active' : ''),
1042
+ // data-tooltip="展开/收起"
1043
+ // data-position="top"
1044
+ onClick: item.toggleExpanded },
1045
+ React.createElement(Icon, { icon: "right-arrow-bold", className: "icon" }))) : null));
1046
+ }
1047
+ var prefix = null;
1048
+ if (!ignoreDrag &&
1049
+ column.isPrimary &&
1050
+ store.isNested &&
1051
+ store.draggable &&
1052
+ item.draggable) {
1053
+ prefix = (React.createElement("a", { draggable: true, onDragStart: this.handleDragStart, className: cx('Table-dragBtn') },
1054
+ React.createElement(Icon, { icon: "drag", className: "icon" })));
1055
+ }
1056
+ var subProps = __assign(__assign({}, props), { btnDisabled: store.dragging, data: item.locals, value: column.name
1057
+ ? resolveVariable(column.name, canAccessSuperData ? item.locals : item.data)
1058
+ : 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 &&
1059
+ itemBadge &&
1060
+ store.firstToggledColumnIndex === props.colIndex });
1061
+ delete subProps.label;
1062
+ return render(region, __assign(__assign({}, column.pristine), { column: column.pristine, type: 'cell' }), subProps);
1063
+ };
1064
+ Table.prototype.renderAffixHeader = function (tableClassName) {
1065
+ var _this = this;
1066
+ var _a = this.props, store = _a.store, affixHeader = _a.affixHeader, render = _a.render, cx = _a.classnames;
1067
+ var hideHeader = store.filteredColumns.every(function (column) { return !column.label; });
1068
+ var columnsGroup = store.columnGroup;
1069
+ return affixHeader ? (React.createElement("div", { className: cx('Table-fixedTop', {
1070
+ 'is-fakeHide': hideHeader
1071
+ }) },
1072
+ this.renderHeader(false),
1073
+ this.renderHeading(),
1074
+ React.createElement("div", { className: cx('Table-fixedLeft') }, store.leftFixedColumns.length
1075
+ ? this.renderFixedColumns(store.rows, store.leftFixedColumns, true, tableClassName)
1076
+ : null),
1077
+ React.createElement("div", { className: cx('Table-fixedRight') }, store.rightFixedColumns.length
1078
+ ? this.renderFixedColumns(store.rows, store.rightFixedColumns, true, tableClassName)
1079
+ : null),
1080
+ React.createElement("div", { className: cx('Table-wrapper') },
1081
+ React.createElement("table", { ref: this.affixedTableRef, className: tableClassName },
1082
+ React.createElement("colgroup", null, store.filteredColumns.map(function (column) { return (React.createElement("col", { key: column.index, "data-index": column.index })); })),
1083
+ React.createElement("thead", null,
1084
+ 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,
1085
+ React.createElement("tr", null, store.filteredColumns.map(function (column) {
1086
+ var _a;
1087
+ return ((_a = columnsGroup.find(function (group) { return ~group.has.indexOf(column); })) === null || _a === void 0 ? void 0 : _a.rowSpan) === 2
1088
+ ? null
1089
+ : _this.renderHeadCell(column, {
1090
+ 'key': column.index,
1091
+ 'data-index': column.index
1092
+ });
1093
+ }))))))) : null;
1094
+ };
1095
+ Table.prototype.renderFixedColumns = function (rows, columns, headerOnly, tableClassName) {
1096
+ var _this = this;
1097
+ if (headerOnly === void 0) { headerOnly = false; }
1098
+ if (tableClassName === void 0) { tableClassName = ''; }
1099
+ 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;
1100
+ var hideHeader = store.filteredColumns.every(function (column) { return !column.label; });
1101
+ var columnsGroup = store.columnGroup;
1102
+ return (React.createElement("table", { className: cx('Table-table', store.combineNum > 0 ? 'Table-table--withCombine' : '', tableClassName) },
1103
+ React.createElement("thead", null,
1104
+ columnsGroup.length ? (React.createElement("tr", null, columnsGroup.map(function (item, index) {
1105
+ var renderColumns = columns.filter(function (a) { return ~item.has.indexOf(a); });
1106
+ return renderColumns.length ? (React.createElement("th", { key: index, "data-index": item.index, colSpan: renderColumns.length, rowSpan: item.rowSpan }, item.label)) : null;
1107
+ }))) : null,
1108
+ React.createElement("tr", { className: hideHeader ? 'fake-hide' : '' }, columns.map(function (column) {
1109
+ var _a;
1110
+ return ((_a = columnsGroup.find(function (group) { return ~group.has.indexOf(column); })) === null || _a === void 0 ? void 0 : _a.rowSpan) === 2
1111
+ ? null
1112
+ : _this.renderHeadCell(column, {
1113
+ 'key': column.index,
1114
+ 'data-index': column.index
1115
+ });
1116
+ }))),
1117
+ headerOnly ? null : !rows.length ? (React.createElement("tbody", null,
1118
+ React.createElement("tr", { className: cx('Table-placeholder') },
1119
+ 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: {
1120
+ regionPrefix: 'fixed/',
1121
+ renderCell: function (region, column, item, props) { return _this.renderCell(region, column, item, props, true); },
1122
+ data: data,
1123
+ dispatchEvent: dispatchEvent,
1124
+ onEvent: onEvent
1125
+ } }))));
1126
+ };
1127
+ Table.prototype.renderToolbar = function (toolbar) {
1128
+ var type = toolbar.type || toolbar;
1129
+ if (type === 'columns-toggler') {
1130
+ this.renderedToolbars.push(type);
1131
+ return this.renderColumnsToggler(toolbar);
1132
+ }
1133
+ else if (type === 'drag-toggler') {
1134
+ this.renderedToolbars.push(type);
1135
+ return this.renderDragToggler();
1136
+ }
1137
+ else if (type === 'export-excel') {
1138
+ this.renderedToolbars.push(type);
1139
+ return this.renderExportExcel(toolbar);
1140
+ }
1141
+ return void 0;
1142
+ };
1143
+ Table.prototype.renderColumnsToggler = function (config) {
1144
+ var _this = this;
1145
+ var _a;
1146
+ var _b = this.props; _b.className; var store = _b.store, ns = _b.classPrefix, cx = _b.classnames, rest = __rest(_b, ["className", "store", "classPrefix", "classnames"]);
1147
+ var __ = rest.translate;
1148
+ var env = rest.env;
1149
+ var render = this.props.render;
1150
+ if (!store.columnsTogglable) {
1151
+ return null;
1152
+ }
1153
+ 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 }),
1154
+ store.toggableColumns.length ? (React.createElement("li", { className: cx('ColumnToggler-menuItem'), key: 'selectAll', onClick: function () { return __awaiter(_this, void 0, void 0, function () {
1155
+ var _a, data, dispatchEvent, allToggled, rendererEvent;
1156
+ return __generator(this, function (_b) {
1157
+ switch (_b.label) {
1158
+ case 0:
1159
+ _a = this.props, data = _a.data, dispatchEvent = _a.dispatchEvent;
1160
+ allToggled = !(store.activeToggaleColumns.length ===
1161
+ store.toggableColumns.length);
1162
+ return [4 /*yield*/, dispatchEvent('columnToggled', createObject(data, {
1163
+ columns: allToggled
1164
+ ? store.toggableColumns.map(function (column) { return column.pristine; })
1165
+ : []
1166
+ }))];
1167
+ case 1:
1168
+ rendererEvent = _b.sent();
1169
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
1170
+ return [2 /*return*/];
1171
+ }
1172
+ store.toggleAllColumns();
1173
+ return [2 /*return*/];
1174
+ }
1175
+ });
1176
+ }); } },
1177
+ React.createElement(Checkbox, { size: "sm", classPrefix: ns, key: "checkall", checked: !!store.activeToggaleColumns.length, partial: !!(store.activeToggaleColumns.length &&
1178
+ store.activeToggaleColumns.length !==
1179
+ store.toggableColumns.length) }, __('Checkboxes.selectAll')))) : null,
1180
+ 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 () {
1181
+ var _a, data, dispatchEvent, columns, rendererEvent;
1182
+ return __generator(this, function (_b) {
1183
+ switch (_b.label) {
1184
+ case 0:
1185
+ _a = this.props, data = _a.data, dispatchEvent = _a.dispatchEvent;
1186
+ columns = store.activeToggaleColumns.map(function (item) { return item.pristine; });
1187
+ if (!column.toggled) {
1188
+ columns.push(column.pristine);
1189
+ }
1190
+ else {
1191
+ columns = columns.filter(function (c) { return c.name !== column.pristine.name; });
1192
+ }
1193
+ return [4 /*yield*/, dispatchEvent('columnToggled', createObject(data, {
1194
+ columns: columns
1195
+ }))];
1196
+ case 1:
1197
+ rendererEvent = _b.sent();
1198
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
1199
+ return [2 /*return*/];
1200
+ }
1201
+ column.toggleToggle();
1202
+ return [2 /*return*/];
1203
+ }
1204
+ });
1205
+ }); } },
1206
+ React.createElement(Checkbox, { size: "sm", classPrefix: ns, checked: column.toggled }, column.label ? render('tpl', column.label) : null))); })));
1207
+ };
1208
+ Table.prototype.renderDragToggler = function () {
1209
+ var _a = this.props, store = _a.store, env = _a.env, draggable = _a.draggable, ns = _a.classPrefix, __ = _a.translate;
1210
+ if (!draggable || store.isNested) {
1211
+ return null;
1212
+ }
1213
+ 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) {
1214
+ e.preventDefault();
1215
+ store.toggleDragging();
1216
+ store.dragging && store.clear();
1217
+ }, iconOnly: true },
1218
+ React.createElement(Icon, { icon: "exchange", className: "icon" })));
1219
+ };
1220
+ Table.prototype.renderExportExcel = function (toolbar) {
1221
+ var _this = this;
1222
+ var _a = this.props, store = _a.store; _a.env; _a.classPrefix; _a.classnames; var __ = _a.translate; _a.data; var render = _a.render;
1223
+ var columns = store.filteredColumns || [];
1224
+ if (!columns) {
1225
+ return null;
1226
+ }
1227
+ return render('exportExcel', __assign(__assign({ label: __('CRUD.exportExcel') }, toolbar), { type: 'button' }), {
1228
+ onAction: function () {
1229
+ import('exceljs').then(function (ExcelJS) { return __awaiter(_this, void 0, void 0, function () {
1230
+ return __generator(this, function (_a) {
1231
+ exportExcel(ExcelJS, this.props, toolbar);
1232
+ return [2 /*return*/];
1233
+ });
1234
+ }); });
1235
+ }
1236
+ });
1237
+ };
1238
+ Table.prototype.renderActions = function (region) {
1239
+ var _this = this;
1240
+ var _a = this.props, actions = _a.actions, render = _a.render, store = _a.store, cx = _a.classnames, data = _a.data;
1241
+ actions = Array.isArray(actions) ? actions.concat() : [];
1242
+ if (store.toggable &&
1243
+ region === 'header' &&
1244
+ !~this.renderedToolbars.indexOf('columns-toggler')) {
1245
+ actions.push({
1246
+ type: 'button',
1247
+ children: this.renderColumnsToggler()
1248
+ });
1249
+ }
1250
+ if (store.draggable &&
1251
+ !store.isNested &&
1252
+ region === 'header' &&
1253
+ store.rows.length > 1 &&
1254
+ !~this.renderedToolbars.indexOf('drag-toggler')) {
1255
+ actions.push({
1256
+ type: 'button',
1257
+ children: this.renderDragToggler()
1258
+ });
1259
+ }
1260
+ return Array.isArray(actions) && actions.length ? (React.createElement("div", { className: cx('Table-actions') }, actions.map(function (action, key) {
1261
+ return render("action/".concat(key), __assign({ type: 'button' }, action), {
1262
+ onAction: _this.handleAction,
1263
+ key: key,
1264
+ btnDisabled: store.dragging,
1265
+ data: store.getData(data)
1266
+ });
1267
+ }))) : null;
1268
+ };
1269
+ Table.prototype.renderHeader = function (editable) {
1270
+ 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;
1271
+ if (showHeader === false) {
1272
+ return null;
1273
+ }
1274
+ var otherProps = {};
1275
+ // editable === false && (otherProps.$$editable = false);
1276
+ var child = headerToolbarRender
1277
+ ? 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)
1278
+ : null;
1279
+ var actions = this.renderActions('header');
1280
+ var toolbarNode = actions || child || store.dragging ? (React.createElement("div", { className: cx('Table-toolbar Table-headToolbar', toolbarClassName, headerToolbarClassName), key: "header-toolbar" },
1281
+ actions,
1282
+ child,
1283
+ store.dragging ? (React.createElement("div", { className: cx('Table-dragTip'), ref: this.dragTipRef }, __('Table.dragTip'))) : null)) : null;
1284
+ 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;
1285
+ return headerNode && toolbarNode
1286
+ ? [headerNode, toolbarNode]
1287
+ : headerNode || toolbarNode || null;
1288
+ };
1289
+ Table.prototype.renderFooter = function () {
1290
+ 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;
1291
+ if (showFooter === false) {
1292
+ return null;
1293
+ }
1294
+ var child = footerToolbarRender
1295
+ ? 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)
1296
+ : null;
1297
+ var actions = this.renderActions('footer');
1298
+ var toolbarNode = actions || child ? (React.createElement("div", { className: cx('Table-toolbar Table-footToolbar', toolbarClassName, footerToolbarClassName), key: "footer-toolbar" },
1299
+ actions,
1300
+ child)) : null;
1301
+ var footerNode = footer && (!Array.isArray(footer) || footer.length) ? (React.createElement("div", { className: cx('Table-footer', footerClassName), key: "footer" }, render('footer', footer, {
1302
+ data: store.getData(data)
1303
+ }))) : null;
1304
+ return footerNode && toolbarNode
1305
+ ? [toolbarNode, footerNode]
1306
+ : footerNode || toolbarNode || null;
1307
+ };
1308
+ Table.prototype.renderTableContent = function () {
1309
+ 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, loading = _a.loading;
1310
+ // 理论上来说 store.rows 应该也行啊
1311
+ // 不过目前看来只有这样写它才会重新更新视图
1312
+ store.rows.length;
1313
+ return (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 }));
1314
+ };
1315
+ Table.prototype.doAction = function (action, args, throwErrors) {
1316
+ var _a = this.props, store = _a.store, valueField = _a.valueField, data = _a.data;
1317
+ var actionType = action === null || action === void 0 ? void 0 : action.actionType;
1318
+ switch (actionType) {
1319
+ case 'selectAll':
1320
+ store.clear();
1321
+ store.toggleAll();
1322
+ break;
1323
+ case 'clearAll':
1324
+ store.clear();
1325
+ break;
1326
+ case 'select':
1327
+ var dataSource = store.getData(data);
1328
+ var selected_1 = [];
1329
+ dataSource.items.forEach(function (item, rowIndex) {
1330
+ var flag = evalExpression(args === null || args === void 0 ? void 0 : args.selected, { record: item, rowIndex: rowIndex });
1331
+ if (flag) {
1332
+ selected_1.push(item);
1333
+ }
1334
+ });
1335
+ store.updateSelected(selected_1, valueField);
1336
+ break;
1337
+ case 'initDrag':
1338
+ store.stopDragging();
1339
+ store.toggleDragging();
1340
+ break;
1341
+ }
1342
+ };
1343
+ Table.prototype.render = function () {
1344
+ var _a = this.props, className = _a.className, store = _a.store, cx = _a.classnames, affixColumns = _a.affixColumns, autoFillHeight = _a.autoFillHeight, autoGenerateFilter = _a.autoGenerateFilter;
1345
+ this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了,已经渲染了就不重复渲染了。
1346
+ var heading = this.renderHeading();
1347
+ var header = this.renderHeader();
1348
+ var footer = this.renderFooter();
1349
+ var tableClassName = cx('Table-table', store.combineNum > 0 ? 'Table-table--withCombine' : '', this.props.tableClassName);
1350
+ return (React.createElement("div", { className: cx('Table', className, {
1351
+ 'Table--unsaved': !!store.modified || !!store.moved,
1352
+ 'Table--autoFillHeight': autoFillHeight
1353
+ }) },
1354
+ autoGenerateFilter ? this.renderAutoFilterForm() : null,
1355
+ header,
1356
+ heading,
1357
+ React.createElement("div", { className: cx('Table-contentWrap'), onMouseLeave: this.handleMouseLeave },
1358
+ React.createElement("div", { className: cx('Table-fixedLeft'), onMouseMove: this.handleMouseMove }, affixColumns !== false && store.leftFixedColumns.length
1359
+ ? this.renderFixedColumns(store.rows, store.leftFixedColumns, false, tableClassName)
1360
+ : null),
1361
+ React.createElement("div", { className: cx('Table-fixedRight'), onMouseMove: this.handleMouseMove }, affixColumns !== false && store.rightFixedColumns.length
1362
+ ? this.renderFixedColumns(store.rows, store.rightFixedColumns, false, tableClassName)
1363
+ : null),
1364
+ this.renderTableContent()),
1365
+ this.renderAffixHeader(tableClassName),
1366
+ footer));
1367
+ };
1368
+ Table.contextType = ScopedContext;
1369
+ Table.propsList = [
1370
+ 'header',
1371
+ 'headerToolbarRender',
1372
+ 'footer',
1373
+ 'footerToolbarRender',
1374
+ 'footable',
1375
+ 'expandConfig',
1376
+ 'placeholder',
1377
+ 'tableClassName',
1378
+ 'headingClassName',
1379
+ 'source',
1380
+ 'selectable',
1381
+ 'columnsTogglable',
1382
+ 'affixHeader',
1383
+ 'affixColumns',
1384
+ 'headerClassName',
1385
+ 'footerClassName',
1386
+ 'selected',
1387
+ 'multiple',
1388
+ 'primaryField',
1389
+ 'hideQuickSaveBtn',
1390
+ 'itemCheckableOn',
1391
+ 'itemDraggableOn',
1392
+ 'checkOnItemClick',
1393
+ 'hideCheckToggler',
1394
+ 'itemAction',
1395
+ 'itemActions',
1396
+ 'combineNum',
1397
+ 'combineFromIndex',
1398
+ 'items',
1399
+ 'columns',
1400
+ 'valueField',
1401
+ 'saveImmediately',
1402
+ 'rowClassName',
1403
+ 'rowClassNameExpr',
1404
+ 'affixRowClassNameExpr',
1405
+ 'prefixRowClassNameExpr',
1406
+ 'popOverContainer',
1407
+ 'headerToolbarClassName',
1408
+ 'toolbarClassName',
1409
+ 'footerToolbarClassName',
1410
+ 'itemBadge',
1411
+ 'autoFillHeight',
1412
+ 'onSelect',
1413
+ 'keepItemSelectionOnPageChange',
1414
+ 'maxKeepItemSelectionLength'
1415
+ ];
1416
+ Table.defaultProps = {
1417
+ className: '',
1418
+ placeholder: 'placeholder.noData',
1419
+ tableClassName: '',
1420
+ source: '$items',
1421
+ selectable: false,
1422
+ columnsTogglable: 'auto',
1423
+ affixHeader: true,
1424
+ headerClassName: '',
1425
+ footerClassName: '',
1426
+ toolbarClassName: '',
1427
+ headerToolbarClassName: '',
1428
+ footerToolbarClassName: '',
1429
+ primaryField: 'id',
1430
+ itemCheckableOn: '',
1431
+ itemDraggableOn: '',
1432
+ hideCheckToggler: false,
1433
+ canAccessSuperData: false,
1434
+ resizable: true
1435
+ };
1436
+ __decorate([
1437
+ autobind,
1438
+ __metadata("design:type", Function),
1439
+ __metadata("design:paramtypes", [Object]),
1440
+ __metadata("design:returntype", void 0)
1441
+ ], Table.prototype, "handleDragStart", null);
1442
+ __decorate([
1443
+ autobind,
1444
+ __metadata("design:type", Function),
1445
+ __metadata("design:paramtypes", [Object]),
1446
+ __metadata("design:returntype", void 0)
1447
+ ], Table.prototype, "handleDragOver", null);
1448
+ __decorate([
1449
+ autobind,
1450
+ __metadata("design:type", Function),
1451
+ __metadata("design:paramtypes", []),
1452
+ __metadata("design:returntype", Promise)
1453
+ ], Table.prototype, "handleDrop", null);
1454
+ __decorate([
1455
+ autobind,
1456
+ __metadata("design:type", Function),
1457
+ __metadata("design:paramtypes", []),
1458
+ __metadata("design:returntype", void 0)
1459
+ ], Table.prototype, "handleDragEnd", null);
1460
+ __decorate([
1461
+ autobind,
1462
+ __metadata("design:type", Function),
1463
+ __metadata("design:paramtypes", [Object, Object]),
1464
+ __metadata("design:returntype", void 0)
1465
+ ], Table.prototype, "handleImageEnlarge", null);
1466
+ __decorate([
1467
+ autobind,
1468
+ __metadata("design:type", Function),
1469
+ __metadata("design:paramtypes", [Object]),
1470
+ __metadata("design:returntype", void 0)
1471
+ ], Table.prototype, "handleColResizeMouseDown", null);
1472
+ __decorate([
1473
+ autobind,
1474
+ __metadata("design:type", Function),
1475
+ __metadata("design:paramtypes", [MouseEvent]),
1476
+ __metadata("design:returntype", void 0)
1477
+ ], Table.prototype, "handleColResizeMouseMove", null);
1478
+ __decorate([
1479
+ autobind,
1480
+ __metadata("design:type", Function),
1481
+ __metadata("design:paramtypes", [MouseEvent]),
1482
+ __metadata("design:returntype", void 0)
1483
+ ], Table.prototype, "handleColResizeMouseUp", null);
1484
+ return Table;
1485
+ }(React.Component));
1486
+ /** @class */ ((function (_super) {
1487
+ __extends(TableRenderer, _super);
1488
+ function TableRenderer() {
1489
+ return _super !== null && _super.apply(this, arguments) || this;
1490
+ }
1491
+ TableRenderer.prototype.receive = function (values, subPath) {
1492
+ var _this = this;
1493
+ var _a, _b;
1494
+ var scoped = this.context;
1495
+ var parents = (_a = scoped === null || scoped === void 0 ? void 0 : scoped.parent) === null || _a === void 0 ? void 0 : _a.getComponents();
1496
+ /**
1497
+ * 因为Table在scope上注册,导致getComponentByName查询组件时会优先找到Table,和CRUD联动的动作都会失效
1498
+ * 这里先做兼容处理,把动作交给上层的CRUD处理
1499
+ */
1500
+ if (Array.isArray(parents) && parents.length) {
1501
+ // CRUD的name会透传给Table,这样可以保证找到CRUD
1502
+ 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); });
1503
+ return (_b = crud === null || crud === void 0 ? void 0 : crud.receive) === null || _b === void 0 ? void 0 : _b.call(crud, values, subPath);
1504
+ }
1505
+ if (subPath) {
1506
+ return scoped.send(subPath, values);
1507
+ }
1508
+ };
1509
+ TableRenderer.prototype.reload = function (subPath, query, ctx) {
1510
+ var _this = this;
1511
+ var _a, _b;
1512
+ var scoped = this.context;
1513
+ var parents = (_a = scoped === null || scoped === void 0 ? void 0 : scoped.parent) === null || _a === void 0 ? void 0 : _a.getComponents();
1514
+ if (Array.isArray(parents) && parents.length) {
1515
+ // CRUD的name会透传给Table,这样可以保证找到CRUD
1516
+ 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); });
1517
+ return (_b = crud === null || crud === void 0 ? void 0 : crud.reload) === null || _b === void 0 ? void 0 : _b.call(crud, subPath, query, ctx);
1518
+ }
1519
+ if (subPath) {
1520
+ return scoped.reload(subPath, ctx);
1521
+ }
1522
+ };
1523
+ TableRenderer = __decorate([
1524
+ Renderer({
1525
+ type: 'table',
1526
+ storeType: TableStore.name,
1527
+ name: 'table'
1528
+ })
1529
+ ], TableRenderer);
1530
+ return TableRenderer;
1531
+ })(Table));
1532
+
1533
+ export { Table as default };