@kdcloudjs/table 1.2.1-canary.7 → 1.2.2-canary.10

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 (589) hide show
  1. package/LICENSE +568 -568
  2. package/README.md +111 -111
  3. package/dist/@kdcloudjs/table.css +1 -1
  4. package/dist/@kdcloudjs/table.css.map +0 -0
  5. package/dist/@kdcloudjs/table.js +1405 -470
  6. package/dist/@kdcloudjs/table.js.map +1 -1
  7. package/dist/@kdcloudjs/table.min.css +1 -1
  8. package/dist/@kdcloudjs/table.min.js +17 -7
  9. package/dist/@kdcloudjs/table.min.js.map +1 -1
  10. package/dist/default-theme.js +0 -0
  11. package/dist/kd-ui-complete.less +777 -777
  12. package/dist/kd-ui.less +0 -0
  13. package/dist/theme.js +0 -0
  14. package/es/_utils/arrayUtil.d.ts +0 -0
  15. package/es/_utils/arrayUtil.js +0 -0
  16. package/es/_utils/devwarning.d.ts +0 -0
  17. package/es/_utils/devwarning.js +0 -0
  18. package/es/_utils/formatUtil.d.ts +0 -0
  19. package/es/_utils/formatUtil.js +0 -0
  20. package/es/_utils/hooks.d.ts +0 -0
  21. package/es/_utils/hooks.js +0 -0
  22. package/es/_utils/index.d.ts +0 -0
  23. package/es/_utils/index.js +0 -0
  24. package/es/_utils/numberUtil.d.ts +0 -0
  25. package/es/_utils/numberUtil.js +0 -0
  26. package/es/_utils/omit.d.ts +0 -0
  27. package/es/_utils/omit.js +0 -0
  28. package/es/_utils/react-children.d.ts +0 -0
  29. package/es/_utils/react-children.js +0 -0
  30. package/es/_utils/type.d.ts +0 -0
  31. package/es/_utils/type.js +0 -0
  32. package/es/_utils/usePopper.d.ts +0 -0
  33. package/es/_utils/usePopper.js +0 -0
  34. package/es/config-provider/ConfigContext.d.ts +0 -0
  35. package/es/config-provider/ConfigContext.js +0 -0
  36. package/es/config-provider/compDefaultProps.d.ts +0 -0
  37. package/es/config-provider/compDefaultProps.js +0 -0
  38. package/es/config-provider/configProvider.d.ts +0 -0
  39. package/es/config-provider/configProvider.js +0 -0
  40. package/es/config-provider/defaultConfig.d.ts +0 -0
  41. package/es/config-provider/defaultConfig.js +0 -0
  42. package/es/config-provider/index.d.ts +0 -0
  43. package/es/config-provider/index.js +0 -0
  44. package/es/index.d.ts +0 -0
  45. package/es/index.js +0 -0
  46. package/es/locale/index.d.ts +0 -0
  47. package/es/locale/index.js +0 -0
  48. package/es/locale/locale.d.ts +0 -0
  49. package/es/locale/locale.js +2 -2
  50. package/es/locale/zh-CN.d.ts +0 -0
  51. package/es/locale/zh-CN.js +0 -0
  52. package/es/style/color/colors.less +1 -1
  53. package/es/style/core/index.less +1 -1
  54. package/es/style/core/motion/other.less +27 -27
  55. package/es/style/core/motion/slide.less +53 -53
  56. package/es/style/core/motion.less +1 -1
  57. package/es/style/core/reset.less +185 -185
  58. package/es/style/css.js +0 -0
  59. package/es/style/index.css +0 -0
  60. package/es/style/index.d.ts +0 -0
  61. package/es/style/index.js +0 -0
  62. package/es/style/index.less +1 -1
  63. package/es/style/mixins/index.less +18 -18
  64. package/es/style/mixins/overlay.less +21 -21
  65. package/es/style/mixins/reset.less +12 -12
  66. package/es/style/themes/default.less +445 -445
  67. package/es/style/themes/index.less +0 -0
  68. package/es/table/base/calculations.d.ts +0 -0
  69. package/es/table/base/calculations.js +0 -0
  70. package/es/table/base/colgroup.d.ts +0 -0
  71. package/es/table/base/colgroup.js +0 -0
  72. package/es/table/base/empty.d.ts +0 -0
  73. package/es/table/base/empty.js +1 -1
  74. package/es/table/base/globalStyleComponent.d.ts +4 -0
  75. package/es/table/base/globalStyleComponent.js +24 -0
  76. package/es/table/base/header.d.ts +0 -0
  77. package/es/table/base/header.js +0 -0
  78. package/es/table/base/helpers/SpanManager.d.ts +0 -0
  79. package/es/table/base/helpers/SpanManager.js +0 -0
  80. package/es/table/base/helpers/TableDOMUtils.d.ts +0 -0
  81. package/es/table/base/helpers/TableDOMUtils.js +0 -0
  82. package/es/table/base/helpers/__test__/SpanManager.test.d.ts +0 -0
  83. package/es/table/base/helpers/__test__/SpanManager.test.js +0 -0
  84. package/es/table/base/helpers/__test__/TableDOMUtils.test.d.ts +0 -0
  85. package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -0
  86. package/es/table/base/helpers/__test__/rowHeightManager.test.d.ts +0 -0
  87. package/es/table/base/helpers/__test__/rowHeightManager.test.js +0 -0
  88. package/es/table/base/helpers/getRichVisibleRectsStream.d.ts +0 -0
  89. package/es/table/base/helpers/getRichVisibleRectsStream.js +0 -0
  90. package/es/table/base/helpers/rowHeightManager.d.ts +0 -0
  91. package/es/table/base/helpers/rowHeightManager.js +0 -0
  92. package/es/table/base/html-table.d.ts +0 -0
  93. package/es/table/base/html-table.js +0 -0
  94. package/es/table/base/index.d.ts +0 -0
  95. package/es/table/base/index.js +0 -0
  96. package/es/table/base/interfaces.d.ts +0 -0
  97. package/es/table/base/interfaces.js +0 -0
  98. package/es/table/base/loading.d.ts +0 -0
  99. package/es/table/base/loading.js +1 -1
  100. package/es/table/base/renderTemplates.d.ts +0 -0
  101. package/es/table/base/renderTemplates.js +11 -11
  102. package/es/table/base/styles.d.ts +11 -0
  103. package/es/table/base/styles.js +18 -7
  104. package/es/table/base/table.d.ts +0 -0
  105. package/es/table/base/table.js +5 -4
  106. package/es/table/base/utils.d.ts +0 -0
  107. package/es/table/base/utils.js +0 -0
  108. package/es/table/common-views.d.ts +0 -0
  109. package/es/table/common-views.js +0 -0
  110. package/es/table/index.d.ts +0 -0
  111. package/es/table/index.js +0 -0
  112. package/es/table/interfaces.d.ts +41 -0
  113. package/es/table/interfaces.js +0 -0
  114. package/es/table/internals.d.ts +0 -0
  115. package/es/table/internals.js +0 -0
  116. package/es/table/pipeline/const.d.ts +3 -0
  117. package/es/table/pipeline/const.js +3 -0
  118. package/es/table/pipeline/features/autoFill.d.ts +0 -0
  119. package/es/table/pipeline/features/autoFill.js +0 -0
  120. package/es/table/pipeline/features/autoRowSpan.d.ts +0 -0
  121. package/es/table/pipeline/features/autoRowSpan.js +0 -0
  122. package/es/table/pipeline/features/buildTree.d.ts +0 -0
  123. package/es/table/pipeline/features/buildTree.js +0 -0
  124. package/es/table/pipeline/features/colGroupExtendable.d.ts +0 -0
  125. package/es/table/pipeline/features/colGroupExtendable.js +0 -0
  126. package/es/table/pipeline/features/columnDrag.d.ts +0 -0
  127. package/es/table/pipeline/features/columnDrag.js +0 -0
  128. package/es/table/pipeline/features/columnFilter.d.ts +0 -0
  129. package/es/table/pipeline/features/columnFilter.js +0 -0
  130. package/es/table/pipeline/features/columnHover.d.ts +0 -0
  131. package/es/table/pipeline/features/columnHover.js +0 -0
  132. package/es/table/pipeline/features/columnRangeHover.d.ts +0 -0
  133. package/es/table/pipeline/features/columnRangeHover.js +0 -0
  134. package/es/table/pipeline/features/columnResizeWidth.d.ts +0 -0
  135. package/es/table/pipeline/features/columnResizeWidth.js +1 -1
  136. package/es/table/pipeline/features/contextMenu.d.ts +0 -0
  137. package/es/table/pipeline/features/contextMenu.js +0 -0
  138. package/es/table/pipeline/features/featureApi/RowDragApi.d.ts +15 -0
  139. package/es/table/pipeline/features/featureApi/RowDragApi.js +66 -0
  140. package/es/table/pipeline/features/featureApi/utils.d.ts +2 -0
  141. package/es/table/pipeline/features/featureApi/utils.js +10 -0
  142. package/es/table/pipeline/features/filter/DefaultFilterContent.d.ts +0 -0
  143. package/es/table/pipeline/features/filter/DefaultFilterContent.js +1 -1
  144. package/es/table/pipeline/features/filter/DefaultFilterIcon.d.ts +0 -0
  145. package/es/table/pipeline/features/filter/DefaultFilterIcon.js +0 -0
  146. package/es/table/pipeline/features/filter/Filter.d.ts +0 -0
  147. package/es/table/pipeline/features/filter/Filter.js +1 -1
  148. package/es/table/pipeline/features/filter/FilterPanel.d.ts +0 -0
  149. package/es/table/pipeline/features/filter/FilterPanel.js +0 -0
  150. package/es/table/pipeline/features/filter/index.d.ts +0 -0
  151. package/es/table/pipeline/features/filter/index.js +0 -0
  152. package/es/table/pipeline/features/filter/util.d.ts +0 -0
  153. package/es/table/pipeline/features/filter/util.js +0 -0
  154. package/es/table/pipeline/features/footerDataSource.d.ts +0 -0
  155. package/es/table/pipeline/features/footerDataSource.js +0 -0
  156. package/es/table/pipeline/features/index.d.ts +0 -0
  157. package/es/table/pipeline/features/index.js +0 -0
  158. package/es/table/pipeline/features/mergeCellHover.d.ts +0 -0
  159. package/es/table/pipeline/features/mergeCellHover.js +0 -0
  160. package/es/table/pipeline/features/multiSelect.d.ts +0 -0
  161. package/es/table/pipeline/features/multiSelect.js +0 -0
  162. package/es/table/pipeline/features/rangeSelection.d.ts +0 -0
  163. package/es/table/pipeline/features/rangeSelection.js +0 -0
  164. package/es/table/pipeline/features/rowDetail.d.ts +0 -0
  165. package/es/table/pipeline/features/rowDetail.js +1 -1
  166. package/es/table/pipeline/features/rowDrag.d.ts +12 -12
  167. package/es/table/pipeline/features/rowDrag.js +605 -191
  168. package/es/table/pipeline/features/rowGrouping.d.ts +0 -0
  169. package/es/table/pipeline/features/rowGrouping.js +1 -1
  170. package/es/table/pipeline/features/singleSelect.d.ts +0 -0
  171. package/es/table/pipeline/features/singleSelect.js +0 -0
  172. package/es/table/pipeline/features/sort.d.ts +0 -0
  173. package/es/table/pipeline/features/sort.js +1 -1
  174. package/es/table/pipeline/features/tips.d.ts +0 -0
  175. package/es/table/pipeline/features/tips.js +1 -1
  176. package/es/table/pipeline/features/treeMode.d.ts +1 -0
  177. package/es/table/pipeline/features/treeMode.js +41 -11
  178. package/es/table/pipeline/features/treeSelect.d.ts +0 -0
  179. package/es/table/pipeline/features/treeSelect.js +0 -0
  180. package/es/table/pipeline/index.d.ts +0 -0
  181. package/es/table/pipeline/index.js +0 -0
  182. package/es/table/pipeline/pipeline.d.ts +3 -0
  183. package/es/table/pipeline/pipeline.js +23 -1
  184. package/es/table/pivot/cross-table/buildCrossTable.d.ts +0 -0
  185. package/es/table/pivot/cross-table/buildCrossTable.js +0 -0
  186. package/es/table/pivot/cross-table/constants.d.ts +0 -0
  187. package/es/table/pivot/cross-table/constants.js +0 -0
  188. package/es/table/pivot/cross-table/cross-table.d.ts +0 -0
  189. package/es/table/pivot/cross-table/cross-table.js +0 -0
  190. package/es/table/pivot/cross-table/index.d.ts +0 -0
  191. package/es/table/pivot/cross-table/index.js +0 -0
  192. package/es/table/pivot/cross-table/interfaces.d.ts +0 -0
  193. package/es/table/pivot/cross-table/interfaces.js +0 -0
  194. package/es/table/pivot/cross-table/internals.d.ts +0 -0
  195. package/es/table/pivot/cross-table/internals.js +0 -0
  196. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.d.ts +0 -0
  197. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +0 -0
  198. package/es/table/pivot/cross-tree-table/cross-tree-table.d.ts +0 -0
  199. package/es/table/pivot/cross-tree-table/cross-tree-table.js +0 -0
  200. package/es/table/pivot/cross-tree-table/index.d.ts +0 -0
  201. package/es/table/pivot/cross-tree-table/index.js +0 -0
  202. package/es/table/pivot/pivot-utils/buildDrillTree.d.ts +0 -0
  203. package/es/table/pivot/pivot-utils/buildDrillTree.js +0 -0
  204. package/es/table/pivot/pivot-utils/builders.d.ts +0 -0
  205. package/es/table/pivot/pivot-utils/builders.js +0 -0
  206. package/es/table/pivot/pivot-utils/convert-utils.d.ts +0 -0
  207. package/es/table/pivot/pivot-utils/convert-utils.js +0 -0
  208. package/es/table/pivot/pivot-utils/index.d.ts +0 -0
  209. package/es/table/pivot/pivot-utils/index.js +0 -0
  210. package/es/table/pivot/pivot-utils/interfaces.d.ts +0 -0
  211. package/es/table/pivot/pivot-utils/interfaces.js +0 -0
  212. package/es/table/pivot/pivot-utils/simpleEncode.d.ts +0 -0
  213. package/es/table/pivot/pivot-utils/simpleEncode.js +0 -0
  214. package/es/table/style/css.js +0 -0
  215. package/es/table/style/index.css +0 -0
  216. package/es/table/style/index.d.ts +0 -0
  217. package/es/table/style/index.js +0 -0
  218. package/es/table/style/index.less +1 -1
  219. package/es/table/transforms/autoRowSpan.d.ts +0 -0
  220. package/es/table/transforms/autoRowSpan.js +0 -0
  221. package/es/table/transforms/autoWidth.d.ts +0 -0
  222. package/es/table/transforms/autoWidth.js +0 -0
  223. package/es/table/transforms/buildTree.d.ts +0 -0
  224. package/es/table/transforms/buildTree.js +0 -0
  225. package/es/table/transforms/columnHover.d.ts +0 -0
  226. package/es/table/transforms/columnHover.js +0 -0
  227. package/es/table/transforms/columnRangeHover.d.ts +0 -0
  228. package/es/table/transforms/columnRangeHover.js +0 -0
  229. package/es/table/transforms/columnResize.d.ts +0 -0
  230. package/es/table/transforms/columnResize.js +1 -1
  231. package/es/table/transforms/flatten.d.ts +0 -0
  232. package/es/table/transforms/flatten.js +0 -0
  233. package/es/table/transforms/index.d.ts +0 -0
  234. package/es/table/transforms/index.js +0 -0
  235. package/es/table/transforms/orderField.d.ts +0 -0
  236. package/es/table/transforms/orderField.js +0 -0
  237. package/es/table/transforms/sort.d.ts +0 -0
  238. package/es/table/transforms/sort.js +1 -1
  239. package/es/table/transforms/tips.d.ts +0 -0
  240. package/es/table/transforms/tips.js +1 -1
  241. package/es/table/transforms/treeMode.d.ts +0 -0
  242. package/es/table/transforms/treeMode.js +1 -1
  243. package/es/table/transforms/visible.d.ts +0 -0
  244. package/es/table/transforms/visible.js +0 -0
  245. package/es/table/transforms/warnTransformsDeprecated.d.ts +0 -0
  246. package/es/table/transforms/warnTransformsDeprecated.js +0 -0
  247. package/es/table/use/useResizeObserver.d.ts +0 -0
  248. package/es/table/use/useResizeObserver.js +0 -0
  249. package/es/table/utils/applyTransforms.d.ts +0 -0
  250. package/es/table/utils/applyTransforms.js +0 -0
  251. package/es/table/utils/browserType.d.ts +0 -0
  252. package/es/table/utils/browserType.js +0 -0
  253. package/es/table/utils/buildTree.d.ts +0 -0
  254. package/es/table/utils/buildTree.js +0 -0
  255. package/es/table/utils/collectNodes.d.ts +0 -0
  256. package/es/table/utils/collectNodes.js +0 -0
  257. package/es/table/utils/console.d.ts +0 -0
  258. package/es/table/utils/console.js +0 -0
  259. package/es/table/utils/copyToClipboard.d.ts +0 -0
  260. package/es/table/utils/copyToClipboard.js +0 -0
  261. package/es/table/utils/element.d.ts +0 -0
  262. package/es/table/utils/element.js +0 -0
  263. package/es/table/utils/exportTableAsExcel.d.ts +0 -0
  264. package/es/table/utils/exportTableAsExcel.js +0 -0
  265. package/es/table/utils/getTreeDepth.d.ts +0 -0
  266. package/es/table/utils/getTreeDepth.js +0 -0
  267. package/es/table/utils/groupBy.d.ts +0 -0
  268. package/es/table/utils/groupBy.js +0 -0
  269. package/es/table/utils/index.d.ts +0 -0
  270. package/es/table/utils/index.js +0 -0
  271. package/es/table/utils/isGroupColumn.d.ts +0 -0
  272. package/es/table/utils/isGroupColumn.js +0 -0
  273. package/es/table/utils/isLeafNode.d.ts +0 -0
  274. package/es/table/utils/isLeafNode.js +0 -0
  275. package/es/table/utils/keyCode.d.ts +0 -0
  276. package/es/table/utils/keyCode.js +0 -0
  277. package/es/table/utils/layeredFilter.d.ts +0 -0
  278. package/es/table/utils/layeredFilter.js +0 -0
  279. package/es/table/utils/layeredSort.d.ts +0 -0
  280. package/es/table/utils/layeredSort.js +0 -0
  281. package/es/table/utils/makeRecursiveMapper.d.ts +0 -0
  282. package/es/table/utils/makeRecursiveMapper.js +0 -0
  283. package/es/table/utils/mergeCellProps.d.ts +0 -0
  284. package/es/table/utils/mergeCellProps.js +0 -0
  285. package/es/table/utils/others.d.ts +0 -0
  286. package/es/table/utils/others.js +0 -0
  287. package/es/table/utils/proto.d.ts +0 -0
  288. package/es/table/utils/proto.js +0 -0
  289. package/es/table/utils/selectColumn.d.ts +0 -0
  290. package/es/table/utils/selectColumn.js +0 -0
  291. package/es/table/utils/smartCompare.d.ts +0 -0
  292. package/es/table/utils/smartCompare.js +0 -0
  293. package/es/table/utils/traverseColumn.d.ts +0 -0
  294. package/es/table/utils/traverseColumn.js +0 -0
  295. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.d.ts +0 -0
  296. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +0 -0
  297. package/es/table/utils/tree-data-helpers/TreeDataHelper.d.ts +0 -0
  298. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +0 -0
  299. package/es/table/utils/uiDegrade.d.ts +0 -0
  300. package/es/table/utils/uiDegrade.js +0 -0
  301. package/lib/_utils/arrayUtil.d.ts +0 -0
  302. package/lib/_utils/arrayUtil.js +0 -0
  303. package/lib/_utils/devwarning.d.ts +0 -0
  304. package/lib/_utils/devwarning.js +0 -0
  305. package/lib/_utils/formatUtil.d.ts +0 -0
  306. package/lib/_utils/formatUtil.js +0 -0
  307. package/lib/_utils/hooks.d.ts +0 -0
  308. package/lib/_utils/hooks.js +0 -0
  309. package/lib/_utils/index.d.ts +0 -0
  310. package/lib/_utils/index.js +0 -0
  311. package/lib/_utils/numberUtil.d.ts +0 -0
  312. package/lib/_utils/numberUtil.js +0 -0
  313. package/lib/_utils/omit.d.ts +0 -0
  314. package/lib/_utils/omit.js +0 -0
  315. package/lib/_utils/react-children.d.ts +0 -0
  316. package/lib/_utils/react-children.js +0 -0
  317. package/lib/_utils/type.d.ts +0 -0
  318. package/lib/_utils/type.js +0 -0
  319. package/lib/_utils/usePopper.d.ts +0 -0
  320. package/lib/_utils/usePopper.js +0 -0
  321. package/lib/config-provider/ConfigContext.d.ts +0 -0
  322. package/lib/config-provider/ConfigContext.js +0 -0
  323. package/lib/config-provider/compDefaultProps.d.ts +0 -0
  324. package/lib/config-provider/compDefaultProps.js +0 -0
  325. package/lib/config-provider/configProvider.d.ts +0 -0
  326. package/lib/config-provider/configProvider.js +0 -0
  327. package/lib/config-provider/defaultConfig.d.ts +0 -0
  328. package/lib/config-provider/defaultConfig.js +0 -0
  329. package/lib/config-provider/index.d.ts +0 -0
  330. package/lib/config-provider/index.js +0 -0
  331. package/lib/index.d.ts +0 -0
  332. package/lib/index.js +0 -0
  333. package/lib/locale/index.d.ts +0 -0
  334. package/lib/locale/index.js +0 -0
  335. package/lib/locale/locale.d.ts +0 -0
  336. package/lib/locale/locale.js +2 -2
  337. package/lib/locale/zh-CN.d.ts +0 -0
  338. package/lib/locale/zh-CN.js +0 -0
  339. package/lib/style/color/colors.less +1 -1
  340. package/lib/style/components.less +1 -1
  341. package/lib/style/core/index.less +1 -1
  342. package/lib/style/core/motion/other.less +27 -27
  343. package/lib/style/core/motion/slide.less +53 -53
  344. package/lib/style/core/motion.less +1 -1
  345. package/lib/style/core/reset.less +185 -185
  346. package/lib/style/css.js +0 -0
  347. package/lib/style/index.css +0 -0
  348. package/lib/style/index.d.ts +0 -0
  349. package/lib/style/index.js +0 -0
  350. package/lib/style/index.less +1 -1
  351. package/lib/style/mixins/index.less +18 -18
  352. package/lib/style/mixins/overlay.less +21 -21
  353. package/lib/style/mixins/reset.less +12 -12
  354. package/lib/style/themes/default.less +445 -445
  355. package/lib/style/themes/index.less +0 -0
  356. package/lib/table/base/calculations.d.ts +0 -0
  357. package/lib/table/base/calculations.js +0 -0
  358. package/lib/table/base/colgroup.d.ts +0 -0
  359. package/lib/table/base/colgroup.js +0 -0
  360. package/lib/table/base/empty.d.ts +0 -0
  361. package/lib/table/base/empty.js +1 -1
  362. package/lib/table/base/globalStyleComponent.d.ts +4 -0
  363. package/lib/table/base/globalStyleComponent.js +35 -0
  364. package/lib/table/base/header.d.ts +0 -0
  365. package/lib/table/base/header.js +0 -0
  366. package/lib/table/base/helpers/SpanManager.d.ts +0 -0
  367. package/lib/table/base/helpers/SpanManager.js +0 -0
  368. package/lib/table/base/helpers/TableDOMUtils.d.ts +0 -0
  369. package/lib/table/base/helpers/TableDOMUtils.js +0 -0
  370. package/lib/table/base/helpers/__test__/SpanManager.test.d.ts +0 -0
  371. package/lib/table/base/helpers/__test__/SpanManager.test.js +0 -0
  372. package/lib/table/base/helpers/__test__/TableDOMUtils.test.d.ts +0 -0
  373. package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -0
  374. package/lib/table/base/helpers/__test__/rowHeightManager.test.d.ts +0 -0
  375. package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -0
  376. package/lib/table/base/helpers/getRichVisibleRectsStream.d.ts +0 -0
  377. package/lib/table/base/helpers/getRichVisibleRectsStream.js +0 -0
  378. package/lib/table/base/helpers/rowHeightManager.d.ts +0 -0
  379. package/lib/table/base/helpers/rowHeightManager.js +0 -0
  380. package/lib/table/base/html-table.d.ts +0 -0
  381. package/lib/table/base/html-table.js +0 -0
  382. package/lib/table/base/index.d.ts +0 -0
  383. package/lib/table/base/index.js +0 -0
  384. package/lib/table/base/interfaces.d.ts +0 -0
  385. package/lib/table/base/interfaces.js +0 -0
  386. package/lib/table/base/loading.d.ts +0 -0
  387. package/lib/table/base/loading.js +1 -1
  388. package/lib/table/base/renderTemplates.d.ts +0 -0
  389. package/lib/table/base/renderTemplates.js +11 -11
  390. package/lib/table/base/styles.d.ts +11 -0
  391. package/lib/table/base/styles.js +18 -7
  392. package/lib/table/base/table.d.ts +0 -0
  393. package/lib/table/base/table.js +5 -4
  394. package/lib/table/base/utils.d.ts +0 -0
  395. package/lib/table/base/utils.js +0 -0
  396. package/lib/table/common-views.d.ts +0 -0
  397. package/lib/table/common-views.js +0 -0
  398. package/lib/table/index.d.ts +0 -0
  399. package/lib/table/index.js +0 -0
  400. package/lib/table/interfaces.d.ts +41 -0
  401. package/lib/table/interfaces.js +0 -0
  402. package/lib/table/internals.d.ts +0 -0
  403. package/lib/table/internals.js +0 -0
  404. package/lib/table/pipeline/const.d.ts +3 -0
  405. package/lib/table/pipeline/const.js +9 -0
  406. package/lib/table/pipeline/features/autoFill.d.ts +0 -0
  407. package/lib/table/pipeline/features/autoFill.js +0 -0
  408. package/lib/table/pipeline/features/autoRowSpan.d.ts +0 -0
  409. package/lib/table/pipeline/features/autoRowSpan.js +0 -0
  410. package/lib/table/pipeline/features/buildTree.d.ts +0 -0
  411. package/lib/table/pipeline/features/buildTree.js +0 -0
  412. package/lib/table/pipeline/features/colGroupExtendable.d.ts +0 -0
  413. package/lib/table/pipeline/features/colGroupExtendable.js +0 -0
  414. package/lib/table/pipeline/features/columnDrag.d.ts +0 -0
  415. package/lib/table/pipeline/features/columnDrag.js +0 -0
  416. package/lib/table/pipeline/features/columnFilter.d.ts +0 -0
  417. package/lib/table/pipeline/features/columnFilter.js +0 -0
  418. package/lib/table/pipeline/features/columnHover.d.ts +0 -0
  419. package/lib/table/pipeline/features/columnHover.js +0 -0
  420. package/lib/table/pipeline/features/columnRangeHover.d.ts +0 -0
  421. package/lib/table/pipeline/features/columnRangeHover.js +0 -0
  422. package/lib/table/pipeline/features/columnResizeWidth.d.ts +0 -0
  423. package/lib/table/pipeline/features/columnResizeWidth.js +1 -1
  424. package/lib/table/pipeline/features/contextMenu.d.ts +0 -0
  425. package/lib/table/pipeline/features/contextMenu.js +0 -0
  426. package/lib/table/pipeline/features/featureApi/RowDragApi.d.ts +15 -0
  427. package/lib/table/pipeline/features/featureApi/RowDragApi.js +72 -0
  428. package/lib/table/pipeline/features/featureApi/utils.d.ts +2 -0
  429. package/lib/table/pipeline/features/featureApi/utils.js +17 -0
  430. package/lib/table/pipeline/features/filter/DefaultFilterContent.d.ts +0 -0
  431. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +1 -1
  432. package/lib/table/pipeline/features/filter/DefaultFilterIcon.d.ts +0 -0
  433. package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +0 -0
  434. package/lib/table/pipeline/features/filter/Filter.d.ts +0 -0
  435. package/lib/table/pipeline/features/filter/Filter.js +1 -1
  436. package/lib/table/pipeline/features/filter/FilterPanel.d.ts +0 -0
  437. package/lib/table/pipeline/features/filter/FilterPanel.js +0 -0
  438. package/lib/table/pipeline/features/filter/index.d.ts +0 -0
  439. package/lib/table/pipeline/features/filter/index.js +0 -0
  440. package/lib/table/pipeline/features/filter/util.d.ts +0 -0
  441. package/lib/table/pipeline/features/filter/util.js +0 -0
  442. package/lib/table/pipeline/features/footerDataSource.d.ts +0 -0
  443. package/lib/table/pipeline/features/footerDataSource.js +0 -0
  444. package/lib/table/pipeline/features/index.d.ts +0 -0
  445. package/lib/table/pipeline/features/index.js +0 -0
  446. package/lib/table/pipeline/features/mergeCellHover.d.ts +0 -0
  447. package/lib/table/pipeline/features/mergeCellHover.js +0 -0
  448. package/lib/table/pipeline/features/multiSelect.d.ts +0 -0
  449. package/lib/table/pipeline/features/multiSelect.js +0 -0
  450. package/lib/table/pipeline/features/rangeSelection.d.ts +0 -0
  451. package/lib/table/pipeline/features/rangeSelection.js +0 -0
  452. package/lib/table/pipeline/features/rowDetail.d.ts +0 -0
  453. package/lib/table/pipeline/features/rowDetail.js +1 -1
  454. package/lib/table/pipeline/features/rowDrag.d.ts +12 -12
  455. package/lib/table/pipeline/features/rowDrag.js +606 -192
  456. package/lib/table/pipeline/features/rowGrouping.d.ts +0 -0
  457. package/lib/table/pipeline/features/rowGrouping.js +1 -1
  458. package/lib/table/pipeline/features/singleSelect.d.ts +0 -0
  459. package/lib/table/pipeline/features/singleSelect.js +0 -0
  460. package/lib/table/pipeline/features/sort.d.ts +0 -0
  461. package/lib/table/pipeline/features/sort.js +1 -1
  462. package/lib/table/pipeline/features/tips.d.ts +0 -0
  463. package/lib/table/pipeline/features/tips.js +1 -1
  464. package/lib/table/pipeline/features/treeMode.d.ts +1 -0
  465. package/lib/table/pipeline/features/treeMode.js +42 -11
  466. package/lib/table/pipeline/features/treeSelect.d.ts +0 -0
  467. package/lib/table/pipeline/features/treeSelect.js +0 -0
  468. package/lib/table/pipeline/index.d.ts +0 -0
  469. package/lib/table/pipeline/index.js +0 -0
  470. package/lib/table/pipeline/pipeline.d.ts +3 -0
  471. package/lib/table/pipeline/pipeline.js +23 -1
  472. package/lib/table/pivot/cross-table/buildCrossTable.d.ts +0 -0
  473. package/lib/table/pivot/cross-table/buildCrossTable.js +0 -0
  474. package/lib/table/pivot/cross-table/constants.d.ts +0 -0
  475. package/lib/table/pivot/cross-table/constants.js +0 -0
  476. package/lib/table/pivot/cross-table/cross-table.d.ts +0 -0
  477. package/lib/table/pivot/cross-table/cross-table.js +0 -0
  478. package/lib/table/pivot/cross-table/index.d.ts +0 -0
  479. package/lib/table/pivot/cross-table/index.js +0 -0
  480. package/lib/table/pivot/cross-table/interfaces.d.ts +0 -0
  481. package/lib/table/pivot/cross-table/interfaces.js +0 -0
  482. package/lib/table/pivot/cross-table/internals.d.ts +0 -0
  483. package/lib/table/pivot/cross-table/internals.js +0 -0
  484. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.d.ts +0 -0
  485. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +0 -0
  486. package/lib/table/pivot/cross-tree-table/cross-tree-table.d.ts +0 -0
  487. package/lib/table/pivot/cross-tree-table/cross-tree-table.js +0 -0
  488. package/lib/table/pivot/cross-tree-table/index.d.ts +0 -0
  489. package/lib/table/pivot/cross-tree-table/index.js +0 -0
  490. package/lib/table/pivot/pivot-utils/buildDrillTree.d.ts +0 -0
  491. package/lib/table/pivot/pivot-utils/buildDrillTree.js +0 -0
  492. package/lib/table/pivot/pivot-utils/builders.d.ts +0 -0
  493. package/lib/table/pivot/pivot-utils/builders.js +0 -0
  494. package/lib/table/pivot/pivot-utils/convert-utils.d.ts +0 -0
  495. package/lib/table/pivot/pivot-utils/convert-utils.js +0 -0
  496. package/lib/table/pivot/pivot-utils/index.d.ts +0 -0
  497. package/lib/table/pivot/pivot-utils/index.js +0 -0
  498. package/lib/table/pivot/pivot-utils/interfaces.d.ts +0 -0
  499. package/lib/table/pivot/pivot-utils/interfaces.js +0 -0
  500. package/lib/table/pivot/pivot-utils/simpleEncode.d.ts +0 -0
  501. package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -0
  502. package/lib/table/style/css.js +0 -0
  503. package/lib/table/style/index.css +0 -0
  504. package/lib/table/style/index.d.ts +0 -0
  505. package/lib/table/style/index.js +0 -0
  506. package/lib/table/style/index.less +1 -1
  507. package/lib/table/transforms/autoRowSpan.d.ts +0 -0
  508. package/lib/table/transforms/autoRowSpan.js +0 -0
  509. package/lib/table/transforms/autoWidth.d.ts +0 -0
  510. package/lib/table/transforms/autoWidth.js +0 -0
  511. package/lib/table/transforms/buildTree.d.ts +0 -0
  512. package/lib/table/transforms/buildTree.js +0 -0
  513. package/lib/table/transforms/columnHover.d.ts +0 -0
  514. package/lib/table/transforms/columnHover.js +0 -0
  515. package/lib/table/transforms/columnRangeHover.d.ts +0 -0
  516. package/lib/table/transforms/columnRangeHover.js +0 -0
  517. package/lib/table/transforms/columnResize.d.ts +0 -0
  518. package/lib/table/transforms/columnResize.js +1 -1
  519. package/lib/table/transforms/flatten.d.ts +0 -0
  520. package/lib/table/transforms/flatten.js +0 -0
  521. package/lib/table/transforms/index.d.ts +0 -0
  522. package/lib/table/transforms/index.js +0 -0
  523. package/lib/table/transforms/orderField.d.ts +0 -0
  524. package/lib/table/transforms/orderField.js +0 -0
  525. package/lib/table/transforms/sort.d.ts +0 -0
  526. package/lib/table/transforms/sort.js +1 -1
  527. package/lib/table/transforms/tips.d.ts +0 -0
  528. package/lib/table/transforms/tips.js +1 -1
  529. package/lib/table/transforms/treeMode.d.ts +0 -0
  530. package/lib/table/transforms/treeMode.js +1 -1
  531. package/lib/table/transforms/visible.d.ts +0 -0
  532. package/lib/table/transforms/visible.js +0 -0
  533. package/lib/table/transforms/warnTransformsDeprecated.d.ts +0 -0
  534. package/lib/table/transforms/warnTransformsDeprecated.js +0 -0
  535. package/lib/table/use/useResizeObserver.d.ts +0 -0
  536. package/lib/table/use/useResizeObserver.js +0 -0
  537. package/lib/table/utils/applyTransforms.d.ts +0 -0
  538. package/lib/table/utils/applyTransforms.js +0 -0
  539. package/lib/table/utils/browserType.d.ts +0 -0
  540. package/lib/table/utils/browserType.js +0 -0
  541. package/lib/table/utils/buildTree.d.ts +0 -0
  542. package/lib/table/utils/buildTree.js +0 -0
  543. package/lib/table/utils/collectNodes.d.ts +0 -0
  544. package/lib/table/utils/collectNodes.js +0 -0
  545. package/lib/table/utils/console.d.ts +0 -0
  546. package/lib/table/utils/console.js +0 -0
  547. package/lib/table/utils/copyToClipboard.d.ts +0 -0
  548. package/lib/table/utils/copyToClipboard.js +0 -0
  549. package/lib/table/utils/element.d.ts +0 -0
  550. package/lib/table/utils/element.js +0 -0
  551. package/lib/table/utils/exportTableAsExcel.d.ts +0 -0
  552. package/lib/table/utils/exportTableAsExcel.js +0 -0
  553. package/lib/table/utils/getTreeDepth.d.ts +0 -0
  554. package/lib/table/utils/getTreeDepth.js +0 -0
  555. package/lib/table/utils/groupBy.d.ts +0 -0
  556. package/lib/table/utils/groupBy.js +0 -0
  557. package/lib/table/utils/index.d.ts +0 -0
  558. package/lib/table/utils/index.js +0 -0
  559. package/lib/table/utils/isGroupColumn.d.ts +0 -0
  560. package/lib/table/utils/isGroupColumn.js +0 -0
  561. package/lib/table/utils/isLeafNode.d.ts +0 -0
  562. package/lib/table/utils/isLeafNode.js +0 -0
  563. package/lib/table/utils/keyCode.d.ts +0 -0
  564. package/lib/table/utils/keyCode.js +0 -0
  565. package/lib/table/utils/layeredFilter.d.ts +0 -0
  566. package/lib/table/utils/layeredFilter.js +0 -0
  567. package/lib/table/utils/layeredSort.d.ts +0 -0
  568. package/lib/table/utils/layeredSort.js +0 -0
  569. package/lib/table/utils/makeRecursiveMapper.d.ts +0 -0
  570. package/lib/table/utils/makeRecursiveMapper.js +0 -0
  571. package/lib/table/utils/mergeCellProps.d.ts +0 -0
  572. package/lib/table/utils/mergeCellProps.js +0 -0
  573. package/lib/table/utils/others.d.ts +0 -0
  574. package/lib/table/utils/others.js +0 -0
  575. package/lib/table/utils/proto.d.ts +0 -0
  576. package/lib/table/utils/proto.js +0 -0
  577. package/lib/table/utils/selectColumn.d.ts +0 -0
  578. package/lib/table/utils/selectColumn.js +0 -0
  579. package/lib/table/utils/smartCompare.d.ts +0 -0
  580. package/lib/table/utils/smartCompare.js +0 -0
  581. package/lib/table/utils/traverseColumn.d.ts +0 -0
  582. package/lib/table/utils/traverseColumn.js +0 -0
  583. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.d.ts +0 -0
  584. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +0 -0
  585. package/lib/table/utils/tree-data-helpers/TreeDataHelper.d.ts +0 -0
  586. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +0 -0
  587. package/lib/table/utils/uiDegrade.d.ts +0 -0
  588. package/lib/table/utils/uiDegrade.js +0 -0
  589. package/package.json +218 -218
@@ -8,18 +8,24 @@ Object.defineProperty(exports, "__esModule", {
8
8
  });
9
9
  exports.ROW_DRAG_COLUMN_CODE = void 0;
10
10
  exports.rowDrag = rowDrag;
11
- exports.rowDragKey = void 0;
11
+ exports.rowDragOptionsKey = exports.rowDragKey = void 0;
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
13
- var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
14
13
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
14
+ var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
15
+ var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
16
+ var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
15
17
  var _react = _interopRequireDefault(require("react"));
16
18
  var _rxjs = require("rxjs");
17
19
  var _operators = require("rxjs/operators");
18
20
  var _classnames = _interopRequireDefault(require("classnames"));
19
21
  var _styles = require("../../base/styles");
22
+ var _const = require("../const");
23
+ var _internals = require("../../internals");
20
24
  var ROW_DRAG_COLUMN_CODE = exports.ROW_DRAG_COLUMN_CODE = '$_row_drag_column_&';
21
25
  var rowDragKey = exports.rowDragKey = 'rowDragKey';
26
+ var rowDragOptionsKey = exports.rowDragOptionsKey = 'rowDragOptions';
22
27
  var SCROLL_OFFSET = 30;
28
+ var SCROLL_START_OFFSET = 20;
23
29
  var defaultRowDragColumn = {
24
30
  name: '拖拽列',
25
31
  code: ROW_DRAG_COLUMN_CODE,
@@ -51,163 +57,305 @@ function rowDrag(opt) {
51
57
  var _context;
52
58
  var tableBody = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.tableBody;
53
59
  var artTable = pipeline.ref.current.domHelper && pipeline.ref.current.domHelper.artTable;
60
+ var rowDragApi = pipeline.addFeatureApi(_const.FeatureName.rowDrag);
61
+ pipeline.setFeatureOptions(rowDragOptionsKey, opt);
54
62
  if (!tableBody) return pipeline;
55
63
  var dataSource = pipeline.getDataSource();
56
- var rowHeight = (opt === null || opt === void 0 ? void 0 : opt.rowHeight) || 48;
57
- var handleDragStrat = function handleDragStrat(event) {
64
+ var getRowDragEvent = function getRowDragEvent(dropTargetEvent, isFinished) {
65
+ var dragItem = dropTargetEvent.dragItem,
66
+ x = dropTargetEvent.x,
67
+ y = dropTargetEvent.y,
68
+ dropZoneTarget = dropTargetEvent.dropZoneTarget,
69
+ startDropZoneTagret = dropTargetEvent.startDropZoneTagret,
70
+ commonParams = dropTargetEvent.commonParams,
71
+ startCommonParams = dropTargetEvent.startCommonParams,
72
+ event = dropTargetEvent.event,
73
+ dropZoneTableParams = dropTargetEvent.dropZoneTableParams;
74
+ var getDataSource = dropZoneTableParams.getDataSource,
75
+ getTreeModeOptions = dropZoneTableParams.getTreeModeOptions,
76
+ getRowDragOptions = dropZoneTableParams.getRowDragOptions;
77
+ var dataSource = getDataSource();
78
+ var treeModeOptions = getTreeModeOptions();
79
+ var rowDragOptions = getRowDragOptions();
80
+ var allowDragIntoRow = !!treeModeOptions && (rowDragOptions === null || rowDragOptions === void 0 ? void 0 : rowDragOptions.allowDragIntoRow);
81
+ var isLeave = !isMouseOnDropTarget(event, dropZoneTarget);
82
+ var overIndex = -1;
83
+ var direction = 'bottom';
84
+ if (!isLeave && dataSource.length > 0) {
85
+ var overDragItem = getDragRowItem(event.target, dropZoneTarget, dataSource);
86
+ if (overDragItem) {
87
+ var rowIndex = overDragItem.rowIndex,
88
+ cell = overDragItem.cell;
89
+ overIndex = rowIndex;
90
+ direction = getDirection(cell, event.clientY, allowDragIntoRow);
91
+ }
92
+ }
93
+ if (overIndex === -1 && dataSource.length > 0 && dropZoneTarget.contains(event.target)) {
94
+ overIndex = dataSource.length - 1;
95
+ direction = 'bottom';
96
+ }
97
+ var overRow = overIndex >= 0 ? dataSource[overIndex] : null;
98
+ return {
99
+ startRowIndex: dragItem.rowIndex,
100
+ startRow: dragItem.row,
101
+ endRowIndex: overIndex,
102
+ endRow: overRow,
103
+ startDropZoneTagret: startDropZoneTagret,
104
+ startCommonParams: startCommonParams,
105
+ commonParams: commonParams,
106
+ dropZoneTarget: dropZoneTarget,
107
+ event: event,
108
+ dragPosition: direction,
109
+ isFinished: isFinished,
110
+ x: x,
111
+ y: y
112
+ };
113
+ };
114
+ var onDragging = function onDragging(event) {
58
115
  var _a;
59
- // 开始拖拽
60
- artTable.classList.add((0, _classnames.default)(_styles.Classes.rowDragging));
61
- (_a = opt === null || opt === void 0 ? void 0 : opt.onDragStart) === null || _a === void 0 ? void 0 : _a.call(opt, event);
116
+ var rowDragEvent = getRowDragEvent(event, false);
117
+ (_a = opt === null || opt === void 0 ? void 0 : opt.onDragMove) === null || _a === void 0 ? void 0 : _a.call(opt, rowDragEvent);
118
+ pipeline.setStateAtKey(rowDragKey, rowDragEvent);
62
119
  };
63
- var handleDragMove = function handleDragMove(event) {
120
+ var onDragStop = function onDragStop(event) {
64
121
  var _a;
65
- (_a = opt === null || opt === void 0 ? void 0 : opt.onDragMove) === null || _a === void 0 ? void 0 : _a.call(opt, event);
66
- pipeline.setStateAtKey(rowDragKey, event);
122
+ var rowDragEvent = getRowDragEvent(event, true);
123
+ pipeline.setStateAtKey(rowDragKey, rowDragEvent);
124
+ (_a = opt === null || opt === void 0 ? void 0 : opt.onDragEnd) === null || _a === void 0 ? void 0 : _a.call(opt, rowDragEvent);
67
125
  };
68
- var handleDragEnd = function handleDragEnd(event, isValid) {
126
+ var onDragStart = function onDragStart(event) {
69
127
  var _a;
70
- artTable.classList.remove((0, _classnames.default)(_styles.Classes.rowDragging));
71
- pipeline.setStateAtKey(rowDragKey, event);
72
- // 超出拖拽范围不触发dragend事件
73
- if (isValid) {
74
- (_a = opt === null || opt === void 0 ? void 0 : opt.onDragEnd) === null || _a === void 0 ? void 0 : _a.call(opt, event);
75
- }
128
+ var rowDragEvent = getRowDragEvent(event, false);
129
+ (_a = opt === null || opt === void 0 ? void 0 : opt.onDragStart) === null || _a === void 0 ? void 0 : _a.call(opt, rowDragEvent);
76
130
  };
77
- var getDragEvent = function getDragEvent(startRowInfo, endRowInfo, _ref) {
78
- var isFinished = _ref.isFinished,
79
- _ref$dragPosition = _ref.dragPosition,
80
- dragPosition = _ref$dragPosition === void 0 ? 'bottom' : _ref$dragPosition;
81
- return {
82
- startRowIndex: startRowInfo.rowIndex,
83
- startRow: startRowInfo.row,
84
- endRowIndex: endRowInfo.rowIndex,
85
- endRow: endRowInfo.row,
86
- dragPosition: dragPosition,
87
- isFinished: isFinished
88
- };
131
+ var onDragLeave = function onDragLeave(event) {
132
+ var _a;
133
+ var rowDragEvent = getRowDragEvent(event, false);
134
+ pipeline.setStateAtKey(rowDragKey, rowDragEvent);
135
+ (_a = opt === null || opt === void 0 ? void 0 : opt.onDragLeave) === null || _a === void 0 ? void 0 : _a.call(opt, rowDragEvent);
89
136
  };
90
- var updateScrollPosition = function updateScrollPosition(mouseMoveEvent) {
91
- if (opt === null || opt === void 0 ? void 0 : opt.suppressScrollMove) return;
92
- var clientY = mouseMoveEvent.clientY;
93
- var tableBodyClientRect = tableBody.getBoundingClientRect();
94
- var top = tableBodyClientRect.top,
95
- height = tableBodyClientRect.height;
96
- if (clientY + SCROLL_OFFSET >= top + height) {
97
- pipeline.ref.current.domHelper.tableBody.scrollTop += SCROLL_OFFSET;
98
- }
99
- if (clientY + SCROLL_OFFSET <= top) {
100
- pipeline.ref.current.domHelper.tableBody.scrollTop -= SCROLL_OFFSET;
137
+ var onDragEnter = function onDragEnter(event) {
138
+ var _a;
139
+ var rowDragEvent = getRowDragEvent(event, false);
140
+ pipeline.setStateAtKey(rowDragKey, rowDragEvent);
141
+ (_a = opt === null || opt === void 0 ? void 0 : opt.onDragEnter) === null || _a === void 0 ? void 0 : _a.call(opt, rowDragEvent);
142
+ };
143
+ var currentDropZone = {
144
+ getContainer: function getContainer() {
145
+ var lastPipeline = pipeline.getLastPipeline();
146
+ return lastPipeline.ref.current.domHelper.tableBody;
147
+ },
148
+ onDragEnter: onDragEnter,
149
+ onDragLeave: onDragLeave,
150
+ onDragging: onDragging,
151
+ onDragStop: onDragStop,
152
+ isTable: true,
153
+ tableParams: {
154
+ getDataSource: function getDataSource() {
155
+ var lastPipeline = pipeline.getLastPipeline();
156
+ return lastPipeline.getDataSource();
157
+ },
158
+ getTreeModeOptions: function getTreeModeOptions() {
159
+ var lastPipeline = pipeline.getLastPipeline();
160
+ return lastPipeline.getFeatureOptions('treeModeOptions');
161
+ },
162
+ getRowDragOptions: function getRowDragOptions() {
163
+ var lastPipeline = pipeline.getLastPipeline();
164
+ return lastPipeline.getFeatureOptions('rowDragOptions');
165
+ }
101
166
  }
102
167
  };
103
- var onMouseDown = function onMouseDown(mouseDownEvent) {
168
+ var onMouseDown = function onMouseDown(event) {
104
169
  var _a;
105
- var startRowInfo = getTargetRowInfo(mouseDownEvent.target, tableBody, dataSource);
106
- var endRowInfo = startRowInfo;
107
- if (!startRowInfo || startRowInfo.code !== rowDragColumn.code) return;
108
- if ((_a = opt === null || opt === void 0 ? void 0 : opt.isDisabled) === null || _a === void 0 ? void 0 : _a.call(opt, startRowInfo.row, startRowInfo.rowIndex)) return;
109
- // 默认拖拽插入的位置是向下
110
- var dragPosition = 'bottom';
111
- var isOutOfRange = false;
170
+ var mouseDownEvent = event.nativeEvent;
171
+ var startDataItem = getDragRowItem(mouseDownEvent.target, tableBody, dataSource);
172
+ if (!startDataItem || startDataItem.code !== rowDragColumn.code) return;
173
+ if ((_a = opt === null || opt === void 0 ? void 0 : opt.isDisabled) === null || _a === void 0 ? void 0 : _a.call(opt, startDataItem.row, startDataItem.rowIndex)) return;
112
174
  var isValidDrag = false;
113
- var dragStartEvent = getDragEvent(startRowInfo, endRowInfo, {
114
- isFinished: false,
115
- dragPosition: 'bottom'
116
- });
117
- handleDragStrat(dragStartEvent);
118
- var tableWidth = tableBody.clientWidth;
119
- var startRowRects = startRowInfo.cell.getBoundingClientRect();
120
- // 光标位置距离初始拖拽行的偏移量
121
- var mouseDownClientY = mouseDownEvent.clientY;
122
- var startOffset = mouseDownEvent.clientY - startRowRects.top;
123
- var dragElement = createDragElement(startRowRects, tableWidth, rowHeight);
124
- // 可拖拽的范围
125
- var dragRange = getDragRange(tableBody, {
126
- startOffset: startOffset,
127
- rowHeight: rowHeight
128
- });
129
- var mousePosition = {
130
- x: mouseDownEvent.clientX,
131
- y: mouseDownEvent.clientY
175
+ var isDragging = false;
176
+ var dragElement = null;
177
+ var dragLine = null;
178
+ var lastDropTarget = null;
179
+ var timeoutId = null;
180
+ var intervalId = null;
181
+ var expandRowTimeoutId = null;
182
+ var expandRowCallBackList = [];
183
+ var updateScrollPosition = function updateScrollPosition(tableBody, mouseMoveEvent) {
184
+ if (opt === null || opt === void 0 ? void 0 : opt.suppressScrollMove) return;
185
+ if (timeoutId) {
186
+ clearTimeout(timeoutId);
187
+ }
188
+ if (intervalId) {
189
+ clearInterval(intervalId);
190
+ }
191
+ if (!tableBody) return;
192
+ var moveOffset = getScrollMoveOffset(tableBody, mouseMoveEvent);
193
+ if (moveOffset === 0) {
194
+ return;
195
+ }
196
+ timeoutId = setTimeout(function () {
197
+ intervalId = setInterval(function () {
198
+ tableBody.scrollTop += moveOffset;
199
+ }, 50);
200
+ }, 500);
132
201
  };
133
- var mousemove$ = (0, _rxjs.fromEvent)(window, 'mousemove');
134
- var mouseup$ = (0, _rxjs.fromEvent)(window, 'mouseup');
135
- var scrollCallback = function scrollCallback(event) {
136
- // 在当前表格内滚动不处理
137
- if (event.target === tableBody) return;
138
- dragRange = getDragRange(tableBody, {
139
- startOffset: startOffset,
140
- rowHeight: rowHeight
202
+ var handleDragStart = function handleDragStart(mouseDownEvent) {
203
+ var _a;
204
+ dragElement = createDragElement(mouseDownEvent, tableBody); // 创建拖拽悬浮框
205
+ var isTreeTable = !!pipeline.getFeatureOptions('treeModeOptions');
206
+ dragLine = createDragLine(isTreeTable); // 创建拖拽插入指示线
207
+ var dragText = (opt === null || opt === void 0 ? void 0 : opt.rowDragText) ? (_a = opt === null || opt === void 0 ? void 0 : opt.rowDragText) === null || _a === void 0 ? void 0 : _a.call(opt, startDataItem.row, startDataItem.rowIndex) : "\u7B2C".concat(startDataItem.rowIndex, "\u884C\u5185\u5BB9");
208
+ setDragText(dragElement, dragText); // 设置悬浮框显示文本
209
+ artTable.classList.add((0, _classnames.default)(_styles.Classes.rowDragging));
210
+ rowDragApi.setDragStatus('start');
211
+ var dragEvent = createDropTargetEvent(currentDropZone, mouseDownEvent, startDataItem, currentDropZone);
212
+ onDragStart(dragEvent);
213
+ };
214
+ var handleDragMove = function handleDragMove(mouseMoveEvent) {
215
+ var _a;
216
+ positionDragElemment(dragElement, mouseMoveEvent); // 更新拖拽悬浮框位置
217
+ rowDragApi.setDragStatus('dragging');
218
+ setDragElementIcon(dragElement, 'move');
219
+ var rowDropZones = rowDragApi.getRowDropZone();
220
+ var validDropZones = (0, _concat.default)(rowDropZones).call(rowDropZones, currentDropZone); // 可放置区域加上自身
221
+ var dropTarget = (0, _find.default)(validDropZones).call(validDropZones, function (zone) {
222
+ return isMouseOnDropTarget(mouseMoveEvent, zone.getContainer());
223
+ }) || null;
224
+ updateScrollPosition(dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.getContainer(), mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
225
+ if (dropTarget !== lastDropTarget) {
226
+ // 拖拽离开表格
227
+ if (lastDropTarget !== null && dropTarget === null) {
228
+ if (lastDropTarget.onDragLeave) {
229
+ setDragElementIcon(dragElement, 'notAllowed');
230
+ hiddenDragLine(dragLine);
231
+ lastDropTarget.getContainer().classList.remove(_styles.Classes.rowDragNoData);
232
+ var dragEvent = createDropTargetEvent(lastDropTarget, mouseMoveEvent, startDataItem, currentDropZone);
233
+ lastDropTarget.onDragLeave(dragEvent);
234
+ }
235
+ }
236
+ // 拖拽进入表格
237
+ if (lastDropTarget === null && dropTarget !== null) {
238
+ if (dropTarget.onDragEnter) {
239
+ setDragElementIcon(dragElement, 'move');
240
+ if (dropTarget.isTable) {
241
+ showDragLine(dragLine);
242
+ var getTreeModeOptions = dropTarget.tableParams.getTreeModeOptions;
243
+ var treeModeOptions = getTreeModeOptions();
244
+ var isTreeTable = !!treeModeOptions;
245
+ // 判断拖拽进入的表格是否是树形表格,控制指示线样式
246
+ if (isTreeTable) {
247
+ dragLine.classList.add(_styles.Classes.treeTableRowDragLine);
248
+ } else {
249
+ dragLine.classList.remove(_styles.Classes.treeTableRowDragLine);
250
+ }
251
+ }
252
+ var _dragEvent = createDropTargetEvent(dropTarget, mouseMoveEvent, startDataItem, currentDropZone);
253
+ dropTarget.onDragEnter(_dragEvent);
254
+ }
255
+ }
256
+ lastDropTarget = dropTarget;
257
+ }
258
+ if (dropTarget) {
259
+ // 拖拽区域在表格中,更新拖拽插入指示线位置
260
+ if (dropTarget.isTable) {
261
+ positionDragLine({
262
+ lineElement: dragLine,
263
+ dragZone: dropTarget,
264
+ event: mouseMoveEvent
265
+ });
266
+ }
267
+ // 树形表格悬停1s展开对应行节点
268
+ if ((_a = dropTarget === null || dropTarget === void 0 ? void 0 : dropTarget.tableParams) === null || _a === void 0 ? void 0 : _a.getTreeModeOptions()) {
269
+ if (expandRowTimeoutId) {
270
+ clearTimeout(expandRowTimeoutId);
271
+ }
272
+ expandRowTimeoutId = setTimeout(function () {
273
+ var treeModeOptions = dropTarget.tableParams.getTreeModeOptions();
274
+ var treeMetaKey = treeModeOptions.treeMetaKey,
275
+ onExpand = treeModeOptions.onExpand,
276
+ isExpanded = treeModeOptions.isExpanded,
277
+ onCollapse = treeModeOptions.onCollapse;
278
+ // 鼠标悬停所在的拖拽行信息
279
+ var dataSource = dropTarget.tableParams.getDataSource();
280
+ var dragItem = getDragRowItem(mouseMoveEvent.target, dropTarget.getContainer(), dataSource);
281
+ if (!dragItem) return;
282
+ var row = dragItem.row;
283
+ var _row$treeMetaKey = row[treeMetaKey],
284
+ rowKey = _row$treeMetaKey.rowKey,
285
+ isLeaf = _row$treeMetaKey.isLeaf;
286
+ if (!isLeaf && !isExpanded(rowKey)) {
287
+ onExpand(rowKey);
288
+ expandRowCallBackList.push(function () {
289
+ return onCollapse(rowKey);
290
+ });
291
+ }
292
+ }, 1000);
293
+ }
294
+ if (dropTarget.onDragging) {
295
+ var _dragEvent2 = createDropTargetEvent(dropTarget, mouseMoveEvent, startDataItem, currentDropZone);
296
+ dropTarget.onDragging(_dragEvent2);
297
+ }
298
+ }
299
+ };
300
+ var handleDragStop = function handleDragStop(mouseUpEvent) {
301
+ if (!isValidDrag) {
302
+ return;
303
+ }
304
+ removeElement(dragElement);
305
+ removeElement(dragLine);
306
+ artTable.classList.remove((0, _classnames.default)(_styles.Classes.rowDragging));
307
+ rowDragApi.setDragStatus('finished');
308
+ clearTimeout(timeoutId);
309
+ clearInterval(intervalId);
310
+ clearTimeout(expandRowTimeoutId);
311
+ var rowDropZones = rowDragApi.getRowDropZone();
312
+ rowDropZones.forEach(function (dropzone) {
313
+ var container = dropzone.getContainer();
314
+ container && container.classList.remove(_styles.Classes.rowDragNoData);
315
+ });
316
+ var validDropZones = (0, _concat.default)(rowDropZones).call(rowDropZones, currentDropZone);
317
+ var dropTarget = (0, _find.default)(validDropZones).call(validDropZones, function (zone) {
318
+ return isMouseOnDropTarget(mouseUpEvent, zone.getContainer());
141
319
  });
142
- var isOutOfRange = isOutOfDragRange(mousePosition, dragRange);
143
- updateCurSorStyle(isOutOfRange);
320
+ if (dropTarget && dropTarget.onDragStop) {
321
+ var dragEvent = createDropTargetEvent(dropTarget, mouseUpEvent, startDataItem, currentDropZone);
322
+ dropTarget.onDragStop(dragEvent);
323
+ }
324
+ while (expandRowCallBackList.length > 0) {
325
+ var callback = expandRowCallBackList.pop();
326
+ callback();
327
+ }
144
328
  };
145
- document.addEventListener('scroll', scrollCallback, true);
146
- var rowDrag$ = mousemove$.pipe((0, _filterInstanceProperty(_operators))(function (mouseMoveEvent) {
329
+ var mousemove$ = (0, _rxjs.fromEvent)(window, 'mousemove');
330
+ var mouseup$ = (0, _rxjs.fromEvent)(window, 'mouseup');
331
+ var rowDragMove$ = mousemove$.pipe((0, _filterInstanceProperty(_operators))(function (mouseMoveEvent) {
147
332
  var mouseMoveClientY = mouseMoveEvent.clientY;
333
+ var mouseDownClientY = mouseDownEvent.clientY;
148
334
  // 上下移动偏移量大于5才是有效的拖拽
149
335
  if (Math.abs(mouseMoveClientY - mouseDownClientY) > 5) {
150
336
  isValidDrag = true;
151
337
  }
152
338
  return isValidDrag;
153
339
  }), (0, _mapInstanceProperty(_operators))(function (mouseMoveEvent) {
154
- var clientX = mouseMoveEvent.clientX,
155
- clientY = mouseMoveEvent.clientY;
156
- var tagretRow = getTargetRowInfo(mouseMoveEvent.target, tableBody, dataSource);
157
- if (tagretRow) {
158
- endRowInfo = tagretRow;
340
+ if (!isDragging) {
341
+ isDragging = true;
342
+ handleDragStart(mouseDownEvent);
343
+ handleDragMove(mouseDownEvent);
159
344
  }
160
- var targetRowRects = endRowInfo.cell.getBoundingClientRect();
161
- // 判断拖拽插入的位置,拖拽框上边框位于目标行之上则向上插入,否则向下插入
162
- var isMoveToTop = clientY - startOffset < targetRowRects.top;
163
- dragPosition = isMoveToTop ? 'top' : 'bottom';
164
- isOutOfRange = isOutOfDragRange({
165
- x: clientX,
166
- y: clientY
167
- }, dragRange);
168
- mousePosition = {
169
- x: clientX,
170
- y: clientY
171
- };
172
- updateScrollPosition(mouseMoveEvent); // 拖拽到底时让滚动条可以滚动
173
- updateDragElementPosition(dragElement, dragRange, {
174
- x: clientX,
175
- y: clientY,
176
- startOffset: startOffset
177
- });
178
- updateCurSorStyle(isOutOfRange);
179
- return {
180
- startRowInfo: startRowInfo,
181
- endRowInfo: endRowInfo,
182
- dragPosition: dragPosition
183
- };
345
+ handleDragMove(mouseMoveEvent);
184
346
  }), (0, _operators.takeUntil)(mouseup$));
185
- rowDrag$.subscribe({
186
- next: function next(_ref2) {
187
- var startRowInfo = _ref2.startRowInfo,
188
- endRowInfo = _ref2.endRowInfo,
189
- dragPosition = _ref2.dragPosition;
190
- var dragMoveEvent = getDragEvent(startRowInfo, endRowInfo, {
191
- isFinished: false,
192
- dragPosition: dragPosition
193
- });
194
- handleDragMove(dragMoveEvent);
195
- },
196
- complete: function complete() {
197
- var dragEndEvent = getDragEvent(startRowInfo, endRowInfo, {
198
- isFinished: true,
199
- dragPosition: dragPosition
200
- });
201
- var isValid = isValidDrag && !isOutOfRange;
202
- handleDragEnd(dragEndEvent, isValid);
203
- removeDragElement(dragElement);
204
- removeCurSorStyle();
205
- document.removeEventListener('scroll', scrollCallback, true);
347
+ rowDragMove$.subscribe();
348
+ var rowDragEnd$ = mouseup$.pipe((0, _mapInstanceProperty(_operators))(function (mouseUpEvent) {
349
+ handleDragStop(mouseUpEvent);
350
+ })).subscribe({
351
+ next: function next() {
352
+ rowDragEnd$.unsubscribe();
206
353
  }
207
354
  });
208
355
  };
209
356
  var rowDragColumn = (opt === null || opt === void 0 ? void 0 : opt.rowDragColumn) || defaultRowDragColumn;
210
357
  pipeline.setFeatureOptions('rowDragColumnKey', rowDragColumn.code);
358
+ rowDragApi.setRowDropZoneParams(currentDropZone);
211
359
  var nextColumns = (0, _slice.default)(_context = pipeline.getColumns()).call(_context);
212
360
  nextColumns.unshift(rowDragColumn);
213
361
  pipeline.columns(nextColumns);
@@ -216,13 +364,27 @@ function rowDrag(opt) {
216
364
  });
217
365
  pipeline.appendRowPropsGetter(function (row, rowIndex) {
218
366
  var rowDragEvent = pipeline.getStateAtKey(rowDragKey) || {};
367
+ var dragStatus = rowDragApi.getDragStatus();
219
368
  var startRowIndex = rowDragEvent.startRowIndex,
220
369
  endRowIndex = rowDragEvent.endRowIndex,
370
+ endRow = rowDragEvent.endRow,
221
371
  isFinished = rowDragEvent.isFinished,
222
372
  dragPosition = rowDragEvent.dragPosition;
223
373
  var isFooterCell = row[pipeline.getFeatureOptions('footerRowMetaKey')];
224
- if (isFooterCell || isFinished || rowIndex !== startRowIndex && rowIndex !== endRowIndex) return;
225
- var className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _styles.Classes.rowDragStart, rowIndex === startRowIndex), _styles.Classes.rowDragEnd, rowIndex === endRowIndex), _styles.Classes.rowDragEndToTop, rowIndex === endRowIndex && dragPosition === 'top'), _styles.Classes.rowDragEndToBottom, rowIndex === endRowIndex && dragPosition === 'bottom'));
374
+ var treeModeOptions = pipeline.getFeatureOptions('treeModeOptions');
375
+ var isTreeTable = !!treeModeOptions;
376
+ if (isFooterCell || isFinished || !isTreeTable && rowIndex !== startRowIndex && rowIndex !== endRowIndex) return;
377
+ var parentRowKeyIndex = -1;
378
+ if (isTreeTable && endRow) {
379
+ var _context2;
380
+ var treeMetaKey = treeModeOptions.treeMetaKey;
381
+ var parentRowKey = endRow[treeMetaKey].parentRowKey;
382
+ var primaryKey = pipeline.ensurePrimaryKey('rowDrag');
383
+ parentRowKeyIndex = (0, _findIndex.default)(_context2 = pipeline.getDataSource()).call(_context2, function (row) {
384
+ return _internals.internals.safeGetRowKey(primaryKey, row, -1) === parentRowKey;
385
+ });
386
+ }
387
+ var className = (0, _classnames.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _styles.Classes.rowDragStart, rowIndex === startRowIndex && dragStatus !== 'finished'), _styles.Classes.rowDragEnd, rowIndex === endRowIndex), _styles.Classes.rowDragEndParent, isTreeTable && rowIndex === parentRowKeyIndex && dragPosition !== 'into'), _styles.Classes.rowDragEndInto, rowIndex === endRowIndex && dragPosition === 'into'), _styles.Classes.rowDragEndToTop, rowIndex === endRowIndex && dragPosition === 'top'), _styles.Classes.rowDragEndToBottom, rowIndex === endRowIndex && dragPosition === 'bottom'));
226
388
  return {
227
389
  className: className
228
390
  };
@@ -230,7 +392,7 @@ function rowDrag(opt) {
230
392
  return pipeline;
231
393
  };
232
394
  }
233
- function getTargetRowInfo(target, tableBody, record) {
395
+ function getDragRowItem(target, tableBody, record) {
234
396
  while (target && tableBody.contains(target)) {
235
397
  if (target.getAttribute('data-role') === 'table-cell') {
236
398
  var code = target.getAttribute('data-code');
@@ -249,6 +411,15 @@ function getTargetRowInfo(target, tableBody, record) {
249
411
  }
250
412
  return null;
251
413
  }
414
+ function findTargetRow(target, tableBody) {
415
+ while (target && tableBody.contains(target)) {
416
+ if (target.getAttribute('data-role') === 'table-row') {
417
+ return target;
418
+ }
419
+ target = target.parentElement;
420
+ }
421
+ return null;
422
+ }
252
423
  function isEleInFooter(target) {
253
424
  while (target && !target.classList.contains(_styles.Classes.artTable)) {
254
425
  if (target.classList.contains(_styles.Classes.tableFooter)) {
@@ -258,75 +429,318 @@ function isEleInFooter(target) {
258
429
  }
259
430
  return false;
260
431
  }
261
- function createDragElement(rects, tableWidth, rowHeight) {
262
- var _context2, _context3, _context4;
263
- var x = rects.x,
264
- y = rects.y;
265
- var dragMoveElement = document.createElement('div');
266
- dragMoveElement.className = (0, _classnames.default)(_styles.Classes.rowDragElement);
267
- dragMoveElement.style.cssText = (0, _concat.default)(_context2 = (0, _concat.default)(_context3 = (0, _concat.default)(_context4 = "position:fixed;z-index:9999;left:".concat(x, "px;top:")).call(_context4, y, "px;pointer-events:none;width:")).call(_context3, tableWidth, "px;height:")).call(_context2, rowHeight, "px;background:var(--primary-color);opacity: 0.1;");
268
- document.body.appendChild(dragMoveElement);
269
- return dragMoveElement;
270
- }
271
- function updateDragElementPosition(element, dragRange, _ref3) {
272
- var x = _ref3.x,
273
- y = _ref3.y,
274
- startOffset = _ref3.startOffset;
275
- var validPosition = getValidPosition({
276
- x: x,
277
- y: y
278
- }, dragRange);
279
- element.style.top = validPosition.y - startOffset + 'px';
280
- return element;
432
+ function createDragElement(mouseDownEvent, tableBody) {
433
+ var _context3, _context4;
434
+ var ELEMENT_TEMPLATE = (0, _concat.default)(_context3 = (0, _concat.default)(_context4 = "<div class='".concat(_styles.Classes.rowDragElement, "'>\n <span class='")).call(_context4, _styles.Classes.rowDragElementIcon, "'></span>\n <div class='")).call(_context3, _styles.Classes.rowDragElementLabel, "'></div>\n </div>");
435
+ var element = document.createElement('div');
436
+ element.innerHTML = ELEMENT_TEMPLATE;
437
+ var dragElement = element.firstChild;
438
+ var targetRow = findTargetRow(mouseDownEvent.target, tableBody);
439
+ if (targetRow) {
440
+ var rect = targetRow.getBoundingClientRect();
441
+ dragElement.style.height = rect.height + 'px';
442
+ }
443
+ var bodyRect = tableBody.getBoundingClientRect();
444
+ dragElement.style.maxWidth = bodyRect.width + 'px';
445
+ document.body.appendChild(dragElement);
446
+ return dragElement;
281
447
  }
282
- function removeDragElement(element) {
283
- document.body.removeChild(element);
448
+ function createDragLine(isTreeTable) {
449
+ var dragLine = document.createElement('div');
450
+ dragLine.classList.add(_styles.Classes.rowDragLine);
451
+ if (isTreeTable) {
452
+ dragLine.classList.add(_styles.Classes.treeTableRowDragLine);
453
+ }
454
+ document.body.appendChild(dragLine);
455
+ return dragLine;
284
456
  }
285
- function updateCurSorStyle(isOutOfRange) {
286
- if (isOutOfRange) {
287
- document.body.style.cursor = 'no-drop';
457
+ function positionDragLine(_ref) {
458
+ var _context7;
459
+ var lineElement = _ref.lineElement,
460
+ dragZone = _ref.dragZone,
461
+ event = _ref.event;
462
+ var tableContainer = dragZone.getContainer();
463
+ var _dragZone$tableParams = dragZone.tableParams,
464
+ getDataSource = _dragZone$tableParams.getDataSource,
465
+ getTreeModeOptions = _dragZone$tableParams.getTreeModeOptions,
466
+ getRowDragOptions = _dragZone$tableParams.getRowDragOptions;
467
+ var dataSource = getDataSource();
468
+ var treeModeOptions = getTreeModeOptions();
469
+ var rowDragOptions = getRowDragOptions() || {};
470
+ var allowDragIntoRow = rowDragOptions.allowDragIntoRow;
471
+ var isTreeTable = !!treeModeOptions;
472
+ var bodyRect = tableContainer.getBoundingClientRect();
473
+ var offsetParentSize = getElementRectWithOffset(document.body);
474
+ if (dataSource.length === 0) {
475
+ tableContainer.classList.add(_styles.Classes.rowDragNoData);
476
+ lineElement.style.display = 'none';
288
477
  } else {
289
- document.body.style.cursor = 'move';
478
+ tableContainer.classList.remove(_styles.Classes.rowDragNoData);
479
+ lineElement.style.display = 'block';
480
+ }
481
+ // 鼠标悬停所在的拖拽行信息
482
+ var dragItem = getDragRowItem(event.target, tableContainer, dataSource);
483
+ if (!dragItem) {
484
+ if (dataSource.length > 0 && tableContainer.contains(event.target)) {
485
+ var _context5, _context6;
486
+ var _rowIndex = dataSource.length - 1;
487
+ var _row = dataSource[_rowIndex];
488
+ var _direction = 'bottom';
489
+ var _targetCell = isTreeTable ? tableContainer.querySelector((0, _concat.default)(_context5 = "tr[data-rowindex=\"".concat(_rowIndex, "\"] .")).call(_context5, _styles.Classes.tableExtendCell)) : tableContainer.querySelector((0, _concat.default)(_context6 = "tr[data-rowindex=\"".concat(_rowIndex, "\"] .")).call(_context6, _styles.Classes.rowDragCell));
490
+ if (!_targetCell) return;
491
+ var _getLinePosition = getLinePosition({
492
+ treeModeOptions: treeModeOptions,
493
+ cell: _targetCell,
494
+ row: _row,
495
+ direction: _direction,
496
+ offsetParentSize: offsetParentSize,
497
+ bodyRect: bodyRect
498
+ }),
499
+ _top = _getLinePosition.top,
500
+ _left = _getLinePosition.left,
501
+ _width = _getLinePosition.width;
502
+ lineElement.style.left = "".concat(_left, "px");
503
+ lineElement.style.top = "".concat(_top, "px");
504
+ lineElement.style.width = "".concat(_width, "px");
505
+ }
506
+ return;
507
+ }
508
+ var cell = dragItem.cell,
509
+ rowIndex = dragItem.rowIndex,
510
+ row = dragItem.row;
511
+ var allowDragInto = isTreeTable && allowDragIntoRow;
512
+ var direction = getDirection(cell, event.clientY, allowDragInto);
513
+ var targetCell = isTreeTable ? tableContainer.querySelector((0, _concat.default)(_context7 = "tr[data-rowindex=\"".concat(rowIndex, "\"] .")).call(_context7, _styles.Classes.tableExtendCell)) : cell;
514
+ if (!targetCell) return;
515
+ var _getLinePosition2 = getLinePosition({
516
+ treeModeOptions: treeModeOptions,
517
+ cell: targetCell,
518
+ row: row,
519
+ direction: direction,
520
+ offsetParentSize: offsetParentSize,
521
+ bodyRect: bodyRect
522
+ }),
523
+ top = _getLinePosition2.top,
524
+ left = _getLinePosition2.left,
525
+ width = _getLinePosition2.width;
526
+ lineElement.style.left = "".concat(left, "px");
527
+ lineElement.style.top = "".concat(top, "px");
528
+ lineElement.style.width = "".concat(width, "px");
529
+ if (direction === 'into') {
530
+ lineElement.style.display = 'none';
531
+ } else {
532
+ lineElement.style.display = 'block';
290
533
  }
291
534
  }
292
- function removeCurSorStyle() {
293
- document.body.style.cursor = 'default';
535
+ function showDragLine(lineElement) {
536
+ lineElement.style.display = 'block';
294
537
  }
295
- function getDragRange(tableBody, _ref4) {
296
- var startOffset = _ref4.startOffset,
297
- rowHeight = _ref4.rowHeight;
298
- var tableBodyClientRect = tableBody.getBoundingClientRect();
299
- var height = tableBodyClientRect.height,
300
- width = tableBodyClientRect.width,
301
- top = tableBodyClientRect.top,
302
- left = tableBodyClientRect.left;
538
+ function hiddenDragLine(lineElement) {
539
+ lineElement.style.display = 'none';
540
+ }
541
+ function positionDragElemment(element, event) {
542
+ var _a, _b, _c, _d, _e, _f;
543
+ if (!element) return;
544
+ var elementRect = element.getBoundingClientRect();
545
+ var eleHeight = elementRect.height;
546
+ var browserWidth = (_b = (_a = document.body) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : window.innerHeight || ((_c = document.documentElement) === null || _c === void 0 ? void 0 : _c.clientWidth) || 0;
547
+ var browserHeight = (_e = (_d = document.body) === null || _d === void 0 ? void 0 : _d.clientHeight) !== null && _e !== void 0 ? _e : window.innerHeight || ((_f = document.documentElement) === null || _f === void 0 ? void 0 : _f.clientHeight) || 0;
548
+ var offsetParentSize = getElementRectWithOffset(element.offsetParent);
549
+ var clientX = event.clientX,
550
+ clientY = event.clientY;
551
+ var top = clientY - offsetParentSize.top - eleHeight / 2;
552
+ var left = clientX - offsetParentSize.left;
553
+ var windowScrollX = window.pageXOffset;
554
+ var windowScrollY = window.pageYOffset;
555
+ if (browserWidth > 0 && left + element.clientWidth > browserWidth + windowScrollX) {
556
+ left = Math.max(browserWidth + windowScrollX - element.clientWidth, 0);
557
+ }
558
+ if (browserHeight > 0 && top + element.clientHeight > browserHeight + windowScrollY) {
559
+ top = Math.max(browserHeight + windowScrollY - element.clientHeight, 0);
560
+ }
561
+ element.style.left = "".concat(left, "px");
562
+ element.style.top = "".concat(top, "px");
563
+ }
564
+ function getElementRectWithOffset(el) {
565
+ var offsetElementRect = el.getBoundingClientRect();
566
+ var _getElementSize2 = _getElementSize(el),
567
+ borderTopWidth = _getElementSize2.borderTopWidth,
568
+ borderLeftWidth = _getElementSize2.borderLeftWidth,
569
+ borderRightWidth = _getElementSize2.borderRightWidth,
570
+ borderBottomWidth = _getElementSize2.borderBottomWidth;
303
571
  return {
304
- minX: left,
305
- maxX: left + width,
306
- minY: top - rowHeight + startOffset,
307
- maxY: top + height + startOffset
572
+ top: offsetElementRect.top + (borderTopWidth || 0),
573
+ left: offsetElementRect.left + (borderLeftWidth || 0),
574
+ right: offsetElementRect.right + (borderRightWidth || 0),
575
+ bottom: offsetElementRect.bottom + (borderBottomWidth || 0)
308
576
  };
309
577
  }
310
- function getValidPosition(position, dragRange) {
311
- var x = position.x,
312
- y = position.y;
313
- var minX = dragRange.minX,
314
- maxX = dragRange.maxX,
315
- minY = dragRange.minY,
316
- maxY = dragRange.maxY;
317
- var newX = x < minX ? minX : x > maxX ? maxX : x;
318
- var newY = y < minY ? minY : y > maxY ? maxY : y;
578
+ function _getElementSize(el) {
579
+ var _window$getComputedSt = window.getComputedStyle(el),
580
+ height = _window$getComputedSt.height,
581
+ width = _window$getComputedSt.width,
582
+ borderTopWidth = _window$getComputedSt.borderTopWidth,
583
+ borderRightWidth = _window$getComputedSt.borderRightWidth,
584
+ borderBottomWidth = _window$getComputedSt.borderBottomWidth,
585
+ borderLeftWidth = _window$getComputedSt.borderLeftWidth,
586
+ paddingTop = _window$getComputedSt.paddingTop,
587
+ paddingRight = _window$getComputedSt.paddingRight,
588
+ paddingBottom = _window$getComputedSt.paddingBottom,
589
+ paddingLeft = _window$getComputedSt.paddingLeft,
590
+ marginTop = _window$getComputedSt.marginTop,
591
+ marginRight = _window$getComputedSt.marginRight,
592
+ marginBottom = _window$getComputedSt.marginBottom,
593
+ marginLeft = _window$getComputedSt.marginLeft,
594
+ boxSizing = _window$getComputedSt.boxSizing;
319
595
  return {
320
- x: newX,
321
- y: newY
596
+ height: parseFloat(height || '0'),
597
+ width: parseFloat(width || '0'),
598
+ borderTopWidth: parseFloat(borderTopWidth || '0'),
599
+ borderRightWidth: parseFloat(borderRightWidth || '0'),
600
+ borderBottomWidth: parseFloat(borderBottomWidth || '0'),
601
+ borderLeftWidth: parseFloat(borderLeftWidth || '0'),
602
+ paddingTop: parseFloat(paddingTop || '0'),
603
+ paddingRight: parseFloat(paddingRight || '0'),
604
+ paddingBottom: parseFloat(paddingBottom || '0'),
605
+ paddingLeft: parseFloat(paddingLeft || '0'),
606
+ marginTop: parseFloat(marginTop || '0'),
607
+ marginRight: parseFloat(marginRight || '0'),
608
+ marginBottom: parseFloat(marginBottom || '0'),
609
+ marginLeft: parseFloat(marginLeft || '0'),
610
+ boxSizing: boxSizing
611
+ };
612
+ }
613
+ function removeElement(element) {
614
+ document.body.removeChild(element);
615
+ }
616
+ function setDragElementIcon(element, iconName) {
617
+ var elementIcon = element.querySelector(".".concat(_styles.Classes.rowDragElementIcon));
618
+ clearElementChildren(elementIcon);
619
+ iconName = iconName || 'notAllowed';
620
+ var iconElement = document.createElement('span');
621
+ if (iconName === 'move') {
622
+ iconElement.classList.add(_styles.Classes.iconMove);
623
+ } else if (iconName === 'notAllowed') {
624
+ iconElement.classList.add(_styles.Classes.iconNotAllowed);
625
+ }
626
+ elementIcon.appendChild(iconElement);
627
+ }
628
+ function clearElementChildren(element) {
629
+ while (element && element.firstChild) {
630
+ element.removeChild(element.firstChild);
631
+ }
632
+ }
633
+ function getScrollMoveOffset(tableBody, mouseMoveEvent) {
634
+ var clientY = mouseMoveEvent.clientY;
635
+ var tableBodyClientRect = tableBody.getBoundingClientRect();
636
+ var top = tableBodyClientRect.top,
637
+ height = tableBodyClientRect.height;
638
+ if (clientY >= top + height - SCROLL_START_OFFSET && clientY <= top + height) {
639
+ return SCROLL_OFFSET;
640
+ }
641
+ if (clientY >= top && clientY <= top + SCROLL_START_OFFSET) {
642
+ return -SCROLL_OFFSET;
643
+ }
644
+ return 0;
645
+ }
646
+ function setDragText(element, dragText) {
647
+ var dragTextString = dragText.toString();
648
+ var elementIcon = element.querySelector(".".concat(_styles.Classes.rowDragElementLabel));
649
+ var stringNode = document.createTextNode(dragTextString);
650
+ elementIcon.appendChild(stringNode);
651
+ }
652
+ function isMouseOnDropTarget(mouseEvent, target) {
653
+ return target.contains(mouseEvent.target);
654
+ }
655
+ function createDropTargetEvent(dropZone, event, dragItem, startDropZone) {
656
+ var dropZoneTarget = dropZone.getContainer();
657
+ var startDropZoneTagret = startDropZone.getContainer();
658
+ var rect = dropZoneTarget.getBoundingClientRect();
659
+ var x = event.clientX - rect.left;
660
+ var y = event.clientY - rect.top;
661
+ var startDropZoneOptions = startDropZone.tableParams.getRowDragOptions();
662
+ var startCommonParams = startDropZoneOptions === null || startDropZoneOptions === void 0 ? void 0 : startDropZoneOptions.commonParams;
663
+ var targetEvent = {
664
+ dragItem: dragItem,
665
+ startDropZoneTagret: startDropZoneTagret,
666
+ startCommonParams: startCommonParams,
667
+ dropZoneTarget: dropZoneTarget,
668
+ event: event,
669
+ x: x,
670
+ y: y
322
671
  };
672
+ if (dropZone.isTable) {
673
+ var dropZoneOptions = dropZone.tableParams.getRowDragOptions();
674
+ var commonParams = dropZoneOptions === null || dropZoneOptions === void 0 ? void 0 : dropZoneOptions.commonParams;
675
+ targetEvent.dropZoneTableParams = dropZone.tableParams;
676
+ targetEvent.commonParams = commonParams;
677
+ }
678
+ return targetEvent;
679
+ }
680
+ function getDirection(cell, clientY) {
681
+ var isTreeTable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
682
+ var _cell$getBoundingClie = cell.getBoundingClientRect(),
683
+ height = _cell$getBoundingClie.height,
684
+ y = _cell$getBoundingClie.y;
685
+ var direction = 'bottom';
686
+ if (isTreeTable) {
687
+ if (y + height / 4 > clientY) {
688
+ direction = 'top';
689
+ } else if (y + height * 3 / 4 > clientY) {
690
+ direction = 'into';
691
+ }
692
+ } else if (y + height / 2 > clientY) {
693
+ direction = 'top';
694
+ }
695
+ return direction;
323
696
  }
324
- function isOutOfDragRange(position, dragRange) {
325
- var x = position.x,
326
- y = position.y;
327
- var minX = dragRange.minX,
328
- maxX = dragRange.maxX,
329
- minY = dragRange.minY,
330
- maxY = dragRange.maxY;
331
- return x > maxX || x < minX || y > maxY || y < minY;
332
- }
697
+ var getLinePosition = function getLinePosition(_ref2) {
698
+ var treeModeOptions = _ref2.treeModeOptions,
699
+ cell = _ref2.cell,
700
+ row = _ref2.row,
701
+ direction = _ref2.direction,
702
+ offsetParentSize = _ref2.offsetParentSize,
703
+ bodyRect = _ref2.bodyRect;
704
+ var isTreeTable = !!treeModeOptions;
705
+ if (isTreeTable) {
706
+ var iconWidth = treeModeOptions.iconWidth,
707
+ iconIndent = treeModeOptions.iconIndent,
708
+ iconGap = treeModeOptions.iconGap,
709
+ indentSize = treeModeOptions.indentSize,
710
+ treeMetaKey = treeModeOptions.treeMetaKey;
711
+ var _getElementSize3 = _getElementSize(cell),
712
+ paddingLeft = _getElementSize3.paddingLeft;
713
+ var expandCellRect = cell.getBoundingClientRect();
714
+ var _row$treeMetaKey2 = row[treeMetaKey],
715
+ rowKey = _row$treeMetaKey2.rowKey,
716
+ depth = _row$treeMetaKey2.depth,
717
+ isLeaf = _row$treeMetaKey2.isLeaf,
718
+ expanded = _row$treeMetaKey2.expanded;
719
+ var addWidth = isLeaf ? iconWidth + iconGap : 0;
720
+ var indent = iconIndent + depth * indentSize + addWidth;
721
+ var x = expandCellRect.x,
722
+ _y = expandCellRect.y,
723
+ _height = expandCellRect.height;
724
+ var _top2 = direction === 'bottom' ? _y + _height - offsetParentSize.top : _y - offsetParentSize.top;
725
+ var offsetX = Math.max(x + paddingLeft + indent - bodyRect.x, 0);
726
+ var _left2 = bodyRect.x + offsetX - offsetParentSize.left;
727
+ var _width2 = bodyRect.width - offsetX;
728
+ return {
729
+ top: _top2,
730
+ left: _left2,
731
+ width: _width2
732
+ };
733
+ }
734
+ // 根据鼠标悬停位置所在单元格和显示位置计算拖拽线的位置
735
+ var rect = cell.getBoundingClientRect();
736
+ var y = rect.y,
737
+ height = rect.height;
738
+ var top = direction === 'bottom' ? y + height - offsetParentSize.top : y - offsetParentSize.top;
739
+ var left = bodyRect.x - offsetParentSize.left;
740
+ var width = bodyRect.width;
741
+ return {
742
+ top: top,
743
+ left: left,
744
+ width: width
745
+ };
746
+ };