pro-design-vue 1.0.0-rc.9 → 1.1.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 (328) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +399 -210
  3. package/dist/index.full.min.js +8 -8
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +8 -8
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +399 -210
  8. package/es/components/config-provider/src/config-provider-container.vue2.mjs +2 -0
  9. package/es/components/config-provider/src/config-provider-container.vue2.mjs.map +1 -1
  10. package/es/components/config-provider/src/config-provider.vue2.mjs +4 -2
  11. package/es/components/config-provider/src/config-provider.vue2.mjs.map +1 -1
  12. package/es/components/config-provider/src/typing.d.ts +6 -0
  13. package/es/components/config-provider/src/useTokens.d.ts +24 -0
  14. package/es/components/config-provider/src/useTokens.mjs +58 -0
  15. package/es/components/config-provider/src/useTokens.mjs.map +1 -0
  16. package/es/components/counter/src/counter.vue.d.ts +2 -2
  17. package/es/components/drawer/src/drawer.vue2.mjs +1 -1
  18. package/es/components/drawer/src/drawer.vue2.mjs.map +1 -1
  19. package/es/components/form/src/Form.d.ts +11 -11
  20. package/es/components/form/src/base/BaseForm.d.ts +2 -2
  21. package/es/components/form/src/base/BaseForm.mjs +16 -11
  22. package/es/components/form/src/base/BaseForm.mjs.map +1 -1
  23. package/es/components/form/src/base/StepForm.d.ts +2 -2
  24. package/es/components/form/src/components/FormColWrapper.d.ts +9 -0
  25. package/es/components/form/src/components/FormColWrapper.mjs +9 -1
  26. package/es/components/form/src/components/FormColWrapper.mjs.map +1 -1
  27. package/es/components/form/src/components/FormGroup.d.ts +55 -53
  28. package/es/components/form/src/components/FormGroup.mjs +1 -1
  29. package/es/components/form/src/components/FormGroup.mjs.map +1 -1
  30. package/es/components/form/src/components/FormItem.d.ts +9 -0
  31. package/es/components/form/src/components/FormItem.mjs +32 -24
  32. package/es/components/form/src/components/FormItem.mjs.map +1 -1
  33. package/es/components/form/src/components/FormItems.mjs +2 -1
  34. package/es/components/form/src/components/FormItems.mjs.map +1 -1
  35. package/es/components/form/src/components/FormList.d.ts +59 -57
  36. package/es/components/form/src/components/FormList.mjs +1 -1
  37. package/es/components/form/src/components/FormList.mjs.map +1 -1
  38. package/es/components/form/src/components/FormListContainer.d.ts +22 -20
  39. package/es/components/form/src/components/FormListContainer.mjs +1 -1
  40. package/es/components/form/src/components/FormListContainer.mjs.map +1 -1
  41. package/es/components/form/src/components/FormListItem.d.ts +16 -16
  42. package/es/components/form/src/components/FormRowWrapper.d.ts +12 -12
  43. package/es/components/form/src/components/FormSet.d.ts +56 -54
  44. package/es/components/form/src/components/FormSet.mjs +1 -1
  45. package/es/components/form/src/components/FormSet.mjs.map +1 -1
  46. package/es/components/form/src/components/FormSubmitter.d.ts +2 -2
  47. package/es/components/form/src/components/FormSubmitter.mjs +25 -7
  48. package/es/components/form/src/components/FormSubmitter.mjs.map +1 -1
  49. package/es/components/form/src/components/FormTitle.d.ts +6 -4
  50. package/es/components/form/src/components/FormTitle.mjs +11 -6
  51. package/es/components/form/src/components/FormTitle.mjs.map +1 -1
  52. package/es/components/form/src/fields/FieldCascader.d.ts +3 -3
  53. package/es/components/form/src/fields/FieldCheckbox.d.ts +1 -1
  54. package/es/components/form/src/fields/FieldCheckboxGroup.d.ts +1 -1
  55. package/es/components/form/src/fields/FieldDatePicker.d.ts +1 -1
  56. package/es/components/form/src/fields/FieldDateRangePicker.d.ts +2 -2
  57. package/es/components/form/src/fields/FieldDigit.d.ts +2 -2
  58. package/es/components/form/src/fields/FieldDigitRange.d.ts +3 -3
  59. package/es/components/form/src/fields/FieldPassword.d.ts +3 -3
  60. package/es/components/form/src/fields/FieldRadioGroup.d.ts +1 -1
  61. package/es/components/form/src/fields/FieldRate.d.ts +1 -1
  62. package/es/components/form/src/fields/FieldReadonly.d.ts +1 -1
  63. package/es/components/form/src/fields/FieldSelect.d.ts +1 -1
  64. package/es/components/form/src/fields/FieldSlider.d.ts +1 -1
  65. package/es/components/form/src/fields/FieldSwitch.d.ts +1 -1
  66. package/es/components/form/src/fields/FieldText.d.ts +3 -3
  67. package/es/components/form/src/fields/FieldTextarea.d.ts +3 -3
  68. package/es/components/form/src/fields/FieldTimePicker.d.ts +1 -1
  69. package/es/components/form/src/fields/FieldTimeRangePicker.d.ts +2 -2
  70. package/es/components/form/src/fields/FieldTreeSelect.d.ts +2 -2
  71. package/es/components/form/src/fields/FieldUploadButton.d.ts +2 -2
  72. package/es/components/form/src/fields/FieldUploadDragger.d.ts +2 -2
  73. package/es/components/form/src/fields/FieldUploadPicture.d.ts +6 -6
  74. package/es/components/form/src/fields/FieldUploadPictureList.d.ts +2 -2
  75. package/es/components/form/src/hooks/useAction.d.ts +5 -3
  76. package/es/components/form/src/hooks/useAction.mjs +30 -11
  77. package/es/components/form/src/hooks/useAction.mjs.map +1 -1
  78. package/es/components/form/src/hooks/useFieldValue.d.ts +1 -1
  79. package/es/components/form/src/hooks/useFieldValue.mjs +11 -15
  80. package/es/components/form/src/hooks/useFieldValue.mjs.map +1 -1
  81. package/es/components/form/src/layouts/DrawerForm.d.ts +6 -6
  82. package/es/components/form/src/layouts/ModalForm.d.ts +2 -2
  83. package/es/components/form/src/layouts/QueryFilter.d.ts +11 -11
  84. package/es/components/form/src/layouts/QueryFilter.mjs +14 -4
  85. package/es/components/form/src/layouts/QueryFilter.mjs.map +1 -1
  86. package/es/components/form/src/layouts/StepsForm.d.ts +2 -2
  87. package/es/components/form/src/layouts/StepsForm.mjs +8 -8
  88. package/es/components/form/src/layouts/StepsForm.mjs.map +1 -1
  89. package/es/components/form/src/type.d.ts +24 -11
  90. package/es/components/form/src/utils/transformer.d.ts +3 -0
  91. package/es/components/form/src/utils/transformer.mjs +24 -0
  92. package/es/components/form/src/utils/transformer.mjs.map +1 -0
  93. package/es/components/layout/src/layout.vue.d.ts +2 -2
  94. package/es/components/modal/src/modal.vue2.mjs +1 -1
  95. package/es/components/modal/src/modal.vue2.mjs.map +1 -1
  96. package/es/components/table/src/components/AutoHeightHeader/Header.vue.d.ts +3 -3
  97. package/es/components/table/src/components/AutoHeightHeader/HeaderRow.vue.d.ts +2 -2
  98. package/es/components/table/src/components/Body/Body.vue.mjs.map +1 -1
  99. package/es/components/table/src/components/Body/Body.vue2.mjs +1 -2
  100. package/es/components/table/src/components/Body/Body.vue2.mjs.map +1 -1
  101. package/es/components/table/src/components/Body/BodyCell.mjs +2 -2
  102. package/es/components/table/src/components/Body/BodyCell.mjs.map +1 -1
  103. package/es/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  104. package/es/components/table/src/components/Body/BodyRow.vue2.mjs +3 -3
  105. package/es/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  106. package/es/components/table/src/components/Body/EditInput.vue.d.ts +1 -1
  107. package/es/components/table/src/components/ColumnSetting/CheckboxList.vue.d.ts +1 -1
  108. package/es/components/table/src/components/ColumnSetting/ColumnSetting.vue.d.ts +2 -2
  109. package/es/components/table/src/components/ColumnSetting/GroupCheckboxList.vue.d.ts +1 -1
  110. package/es/components/table/src/components/Drag/RowHandler.vue.mjs.map +1 -1
  111. package/es/components/table/src/components/Drag/RowHandler.vue2.mjs +17 -16
  112. package/es/components/table/src/components/Drag/RowHandler.vue2.mjs.map +1 -1
  113. package/es/components/table/src/components/Form/Form.d.ts +1 -1
  114. package/es/components/table/src/components/Header/Header.vue.d.ts +4 -4
  115. package/es/components/table/src/components/Header/HeaderCell.vue.d.ts +2 -2
  116. package/es/components/table/src/components/Header/HeaderCellTitle.vue.mjs +19 -7
  117. package/es/components/table/src/components/Header/HeaderCellTitle.vue.mjs.map +1 -1
  118. package/es/components/table/src/components/Header/HeaderCellTitle.vue2.mjs +1 -0
  119. package/es/components/table/src/components/Header/HeaderCellTitle.vue2.mjs.map +1 -1
  120. package/es/components/table/src/components/Header/HeaderExtraCell.vue.mjs.map +1 -1
  121. package/es/components/table/src/components/Header/HeaderExtraCell.vue2.mjs +1 -0
  122. package/es/components/table/src/components/Header/HeaderExtraCell.vue2.mjs.map +1 -1
  123. package/es/components/table/src/components/Header/HeaderGroupCell.vue.d.ts +1 -1
  124. package/es/components/table/src/components/Header/HeaderRows.vue.d.ts +3 -3
  125. package/es/components/table/src/components/Header/HeaderRowsWrap.vue.d.ts +3 -3
  126. package/es/components/table/src/components/InteralTable.vue.d.ts +33 -12
  127. package/es/components/table/src/components/InteralTable.vue.mjs.map +1 -1
  128. package/es/components/table/src/components/InteralTable.vue2.mjs +11 -5
  129. package/es/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
  130. package/es/components/table/src/components/Table.d.ts +29 -8
  131. package/es/components/table/src/components/Table.mjs +48 -14
  132. package/es/components/table/src/components/Table.mjs.map +1 -1
  133. package/es/components/table/src/components/ToolBar/ToolBar.vue.d.ts +3 -3
  134. package/es/components/table/src/components/ToolBar/ToolBar.vue.mjs +25 -6
  135. package/es/components/table/src/components/ToolBar/ToolBar.vue.mjs.map +1 -1
  136. package/es/components/table/src/components/ToolBar/ToolBar.vue2.mjs.map +1 -1
  137. package/es/components/table/src/components/interface.d.ts +33 -5
  138. package/es/components/table/src/components/interface.mjs +10 -1
  139. package/es/components/table/src/components/interface.mjs.map +1 -1
  140. package/es/components/table/src/hooks/useCellProps.mjs +3 -1
  141. package/es/components/table/src/hooks/useCellProps.mjs.map +1 -1
  142. package/es/components/table/src/hooks/useContainer.mjs +1 -1
  143. package/es/components/table/src/hooks/useContainer.mjs.map +1 -1
  144. package/es/components/table/src/hooks/useFetchData.mjs +33 -20
  145. package/es/components/table/src/hooks/useFetchData.mjs.map +1 -1
  146. package/es/components/table/src/hooks/useHover.d.ts +3 -0
  147. package/es/components/table/src/hooks/useHover.mjs +3 -1
  148. package/es/components/table/src/hooks/useHover.mjs.map +1 -1
  149. package/es/components/table/src/hooks/usePagination.d.ts +1 -0
  150. package/es/components/table/src/hooks/usePagination.mjs +7 -2
  151. package/es/components/table/src/hooks/usePagination.mjs.map +1 -1
  152. package/es/components/table/src/utils/genProColumnToColumn.mjs +5 -4
  153. package/es/components/table/src/utils/genProColumnToColumn.mjs.map +1 -1
  154. package/es/components/table/src/utils/util.d.ts +1 -1
  155. package/es/components/table/src/utils/util.mjs +1 -1
  156. package/es/components/table/src/utils/util.mjs.map +1 -1
  157. package/es/index.d.ts +107 -58
  158. package/es/utils/validate.d.ts +1 -1
  159. package/es/utils/validate.mjs +1 -1
  160. package/es/utils/validate.mjs.map +1 -1
  161. package/es/version.d.ts +1 -1
  162. package/es/version.mjs +1 -1
  163. package/es/version.mjs.map +1 -1
  164. package/lib/components/config-provider/src/config-provider-container.vue2.js +2 -0
  165. package/lib/components/config-provider/src/config-provider-container.vue2.js.map +1 -1
  166. package/lib/components/config-provider/src/config-provider.vue2.js +4 -2
  167. package/lib/components/config-provider/src/config-provider.vue2.js.map +1 -1
  168. package/lib/components/config-provider/src/typing.d.ts +6 -0
  169. package/lib/components/config-provider/src/useTokens.d.ts +24 -0
  170. package/lib/components/config-provider/src/useTokens.js +60 -0
  171. package/lib/components/config-provider/src/useTokens.js.map +1 -0
  172. package/lib/components/counter/src/counter.vue.d.ts +2 -2
  173. package/lib/components/drawer/src/drawer.vue2.js +1 -1
  174. package/lib/components/drawer/src/drawer.vue2.js.map +1 -1
  175. package/lib/components/form/src/Form.d.ts +11 -11
  176. package/lib/components/form/src/base/BaseForm.d.ts +2 -2
  177. package/lib/components/form/src/base/BaseForm.js +14 -9
  178. package/lib/components/form/src/base/BaseForm.js.map +1 -1
  179. package/lib/components/form/src/base/StepForm.d.ts +2 -2
  180. package/lib/components/form/src/components/FormColWrapper.d.ts +9 -0
  181. package/lib/components/form/src/components/FormColWrapper.js +9 -1
  182. package/lib/components/form/src/components/FormColWrapper.js.map +1 -1
  183. package/lib/components/form/src/components/FormGroup.d.ts +55 -53
  184. package/lib/components/form/src/components/FormGroup.js +1 -1
  185. package/lib/components/form/src/components/FormGroup.js.map +1 -1
  186. package/lib/components/form/src/components/FormItem.d.ts +9 -0
  187. package/lib/components/form/src/components/FormItem.js +32 -24
  188. package/lib/components/form/src/components/FormItem.js.map +1 -1
  189. package/lib/components/form/src/components/FormItems.js +2 -1
  190. package/lib/components/form/src/components/FormItems.js.map +1 -1
  191. package/lib/components/form/src/components/FormList.d.ts +59 -57
  192. package/lib/components/form/src/components/FormList.js +1 -1
  193. package/lib/components/form/src/components/FormList.js.map +1 -1
  194. package/lib/components/form/src/components/FormListContainer.d.ts +22 -20
  195. package/lib/components/form/src/components/FormListContainer.js +1 -1
  196. package/lib/components/form/src/components/FormListContainer.js.map +1 -1
  197. package/lib/components/form/src/components/FormListItem.d.ts +16 -16
  198. package/lib/components/form/src/components/FormRowWrapper.d.ts +12 -12
  199. package/lib/components/form/src/components/FormSet.d.ts +56 -54
  200. package/lib/components/form/src/components/FormSet.js +1 -1
  201. package/lib/components/form/src/components/FormSet.js.map +1 -1
  202. package/lib/components/form/src/components/FormSubmitter.d.ts +2 -2
  203. package/lib/components/form/src/components/FormSubmitter.js +25 -7
  204. package/lib/components/form/src/components/FormSubmitter.js.map +1 -1
  205. package/lib/components/form/src/components/FormTitle.d.ts +6 -4
  206. package/lib/components/form/src/components/FormTitle.js +11 -6
  207. package/lib/components/form/src/components/FormTitle.js.map +1 -1
  208. package/lib/components/form/src/fields/FieldCascader.d.ts +3 -3
  209. package/lib/components/form/src/fields/FieldCheckbox.d.ts +1 -1
  210. package/lib/components/form/src/fields/FieldCheckboxGroup.d.ts +1 -1
  211. package/lib/components/form/src/fields/FieldDatePicker.d.ts +1 -1
  212. package/lib/components/form/src/fields/FieldDateRangePicker.d.ts +2 -2
  213. package/lib/components/form/src/fields/FieldDigit.d.ts +2 -2
  214. package/lib/components/form/src/fields/FieldDigitRange.d.ts +3 -3
  215. package/lib/components/form/src/fields/FieldPassword.d.ts +3 -3
  216. package/lib/components/form/src/fields/FieldRadioGroup.d.ts +1 -1
  217. package/lib/components/form/src/fields/FieldRate.d.ts +1 -1
  218. package/lib/components/form/src/fields/FieldReadonly.d.ts +1 -1
  219. package/lib/components/form/src/fields/FieldSelect.d.ts +1 -1
  220. package/lib/components/form/src/fields/FieldSlider.d.ts +1 -1
  221. package/lib/components/form/src/fields/FieldSwitch.d.ts +1 -1
  222. package/lib/components/form/src/fields/FieldText.d.ts +3 -3
  223. package/lib/components/form/src/fields/FieldTextarea.d.ts +3 -3
  224. package/lib/components/form/src/fields/FieldTimePicker.d.ts +1 -1
  225. package/lib/components/form/src/fields/FieldTimeRangePicker.d.ts +2 -2
  226. package/lib/components/form/src/fields/FieldTreeSelect.d.ts +2 -2
  227. package/lib/components/form/src/fields/FieldUploadButton.d.ts +2 -2
  228. package/lib/components/form/src/fields/FieldUploadDragger.d.ts +2 -2
  229. package/lib/components/form/src/fields/FieldUploadPicture.d.ts +6 -6
  230. package/lib/components/form/src/fields/FieldUploadPictureList.d.ts +2 -2
  231. package/lib/components/form/src/hooks/useAction.d.ts +5 -3
  232. package/lib/components/form/src/hooks/useAction.js +29 -9
  233. package/lib/components/form/src/hooks/useAction.js.map +1 -1
  234. package/lib/components/form/src/hooks/useFieldValue.d.ts +1 -1
  235. package/lib/components/form/src/hooks/useFieldValue.js +11 -15
  236. package/lib/components/form/src/hooks/useFieldValue.js.map +1 -1
  237. package/lib/components/form/src/layouts/DrawerForm.d.ts +6 -6
  238. package/lib/components/form/src/layouts/ModalForm.d.ts +2 -2
  239. package/lib/components/form/src/layouts/QueryFilter.d.ts +11 -11
  240. package/lib/components/form/src/layouts/QueryFilter.js +14 -4
  241. package/lib/components/form/src/layouts/QueryFilter.js.map +1 -1
  242. package/lib/components/form/src/layouts/StepsForm.d.ts +2 -2
  243. package/lib/components/form/src/layouts/StepsForm.js +8 -8
  244. package/lib/components/form/src/layouts/StepsForm.js.map +1 -1
  245. package/lib/components/form/src/type.d.ts +24 -11
  246. package/lib/components/form/src/utils/transformer.d.ts +3 -0
  247. package/lib/components/form/src/utils/transformer.js +28 -0
  248. package/lib/components/form/src/utils/transformer.js.map +1 -0
  249. package/lib/components/layout/src/layout.vue.d.ts +2 -2
  250. package/lib/components/modal/src/modal.vue2.js +1 -1
  251. package/lib/components/modal/src/modal.vue2.js.map +1 -1
  252. package/lib/components/table/src/components/AutoHeightHeader/Header.vue.d.ts +3 -3
  253. package/lib/components/table/src/components/AutoHeightHeader/HeaderRow.vue.d.ts +2 -2
  254. package/lib/components/table/src/components/Body/Body.vue.js.map +1 -1
  255. package/lib/components/table/src/components/Body/Body.vue2.js +1 -2
  256. package/lib/components/table/src/components/Body/Body.vue2.js.map +1 -1
  257. package/lib/components/table/src/components/Body/BodyCell.js +2 -2
  258. package/lib/components/table/src/components/Body/BodyCell.js.map +1 -1
  259. package/lib/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  260. package/lib/components/table/src/components/Body/BodyRow.vue2.js +3 -3
  261. package/lib/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  262. package/lib/components/table/src/components/Body/EditInput.vue.d.ts +1 -1
  263. package/lib/components/table/src/components/ColumnSetting/CheckboxList.vue.d.ts +1 -1
  264. package/lib/components/table/src/components/ColumnSetting/ColumnSetting.vue.d.ts +2 -2
  265. package/lib/components/table/src/components/ColumnSetting/GroupCheckboxList.vue.d.ts +1 -1
  266. package/lib/components/table/src/components/Drag/RowHandler.vue.js.map +1 -1
  267. package/lib/components/table/src/components/Drag/RowHandler.vue2.js +17 -16
  268. package/lib/components/table/src/components/Drag/RowHandler.vue2.js.map +1 -1
  269. package/lib/components/table/src/components/Form/Form.d.ts +1 -1
  270. package/lib/components/table/src/components/Header/Header.vue.d.ts +4 -4
  271. package/lib/components/table/src/components/Header/HeaderCell.vue.d.ts +2 -2
  272. package/lib/components/table/src/components/Header/HeaderCellTitle.vue.js +18 -6
  273. package/lib/components/table/src/components/Header/HeaderCellTitle.vue.js.map +1 -1
  274. package/lib/components/table/src/components/Header/HeaderCellTitle.vue2.js +1 -0
  275. package/lib/components/table/src/components/Header/HeaderCellTitle.vue2.js.map +1 -1
  276. package/lib/components/table/src/components/Header/HeaderExtraCell.vue.js.map +1 -1
  277. package/lib/components/table/src/components/Header/HeaderExtraCell.vue2.js +1 -0
  278. package/lib/components/table/src/components/Header/HeaderExtraCell.vue2.js.map +1 -1
  279. package/lib/components/table/src/components/Header/HeaderGroupCell.vue.d.ts +1 -1
  280. package/lib/components/table/src/components/Header/HeaderRows.vue.d.ts +3 -3
  281. package/lib/components/table/src/components/Header/HeaderRowsWrap.vue.d.ts +3 -3
  282. package/lib/components/table/src/components/InteralTable.vue.d.ts +33 -12
  283. package/lib/components/table/src/components/InteralTable.vue.js.map +1 -1
  284. package/lib/components/table/src/components/InteralTable.vue2.js +12 -6
  285. package/lib/components/table/src/components/InteralTable.vue2.js.map +1 -1
  286. package/lib/components/table/src/components/Table.d.ts +29 -8
  287. package/lib/components/table/src/components/Table.js +47 -13
  288. package/lib/components/table/src/components/Table.js.map +1 -1
  289. package/lib/components/table/src/components/ToolBar/ToolBar.vue.d.ts +3 -3
  290. package/lib/components/table/src/components/ToolBar/ToolBar.vue.js +24 -5
  291. package/lib/components/table/src/components/ToolBar/ToolBar.vue.js.map +1 -1
  292. package/lib/components/table/src/components/ToolBar/ToolBar.vue2.js.map +1 -1
  293. package/lib/components/table/src/components/interface.d.ts +33 -5
  294. package/lib/components/table/src/components/interface.js +10 -1
  295. package/lib/components/table/src/components/interface.js.map +1 -1
  296. package/lib/components/table/src/hooks/useCellProps.js +3 -1
  297. package/lib/components/table/src/hooks/useCellProps.js.map +1 -1
  298. package/lib/components/table/src/hooks/useContainer.js +1 -1
  299. package/lib/components/table/src/hooks/useContainer.js.map +1 -1
  300. package/lib/components/table/src/hooks/useFetchData.js +33 -20
  301. package/lib/components/table/src/hooks/useFetchData.js.map +1 -1
  302. package/lib/components/table/src/hooks/useHover.d.ts +3 -0
  303. package/lib/components/table/src/hooks/useHover.js +2 -0
  304. package/lib/components/table/src/hooks/useHover.js.map +1 -1
  305. package/lib/components/table/src/hooks/usePagination.d.ts +1 -0
  306. package/lib/components/table/src/hooks/usePagination.js +7 -1
  307. package/lib/components/table/src/hooks/usePagination.js.map +1 -1
  308. package/lib/components/table/src/utils/genProColumnToColumn.js +5 -4
  309. package/lib/components/table/src/utils/genProColumnToColumn.js.map +1 -1
  310. package/lib/components/table/src/utils/util.d.ts +1 -1
  311. package/lib/components/table/src/utils/util.js +1 -1
  312. package/lib/components/table/src/utils/util.js.map +1 -1
  313. package/lib/index.d.ts +107 -58
  314. package/lib/utils/validate.d.ts +1 -1
  315. package/lib/utils/validate.js +1 -1
  316. package/lib/utils/validate.js.map +1 -1
  317. package/lib/version.d.ts +1 -1
  318. package/lib/version.js +1 -1
  319. package/lib/version.js.map +1 -1
  320. package/package.json +1 -1
  321. package/theme-chalk/css-var.css +1 -1
  322. package/theme-chalk/index.css +1 -1
  323. package/theme-chalk/pro-form.css +1 -1
  324. package/theme-chalk/src/css-var.less +154 -677
  325. package/theme-chalk/src/form.less +5 -0
  326. package/theme-chalk/src/table/alert.less +1 -0
  327. package/theme-chalk/src/table/table.less +3 -3
  328. package/theme-chalk/src/common/css-var.less +0 -914
@@ -1 +1 @@
1
- {"version":3,"file":"BodyRow.vue.mjs","sources":["../../../../../../../../packages/components/table/src/components/Body/BodyRow.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-09-10 15:16:56\n * @Description:\n-->\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n onBeforeUnmount,\n computed,\n nextTick,\n watchEffect,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRows, useProvideBodyRow } from '../context/BodyRowsContext'\nimport { ExpandColumnKey } from '../../hooks/useColumns'\nimport { RenderSlot } from '../../utils/renderVNode'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { useCellSelection } from '../../hooks/useCellSelection'\nimport { useCellKeyboard } from '../../hooks/useCellKeyboard'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport eagerComputed from '../../utils/eagerComputed'\nimport classNames from '../../utils/classNames'\nimport BodyCell from './BodyCell'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { CSSProperties, PropType } from 'vue'\nimport type { RowClassName, RowType, Key } from '../interface'\n\nlet uniIdCount = 0\nexport default defineComponent({\n name: 'ProTableBodyRow',\n components: {\n ExpandIcon,\n BodyCell,\n ExpandedRow,\n BodyExtraCell,\n RenderSlot,\n },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n isExpandRow: Boolean as PropType<boolean>,\n record: { type: Object },\n type: { type: String as PropType<RowType> },\n rowKey: { type: [Number, String] as PropType<Key>, required: true },\n supportExpand: Boolean,\n pos: Number as PropType<number>,\n rowIndex: Number as PropType<number>,\n flattenRowIndex: Number,\n indent: Number as PropType<number>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n getRowClassName: { type: Function as PropType<RowClassName<any>> },\n },\n setup(props) {\n const rowUniId = 'row_uni_id_' + uniIdCount++\n const tableContext = useInjectTable()\n const rowInstance = getCurrentInstance()\n\n const { editCellKeys, closeEditor, openEditor } = useEditInject()\n\n let isUnmount = false\n const bodyRow = ref()\n\n const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection()\n const { onCellKeydown } = useCellKeyboard()\n\n const calMaxHeight = () => {\n if (isUnmount) return\n let rowHeight = 0\n let autoCells: HTMLDivElement[] = []\n if (bodyRow.value) {\n autoCells = bodyRow.value.querySelectorAll('div[data-cell-auto=true]')\n }\n autoCells.forEach((autoCell: HTMLDivElement) => {\n const { offsetWidth, offsetHeight } = autoCell\n let autoCellHeight = offsetWidth ? offsetHeight : 0\n const parentStyle = getComputedStyle(autoCell.parentNode as Element)\n autoCellHeight +=\n parseFloat(parentStyle.getPropertyValue('border-top-width')) +\n parseFloat(parentStyle.getPropertyValue('border-bottom-width'))\n rowHeight = rowHeight > autoCellHeight ? rowHeight : autoCellHeight\n })\n if (autoCells.length) {\n tableContext.addRowHeight(rowUniId, props.rowKey!, rowHeight)\n } else {\n tableContext.removeRowHeight(rowUniId)\n }\n }\n\n watch(\n () => props.rowKey,\n () => {\n calMaxHeight()\n },\n { flush: 'post' },\n )\n\n const resizeObserver: ResizeObserver = new ResizeObserver(() => {\n calMaxHeight()\n })\n\n const { columns, columnStartIndex } = useInjectBodyRows()\n const mergedColumns = computed(() =>\n (props.type === 'center'\n ? tableContext.centerRowColumnsMap.value.get(props.rowKey)\n : columns.value)!.filter((item) => !!item),\n )\n\n const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } =\n useInjectBody()\n const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey } = useInjectHover()\n\n const popupContainer = computed(() =>\n props.type === 'left'\n ? leftPopupContainer.value\n : props.type === 'center'\n ? centerPopupContainer.value\n : props.type === 'right'\n ? rightPopupContainer.value\n : null,\n )\n\n const isDragging = eagerComputed(() => tableContext.draggingRowKey.value === props.rowKey)\n const isRowHover = eagerComputed(() => hoverRowKey.value === props.rowKey)\n\n watch(\n [isRowHover, bodyRow],\n () => {\n bodyRow.value &&\n (isRowHover.value\n ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`)\n : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`))\n },\n { immediate: true, flush: 'post' },\n )\n\n const mergedTooltipOpen = eagerComputed(() => tooltipOpen.value && isRowHover.value)\n\n let timer: any\n onBeforeUnmount(() => {\n isUnmount = true\n resizeObserver.disconnect()\n clearTimeout(timer)\n tableContext.removeRowHeight(rowUniId)\n })\n\n const hasMultiRowSpanInfo = eagerComputed(() => {\n return !tableContext.hasMultiRowSpanInfo.value[props.rowKey!]\n })\n\n const customRowProps = computed(() => {\n return tableContext.props.customRow?.(props.record!, props.rowIndex)\n })\n\n const rowSelectionType = computed(() => {\n return tableContext.props.rowSelection?.type\n })\n\n const isExpanded = ref(false)\n const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value)\n const expanded = eagerComputed(() => expandedRowKeys.value.has?.(props.rowKey!))\n const expandIconColumnIndex = computed(() => tableContext.expandIconColumnIndex.value || 0)\n const indentSize = computed(() => tableContext.indentSize.value)\n\n watchEffect(() => {\n if (expanded.value) {\n isExpanded.value = true\n }\n })\n\n const rowExpandable = computed(\n () =>\n tableContext.expandType.value === 'row' &&\n tableContext.props.rowExpandable?.(props.record!),\n )\n\n const nestExpandable = computed(() => tableContext.expandType.value === 'nest')\n\n const hasNestChildren = computed(\n () =>\n !!(\n tableContext.childrenColumnName.value &&\n props.record?.[tableContext.childrenColumnName.value]\n ),\n )\n const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value)\n\n const onInternalTriggerExpand = (record: any, event: any) => {\n tableContext.onTriggerExpand(record, props.rowKey!, event)\n }\n\n const mergedRowHeights = computed(() => tableContext.mergedRowHeights.value)\n\n const height = eagerComputed(() => mergedRowHeights.value[props.rowKey!])\n const cellHeight = eagerComputed(() => tableContext.rowHeights.value[props.rowKey!])\n\n const isSelected = computed(\n () =>\n tableContext.props.highlightSelectRow &&\n tableContext.selection.derivedSelectedKeySet.value.has(props.rowKey!),\n )\n\n const rowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n const isEven = rowIndex! % 2 == 0\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-row-level-${indent}`]: true,\n [`${prefixCls}-row-hover`]: isRowHover.value,\n [`${prefixCls}-row-dragging`]: isDragging.value,\n [`${prefixCls}-row-dragging-insert-target`]:\n tableContext.insertToRowKey.value === props.rowKey,\n [`${prefixCls}-row-odd`]: !isEven,\n [`${prefixCls}-row-even`]: isEven,\n [`${prefixCls}-no-height`]: !height.value,\n [`${prefixCls}-row-selected`]: isSelected.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandRowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-expanded-row`]: true,\n [`${prefixCls}-expanded-row-level-${indent! + 1}`]: true,\n [`${prefixCls}-no-height`]: !height.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandColumnWidth = eagerComputed(() => {\n return tableContext.allCellProps.value[props.rowKey!]?.[ExpandColumnKey]?.props?.style?.width\n })\n\n const rowStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {\n opacity: 1,\n [`--${props.prefixCls}-row-bg`]: `var(--${props.prefixCls}-row-bg-${props.rowKey}, var(--${props.prefixCls}-bg))`,\n }\n if (hasMultiRowSpanInfo.value) {\n style.transform = `translateY(${props.pos}px)`\n } else {\n style.top = `${props.pos}px`\n }\n if (height.value !== undefined) {\n style.height = `${height.value}px`\n } else {\n style.height = `${tableContext.baseHeight.value}px`\n }\n if (props.isExpandRow && columnStartIndex.value === 0) {\n style.width = expandColumnWidth.value\n style.minWidth = '100%'\n }\n return style\n })\n\n watch(\n () => ({ ...rowStyle.value }),\n (newStyle, oldStyle = {}) => {\n if (tableContext.animateRows.value && !tableContext.useAnimate.value) {\n if (\n newStyle.top !== oldStyle.top ||\n newStyle.height !== oldStyle.height ||\n newStyle.transform !== oldStyle.transform\n ) {\n nextTick(() => {\n clearTimeout(timer)\n if (rowInstance?.vnode.el && rowInstance.vnode.el.style) {\n rowInstance.vnode.el.style.transition = 'none'\n timer = setTimeout(() => {\n if (rowInstance?.vnode?.el?.style) {\n rowInstance.vnode.el.style.transition = null\n }\n }, 100)\n }\n })\n }\n }\n },\n { immediate: true },\n )\n\n useProvideBodyRow({\n top: computed(() => props.pos!),\n height: computed(() =>\n height.value !== undefined ? height.value : tableContext.baseHeight.value,\n ),\n rowKey: computed(() => props.rowKey),\n })\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-position-absolute`]: true,\n }))\n\n return {\n rowClass,\n rowStyle,\n cellClass,\n tableContext,\n mergedRowHeights,\n handleCellBlur,\n handleCellHover,\n handleClick: (event: any) => {\n tableContext.props.expandRowByClick &&\n mergedExpandable.value &&\n onInternalTriggerExpand(props.record, event)\n },\n rowSelectionType,\n nestExpandable,\n hasNestChildren,\n mergedExpandable,\n expandIconColumnIndex,\n indentSize,\n expanded,\n onInternalTriggerExpand,\n customRowProps,\n expandColumnKey: ExpandColumnKey,\n expandRowClass,\n mergedColumns,\n height,\n cellHeight,\n columnStartIndex,\n resizeObserver,\n calMaxHeight,\n bodyRow,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n editCellKeys,\n closeEditor,\n openEditor,\n mergedTooltipOpen,\n onCellMousedown,\n onCellKeydown,\n onCellMousemove,\n onCellClick,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isExpandRow\">\n <div\n v-if=\"columnStartIndex === 0\"\n ref=\"bodyRow\"\n :data-row-key=\"rowKey\"\n :class=\"expandRowClass\"\n :style=\"rowStyle\"\n role=\"row\"\n >\n <ExpandedRow\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n />\n </div>\n </template>\n <div\n v-else\n v-bind=\"customRowProps\"\n ref=\"bodyRow\"\n :class=\"rowClass\"\n :style=\"rowStyle\"\n :data-row-key=\"rowKey\"\n role=\"row\"\n @click=\"handleClick\"\n >\n <RenderSlot>\n <template v-for=\"(column, index) in mergedColumns\" :key=\"column && column.columnKey\">\n <BodyExtraCell\n v-if=\"column && column.__Internal__Column__\"\n :prefix-cls=\"prefixCls\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex!\"\n :type=\"type\"\n :column=\"mergedColumns?.[index]\"\n :expanded=\"expanded\"\n :support-expand=\"mergedExpandable\"\n :record=\"record\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @mouseleave=\"handleCellBlur\"\n />\n <BodyCell\n v-else-if=\"column\"\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :type=\"type\"\n :row-index=\"rowIndex!\"\n :flatten-row-index=\"flattenRowIndex\"\n :wrap-text=\"wrapText\"\n :column=\"column\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n :has-append-node=\"column.columnIndex === expandIconColumnIndex && nestExpandable\"\n :height=\"cellHeight\"\n :get-popup-container=\"getPopupContainer\"\n :tooltip-open=\"mergedTooltipOpen && hoverColumnKey === column.columnKey\"\n :edit-cell-keys=\"editCellKeys\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\n @mousedown=\"onCellMousedown\"\n @mousemove=\"onCellMousemove\"\n @keydown=\"onCellKeydown\"\n @click=\"onCellClick\"\n >\n <template #appendNode>\n <div :class=\"`${prefixCls}-append-node`\">\n <span\n :style=\"`padding-left: ${(indent || 0) * indentSize}px`\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n ></span>\n <ExpandIcon\n :expanded=\"expanded\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_Fragment","_normalizeClass","_normalizeStyle","_createVNode","_mergeProps","_withCtx","_renderList","_createBlock","_createElementVNode"],"mappings":"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"}
1
+ {"version":3,"file":"BodyRow.vue.mjs","sources":["../../../../../../../../packages/components/table/src/components/Body/BodyRow.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-09-29 09:00:32\n * @Description:\n-->\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n onBeforeUnmount,\n computed,\n nextTick,\n watchEffect,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRows, useProvideBodyRow } from '../context/BodyRowsContext'\nimport { ExpandColumnKey } from '../../hooks/useColumns'\nimport { RenderSlot } from '../../utils/renderVNode'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { useCellSelection } from '../../hooks/useCellSelection'\nimport { useCellKeyboard } from '../../hooks/useCellKeyboard'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport eagerComputed from '../../utils/eagerComputed'\nimport classNames from '../../utils/classNames'\nimport BodyCell from './BodyCell'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { CSSProperties, PropType } from 'vue'\nimport type { RowClassName, RowType, Key } from '../interface'\n\nlet uniIdCount = 0\nexport default defineComponent({\n name: 'ProTableBodyRow',\n components: {\n ExpandIcon,\n BodyCell,\n ExpandedRow,\n BodyExtraCell,\n RenderSlot,\n },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n isExpandRow: Boolean as PropType<boolean>,\n record: { type: Object },\n type: { type: String as PropType<RowType> },\n rowKey: { type: [Number, String] as PropType<Key>, required: true },\n supportExpand: Boolean,\n pos: Number as PropType<number>,\n rowIndex: Number as PropType<number>,\n flattenRowIndex: Number,\n indent: Number as PropType<number>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n getRowClassName: { type: Function as PropType<RowClassName<any>> },\n },\n setup(props) {\n const rowUniId = 'row_uni_id_' + uniIdCount++\n const tableContext = useInjectTable()\n const rowInstance = getCurrentInstance()\n\n const { editCellKeys, closeEditor, openEditor } = useEditInject()\n\n let isUnmount = false\n const bodyRow = ref()\n\n const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection()\n const { onCellKeydown } = useCellKeyboard()\n\n const calMaxHeight = () => {\n if (isUnmount) return\n let rowHeight = 0\n let autoCells: HTMLDivElement[] = []\n if (bodyRow.value) {\n autoCells = bodyRow.value.querySelectorAll('div[data-cell-auto=true]')\n }\n autoCells.forEach((autoCell: HTMLDivElement) => {\n const { offsetWidth, offsetHeight } = autoCell\n let autoCellHeight = offsetWidth ? offsetHeight : 0\n const parentStyle = getComputedStyle(autoCell.parentNode as Element)\n autoCellHeight +=\n parseFloat(parentStyle.getPropertyValue('border-top-width')) +\n parseFloat(parentStyle.getPropertyValue('border-bottom-width'))\n rowHeight = rowHeight > autoCellHeight ? rowHeight : autoCellHeight\n })\n if (autoCells.length) {\n tableContext.addRowHeight(rowUniId, props.rowKey!, rowHeight)\n } else {\n tableContext.removeRowHeight(rowUniId)\n }\n }\n\n watch(\n () => props.rowKey,\n () => {\n calMaxHeight()\n },\n { flush: 'post' },\n )\n\n const resizeObserver: ResizeObserver = new ResizeObserver(() => {\n calMaxHeight()\n })\n\n const { columns, columnStartIndex } = useInjectBodyRows()\n const mergedColumns = computed(() =>\n (props.type === 'center'\n ? tableContext.centerRowColumnsMap.value.get(props.rowKey)\n : columns.value)!.filter((item) => !!item),\n )\n\n const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } =\n useInjectBody()\n const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey, rowHover } =\n useInjectHover()\n\n const popupContainer = computed(() =>\n props.type === 'left'\n ? leftPopupContainer.value\n : props.type === 'center'\n ? centerPopupContainer.value\n : props.type === 'right'\n ? rightPopupContainer.value\n : null,\n )\n\n const isDragging = eagerComputed(() => tableContext.draggingRowKey.value === props.rowKey)\n const isRowHover = eagerComputed(() => hoverRowKey.value === props.rowKey)\n\n watch(\n [isRowHover, bodyRow],\n () => {\n bodyRow.value &&\n rowHover.value &&\n (isRowHover.value\n ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`)\n : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`))\n },\n { immediate: true, flush: 'post' },\n )\n\n const mergedTooltipOpen = eagerComputed(() => tooltipOpen.value && isRowHover.value)\n\n let timer: any\n onBeforeUnmount(() => {\n isUnmount = true\n resizeObserver.disconnect()\n clearTimeout(timer)\n tableContext.removeRowHeight(rowUniId)\n })\n\n const hasMultiRowSpanInfo = eagerComputed(() => {\n return !tableContext.hasMultiRowSpanInfo.value[props.rowKey!]\n })\n\n const customRowProps = computed(() => {\n return tableContext.props.customRow?.(props.record!, props.rowIndex)\n })\n\n const rowSelectionType = computed(() => {\n return tableContext.props.rowSelection?.type\n })\n\n const isExpanded = ref(false)\n const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value)\n const expanded = eagerComputed(() => expandedRowKeys.value.has?.(props.rowKey!))\n const expandIconColumnIndex = computed(() => tableContext.expandIconColumnIndex.value || 0)\n const indentSize = computed(() => tableContext.indentSize.value)\n\n watchEffect(() => {\n if (expanded.value) {\n isExpanded.value = true\n }\n })\n\n const rowExpandable = computed(\n () =>\n tableContext.expandType.value === 'row' &&\n tableContext.props.rowExpandable?.(props.record!),\n )\n\n const nestExpandable = computed(() => tableContext.expandType.value === 'nest')\n\n const hasNestChildren = computed(\n () =>\n !!(\n tableContext.childrenColumnName.value &&\n props.record?.[tableContext.childrenColumnName.value]\n ),\n )\n const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value)\n\n const onInternalTriggerExpand = (record: any, event: any) => {\n tableContext.onTriggerExpand(record, props.rowKey!, event)\n }\n\n const mergedRowHeights = computed(() => tableContext.mergedRowHeights.value)\n\n const height = eagerComputed(() => mergedRowHeights.value[props.rowKey!])\n const cellHeight = eagerComputed(() => tableContext.rowHeights.value[props.rowKey!])\n\n const isSelected = computed(\n () =>\n tableContext.props.highlightSelectRow &&\n tableContext.selection.derivedSelectedKeySet.value.has(props.rowKey!),\n )\n\n const rowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n const isEven = rowIndex! % 2 == 0\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-row-level-${indent}`]: true,\n [`${prefixCls}-row-hover`]: isRowHover.value && rowHover.value,\n [`${prefixCls}-row-dragging`]: isDragging.value,\n [`${prefixCls}-row-dragging-insert-target`]:\n tableContext.insertToRowKey.value === props.rowKey,\n [`${prefixCls}-row-odd`]: !isEven,\n [`${prefixCls}-row-even`]: isEven,\n [`${prefixCls}-no-height`]: !height.value,\n [`${prefixCls}-row-selected`]: isSelected.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandRowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-expanded-row`]: true,\n [`${prefixCls}-expanded-row-level-${indent! + 1}`]: true,\n [`${prefixCls}-no-height`]: !height.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandColumnWidth = eagerComputed(() => {\n return tableContext.allCellProps.value[props.rowKey!]?.[ExpandColumnKey]?.props?.style?.width\n })\n\n const rowStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {\n opacity: 1,\n [`--${props.prefixCls}-row-bg`]: `var(--${props.prefixCls}-row-bg-${props.rowKey}, var(--${props.prefixCls}-bg))`,\n }\n if (hasMultiRowSpanInfo.value) {\n style.transform = `translateY(${props.pos}px)`\n } else {\n style.top = `${props.pos}px`\n }\n if (height.value !== undefined) {\n style.height = `${height.value}px`\n } else {\n style.height = `${tableContext.baseHeight.value}px`\n }\n if (props.isExpandRow && columnStartIndex.value === 0) {\n style.width = expandColumnWidth.value\n style.minWidth = '100%'\n }\n return style\n })\n\n watch(\n () => ({ ...rowStyle.value }),\n (newStyle, oldStyle = {}) => {\n if (tableContext.animateRows.value && !tableContext.useAnimate.value) {\n if (\n newStyle.top !== oldStyle.top ||\n newStyle.height !== oldStyle.height ||\n newStyle.transform !== oldStyle.transform\n ) {\n nextTick(() => {\n clearTimeout(timer)\n if (rowInstance?.vnode.el && rowInstance.vnode.el.style) {\n rowInstance.vnode.el.style.transition = 'none'\n timer = setTimeout(() => {\n if (rowInstance?.vnode?.el?.style) {\n rowInstance.vnode.el.style.transition = null\n }\n }, 100)\n }\n })\n }\n }\n },\n { immediate: true },\n )\n\n useProvideBodyRow({\n top: computed(() => props.pos!),\n height: computed(() =>\n height.value !== undefined ? height.value : tableContext.baseHeight.value,\n ),\n rowKey: computed(() => props.rowKey),\n })\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-position-absolute`]: true,\n }))\n\n return {\n rowClass,\n rowStyle,\n cellClass,\n tableContext,\n mergedRowHeights,\n handleCellBlur,\n handleCellHover,\n handleClick: (event: any) => {\n tableContext.props.expandRowByClick &&\n mergedExpandable.value &&\n onInternalTriggerExpand(props.record, event)\n },\n rowSelectionType,\n nestExpandable,\n hasNestChildren,\n mergedExpandable,\n expandIconColumnIndex,\n indentSize,\n expanded,\n onInternalTriggerExpand,\n customRowProps,\n expandColumnKey: ExpandColumnKey,\n expandRowClass,\n mergedColumns,\n height,\n cellHeight,\n columnStartIndex,\n resizeObserver,\n calMaxHeight,\n bodyRow,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n editCellKeys,\n closeEditor,\n openEditor,\n mergedTooltipOpen,\n onCellMousedown,\n onCellKeydown,\n onCellMousemove,\n onCellClick,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isExpandRow\">\n <div\n v-if=\"columnStartIndex === 0\"\n ref=\"bodyRow\"\n :data-row-key=\"rowKey\"\n :class=\"expandRowClass\"\n :style=\"rowStyle\"\n role=\"row\"\n >\n <ExpandedRow\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n />\n </div>\n </template>\n <div\n v-else\n v-bind=\"customRowProps\"\n ref=\"bodyRow\"\n :class=\"rowClass\"\n :style=\"rowStyle\"\n :data-row-key=\"rowKey\"\n role=\"row\"\n @click=\"handleClick\"\n >\n <RenderSlot>\n <template v-for=\"(column, index) in mergedColumns\" :key=\"column && column.columnKey\">\n <BodyExtraCell\n v-if=\"column && column.__Internal__Column__\"\n :prefix-cls=\"prefixCls\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex!\"\n :type=\"type\"\n :column=\"mergedColumns?.[index]\"\n :expanded=\"expanded\"\n :support-expand=\"mergedExpandable\"\n :record=\"record\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @mouseleave=\"handleCellBlur\"\n />\n <BodyCell\n v-else-if=\"column\"\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :type=\"type\"\n :row-index=\"rowIndex!\"\n :flatten-row-index=\"flattenRowIndex\"\n :wrap-text=\"wrapText\"\n :column=\"column\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n :has-append-node=\"column.columnIndex === expandIconColumnIndex && nestExpandable\"\n :height=\"cellHeight\"\n :get-popup-container=\"getPopupContainer\"\n :tooltip-open=\"mergedTooltipOpen && hoverColumnKey === column.columnKey\"\n :edit-cell-keys=\"editCellKeys\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\n @mousedown=\"onCellMousedown\"\n @mousemove=\"onCellMousemove\"\n @keydown=\"onCellKeydown\"\n @click=\"onCellClick\"\n >\n <template #appendNode>\n <div :class=\"`${prefixCls}-append-node`\">\n <span\n :style=\"`padding-left: ${(indent || 0) * indentSize}px`\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n ></span>\n <ExpandIcon\n :expanded=\"expanded\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_Fragment","_normalizeClass","_normalizeStyle","_createVNode","_mergeProps","_withCtx","_renderList","_createBlock","_createElementVNode"],"mappings":"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"}
@@ -86,7 +86,7 @@ var _sfc_main = defineComponent({
86
86
  () => (props.type === "center" ? tableContext.centerRowColumnsMap.value.get(props.rowKey) : columns.value).filter((item) => !!item)
87
87
  );
88
88
  const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } = useInjectBody();
89
- const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey } = useInjectHover();
89
+ const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey, rowHover } = useInjectHover();
90
90
  const popupContainer = computed(
91
91
  () => props.type === "left" ? leftPopupContainer.value : props.type === "center" ? centerPopupContainer.value : props.type === "right" ? rightPopupContainer.value : null
92
92
  );
@@ -95,7 +95,7 @@ var _sfc_main = defineComponent({
95
95
  watch(
96
96
  [isRowHover, bodyRow],
97
97
  () => {
98
- bodyRow.value && (isRowHover.value ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`) : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`));
98
+ bodyRow.value && rowHover.value && (isRowHover.value ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`) : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`));
99
99
  },
100
100
  { immediate: true, flush: "post" }
101
101
  );
@@ -162,7 +162,7 @@ var _sfc_main = defineComponent({
162
162
  {
163
163
  [`${prefixCls}-row`]: true,
164
164
  [`${prefixCls}-row-level-${indent}`]: true,
165
- [`${prefixCls}-row-hover`]: isRowHover.value,
165
+ [`${prefixCls}-row-hover`]: isRowHover.value && rowHover.value,
166
166
  [`${prefixCls}-row-dragging`]: isDragging.value,
167
167
  [`${prefixCls}-row-dragging-insert-target`]: tableContext.insertToRowKey.value === props.rowKey,
168
168
  [`${prefixCls}-row-odd`]: !isEven,
@@ -1 +1 @@
1
- {"version":3,"file":"BodyRow.vue2.mjs","sources":["../../../../../../../../packages/components/table/src/components/Body/BodyRow.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-09-10 15:16:56\n * @Description:\n-->\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n onBeforeUnmount,\n computed,\n nextTick,\n watchEffect,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRows, useProvideBodyRow } from '../context/BodyRowsContext'\nimport { ExpandColumnKey } from '../../hooks/useColumns'\nimport { RenderSlot } from '../../utils/renderVNode'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { useCellSelection } from '../../hooks/useCellSelection'\nimport { useCellKeyboard } from '../../hooks/useCellKeyboard'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport eagerComputed from '../../utils/eagerComputed'\nimport classNames from '../../utils/classNames'\nimport BodyCell from './BodyCell'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { CSSProperties, PropType } from 'vue'\nimport type { RowClassName, RowType, Key } from '../interface'\n\nlet uniIdCount = 0\nexport default defineComponent({\n name: 'ProTableBodyRow',\n components: {\n ExpandIcon,\n BodyCell,\n ExpandedRow,\n BodyExtraCell,\n RenderSlot,\n },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n isExpandRow: Boolean as PropType<boolean>,\n record: { type: Object },\n type: { type: String as PropType<RowType> },\n rowKey: { type: [Number, String] as PropType<Key>, required: true },\n supportExpand: Boolean,\n pos: Number as PropType<number>,\n rowIndex: Number as PropType<number>,\n flattenRowIndex: Number,\n indent: Number as PropType<number>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n getRowClassName: { type: Function as PropType<RowClassName<any>> },\n },\n setup(props) {\n const rowUniId = 'row_uni_id_' + uniIdCount++\n const tableContext = useInjectTable()\n const rowInstance = getCurrentInstance()\n\n const { editCellKeys, closeEditor, openEditor } = useEditInject()\n\n let isUnmount = false\n const bodyRow = ref()\n\n const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection()\n const { onCellKeydown } = useCellKeyboard()\n\n const calMaxHeight = () => {\n if (isUnmount) return\n let rowHeight = 0\n let autoCells: HTMLDivElement[] = []\n if (bodyRow.value) {\n autoCells = bodyRow.value.querySelectorAll('div[data-cell-auto=true]')\n }\n autoCells.forEach((autoCell: HTMLDivElement) => {\n const { offsetWidth, offsetHeight } = autoCell\n let autoCellHeight = offsetWidth ? offsetHeight : 0\n const parentStyle = getComputedStyle(autoCell.parentNode as Element)\n autoCellHeight +=\n parseFloat(parentStyle.getPropertyValue('border-top-width')) +\n parseFloat(parentStyle.getPropertyValue('border-bottom-width'))\n rowHeight = rowHeight > autoCellHeight ? rowHeight : autoCellHeight\n })\n if (autoCells.length) {\n tableContext.addRowHeight(rowUniId, props.rowKey!, rowHeight)\n } else {\n tableContext.removeRowHeight(rowUniId)\n }\n }\n\n watch(\n () => props.rowKey,\n () => {\n calMaxHeight()\n },\n { flush: 'post' },\n )\n\n const resizeObserver: ResizeObserver = new ResizeObserver(() => {\n calMaxHeight()\n })\n\n const { columns, columnStartIndex } = useInjectBodyRows()\n const mergedColumns = computed(() =>\n (props.type === 'center'\n ? tableContext.centerRowColumnsMap.value.get(props.rowKey)\n : columns.value)!.filter((item) => !!item),\n )\n\n const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } =\n useInjectBody()\n const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey } = useInjectHover()\n\n const popupContainer = computed(() =>\n props.type === 'left'\n ? leftPopupContainer.value\n : props.type === 'center'\n ? centerPopupContainer.value\n : props.type === 'right'\n ? rightPopupContainer.value\n : null,\n )\n\n const isDragging = eagerComputed(() => tableContext.draggingRowKey.value === props.rowKey)\n const isRowHover = eagerComputed(() => hoverRowKey.value === props.rowKey)\n\n watch(\n [isRowHover, bodyRow],\n () => {\n bodyRow.value &&\n (isRowHover.value\n ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`)\n : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`))\n },\n { immediate: true, flush: 'post' },\n )\n\n const mergedTooltipOpen = eagerComputed(() => tooltipOpen.value && isRowHover.value)\n\n let timer: any\n onBeforeUnmount(() => {\n isUnmount = true\n resizeObserver.disconnect()\n clearTimeout(timer)\n tableContext.removeRowHeight(rowUniId)\n })\n\n const hasMultiRowSpanInfo = eagerComputed(() => {\n return !tableContext.hasMultiRowSpanInfo.value[props.rowKey!]\n })\n\n const customRowProps = computed(() => {\n return tableContext.props.customRow?.(props.record!, props.rowIndex)\n })\n\n const rowSelectionType = computed(() => {\n return tableContext.props.rowSelection?.type\n })\n\n const isExpanded = ref(false)\n const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value)\n const expanded = eagerComputed(() => expandedRowKeys.value.has?.(props.rowKey!))\n const expandIconColumnIndex = computed(() => tableContext.expandIconColumnIndex.value || 0)\n const indentSize = computed(() => tableContext.indentSize.value)\n\n watchEffect(() => {\n if (expanded.value) {\n isExpanded.value = true\n }\n })\n\n const rowExpandable = computed(\n () =>\n tableContext.expandType.value === 'row' &&\n tableContext.props.rowExpandable?.(props.record!),\n )\n\n const nestExpandable = computed(() => tableContext.expandType.value === 'nest')\n\n const hasNestChildren = computed(\n () =>\n !!(\n tableContext.childrenColumnName.value &&\n props.record?.[tableContext.childrenColumnName.value]\n ),\n )\n const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value)\n\n const onInternalTriggerExpand = (record: any, event: any) => {\n tableContext.onTriggerExpand(record, props.rowKey!, event)\n }\n\n const mergedRowHeights = computed(() => tableContext.mergedRowHeights.value)\n\n const height = eagerComputed(() => mergedRowHeights.value[props.rowKey!])\n const cellHeight = eagerComputed(() => tableContext.rowHeights.value[props.rowKey!])\n\n const isSelected = computed(\n () =>\n tableContext.props.highlightSelectRow &&\n tableContext.selection.derivedSelectedKeySet.value.has(props.rowKey!),\n )\n\n const rowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n const isEven = rowIndex! % 2 == 0\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-row-level-${indent}`]: true,\n [`${prefixCls}-row-hover`]: isRowHover.value,\n [`${prefixCls}-row-dragging`]: isDragging.value,\n [`${prefixCls}-row-dragging-insert-target`]:\n tableContext.insertToRowKey.value === props.rowKey,\n [`${prefixCls}-row-odd`]: !isEven,\n [`${prefixCls}-row-even`]: isEven,\n [`${prefixCls}-no-height`]: !height.value,\n [`${prefixCls}-row-selected`]: isSelected.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandRowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-expanded-row`]: true,\n [`${prefixCls}-expanded-row-level-${indent! + 1}`]: true,\n [`${prefixCls}-no-height`]: !height.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandColumnWidth = eagerComputed(() => {\n return tableContext.allCellProps.value[props.rowKey!]?.[ExpandColumnKey]?.props?.style?.width\n })\n\n const rowStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {\n opacity: 1,\n [`--${props.prefixCls}-row-bg`]: `var(--${props.prefixCls}-row-bg-${props.rowKey}, var(--${props.prefixCls}-bg))`,\n }\n if (hasMultiRowSpanInfo.value) {\n style.transform = `translateY(${props.pos}px)`\n } else {\n style.top = `${props.pos}px`\n }\n if (height.value !== undefined) {\n style.height = `${height.value}px`\n } else {\n style.height = `${tableContext.baseHeight.value}px`\n }\n if (props.isExpandRow && columnStartIndex.value === 0) {\n style.width = expandColumnWidth.value\n style.minWidth = '100%'\n }\n return style\n })\n\n watch(\n () => ({ ...rowStyle.value }),\n (newStyle, oldStyle = {}) => {\n if (tableContext.animateRows.value && !tableContext.useAnimate.value) {\n if (\n newStyle.top !== oldStyle.top ||\n newStyle.height !== oldStyle.height ||\n newStyle.transform !== oldStyle.transform\n ) {\n nextTick(() => {\n clearTimeout(timer)\n if (rowInstance?.vnode.el && rowInstance.vnode.el.style) {\n rowInstance.vnode.el.style.transition = 'none'\n timer = setTimeout(() => {\n if (rowInstance?.vnode?.el?.style) {\n rowInstance.vnode.el.style.transition = null\n }\n }, 100)\n }\n })\n }\n }\n },\n { immediate: true },\n )\n\n useProvideBodyRow({\n top: computed(() => props.pos!),\n height: computed(() =>\n height.value !== undefined ? height.value : tableContext.baseHeight.value,\n ),\n rowKey: computed(() => props.rowKey),\n })\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-position-absolute`]: true,\n }))\n\n return {\n rowClass,\n rowStyle,\n cellClass,\n tableContext,\n mergedRowHeights,\n handleCellBlur,\n handleCellHover,\n handleClick: (event: any) => {\n tableContext.props.expandRowByClick &&\n mergedExpandable.value &&\n onInternalTriggerExpand(props.record, event)\n },\n rowSelectionType,\n nestExpandable,\n hasNestChildren,\n mergedExpandable,\n expandIconColumnIndex,\n indentSize,\n expanded,\n onInternalTriggerExpand,\n customRowProps,\n expandColumnKey: ExpandColumnKey,\n expandRowClass,\n mergedColumns,\n height,\n cellHeight,\n columnStartIndex,\n resizeObserver,\n calMaxHeight,\n bodyRow,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n editCellKeys,\n closeEditor,\n openEditor,\n mergedTooltipOpen,\n onCellMousedown,\n onCellKeydown,\n onCellMousemove,\n onCellClick,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isExpandRow\">\n <div\n v-if=\"columnStartIndex === 0\"\n ref=\"bodyRow\"\n :data-row-key=\"rowKey\"\n :class=\"expandRowClass\"\n :style=\"rowStyle\"\n role=\"row\"\n >\n <ExpandedRow\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n />\n </div>\n </template>\n <div\n v-else\n v-bind=\"customRowProps\"\n ref=\"bodyRow\"\n :class=\"rowClass\"\n :style=\"rowStyle\"\n :data-row-key=\"rowKey\"\n role=\"row\"\n @click=\"handleClick\"\n >\n <RenderSlot>\n <template v-for=\"(column, index) in mergedColumns\" :key=\"column && column.columnKey\">\n <BodyExtraCell\n v-if=\"column && column.__Internal__Column__\"\n :prefix-cls=\"prefixCls\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex!\"\n :type=\"type\"\n :column=\"mergedColumns?.[index]\"\n :expanded=\"expanded\"\n :support-expand=\"mergedExpandable\"\n :record=\"record\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @mouseleave=\"handleCellBlur\"\n />\n <BodyCell\n v-else-if=\"column\"\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :type=\"type\"\n :row-index=\"rowIndex!\"\n :flatten-row-index=\"flattenRowIndex\"\n :wrap-text=\"wrapText\"\n :column=\"column\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n :has-append-node=\"column.columnIndex === expandIconColumnIndex && nestExpandable\"\n :height=\"cellHeight\"\n :get-popup-container=\"getPopupContainer\"\n :tooltip-open=\"mergedTooltipOpen && hoverColumnKey === column.columnKey\"\n :edit-cell-keys=\"editCellKeys\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\n @mousedown=\"onCellMousedown\"\n @mousemove=\"onCellMousemove\"\n @keydown=\"onCellKeydown\"\n @click=\"onCellClick\"\n >\n <template #appendNode>\n <div :class=\"`${prefixCls}-append-node`\">\n <span\n :style=\"`padding-left: ${(indent || 0) * indentSize}px`\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n ></span>\n <ExpandIcon\n :expanded=\"expanded\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAuCA,IAAI,UAAA,GAAa,CAAA;AACjB,gBAAe,eAAA,CAAgB;AAAA,EAC7B,IAAA,EAAM,iBAAA;AAAA,EACN,UAAA,EAAY;AAAA,IACV,UAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA,EAAc,KAAA;AAAA,EACd,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,MAAA;AAAA,IACX,WAAA,EAAa,OAAA;AAAA,IACb,MAAA,EAAQ,EAAE,IAAA,EAAM,MAAA,EAAO;AAAA,IACvB,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,EAA4B;AAAA,IAC1C,MAAA,EAAQ,EAAE,IAAA,EAAM,CAAC,QAAQ,MAAM,CAAA,EAAoB,UAAU,IAAA,EAAK;AAAA,IAClE,aAAA,EAAe,OAAA;AAAA,IACf,GAAA,EAAK,MAAA;AAAA,IACL,QAAA,EAAU,MAAA;AAAA,IACV,eAAA,EAAiB,MAAA;AAAA,IACjB,MAAA,EAAQ,MAAA;AAAA,IACR,QAAA,EAAU,EAAE,IAAA,EAAM,OAAA,EAA8B,SAAS,KAAA,EAAM;AAAA,IAC/D,eAAA,EAAiB,EAAE,IAAA,EAAM,QAAA;AAAwC,GACnE;AAAA,EACA,MAAM,KAAA,EAAO;AACX,IAAA,MAAM,WAAW,aAAA,GAAgB,UAAA,EAAA;AACjC,IAAA,MAAM,eAAe,cAAA,EAAe;AACpC,IAAA,MAAM,cAAc,kBAAA,EAAmB;AAEvC,IAAA,MAAM,EAAE,YAAA,EAAc,WAAA,EAAa,UAAA,KAAe,aAAA,EAAc;AAEhE,IAAA,IAAI,SAAA,GAAY,KAAA;AAChB,IAAA,MAAM,UAAU,GAAA,EAAI;AAEpB,IAAA,MAAM,EAAE,eAAA,EAAiB,eAAA,EAAiB,WAAA,KAAgB,gBAAA,EAAiB;AAC3E,IAAA,MAAM,EAAE,aAAA,EAAc,GAAI,eAAA,EAAgB;AAE1C,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,IAAI,SAAA,EAAW;AACf,MAAA,IAAI,SAAA,GAAY,CAAA;AAChB,MAAA,IAAI,YAA8B,EAAC;AACnC,MAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,QAAA,SAAA,GAAY,OAAA,CAAQ,KAAA,CAAM,gBAAA,CAAiB,0BAA0B,CAAA;AAAA,MACvE;AACA,MAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,QAAA,KAA6B;AAC9C,QAAA,MAAM,EAAE,WAAA,EAAa,YAAA,EAAa,GAAI,QAAA;AACtC,QAAA,IAAI,cAAA,GAAiB,cAAc,YAAA,GAAe,CAAA;AAClD,QAAA,MAAM,WAAA,GAAc,gBAAA,CAAiB,QAAA,CAAS,UAAqB,CAAA;AACnE,QAAA,cAAA,IACE,UAAA,CAAW,WAAA,CAAY,gBAAA,CAAiB,kBAAkB,CAAC,IAC3D,UAAA,CAAW,WAAA,CAAY,gBAAA,CAAiB,qBAAqB,CAAC,CAAA;AAChE,QAAA,SAAA,GAAY,SAAA,GAAY,iBAAiB,SAAA,GAAY,cAAA;AAAA,MACvD,CAAC,CAAA;AACD,MAAA,IAAI,UAAU,MAAA,EAAQ;AACpB,QAAA,YAAA,CAAa,YAAA,CAAa,QAAA,EAAU,KAAA,CAAM,MAAA,EAAS,SAAS,CAAA;AAAA,MAC9D,CAAA,MAAO;AACL,QAAA,YAAA,CAAa,gBAAgB,QAAQ,CAAA;AAAA,MACvC;AAAA,IACF,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAA,CAAM,MAAA;AAAA,MACZ,MAAM;AACJ,QAAA,YAAA,EAAa;AAAA,MACf,CAAA;AAAA,MACA,EAAE,OAAO,MAAA;AAAO,KAClB;AAEA,IAAA,MAAM,cAAA,GAAiC,IAAI,cAAA,CAAe,MAAM;AAC9D,MAAA,YAAA,EAAa;AAAA,IACf,CAAC,CAAA;AAED,IAAA,MAAM,EAAE,OAAA,EAAS,gBAAA,EAAiB,GAAI,iBAAA,EAAkB;AACxD,IAAA,MAAM,aAAA,GAAgB,QAAA;AAAA,MAAS,OAC5B,KAAA,CAAM,IAAA,KAAS,WACZ,YAAA,CAAa,mBAAA,CAAoB,MAAM,GAAA,CAAI,KAAA,CAAM,MAAM,CAAA,GACvD,QAAQ,KAAA,EAAQ,MAAA,CAAO,CAAC,IAAA,KAAS,CAAC,CAAC,IAAI;AAAA,KAC7C;AAEA,IAAA,MAAM,EAAE,WAAA,EAAa,kBAAA,EAAoB,oBAAA,EAAsB,mBAAA,KAC7D,aAAA,EAAc;AAChB,IAAA,MAAM,EAAE,cAAA,EAAgB,eAAA,EAAiB,WAAA,EAAa,cAAA,KAAmB,cAAA,EAAe;AAExF,IAAA,MAAM,cAAA,GAAiB,QAAA;AAAA,MAAS,MAC9B,KAAA,CAAM,IAAA,KAAS,MAAA,GACX,mBAAmB,KAAA,GACnB,KAAA,CAAM,IAAA,KAAS,QAAA,GACb,qBAAqB,KAAA,GACrB,KAAA,CAAM,IAAA,KAAS,OAAA,GACb,oBAAoB,KAAA,GACpB;AAAA,KACV;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc,MAAM,aAAa,cAAA,CAAe,KAAA,KAAU,MAAM,MAAM,CAAA;AACzF,IAAA,MAAM,aAAa,aAAA,CAAc,MAAM,WAAA,CAAY,KAAA,KAAU,MAAM,MAAM,CAAA;AAEzE,IAAA,KAAA;AAAA,MACE,CAAC,YAAY,OAAO,CAAA;AAAA,MACpB,MAAM;AACJ,QAAA,OAAA,CAAQ,UACL,UAAA,CAAW,KAAA,GACR,QAAA,CAAS,OAAA,CAAQ,OAAO,CAAA,EAAG,KAAA,CAAM,SAAS,CAAA,UAAA,CAAY,IACtD,WAAA,CAAY,OAAA,CAAQ,OAAO,CAAA,EAAG,KAAA,CAAM,SAAS,CAAA,UAAA,CAAY,CAAA,CAAA;AAAA,MACjE,CAAA;AAAA,MACA,EAAE,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,MAAA;AAAO,KACnC;AAEA,IAAA,MAAM,oBAAoB,aAAA,CAAc,MAAM,WAAA,CAAY,KAAA,IAAS,WAAW,KAAK,CAAA;AAEnF,IAAA,IAAI,KAAA;AACJ,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,SAAA,GAAY,IAAA;AACZ,MAAA,cAAA,CAAe,UAAA,EAAW;AAC1B,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,YAAA,CAAa,gBAAgB,QAAQ,CAAA;AAAA,IACvC,CAAC,CAAA;AAED,IAAA,MAAM,mBAAA,GAAsB,cAAc,MAAM;AAC9C,MAAA,OAAO,CAAC,YAAA,CAAa,mBAAA,CAAoB,KAAA,CAAM,MAAM,MAAO,CAAA;AAAA,IAC9D,CAAC,CAAA;AAED,IAAA,MAAM,cAAA,GAAiB,SAAS,MAAM;;AACpC,MAAA,OAAA,CAAO,wBAAa,KAAA,EAAM,SAAA,KAAnB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAA+B,KAAA,CAAM,QAAS,KAAA,CAAM,QAAA,CAAA;AAAA,IAC7D,CAAC,CAAA;AAED,IAAA,MAAM,gBAAA,GAAmB,SAAS,MAAM;;AACtC,MAAA,OAAA,CAAO,EAAA,GAAA,YAAA,CAAa,KAAA,CAAM,YAAA,KAAnB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAiC,IAAA;AAAA,IAC1C,CAAC,CAAA;AAED,IAAA,MAAM,UAAA,GAAa,IAAI,KAAK,CAAA;AAC5B,IAAA,MAAM,eAAA,GAAkB,QAAA,CAAS,MAAM,YAAA,CAAa,gBAAgB,KAAK,CAAA;AACzE,IAAA,MAAM,QAAA,GAAW,cAAc,MAAG;;AAAG,MAAA,OAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,eAAA,CAAgB,KAAA,EAAM,GAAA,KAAtB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAA4B,KAAA,CAAM,MAAA,CAAA;AAAA,IAAA,CAAQ,CAAA;AAC/E,IAAA,MAAM,wBAAwB,QAAA,CAAS,MAAM,YAAA,CAAa,qBAAA,CAAsB,SAAS,CAAC,CAAA;AAC1F,IAAA,MAAM,UAAA,GAAa,QAAA,CAAS,MAAM,YAAA,CAAa,WAAW,KAAK,CAAA;AAE/D,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,IAAI,SAAS,KAAA,EAAO;AAClB,QAAA,UAAA,CAAW,KAAA,GAAQ,IAAA;AAAA,MACrB;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,aAAA,GAAgB,QAAA;AAAA,MACpB,MAAG;;AACD,QAAA,OAAA,YAAA,CAAa,WAAW,KAAA,KAAU,KAAA,KAAA,CAClC,wBAAa,KAAA,EAAM,aAAA,KAAnB,4BAAmC,KAAA,CAAM,MAAA,CAAA,CAAA;AAAA,MAAA;AAAA,KAC7C;AAEA,IAAA,MAAM,iBAAiB,QAAA,CAAS,MAAM,YAAA,CAAa,UAAA,CAAW,UAAU,MAAM,CAAA;AAE9E,IAAA,MAAM,eAAA,GAAkB,QAAA;AAAA,MACtB,MAAG;;AACD,QAAA,OAAA,CAAC,EACC,aAAa,kBAAA,CAAmB,KAAA,KAAA,CAChC,WAAM,MAAA,KAAN,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,aAAa,kBAAA,CAAmB,KAAA,CAAA,CAAA,CAAA;AAAA,MAAA;AAAA,KAErD;AACA,IAAA,MAAM,mBAAmB,QAAA,CAAS,MAAM,aAAA,CAAc,KAAA,IAAS,eAAe,KAAK,CAAA;AAEnF,IAAA,MAAM,uBAAA,GAA0B,CAAC,MAAA,EAAa,KAAA,KAAe;AAC3D,MAAA,YAAA,CAAa,eAAA,CAAgB,MAAA,EAAQ,KAAA,CAAM,MAAA,EAAS,KAAK,CAAA;AAAA,IAC3D,CAAA;AAEA,IAAA,MAAM,gBAAA,GAAmB,QAAA,CAAS,MAAM,YAAA,CAAa,iBAAiB,KAAK,CAAA;AAE3E,IAAA,MAAM,SAAS,aAAA,CAAc,MAAM,iBAAiB,KAAA,CAAM,KAAA,CAAM,MAAO,CAAC,CAAA;AACxE,IAAA,MAAM,UAAA,GAAa,cAAc,MAAM,YAAA,CAAa,WAAW,KAAA,CAAM,KAAA,CAAM,MAAO,CAAC,CAAA;AAEnF,IAAA,MAAM,UAAA,GAAa,QAAA;AAAA,MACjB,MACE,YAAA,CAAa,KAAA,CAAM,kBAAA,IACnB,YAAA,CAAa,UAAU,qBAAA,CAAsB,KAAA,CAAM,GAAA,CAAI,KAAA,CAAM,MAAO;AAAA,KACxE;AAEA,IAAA,MAAM,QAAA,GAAW,SAAS,MAAM;;AAC9B,MAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,QAAA,EAAU,QAAO,GAAI,KAAA;AAChD,MAAA,MAAM,MAAA,GAAS,WAAY,CAAA,IAAK,CAAA;AAChC,MAAA,OAAO,UAAA;AAAA,QACL;AAAA,UACE,CAAC,CAAA,EAAG,SAAS,CAAA,IAAA,CAAM,GAAG,IAAA;AAAA,UACtB,CAAC,CAAA,EAAG,SAAS,CAAA,WAAA,EAAc,MAAM,EAAE,GAAG,IAAA;AAAA,UACtC,CAAC,CAAA,EAAG,SAAS,CAAA,UAAA,CAAY,GAAG,UAAA,CAAW,KAAA;AAAA,UACvC,CAAC,CAAA,EAAG,SAAS,CAAA,aAAA,CAAe,GAAG,UAAA,CAAW,KAAA;AAAA,UAC1C,CAAC,GAAG,SAAS,CAAA,2BAAA,CAA6B,GACxC,YAAA,CAAa,cAAA,CAAe,UAAU,KAAA,CAAM,MAAA;AAAA,UAC9C,CAAC,CAAA,EAAG,SAAS,CAAA,QAAA,CAAU,GAAG,CAAC,MAAA;AAAA,UAC3B,CAAC,CAAA,EAAG,SAAS,CAAA,SAAA,CAAW,GAAG,MAAA;AAAA,UAC3B,CAAC,CAAA,EAAG,SAAS,CAAA,UAAA,CAAY,GAAG,CAAC,MAAA,CAAO,KAAA;AAAA,UACpC,CAAC,CAAA,EAAG,SAAS,CAAA,aAAA,CAAe,GAAG,UAAA,CAAW;AAAA,SAC5C;AAAA,QAAA,CACA,EAAA,GAAA,KAAA,CAAM,eAAA,KAAN,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,EAAwB,MAAA,EAAQ,QAAA,EAAW,MAAA;AAAA,OAC7C;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,cAAA,GAAiB,SAAS,MAAM;;AACpC,MAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAQ,QAAA,EAAU,QAAO,GAAI,KAAA;AAChD,MAAA,OAAO,UAAA;AAAA,QACL;AAAA,UACE,CAAC,CAAA,EAAG,SAAS,CAAA,IAAA,CAAM,GAAG,IAAA;AAAA,UACtB,CAAC,CAAA,EAAG,SAAS,CAAA,aAAA,CAAe,GAAG,IAAA;AAAA,UAC/B,CAAC,CAAA,EAAG,SAAS,uBAAuB,MAAA,GAAU,CAAC,EAAE,GAAG,IAAA;AAAA,UACpD,CAAC,CAAA,EAAG,SAAS,CAAA,UAAA,CAAY,GAAG,CAAC,MAAA,CAAO;AAAA,SACtC;AAAA,QAAA,CACA,EAAA,GAAA,KAAA,CAAM,eAAA,KAAN,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,EAAwB,MAAA,EAAQ,QAAA,EAAW,MAAA;AAAA,OAC7C;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,iBAAA,GAAoB,cAAc,MAAM;;AAC5C,MAAA,OAAA,CAAO,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,YAAA,CAAa,YAAA,CAAa,KAAA,CAAM,KAAA,CAAM,MAAO,CAAA,KAA7C,IAAA,GAAA,MAAA,GAAA,EAAA,CAAiD,eAAA,CAAA,KAAjD,IAAA,GAAA,MAAA,GAAA,EAAA,CAAmE,KAAA,KAAnE,IAAA,GAAA,MAAA,GAAA,EAAA,CAA0E,KAAA,KAA1E,IAAA,GAAA,MAAA,GAAA,EAAA,CAAiF,KAAA;AAAA,IAC1F,CAAC,CAAA;AAED,IAAA,MAAM,QAAA,GAAW,SAAwB,MAAM;AAC7C,MAAA,MAAM,KAAA,GAAuB;AAAA,QAC3B,OAAA,EAAS,CAAA;AAAA,QACT,CAAC,CAAA,EAAA,EAAK,KAAA,CAAM,SAAS,SAAS,GAAG,CAAA,MAAA,EAAS,KAAA,CAAM,SAAS,CAAA,QAAA,EAAW,KAAA,CAAM,MAAM,CAAA,QAAA,EAAW,MAAM,SAAS,CAAA,KAAA;AAAA,OAC5G;AACA,MAAA,IAAI,oBAAoB,KAAA,EAAO;AAC7B,QAAA,KAAA,CAAM,SAAA,GAAY,CAAA,WAAA,EAAc,KAAA,CAAM,GAAG,CAAA,GAAA,CAAA;AAAA,MAC3C,CAAA,MAAO;AACL,QAAA,KAAA,CAAM,GAAA,GAAM,CAAA,EAAG,KAAA,CAAM,GAAG,CAAA,EAAA,CAAA;AAAA,MAC1B;AACA,MAAA,IAAI,MAAA,CAAO,UAAU,MAAA,EAAW;AAC9B,QAAA,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,EAAA,CAAA;AAAA,MAChC,CAAA,MAAO;AACL,QAAA,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG,YAAA,CAAa,UAAA,CAAW,KAAK,CAAA,EAAA,CAAA;AAAA,MACjD;AACA,MAAA,IAAI,KAAA,CAAM,WAAA,IAAe,gBAAA,CAAiB,KAAA,KAAU,CAAA,EAAG;AACrD,QAAA,KAAA,CAAM,QAAQ,iBAAA,CAAkB,KAAA;AAChC,QAAA,KAAA,CAAM,QAAA,GAAW,MAAA;AAAA,MACnB;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,KAAA;AAAA,MACE,OAAO,EAAE,GAAG,QAAA,CAAS,KAAA,EAAM,CAAA;AAAA,MAC3B,CAAC,QAAA,EAAU,QAAA,GAAW,EAAC,KAAM;AAC3B,QAAA,IAAI,aAAa,WAAA,CAAY,KAAA,IAAS,CAAC,YAAA,CAAa,WAAW,KAAA,EAAO;AACpE,UAAA,IACE,QAAA,CAAS,GAAA,KAAQ,QAAA,CAAS,GAAA,IAC1B,QAAA,CAAS,MAAA,KAAW,QAAA,CAAS,MAAA,IAC7B,QAAA,CAAS,SAAA,KAAc,QAAA,CAAS,SAAA,EAChC;AACA,YAAA,QAAA,CAAS,MAAM;AACb,cAAA,YAAA,CAAa,KAAK,CAAA;AAClB,cAAA,IAAA,CAAI,2CAAa,KAAA,CAAM,EAAA,KAAM,WAAA,CAAY,KAAA,CAAM,GAAG,KAAA,EAAO;AACvD,gBAAA,WAAA,CAAY,KAAA,CAAM,EAAA,CAAG,KAAA,CAAM,UAAA,GAAa,MAAA;AACxC,gBAAA,KAAA,GAAQ,WAAW,MAAM;;AACvB,kBAAA,IAAA,CAAI,EAAA,GAAA,CAAA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,KAAA,KAAb,IAAA,GAAA,MAAA,GAAA,EAAA,CAAoB,EAAA,KAApB,mBAAwB,KAAA,EAAO;AACjC,oBAAA,WAAA,CAAY,KAAA,CAAM,EAAA,CAAG,KAAA,CAAM,UAAA,GAAa,IAAA;AAAA,kBAC1C;AAAA,gBACF,GAAG,GAAG,CAAA;AAAA,cACR;AAAA,YACF,CAAC,CAAA;AAAA,UACH;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,EAAE,WAAW,IAAA;AAAK,KACpB;AAEA,IAAA,iBAAA,CAAkB;AAAA,MAChB,GAAA,EAAK,QAAA,CAAS,MAAM,KAAA,CAAM,GAAI,CAAA;AAAA,MAC9B,MAAA,EAAQ,QAAA;AAAA,QAAS,MACf,MAAA,CAAO,KAAA,KAAU,SAAY,MAAA,CAAO,KAAA,GAAQ,aAAa,UAAA,CAAW;AAAA,OACtE;AAAA,MACA,MAAA,EAAQ,QAAA,CAAS,MAAM,KAAA,CAAM,MAAM;AAAA,KACpC,CAAA;AAED,IAAA,MAAM,SAAA,GAAY,SAAS,OAAO;AAAA,MAChC,CAAC,CAAA,EAAG,KAAA,CAAM,SAAS,OAAO,GAAG,IAAA;AAAA,MAC7B,CAAC,CAAA,EAAG,KAAA,CAAM,SAAS,oBAAoB,GAAG;AAAA,KAC5C,CAAE,CAAA;AAEF,IAAA,OAAO;AAAA,MACL,QAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,gBAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,WAAA,EAAa,CAAC,KAAA,KAAe;AAC3B,QAAA,YAAA,CAAa,MAAM,gBAAA,IACjB,gBAAA,CAAiB,SACjB,uBAAA,CAAwB,KAAA,CAAM,QAAQ,KAAK,CAAA;AAAA,MAC/C,CAAA;AAAA,MACA,gBAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,qBAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAA;AAAA,MACA,uBAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA,EAAiB,eAAA;AAAA,MACjB,cAAA;AAAA,MACA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,gBAAA;AAAA,MACA,cAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,cAAA;AAAA,MACA,QAAA,EAAU,aAAA,CAAc,MAAM,YAAA,CAAa,SAAS,KAAK,CAAA;AAAA,MACzD,iBAAA,EAAmB,MAAM,cAAA,CAAe,KAAA;AAAA,MACxC,YAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,iBAAA;AAAA,MACA,eAAA;AAAA,MACA,aAAA;AAAA,MACA,eAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"BodyRow.vue2.mjs","sources":["../../../../../../../../packages/components/table/src/components/Body/BodyRow.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-09-29 09:00:32\n * @Description:\n-->\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n onBeforeUnmount,\n computed,\n nextTick,\n watchEffect,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRows, useProvideBodyRow } from '../context/BodyRowsContext'\nimport { ExpandColumnKey } from '../../hooks/useColumns'\nimport { RenderSlot } from '../../utils/renderVNode'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { useCellSelection } from '../../hooks/useCellSelection'\nimport { useCellKeyboard } from '../../hooks/useCellKeyboard'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport eagerComputed from '../../utils/eagerComputed'\nimport classNames from '../../utils/classNames'\nimport BodyCell from './BodyCell'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { CSSProperties, PropType } from 'vue'\nimport type { RowClassName, RowType, Key } from '../interface'\n\nlet uniIdCount = 0\nexport default defineComponent({\n name: 'ProTableBodyRow',\n components: {\n ExpandIcon,\n BodyCell,\n ExpandedRow,\n BodyExtraCell,\n RenderSlot,\n },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n isExpandRow: Boolean as PropType<boolean>,\n record: { type: Object },\n type: { type: String as PropType<RowType> },\n rowKey: { type: [Number, String] as PropType<Key>, required: true },\n supportExpand: Boolean,\n pos: Number as PropType<number>,\n rowIndex: Number as PropType<number>,\n flattenRowIndex: Number,\n indent: Number as PropType<number>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n getRowClassName: { type: Function as PropType<RowClassName<any>> },\n },\n setup(props) {\n const rowUniId = 'row_uni_id_' + uniIdCount++\n const tableContext = useInjectTable()\n const rowInstance = getCurrentInstance()\n\n const { editCellKeys, closeEditor, openEditor } = useEditInject()\n\n let isUnmount = false\n const bodyRow = ref()\n\n const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection()\n const { onCellKeydown } = useCellKeyboard()\n\n const calMaxHeight = () => {\n if (isUnmount) return\n let rowHeight = 0\n let autoCells: HTMLDivElement[] = []\n if (bodyRow.value) {\n autoCells = bodyRow.value.querySelectorAll('div[data-cell-auto=true]')\n }\n autoCells.forEach((autoCell: HTMLDivElement) => {\n const { offsetWidth, offsetHeight } = autoCell\n let autoCellHeight = offsetWidth ? offsetHeight : 0\n const parentStyle = getComputedStyle(autoCell.parentNode as Element)\n autoCellHeight +=\n parseFloat(parentStyle.getPropertyValue('border-top-width')) +\n parseFloat(parentStyle.getPropertyValue('border-bottom-width'))\n rowHeight = rowHeight > autoCellHeight ? rowHeight : autoCellHeight\n })\n if (autoCells.length) {\n tableContext.addRowHeight(rowUniId, props.rowKey!, rowHeight)\n } else {\n tableContext.removeRowHeight(rowUniId)\n }\n }\n\n watch(\n () => props.rowKey,\n () => {\n calMaxHeight()\n },\n { flush: 'post' },\n )\n\n const resizeObserver: ResizeObserver = new ResizeObserver(() => {\n calMaxHeight()\n })\n\n const { columns, columnStartIndex } = useInjectBodyRows()\n const mergedColumns = computed(() =>\n (props.type === 'center'\n ? tableContext.centerRowColumnsMap.value.get(props.rowKey)\n : columns.value)!.filter((item) => !!item),\n )\n\n const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } =\n useInjectBody()\n const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey, rowHover } =\n useInjectHover()\n\n const popupContainer = computed(() =>\n props.type === 'left'\n ? leftPopupContainer.value\n : props.type === 'center'\n ? centerPopupContainer.value\n : props.type === 'right'\n ? rightPopupContainer.value\n : null,\n )\n\n const isDragging = eagerComputed(() => tableContext.draggingRowKey.value === props.rowKey)\n const isRowHover = eagerComputed(() => hoverRowKey.value === props.rowKey)\n\n watch(\n [isRowHover, bodyRow],\n () => {\n bodyRow.value &&\n rowHover.value &&\n (isRowHover.value\n ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`)\n : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`))\n },\n { immediate: true, flush: 'post' },\n )\n\n const mergedTooltipOpen = eagerComputed(() => tooltipOpen.value && isRowHover.value)\n\n let timer: any\n onBeforeUnmount(() => {\n isUnmount = true\n resizeObserver.disconnect()\n clearTimeout(timer)\n tableContext.removeRowHeight(rowUniId)\n })\n\n const hasMultiRowSpanInfo = eagerComputed(() => {\n return !tableContext.hasMultiRowSpanInfo.value[props.rowKey!]\n })\n\n const customRowProps = computed(() => {\n return tableContext.props.customRow?.(props.record!, props.rowIndex)\n })\n\n const rowSelectionType = computed(() => {\n return tableContext.props.rowSelection?.type\n })\n\n const isExpanded = ref(false)\n const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value)\n const expanded = eagerComputed(() => expandedRowKeys.value.has?.(props.rowKey!))\n const expandIconColumnIndex = computed(() => tableContext.expandIconColumnIndex.value || 0)\n const indentSize = computed(() => tableContext.indentSize.value)\n\n watchEffect(() => {\n if (expanded.value) {\n isExpanded.value = true\n }\n })\n\n const rowExpandable = computed(\n () =>\n tableContext.expandType.value === 'row' &&\n tableContext.props.rowExpandable?.(props.record!),\n )\n\n const nestExpandable = computed(() => tableContext.expandType.value === 'nest')\n\n const hasNestChildren = computed(\n () =>\n !!(\n tableContext.childrenColumnName.value &&\n props.record?.[tableContext.childrenColumnName.value]\n ),\n )\n const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value)\n\n const onInternalTriggerExpand = (record: any, event: any) => {\n tableContext.onTriggerExpand(record, props.rowKey!, event)\n }\n\n const mergedRowHeights = computed(() => tableContext.mergedRowHeights.value)\n\n const height = eagerComputed(() => mergedRowHeights.value[props.rowKey!])\n const cellHeight = eagerComputed(() => tableContext.rowHeights.value[props.rowKey!])\n\n const isSelected = computed(\n () =>\n tableContext.props.highlightSelectRow &&\n tableContext.selection.derivedSelectedKeySet.value.has(props.rowKey!),\n )\n\n const rowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n const isEven = rowIndex! % 2 == 0\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-row-level-${indent}`]: true,\n [`${prefixCls}-row-hover`]: isRowHover.value && rowHover.value,\n [`${prefixCls}-row-dragging`]: isDragging.value,\n [`${prefixCls}-row-dragging-insert-target`]:\n tableContext.insertToRowKey.value === props.rowKey,\n [`${prefixCls}-row-odd`]: !isEven,\n [`${prefixCls}-row-even`]: isEven,\n [`${prefixCls}-no-height`]: !height.value,\n [`${prefixCls}-row-selected`]: isSelected.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandRowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-expanded-row`]: true,\n [`${prefixCls}-expanded-row-level-${indent! + 1}`]: true,\n [`${prefixCls}-no-height`]: !height.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandColumnWidth = eagerComputed(() => {\n return tableContext.allCellProps.value[props.rowKey!]?.[ExpandColumnKey]?.props?.style?.width\n })\n\n const rowStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {\n opacity: 1,\n [`--${props.prefixCls}-row-bg`]: `var(--${props.prefixCls}-row-bg-${props.rowKey}, var(--${props.prefixCls}-bg))`,\n }\n if (hasMultiRowSpanInfo.value) {\n style.transform = `translateY(${props.pos}px)`\n } else {\n style.top = `${props.pos}px`\n }\n if (height.value !== undefined) {\n style.height = `${height.value}px`\n } else {\n style.height = `${tableContext.baseHeight.value}px`\n }\n if (props.isExpandRow && columnStartIndex.value === 0) {\n style.width = expandColumnWidth.value\n style.minWidth = '100%'\n }\n return style\n })\n\n watch(\n () => ({ ...rowStyle.value }),\n (newStyle, oldStyle = {}) => {\n if (tableContext.animateRows.value && !tableContext.useAnimate.value) {\n if (\n newStyle.top !== oldStyle.top ||\n newStyle.height !== oldStyle.height ||\n newStyle.transform !== oldStyle.transform\n ) {\n nextTick(() => {\n clearTimeout(timer)\n if (rowInstance?.vnode.el && rowInstance.vnode.el.style) {\n rowInstance.vnode.el.style.transition = 'none'\n timer = setTimeout(() => {\n if (rowInstance?.vnode?.el?.style) {\n rowInstance.vnode.el.style.transition = null\n }\n }, 100)\n }\n })\n }\n }\n },\n { immediate: true },\n )\n\n useProvideBodyRow({\n top: computed(() => props.pos!),\n height: computed(() =>\n height.value !== undefined ? height.value : tableContext.baseHeight.value,\n ),\n rowKey: computed(() => props.rowKey),\n })\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-position-absolute`]: true,\n }))\n\n return {\n rowClass,\n rowStyle,\n cellClass,\n tableContext,\n mergedRowHeights,\n handleCellBlur,\n handleCellHover,\n handleClick: (event: any) => {\n tableContext.props.expandRowByClick &&\n mergedExpandable.value &&\n onInternalTriggerExpand(props.record, event)\n },\n rowSelectionType,\n nestExpandable,\n hasNestChildren,\n mergedExpandable,\n expandIconColumnIndex,\n indentSize,\n expanded,\n onInternalTriggerExpand,\n customRowProps,\n expandColumnKey: ExpandColumnKey,\n expandRowClass,\n mergedColumns,\n height,\n cellHeight,\n columnStartIndex,\n resizeObserver,\n calMaxHeight,\n bodyRow,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n editCellKeys,\n closeEditor,\n openEditor,\n mergedTooltipOpen,\n onCellMousedown,\n onCellKeydown,\n onCellMousemove,\n onCellClick,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isExpandRow\">\n <div\n v-if=\"columnStartIndex === 0\"\n ref=\"bodyRow\"\n :data-row-key=\"rowKey\"\n :class=\"expandRowClass\"\n :style=\"rowStyle\"\n role=\"row\"\n >\n <ExpandedRow\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n />\n </div>\n </template>\n <div\n v-else\n v-bind=\"customRowProps\"\n ref=\"bodyRow\"\n :class=\"rowClass\"\n :style=\"rowStyle\"\n :data-row-key=\"rowKey\"\n role=\"row\"\n @click=\"handleClick\"\n >\n <RenderSlot>\n <template v-for=\"(column, index) in mergedColumns\" :key=\"column && column.columnKey\">\n <BodyExtraCell\n v-if=\"column && column.__Internal__Column__\"\n :prefix-cls=\"prefixCls\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex!\"\n :type=\"type\"\n :column=\"mergedColumns?.[index]\"\n :expanded=\"expanded\"\n :support-expand=\"mergedExpandable\"\n :record=\"record\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @mouseleave=\"handleCellBlur\"\n />\n <BodyCell\n v-else-if=\"column\"\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :type=\"type\"\n :row-index=\"rowIndex!\"\n :flatten-row-index=\"flattenRowIndex\"\n :wrap-text=\"wrapText\"\n :column=\"column\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n :has-append-node=\"column.columnIndex === expandIconColumnIndex && nestExpandable\"\n :height=\"cellHeight\"\n :get-popup-container=\"getPopupContainer\"\n :tooltip-open=\"mergedTooltipOpen && hoverColumnKey === column.columnKey\"\n :edit-cell-keys=\"editCellKeys\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\n @mousedown=\"onCellMousedown\"\n @mousemove=\"onCellMousemove\"\n @keydown=\"onCellKeydown\"\n @click=\"onCellClick\"\n >\n <template #appendNode>\n <div :class=\"`${prefixCls}-append-node`\">\n <span\n :style=\"`padding-left: ${(indent || 0) * indentSize}px`\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n ></span>\n <ExpandIcon\n :expanded=\"expanded\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
@@ -93,8 +93,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
93
93
  onKeydown?: ((...args: any[]) => any) | undefined;
94
94
  onCloseEditor?: ((...args: any[]) => any) | undefined;
95
95
  }>, {
96
- multiple: boolean;
97
96
  record: any;
97
+ multiple: boolean;
98
98
  column: FinallyColumnType<import("../interface").DefaultRecordType>;
99
99
  autoHeight: boolean;
100
100
  customEditable: boolean;
@@ -55,10 +55,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
55
55
  };
56
56
  }>> & Readonly<{}>, {
57
57
  draggable: boolean;
58
+ checkable: boolean;
58
59
  listHeight: number;
59
60
  showTitle: boolean;
60
61
  list: any[];
61
- checkable: boolean;
62
62
  }, {}, {
63
63
  Tree: {
64
64
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
@@ -54,8 +54,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
54
54
  };
55
55
  }>> & Readonly<{}>, {
56
56
  draggable: boolean;
57
- columns: any[];
58
57
  checkable: boolean;
58
+ columns: any[];
59
59
  listsHeight: number;
60
60
  checkedReset: boolean;
61
61
  }, {}, {
@@ -923,10 +923,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
923
923
  };
924
924
  }>> & Readonly<{}>, {
925
925
  draggable: boolean;
926
+ checkable: boolean;
926
927
  listHeight: number;
927
928
  showTitle: boolean;
928
929
  list: any[];
929
- checkable: boolean;
930
930
  }, {}, {
931
931
  Tree: {
932
932
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
@@ -105,10 +105,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
105
105
  };
106
106
  }>> & Readonly<{}>, {
107
107
  draggable: boolean;
108
+ checkable: boolean;
108
109
  listHeight: number;
109
110
  showTitle: boolean;
110
111
  list: any[];
111
- checkable: boolean;
112
112
  }, {}, {
113
113
  Tree: {
114
114
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
@@ -1 +1 @@
1
- {"version":3,"file":"RowHandler.vue.mjs","sources":["../../../../../../../../packages/components/table/src/components/Drag/RowHandler.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 16:03:18\n * @LastEditors: shen\n * @LastEditTime: 2025-08-29 13:59:21\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType, VNode } from 'vue'\nimport type { ColumnType, DefaultRecordType, DragRowEventInfo, Key } from '../interface'\nimport type { RafFrame } from '../../utils/raf'\n\nimport {\n defineComponent,\n ref,\n computed,\n watch,\n onMounted,\n onBeforeUnmount,\n render,\n shallowRef,\n createVNode,\n reactive,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRow } from '../context/BodyRowsContext'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport {\n ICON_TYPE_DOWN,\n ICON_TYPE_FORBID,\n ICON_TYPE_UP,\n OFFSET_X,\n OFFSET_Y,\n DOWN,\n UP,\n} from './constant'\nimport { dragForbidIcon, dragUpAndDownIcon, dragIcon } from './icon'\nimport { eventsClose } from '../../utils/util'\nimport { useAutoScroll } from '../../hooks/useAutoScroll'\nimport raf from '../../utils/raf'\n\nexport default defineComponent({\n name: 'RowDragHandler',\n props: {\n columnKey: [String, Number],\n disabled: Boolean,\n column: Object as PropType<ColumnType<DefaultRecordType>>,\n },\n setup(props, { slots }) {\n const dragging = ref(false)\n const spanRef = ref<HTMLSpanElement>()\n\n const {\n prefixCls,\n dragRowsHandle,\n draggingRowKey,\n insertToRowKey,\n onRowDragEnd,\n scrollTo,\n bodyMaxWidth,\n isMyChildren,\n getRecordByKey,\n getIndexsByKey,\n childrenColumnName,\n getKeyByIndexs,\n scrollTop,\n scrollLeft,\n showVerticalScrollbar,\n showHorizontalScrollbar,\n } = useInjectTable()\n const { dragRowPlaceholderRef, bodyRef } = useInjectBody()\n const { height, top, rowKey } = useInjectBodyRow()\n const tableSlotsContext = useInjectSlots()\n\n let rafFrame: RafFrame\n const clientY = ref()\n const clientX = ref()\n const clientY2 = ref()\n const dragGhostDom = document.createElement('div')\n const allowed = ref(true)\n let cacheMouseEvent: MouseEvent | null = null\n let bodyRect: DOMRect | Record<string, any> = {}\n let parentOffsetWidth = 0\n const destroyHandlers: Array<() => void> = []\n let dragGhostImage: VNode | null = null\n const iconType = ref(ICON_TYPE_DOWN)\n const fromIndexs = computed(() => getIndexsByKey(rowKey.value))\n\n onMounted(() => {\n if (dragRowsHandle.has(props.columnKey!)) {\n dragRowsHandle.get?.(props.columnKey!)?.add(spanRef.value!)\n } else {\n dragRowsHandle.set(props.columnKey!, new Set([spanRef.value!]))\n }\n })\n onBeforeUnmount(() => {\n dragRowsHandle.get(props.columnKey!)?.delete(spanRef.value!)\n if (dragRowsHandle.get(props.columnKey!)?.size === 0) {\n dragRowsHandle.delete(props.columnKey!)\n }\n raf.cancel(rafFrame)\n render(null, dragGhostDom)\n })\n\n const batchEvent = (eventList: any) => {\n eventList.forEach((config: any) => {\n const { target, type, listener, options } = config\n target.addEventListener(type, listener, options)\n })\n destroyHandlers.push(() => {\n eventList.forEach((config: any) => {\n const { target, type, listener, options } = config\n target.removeEventListener(type, listener, options)\n })\n })\n }\n const rowDragEvent = shallowRef<MouseEvent | Touch>()\n const handleMouseMoveOrTouchMove = (\n event: MouseEvent | Touch,\n cacheEvent: MouseEvent | Touch,\n ) => {\n rowDragEvent.value = event\n if (!dragging.value) {\n if (eventsClose(event, cacheEvent, 4)) {\n return\n }\n dragging.value = true\n clientY2.value = event.clientY\n draggingRowKey.value = rowKey.value\n parentOffsetWidth = spanRef.value!.parentElement!.offsetWidth\n getRootDocument().appendChild(dragGhostDom)\n renderDragGhost()\n }\n allowed.value = true\n clientX.value = event.clientX\n clientY.value = event.clientY\n ;(() => {\n const { y, height } = bodyRect\n const pageYOffset = window.pageYOffset || document.documentElement.scrollTop\n return clientY.value + 10 <= y\n ? ((dragGhostDom.style.top = y + pageYOffset - 20 + 'px'), true)\n : clientY.value > y + height &&\n ((dragGhostDom.style.top = y + pageYOffset + height - OFFSET_Y + 'px'), true)\n })()\n ? ((allowed.value = false), ensureCleared())\n : (check(event, false), (dragGhostDom.style.top = event.pageY - OFFSET_Y + 'px'))\n ;(() => {\n const { x, width } = bodyRect\n const left = window.pageXOffset || document.documentElement.scrollLeft\n return clientX.value + OFFSET_X <= x\n ? ((dragGhostDom.style.left = x + left - 20 + 'px'), true)\n : clientX.value + OFFSET_X >= x + width &&\n ((dragGhostDom.style.left = x + left + width - 20 + 'px'), true)\n })()\n ? (allowed.value = false)\n : (dragGhostDom.style.left = event.pageX - OFFSET_X + 'px')\n }\n\n let cacheStartTouch: TouchList[number] | null | undefined\n let cacheTouch: TouchList[number] | null | undefined\n const getTouch = (touches: TouchList) => {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i]?.identifier === cacheTouch?.identifier) {\n return touches[i]\n }\n }\n return null\n }\n\n const handleMouseUpOrToucheEnd = (event: MouseEvent | Touch) => {\n if (dragging.value) {\n dragging.value = false\n getRootDocument().removeChild(dragGhostDom)\n }\n rowDragEvent.value = event\n cacheMouseEvent = null\n cacheTouch = null\n cacheStartTouch = null\n ensureCleared()\n draggingRowKey.value = null\n insertToRowKey.value = null\n dragRowPlaceholderRef.value!.style.opacity = '0'\n destroyHandlers.forEach((fn) => fn())\n destroyHandlers.length = 0\n raf.cancel(rafFrame)\n }\n\n const documentTouchMoveHandler = (event: TouchEvent) => {\n event.cancelable && event.preventDefault()\n }\n const touchMoveHandler = (event: TouchEvent) => {\n const touch = getTouch(event.touches)\n touch && handleMouseMoveOrTouchMove(touch, cacheTouch!)\n }\n const touchEndHandler = (event: TouchEvent) => {\n let touch = getTouch(event.touches)\n if (!touch) {\n touch = cacheStartTouch\n }\n handleMouseUpOrToucheEnd(touch!)\n }\n\n const contextmenuHandler = (event: MouseEvent) => event.preventDefault()\n const mouseMoveHandler = (event: MouseEvent) => {\n handleMouseMoveOrTouchMove(event, cacheMouseEvent!)\n }\n const mouseUpHandler = (event: MouseEvent) => {\n handleMouseUpOrToucheEnd(event)\n }\n\n const renderDragGhostImage = () => {\n let dragIcon = dragUpAndDownIcon\n if (iconType.value === ICON_TYPE_FORBID) {\n dragIcon = dragForbidIcon\n }\n if (tableSlotsContext.rowDragGhost) {\n if ('preTargetInfo' in dragRowEventInfo) {\n return tableSlotsContext.rowDragGhost({\n record: getRecordByKey(rowKey.value),\n preTargetInfo: dragRowEventInfo.preTargetInfo,\n nextTargetInfo: dragRowEventInfo.nextTargetInfo,\n column: props.column!,\n icon: createVNode(\n 'span',\n { class: `${prefixCls.value}-drag-ghost-image-icon`, innerHTML: dragIcon },\n null,\n ),\n allowed: allowed.value,\n dragging: dragging.value,\n event: rowDragEvent.value!,\n })\n }\n }\n return [\n createVNode(\n 'span',\n { class: `${prefixCls.value}-drag-ghost-image-icon`, innerHTML: dragIcon },\n null,\n ),\n createVNode(\n 'span',\n {\n class: `${prefixCls.value}-drag-ghost-image-label`,\n style: { maxWidth: `${parentOffsetWidth}px` },\n },\n [slots.label?.()],\n ),\n ]\n }\n\n const renderDragGhost = () => {\n if (!dragGhostImage) {\n dragGhostImage = createVNode(renderDragGhostImage)\n }\n render(dragGhostImage, dragGhostDom)\n }\n\n watch(\n [prefixCls],\n () => {\n dragGhostDom.className = `${prefixCls.value}-drag-ghost-image`\n },\n { immediate: true },\n )\n const dragRowEventInfo = reactive<DragRowEventInfo>({} as DragRowEventInfo)\n const getRootDocument = () => document.fullscreenElement || document.body\n\n const getDragDirection = () => {\n const { top } = spanRef.value!.getBoundingClientRect()\n return clientY.value - top >= 0 ? DOWN : UP\n }\n\n const handleDraging = () => {\n const { preTargetInfo, nextTargetInfo } = dragRowEventInfo\n if (isMyChildren(rowKey.value, preTargetInfo?.rowKey || '') || !allowed.value) {\n dragRowPlaceholderRef.value!.style.opacity = '0'\n insertToRowKey.value = null\n return\n }\n let nextTargetRowKey: any = null\n const preTargetParentIndexs = preTargetInfo ? preTargetInfo.indexs.slice(0, -1) : []\n let preTargetParentRowKey = preTargetParentIndexs.length\n ? getKeyByIndexs(preTargetParentIndexs.join('-'))\n : null\n if (nextTargetInfo) {\n const { y, centerY, record, rowKey: nextRowKey } = nextTargetInfo\n if (\n record[childrenColumnName.value] &&\n clientY.value > y + OFFSET_Y &&\n clientY.value < centerY\n ) {\n nextTargetRowKey = nextRowKey\n }\n }\n if (preTargetInfo && nextTargetRowKey === null) {\n if (\n (nextTargetInfo &&\n !isMyChildren(preTargetInfo.rowKey, nextTargetInfo.rowKey) &&\n nextTargetInfo.indexs.slice(0, -1).join('-') !==\n preTargetInfo.indexs.slice(0, -1).join('-')) ||\n !nextTargetInfo\n ) {\n const { centerY, height, y } = preTargetInfo\n if (clientY.value < centerY + height / 4) {\n nextTargetRowKey = preTargetParentIndexs.length\n ? getKeyByIndexs(preTargetParentIndexs.join('-'))\n : null\n } else if (\n clientY.value < y + height &&\n (!nextTargetInfo || nextTargetInfo.indexs.length < preTargetInfo.indexs.length)\n ) {\n const preTargetParentParentIndexs = preTargetParentIndexs.slice(0, -1)\n nextTargetRowKey = preTargetParentParentIndexs.length\n ? getKeyByIndexs(preTargetParentParentIndexs.join('-'))\n : null\n preTargetParentRowKey = nextTargetRowKey\n } else {\n preTargetParentRowKey = null\n }\n } else {\n isMyChildren(preTargetInfo.rowKey, nextTargetInfo.rowKey) &&\n (nextTargetRowKey = preTargetInfo.rowKey)\n }\n }\n\n nextTargetRowKey === rowKey.value && (nextTargetRowKey = null)\n if (nextTargetRowKey !== nextTargetInfo?.rowKey) {\n dragRowPlaceholderRef.value!.style.opacity = '1'\n dragRowPlaceholderRef.value!.style.top = `${preTargetInfo ? preTargetInfo.top + preTargetInfo.height : 0}px`\n dragRowPlaceholderRef.value!.style.width = `${bodyMaxWidth.value}px`\n if (!nextTargetInfo && preTargetInfo) {\n dragRowPlaceholderRef.value!.style.top =\n preTargetInfo.top +\n preTargetInfo.height -\n dragRowPlaceholderRef.value!.offsetHeight +\n 'px'\n } else if (!preTargetInfo) {\n dragRowPlaceholderRef.value!.style.top = `0px`\n }\n } else {\n dragRowPlaceholderRef.value!.style.opacity = '0'\n }\n dragRowEventInfo.insertToRowKey = (nextTargetRowKey ?? preTargetParentRowKey) as Key\n insertToRowKey.value = dragRowEventInfo.insertToRowKey\n }\n\n watch([dragging, clientY, allowed], () => {\n raf.cancel(rafFrame)\n rafFrame = raf(() => {\n dragging.value && !allowed.value && (iconType.value = ICON_TYPE_FORBID)\n if (dragging.value && allowed.value) {\n const dir = getDragDirection()\n iconType.value = dir === DOWN ? ICON_TYPE_DOWN : ICON_TYPE_UP\n const targetInfos: any[] = []\n for (const dragHandle of dragRowsHandle.get(props.columnKey!)!.values()) {\n const { y } = dragHandle.getBoundingClientRect()\n const top = +dragHandle.getAttribute('data-scroll-top')!\n const height = +dragHandle.getAttribute('data-height')!\n const rowKeyType = dragHandle.getAttribute('data-row-key-type')\n let rowKey: Key = dragHandle.getAttribute('data-row-key')!\n rowKey = rowKeyType === 'number' ? +rowKey : rowKey\n targetInfos.push({\n y,\n top,\n height,\n rowKey,\n record: getRecordByKey(rowKey),\n indexs: getIndexsByKey(rowKey),\n centerY: y + height / 2,\n })\n }\n targetInfos.sort((a, b) => a.centerY - b.centerY)\n let preTargetInfo = targetInfos[targetInfos.length - 1] || null\n let nextTargetInfo = null\n const currentClientY = clientY.value\n for (let i = 0, len = targetInfos.length; i < len; i++) {\n const targetInfo = targetInfos[i]\n const { centerY } = targetInfo\n if (currentClientY <= centerY) {\n preTargetInfo = targetInfos[i - 1] || null\n nextTargetInfo = targetInfo\n break\n }\n }\n\n const newDragRowEventInfo = {\n record: getRecordByKey(rowKey.value),\n top: top.value,\n height: height.value,\n dir,\n rowKey: rowKey.value,\n event: rowDragEvent.value,\n column: props.column,\n preTargetInfo,\n nextTargetInfo,\n fromIndexs: fromIndexs.value,\n insertToRowKey: undefined,\n }\n Object.assign(dragRowEventInfo, newDragRowEventInfo)\n handleDraging()\n } else {\n dragRowPlaceholderRef.value!.style.opacity = '0'\n }\n })\n })\n\n const { check, ensureCleared } = useAutoScroll({\n scrollContainer: bodyRef,\n scrollAxis: 'y',\n getVerticalPosition: () => scrollTop.value,\n setVerticalPosition: (pos: number) => {\n scrollTo(pos)\n },\n getHorizontalPosition: () => scrollLeft.value,\n setHorizontalPosition: (pos: number) => scrollTo({ left: pos }),\n showVerticalScrollbar: showVerticalScrollbar,\n showHorizontalScrollbar: showHorizontalScrollbar,\n })\n\n watch(dragging, () => {\n if (!dragging.value && allowed.value) {\n onRowDragEnd(Object.assign({}, dragRowEventInfo, { event: rowDragEvent.value }))\n }\n })\n\n const className = computed(() => ({\n [`${prefixCls.value}-drag-handle`]: true,\n [`${prefixCls.value}-drag-handle-disabled`]: props.disabled,\n [`${prefixCls.value}-drag-dragging`]: dragging.value,\n }))\n\n return {\n dragIcon,\n dragging,\n className,\n spanRef,\n top,\n height,\n rowKey,\n rowKeyType: computed(() => typeof rowKey.value),\n onMousedown: (event: MouseEvent) => {\n event.preventDefault()\n if (props.disabled) {\n return\n }\n dragging.value = false\n cacheMouseEvent = event\n bodyRect = bodyRef.value!.getBoundingClientRect()\n batchEvent([\n { target: document, type: 'mousemove', listener: mouseMoveHandler },\n { target: document, type: 'mouseup', listener: mouseUpHandler },\n { target: document, type: 'contextmenu', listener: contextmenuHandler },\n ])\n },\n onTouchStart: (event: TouchEvent) => {\n if (props.disabled) return\n dragging.value = false\n const touch = event.touches[0]\n cacheStartTouch = touch\n cacheTouch = touch\n bodyRect = bodyRef.value!.getBoundingClientRect()\n const spanDom = spanRef.value\n const eventList = [\n {\n target: document,\n type: 'touchmove',\n listener: documentTouchMoveHandler,\n options: { passive: false },\n },\n {\n target: spanDom,\n type: 'touchmove',\n listener: touchMoveHandler,\n options: { passive: true },\n },\n {\n target: spanDom,\n type: 'touchend',\n listener: touchEndHandler,\n options: { passive: true },\n },\n {\n target: spanDom,\n type: 'touchcancel',\n listener: touchEndHandler,\n options: { passive: true },\n },\n ]\n batchEvent(eventList)\n },\n }\n },\n})\n</script>\n\n<template>\n <span\n ref=\"spanRef\"\n :class=\"className\"\n :aria-grabbed=\"dragging\"\n :aria-hidden=\"true\"\n :data-scroll-top=\"top\"\n :data-height=\"height\"\n :data-row-key=\"rowKey\"\n :data-row-key-type=\"rowKeyType\"\n :innerHTML=\"dragIcon\"\n unselectable=\"on\"\n @mousedown.stop=\"onMousedown\"\n @touchstartPassive=\"onTouchStart\"\n >\n </span>\n</template>\n"],"names":["_createElementBlock","_normalizeClass"],"mappings":";;;;;;sBAifEA,kBAAA,CAcO,MAAA,EAAA;AAAA,IAbL,GAAA,EAAI,SAAA;AAAA,IACH,KAAA,EAAKC,cAAA,CAAE,IAAA,CAAA,SAAS,CAAA;AAAA,IAChB,gBAAc,IAAA,CAAA,QAAA;AAAA,IACd,aAAA,EAAa,IAAA;AAAA,IACb,mBAAiB,IAAA,CAAA,GAAA;AAAA,IACjB,eAAa,IAAA,CAAA,MAAA;AAAA,IACb,gBAAc,IAAA,CAAA,MAAA;AAAA,IACd,qBAAmB,IAAA,CAAA,UAAA;AAAA,IACnB,WAAW,IAAA,CAAA,QAAA;AAAA,IACZ,YAAA,EAAa,IAAA;AAAA,IACZ,aAAS,MAAA,+CAAO,IAAA,CAAA,WAAA,IAAA,KAAA,WAAA,CAAA,GAAA,IAAA,CAAA,EAAW,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,IAC3B,sBAAA,EAAiB,MAAA,CAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAE,IAAA,CAAA,YAAA,IAAA,IAAA,CAAA,YAAA,CAAA,GAAA,IAAA,CAAA;AAAA,GAAA,EAAA,IAAA,EAAA,EAAA,EAAA,UAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"RowHandler.vue.mjs","sources":["../../../../../../../../packages/components/table/src/components/Drag/RowHandler.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 16:03:18\n * @LastEditors: shen\n * @LastEditTime: 2025-09-30 10:41:46\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType, VNode } from 'vue'\nimport type { ColumnType, DefaultRecordType, DragRowEventInfo, Key } from '../interface'\nimport type { RafFrame } from '../../utils/raf'\n\nimport {\n defineComponent,\n ref,\n computed,\n watch,\n onMounted,\n onBeforeUnmount,\n render,\n shallowRef,\n createVNode,\n reactive,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRow } from '../context/BodyRowsContext'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport {\n ICON_TYPE_DOWN,\n ICON_TYPE_FORBID,\n ICON_TYPE_UP,\n OFFSET_X,\n OFFSET_Y,\n DOWN,\n UP,\n} from './constant'\nimport { dragForbidIcon, dragUpAndDownIcon, dragIcon } from './icon'\nimport { eventsClose } from '../../utils/util'\nimport { useAutoScroll } from '../../hooks/useAutoScroll'\nimport raf from '../../utils/raf'\n\nexport default defineComponent({\n name: 'RowDragHandler',\n props: {\n columnKey: [String, Number],\n disabled: Boolean,\n column: Object as PropType<ColumnType<DefaultRecordType>>,\n },\n setup(props, { slots }) {\n const dragging = ref(false)\n const spanRef = ref<HTMLSpanElement>()\n\n const {\n prefixCls,\n dragRowsHandle,\n draggingRowKey,\n insertToRowKey,\n onRowDragEnd,\n scrollTo,\n bodyMaxWidth,\n isMyChildren,\n getRecordByKey,\n getIndexsByKey,\n childrenColumnName,\n getKeyByIndexs,\n scrollTop,\n scrollLeft,\n showVerticalScrollbar,\n showHorizontalScrollbar,\n } = useInjectTable()\n const { dragRowPlaceholderRef, bodyRef } = useInjectBody()\n const { height, top, rowKey } = useInjectBodyRow()\n const tableSlotsContext = useInjectSlots()\n\n let rafFrame: RafFrame\n const clientY = ref()\n const clientX = ref()\n const clientY2 = ref()\n const dragGhostDom = document.createElement('div')\n const allowed = ref(true)\n let cacheMouseEvent: MouseEvent | null = null\n let bodyRect: DOMRect | Record<string, any> = {}\n let parentOffsetWidth = 0\n const destroyHandlers: Array<() => void> = []\n let dragGhostImage: VNode | null = null\n const iconType = ref(ICON_TYPE_DOWN)\n const fromIndexs = computed(() => getIndexsByKey(rowKey.value))\n\n onMounted(() => {\n if (dragRowsHandle.has(props.columnKey!)) {\n dragRowsHandle.get?.(props.columnKey!)?.add(spanRef.value!)\n } else {\n dragRowsHandle.set(props.columnKey!, new Set([spanRef.value!]))\n }\n })\n onBeforeUnmount(() => {\n dragRowsHandle.get(props.columnKey!)?.delete(spanRef.value!)\n if (dragRowsHandle.get(props.columnKey!)?.size === 0) {\n dragRowsHandle.delete(props.columnKey!)\n }\n raf.cancel(rafFrame)\n render(null, dragGhostDom)\n })\n\n const batchEvent = (eventList: any) => {\n eventList.forEach((config: any) => {\n const { target, type, listener, options } = config\n target.addEventListener(type, listener, options)\n })\n destroyHandlers.push(() => {\n eventList.forEach((config: any) => {\n const { target, type, listener, options } = config\n target.removeEventListener(type, listener, options)\n })\n })\n }\n const rowDragEvent = shallowRef<MouseEvent | Touch>()\n const handleMouseMoveOrTouchMove = (\n event: MouseEvent | Touch,\n cacheEvent: MouseEvent | Touch,\n ) => {\n rowDragEvent.value = event\n if (!dragging.value) {\n if (eventsClose(event, cacheEvent, 4)) {\n return\n }\n dragging.value = true\n clientY2.value = event.clientY\n draggingRowKey.value = rowKey.value\n parentOffsetWidth = spanRef.value!.parentElement!.offsetWidth\n getRootDocument().appendChild(dragGhostDom)\n renderDragGhost()\n }\n allowed.value = true\n clientX.value = event.clientX\n clientY.value = event.clientY\n ;(() => {\n const { y, height } = bodyRect\n const pageYOffset = window.pageYOffset || document.documentElement.scrollTop\n return clientY.value + 10 <= y\n ? ((dragGhostDom.style.top = y + pageYOffset - 20 + 'px'), true)\n : clientY.value > y + height &&\n ((dragGhostDom.style.top = y + pageYOffset + height - OFFSET_Y + 'px'), true)\n })()\n ? ((allowed.value = false), ensureCleared())\n : (check(event, false), (dragGhostDom.style.top = event.pageY - OFFSET_Y + 'px'))\n ;(() => {\n const { x, width } = bodyRect\n const left = window.pageXOffset || document.documentElement.scrollLeft\n return clientX.value + OFFSET_X <= x\n ? ((dragGhostDom.style.left = x + left - 20 + 'px'), true)\n : clientX.value + OFFSET_X >= x + width &&\n ((dragGhostDom.style.left = x + left + width - 20 + 'px'), true)\n })()\n ? (allowed.value = false)\n : (dragGhostDom.style.left = event.pageX - OFFSET_X + 'px')\n }\n\n let cacheStartTouch: TouchList[number] | null | undefined\n let cacheTouch: TouchList[number] | null | undefined\n const getTouch = (touches: TouchList) => {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i]?.identifier === cacheTouch?.identifier) {\n return touches[i]\n }\n }\n return null\n }\n\n const handleMouseUpOrToucheEnd = (event: MouseEvent | Touch) => {\n if (dragging.value) {\n dragging.value = false\n getRootDocument().removeChild(dragGhostDom)\n }\n rowDragEvent.value = event\n cacheMouseEvent = null\n cacheTouch = null\n cacheStartTouch = null\n ensureCleared()\n draggingRowKey.value = null\n insertToRowKey.value = null\n dragRowPlaceholderRef.value!.style.opacity = '0'\n destroyHandlers.forEach((fn) => fn())\n destroyHandlers.length = 0\n raf.cancel(rafFrame)\n }\n\n const documentTouchMoveHandler = (event: TouchEvent) => {\n event.cancelable && event.preventDefault()\n }\n const touchMoveHandler = (event: TouchEvent) => {\n const touch = getTouch(event.touches)\n touch && handleMouseMoveOrTouchMove(touch, cacheTouch!)\n }\n const touchEndHandler = (event: TouchEvent) => {\n let touch = getTouch(event.touches)\n if (!touch) {\n touch = cacheStartTouch\n }\n handleMouseUpOrToucheEnd(touch!)\n }\n\n const contextmenuHandler = (event: MouseEvent) => event.preventDefault()\n const mouseMoveHandler = (event: MouseEvent) => {\n handleMouseMoveOrTouchMove(event, cacheMouseEvent!)\n }\n const mouseUpHandler = (event: MouseEvent) => {\n handleMouseUpOrToucheEnd(event)\n }\n\n const renderDragGhostImage = () => {\n let dragIcon = dragUpAndDownIcon\n if (iconType.value === ICON_TYPE_FORBID) {\n dragIcon = dragForbidIcon\n }\n if (tableSlotsContext.rowDragGhost) {\n if ('preTargetInfo' in dragRowEventInfo) {\n return tableSlotsContext.rowDragGhost({\n record: getRecordByKey(rowKey.value),\n preTargetInfo: dragRowEventInfo.preTargetInfo,\n nextTargetInfo: dragRowEventInfo.nextTargetInfo,\n column: props.column!,\n icon: createVNode(\n 'span',\n { class: `${prefixCls.value}-drag-ghost-image-icon`, innerHTML: dragIcon },\n null,\n ),\n allowed: allowed.value,\n dragging: dragging.value,\n event: rowDragEvent.value!,\n })\n }\n } else {\n return [\n createVNode(\n 'span',\n { class: `${prefixCls.value}-drag-ghost-image-icon`, innerHTML: dragIcon },\n null,\n ),\n createVNode(\n 'span',\n {\n class: `${prefixCls.value}-drag-ghost-image-label`,\n style: { maxWidth: `${parentOffsetWidth}px` },\n },\n [slots.label?.()],\n ),\n ]\n }\n }\n\n const renderDragGhost = () => {\n if (!dragGhostImage) {\n dragGhostImage = createVNode(renderDragGhostImage)\n render(dragGhostImage, dragGhostDom)\n }\n }\n\n watch(\n [prefixCls],\n () => {\n dragGhostDom.className = `${prefixCls.value}-drag-ghost-image`\n },\n { immediate: true },\n )\n const dragRowEventInfo = reactive<DragRowEventInfo>({} as DragRowEventInfo)\n const getRootDocument = () => document.fullscreenElement || document.body\n\n const getDragDirection = () => {\n const { top } = spanRef.value!.getBoundingClientRect()\n return clientY.value - top >= 0 ? DOWN : UP\n }\n\n const handleDraging = () => {\n const { preTargetInfo, nextTargetInfo } = dragRowEventInfo\n if (isMyChildren(rowKey.value, preTargetInfo?.rowKey || '') || !allowed.value) {\n dragRowPlaceholderRef.value!.style.opacity = '0'\n insertToRowKey.value = null\n return\n }\n let nextTargetRowKey: any = null\n const preTargetParentIndexs = preTargetInfo ? preTargetInfo.indexs.slice(0, -1) : []\n let preTargetParentRowKey = preTargetParentIndexs.length\n ? getKeyByIndexs(preTargetParentIndexs.join('-'))\n : null\n if (nextTargetInfo) {\n const { y, centerY, record, rowKey: nextRowKey } = nextTargetInfo\n if (\n record[childrenColumnName.value] &&\n clientY.value > y + OFFSET_Y &&\n clientY.value < centerY\n ) {\n nextTargetRowKey = nextRowKey\n }\n }\n if (preTargetInfo && nextTargetRowKey === null) {\n if (\n (nextTargetInfo &&\n !isMyChildren(preTargetInfo.rowKey, nextTargetInfo.rowKey) &&\n nextTargetInfo.indexs.slice(0, -1).join('-') !==\n preTargetInfo.indexs.slice(0, -1).join('-')) ||\n !nextTargetInfo\n ) {\n const { centerY, height, y } = preTargetInfo\n if (clientY.value < centerY + height / 4) {\n nextTargetRowKey = preTargetParentIndexs.length\n ? getKeyByIndexs(preTargetParentIndexs.join('-'))\n : null\n } else if (\n clientY.value < y + height &&\n (!nextTargetInfo || nextTargetInfo.indexs.length < preTargetInfo.indexs.length)\n ) {\n const preTargetParentParentIndexs = preTargetParentIndexs.slice(0, -1)\n nextTargetRowKey = preTargetParentParentIndexs.length\n ? getKeyByIndexs(preTargetParentParentIndexs.join('-'))\n : null\n preTargetParentRowKey = nextTargetRowKey\n } else {\n preTargetParentRowKey = null\n }\n } else {\n isMyChildren(preTargetInfo.rowKey, nextTargetInfo.rowKey) &&\n (nextTargetRowKey = preTargetInfo.rowKey)\n }\n }\n\n nextTargetRowKey === rowKey.value && (nextTargetRowKey = null)\n if (nextTargetRowKey !== nextTargetInfo?.rowKey) {\n dragRowPlaceholderRef.value!.style.opacity = '1'\n dragRowPlaceholderRef.value!.style.top = `${preTargetInfo ? preTargetInfo.top + preTargetInfo.height : 0}px`\n dragRowPlaceholderRef.value!.style.width = `${bodyMaxWidth.value}px`\n if (!nextTargetInfo && preTargetInfo) {\n dragRowPlaceholderRef.value!.style.top =\n preTargetInfo.top +\n preTargetInfo.height -\n dragRowPlaceholderRef.value!.offsetHeight +\n 'px'\n } else if (!preTargetInfo) {\n dragRowPlaceholderRef.value!.style.top = `0px`\n }\n } else {\n dragRowPlaceholderRef.value!.style.opacity = '0'\n }\n dragRowEventInfo.insertToRowKey = (nextTargetRowKey ?? preTargetParentRowKey) as Key\n insertToRowKey.value = dragRowEventInfo.insertToRowKey\n }\n\n watch([dragging, clientY, allowed], () => {\n raf.cancel(rafFrame)\n rafFrame = raf(() => {\n dragging.value && !allowed.value && (iconType.value = ICON_TYPE_FORBID)\n if (dragging.value && allowed.value) {\n const dir = getDragDirection()\n iconType.value = dir === DOWN ? ICON_TYPE_DOWN : ICON_TYPE_UP\n const targetInfos: any[] = []\n for (const dragHandle of dragRowsHandle.get(props.columnKey!)!.values()) {\n const { y } = dragHandle.getBoundingClientRect()\n const top = +dragHandle.getAttribute('data-scroll-top')!\n const height = +dragHandle.getAttribute('data-height')!\n const rowKeyType = dragHandle.getAttribute('data-row-key-type')\n let rowKey: Key = dragHandle.getAttribute('data-row-key')!\n rowKey = rowKeyType === 'number' ? +rowKey : rowKey\n targetInfos.push({\n y,\n top,\n height,\n rowKey,\n record: getRecordByKey(rowKey),\n indexs: getIndexsByKey(rowKey),\n centerY: y + height / 2,\n })\n }\n targetInfos.sort((a, b) => a.centerY - b.centerY)\n let preTargetInfo = targetInfos[targetInfos.length - 1] || null\n let nextTargetInfo = null\n const currentClientY = clientY.value\n for (let i = 0, len = targetInfos.length; i < len; i++) {\n const targetInfo = targetInfos[i]\n const { centerY } = targetInfo\n if (currentClientY <= centerY) {\n preTargetInfo = targetInfos[i - 1] || null\n nextTargetInfo = targetInfo\n break\n }\n }\n\n const newDragRowEventInfo = {\n record: getRecordByKey(rowKey.value),\n top: top.value,\n height: height.value,\n dir,\n rowKey: rowKey.value,\n event: rowDragEvent.value,\n column: props.column,\n preTargetInfo,\n nextTargetInfo,\n fromIndexs: fromIndexs.value,\n insertToRowKey: undefined,\n }\n Object.assign(dragRowEventInfo, newDragRowEventInfo)\n handleDraging()\n } else {\n dragRowPlaceholderRef.value!.style.opacity = '0'\n }\n })\n })\n\n const { check, ensureCleared } = useAutoScroll({\n scrollContainer: bodyRef,\n scrollAxis: 'y',\n getVerticalPosition: () => scrollTop.value,\n setVerticalPosition: (pos: number) => {\n scrollTo(pos)\n },\n getHorizontalPosition: () => scrollLeft.value,\n setHorizontalPosition: (pos: number) => scrollTo({ left: pos }),\n showVerticalScrollbar: showVerticalScrollbar,\n showHorizontalScrollbar: showHorizontalScrollbar,\n })\n\n watch(dragging, () => {\n if (!dragging.value && allowed.value) {\n onRowDragEnd(Object.assign({}, dragRowEventInfo, { event: rowDragEvent.value }))\n }\n })\n\n const className = computed(() => ({\n [`${prefixCls.value}-drag-handle`]: true,\n [`${prefixCls.value}-drag-handle-disabled`]: props.disabled,\n [`${prefixCls.value}-drag-dragging`]: dragging.value,\n }))\n\n return {\n dragIcon,\n dragging,\n className,\n spanRef,\n top,\n height,\n rowKey,\n rowKeyType: computed(() => typeof rowKey.value),\n onMousedown: (event: MouseEvent) => {\n event.preventDefault()\n if (props.disabled) {\n return\n }\n dragging.value = false\n cacheMouseEvent = event\n bodyRect = bodyRef.value!.getBoundingClientRect()\n batchEvent([\n { target: document, type: 'mousemove', listener: mouseMoveHandler },\n { target: document, type: 'mouseup', listener: mouseUpHandler },\n { target: document, type: 'contextmenu', listener: contextmenuHandler },\n ])\n },\n onTouchStart: (event: TouchEvent) => {\n if (props.disabled) return\n dragging.value = false\n const touch = event.touches[0]\n cacheStartTouch = touch\n cacheTouch = touch\n bodyRect = bodyRef.value!.getBoundingClientRect()\n const spanDom = spanRef.value\n const eventList = [\n {\n target: document,\n type: 'touchmove',\n listener: documentTouchMoveHandler,\n options: { passive: false },\n },\n {\n target: spanDom,\n type: 'touchmove',\n listener: touchMoveHandler,\n options: { passive: true },\n },\n {\n target: spanDom,\n type: 'touchend',\n listener: touchEndHandler,\n options: { passive: true },\n },\n {\n target: spanDom,\n type: 'touchcancel',\n listener: touchEndHandler,\n options: { passive: true },\n },\n ]\n batchEvent(eventList)\n },\n }\n },\n})\n</script>\n\n<template>\n <span\n ref=\"spanRef\"\n :class=\"className\"\n :aria-grabbed=\"dragging\"\n :aria-hidden=\"true\"\n :data-scroll-top=\"top\"\n :data-height=\"height\"\n :data-row-key=\"rowKey\"\n :data-row-key-type=\"rowKeyType\"\n :innerHTML=\"dragIcon\"\n unselectable=\"on\"\n @mousedown.stop=\"onMousedown\"\n @touchstartPassive=\"onTouchStart\"\n >\n </span>\n</template>\n"],"names":["_createElementBlock","_normalizeClass"],"mappings":";;;;;;sBAkfEA,kBAAA,CAcO,MAAA,EAAA;AAAA,IAbL,GAAA,EAAI,SAAA;AAAA,IACH,KAAA,EAAKC,cAAA,CAAE,IAAA,CAAA,SAAS,CAAA;AAAA,IAChB,gBAAc,IAAA,CAAA,QAAA;AAAA,IACd,aAAA,EAAa,IAAA;AAAA,IACb,mBAAiB,IAAA,CAAA,GAAA;AAAA,IACjB,eAAa,IAAA,CAAA,MAAA;AAAA,IACb,gBAAc,IAAA,CAAA,MAAA;AAAA,IACd,qBAAmB,IAAA,CAAA,UAAA;AAAA,IACnB,WAAW,IAAA,CAAA,QAAA;AAAA,IACZ,YAAA,EAAa,IAAA;AAAA,IACZ,aAAS,MAAA,+CAAO,IAAA,CAAA,WAAA,IAAA,KAAA,WAAA,CAAA,GAAA,IAAA,CAAA,EAAW,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,IAC3B,sBAAA,EAAiB,MAAA,CAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAE,IAAA,CAAA,YAAA,IAAA,IAAA,CAAA,YAAA,CAAA,GAAA,IAAA,CAAA;AAAA,GAAA,EAAA,IAAA,EAAA,EAAA,EAAA,UAAA,CAAA;;;;;;"}
@@ -182,28 +182,29 @@ var _sfc_main = defineComponent({
182
182
  event: rowDragEvent.value
183
183
  });
184
184
  }
185
+ } else {
186
+ return [
187
+ createVNode(
188
+ "span",
189
+ { class: `${prefixCls.value}-drag-ghost-image-icon`, innerHTML: dragIcon2 },
190
+ null
191
+ ),
192
+ createVNode(
193
+ "span",
194
+ {
195
+ class: `${prefixCls.value}-drag-ghost-image-label`,
196
+ style: { maxWidth: `${parentOffsetWidth}px` }
197
+ },
198
+ [(_a = slots.label) == null ? void 0 : _a.call(slots)]
199
+ )
200
+ ];
185
201
  }
186
- return [
187
- createVNode(
188
- "span",
189
- { class: `${prefixCls.value}-drag-ghost-image-icon`, innerHTML: dragIcon2 },
190
- null
191
- ),
192
- createVNode(
193
- "span",
194
- {
195
- class: `${prefixCls.value}-drag-ghost-image-label`,
196
- style: { maxWidth: `${parentOffsetWidth}px` }
197
- },
198
- [(_a = slots.label) == null ? void 0 : _a.call(slots)]
199
- )
200
- ];
201
202
  };
202
203
  const renderDragGhost = () => {
203
204
  if (!dragGhostImage) {
204
205
  dragGhostImage = createVNode(renderDragGhostImage);
206
+ render(dragGhostImage, dragGhostDom);
205
207
  }
206
- render(dragGhostImage, dragGhostDom);
207
208
  };
208
209
  watch(
209
210
  [prefixCls],