pro-design-vue 1.0.0-rc.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +503 -232
  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 +503 -232
  8. package/es/components/drawer/src/drawer.vue2.mjs +1 -1
  9. package/es/components/drawer/src/drawer.vue2.mjs.map +1 -1
  10. package/es/components/form/src/Form.d.ts +1 -1
  11. package/es/components/form/src/base/BaseForm.d.ts +1 -1
  12. package/es/components/form/src/base/BaseForm.mjs +23 -15
  13. package/es/components/form/src/base/BaseForm.mjs.map +1 -1
  14. package/es/components/form/src/base/StepForm.d.ts +1 -1
  15. package/es/components/form/src/components/FormColWrapper.d.ts +9 -0
  16. package/es/components/form/src/components/FormColWrapper.mjs +9 -1
  17. package/es/components/form/src/components/FormColWrapper.mjs.map +1 -1
  18. package/es/components/form/src/components/FormGroup.d.ts +6 -4
  19. package/es/components/form/src/components/FormGroup.mjs +1 -1
  20. package/es/components/form/src/components/FormGroup.mjs.map +1 -1
  21. package/es/components/form/src/components/FormItem.d.ts +9 -0
  22. package/es/components/form/src/components/FormItem.mjs +32 -24
  23. package/es/components/form/src/components/FormItem.mjs.map +1 -1
  24. package/es/components/form/src/components/FormItems.mjs +2 -1
  25. package/es/components/form/src/components/FormItems.mjs.map +1 -1
  26. package/es/components/form/src/components/FormList.d.ts +6 -4
  27. package/es/components/form/src/components/FormList.mjs +1 -1
  28. package/es/components/form/src/components/FormList.mjs.map +1 -1
  29. package/es/components/form/src/components/FormListContainer.d.ts +6 -4
  30. package/es/components/form/src/components/FormListContainer.mjs +1 -1
  31. package/es/components/form/src/components/FormListContainer.mjs.map +1 -1
  32. package/es/components/form/src/components/FormSet.d.ts +6 -4
  33. package/es/components/form/src/components/FormSet.mjs +1 -1
  34. package/es/components/form/src/components/FormSet.mjs.map +1 -1
  35. package/es/components/form/src/components/FormSubmitter.d.ts +2 -2
  36. package/es/components/form/src/components/FormSubmitter.mjs +25 -7
  37. package/es/components/form/src/components/FormSubmitter.mjs.map +1 -1
  38. package/es/components/form/src/components/FormTitle.d.ts +6 -4
  39. package/es/components/form/src/components/FormTitle.mjs +11 -6
  40. package/es/components/form/src/components/FormTitle.mjs.map +1 -1
  41. package/es/components/form/src/hooks/useAction.d.ts +5 -2
  42. package/es/components/form/src/hooks/useAction.mjs +137 -12
  43. package/es/components/form/src/hooks/useAction.mjs.map +1 -1
  44. package/es/components/form/src/hooks/useFieldValue.d.ts +1 -1
  45. package/es/components/form/src/hooks/useFieldValue.mjs +11 -15
  46. package/es/components/form/src/hooks/useFieldValue.mjs.map +1 -1
  47. package/es/components/form/src/layouts/DrawerForm.d.ts +1 -1
  48. package/es/components/form/src/layouts/DrawerForm.mjs +8 -12
  49. package/es/components/form/src/layouts/DrawerForm.mjs.map +1 -1
  50. package/es/components/form/src/layouts/ModalForm.d.ts +1 -1
  51. package/es/components/form/src/layouts/ModalForm.mjs +8 -12
  52. package/es/components/form/src/layouts/ModalForm.mjs.map +1 -1
  53. package/es/components/form/src/layouts/QueryFilter.d.ts +1 -1
  54. package/es/components/form/src/layouts/QueryFilter.mjs +14 -4
  55. package/es/components/form/src/layouts/QueryFilter.mjs.map +1 -1
  56. package/es/components/form/src/layouts/StepsForm.d.ts +1 -1
  57. package/es/components/form/src/layouts/StepsForm.mjs +8 -8
  58. package/es/components/form/src/layouts/StepsForm.mjs.map +1 -1
  59. package/es/components/form/src/type.d.ts +29 -16
  60. package/es/components/form/src/utils/transformer.d.ts +3 -0
  61. package/es/components/form/src/utils/transformer.mjs +24 -0
  62. package/es/components/form/src/utils/transformer.mjs.map +1 -0
  63. package/es/components/modal/src/modal.vue2.mjs +1 -1
  64. package/es/components/modal/src/modal.vue2.mjs.map +1 -1
  65. package/es/components/table/src/components/Body/Body.vue.mjs.map +1 -1
  66. package/es/components/table/src/components/Body/Body.vue2.mjs +1 -2
  67. package/es/components/table/src/components/Body/Body.vue2.mjs.map +1 -1
  68. package/es/components/table/src/components/Body/BodyCell.mjs +2 -2
  69. package/es/components/table/src/components/Body/BodyCell.mjs.map +1 -1
  70. package/es/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  71. package/es/components/table/src/components/Body/BodyRow.vue2.mjs +3 -3
  72. package/es/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  73. package/es/components/table/src/components/Drag/RowHandler.vue.mjs.map +1 -1
  74. package/es/components/table/src/components/Drag/RowHandler.vue2.mjs +17 -16
  75. package/es/components/table/src/components/Drag/RowHandler.vue2.mjs.map +1 -1
  76. package/es/components/table/src/components/Header/HeaderCellTitle.vue.mjs +19 -7
  77. package/es/components/table/src/components/Header/HeaderCellTitle.vue.mjs.map +1 -1
  78. package/es/components/table/src/components/Header/HeaderCellTitle.vue2.mjs +1 -0
  79. package/es/components/table/src/components/Header/HeaderCellTitle.vue2.mjs.map +1 -1
  80. package/es/components/table/src/components/Header/HeaderExtraCell.vue.mjs.map +1 -1
  81. package/es/components/table/src/components/Header/HeaderExtraCell.vue2.mjs +1 -0
  82. package/es/components/table/src/components/Header/HeaderExtraCell.vue2.mjs.map +1 -1
  83. package/es/components/table/src/components/InteralTable.vue.d.ts +21 -0
  84. package/es/components/table/src/components/InteralTable.vue.mjs.map +1 -1
  85. package/es/components/table/src/components/InteralTable.vue2.mjs +11 -5
  86. package/es/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
  87. package/es/components/table/src/components/Table.d.ts +25 -4
  88. package/es/components/table/src/components/Table.mjs +48 -14
  89. package/es/components/table/src/components/Table.mjs.map +1 -1
  90. package/es/components/table/src/components/ToolBar/ToolBar.vue.mjs +25 -6
  91. package/es/components/table/src/components/ToolBar/ToolBar.vue.mjs.map +1 -1
  92. package/es/components/table/src/components/ToolBar/ToolBar.vue2.mjs.map +1 -1
  93. package/es/components/table/src/components/interface.d.ts +33 -5
  94. package/es/components/table/src/components/interface.mjs +10 -1
  95. package/es/components/table/src/components/interface.mjs.map +1 -1
  96. package/es/components/table/src/hooks/useCellProps.mjs +3 -1
  97. package/es/components/table/src/hooks/useCellProps.mjs.map +1 -1
  98. package/es/components/table/src/hooks/useContainer.mjs +1 -1
  99. package/es/components/table/src/hooks/useContainer.mjs.map +1 -1
  100. package/es/components/table/src/hooks/useFetchData.mjs +13 -18
  101. package/es/components/table/src/hooks/useFetchData.mjs.map +1 -1
  102. package/es/components/table/src/hooks/useHover.d.ts +3 -0
  103. package/es/components/table/src/hooks/useHover.mjs +3 -1
  104. package/es/components/table/src/hooks/useHover.mjs.map +1 -1
  105. package/es/components/table/src/hooks/usePagination.d.ts +1 -0
  106. package/es/components/table/src/hooks/usePagination.mjs +7 -2
  107. package/es/components/table/src/hooks/usePagination.mjs.map +1 -1
  108. package/es/components/table/src/utils/genProColumnToColumn.mjs +5 -4
  109. package/es/components/table/src/utils/genProColumnToColumn.mjs.map +1 -1
  110. package/es/components/table/src/utils/util.d.ts +1 -1
  111. package/es/components/table/src/utils/util.mjs +1 -1
  112. package/es/components/table/src/utils/util.mjs.map +1 -1
  113. package/es/index.d.ts +70 -26
  114. package/es/utils/validate.d.ts +1 -1
  115. package/es/utils/validate.mjs +1 -1
  116. package/es/utils/validate.mjs.map +1 -1
  117. package/es/version.d.ts +1 -1
  118. package/es/version.mjs +1 -1
  119. package/es/version.mjs.map +1 -1
  120. package/lib/components/drawer/src/drawer.vue2.js +1 -1
  121. package/lib/components/drawer/src/drawer.vue2.js.map +1 -1
  122. package/lib/components/form/src/Form.d.ts +1 -1
  123. package/lib/components/form/src/base/BaseForm.d.ts +1 -1
  124. package/lib/components/form/src/base/BaseForm.js +21 -13
  125. package/lib/components/form/src/base/BaseForm.js.map +1 -1
  126. package/lib/components/form/src/base/StepForm.d.ts +1 -1
  127. package/lib/components/form/src/components/FormColWrapper.d.ts +9 -0
  128. package/lib/components/form/src/components/FormColWrapper.js +9 -1
  129. package/lib/components/form/src/components/FormColWrapper.js.map +1 -1
  130. package/lib/components/form/src/components/FormGroup.d.ts +6 -4
  131. package/lib/components/form/src/components/FormGroup.js +1 -1
  132. package/lib/components/form/src/components/FormGroup.js.map +1 -1
  133. package/lib/components/form/src/components/FormItem.d.ts +9 -0
  134. package/lib/components/form/src/components/FormItem.js +32 -24
  135. package/lib/components/form/src/components/FormItem.js.map +1 -1
  136. package/lib/components/form/src/components/FormItems.js +2 -1
  137. package/lib/components/form/src/components/FormItems.js.map +1 -1
  138. package/lib/components/form/src/components/FormList.d.ts +6 -4
  139. package/lib/components/form/src/components/FormList.js +1 -1
  140. package/lib/components/form/src/components/FormList.js.map +1 -1
  141. package/lib/components/form/src/components/FormListContainer.d.ts +6 -4
  142. package/lib/components/form/src/components/FormListContainer.js +1 -1
  143. package/lib/components/form/src/components/FormListContainer.js.map +1 -1
  144. package/lib/components/form/src/components/FormSet.d.ts +6 -4
  145. package/lib/components/form/src/components/FormSet.js +1 -1
  146. package/lib/components/form/src/components/FormSet.js.map +1 -1
  147. package/lib/components/form/src/components/FormSubmitter.d.ts +2 -2
  148. package/lib/components/form/src/components/FormSubmitter.js +25 -7
  149. package/lib/components/form/src/components/FormSubmitter.js.map +1 -1
  150. package/lib/components/form/src/components/FormTitle.d.ts +6 -4
  151. package/lib/components/form/src/components/FormTitle.js +11 -6
  152. package/lib/components/form/src/components/FormTitle.js.map +1 -1
  153. package/lib/components/form/src/hooks/useAction.d.ts +5 -2
  154. package/lib/components/form/src/hooks/useAction.js +137 -10
  155. package/lib/components/form/src/hooks/useAction.js.map +1 -1
  156. package/lib/components/form/src/hooks/useFieldValue.d.ts +1 -1
  157. package/lib/components/form/src/hooks/useFieldValue.js +11 -15
  158. package/lib/components/form/src/hooks/useFieldValue.js.map +1 -1
  159. package/lib/components/form/src/layouts/DrawerForm.d.ts +1 -1
  160. package/lib/components/form/src/layouts/DrawerForm.js +8 -12
  161. package/lib/components/form/src/layouts/DrawerForm.js.map +1 -1
  162. package/lib/components/form/src/layouts/ModalForm.d.ts +1 -1
  163. package/lib/components/form/src/layouts/ModalForm.js +8 -12
  164. package/lib/components/form/src/layouts/ModalForm.js.map +1 -1
  165. package/lib/components/form/src/layouts/QueryFilter.d.ts +1 -1
  166. package/lib/components/form/src/layouts/QueryFilter.js +14 -4
  167. package/lib/components/form/src/layouts/QueryFilter.js.map +1 -1
  168. package/lib/components/form/src/layouts/StepsForm.d.ts +1 -1
  169. package/lib/components/form/src/layouts/StepsForm.js +8 -8
  170. package/lib/components/form/src/layouts/StepsForm.js.map +1 -1
  171. package/lib/components/form/src/type.d.ts +29 -16
  172. package/lib/components/form/src/utils/transformer.d.ts +3 -0
  173. package/lib/components/form/src/utils/transformer.js +28 -0
  174. package/lib/components/form/src/utils/transformer.js.map +1 -0
  175. package/lib/components/modal/src/modal.vue2.js +1 -1
  176. package/lib/components/modal/src/modal.vue2.js.map +1 -1
  177. package/lib/components/table/src/components/Body/Body.vue.js.map +1 -1
  178. package/lib/components/table/src/components/Body/Body.vue2.js +1 -2
  179. package/lib/components/table/src/components/Body/Body.vue2.js.map +1 -1
  180. package/lib/components/table/src/components/Body/BodyCell.js +2 -2
  181. package/lib/components/table/src/components/Body/BodyCell.js.map +1 -1
  182. package/lib/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  183. package/lib/components/table/src/components/Body/BodyRow.vue2.js +3 -3
  184. package/lib/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  185. package/lib/components/table/src/components/Drag/RowHandler.vue.js.map +1 -1
  186. package/lib/components/table/src/components/Drag/RowHandler.vue2.js +17 -16
  187. package/lib/components/table/src/components/Drag/RowHandler.vue2.js.map +1 -1
  188. package/lib/components/table/src/components/Header/HeaderCellTitle.vue.js +18 -6
  189. package/lib/components/table/src/components/Header/HeaderCellTitle.vue.js.map +1 -1
  190. package/lib/components/table/src/components/Header/HeaderCellTitle.vue2.js +1 -0
  191. package/lib/components/table/src/components/Header/HeaderCellTitle.vue2.js.map +1 -1
  192. package/lib/components/table/src/components/Header/HeaderExtraCell.vue.js.map +1 -1
  193. package/lib/components/table/src/components/Header/HeaderExtraCell.vue2.js +1 -0
  194. package/lib/components/table/src/components/Header/HeaderExtraCell.vue2.js.map +1 -1
  195. package/lib/components/table/src/components/InteralTable.vue.d.ts +21 -0
  196. package/lib/components/table/src/components/InteralTable.vue.js.map +1 -1
  197. package/lib/components/table/src/components/InteralTable.vue2.js +12 -6
  198. package/lib/components/table/src/components/InteralTable.vue2.js.map +1 -1
  199. package/lib/components/table/src/components/Table.d.ts +25 -4
  200. package/lib/components/table/src/components/Table.js +47 -13
  201. package/lib/components/table/src/components/Table.js.map +1 -1
  202. package/lib/components/table/src/components/ToolBar/ToolBar.vue.js +24 -5
  203. package/lib/components/table/src/components/ToolBar/ToolBar.vue.js.map +1 -1
  204. package/lib/components/table/src/components/ToolBar/ToolBar.vue2.js.map +1 -1
  205. package/lib/components/table/src/components/interface.d.ts +33 -5
  206. package/lib/components/table/src/components/interface.js +10 -1
  207. package/lib/components/table/src/components/interface.js.map +1 -1
  208. package/lib/components/table/src/hooks/useCellProps.js +3 -1
  209. package/lib/components/table/src/hooks/useCellProps.js.map +1 -1
  210. package/lib/components/table/src/hooks/useContainer.js +1 -1
  211. package/lib/components/table/src/hooks/useContainer.js.map +1 -1
  212. package/lib/components/table/src/hooks/useFetchData.js +13 -18
  213. package/lib/components/table/src/hooks/useFetchData.js.map +1 -1
  214. package/lib/components/table/src/hooks/useHover.d.ts +3 -0
  215. package/lib/components/table/src/hooks/useHover.js +2 -0
  216. package/lib/components/table/src/hooks/useHover.js.map +1 -1
  217. package/lib/components/table/src/hooks/usePagination.d.ts +1 -0
  218. package/lib/components/table/src/hooks/usePagination.js +7 -1
  219. package/lib/components/table/src/hooks/usePagination.js.map +1 -1
  220. package/lib/components/table/src/utils/genProColumnToColumn.js +5 -4
  221. package/lib/components/table/src/utils/genProColumnToColumn.js.map +1 -1
  222. package/lib/components/table/src/utils/util.d.ts +1 -1
  223. package/lib/components/table/src/utils/util.js +1 -1
  224. package/lib/components/table/src/utils/util.js.map +1 -1
  225. package/lib/index.d.ts +70 -26
  226. package/lib/utils/validate.d.ts +1 -1
  227. package/lib/utils/validate.js +1 -1
  228. package/lib/utils/validate.js.map +1 -1
  229. package/lib/version.d.ts +1 -1
  230. package/lib/version.js +1 -1
  231. package/lib/version.js.map +1 -1
  232. package/package.json +1 -1
  233. package/theme-chalk/css-var.css +1 -1
  234. package/theme-chalk/index.css +1 -1
  235. package/theme-chalk/pro-form.css +1 -1
  236. package/theme-chalk/src/css-var.less +154 -677
  237. package/theme-chalk/src/form.less +5 -0
  238. package/theme-chalk/src/table/alert.less +1 -0
  239. package/theme-chalk/src/table/table.less +3 -3
  240. package/theme-chalk/src/common/css-var.less +0 -914
@@ -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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"}
@@ -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],
@@ -1 +1 @@
1
- {"version":3,"file":"RowHandler.vue2.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":["height","dragIcon","top","rowKey"],"mappings":"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"}
1
+ {"version":3,"file":"RowHandler.vue2.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":["height","dragIcon","top","rowKey"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './HeaderCellTitle.vue2.mjs';
2
- import { resolveComponent, createElementBlock, openBlock, normalizeStyle, normalizeClass, createElementVNode, createBlock, createCommentVNode, resolveDynamicComponent, normalizeProps, mergeProps, createSlots, withCtx, createVNode } from 'vue';
2
+ import { resolveComponent, createElementBlock, openBlock, normalizeStyle, normalizeClass, createElementVNode, createBlock, createCommentVNode, resolveDynamicComponent, normalizeProps, mergeProps, createSlots, withCtx, createVNode, Fragment, createTextVNode, toDisplayString } from 'vue';
3
3
  import _export_sfc from '../../../../../_virtual/_plugin-vue_export-helper.mjs';
4
4
 
5
5
  const _hoisted_1 = ["title"];
@@ -16,7 +16,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
16
16
  [`${_ctx.prefixCls}-header-cell-title-inner`]: true
17
17
  }),
18
18
  title: _ctx.altTitle,
19
- style: normalizeStyle(`text-align: ${_ctx.column.align}`)
19
+ style: normalizeStyle(`justify-content: ${_ctx.column.align}`)
20
20
  }, [
21
21
  createElementVNode(
22
22
  "span",
@@ -62,16 +62,28 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
62
62
  1040
63
63
  /* FULL_PROPS, DYNAMIC_SLOTS */
64
64
  )) : createCommentVNode("v-if", true),
65
- _ctx.column.headerTooltip ? (openBlock(), createBlock(_component_Tooltip, {
66
- key: 1,
67
- title: _ctx.column.headerTooltip
68
- }, {
65
+ _ctx.column.headerTooltip ? (openBlock(), createBlock(_component_Tooltip, { key: 1 }, {
66
+ title: withCtx(() => [
67
+ _ctx.column.headerTooltip === true ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.title), { key: 0 })) : (openBlock(), createElementBlock(
68
+ Fragment,
69
+ { key: 1 },
70
+ [
71
+ createTextVNode(
72
+ toDisplayString(_ctx.column.headerTooltip),
73
+ 1
74
+ /* TEXT */
75
+ )
76
+ ],
77
+ 64
78
+ /* STABLE_FRAGMENT */
79
+ ))
80
+ ]),
69
81
  default: withCtx(() => [
70
82
  createVNode(_component_InfoCircleOutlined, { style: { "margin-inline-start": "3px", "font-size": "12px" } })
71
83
  ]),
72
84
  _: 1
73
85
  /* STABLE */
74
- }, 8, ["title"])) : createCommentVNode("v-if", true)
86
+ })) : createCommentVNode("v-if", true)
75
87
  ], 14, _hoisted_1);
76
88
  }
77
89
  var HeaderCellTitle = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderCellTitle.vue.mjs","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderCellTitle.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-12-17 11:35:56\n * @LastEditors: shen\n * @LastEditTime: 2025-07-31 09:39:52\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { FinallyColumnType } from '../interface'\nimport type { PropType } from 'vue'\n\nimport { defineComponent, computed, h, renderSlot, Fragment, inject } from 'vue'\nimport { Popover, Tooltip } from 'ant-design-vue'\nimport { ExclamationCircleOutlined, InfoCircleOutlined } from '@ant-design/icons-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { ensureValidVNode } from '../../utils/util'\nimport { RenderVNode } from '@pro-design-vue/utils'\n\nexport default defineComponent({\n name: 'HeaderCellTitle',\n components: { ExclamationCircleOutlined, InfoCircleOutlined, Popover, Tooltip, RenderVNode },\n props: {\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n prefixCls: String as PropType<string>,\n wrapText: Boolean as PropType<boolean>,\n },\n setup(props) {\n const tableSlotsContext = useInjectSlots()\n const tableContext = useInjectTable()\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n\n const sortColumns = computed(() =>\n tableContext.sorterStates.value.map(({ column, sortOrder }) => ({\n column,\n order: sortOrder,\n })),\n )\n\n const title = computed(() =>\n h(Fragment, [\n renderSlot(\n tableSlotsContext,\n 'headerCell',\n {\n title: props.column.title,\n column: props.column.originColumn,\n },\n () => {\n return [\n typeof props.column.title == 'function'\n ? props.column.title({\n sortColumns: sortColumns.value,\n sortColumn: sortColumns.value[0]?.column,\n sortOrder: sortColumns.value[0]?.order,\n })\n : props.column.title,\n ]\n },\n ),\n ]),\n )\n\n const isShowPopover = computed(\n () =>\n !!ensureValidVNode(\n tableSlotsContext.headerCellPopover?.({\n title: props.column.title,\n column: props.column.originColumn!,\n }) ?? [],\n ),\n )\n\n const showCellPopover = computed(() => {\n return undefined === props.column.showCellPopover\n ? isShowPopover.value\n : props.column.showCellPopover\n })\n\n const popoverProps = computed(() =>\n 'boolean' == typeof showCellPopover.value ? {} : showCellPopover.value,\n )\n\n return {\n isShowPopover,\n tableSlotsContext,\n title,\n autoHeight,\n popoverProps,\n showCellPopover,\n altTitle: computed(() =>\n props.column.showTitle && typeof props.column.title == 'string' ? props.column.title : '',\n ),\n }\n },\n})\n</script>\n\n<template>\n <span\n :key=\"String('headerCell' in tableSlotsContext)\"\n :class=\"{\n [`${prefixCls}-header-cell-title-inner`]: true,\n }\"\n :title=\"altTitle\"\n :style=\"`text-align: ${column.align}`\"\n >\n <span\n :class=\"{\n [`${prefixCls}-cell-wrap-text`]: wrapText,\n [`${prefixCls}-cell-text-ellipsis`]: column.ellipsis !== false && !autoHeight,\n }\"\n >\n <component :is=\"title\"></component>\n </span>\n <template v-if=\"showCellPopover\">\n <Popover v-bind=\"popoverProps\">\n <template #title v-if=\"!popoverProps?.title\">\n <component :is=\"title\"></component>\n </template>\n <template #content>\n <RenderVNode\n v-if=\"tableSlotsContext.headerCellPopover\"\n :vnode=\"\n tableSlotsContext.headerCellPopover({\n title: column.title,\n column: column.originColumn!,\n })\n \"\n />\n </template>\n <ExclamationCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n </Popover>\n </template>\n <template v-if=\"column.headerTooltip\">\n <Tooltip :title=\"column.headerTooltip\">\n <InfoCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n </Tooltip>\n </template>\n </span>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","_normalizeStyle","_createElementVNode","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeProps","_mergeProps","_createSlots","_withCtx","_createVNode"],"mappings":";;;;;;;;;;;;sBAoGEA,kBAAA,CAwCO,MAAA,EAAA;AAAA,IAvCJ,GAAA,EAAK,MAAA,CAAM,YAAA,IAAiB,IAAA,CAAA,iBAAiB,CAAA;AAAA,IAC7C,OAAKC,cAAA,CAAA;AAAA,MAAA,CAAA,CAAA,EAAc,IAAA,CAAA,SAAS,0BAAA,GAAA;AAAA,KAAA,CAAA;AAAA,IAG5B,OAAO,IAAA,CAAA,QAAA;AAAA,IACP,OAAKC,cAAA,CAAA,CAAA,YAAA,EAAiB,IAAA,CAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,GAAA,EAAA;AAAA,IAEnCC,kBAAA;AAAA,MAOO,MAAA;AAAA,MAAA;AAAA,QANJ,OAAKF,cAAA,CAAA;AAAA,UAAA,CAAA,CAAA,EAAgB,IAAA,UAAS,CAAA,eAAA,CAAA,GAAoB,IAAA,CAAA,QAAA;AAAA,UAAA,CAAA,CAAA,EAAsB,IAAA,CAAA,SAAS,CAAA,mBAAA,CAAA,GAAwB,IAAA,CAAA,MAAA,CAAO,QAAA,KAAQ,KAAA,IAAA,CAAe,IAAA,CAAA;AAAA,SAAA;AAAA;;SAKxIG,WAAA,EAAAC,WAAA,CAAmCC,uBAAA,CAAnB,IAAA,CAAA,KAAK,CAAA,CAAA;AAAA,OAAA;AAAA;;;IAEP,IAAA,CAAA,eAAA,IAAAF,SAAA,EAAA,EACdC,WAAA;AAAA,MAgBU,kBAAA;AAAA,MAAAE,cAAA,CAAAC,WAAA,EAAA,GAAA,EAAA,GAAA,EAhBO,IAAA,CAAA,YAAY,CAAA,CAAA;AAAA,MAAAC,WAAA,CAAA;AAAA,QAIhB,OAAA,EAAOC,QAChB,MAQE;AAAA,UAPM,KAAA,iBAAA,CAAkB,iBAAA,iBAD1BL,YAQE,sBAAA,EAAA;AAAA,YAAA,GAAA,EAAA,CAAA;AAAA,YANC,KAAA,EAAsB,IAAA,mBAAkB,iBAAA,CAAiB;AAAA,cAAA,KAAA,EAA0B,KAAA,MAAA,CAAO,KAAA;AAAA,cAAA,MAAA,EAA+B,KAAA,MAAA,CAAO;AAAA,aAAA;AAAA;;yBAQrI,MAA+E;AAAA,UAA/EM,WAAA,CAA+E,oCAAA,IAApD,KAAA,EAAA,EAAA,uBAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAiD;AAAA,SAAA,CAAA;AAAA;;;WAdpD,EAAA,GAAA,IAAA,CAAA,YAAA,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAc,KAAA,CAAA,GAAA;AAAA,UAA3B,IAAA,EAAA,OAAA;AAAA,UAAA,EAAA,EAAAD,QACT,MAAmC;AAAA,aAAAN,WAAA,EAAnCC,WAAA,CAAmCC,uBAAA,CAAnB,IAAA,CAAA,KAAK,CAAA,CAAA;AAAA,WAAA,CAAA;AAAA;;;;;;IAgBX,KAAA,MAAA,CAAO,aAAA,iBACrBD,YAEU,kBAAA,EAAA;AAAA,MAAA,GAAA,EAAA,CAAA;AAAA,MAFA,KAAA,EAAO,KAAA,MAAA,CAAO;AAAA,KAAA,EAAA;AAAA,uBACtB,MAAwE;AAAA,QAAxEM,WAAA,CAAwE,6BAAA,IAApD,KAAA,EAAA,EAAA,uBAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAiD;AAAA,OAAA,CAAA;AAAA;;;;;;;;;"}
1
+ {"version":3,"file":"HeaderCellTitle.vue.mjs","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderCellTitle.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-12-17 11:35:56\n * @LastEditors: shen\n * @LastEditTime: 2025-09-29 13:25:11\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { FinallyColumnType } from '../interface'\nimport type { PropType } from 'vue'\n\nimport { defineComponent, computed, h, renderSlot, Fragment, inject } from 'vue'\nimport { Popover, Tooltip } from 'ant-design-vue'\nimport { ExclamationCircleOutlined, InfoCircleOutlined } from '@ant-design/icons-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { ensureValidVNode } from '../../utils/util'\nimport { RenderVNode } from '@pro-design-vue/utils'\n\nexport default defineComponent({\n name: 'HeaderCellTitle',\n components: { ExclamationCircleOutlined, InfoCircleOutlined, Popover, Tooltip, RenderVNode },\n props: {\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n prefixCls: String as PropType<string>,\n wrapText: Boolean as PropType<boolean>,\n },\n setup(props) {\n const tableSlotsContext = useInjectSlots()\n const tableContext = useInjectTable()\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n\n const sortColumns = computed(() =>\n tableContext.sorterStates.value.map(({ column, sortOrder }) => ({\n column,\n order: sortOrder,\n })),\n )\n\n const title = computed(() =>\n h(Fragment, [\n renderSlot(\n tableSlotsContext,\n 'headerCell',\n {\n title: props.column.title,\n column: props.column.originColumn,\n },\n () => {\n return [\n typeof props.column.title == 'function'\n ? props.column.title({\n column: props.column.originColumn!,\n sortColumns: sortColumns.value,\n sortColumn: sortColumns.value[0]?.column,\n sortOrder: sortColumns.value[0]?.order,\n })\n : props.column.title,\n ]\n },\n ),\n ]),\n )\n\n const isShowPopover = computed(\n () =>\n !!ensureValidVNode(\n tableSlotsContext.headerCellPopover?.({\n title: props.column.title,\n column: props.column.originColumn!,\n }) ?? [],\n ),\n )\n\n const showCellPopover = computed(() => {\n return undefined === props.column.showCellPopover\n ? isShowPopover.value\n : props.column.showCellPopover\n })\n\n const popoverProps = computed(() =>\n 'boolean' == typeof showCellPopover.value ? {} : showCellPopover.value,\n )\n\n return {\n isShowPopover,\n tableSlotsContext,\n title,\n autoHeight,\n popoverProps,\n showCellPopover,\n altTitle: computed(() =>\n props.column.showTitle && typeof props.column.title == 'string' ? props.column.title : '',\n ),\n }\n },\n})\n</script>\n\n<template>\n <span\n :key=\"String('headerCell' in tableSlotsContext)\"\n :class=\"{\n [`${prefixCls}-header-cell-title-inner`]: true,\n }\"\n :title=\"altTitle\"\n :style=\"`justify-content: ${column.align}`\"\n >\n <span\n :class=\"{\n [`${prefixCls}-cell-wrap-text`]: wrapText,\n [`${prefixCls}-cell-text-ellipsis`]: column.ellipsis !== false && !autoHeight,\n }\"\n >\n <component :is=\"title\"></component>\n </span>\n <template v-if=\"showCellPopover\">\n <Popover v-bind=\"popoverProps\">\n <template #title v-if=\"!popoverProps?.title\">\n <component :is=\"title\"></component>\n </template>\n <template #content>\n <RenderVNode\n v-if=\"tableSlotsContext.headerCellPopover\"\n :vnode=\"\n tableSlotsContext.headerCellPopover({\n title: column.title,\n column: column.originColumn!,\n })\n \"\n />\n </template>\n <ExclamationCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n </Popover>\n </template>\n <template v-if=\"column.headerTooltip\">\n <Tooltip>\n <InfoCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n <template #title>\n <component :is=\"title\" v-if=\"column.headerTooltip === true\"></component>\n <template v-else>{{ column.headerTooltip }}</template>\n </template>\n </Tooltip>\n </template>\n </span>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","_normalizeStyle","_createElementVNode","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeProps","_mergeProps","_createSlots","_withCtx","_createVNode","_Fragment","_createTextVNode","_toDisplayString"],"mappings":"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"}
@@ -38,6 +38,7 @@ var _sfc_main = defineComponent({
38
38
  var _a, _b;
39
39
  return [
40
40
  typeof props.column.title == "function" ? props.column.title({
41
+ column: props.column.originColumn,
41
42
  sortColumns: sortColumns.value,
42
43
  sortColumn: (_a = sortColumns.value[0]) == null ? void 0 : _a.column,
43
44
  sortOrder: (_b = sortColumns.value[0]) == null ? void 0 : _b.order
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderCellTitle.vue2.mjs","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderCellTitle.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-12-17 11:35:56\n * @LastEditors: shen\n * @LastEditTime: 2025-07-31 09:39:52\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { FinallyColumnType } from '../interface'\nimport type { PropType } from 'vue'\n\nimport { defineComponent, computed, h, renderSlot, Fragment, inject } from 'vue'\nimport { Popover, Tooltip } from 'ant-design-vue'\nimport { ExclamationCircleOutlined, InfoCircleOutlined } from '@ant-design/icons-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { ensureValidVNode } from '../../utils/util'\nimport { RenderVNode } from '@pro-design-vue/utils'\n\nexport default defineComponent({\n name: 'HeaderCellTitle',\n components: { ExclamationCircleOutlined, InfoCircleOutlined, Popover, Tooltip, RenderVNode },\n props: {\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n prefixCls: String as PropType<string>,\n wrapText: Boolean as PropType<boolean>,\n },\n setup(props) {\n const tableSlotsContext = useInjectSlots()\n const tableContext = useInjectTable()\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n\n const sortColumns = computed(() =>\n tableContext.sorterStates.value.map(({ column, sortOrder }) => ({\n column,\n order: sortOrder,\n })),\n )\n\n const title = computed(() =>\n h(Fragment, [\n renderSlot(\n tableSlotsContext,\n 'headerCell',\n {\n title: props.column.title,\n column: props.column.originColumn,\n },\n () => {\n return [\n typeof props.column.title == 'function'\n ? props.column.title({\n sortColumns: sortColumns.value,\n sortColumn: sortColumns.value[0]?.column,\n sortOrder: sortColumns.value[0]?.order,\n })\n : props.column.title,\n ]\n },\n ),\n ]),\n )\n\n const isShowPopover = computed(\n () =>\n !!ensureValidVNode(\n tableSlotsContext.headerCellPopover?.({\n title: props.column.title,\n column: props.column.originColumn!,\n }) ?? [],\n ),\n )\n\n const showCellPopover = computed(() => {\n return undefined === props.column.showCellPopover\n ? isShowPopover.value\n : props.column.showCellPopover\n })\n\n const popoverProps = computed(() =>\n 'boolean' == typeof showCellPopover.value ? {} : showCellPopover.value,\n )\n\n return {\n isShowPopover,\n tableSlotsContext,\n title,\n autoHeight,\n popoverProps,\n showCellPopover,\n altTitle: computed(() =>\n props.column.showTitle && typeof props.column.title == 'string' ? props.column.title : '',\n ),\n }\n },\n})\n</script>\n\n<template>\n <span\n :key=\"String('headerCell' in tableSlotsContext)\"\n :class=\"{\n [`${prefixCls}-header-cell-title-inner`]: true,\n }\"\n :title=\"altTitle\"\n :style=\"`text-align: ${column.align}`\"\n >\n <span\n :class=\"{\n [`${prefixCls}-cell-wrap-text`]: wrapText,\n [`${prefixCls}-cell-text-ellipsis`]: column.ellipsis !== false && !autoHeight,\n }\"\n >\n <component :is=\"title\"></component>\n </span>\n <template v-if=\"showCellPopover\">\n <Popover v-bind=\"popoverProps\">\n <template #title v-if=\"!popoverProps?.title\">\n <component :is=\"title\"></component>\n </template>\n <template #content>\n <RenderVNode\n v-if=\"tableSlotsContext.headerCellPopover\"\n :vnode=\"\n tableSlotsContext.headerCellPopover({\n title: column.title,\n column: column.originColumn!,\n })\n \"\n />\n </template>\n <ExclamationCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n </Popover>\n </template>\n <template v-if=\"column.headerTooltip\">\n <Tooltip :title=\"column.headerTooltip\">\n <InfoCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n </Tooltip>\n </template>\n </span>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HeaderCellTitle.vue2.mjs","sources":["../../../../../../../../packages/components/table/src/components/Header/HeaderCellTitle.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-12-17 11:35:56\n * @LastEditors: shen\n * @LastEditTime: 2025-09-29 13:25:11\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { FinallyColumnType } from '../interface'\nimport type { PropType } from 'vue'\n\nimport { defineComponent, computed, h, renderSlot, Fragment, inject } from 'vue'\nimport { Popover, Tooltip } from 'ant-design-vue'\nimport { ExclamationCircleOutlined, InfoCircleOutlined } from '@ant-design/icons-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { AUTO_HEADER_HEIGHT } from '../../utils/constant'\nimport { ensureValidVNode } from '../../utils/util'\nimport { RenderVNode } from '@pro-design-vue/utils'\n\nexport default defineComponent({\n name: 'HeaderCellTitle',\n components: { ExclamationCircleOutlined, InfoCircleOutlined, Popover, Tooltip, RenderVNode },\n props: {\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n prefixCls: String as PropType<string>,\n wrapText: Boolean as PropType<boolean>,\n },\n setup(props) {\n const tableSlotsContext = useInjectSlots()\n const tableContext = useInjectTable()\n const autoHeight = inject<boolean>(AUTO_HEADER_HEIGHT, false)\n\n const sortColumns = computed(() =>\n tableContext.sorterStates.value.map(({ column, sortOrder }) => ({\n column,\n order: sortOrder,\n })),\n )\n\n const title = computed(() =>\n h(Fragment, [\n renderSlot(\n tableSlotsContext,\n 'headerCell',\n {\n title: props.column.title,\n column: props.column.originColumn,\n },\n () => {\n return [\n typeof props.column.title == 'function'\n ? props.column.title({\n column: props.column.originColumn!,\n sortColumns: sortColumns.value,\n sortColumn: sortColumns.value[0]?.column,\n sortOrder: sortColumns.value[0]?.order,\n })\n : props.column.title,\n ]\n },\n ),\n ]),\n )\n\n const isShowPopover = computed(\n () =>\n !!ensureValidVNode(\n tableSlotsContext.headerCellPopover?.({\n title: props.column.title,\n column: props.column.originColumn!,\n }) ?? [],\n ),\n )\n\n const showCellPopover = computed(() => {\n return undefined === props.column.showCellPopover\n ? isShowPopover.value\n : props.column.showCellPopover\n })\n\n const popoverProps = computed(() =>\n 'boolean' == typeof showCellPopover.value ? {} : showCellPopover.value,\n )\n\n return {\n isShowPopover,\n tableSlotsContext,\n title,\n autoHeight,\n popoverProps,\n showCellPopover,\n altTitle: computed(() =>\n props.column.showTitle && typeof props.column.title == 'string' ? props.column.title : '',\n ),\n }\n },\n})\n</script>\n\n<template>\n <span\n :key=\"String('headerCell' in tableSlotsContext)\"\n :class=\"{\n [`${prefixCls}-header-cell-title-inner`]: true,\n }\"\n :title=\"altTitle\"\n :style=\"`justify-content: ${column.align}`\"\n >\n <span\n :class=\"{\n [`${prefixCls}-cell-wrap-text`]: wrapText,\n [`${prefixCls}-cell-text-ellipsis`]: column.ellipsis !== false && !autoHeight,\n }\"\n >\n <component :is=\"title\"></component>\n </span>\n <template v-if=\"showCellPopover\">\n <Popover v-bind=\"popoverProps\">\n <template #title v-if=\"!popoverProps?.title\">\n <component :is=\"title\"></component>\n </template>\n <template #content>\n <RenderVNode\n v-if=\"tableSlotsContext.headerCellPopover\"\n :vnode=\"\n tableSlotsContext.headerCellPopover({\n title: column.title,\n column: column.originColumn!,\n })\n \"\n />\n </template>\n <ExclamationCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n </Popover>\n </template>\n <template v-if=\"column.headerTooltip\">\n <Tooltip>\n <InfoCircleOutlined style=\"margin-inline-start: 3px; font-size: 12px\" />\n <template #title>\n <component :is=\"title\" v-if=\"column.headerTooltip === true\"></component>\n <template v-else>{{ column.headerTooltip }}</template>\n </template>\n </Tooltip>\n </template>\n </span>\n</template>\n"],"names":[],"mappings":"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"}