@kdcloudjs/table 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) hide show
  1. package/LICENSE +568 -0
  2. package/README.md +111 -0
  3. package/dist/@kdcloudjs/table.css +422 -0
  4. package/dist/@kdcloudjs/table.css.map +1 -0
  5. package/dist/@kdcloudjs/table.js +38578 -0
  6. package/dist/@kdcloudjs/table.js.map +1 -0
  7. package/dist/@kdcloudjs/table.min.css +9 -0
  8. package/dist/@kdcloudjs/table.min.js +208 -0
  9. package/dist/@kdcloudjs/table.min.js.map +1 -0
  10. package/dist/default-theme.js +344 -0
  11. package/dist/kd-table.css +422 -0
  12. package/dist/kd-table.css.map +1 -0
  13. package/dist/kd-table.js +38578 -0
  14. package/dist/kd-table.js.map +1 -0
  15. package/dist/kd-table.min.css +9 -0
  16. package/dist/kd-table.min.js +208 -0
  17. package/dist/kd-table.min.js.map +1 -0
  18. package/dist/kd-ui-complete.less +779 -0
  19. package/dist/kd-ui.less +2 -0
  20. package/dist/theme.js +13 -0
  21. package/es/_utils/arrayUtil.d.ts +5 -0
  22. package/es/_utils/arrayUtil.js +17 -0
  23. package/es/_utils/devwarning.d.ts +1 -0
  24. package/es/_utils/devwarning.js +10 -0
  25. package/es/_utils/formatUtil.d.ts +46 -0
  26. package/es/_utils/formatUtil.js +346 -0
  27. package/es/_utils/hooks.d.ts +51 -0
  28. package/es/_utils/hooks.js +165 -0
  29. package/es/_utils/index.d.ts +8 -0
  30. package/es/_utils/index.js +15 -0
  31. package/es/_utils/numberUtil.d.ts +34 -0
  32. package/es/_utils/numberUtil.js +181 -0
  33. package/es/_utils/omit.d.ts +1 -0
  34. package/es/_utils/omit.js +11 -0
  35. package/es/_utils/react-children.d.ts +2 -0
  36. package/es/_utils/react-children.js +8 -0
  37. package/es/_utils/type.d.ts +12 -0
  38. package/es/_utils/type.js +15 -0
  39. package/es/_utils/usePopper.d.ts +29 -0
  40. package/es/_utils/usePopper.js +546 -0
  41. package/es/config-provider/ConfigContext.d.ts +22 -0
  42. package/es/config-provider/ConfigContext.js +7 -0
  43. package/es/config-provider/compDefaultProps.d.ts +8 -0
  44. package/es/config-provider/compDefaultProps.js +10 -0
  45. package/es/config-provider/configProvider.d.ts +11 -0
  46. package/es/config-provider/configProvider.js +40 -0
  47. package/es/config-provider/defaultConfig.d.ts +10 -0
  48. package/es/config-provider/defaultConfig.js +18 -0
  49. package/es/config-provider/index.d.ts +6 -0
  50. package/es/config-provider/index.js +6 -0
  51. package/es/index.d.ts +2 -0
  52. package/es/index.js +4 -0
  53. package/es/locale/index.d.ts +3 -0
  54. package/es/locale/index.js +3 -0
  55. package/es/locale/locale.d.ts +50 -0
  56. package/es/locale/locale.js +251 -0
  57. package/es/locale/zh-CN.d.ts +8 -0
  58. package/es/locale/zh-CN.js +8 -0
  59. package/es/style/color/colors.less +2 -0
  60. package/es/style/core/index.less +2 -0
  61. package/es/style/core/motion/other.less +28 -0
  62. package/es/style/core/motion/slide.less +53 -0
  63. package/es/style/core/motion.less +2 -0
  64. package/es/style/core/reset.less +186 -0
  65. package/es/style/css.js +1 -0
  66. package/es/style/index.css +410 -0
  67. package/es/style/index.d.ts +1 -0
  68. package/es/style/index.js +1 -0
  69. package/es/style/index.less +2 -0
  70. package/es/style/mixins/index.less +19 -0
  71. package/es/style/mixins/overlay.less +22 -0
  72. package/es/style/mixins/reset.less +13 -0
  73. package/es/style/themes/default.less +445 -0
  74. package/es/style/themes/index.less +1 -0
  75. package/es/table/base/calculations.d.ts +5 -0
  76. package/es/table/base/calculations.js +364 -0
  77. package/es/table/base/colgroup.d.ts +5 -0
  78. package/es/table/base/colgroup.js +22 -0
  79. package/es/table/base/empty.d.ts +9 -0
  80. package/es/table/base/empty.js +38 -0
  81. package/es/table/base/header.d.ts +5 -0
  82. package/es/table/base/header.js +324 -0
  83. package/es/table/base/helpers/SpanManager.d.ts +9 -0
  84. package/es/table/base/helpers/SpanManager.js +50 -0
  85. package/es/table/base/helpers/TableDOMUtils.d.ts +18 -0
  86. package/es/table/base/helpers/TableDOMUtils.js +104 -0
  87. package/es/table/base/helpers/__test__/SpanManager.test.d.ts +1 -0
  88. package/es/table/base/helpers/__test__/SpanManager.test.js +18 -0
  89. package/es/table/base/helpers/__test__/TableDOMUtils.test.d.ts +1 -0
  90. package/es/table/base/helpers/__test__/TableDOMUtils.test.js +34 -0
  91. package/es/table/base/helpers/__test__/rowHeightManager.test.d.ts +1 -0
  92. package/es/table/base/helpers/__test__/rowHeightManager.test.js +30 -0
  93. package/es/table/base/helpers/__test__/visible-part.test.d.ts +1 -0
  94. package/es/table/base/helpers/__test__/visible-part.test.js +28 -0
  95. package/es/table/base/helpers/rowHeightManager.d.ts +7 -0
  96. package/es/table/base/helpers/rowHeightManager.js +157 -0
  97. package/es/table/base/helpers/visible-part.d.ts +23 -0
  98. package/es/table/base/helpers/visible-part.js +58 -0
  99. package/es/table/base/html-table.d.ts +15 -0
  100. package/es/table/base/html-table.js +132 -0
  101. package/es/table/base/index.d.ts +3 -0
  102. package/es/table/base/index.js +2 -0
  103. package/es/table/base/interfaces.d.ts +54 -0
  104. package/es/table/base/interfaces.js +0 -0
  105. package/es/table/base/loading.d.ts +13 -0
  106. package/es/table/base/loading.js +60 -0
  107. package/es/table/base/styles.d.ts +132 -0
  108. package/es/table/base/styles.js +112 -0
  109. package/es/table/base/table.d.ts +150 -0
  110. package/es/table/base/table.js +733 -0
  111. package/es/table/base/utils.d.ts +36 -0
  112. package/es/table/base/utils.js +193 -0
  113. package/es/table/common-views.d.ts +24 -0
  114. package/es/table/common-views.js +70 -0
  115. package/es/table/index.d.ts +6 -0
  116. package/es/table/index.js +6 -0
  117. package/es/table/interfaces.d.ts +98 -0
  118. package/es/table/interfaces.js +0 -0
  119. package/es/table/internals.d.ts +14 -0
  120. package/es/table/internals.js +56 -0
  121. package/es/table/pipeline/features/__test__/multiSelect.test.d.ts +1 -0
  122. package/es/table/pipeline/features/__test__/multiSelect.test.js +152 -0
  123. package/es/table/pipeline/features/__test__/rowDetail.test.d.ts +1 -0
  124. package/es/table/pipeline/features/__test__/rowDetail.test.js +223 -0
  125. package/es/table/pipeline/features/__test__/rowGrouping.test.d.ts +1 -0
  126. package/es/table/pipeline/features/__test__/rowGrouping.test.js +120 -0
  127. package/es/table/pipeline/features/__test__/singleSelect.test.d.ts +1 -0
  128. package/es/table/pipeline/features/__test__/singleSelect.test.js +191 -0
  129. package/es/table/pipeline/features/__test__/sort.test.d.ts +1 -0
  130. package/es/table/pipeline/features/__test__/sort.test.js +213 -0
  131. package/es/table/pipeline/features/__test__/tips.test.d.ts +1 -0
  132. package/es/table/pipeline/features/__test__/tips.test.js +123 -0
  133. package/es/table/pipeline/features/__test__/treeMode.test.d.ts +1 -0
  134. package/es/table/pipeline/features/__test__/treeMode.test.js +202 -0
  135. package/es/table/pipeline/features/autoFill.d.ts +4 -0
  136. package/es/table/pipeline/features/autoFill.js +63 -0
  137. package/es/table/pipeline/features/autoRowSpan.d.ts +2 -0
  138. package/es/table/pipeline/features/autoRowSpan.js +72 -0
  139. package/es/table/pipeline/features/buildTree.d.ts +2 -0
  140. package/es/table/pipeline/features/buildTree.js +8 -0
  141. package/es/table/pipeline/features/columnDrag.d.ts +6 -0
  142. package/es/table/pipeline/features/columnDrag.js +265 -0
  143. package/es/table/pipeline/features/columnFilter.d.ts +20 -0
  144. package/es/table/pipeline/features/columnFilter.js +173 -0
  145. package/es/table/pipeline/features/columnHover.d.ts +12 -0
  146. package/es/table/pipeline/features/columnHover.js +51 -0
  147. package/es/table/pipeline/features/columnRangeHover.d.ts +15 -0
  148. package/es/table/pipeline/features/columnRangeHover.js +83 -0
  149. package/es/table/pipeline/features/columnResizeWidth.d.ts +21 -0
  150. package/es/table/pipeline/features/columnResizeWidth.js +173 -0
  151. package/es/table/pipeline/features/contextMenu.d.ts +14 -0
  152. package/es/table/pipeline/features/contextMenu.js +370 -0
  153. package/es/table/pipeline/features/filter/DefaultFilterContent.d.ts +4 -0
  154. package/es/table/pipeline/features/filter/DefaultFilterContent.js +91 -0
  155. package/es/table/pipeline/features/filter/Filter.d.ts +17 -0
  156. package/es/table/pipeline/features/filter/Filter.js +111 -0
  157. package/es/table/pipeline/features/filter/FilterPanel.d.ts +20 -0
  158. package/es/table/pipeline/features/filter/FilterPanel.js +81 -0
  159. package/es/table/pipeline/features/filter/__test__/Filter.test.d.ts +1 -0
  160. package/es/table/pipeline/features/filter/__test__/Filter.test.js +29 -0
  161. package/es/table/pipeline/features/filter/index.d.ts +4 -0
  162. package/es/table/pipeline/features/filter/index.js +4 -0
  163. package/es/table/pipeline/features/filter/util.d.ts +10 -0
  164. package/es/table/pipeline/features/filter/util.js +67 -0
  165. package/es/table/pipeline/features/index.d.ts +16 -0
  166. package/es/table/pipeline/features/index.js +16 -0
  167. package/es/table/pipeline/features/multiSelect.d.ts +27 -0
  168. package/es/table/pipeline/features/multiSelect.js +208 -0
  169. package/es/table/pipeline/features/rowDetail.d.ts +35 -0
  170. package/es/table/pipeline/features/rowDetail.js +254 -0
  171. package/es/table/pipeline/features/rowGrouping.d.ts +14 -0
  172. package/es/table/pipeline/features/rowGrouping.js +200 -0
  173. package/es/table/pipeline/features/singleSelect.d.ts +23 -0
  174. package/es/table/pipeline/features/singleSelect.js +122 -0
  175. package/es/table/pipeline/features/sort.d.ts +40 -0
  176. package/es/table/pipeline/features/sort.js +332 -0
  177. package/es/table/pipeline/features/tips.d.ts +2 -0
  178. package/es/table/pipeline/features/tips.js +57 -0
  179. package/es/table/pipeline/features/treeMode.d.ts +37 -0
  180. package/es/table/pipeline/features/treeMode.js +234 -0
  181. package/es/table/pipeline/features/treeSelect.d.ts +38 -0
  182. package/es/table/pipeline/features/treeSelect.js +154 -0
  183. package/es/table/pipeline/index.d.ts +3 -0
  184. package/es/table/pipeline/index.js +3 -0
  185. package/es/table/pipeline/pipeline.d.ts +85 -0
  186. package/es/table/pipeline/pipeline.js +272 -0
  187. package/es/table/pivot/cross-table/buildCrossTable.d.ts +14 -0
  188. package/es/table/pivot/cross-table/buildCrossTable.js +294 -0
  189. package/es/table/pivot/cross-table/constants.d.ts +1 -0
  190. package/es/table/pivot/cross-table/constants.js +1 -0
  191. package/es/table/pivot/cross-table/cross-table.d.ts +18 -0
  192. package/es/table/pivot/cross-table/cross-table.js +55 -0
  193. package/es/table/pivot/cross-table/index.d.ts +4 -0
  194. package/es/table/pivot/cross-table/index.js +3 -0
  195. package/es/table/pivot/cross-table/interfaces.d.ts +29 -0
  196. package/es/table/pivot/cross-table/interfaces.js +0 -0
  197. package/es/table/pivot/cross-table/internals.d.ts +13 -0
  198. package/es/table/pivot/cross-table/internals.js +0 -0
  199. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.d.ts +14 -0
  200. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +219 -0
  201. package/es/table/pivot/cross-tree-table/cross-tree-table.d.ts +38 -0
  202. package/es/table/pivot/cross-tree-table/cross-tree-table.js +127 -0
  203. package/es/table/pivot/cross-tree-table/index.d.ts +2 -0
  204. package/es/table/pivot/cross-tree-table/index.js +2 -0
  205. package/es/table/pivot/pivot-utils/buildDrillTree.d.ts +16 -0
  206. package/es/table/pivot/pivot-utils/buildDrillTree.js +93 -0
  207. package/es/table/pivot/pivot-utils/builders.d.ts +26 -0
  208. package/es/table/pivot/pivot-utils/builders.js +252 -0
  209. package/es/table/pivot/pivot-utils/convert-utils.d.ts +31 -0
  210. package/es/table/pivot/pivot-utils/convert-utils.js +180 -0
  211. package/es/table/pivot/pivot-utils/index.d.ts +5 -0
  212. package/es/table/pivot/pivot-utils/index.js +4 -0
  213. package/es/table/pivot/pivot-utils/interfaces.d.ts +12 -0
  214. package/es/table/pivot/pivot-utils/interfaces.js +0 -0
  215. package/es/table/pivot/pivot-utils/simpleEncode.d.ts +1 -0
  216. package/es/table/pivot/pivot-utils/simpleEncode.js +7 -0
  217. package/es/table/style/css.js +2 -0
  218. package/es/table/style/index.css +0 -0
  219. package/es/table/style/index.d.ts +2 -0
  220. package/es/table/style/index.js +2 -0
  221. package/es/table/style/index.less +1 -0
  222. package/es/table/transforms/autoRowSpan.d.ts +3 -0
  223. package/es/table/transforms/autoRowSpan.js +73 -0
  224. package/es/table/transforms/autoWidth.d.ts +25 -0
  225. package/es/table/transforms/autoWidth.js +160 -0
  226. package/es/table/transforms/buildTree.d.ts +3 -0
  227. package/es/table/transforms/buildTree.js +15 -0
  228. package/es/table/transforms/columnHover.d.ts +17 -0
  229. package/es/table/transforms/columnHover.js +59 -0
  230. package/es/table/transforms/columnRangeHover.d.ts +17 -0
  231. package/es/table/transforms/columnRangeHover.js +94 -0
  232. package/es/table/transforms/columnResize.d.ts +27 -0
  233. package/es/table/transforms/columnResize.js +152 -0
  234. package/es/table/transforms/flatten.d.ts +3 -0
  235. package/es/table/transforms/flatten.js +16 -0
  236. package/es/table/transforms/index.d.ts +12 -0
  237. package/es/table/transforms/index.js +12 -0
  238. package/es/table/transforms/orderField.d.ts +3 -0
  239. package/es/table/transforms/orderField.js +22 -0
  240. package/es/table/transforms/sort.d.ts +43 -0
  241. package/es/table/transforms/sort.js +338 -0
  242. package/es/table/transforms/tips.d.ts +8 -0
  243. package/es/table/transforms/tips.js +54 -0
  244. package/es/table/transforms/treeMode.d.ts +30 -0
  245. package/es/table/transforms/treeMode.js +252 -0
  246. package/es/table/transforms/visible.d.ts +5 -0
  247. package/es/table/transforms/visible.js +19 -0
  248. package/es/table/transforms/warnTransformsDeprecated.d.ts +1 -0
  249. package/es/table/transforms/warnTransformsDeprecated.js +8 -0
  250. package/es/table/use/useResizeObserver.d.ts +2 -0
  251. package/es/table/use/useResizeObserver.js +20 -0
  252. package/es/table/utils/applyTransforms.d.ts +6 -0
  253. package/es/table/utils/applyTransforms.js +15 -0
  254. package/es/table/utils/buildTree.d.ts +36 -0
  255. package/es/table/utils/buildTree.js +119 -0
  256. package/es/table/utils/collectNodes.d.ts +8 -0
  257. package/es/table/utils/collectNodes.js +59 -0
  258. package/es/table/utils/console.d.ts +11 -0
  259. package/es/table/utils/console.js +58 -0
  260. package/es/table/utils/copyToClipboard.d.ts +3 -0
  261. package/es/table/utils/copyToClipboard.js +30 -0
  262. package/es/table/utils/element.d.ts +42 -0
  263. package/es/table/utils/element.js +228 -0
  264. package/es/table/utils/exportTableAsExcel.d.ts +4 -0
  265. package/es/table/utils/exportTableAsExcel.js +188 -0
  266. package/es/table/utils/getTreeDepth.d.ts +3 -0
  267. package/es/table/utils/getTreeDepth.js +41 -0
  268. package/es/table/utils/groupBy.d.ts +1 -0
  269. package/es/table/utils/groupBy.js +37 -0
  270. package/es/table/utils/index.d.ts +18 -0
  271. package/es/table/utils/index.js +18 -0
  272. package/es/table/utils/isGroupColumn.d.ts +2 -0
  273. package/es/table/utils/isGroupColumn.js +7 -0
  274. package/es/table/utils/isLeafNode.d.ts +2 -0
  275. package/es/table/utils/isLeafNode.js +4 -0
  276. package/es/table/utils/layeredFilter.d.ts +2 -0
  277. package/es/table/utils/layeredFilter.js +25 -0
  278. package/es/table/utils/layeredSort.d.ts +5 -0
  279. package/es/table/utils/layeredSort.js +26 -0
  280. package/es/table/utils/makeRecursiveMapper.d.ts +9 -0
  281. package/es/table/utils/makeRecursiveMapper.js +76 -0
  282. package/es/table/utils/mergeCellProps.d.ts +8 -0
  283. package/es/table/utils/mergeCellProps.js +67 -0
  284. package/es/table/utils/others.d.ts +16 -0
  285. package/es/table/utils/others.js +80 -0
  286. package/es/table/utils/proto.d.ts +21 -0
  287. package/es/table/utils/proto.js +106 -0
  288. package/es/table/utils/smartCompare.d.ts +9 -0
  289. package/es/table/utils/smartCompare.js +51 -0
  290. package/es/table/utils/traverseColumn.d.ts +11 -0
  291. package/es/table/utils/traverseColumn.js +88 -0
  292. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.d.ts +22 -0
  293. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +138 -0
  294. package/es/table/utils/tree-data-helpers/TreeDataHelper.d.ts +26 -0
  295. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +337 -0
  296. package/lib/_utils/arrayUtil.d.ts +5 -0
  297. package/lib/_utils/arrayUtil.js +26 -0
  298. package/lib/_utils/devwarning.d.ts +1 -0
  299. package/lib/_utils/devwarning.js +21 -0
  300. package/lib/_utils/formatUtil.d.ts +46 -0
  301. package/lib/_utils/formatUtil.js +358 -0
  302. package/lib/_utils/hooks.d.ts +51 -0
  303. package/lib/_utils/hooks.js +187 -0
  304. package/lib/_utils/index.d.ts +8 -0
  305. package/lib/_utils/index.js +28 -0
  306. package/lib/_utils/numberUtil.d.ts +34 -0
  307. package/lib/_utils/numberUtil.js +202 -0
  308. package/lib/_utils/omit.d.ts +1 -0
  309. package/lib/_utils/omit.js +21 -0
  310. package/lib/_utils/react-children.d.ts +2 -0
  311. package/lib/_utils/react-children.js +20 -0
  312. package/lib/_utils/type.d.ts +12 -0
  313. package/lib/_utils/type.js +27 -0
  314. package/lib/_utils/usePopper.d.ts +29 -0
  315. package/lib/_utils/usePopper.js +574 -0
  316. package/lib/config-provider/ConfigContext.d.ts +22 -0
  317. package/lib/config-provider/ConfigContext.js +19 -0
  318. package/lib/config-provider/compDefaultProps.d.ts +8 -0
  319. package/lib/config-provider/compDefaultProps.js +17 -0
  320. package/lib/config-provider/configProvider.d.ts +11 -0
  321. package/lib/config-provider/configProvider.js +56 -0
  322. package/lib/config-provider/defaultConfig.d.ts +10 -0
  323. package/lib/config-provider/defaultConfig.js +30 -0
  324. package/lib/config-provider/index.d.ts +6 -0
  325. package/lib/config-provider/index.js +37 -0
  326. package/lib/index.d.ts +2 -0
  327. package/lib/index.js +45 -0
  328. package/lib/locale/index.d.ts +3 -0
  329. package/lib/locale/index.js +25 -0
  330. package/lib/locale/locale.d.ts +50 -0
  331. package/lib/locale/locale.js +277 -0
  332. package/lib/locale/zh-CN.d.ts +8 -0
  333. package/lib/locale/zh-CN.js +15 -0
  334. package/lib/style/color/colors.less +2 -0
  335. package/lib/style/components.less +1 -0
  336. package/lib/style/core/index.less +2 -0
  337. package/lib/style/core/motion/other.less +28 -0
  338. package/lib/style/core/motion/slide.less +53 -0
  339. package/lib/style/core/motion.less +2 -0
  340. package/lib/style/core/reset.less +186 -0
  341. package/lib/style/css.js +3 -0
  342. package/lib/style/index.css +410 -0
  343. package/lib/style/index.d.ts +1 -0
  344. package/lib/style/index.js +3 -0
  345. package/lib/style/index.less +2 -0
  346. package/lib/style/mixins/index.less +19 -0
  347. package/lib/style/mixins/overlay.less +22 -0
  348. package/lib/style/mixins/reset.less +13 -0
  349. package/lib/style/themes/default.less +445 -0
  350. package/lib/style/themes/index.less +1 -0
  351. package/lib/table/base/calculations.d.ts +5 -0
  352. package/lib/table/base/calculations.js +385 -0
  353. package/lib/table/base/colgroup.d.ts +5 -0
  354. package/lib/table/base/colgroup.js +33 -0
  355. package/lib/table/base/empty.d.ts +9 -0
  356. package/lib/table/base/empty.js +54 -0
  357. package/lib/table/base/header.d.ts +5 -0
  358. package/lib/table/base/header.js +340 -0
  359. package/lib/table/base/helpers/SpanManager.d.ts +9 -0
  360. package/lib/table/base/helpers/SpanManager.js +59 -0
  361. package/lib/table/base/helpers/TableDOMUtils.d.ts +18 -0
  362. package/lib/table/base/helpers/TableDOMUtils.js +113 -0
  363. package/lib/table/base/helpers/__test__/SpanManager.test.d.ts +1 -0
  364. package/lib/table/base/helpers/__test__/SpanManager.test.js +23 -0
  365. package/lib/table/base/helpers/__test__/TableDOMUtils.test.d.ts +1 -0
  366. package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +41 -0
  367. package/lib/table/base/helpers/__test__/rowHeightManager.test.d.ts +1 -0
  368. package/lib/table/base/helpers/__test__/rowHeightManager.test.js +33 -0
  369. package/lib/table/base/helpers/__test__/visible-part.test.d.ts +1 -0
  370. package/lib/table/base/helpers/__test__/visible-part.test.js +31 -0
  371. package/lib/table/base/helpers/rowHeightManager.d.ts +7 -0
  372. package/lib/table/base/helpers/rowHeightManager.js +170 -0
  373. package/lib/table/base/helpers/visible-part.d.ts +23 -0
  374. package/lib/table/base/helpers/visible-part.js +72 -0
  375. package/lib/table/base/html-table.d.ts +15 -0
  376. package/lib/table/base/html-table.js +149 -0
  377. package/lib/table/base/index.d.ts +3 -0
  378. package/lib/table/base/index.js +21 -0
  379. package/lib/table/base/interfaces.d.ts +54 -0
  380. package/lib/table/base/interfaces.js +0 -0
  381. package/lib/table/base/loading.d.ts +13 -0
  382. package/lib/table/base/loading.js +71 -0
  383. package/lib/table/base/styles.d.ts +132 -0
  384. package/lib/table/base/styles.js +136 -0
  385. package/lib/table/base/table.d.ts +150 -0
  386. package/lib/table/base/table.js +773 -0
  387. package/lib/table/base/utils.d.ts +36 -0
  388. package/lib/table/base/utils.js +234 -0
  389. package/lib/table/common-views.d.ts +24 -0
  390. package/lib/table/common-views.js +90 -0
  391. package/lib/table/index.d.ts +6 -0
  392. package/lib/table/index.js +85 -0
  393. package/lib/table/interfaces.d.ts +98 -0
  394. package/lib/table/interfaces.js +0 -0
  395. package/lib/table/internals.d.ts +14 -0
  396. package/lib/table/internals.js +64 -0
  397. package/lib/table/pipeline/features/__test__/multiSelect.test.d.ts +1 -0
  398. package/lib/table/pipeline/features/__test__/multiSelect.test.js +163 -0
  399. package/lib/table/pipeline/features/__test__/rowDetail.test.d.ts +1 -0
  400. package/lib/table/pipeline/features/__test__/rowDetail.test.js +230 -0
  401. package/lib/table/pipeline/features/__test__/rowGrouping.test.d.ts +1 -0
  402. package/lib/table/pipeline/features/__test__/rowGrouping.test.js +129 -0
  403. package/lib/table/pipeline/features/__test__/singleSelect.test.d.ts +1 -0
  404. package/lib/table/pipeline/features/__test__/singleSelect.test.js +201 -0
  405. package/lib/table/pipeline/features/__test__/sort.test.d.ts +1 -0
  406. package/lib/table/pipeline/features/__test__/sort.test.js +218 -0
  407. package/lib/table/pipeline/features/__test__/tips.test.d.ts +1 -0
  408. package/lib/table/pipeline/features/__test__/tips.test.js +133 -0
  409. package/lib/table/pipeline/features/__test__/treeMode.test.d.ts +1 -0
  410. package/lib/table/pipeline/features/__test__/treeMode.test.js +206 -0
  411. package/lib/table/pipeline/features/autoFill.d.ts +4 -0
  412. package/lib/table/pipeline/features/autoFill.js +80 -0
  413. package/lib/table/pipeline/features/autoRowSpan.d.ts +2 -0
  414. package/lib/table/pipeline/features/autoRowSpan.js +84 -0
  415. package/lib/table/pipeline/features/buildTree.d.ts +2 -0
  416. package/lib/table/pipeline/features/buildTree.js +16 -0
  417. package/lib/table/pipeline/features/columnDrag.d.ts +6 -0
  418. package/lib/table/pipeline/features/columnDrag.js +278 -0
  419. package/lib/table/pipeline/features/columnFilter.d.ts +20 -0
  420. package/lib/table/pipeline/features/columnFilter.js +197 -0
  421. package/lib/table/pipeline/features/columnHover.d.ts +12 -0
  422. package/lib/table/pipeline/features/columnHover.js +62 -0
  423. package/lib/table/pipeline/features/columnRangeHover.d.ts +15 -0
  424. package/lib/table/pipeline/features/columnRangeHover.js +95 -0
  425. package/lib/table/pipeline/features/columnResizeWidth.d.ts +21 -0
  426. package/lib/table/pipeline/features/columnResizeWidth.js +192 -0
  427. package/lib/table/pipeline/features/contextMenu.d.ts +14 -0
  428. package/lib/table/pipeline/features/contextMenu.js +397 -0
  429. package/lib/table/pipeline/features/filter/DefaultFilterContent.d.ts +4 -0
  430. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +112 -0
  431. package/lib/table/pipeline/features/filter/Filter.d.ts +17 -0
  432. package/lib/table/pipeline/features/filter/Filter.js +129 -0
  433. package/lib/table/pipeline/features/filter/FilterPanel.d.ts +20 -0
  434. package/lib/table/pipeline/features/filter/FilterPanel.js +98 -0
  435. package/lib/table/pipeline/features/filter/__test__/Filter.test.d.ts +1 -0
  436. package/lib/table/pipeline/features/filter/__test__/Filter.test.js +36 -0
  437. package/lib/table/pipeline/features/filter/index.d.ts +4 -0
  438. package/lib/table/pipeline/features/filter/index.js +39 -0
  439. package/lib/table/pipeline/features/filter/util.d.ts +10 -0
  440. package/lib/table/pipeline/features/filter/util.js +77 -0
  441. package/lib/table/pipeline/features/index.d.ts +16 -0
  442. package/lib/table/pipeline/features/index.js +141 -0
  443. package/lib/table/pipeline/features/multiSelect.d.ts +27 -0
  444. package/lib/table/pipeline/features/multiSelect.js +227 -0
  445. package/lib/table/pipeline/features/rowDetail.d.ts +35 -0
  446. package/lib/table/pipeline/features/rowDetail.js +283 -0
  447. package/lib/table/pipeline/features/rowGrouping.d.ts +14 -0
  448. package/lib/table/pipeline/features/rowGrouping.js +227 -0
  449. package/lib/table/pipeline/features/singleSelect.d.ts +23 -0
  450. package/lib/table/pipeline/features/singleSelect.js +138 -0
  451. package/lib/table/pipeline/features/sort.d.ts +40 -0
  452. package/lib/table/pipeline/features/sort.js +361 -0
  453. package/lib/table/pipeline/features/tips.d.ts +2 -0
  454. package/lib/table/pipeline/features/tips.js +73 -0
  455. package/lib/table/pipeline/features/treeMode.d.ts +37 -0
  456. package/lib/table/pipeline/features/treeMode.js +266 -0
  457. package/lib/table/pipeline/features/treeSelect.d.ts +38 -0
  458. package/lib/table/pipeline/features/treeSelect.js +169 -0
  459. package/lib/table/pipeline/index.d.ts +3 -0
  460. package/lib/table/pipeline/index.js +26 -0
  461. package/lib/table/pipeline/pipeline.d.ts +85 -0
  462. package/lib/table/pipeline/pipeline.js +291 -0
  463. package/lib/table/pivot/cross-table/buildCrossTable.d.ts +14 -0
  464. package/lib/table/pivot/cross-table/buildCrossTable.js +313 -0
  465. package/lib/table/pivot/cross-table/constants.d.ts +1 -0
  466. package/lib/table/pivot/cross-table/constants.js +8 -0
  467. package/lib/table/pivot/cross-table/cross-table.d.ts +18 -0
  468. package/lib/table/pivot/cross-table/cross-table.js +71 -0
  469. package/lib/table/pivot/cross-table/index.d.ts +4 -0
  470. package/lib/table/pivot/cross-table/index.js +31 -0
  471. package/lib/table/pivot/cross-table/interfaces.d.ts +29 -0
  472. package/lib/table/pivot/cross-table/interfaces.js +0 -0
  473. package/lib/table/pivot/cross-table/internals.d.ts +13 -0
  474. package/lib/table/pivot/cross-table/internals.js +0 -0
  475. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.d.ts +14 -0
  476. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +240 -0
  477. package/lib/table/pivot/cross-tree-table/cross-tree-table.d.ts +38 -0
  478. package/lib/table/pivot/cross-tree-table/cross-tree-table.js +144 -0
  479. package/lib/table/pivot/cross-tree-table/index.d.ts +2 -0
  480. package/lib/table/pivot/cross-tree-table/index.js +23 -0
  481. package/lib/table/pivot/pivot-utils/buildDrillTree.d.ts +16 -0
  482. package/lib/table/pivot/pivot-utils/buildDrillTree.js +106 -0
  483. package/lib/table/pivot/pivot-utils/builders.d.ts +26 -0
  484. package/lib/table/pivot/pivot-utils/builders.js +272 -0
  485. package/lib/table/pivot/pivot-utils/convert-utils.d.ts +31 -0
  486. package/lib/table/pivot/pivot-utils/convert-utils.js +204 -0
  487. package/lib/table/pivot/pivot-utils/index.d.ts +5 -0
  488. package/lib/table/pivot/pivot-utils/index.js +59 -0
  489. package/lib/table/pivot/pivot-utils/interfaces.d.ts +12 -0
  490. package/lib/table/pivot/pivot-utils/interfaces.js +0 -0
  491. package/lib/table/pivot/pivot-utils/simpleEncode.d.ts +1 -0
  492. package/lib/table/pivot/pivot-utils/simpleEncode.js +14 -0
  493. package/lib/table/style/css.js +5 -0
  494. package/lib/table/style/index.css +0 -0
  495. package/lib/table/style/index.d.ts +2 -0
  496. package/lib/table/style/index.js +5 -0
  497. package/lib/table/style/index.less +1 -0
  498. package/lib/table/transforms/autoRowSpan.d.ts +3 -0
  499. package/lib/table/transforms/autoRowSpan.js +86 -0
  500. package/lib/table/transforms/autoWidth.d.ts +25 -0
  501. package/lib/table/transforms/autoWidth.js +187 -0
  502. package/lib/table/transforms/buildTree.d.ts +3 -0
  503. package/lib/table/transforms/buildTree.js +23 -0
  504. package/lib/table/transforms/columnHover.d.ts +17 -0
  505. package/lib/table/transforms/columnHover.js +74 -0
  506. package/lib/table/transforms/columnRangeHover.d.ts +17 -0
  507. package/lib/table/transforms/columnRangeHover.js +110 -0
  508. package/lib/table/transforms/columnResize.d.ts +27 -0
  509. package/lib/table/transforms/columnResize.js +176 -0
  510. package/lib/table/transforms/flatten.d.ts +3 -0
  511. package/lib/table/transforms/flatten.js +24 -0
  512. package/lib/table/transforms/index.d.ts +12 -0
  513. package/lib/table/transforms/index.js +131 -0
  514. package/lib/table/transforms/orderField.d.ts +3 -0
  515. package/lib/table/transforms/orderField.js +33 -0
  516. package/lib/table/transforms/sort.d.ts +43 -0
  517. package/lib/table/transforms/sort.js +369 -0
  518. package/lib/table/transforms/tips.d.ts +8 -0
  519. package/lib/table/transforms/tips.js +71 -0
  520. package/lib/table/transforms/treeMode.d.ts +30 -0
  521. package/lib/table/transforms/treeMode.js +286 -0
  522. package/lib/table/transforms/visible.d.ts +5 -0
  523. package/lib/table/transforms/visible.js +31 -0
  524. package/lib/table/transforms/warnTransformsDeprecated.d.ts +1 -0
  525. package/lib/table/transforms/warnTransformsDeprecated.js +19 -0
  526. package/lib/table/use/useResizeObserver.d.ts +2 -0
  527. package/lib/table/use/useResizeObserver.js +32 -0
  528. package/lib/table/utils/applyTransforms.d.ts +6 -0
  529. package/lib/table/utils/applyTransforms.js +24 -0
  530. package/lib/table/utils/buildTree.d.ts +36 -0
  531. package/lib/table/utils/buildTree.js +140 -0
  532. package/lib/table/utils/collectNodes.d.ts +8 -0
  533. package/lib/table/utils/collectNodes.js +72 -0
  534. package/lib/table/utils/console.d.ts +11 -0
  535. package/lib/table/utils/console.js +68 -0
  536. package/lib/table/utils/copyToClipboard.d.ts +3 -0
  537. package/lib/table/utils/copyToClipboard.js +40 -0
  538. package/lib/table/utils/element.d.ts +42 -0
  539. package/lib/table/utils/element.js +243 -0
  540. package/lib/table/utils/exportTableAsExcel.d.ts +4 -0
  541. package/lib/table/utils/exportTableAsExcel.js +205 -0
  542. package/lib/table/utils/getTreeDepth.d.ts +3 -0
  543. package/lib/table/utils/getTreeDepth.js +54 -0
  544. package/lib/table/utils/groupBy.d.ts +1 -0
  545. package/lib/table/utils/groupBy.js +48 -0
  546. package/lib/table/utils/index.d.ts +18 -0
  547. package/lib/table/utils/index.js +187 -0
  548. package/lib/table/utils/isGroupColumn.d.ts +2 -0
  549. package/lib/table/utils/isGroupColumn.js +17 -0
  550. package/lib/table/utils/isLeafNode.d.ts +2 -0
  551. package/lib/table/utils/isLeafNode.js +11 -0
  552. package/lib/table/utils/layeredFilter.d.ts +2 -0
  553. package/lib/table/utils/layeredFilter.js +38 -0
  554. package/lib/table/utils/layeredSort.d.ts +5 -0
  555. package/lib/table/utils/layeredSort.js +37 -0
  556. package/lib/table/utils/makeRecursiveMapper.d.ts +9 -0
  557. package/lib/table/utils/makeRecursiveMapper.js +94 -0
  558. package/lib/table/utils/mergeCellProps.d.ts +8 -0
  559. package/lib/table/utils/mergeCellProps.js +78 -0
  560. package/lib/table/utils/others.d.ts +16 -0
  561. package/lib/table/utils/others.js +108 -0
  562. package/lib/table/utils/proto.d.ts +21 -0
  563. package/lib/table/utils/proto.js +117 -0
  564. package/lib/table/utils/smartCompare.d.ts +9 -0
  565. package/lib/table/utils/smartCompare.js +58 -0
  566. package/lib/table/utils/traverseColumn.d.ts +11 -0
  567. package/lib/table/utils/traverseColumn.js +103 -0
  568. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.d.ts +22 -0
  569. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +154 -0
  570. package/lib/table/utils/tree-data-helpers/TreeDataHelper.d.ts +26 -0
  571. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +358 -0
  572. package/package.json +213 -0
@@ -0,0 +1,773 @@
1
+ "use strict";
2
+
3
+ var _Reflect$construct = require("@babel/runtime-corejs3/core-js-stable/reflect/construct");
4
+
5
+ var _sliceInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/slice");
6
+
7
+ var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from");
8
+
9
+ var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
10
+
11
+ var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method");
12
+
13
+ var _getIterator = require("@babel/runtime-corejs3/core-js/get-iterator");
14
+
15
+ var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard");
16
+
17
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
18
+
19
+ Object.defineProperty(exports, "__esModule", {
20
+ value: true
21
+ });
22
+ exports.BaseTable = void 0;
23
+
24
+ var _flat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flat"));
25
+
26
+ var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
27
+
28
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
29
+
30
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
31
+
32
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
33
+
34
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
35
+
36
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
37
+
38
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
39
+
40
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn"));
41
+
42
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
43
+
44
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
45
+
46
+ var _classnames = _interopRequireDefault(require("classnames"));
47
+
48
+ var _react = _interopRequireDefault(require("react"));
49
+
50
+ var _rxjs = require("rxjs");
51
+
52
+ var op = _interopRequireWildcard(require("rxjs/operators"));
53
+
54
+ var _calculations = require("./calculations");
55
+
56
+ var _empty = require("./empty");
57
+
58
+ var _header = _interopRequireDefault(require("./header"));
59
+
60
+ var _rowHeightManager = require("./helpers/rowHeightManager");
61
+
62
+ var _TableDOMUtils = require("./helpers/TableDOMUtils");
63
+
64
+ var _visiblePart = require("./helpers/visible-part");
65
+
66
+ var _htmlTable = require("./html-table");
67
+
68
+ var _loading = _interopRequireDefault(require("./loading"));
69
+
70
+ var _styles = require("./styles");
71
+
72
+ var _utils = require("./utils");
73
+
74
+ var _cssVarsPonyfill = _interopRequireDefault(require("css-vars-ponyfill"));
75
+
76
+ var _utils2 = require("../utils");
77
+
78
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof _Symbol === "undefined" || _getIteratorMethod(o) == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = _getIterator(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
79
+
80
+ function _unsupportedIterableToArray(o, minLen) { var _context2; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty2(_context2 = Object.prototype.toString.call(o)).call(_context2, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
81
+
82
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
83
+
84
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
85
+
86
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
87
+
88
+ var cssPolifill = function cssPolifill(_ref) {
89
+ var variables = _ref.variables,
90
+ enableCSSVariables = _ref.enableCSSVariables;
91
+
92
+ // const style = document.createElement('style')
93
+ // style.type = 'text/css'
94
+ // style.innerHTML = '.aaa{ --color: red; }'
95
+ // document.getElementsByTagName('head').item(0).appendChild(style)
96
+ // const variableNames = variableConst.match(/--.*?(?=:)/g)
97
+ // variables = variableNames.map((name) => rootElement.style[name])
98
+ if (enableCSSVariables === false) {
99
+ return;
100
+ }
101
+
102
+ var t0 = performance.now();
103
+ (0, _cssVarsPonyfill.default)({
104
+ // exclude: 'link[href*="semantic-ui"]',
105
+ // onlyLegacy: false,
106
+ // rootElement: rootElement,
107
+ include: 'style[data-styled]',
108
+ variables: (0, _extends2.default)({}, _styles.defaultCSSVariables, variables),
109
+ watch: true,
110
+ silent: true,
111
+ onComplete: function onComplete() {
112
+ var t1 = performance.now();
113
+ var time = ((t1 - t0) / 1000).toFixed(2);
114
+
115
+ _utils2.console.log("css-vars-ponyfill completed in ".concat(time, " seconds"));
116
+ }
117
+ });
118
+ };
119
+
120
+ var propsDotEmptyContentDeprecatedWarned = false;
121
+
122
+ function warnPropsDotEmptyContentIsDeprecated() {
123
+ if (!propsDotEmptyContentDeprecatedWarned) {
124
+ propsDotEmptyContentDeprecatedWarned = true;
125
+
126
+ _utils2.console.warn('BaseTable props.emptyContent 已经过时,请使用 props.components.EmptyContent 来自定义数据为空时的表格表现');
127
+ }
128
+ }
129
+
130
+ var BaseTable = /*#__PURE__*/function (_React$Component) {
131
+ (0, _inherits2.default)(BaseTable, _React$Component);
132
+
133
+ var _super = _createSuper(BaseTable);
134
+
135
+ function BaseTable(props) {
136
+ var _this;
137
+
138
+ (0, _classCallCheck2.default)(this, BaseTable);
139
+ _this = _super.call(this, props);
140
+ _this.rowHeightManager = (0, _rowHeightManager.makeRowHeightManager)(_this.props.dataSource.length, _this.props.estimatedRowHeight);
141
+ _this.artTableWrapperRef = /*#__PURE__*/_react.default.createRef();
142
+ _this.rootSubscription = new _rxjs.Subscription();
143
+ _this.hasScrollY = false;
144
+ _this.resizeSubject = new _rxjs.Subject();
145
+ _this.state = {
146
+ hasScroll: true,
147
+ hasScrollY: true,
148
+ needRenderLock: true,
149
+ offsetY: 0,
150
+ offsetX: 0,
151
+ // 因为 ResizeObserver 在一开始总是会调用一次所提供的回调函数
152
+ // 故这里为 maxRenderHeight/maxRenderWidth 设置一个默认值即可(因为这两个默认值很快就会被覆盖)
153
+ // https://stackoverflow.com/questions/60026223/does-resizeobserver-invokes-initially-on-page-load
154
+ maxRenderHeight: 600,
155
+ maxRenderWidth: 800
156
+ };
157
+ return _this;
158
+ }
159
+ /** @deprecated BaseTable.getDoms() 已经过时,请勿调用 */
160
+
161
+
162
+ (0, _createClass2.default)(BaseTable, [{
163
+ key: "getDoms",
164
+ value: function getDoms() {
165
+ _utils2.console.warn('[kd-table] BaseTable.getDoms() 已经过时');
166
+
167
+ return this.domHelper;
168
+ }
169
+ /** 自定义滚动条宽度为table宽度,使滚动条滑块宽度相同 */
170
+
171
+ }, {
172
+ key: "updateStickyScroll",
173
+ value: function updateStickyScroll() {
174
+ var _a, _b;
175
+
176
+ var _this$domHelper = this.domHelper,
177
+ stickyScroll = _this$domHelper.stickyScroll,
178
+ artTable = _this$domHelper.artTable,
179
+ stickyScrollItem = _this$domHelper.stickyScrollItem;
180
+ var _lastHasScrollY = this.hasScrollY;
181
+
182
+ if (!artTable) {
183
+ return;
184
+ }
185
+
186
+ var tableBodyHtmlTable = this.domHelper.getTableBodyHtmlTable();
187
+ var innerTableWidth = tableBodyHtmlTable.offsetWidth;
188
+ var artTableWidth = artTable.offsetWidth;
189
+ var stickyScrollHeightProp = this.props.stickyScrollHeight;
190
+ var stickyScrollHeight = stickyScrollHeightProp === 'auto' ? (0, _utils.getScrollbarSize)().height : stickyScrollHeightProp; // stickyScroll.style.marginTop = `-${stickyScrollHeight + 1}px`
191
+ // 设置滚动条高度
192
+
193
+ stickyScroll.style.height = "".concat(stickyScrollHeight, "px");
194
+
195
+ if (artTableWidth >= innerTableWidth) {
196
+ if (this.state.hasScroll) {
197
+ this.setState({
198
+ hasScroll: false
199
+ });
200
+ }
201
+ } else {
202
+ if (!this.state.hasScroll && stickyScrollHeight > 5) {
203
+ // 考虑下mac下面隐藏滚动条的情况
204
+ this.setState({
205
+ hasScroll: true
206
+ });
207
+ }
208
+ }
209
+
210
+ if (this.domHelper.tableElement.offsetHeight > this.domHelper.tableBody.offsetHeight) {
211
+ // if (!this.state.hasScroll) {
212
+ // this.setState({
213
+ // hasScrollY: true
214
+ // })
215
+ // }
216
+ this.hasScrollY = true;
217
+ } else {
218
+ stickyScroll.style.marginRight = "".concat(stickyScrollHeight, "px"); // this.setState({
219
+ // hasScrollY: false
220
+ // })
221
+
222
+ this.hasScrollY = false;
223
+ }
224
+
225
+ if (_lastHasScrollY !== this.hasScrollY) {
226
+ (_b = (_a = this.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, this.domHelper.tableBody.clientWidth);
227
+ } // 设置子节点宽度
228
+
229
+
230
+ stickyScrollItem.style.width = "".concat(innerTableWidth, "px");
231
+ }
232
+ }, {
233
+ key: "renderTableHeader",
234
+ value: function renderTableHeader(info) {
235
+ var _this$props = this.props,
236
+ stickyTop = _this$props.stickyTop,
237
+ hasHeader = _this$props.hasHeader; // console.log('render header')
238
+
239
+ return /*#__PURE__*/_react.default.createElement("div", {
240
+ className: (0, _classnames.default)(_styles.Classes.tableHeader, 'no-scrollbar'),
241
+ style: {
242
+ top: stickyTop === 0 ? undefined : stickyTop,
243
+ display: hasHeader ? undefined : 'none'
244
+ }
245
+ }, /*#__PURE__*/_react.default.createElement(_header.default, {
246
+ info: info
247
+ }));
248
+ }
249
+ }, {
250
+ key: "updateOffsetX",
251
+ value: function updateOffsetX(nextOffsetX) {
252
+ if (this.lastInfo.useVirtual.horizontal) {
253
+ if (Math.abs(nextOffsetX - this.state.offsetX) >= _utils.OVERSCAN_SIZE / 2) {
254
+ this.setState({
255
+ offsetX: nextOffsetX
256
+ });
257
+ }
258
+ }
259
+ }
260
+ }, {
261
+ key: "syncHorizontalScrollFromTableBody",
262
+ value: function syncHorizontalScrollFromTableBody() {
263
+ this.syncHorizontalScroll(this.domHelper.virtual.scrollLeft);
264
+ }
265
+ /** 同步横向滚动偏移量 */
266
+
267
+ }, {
268
+ key: "syncHorizontalScroll",
269
+ value: function syncHorizontalScroll(x) {
270
+ this.updateOffsetX(x);
271
+ var flat = (0, _flat.default)(this.lastInfo);
272
+ var leftLockShadow = this.domHelper.getLeftLockShadow();
273
+
274
+ if (leftLockShadow) {
275
+ var shouldShowLeftLockShadow = flat.left.length > 0 && this.state.needRenderLock && x > 0;
276
+
277
+ if (shouldShowLeftLockShadow) {
278
+ leftLockShadow.classList.add('show-shadow');
279
+ } else {
280
+ leftLockShadow.classList.remove('show-shadow');
281
+ }
282
+ }
283
+
284
+ var rightLockShadow = this.domHelper.getRightLockShadow();
285
+
286
+ if (rightLockShadow) {
287
+ var shouldShowRightLockShadow = flat.right.length > 0 && this.state.needRenderLock && x < this.domHelper.virtual.scrollWidth - this.domHelper.virtual.clientWidth;
288
+
289
+ if (shouldShowRightLockShadow) {
290
+ rightLockShadow.classList.add('show-shadow');
291
+ } else {
292
+ rightLockShadow.classList.remove('show-shadow');
293
+ }
294
+ }
295
+ }
296
+ }, {
297
+ key: "getVerticalRenderRange",
298
+ value: function getVerticalRenderRange(useVirtual) {
299
+ var dataSource = this.props.dataSource;
300
+ var _this$state = this.state,
301
+ offsetY = _this$state.offsetY,
302
+ maxRenderHeight = _this$state.maxRenderHeight;
303
+ var rowCount = dataSource.length;
304
+
305
+ if (useVirtual.vertical) {
306
+ return this.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, rowCount);
307
+ } else {
308
+ return (0, _rowHeightManager.getFullRenderRange)(rowCount);
309
+ }
310
+ }
311
+ }, {
312
+ key: "renderTableBody",
313
+ value: function renderTableBody(info) {
314
+ // console.log('render body')
315
+ var _this$props2 = this.props,
316
+ dataSource = _this$props2.dataSource,
317
+ getRowProps = _this$props2.getRowProps,
318
+ primaryKey = _this$props2.primaryKey,
319
+ isLoading = _this$props2.isLoading,
320
+ emptyCellHeight = _this$props2.emptyCellHeight,
321
+ footerDataSource = _this$props2.footerDataSource;
322
+ var tableBodyClassName = (0, _classnames.default)(_styles.Classes.tableBody, _styles.Classes.horizontalScrollContainer);
323
+
324
+ if (dataSource.length === 0) {
325
+ var _this$props3 = this.props,
326
+ components = _this$props3.components,
327
+ emptyContent = _this$props3.emptyContent;
328
+ var EmptyContent = components.EmptyContent;
329
+
330
+ if (EmptyContent == null && emptyContent != null) {
331
+ warnPropsDotEmptyContentIsDeprecated();
332
+
333
+ EmptyContent = function EmptyContent() {
334
+ return emptyContent;
335
+ };
336
+ }
337
+
338
+ return /*#__PURE__*/_react.default.createElement("div", {
339
+ className: (0, _classnames.default)(tableBodyClassName, 'empty')
340
+ }, /*#__PURE__*/_react.default.createElement("div", {
341
+ className: _styles.Classes.virtual
342
+ }, /*#__PURE__*/_react.default.createElement(_empty.EmptyHtmlTable, {
343
+ descriptors: info.visible,
344
+ isLoading: isLoading,
345
+ EmptyContent: EmptyContent,
346
+ emptyCellHeight: emptyCellHeight
347
+ })));
348
+ }
349
+
350
+ var _info$verticalRenderR = info.verticalRenderRange,
351
+ topIndex = _info$verticalRenderR.topIndex,
352
+ bottomBlank = _info$verticalRenderR.bottomBlank,
353
+ topBlank = _info$verticalRenderR.topBlank,
354
+ bottomIndex = _info$verticalRenderR.bottomIndex;
355
+ return /*#__PURE__*/_react.default.createElement("div", {
356
+ className: tableBodyClassName
357
+ }, /*#__PURE__*/_react.default.createElement("div", {
358
+ className: _styles.Classes.virtual
359
+ }, topBlank > 0 && /*#__PURE__*/_react.default.createElement("div", {
360
+ key: "top-blank",
361
+ className: (0, _classnames.default)(_styles.Classes.virtualBlank, 'top'),
362
+ style: {
363
+ height: topBlank
364
+ }
365
+ }), /*#__PURE__*/_react.default.createElement(_htmlTable.HtmlTable, {
366
+ tbodyHtmlTag: "tbody",
367
+ getRowProps: getRowProps,
368
+ primaryKey: primaryKey,
369
+ data: (0, _slice.default)(dataSource).call(dataSource, topIndex, bottomIndex),
370
+ horizontalRenderInfo: info,
371
+ verticalRenderInfo: {
372
+ first: 0,
373
+ offset: topIndex,
374
+ limit: bottomIndex,
375
+ last: dataSource.length - 1
376
+ }
377
+ }), bottomBlank > 0 && /*#__PURE__*/_react.default.createElement("div", {
378
+ key: "bottom-blank",
379
+ className: (0, _classnames.default)(_styles.Classes.virtualBlank, 'bottom'),
380
+ style: {
381
+ height: bottomBlank
382
+ }
383
+ })));
384
+ }
385
+ }, {
386
+ key: "renderTableFooter",
387
+ value: function renderTableFooter(info) {
388
+ // console.log('render footer')
389
+ var _this$props4 = this.props,
390
+ _this$props4$footerDa = _this$props4.footerDataSource,
391
+ footerDataSource = _this$props4$footerDa === void 0 ? [] : _this$props4$footerDa,
392
+ getRowProps = _this$props4.getRowProps,
393
+ primaryKey = _this$props4.primaryKey,
394
+ stickyBottom = _this$props4.stickyBottom;
395
+ return /*#__PURE__*/_react.default.createElement("div", {
396
+ className: (0, _classnames.default)(_styles.Classes.tableFooter, _styles.Classes.horizontalScrollContainer),
397
+ style: {
398
+ bottom: stickyBottom === 0 ? undefined : stickyBottom
399
+ }
400
+ }, /*#__PURE__*/_react.default.createElement(_htmlTable.HtmlTable, {
401
+ tbodyHtmlTag: "tfoot",
402
+ data: footerDataSource,
403
+ horizontalRenderInfo: info,
404
+ getRowProps: getRowProps,
405
+ primaryKey: primaryKey,
406
+ verticalRenderInfo: {
407
+ offset: 0,
408
+ first: 0,
409
+ last: footerDataSource.length - 1,
410
+ limit: Infinity
411
+ }
412
+ }));
413
+ }
414
+ }, {
415
+ key: "renderLockShadows",
416
+ value: function renderLockShadows(info) {
417
+ // console.log('render LockShadows')
418
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
419
+ className: _styles.Classes.lockShadowMask,
420
+ style: {
421
+ left: 0,
422
+ width: info.leftLockTotalWidth + _styles.LOCK_SHADOW_PADDING
423
+ }
424
+ }, /*#__PURE__*/_react.default.createElement("div", {
425
+ className: (0, _classnames.default)(_styles.Classes.lockShadow, _styles.Classes.leftLockShadow)
426
+ })), /*#__PURE__*/_react.default.createElement("div", {
427
+ className: _styles.Classes.lockShadowMask,
428
+ style: {
429
+ right: 0,
430
+ width: info.rightLockTotalWidth + _styles.LOCK_SHADOW_PADDING
431
+ }
432
+ }, /*#__PURE__*/_react.default.createElement("div", {
433
+ className: (0, _classnames.default)(_styles.Classes.lockShadow, _styles.Classes.rightLockShadow)
434
+ })));
435
+ }
436
+ }, {
437
+ key: "renderStickyScroll",
438
+ value: function renderStickyScroll(info) {
439
+ // console.log('render stickyscroll')
440
+ var _this$props5 = this.props,
441
+ hasStickyScroll = _this$props5.hasStickyScroll,
442
+ stickyBottom = _this$props5.stickyBottom;
443
+ var hasScroll = this.state.hasScroll;
444
+ return /*#__PURE__*/_react.default.createElement("div", {
445
+ className: (0, _classnames.default)(_styles.Classes.stickyScroll, _styles.Classes.horizontalScrollContainer),
446
+ style: {
447
+ display: hasStickyScroll && hasScroll ? 'block' : 'none',
448
+ bottom: stickyBottom
449
+ }
450
+ }, /*#__PURE__*/_react.default.createElement("div", {
451
+ className: _styles.Classes.stickyScrollItem
452
+ }));
453
+ }
454
+ }, {
455
+ key: "render",
456
+ value: function render() {
457
+ // console.log('render table')
458
+ var info = (0, _calculations.calculateRenderInfo)(this);
459
+ this.lastInfo = info;
460
+ var _this$props6 = this.props,
461
+ dataSource = _this$props6.dataSource,
462
+ className = _this$props6.className,
463
+ style = _this$props6.style,
464
+ hasHeader = _this$props6.hasHeader,
465
+ useOuterBorder = _this$props6.useOuterBorder,
466
+ isStickyHead = _this$props6.isStickyHead,
467
+ isStickyHeader = _this$props6.isStickyHeader,
468
+ isStickyFooter = _this$props6.isStickyFooter,
469
+ isLoading = _this$props6.isLoading,
470
+ getTableProps = _this$props6.getTableProps,
471
+ footerDataSource = _this$props6.footerDataSource,
472
+ components = _this$props6.components;
473
+ var artTableWrapperClassName = (0, _classnames.default)(_styles.Classes.artTableWrapper, {
474
+ 'use-outer-border': useOuterBorder,
475
+ empty: dataSource.length === 0,
476
+ lock: info.hasLockColumn,
477
+ 'has-header': hasHeader,
478
+ 'sticky-header': isStickyHeader !== null && isStickyHeader !== void 0 ? isStickyHeader : isStickyHead,
479
+ 'has-footer': footerDataSource.length > 0,
480
+ 'sticky-footer': isStickyFooter
481
+ }, className);
482
+ var artTableWrapperProps = (0, _defineProperty2.default)({
483
+ className: artTableWrapperClassName,
484
+ style: style
485
+ }, _utils.STYLED_REF_PROP, this.artTableWrapperRef);
486
+ return /*#__PURE__*/_react.default.createElement(_styles.StyledArtTableWrapper, (0, _extends2.default)({}, artTableWrapperProps), /*#__PURE__*/_react.default.createElement(_loading.default, {
487
+ visible: isLoading,
488
+ LoadingIcon: components.LoadingIcon,
489
+ LoadingContentWrapper: components.LoadingContentWrapper
490
+ }, /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
491
+ className: _styles.Classes.artTable
492
+ }, getTableProps()), this.renderTableHeader(info), this.renderTableBody(info), this.renderTableFooter(info), this.renderLockShadows(info)), this.renderStickyScroll(info)));
493
+ }
494
+ }, {
495
+ key: "componentDidMount",
496
+ value: function componentDidMount() {
497
+ var _a, _b; // console.log('did mount start')
498
+ // console.log('update dom helper start')
499
+
500
+
501
+ this.updateDOMHelper(); // console.log('update dom helper end')
502
+
503
+ this.props$ = new _rxjs.BehaviorSubject(this.props);
504
+ this.initSubscriptions();
505
+ this.didMountOrUpdate(); // console.log('did mount end')
506
+
507
+ var _this$props7 = this.props,
508
+ cssVariables = _this$props7.cssVariables,
509
+ enableCSSVariables = _this$props7.enableCSSVariables;
510
+ cssPolifill({
511
+ variables: cssVariables || {},
512
+ enableCSSVariables: enableCSSVariables
513
+ });
514
+ (_b = (_a = this.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, this.domHelper.tableBody.clientWidth);
515
+ }
516
+ }, {
517
+ key: "componentDidUpdate",
518
+ value: function componentDidUpdate(prevProps, prevState) {
519
+ // console.log('did update start')
520
+ this.updateDOMHelper();
521
+ this.props$.next(this.props);
522
+ this.didMountOrUpdate(prevProps, prevState); // console.log('did update end')
523
+ }
524
+ }, {
525
+ key: "didMountOrUpdate",
526
+ value: function didMountOrUpdate(prevProps, prevState) {
527
+ this.syncHorizontalScrollFromTableBody();
528
+ this.updateStickyScroll();
529
+ this.adjustNeedRenderLock();
530
+ this.updateRowHeightManager();
531
+ this.updateScrollLeftWhenLayoutChanged(prevProps, prevState);
532
+ }
533
+ }, {
534
+ key: "updateScrollLeftWhenLayoutChanged",
535
+ value: function updateScrollLeftWhenLayoutChanged(prevProps, prevState) {
536
+ if (prevState != null) {
537
+ if (!prevState.hasScroll && this.state.hasScroll) {
538
+ this.domHelper.stickyScroll.scrollLeft = 0;
539
+ }
540
+ }
541
+
542
+ if (prevProps != null) {
543
+ var prevHasFooter = prevProps.footerDataSource.length > 0;
544
+ var currentHasFooter = this.props.footerDataSource.length > 0;
545
+
546
+ if (!prevHasFooter && currentHasFooter) {
547
+ this.domHelper.tableFooter.scrollLeft = this.domHelper.tableBody.scrollLeft;
548
+ }
549
+ }
550
+ }
551
+ }, {
552
+ key: "initSubscriptions",
553
+ value: function initSubscriptions() {
554
+ var _this2 = this;
555
+
556
+ var _this$domHelper2 = this.domHelper,
557
+ tableHeader = _this$domHelper2.tableHeader,
558
+ virtual = _this$domHelper2.virtual,
559
+ tableFooter = _this$domHelper2.tableFooter,
560
+ stickyScroll = _this$domHelper2.stickyScroll;
561
+ this.rootSubscription.add(_utils.throttledWindowResize$.subscribe(function () {
562
+ _this2.updateStickyScroll();
563
+
564
+ _this2.adjustNeedRenderLock();
565
+ }));
566
+ this.resizeSubject.pipe(op.debounceTime(100)).subscribe(function () {
567
+ var _a, _b;
568
+
569
+ (_b = (_a = _this2.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, _this2.domHelper.tableBody.clientWidth);
570
+ });
571
+
572
+ var handleTableWrapperResize = function handleTableWrapperResize() {
573
+ _this2.resizeSubject.next();
574
+ };
575
+
576
+ this.resizeObserver = (0, _utils.addResizeObserver)(this.domHelper.artTableWrapper, handleTableWrapperResize); // 滚动同步
577
+
578
+ this.rootSubscription.add((0, _utils.syncScrollLeft)([tableHeader, virtual, tableFooter, stickyScroll], function (scrollLeft) {
579
+ _this2.syncHorizontalScroll(scrollLeft);
580
+ })); // 表格所处的 flowRoot / BFC
581
+
582
+ var resolvedFlowRoot$ = this.props$.pipe(op.map(function (props) {
583
+ return props.flowRoot;
584
+ }), op.switchMap(function (flowRoot) {
585
+ var wrapper = _this2.domHelper.tableBody;
586
+
587
+ if (flowRoot === 'auto') {
588
+ var computedStyle = getComputedStyle(wrapper);
589
+ return (0, _rxjs.of)(computedStyle.overflowY !== 'visible' ? wrapper : window);
590
+ } else if (flowRoot === 'self') {
591
+ return (0, _rxjs.of)(wrapper);
592
+ } else {
593
+ if (typeof flowRoot === 'function') {
594
+ // 在一些情况下 flowRoot 需要在父组件 didMount 时才会准备好
595
+ // 故这里使用 animationFrameScheduler 等下一个动画帧
596
+ return (0, _rxjs.timer)(0, _rxjs.animationFrameScheduler).pipe(op.map(flowRoot));
597
+ } else {
598
+ return (0, _rxjs.of)(flowRoot);
599
+ }
600
+ }
601
+ }), op.distinctUntilChanged()); // 表格在 flowRoot 中的可见部分
602
+
603
+ var visiblePart$ = resolvedFlowRoot$.pipe(op.switchMap(function (resolvedFlowRoot) {
604
+ return (0, _visiblePart.getVisiblePartObservable)(_this2.domHelper.virtual, resolvedFlowRoot);
605
+ })); // 每当可见部分发生变化的时候,调整 loading icon 的未知(如果 loading icon 存在的话)
606
+
607
+ this.rootSubscription.add((0, _rxjs.combineLatest)([visiblePart$.pipe(op.map(function (p) {
608
+ return p.clipRect;
609
+ }), op.distinctUntilChanged(_utils.shallowEqual)), this.props$.pipe(op.startWith(null), op.pairwise(), op.filter(function (_ref2) {
610
+ var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
611
+ prevProps = _ref3[0],
612
+ props = _ref3[1];
613
+
614
+ return prevProps == null || !prevProps.isLoading && props.isLoading;
615
+ }))]).subscribe(function (_ref4) {
616
+ var _ref5 = (0, _slicedToArray2.default)(_ref4, 1),
617
+ clipRect = _ref5[0];
618
+
619
+ var loadingIndicator = _this2.domHelper.getLoadingIndicator();
620
+
621
+ if (!loadingIndicator) {
622
+ return;
623
+ }
624
+
625
+ var height = clipRect.bottom - clipRect.top;
626
+ loadingIndicator.style.top = "".concat(height / 2, "px");
627
+ loadingIndicator.style.marginTop = "".concat(height / 2, "px");
628
+ })); // 每当可见部分发生变化的时候,如果开启了虚拟滚动,则重新触发 render
629
+
630
+ this.rootSubscription.add(visiblePart$.pipe(op.filter(function () {
631
+ var _this2$lastInfo$useVi = _this2.lastInfo.useVirtual,
632
+ horizontal = _this2$lastInfo$useVi.horizontal,
633
+ vertical = _this2$lastInfo$useVi.vertical;
634
+ return horizontal || vertical;
635
+ }), op.map(function (_ref6) {
636
+ var clipRect = _ref6.clipRect,
637
+ offsetY = _ref6.offsetY;
638
+ return {
639
+ maxRenderHeight: clipRect.bottom - clipRect.top,
640
+ maxRenderWidth: clipRect.right - clipRect.left,
641
+ offsetY: offsetY
642
+ };
643
+ }), op.distinctUntilChanged(function (x, y) {
644
+ // 因为 overscan 的存在,滚动较小的距离时不需要触发组件重渲染
645
+ return Math.abs(x.maxRenderWidth - y.maxRenderWidth) < _utils.OVERSCAN_SIZE / 2 && Math.abs(x.maxRenderHeight - y.maxRenderHeight) < _utils.OVERSCAN_SIZE / 2 && Math.abs(x.offsetY - y.offsetY) < _utils.OVERSCAN_SIZE / 2;
646
+ })).subscribe(function (sizeAndOffset) {
647
+ _this2.setState(sizeAndOffset);
648
+ }));
649
+ }
650
+ }, {
651
+ key: "componentWillUnmount",
652
+ value: function componentWillUnmount() {
653
+ var _a;
654
+
655
+ (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
656
+ this.rootSubscription.unsubscribe();
657
+ this.resizeSubject.unsubscribe();
658
+ }
659
+ /** 更新 DOM 节点的引用,方便其他方法直接操作 DOM */
660
+
661
+ }, {
662
+ key: "updateDOMHelper",
663
+ value: function updateDOMHelper() {
664
+ this.domHelper = new _TableDOMUtils.TableDOMHelper(this.artTableWrapperRef.current);
665
+ }
666
+ }, {
667
+ key: "updateRowHeightManager",
668
+ value: function updateRowHeightManager() {
669
+ var _a;
670
+
671
+ var virtualTop = this.domHelper.getVirtualTop();
672
+ var virtualTopHeight = (_a = virtualTop === null || virtualTop === void 0 ? void 0 : virtualTop.clientHeight) !== null && _a !== void 0 ? _a : 0;
673
+ var maxTrRowIndex = -1;
674
+ var maxTrBottom = -1;
675
+ var zeroHeightRowCount = 0;
676
+
677
+ var _iterator = _createForOfIteratorHelper(this.domHelper.getTableRows()),
678
+ _step;
679
+
680
+ try {
681
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
682
+ var tr = _step.value;
683
+ var rowIndex = Number(tr.dataset.rowindex);
684
+
685
+ if (isNaN(rowIndex)) {
686
+ continue;
687
+ }
688
+
689
+ maxTrRowIndex = Math.max(maxTrRowIndex, rowIndex);
690
+ var offset = tr.offsetTop + virtualTopHeight;
691
+ var size = tr.offsetHeight;
692
+
693
+ if (size === 0) {
694
+ zeroHeightRowCount += 1;
695
+ }
696
+
697
+ maxTrBottom = Math.max(maxTrBottom, offset + size);
698
+ this.rowHeightManager.updateRow(rowIndex, offset, size);
699
+ } // 当 estimatedRowHeight 过大时,可能出现「渲染行数过少,无法覆盖可视范围」的情况
700
+ // 出现这种情况时,我们判断「下一次渲染能够渲染更多行」是否满足,满足的话就直接调用 forceUpdate
701
+ // zeroHeightRowCount === 0 用于确保当前没有 display=none 的情况
702
+
703
+ } catch (err) {
704
+ _iterator.e(err);
705
+ } finally {
706
+ _iterator.f();
707
+ }
708
+
709
+ if (maxTrRowIndex !== -1 && zeroHeightRowCount === 0) {
710
+ if (maxTrBottom < this.state.offsetY + this.state.maxRenderHeight) {
711
+ var vertical = this.getVerticalRenderRange(this.lastInfo.useVirtual);
712
+
713
+ if (vertical.bottomIndex - 1 > maxTrRowIndex) {
714
+ this.forceUpdate();
715
+ }
716
+ }
717
+ }
718
+ }
719
+ /** 计算表格所有列的渲染宽度之和,判断表格是否需要渲染锁列 */
720
+
721
+ }, {
722
+ key: "adjustNeedRenderLock",
723
+ value: function adjustNeedRenderLock() {
724
+ var needRenderLock = this.state.needRenderLock;
725
+ var _this$lastInfo = this.lastInfo,
726
+ flat = (0, _flat.default)(_this$lastInfo),
727
+ hasLockColumn = _this$lastInfo.hasLockColumn;
728
+
729
+ if (hasLockColumn) {
730
+ var _context;
731
+
732
+ var sumOfColWidth = (0, _utils.sum)((0, _map.default)(_context = flat.full).call(_context, function (col) {
733
+ return col.width;
734
+ }));
735
+ var nextNeedRenderLock = sumOfColWidth > this.domHelper.artTable.clientWidth;
736
+
737
+ if (needRenderLock !== nextNeedRenderLock) {
738
+ this.setState({
739
+ needRenderLock: nextNeedRenderLock
740
+ });
741
+ }
742
+ } else {
743
+ if (needRenderLock) {
744
+ this.setState({
745
+ needRenderLock: false
746
+ });
747
+ }
748
+ }
749
+ }
750
+ }]);
751
+ return BaseTable;
752
+ }(_react.default.Component);
753
+
754
+ exports.BaseTable = BaseTable;
755
+ BaseTable.defaultProps = {
756
+ hasHeader: true,
757
+ isStickyHeader: true,
758
+ stickyTop: 0,
759
+ footerDataSource: [],
760
+ isStickyFooter: true,
761
+ stickyBottom: 0,
762
+ hasStickyScroll: true,
763
+ stickyScrollHeight: 'auto',
764
+ useVirtual: 'auto',
765
+ estimatedRowHeight: 48,
766
+ isLoading: false,
767
+ components: {},
768
+ getTableProps: _rxjs.noop,
769
+ getRowProps: _rxjs.noop,
770
+ flowRoot: 'auto',
771
+ dataSource: [],
772
+ useOuterBorder: true
773
+ };