pro-design-vue 1.0.0-rc.9 → 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 (232) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +375 -206
  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 +375 -206
  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 +16 -11
  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 -3
  42. package/es/components/form/src/hooks/useAction.mjs +30 -11
  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/ModalForm.d.ts +1 -1
  49. package/es/components/form/src/layouts/QueryFilter.d.ts +1 -1
  50. package/es/components/form/src/layouts/QueryFilter.mjs +14 -4
  51. package/es/components/form/src/layouts/QueryFilter.mjs.map +1 -1
  52. package/es/components/form/src/layouts/StepsForm.d.ts +1 -1
  53. package/es/components/form/src/layouts/StepsForm.mjs +8 -8
  54. package/es/components/form/src/layouts/StepsForm.mjs.map +1 -1
  55. package/es/components/form/src/type.d.ts +24 -11
  56. package/es/components/form/src/utils/transformer.d.ts +3 -0
  57. package/es/components/form/src/utils/transformer.mjs +24 -0
  58. package/es/components/form/src/utils/transformer.mjs.map +1 -0
  59. package/es/components/modal/src/modal.vue2.mjs +1 -1
  60. package/es/components/modal/src/modal.vue2.mjs.map +1 -1
  61. package/es/components/table/src/components/Body/Body.vue.mjs.map +1 -1
  62. package/es/components/table/src/components/Body/Body.vue2.mjs +1 -2
  63. package/es/components/table/src/components/Body/Body.vue2.mjs.map +1 -1
  64. package/es/components/table/src/components/Body/BodyCell.mjs +2 -2
  65. package/es/components/table/src/components/Body/BodyCell.mjs.map +1 -1
  66. package/es/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  67. package/es/components/table/src/components/Body/BodyRow.vue2.mjs +3 -3
  68. package/es/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  69. package/es/components/table/src/components/Drag/RowHandler.vue.mjs.map +1 -1
  70. package/es/components/table/src/components/Drag/RowHandler.vue2.mjs +17 -16
  71. package/es/components/table/src/components/Drag/RowHandler.vue2.mjs.map +1 -1
  72. package/es/components/table/src/components/Header/HeaderCellTitle.vue.mjs +19 -7
  73. package/es/components/table/src/components/Header/HeaderCellTitle.vue.mjs.map +1 -1
  74. package/es/components/table/src/components/Header/HeaderCellTitle.vue2.mjs +1 -0
  75. package/es/components/table/src/components/Header/HeaderCellTitle.vue2.mjs.map +1 -1
  76. package/es/components/table/src/components/Header/HeaderExtraCell.vue.mjs.map +1 -1
  77. package/es/components/table/src/components/Header/HeaderExtraCell.vue2.mjs +1 -0
  78. package/es/components/table/src/components/Header/HeaderExtraCell.vue2.mjs.map +1 -1
  79. package/es/components/table/src/components/InteralTable.vue.d.ts +21 -0
  80. package/es/components/table/src/components/InteralTable.vue.mjs.map +1 -1
  81. package/es/components/table/src/components/InteralTable.vue2.mjs +11 -5
  82. package/es/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
  83. package/es/components/table/src/components/Table.d.ts +25 -4
  84. package/es/components/table/src/components/Table.mjs +48 -14
  85. package/es/components/table/src/components/Table.mjs.map +1 -1
  86. package/es/components/table/src/components/ToolBar/ToolBar.vue.mjs +25 -6
  87. package/es/components/table/src/components/ToolBar/ToolBar.vue.mjs.map +1 -1
  88. package/es/components/table/src/components/ToolBar/ToolBar.vue2.mjs.map +1 -1
  89. package/es/components/table/src/components/interface.d.ts +33 -5
  90. package/es/components/table/src/components/interface.mjs +10 -1
  91. package/es/components/table/src/components/interface.mjs.map +1 -1
  92. package/es/components/table/src/hooks/useCellProps.mjs +3 -1
  93. package/es/components/table/src/hooks/useCellProps.mjs.map +1 -1
  94. package/es/components/table/src/hooks/useContainer.mjs +1 -1
  95. package/es/components/table/src/hooks/useContainer.mjs.map +1 -1
  96. package/es/components/table/src/hooks/useFetchData.mjs +13 -18
  97. package/es/components/table/src/hooks/useFetchData.mjs.map +1 -1
  98. package/es/components/table/src/hooks/useHover.d.ts +3 -0
  99. package/es/components/table/src/hooks/useHover.mjs +3 -1
  100. package/es/components/table/src/hooks/useHover.mjs.map +1 -1
  101. package/es/components/table/src/hooks/usePagination.d.ts +1 -0
  102. package/es/components/table/src/hooks/usePagination.mjs +7 -2
  103. package/es/components/table/src/hooks/usePagination.mjs.map +1 -1
  104. package/es/components/table/src/utils/genProColumnToColumn.mjs +5 -4
  105. package/es/components/table/src/utils/genProColumnToColumn.mjs.map +1 -1
  106. package/es/components/table/src/utils/util.d.ts +1 -1
  107. package/es/components/table/src/utils/util.mjs +1 -1
  108. package/es/components/table/src/utils/util.mjs.map +1 -1
  109. package/es/index.d.ts +65 -21
  110. package/es/utils/validate.d.ts +1 -1
  111. package/es/utils/validate.mjs +1 -1
  112. package/es/utils/validate.mjs.map +1 -1
  113. package/es/version.d.ts +1 -1
  114. package/es/version.mjs +1 -1
  115. package/es/version.mjs.map +1 -1
  116. package/lib/components/drawer/src/drawer.vue2.js +1 -1
  117. package/lib/components/drawer/src/drawer.vue2.js.map +1 -1
  118. package/lib/components/form/src/Form.d.ts +1 -1
  119. package/lib/components/form/src/base/BaseForm.d.ts +1 -1
  120. package/lib/components/form/src/base/BaseForm.js +14 -9
  121. package/lib/components/form/src/base/BaseForm.js.map +1 -1
  122. package/lib/components/form/src/base/StepForm.d.ts +1 -1
  123. package/lib/components/form/src/components/FormColWrapper.d.ts +9 -0
  124. package/lib/components/form/src/components/FormColWrapper.js +9 -1
  125. package/lib/components/form/src/components/FormColWrapper.js.map +1 -1
  126. package/lib/components/form/src/components/FormGroup.d.ts +6 -4
  127. package/lib/components/form/src/components/FormGroup.js +1 -1
  128. package/lib/components/form/src/components/FormGroup.js.map +1 -1
  129. package/lib/components/form/src/components/FormItem.d.ts +9 -0
  130. package/lib/components/form/src/components/FormItem.js +32 -24
  131. package/lib/components/form/src/components/FormItem.js.map +1 -1
  132. package/lib/components/form/src/components/FormItems.js +2 -1
  133. package/lib/components/form/src/components/FormItems.js.map +1 -1
  134. package/lib/components/form/src/components/FormList.d.ts +6 -4
  135. package/lib/components/form/src/components/FormList.js +1 -1
  136. package/lib/components/form/src/components/FormList.js.map +1 -1
  137. package/lib/components/form/src/components/FormListContainer.d.ts +6 -4
  138. package/lib/components/form/src/components/FormListContainer.js +1 -1
  139. package/lib/components/form/src/components/FormListContainer.js.map +1 -1
  140. package/lib/components/form/src/components/FormSet.d.ts +6 -4
  141. package/lib/components/form/src/components/FormSet.js +1 -1
  142. package/lib/components/form/src/components/FormSet.js.map +1 -1
  143. package/lib/components/form/src/components/FormSubmitter.d.ts +2 -2
  144. package/lib/components/form/src/components/FormSubmitter.js +25 -7
  145. package/lib/components/form/src/components/FormSubmitter.js.map +1 -1
  146. package/lib/components/form/src/components/FormTitle.d.ts +6 -4
  147. package/lib/components/form/src/components/FormTitle.js +11 -6
  148. package/lib/components/form/src/components/FormTitle.js.map +1 -1
  149. package/lib/components/form/src/hooks/useAction.d.ts +5 -3
  150. package/lib/components/form/src/hooks/useAction.js +29 -9
  151. package/lib/components/form/src/hooks/useAction.js.map +1 -1
  152. package/lib/components/form/src/hooks/useFieldValue.d.ts +1 -1
  153. package/lib/components/form/src/hooks/useFieldValue.js +11 -15
  154. package/lib/components/form/src/hooks/useFieldValue.js.map +1 -1
  155. package/lib/components/form/src/layouts/DrawerForm.d.ts +1 -1
  156. package/lib/components/form/src/layouts/ModalForm.d.ts +1 -1
  157. package/lib/components/form/src/layouts/QueryFilter.d.ts +1 -1
  158. package/lib/components/form/src/layouts/QueryFilter.js +14 -4
  159. package/lib/components/form/src/layouts/QueryFilter.js.map +1 -1
  160. package/lib/components/form/src/layouts/StepsForm.d.ts +1 -1
  161. package/lib/components/form/src/layouts/StepsForm.js +8 -8
  162. package/lib/components/form/src/layouts/StepsForm.js.map +1 -1
  163. package/lib/components/form/src/type.d.ts +24 -11
  164. package/lib/components/form/src/utils/transformer.d.ts +3 -0
  165. package/lib/components/form/src/utils/transformer.js +28 -0
  166. package/lib/components/form/src/utils/transformer.js.map +1 -0
  167. package/lib/components/modal/src/modal.vue2.js +1 -1
  168. package/lib/components/modal/src/modal.vue2.js.map +1 -1
  169. package/lib/components/table/src/components/Body/Body.vue.js.map +1 -1
  170. package/lib/components/table/src/components/Body/Body.vue2.js +1 -2
  171. package/lib/components/table/src/components/Body/Body.vue2.js.map +1 -1
  172. package/lib/components/table/src/components/Body/BodyCell.js +2 -2
  173. package/lib/components/table/src/components/Body/BodyCell.js.map +1 -1
  174. package/lib/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  175. package/lib/components/table/src/components/Body/BodyRow.vue2.js +3 -3
  176. package/lib/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  177. package/lib/components/table/src/components/Drag/RowHandler.vue.js.map +1 -1
  178. package/lib/components/table/src/components/Drag/RowHandler.vue2.js +17 -16
  179. package/lib/components/table/src/components/Drag/RowHandler.vue2.js.map +1 -1
  180. package/lib/components/table/src/components/Header/HeaderCellTitle.vue.js +18 -6
  181. package/lib/components/table/src/components/Header/HeaderCellTitle.vue.js.map +1 -1
  182. package/lib/components/table/src/components/Header/HeaderCellTitle.vue2.js +1 -0
  183. package/lib/components/table/src/components/Header/HeaderCellTitle.vue2.js.map +1 -1
  184. package/lib/components/table/src/components/Header/HeaderExtraCell.vue.js.map +1 -1
  185. package/lib/components/table/src/components/Header/HeaderExtraCell.vue2.js +1 -0
  186. package/lib/components/table/src/components/Header/HeaderExtraCell.vue2.js.map +1 -1
  187. package/lib/components/table/src/components/InteralTable.vue.d.ts +21 -0
  188. package/lib/components/table/src/components/InteralTable.vue.js.map +1 -1
  189. package/lib/components/table/src/components/InteralTable.vue2.js +12 -6
  190. package/lib/components/table/src/components/InteralTable.vue2.js.map +1 -1
  191. package/lib/components/table/src/components/Table.d.ts +25 -4
  192. package/lib/components/table/src/components/Table.js +47 -13
  193. package/lib/components/table/src/components/Table.js.map +1 -1
  194. package/lib/components/table/src/components/ToolBar/ToolBar.vue.js +24 -5
  195. package/lib/components/table/src/components/ToolBar/ToolBar.vue.js.map +1 -1
  196. package/lib/components/table/src/components/ToolBar/ToolBar.vue2.js.map +1 -1
  197. package/lib/components/table/src/components/interface.d.ts +33 -5
  198. package/lib/components/table/src/components/interface.js +10 -1
  199. package/lib/components/table/src/components/interface.js.map +1 -1
  200. package/lib/components/table/src/hooks/useCellProps.js +3 -1
  201. package/lib/components/table/src/hooks/useCellProps.js.map +1 -1
  202. package/lib/components/table/src/hooks/useContainer.js +1 -1
  203. package/lib/components/table/src/hooks/useContainer.js.map +1 -1
  204. package/lib/components/table/src/hooks/useFetchData.js +13 -18
  205. package/lib/components/table/src/hooks/useFetchData.js.map +1 -1
  206. package/lib/components/table/src/hooks/useHover.d.ts +3 -0
  207. package/lib/components/table/src/hooks/useHover.js +2 -0
  208. package/lib/components/table/src/hooks/useHover.js.map +1 -1
  209. package/lib/components/table/src/hooks/usePagination.d.ts +1 -0
  210. package/lib/components/table/src/hooks/usePagination.js +7 -1
  211. package/lib/components/table/src/hooks/usePagination.js.map +1 -1
  212. package/lib/components/table/src/utils/genProColumnToColumn.js +5 -4
  213. package/lib/components/table/src/utils/genProColumnToColumn.js.map +1 -1
  214. package/lib/components/table/src/utils/util.d.ts +1 -1
  215. package/lib/components/table/src/utils/util.js +1 -1
  216. package/lib/components/table/src/utils/util.js.map +1 -1
  217. package/lib/index.d.ts +65 -21
  218. package/lib/utils/validate.d.ts +1 -1
  219. package/lib/utils/validate.js +1 -1
  220. package/lib/utils/validate.js.map +1 -1
  221. package/lib/version.d.ts +1 -1
  222. package/lib/version.js +1 -1
  223. package/lib/version.js.map +1 -1
  224. package/package.json +1 -1
  225. package/theme-chalk/css-var.css +1 -1
  226. package/theme-chalk/index.css +1 -1
  227. package/theme-chalk/pro-form.css +1 -1
  228. package/theme-chalk/src/css-var.less +154 -677
  229. package/theme-chalk/src/form.less +5 -0
  230. package/theme-chalk/src/table/alert.less +1 -0
  231. package/theme-chalk/src/table/table.less +3 -3
  232. package/theme-chalk/src/common/css-var.less +0 -914
@@ -1 +1 @@
1
- {"version":3,"file":"Body.vue.js","sources":["../../../../../../../../packages/components/table/src/components/Body/Body.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 22:03:08\n * @LastEditors: shen\n * @LastEditTime: 2025-09-19 16:30:31\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, onMounted, shallowRef, onBeforeUnmount } from 'vue'\nimport { Empty } from 'ant-design-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useProvideBody } from '../context/BodyContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { useVScrollSyncInject } from '../../hooks/useVScrollSync'\nimport { useHScrollSyncInject } from '../../hooks/useHScrollSync'\nimport { RenderVNode, RenderSlot } from '../../utils/renderVNode'\nimport { resize } from '@pro-design-vue/directives'\nimport { useResizeObserver } from '@vueuse/core'\nimport useTooltip from '../../hooks/useTooltip'\nimport onClickOutside from '../../utils/onClickOutside'\nimport BodyRows from './BodyRows.vue'\nimport XScroll from '../Scrollbar/XScroll'\nimport YScroll from '../Scrollbar/YScroll'\n\nimport type { PropType, CSSProperties } from 'vue'\nimport type { SummaryFixed } from '../interface'\nimport type { CustomSlotsType } from '../../utils/type'\n\nexport default defineComponent({\n name: 'TableBody',\n components: {\n BodyRows,\n Empty,\n RenderVNode,\n RenderSlot,\n HorizontalScroll: XScroll,\n YScroll,\n },\n directives: { resize },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n bodyScrollWidth: { type: Number as PropType<number> },\n bodyWidth: { type: Number as PropType<number> },\n bodyHeight: { type: Number as PropType<number> },\n height: { type: [Number, String] as PropType<number | string> },\n scrollX: [Number, String] as PropType<number | string>,\n summaryFixed: [Boolean, String] as PropType<boolean | SummaryFixed>,\n emptyText: Function,\n summary: Function,\n },\n emits: [\n 'scroll',\n 'scrollLeft',\n 'scrollTop',\n 'update:bodyWidth',\n 'update:bodyHeight',\n 'update:bodyScrollWidth',\n 'keydown',\n ],\n slots: {} as CustomSlotsType<{\n emptyText: any\n default: any\n }>,\n setup(props, { emit, attrs, expose }) {\n const tableContext = useInjectTable()\n const tableSlotsContext = useInjectSlots()\n\n const dragRowPlaceholderRef = ref<HTMLDivElement>()\n const bodyRef = ref<HTMLDivElement>()\n const measureDomRef = ref<HTMLDivElement>()\n const bodyInnerRef = ref<HTMLDivElement>()\n const scrollLayerRef = ref<HTMLDivElement>()\n const viewportRef = ref<HTMLDivElement>()\n const summaryViewportRef = ref<HTMLDivElement>()\n\n const bodyViewportRef = ref<HTMLDivElement>()\n const bodyContainerRef = ref<HTMLDivElement>()\n\n const summaryHeight = ref(0)\n\n const leftColumns = computed(() => tableContext.leftColumns.value)\n const centerColumns = computed(() => tableContext.centerColumns.value)\n const rightColumns = computed(() => tableContext.rightColumns.value)\n const showWatermark = computed(() => tableContext.status.value.code !== 4)\n\n const leftPopupContainer = ref<HTMLDivElement>()\n const centerPopupContainer = ref<HTMLDivElement>()\n const rightPopupContainer = ref<HTMLDivElement>()\n\n const leftTarget = ref<HTMLDivElement>()\n const centerTarget = ref<HTMLDivElement>()\n const rightTarget = ref<HTMLDivElement>()\n\n const { hoverColumnKey } = useInjectHover()\n const { open } = useTooltip({ hoverColumnKey })\n\n const popupContent = shallowRef<any>()\n const popupContentPos = ref<string | null>()\n const contextmenuPos = ref({ clientX: 0, clientY: 0 })\n\n const setTargetStyle = (target: HTMLDivElement) => {\n target.style.display = 'none'\n target.style.opacity = '0'\n target.style.left = '0px'\n target.style.top = '0px'\n target.style.height = '1px'\n target.style.maxWidth = props.bodyWidth! - 4 + 'px'\n }\n\n const setContextmenuPopupPos = () => {\n const { clientX, clientY } = contextmenuPos.value\n const popupPos = popupContentPos.value\n const target =\n popupPos === 'left'\n ? leftTarget.value\n : popupPos === 'right'\n ? rightTarget.value\n : centerTarget.value\n if (!popupPos || !target) {\n return\n }\n target.style.display = 'block'\n const { left, top } = target.parentElement!.getBoundingClientRect()\n const firstChild = target.children[0]!\n const minHeight = Math.min(\n target.scrollHeight,\n firstChild.scrollHeight!,\n viewportHeight.value - 4,\n )\n target.style.opacity = '1'\n target.style.height = `${minHeight}px`\n let leftPos = clientX - left\n let rightPos = clientY - top\n if (rightPos + minHeight > viewportHeight.value) {\n rightPos = viewportHeight.value - minHeight - 2\n }\n\n if (popupContentPos.value === 'center') {\n if (leftPos + target.offsetWidth > tableContext.centerWidth.value) {\n leftPos = tableContext.centerWidth.value - target.offsetWidth - 2\n }\n } else if (popupContentPos.value === 'right') {\n if (leftPos + target.offsetWidth > tableContext.rightWidth.value) {\n leftPos = tableContext.rightWidth.value - target.offsetWidth - 2\n }\n } else {\n if (leftPos + target.offsetWidth > props.bodyWidth!) {\n leftPos = props.bodyWidth! - target.offsetWidth - 2\n }\n }\n target.style.left = `${leftPos}px`\n target.style.top = `${rightPos}px`\n }\n\n const showYScrollbar = computed(() => tableContext.showVerticalScrollbar.value)\n const showXScrollbar = computed(() => tableContext.showHorizontalScrollbar.value)\n\n watch(\n [tableContext.centerWidth, tableContext.rightWidth, () => props.bodyWidth],\n () => {\n setContextmenuPopupPos()\n },\n { flush: 'post' },\n )\n\n let contextmenuTimer: any\n\n onClickOutside(leftTarget, () => {\n if (popupContentPos.value === 'left') {\n popupContentPos.value = null\n setTargetStyle(leftTarget.value!)\n }\n })\n onClickOutside(centerTarget, () => {\n if (popupContentPos.value === 'center') {\n popupContentPos.value = null\n setTargetStyle(centerTarget.value!)\n }\n })\n onClickOutside(rightTarget, () => {\n if (popupContentPos.value === 'right') {\n popupContentPos.value = null\n setTargetStyle(rightTarget.value!)\n }\n })\n\n useProvideBody({\n onBodyCellContextmenu: (event, args, type) => {\n if (tableContext.props.hasContextmenuPopup) {\n const { clientX, clientY } = event\n setTargetStyle(leftTarget.value!)\n setTargetStyle(centerTarget.value!)\n setTargetStyle(rightTarget.value!)\n popupContentPos.value = type\n popupContent.value = () =>\n tableSlotsContext.contextmenuPopup?.({\n event,\n ...args,\n hidePopup: () => {\n ;((popupContentPos.value = null),\n setTargetStyle(leftTarget.value!),\n setTargetStyle(centerTarget.value!),\n setTargetStyle(rightTarget.value!))\n },\n })\n contextmenuPos.value = { clientX, clientY }\n clearTimeout(contextmenuTimer)\n contextmenuTimer = setTimeout(() => {\n setContextmenuPopupPos()\n })\n event.preventDefault()\n }\n },\n bodyRef,\n tooltipOpen: open,\n leftPopupContainer,\n centerPopupContainer,\n rightPopupContainer,\n dragRowPlaceholderRef,\n })\n\n expose({ bodyRef })\n\n onBeforeUnmount(() => {\n clearTimeout(contextmenuTimer)\n clearTimeout(undefined)\n })\n const { addHScrollDom, removeHScrollDom } = useHScrollSyncInject()\n const { addVScrollDom, removeVScrollDom } = useVScrollSyncInject()\n\n onMounted(() => {\n watch(\n summaryViewportRef,\n (newValue, oldValue) => {\n removeHScrollDom(oldValue!)\n addHScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n watch(\n bodyContainerRef,\n (newValue, oldValue) => {\n removeHScrollDom(oldValue!)\n addHScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n watch(\n bodyViewportRef,\n (newValue, oldValue) => {\n removeVScrollDom(oldValue!)\n addVScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n })\n onBeforeUnmount(() => {\n removeHScrollDom(summaryViewportRef.value!)\n removeHScrollDom(bodyContainerRef.value!)\n removeVScrollDom(bodyViewportRef.value!)\n })\n\n const bodyInnerWidth = ref(0)\n const emptyHeight = ref(0)\n\n const scrollbarStyle = computed<CSSProperties>(() => {\n const barSize = `${tableContext.showVerticalScrollbar.value ? tableContext.scrollBarSize.value : 0}px`\n return {\n display: barSize === '0px' ? 'none' : 'block',\n width: barSize,\n minWidth: barSize,\n maxWidth: barSize,\n position: 'sticky',\n right: `-${barSize}`,\n }\n })\n\n const bodyViewportStyle = computed<CSSProperties>(() => ({\n width: `calc(100% + ${tableContext.showVerticalScrollbar.value ? tableContext.scrollBarSize.value || 15 : 0}px)`,\n // width: `calc(100% + 0px)`,\n overflowX: 'hidden',\n overflowY: 'auto',\n height: '100%',\n }))\n const isEmpty = computed(() => 0 === tableContext.pageData.value.length)\n const leftShadowStyle = computed<CSSProperties>(() =>\n props.bodyWidth! - tableContext.rightWidth.value > tableContext.leftWidth.value\n ? {\n position: 'absolute',\n left: `${tableContext.leftWidth.value}px`,\n height: '100%',\n }\n : { display: 'none' },\n )\n const rightShadowStyle = computed<CSSProperties>(() =>\n tableContext.rightWidth.value\n ? {\n position: 'absolute',\n left: props.bodyWidth! - tableContext.rightWidth.value + 'px',\n height: '100%',\n }\n : { display: 'none' },\n )\n const bodyClass = computed(() => ({\n [`${props.prefixCls}-body`]: true,\n [`${props.prefixCls}-unselectable`]: false !== tableContext.props.rangeSelection,\n }))\n const fixLeftClass = computed(() => ({\n [`${props.prefixCls}-fix-left`]: true,\n [`${props.prefixCls}-no-columns`]: !leftColumns.value.length,\n }))\n const fixRightClass = computed(() => ({\n [`${props.prefixCls}-fix-right`]: true,\n [`${props.prefixCls}-no-columns`]: !rightColumns.value.length,\n }))\n const centerClass = computed(() => ({\n [`${props.prefixCls}-center`]: true,\n [`${props.prefixCls}-no-columns`]: !centerColumns.value.length,\n }))\n const summaryViewportClass = computed(() => ({\n [`${props.prefixCls}-center-viewport`]: true,\n }))\n const containerClass = computed(() => ({\n [`${props.prefixCls}-center-container`]: true,\n }))\n const viewportHeight = computed(\n () =>\n tableContext.viewportHeight.value +\n (props.summaryFixed ? emptyHeight.value : summaryHeight.value + emptyHeight.value),\n )\n const containerStyle = computed<CSSProperties>(() => ({\n width: `${tableContext.centerWidth.value}px`,\n height: `${viewportHeight.value}px`,\n }))\n const summaryViewportStyle = computed<CSSProperties>(() => ({\n height: `calc(100% + ${tableContext.scrollBarSize.value || 15}px)`,\n }))\n const scrollLayerStyle = computed<CSSProperties>(() => ({\n height: `${viewportHeight.value}px`,\n width: `${tableContext.bodyMaxWidth.value}px`,\n minWidth: '100%',\n }))\n const rowsHeightStyle = computed<CSSProperties>(() => ({\n height: `${viewportHeight.value}px`,\n overflow: 'hidden',\n minHeight: '100%',\n transform: 'translateZ(0)',\n }))\n const bodyStyle = computed<CSSProperties>(() => ({\n ...(attrs.style || {}),\n maxHeight: 'number' == typeof props.height ? `${props.height}px` : props.height,\n overflowY: 'hidden',\n }))\n const bodyContainerStyle = computed<CSSProperties>(\n () =>\n ({\n height: tableContext.showHorizontalScrollbar.value\n ? `calc(100% + ${tableContext.scrollBarSize.value || 15}px)`\n : 'calc(100%)',\n zIndex: 'unset !important',\n overflowX: 'auto',\n overflowY: 'hidden',\n }) as any,\n )\n const centerStyle = computed<CSSProperties>(() => ({ height: `${viewportHeight.value}px` }))\n const leftStyle = computed<CSSProperties>(() => {\n const width = `${tableContext.leftWidth.value}px`\n return {\n width,\n minWidth: width,\n maxWidth: width,\n height: `${viewportHeight.value}px`,\n }\n })\n const rightStyle = computed<CSSProperties>(() => {\n const width = `${tableContext.rightWidth.value}px`\n return {\n width,\n minWidth: width,\n maxWidth: width,\n height: `${viewportHeight.value}px`,\n }\n })\n const summaryClass = computed(() => ({\n [`${props.prefixCls}-summary`]: true,\n [`${props.prefixCls}-position-absolute`]: !isEmpty.value,\n }))\n const fixedSummaryClass = computed(() => [\n summaryClass.value,\n `${props.prefixCls}-summary-fixed`,\n `${props.prefixCls}-summary-fixed-${props.summaryFixed}`,\n ])\n const summaryStyle = computed<CSSProperties>(() => {\n const styles = { height: `${summaryHeight.value}px` }\n return Object.assign(\n styles,\n props.summaryFixed\n ? showXScrollbar.value\n ? { borderTop: 'none' }\n : {}\n : {\n position: 'absolute',\n bottom: 0,\n width: `${props.bodyWidth}px`,\n borderTop: 'none',\n },\n ) as CSSProperties\n })\n const topSummaryStyle = computed<CSSProperties>(() => {\n if ('object' == typeof tableContext.props.sticky) {\n const { offsetHeader = 0, topSummary = false } = tableContext.props.sticky\n return topSummary\n ? ({\n ...summaryStyle.value,\n position: 'sticky',\n top: `${offsetHeader + tableContext.realHeaderHeight.value}px`,\n } as CSSProperties)\n : (summaryStyle.value as CSSProperties)\n }\n return summaryStyle.value as CSSProperties\n })\n const emptyStyle = computed<CSSProperties>(() => ({ width: `${props.bodyWidth}px` }))\n\n useResizeObserver(measureDomRef as never, (entries) => {\n const contentRect = entries[0]?.contentRect\n emit('update:bodyWidth', contentRect?.width || 0)\n emit('update:bodyHeight', contentRect?.height || 0)\n })\n return {\n bodyContainerStyle,\n measureDomStyle: computed<any>(() => ({\n width: '100%',\n height: '100%!important',\n position: 'absolute!important',\n fontSize: '100px!important',\n opacity: '0.1!important',\n textAlign: 'center!important',\n top: '0px!important',\n left: '0px!important',\n pointerEvents: 'none',\n display: 'block!important',\n color: '#000000!important',\n margin: '0px!important',\n padding: '0px!important',\n transform: 'unset!important',\n visibility: 'visible!important',\n zIndex: '999!important',\n })),\n isEmpty,\n emptyStyle,\n handleEmptyHeight: (e: CustomEvent) => {\n emptyHeight.value = e.detail.height\n },\n bodyClass,\n fixLeftClass,\n fixRightClass,\n centerClass,\n containerClass,\n summaryViewportClass,\n summaryClass,\n rightStyle,\n centerStyle,\n leftStyle,\n summaryViewportStyle,\n containerStyle,\n summaryStyle,\n viewportHeight,\n leftColumns,\n centerColumns,\n rightColumns,\n bodyInnerWidth,\n handleBodyInnerResize: (e: CustomEvent) => {\n bodyInnerWidth.value = e.detail.width\n },\n handleBodyScrollResize: (e: CustomEvent) => {\n emit('update:bodyScrollWidth', e.detail.width)\n },\n bodyRef,\n measureDomRef,\n bodyInnerRef,\n viewportRef,\n summaryViewportRef,\n handleResize: (e: CustomEvent) => {\n summaryHeight.value = e.detail.height\n },\n bodyStyle,\n handleBodyResize: (e: CustomEvent) => {\n emit('update:bodyWidth', e.detail.width)\n emit('update:bodyHeight', e.detail.height)\n },\n emptyImage: Empty.PRESENTED_IMAGE_SIMPLE,\n scrollLayerStyle,\n getRowClassName: (record: any, index: number) => {\n const rowClassName = tableContext.props.rowClassName\n return (\n typeof rowClassName == 'function' ? rowClassName(record, index) : rowClassName\n ) as string\n },\n showWatermark,\n leftPopupContainer,\n centerPopupContainer,\n rightPopupContainer,\n dragRowPlaceholderRef,\n leftShadowStyle,\n rightShadowStyle,\n fixedSummaryClass,\n scrollLayerRef,\n scrollbarStyle,\n topSummaryStyle,\n leftTarget,\n centerTarget,\n rightTarget,\n popupContent,\n popupContentPos,\n handleContextmenuPopupResize: () => {\n setContextmenuPopupPos()\n },\n handleDragStart: (e: MouseEvent) => {\n if (e.target instanceof HTMLImageElement) {\n e.preventDefault()\n return false\n }\n },\n handleKeydown: (e: KeyboardEvent) => {\n emit('keydown', e)\n },\n bodyViewportStyle,\n bodyViewportRef,\n bodyContainerRef,\n rowsHeightStyle,\n showYScrollbar,\n }\n },\n})\n</script>\n\n<template>\n <RenderSlot>\n <div\n v-if=\"summary && summaryFixed === 'top'\"\n key=\"summary\"\n :class=\"fixedSummaryClass\"\n :style=\"topSummaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div\n ref=\"summaryViewportRef\"\n :class=\"`${prefixCls}-summary-container`\"\n :style=\"{ height: 'calc(100% + 15px)' }\"\n >\n <div v-resize:height @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :class=\"`${prefixCls}-cell-shadow-left`\" :style=\"leftShadowStyle\"></div>\n <div :class=\"`${prefixCls}-cell-shadow-right`\" :style=\"rightShadowStyle\"></div>\n <div :class=\"`${prefixCls}-summary-scrollbar`\" :style=\"scrollbarStyle\"></div>\n </div>\n </div>\n </RenderSlot>\n <div\n key=\"body\"\n ref=\"bodyRef\"\n :class=\"bodyClass\"\n :style=\"bodyStyle\"\n @dragstart=\"handleDragStart\"\n @keydown=\"handleKeydown\"\n >\n <div\n :style=\"{\n width: '100%',\n overflow: 'hidden',\n position: 'relative',\n transform: 'translateZ(0)',\n }\"\n >\n <div\n ref=\"bodyViewportRef\"\n :class=\"`${prefixCls}-body-viewport-container`\"\n :style=\"bodyViewportStyle\"\n >\n <div :style=\"rowsHeightStyle\">\n <div\n ref=\"bodyContainerRef\"\n :class=\"`${prefixCls}-body-container`\"\n :style=\"bodyContainerStyle\"\n >\n <div ref=\"leftPopupContainer\" key=\"left\" :class=\"fixLeftClass\" :style=\"leftStyle\">\n <BodyRows\n v-if=\"leftColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"left\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div v-else :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div\n v-if=\"summary && !summaryFixed\"\n key=\"summary\"\n :class=\"summaryClass\"\n :style=\"summaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div ref=\"summaryViewportRef\" :class=\"`${prefixCls}-summary-container`\">\n <div v-resize:height @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :style=\"leftShadowStyle\" :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div :style=\"rightShadowStyle\" :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n </div>\n </div>\n\n <div ref=\"leftTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'left'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n <div key=\"center\" :class=\"centerClass\" :style=\"centerStyle\">\n <div ref=\"centerPopupContainer\" :class=\"containerClass\" :style=\"containerStyle\">\n <BodyRows\n v-if=\"centerColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"center\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div ref=\"centerTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'center'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n </div>\n <div key=\"right\" ref=\"rightPopupContainer\" :class=\"fixRightClass\" :style=\"rightStyle\">\n <BodyRows\n v-if=\"rightColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"right\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div v-else :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n <div ref=\"rightTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize=\"true\"\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'right'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n <span ref=\"dragRowPlaceholderRef\" :class=\"`${prefixCls}-drag-placeholder`\"></span>\n </div>\n </div>\n <div v-if=\"isEmpty\" key=\"empty\" :class=\"`${prefixCls}-empty-container`\">\n <div v-resize:height style=\"padding: 1px\" @resizeheight=\"handleEmptyHeight\">\n <RenderVNode :vnode=\"emptyText\"> <Empty :image=\"emptyImage\" /> </RenderVNode>\n </div>\n </div>\n </div>\n <div ref=\"measureDomRef\" :style=\"measureDomStyle\"></div>\n <div\n v-resize:width\n :class=\"`${prefixCls}-body-scroll-measure`\"\n :style=\"`min-width: ${bodyInnerWidth}px`\"\n @resizewidth=\"handleBodyScrollResize\"\n ></div>\n <div\n v-resize:width\n :class=\"`${prefixCls}-body-inner-measure`\"\n :style=\"`min-width: ${scrollX}px`\"\n @resizewidth=\"handleBodyInnerResize\"\n ></div>\n </div>\n <YScroll :style=\"`height: ${bodyHeight}px`\" />\n </div>\n <RenderSlot>\n <div\n v-if=\"summary && summaryFixed === 'bottom'\"\n key=\"summary\"\n :class=\"fixedSummaryClass\"\n :style=\"summaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div\n ref=\"summaryViewportRef\"\n :class=\"`${prefixCls}-summary-container`\"\n :style=\"{ height: 'calc(100% + 15px)' }\"\n >\n <div v-resize:height=\"true\" @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :style=\"leftShadowStyle\" :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div :style=\"rightShadowStyle\" :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n <div :class=\"`${prefixCls}-summary-scrollbar`\" :style=\"scrollbarStyle\"></div>\n </div>\n </div>\n </RenderSlot>\n <HorizontalScroll />\n</template>\n"],"names":["_createVNode","_withCtx","_openBlock","_createElementBlock","_normalizeClass","_normalizeStyle","_createElementVNode","_withDirectives","_createBlock","_resolveDynamicComponent","_createCommentVNode"],"mappings":"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"}
1
+ {"version":3,"file":"Body.vue.js","sources":["../../../../../../../../packages/components/table/src/components/Body/Body.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 22:03:08\n * @LastEditors: shen\n * @LastEditTime: 2025-09-28 14:23:27\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, onMounted, shallowRef, onBeforeUnmount } from 'vue'\nimport { Empty } from 'ant-design-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useProvideBody } from '../context/BodyContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { useVScrollSyncInject } from '../../hooks/useVScrollSync'\nimport { useHScrollSyncInject } from '../../hooks/useHScrollSync'\nimport { RenderVNode, RenderSlot } from '../../utils/renderVNode'\nimport { resize } from '@pro-design-vue/directives'\nimport { useResizeObserver } from '@vueuse/core'\nimport useTooltip from '../../hooks/useTooltip'\nimport onClickOutside from '../../utils/onClickOutside'\nimport BodyRows from './BodyRows.vue'\nimport XScroll from '../Scrollbar/XScroll'\nimport YScroll from '../Scrollbar/YScroll'\n\nimport type { PropType, CSSProperties } from 'vue'\nimport type { SummaryFixed } from '../interface'\nimport type { CustomSlotsType } from '../../utils/type'\n\nexport default defineComponent({\n name: 'TableBody',\n components: {\n BodyRows,\n Empty,\n RenderVNode,\n RenderSlot,\n HorizontalScroll: XScroll,\n YScroll,\n },\n directives: { resize },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n bodyScrollWidth: { type: Number as PropType<number> },\n bodyWidth: { type: Number as PropType<number> },\n bodyHeight: { type: Number as PropType<number> },\n height: { type: [Number, String] as PropType<number | string> },\n scrollX: [Number, String] as PropType<number | string>,\n summaryFixed: [Boolean, String] as PropType<boolean | SummaryFixed>,\n emptyText: Function,\n summary: Function,\n },\n emits: [\n 'scroll',\n 'scrollLeft',\n 'scrollTop',\n 'update:bodyWidth',\n 'update:bodyHeight',\n 'update:bodyScrollWidth',\n 'keydown',\n ],\n slots: {} as CustomSlotsType<{\n emptyText: any\n default: any\n }>,\n setup(props, { emit, attrs, expose }) {\n const tableContext = useInjectTable()\n const tableSlotsContext = useInjectSlots()\n\n const dragRowPlaceholderRef = ref<HTMLDivElement>()\n const bodyRef = ref<HTMLDivElement>()\n const measureDomRef = ref<HTMLDivElement>()\n const bodyInnerRef = ref<HTMLDivElement>()\n const scrollLayerRef = ref<HTMLDivElement>()\n const viewportRef = ref<HTMLDivElement>()\n const summaryViewportRef = ref<HTMLDivElement>()\n\n const bodyViewportRef = ref<HTMLDivElement>()\n const bodyContainerRef = ref<HTMLDivElement>()\n\n const summaryHeight = ref(0)\n\n const leftColumns = computed(() => tableContext.leftColumns.value)\n const centerColumns = computed(() => tableContext.centerColumns.value)\n const rightColumns = computed(() => tableContext.rightColumns.value)\n const showWatermark = computed(() => tableContext.status.value.code !== 4)\n\n const leftPopupContainer = ref<HTMLDivElement>()\n const centerPopupContainer = ref<HTMLDivElement>()\n const rightPopupContainer = ref<HTMLDivElement>()\n\n const leftTarget = ref<HTMLDivElement>()\n const centerTarget = ref<HTMLDivElement>()\n const rightTarget = ref<HTMLDivElement>()\n\n const { hoverColumnKey } = useInjectHover()\n const { open } = useTooltip({ hoverColumnKey })\n\n const popupContent = shallowRef<any>()\n const popupContentPos = ref<string | null>()\n const contextmenuPos = ref({ clientX: 0, clientY: 0 })\n\n const setTargetStyle = (target: HTMLDivElement) => {\n target.style.display = 'none'\n target.style.opacity = '0'\n target.style.left = '0px'\n target.style.top = '0px'\n target.style.height = '1px'\n target.style.maxWidth = props.bodyWidth! - 4 + 'px'\n }\n\n const setContextmenuPopupPos = () => {\n const { clientX, clientY } = contextmenuPos.value\n const popupPos = popupContentPos.value\n const target =\n popupPos === 'left'\n ? leftTarget.value\n : popupPos === 'right'\n ? rightTarget.value\n : centerTarget.value\n if (!popupPos || !target) {\n return\n }\n target.style.display = 'block'\n const { left, top } = target.parentElement!.getBoundingClientRect()\n const firstChild = target.children[0]!\n const minHeight = Math.min(\n target.scrollHeight,\n firstChild.scrollHeight!,\n viewportHeight.value - 4,\n )\n target.style.opacity = '1'\n target.style.height = `${minHeight}px`\n let leftPos = clientX - left\n let rightPos = clientY - top\n if (rightPos + minHeight > viewportHeight.value) {\n rightPos = viewportHeight.value - minHeight - 2\n }\n\n if (popupContentPos.value === 'center') {\n if (leftPos + target.offsetWidth > tableContext.centerWidth.value) {\n leftPos = tableContext.centerWidth.value - target.offsetWidth - 2\n }\n } else if (popupContentPos.value === 'right') {\n if (leftPos + target.offsetWidth > tableContext.rightWidth.value) {\n leftPos = tableContext.rightWidth.value - target.offsetWidth - 2\n }\n } else {\n if (leftPos + target.offsetWidth > props.bodyWidth!) {\n leftPos = props.bodyWidth! - target.offsetWidth - 2\n }\n }\n target.style.left = `${leftPos}px`\n target.style.top = `${rightPos}px`\n }\n\n const showYScrollbar = computed(() => tableContext.showVerticalScrollbar.value)\n const showXScrollbar = computed(() => tableContext.showHorizontalScrollbar.value)\n\n watch(\n [tableContext.centerWidth, tableContext.rightWidth, () => props.bodyWidth],\n () => {\n setContextmenuPopupPos()\n },\n { flush: 'post' },\n )\n\n let contextmenuTimer: any\n\n onClickOutside(leftTarget, () => {\n if (popupContentPos.value === 'left') {\n popupContentPos.value = null\n setTargetStyle(leftTarget.value!)\n }\n })\n onClickOutside(centerTarget, () => {\n if (popupContentPos.value === 'center') {\n popupContentPos.value = null\n setTargetStyle(centerTarget.value!)\n }\n })\n onClickOutside(rightTarget, () => {\n if (popupContentPos.value === 'right') {\n popupContentPos.value = null\n setTargetStyle(rightTarget.value!)\n }\n })\n\n useProvideBody({\n onBodyCellContextmenu: (event, args, type) => {\n if (tableContext.props.hasContextmenuPopup) {\n const { clientX, clientY } = event\n setTargetStyle(leftTarget.value!)\n setTargetStyle(centerTarget.value!)\n setTargetStyle(rightTarget.value!)\n popupContentPos.value = type\n popupContent.value = () =>\n tableSlotsContext.contextmenuPopup?.({\n event,\n ...args,\n hidePopup: () => {\n ;((popupContentPos.value = null),\n setTargetStyle(leftTarget.value!),\n setTargetStyle(centerTarget.value!),\n setTargetStyle(rightTarget.value!))\n },\n })\n contextmenuPos.value = { clientX, clientY }\n clearTimeout(contextmenuTimer)\n contextmenuTimer = setTimeout(() => {\n setContextmenuPopupPos()\n })\n event.preventDefault()\n }\n },\n bodyRef,\n tooltipOpen: open,\n leftPopupContainer,\n centerPopupContainer,\n rightPopupContainer,\n dragRowPlaceholderRef,\n })\n\n expose({ bodyRef })\n\n onBeforeUnmount(() => {\n clearTimeout(contextmenuTimer)\n clearTimeout(undefined)\n })\n const { addHScrollDom, removeHScrollDom } = useHScrollSyncInject()\n const { addVScrollDom, removeVScrollDom } = useVScrollSyncInject()\n\n onMounted(() => {\n watch(\n summaryViewportRef,\n (newValue, oldValue) => {\n removeHScrollDom(oldValue!)\n addHScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n watch(\n bodyContainerRef,\n (newValue, oldValue) => {\n removeHScrollDom(oldValue!)\n addHScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n watch(\n bodyViewportRef,\n (newValue, oldValue) => {\n removeVScrollDom(oldValue!)\n addVScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n })\n onBeforeUnmount(() => {\n removeHScrollDom(summaryViewportRef.value!)\n removeHScrollDom(bodyContainerRef.value!)\n removeVScrollDom(bodyViewportRef.value!)\n })\n\n const bodyInnerWidth = ref(0)\n const emptyHeight = ref(0)\n\n const scrollbarStyle = computed<CSSProperties>(() => {\n const barSize = `${tableContext.showVerticalScrollbar.value ? tableContext.scrollBarSize.value : 0}px`\n return {\n display: barSize === '0px' ? 'none' : 'block',\n width: barSize,\n minWidth: barSize,\n maxWidth: barSize,\n position: 'sticky',\n right: `-${barSize}`,\n }\n })\n\n const bodyViewportStyle = computed<CSSProperties>(() => ({\n width: `calc(100% + ${tableContext.showVerticalScrollbar.value ? tableContext.scrollBarSize.value : 0}px)`,\n overflowX: 'hidden',\n overflowY: 'auto',\n height: '100%',\n }))\n const isEmpty = computed(() => 0 === tableContext.pageData.value.length)\n const leftShadowStyle = computed<CSSProperties>(() =>\n props.bodyWidth! - tableContext.rightWidth.value > tableContext.leftWidth.value\n ? {\n position: 'absolute',\n left: `${tableContext.leftWidth.value}px`,\n height: '100%',\n }\n : { display: 'none' },\n )\n const rightShadowStyle = computed<CSSProperties>(() =>\n tableContext.rightWidth.value\n ? {\n position: 'absolute',\n left: props.bodyWidth! - tableContext.rightWidth.value + 'px',\n height: '100%',\n }\n : { display: 'none' },\n )\n const bodyClass = computed(() => ({\n [`${props.prefixCls}-body`]: true,\n [`${props.prefixCls}-unselectable`]: false !== tableContext.props.rangeSelection,\n }))\n const fixLeftClass = computed(() => ({\n [`${props.prefixCls}-fix-left`]: true,\n [`${props.prefixCls}-no-columns`]: !leftColumns.value.length,\n }))\n const fixRightClass = computed(() => ({\n [`${props.prefixCls}-fix-right`]: true,\n [`${props.prefixCls}-no-columns`]: !rightColumns.value.length,\n }))\n const centerClass = computed(() => ({\n [`${props.prefixCls}-center`]: true,\n [`${props.prefixCls}-no-columns`]: !centerColumns.value.length,\n }))\n const summaryViewportClass = computed(() => ({\n [`${props.prefixCls}-center-viewport`]: true,\n }))\n const containerClass = computed(() => ({\n [`${props.prefixCls}-center-container`]: true,\n }))\n const viewportHeight = computed(\n () =>\n tableContext.viewportHeight.value +\n (props.summaryFixed ? emptyHeight.value : summaryHeight.value + emptyHeight.value),\n )\n const containerStyle = computed<CSSProperties>(() => ({\n width: `${tableContext.centerWidth.value}px`,\n height: `${viewportHeight.value}px`,\n }))\n const summaryViewportStyle = computed<CSSProperties>(() => ({\n height: `calc(100% + ${tableContext.scrollBarSize.value || 15}px)`,\n }))\n const scrollLayerStyle = computed<CSSProperties>(() => ({\n height: `${viewportHeight.value}px`,\n width: `${tableContext.bodyMaxWidth.value}px`,\n minWidth: '100%',\n }))\n const rowsHeightStyle = computed<CSSProperties>(() => ({\n height: `${viewportHeight.value}px`,\n overflow: 'hidden',\n minHeight: '100%',\n transform: 'translateZ(0)',\n }))\n const bodyStyle = computed<CSSProperties>(() => ({\n ...(attrs.style || {}),\n maxHeight: 'number' == typeof props.height ? `${props.height}px` : props.height,\n overflowY: 'hidden',\n }))\n const bodyContainerStyle = computed<CSSProperties>(\n () =>\n ({\n height: tableContext.showHorizontalScrollbar.value\n ? `calc(100% + ${tableContext.scrollBarSize.value || 15}px)`\n : 'calc(100%)',\n zIndex: 'unset !important',\n overflowX: 'auto',\n overflowY: 'hidden',\n }) as any,\n )\n const centerStyle = computed<CSSProperties>(() => ({ height: `${viewportHeight.value}px` }))\n const leftStyle = computed<CSSProperties>(() => {\n const width = `${tableContext.leftWidth.value}px`\n return {\n width,\n minWidth: width,\n maxWidth: width,\n height: `${viewportHeight.value}px`,\n }\n })\n const rightStyle = computed<CSSProperties>(() => {\n const width = `${tableContext.rightWidth.value}px`\n return {\n width,\n minWidth: width,\n maxWidth: width,\n height: `${viewportHeight.value}px`,\n }\n })\n const summaryClass = computed(() => ({\n [`${props.prefixCls}-summary`]: true,\n [`${props.prefixCls}-position-absolute`]: !isEmpty.value,\n }))\n const fixedSummaryClass = computed(() => [\n summaryClass.value,\n `${props.prefixCls}-summary-fixed`,\n `${props.prefixCls}-summary-fixed-${props.summaryFixed}`,\n ])\n const summaryStyle = computed<CSSProperties>(() => {\n const styles = { height: `${summaryHeight.value}px` }\n return Object.assign(\n styles,\n props.summaryFixed\n ? showXScrollbar.value\n ? { borderTop: 'none' }\n : {}\n : {\n position: 'absolute',\n bottom: 0,\n width: `${props.bodyWidth}px`,\n borderTop: 'none',\n },\n ) as CSSProperties\n })\n const topSummaryStyle = computed<CSSProperties>(() => {\n if ('object' == typeof tableContext.props.sticky) {\n const { offsetHeader = 0, topSummary = false } = tableContext.props.sticky\n return topSummary\n ? ({\n ...summaryStyle.value,\n position: 'sticky',\n top: `${offsetHeader + tableContext.realHeaderHeight.value}px`,\n } as CSSProperties)\n : (summaryStyle.value as CSSProperties)\n }\n return summaryStyle.value as CSSProperties\n })\n const emptyStyle = computed<CSSProperties>(() => ({ width: `${props.bodyWidth}px` }))\n\n useResizeObserver(measureDomRef as never, (entries) => {\n const contentRect = entries[0]?.contentRect\n emit('update:bodyWidth', contentRect?.width || 0)\n emit('update:bodyHeight', contentRect?.height || 0)\n })\n return {\n bodyContainerStyle,\n measureDomStyle: computed<any>(() => ({\n width: '100%',\n height: '100%!important',\n position: 'absolute!important',\n fontSize: '100px!important',\n opacity: '0.1!important',\n textAlign: 'center!important',\n top: '0px!important',\n left: '0px!important',\n pointerEvents: 'none',\n display: 'block!important',\n color: '#000000!important',\n margin: '0px!important',\n padding: '0px!important',\n transform: 'unset!important',\n visibility: 'visible!important',\n zIndex: '999!important',\n })),\n isEmpty,\n emptyStyle,\n handleEmptyHeight: (e: CustomEvent) => {\n emptyHeight.value = e.detail.height\n },\n bodyClass,\n fixLeftClass,\n fixRightClass,\n centerClass,\n containerClass,\n summaryViewportClass,\n summaryClass,\n rightStyle,\n centerStyle,\n leftStyle,\n summaryViewportStyle,\n containerStyle,\n summaryStyle,\n viewportHeight,\n leftColumns,\n centerColumns,\n rightColumns,\n bodyInnerWidth,\n handleBodyInnerResize: (e: CustomEvent) => {\n bodyInnerWidth.value = e.detail.width\n },\n handleBodyScrollResize: (e: CustomEvent) => {\n emit('update:bodyScrollWidth', e.detail.width)\n },\n bodyRef,\n measureDomRef,\n bodyInnerRef,\n viewportRef,\n summaryViewportRef,\n handleResize: (e: CustomEvent) => {\n summaryHeight.value = e.detail.height\n },\n bodyStyle,\n handleBodyResize: (e: CustomEvent) => {\n emit('update:bodyWidth', e.detail.width)\n emit('update:bodyHeight', e.detail.height)\n },\n emptyImage: Empty.PRESENTED_IMAGE_SIMPLE,\n scrollLayerStyle,\n getRowClassName: (record: any, index: number) => {\n const rowClassName = tableContext.props.rowClassName\n return (\n typeof rowClassName == 'function' ? rowClassName(record, index) : rowClassName\n ) as string\n },\n showWatermark,\n leftPopupContainer,\n centerPopupContainer,\n rightPopupContainer,\n dragRowPlaceholderRef,\n leftShadowStyle,\n rightShadowStyle,\n fixedSummaryClass,\n scrollLayerRef,\n scrollbarStyle,\n topSummaryStyle,\n leftTarget,\n centerTarget,\n rightTarget,\n popupContent,\n popupContentPos,\n handleContextmenuPopupResize: () => {\n setContextmenuPopupPos()\n },\n handleDragStart: (e: MouseEvent) => {\n if (e.target instanceof HTMLImageElement) {\n e.preventDefault()\n return false\n }\n },\n handleKeydown: (e: KeyboardEvent) => {\n emit('keydown', e)\n },\n bodyViewportStyle,\n bodyViewportRef,\n bodyContainerRef,\n rowsHeightStyle,\n showYScrollbar,\n }\n },\n})\n</script>\n\n<template>\n <RenderSlot>\n <div\n v-if=\"summary && summaryFixed === 'top'\"\n key=\"summary\"\n :class=\"fixedSummaryClass\"\n :style=\"topSummaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div\n ref=\"summaryViewportRef\"\n :class=\"`${prefixCls}-summary-container`\"\n :style=\"{ height: 'calc(100% + 15px)' }\"\n >\n <div v-resize:height @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :class=\"`${prefixCls}-cell-shadow-left`\" :style=\"leftShadowStyle\"></div>\n <div :class=\"`${prefixCls}-cell-shadow-right`\" :style=\"rightShadowStyle\"></div>\n <div :class=\"`${prefixCls}-summary-scrollbar`\" :style=\"scrollbarStyle\"></div>\n </div>\n </div>\n </RenderSlot>\n <div\n key=\"body\"\n ref=\"bodyRef\"\n :class=\"bodyClass\"\n :style=\"bodyStyle\"\n @dragstart=\"handleDragStart\"\n @keydown=\"handleKeydown\"\n >\n <div\n :style=\"{\n width: '100%',\n overflow: 'hidden',\n position: 'relative',\n transform: 'translateZ(0)',\n }\"\n >\n <div\n ref=\"bodyViewportRef\"\n :class=\"`${prefixCls}-body-viewport-container`\"\n :style=\"bodyViewportStyle\"\n >\n <div :style=\"rowsHeightStyle\">\n <div\n ref=\"bodyContainerRef\"\n :class=\"`${prefixCls}-body-container`\"\n :style=\"bodyContainerStyle\"\n >\n <div ref=\"leftPopupContainer\" key=\"left\" :class=\"fixLeftClass\" :style=\"leftStyle\">\n <BodyRows\n v-if=\"leftColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"left\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div v-else :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div\n v-if=\"summary && !summaryFixed\"\n key=\"summary\"\n :class=\"summaryClass\"\n :style=\"summaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div ref=\"summaryViewportRef\" :class=\"`${prefixCls}-summary-container`\">\n <div v-resize:height @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :style=\"leftShadowStyle\" :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div :style=\"rightShadowStyle\" :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n </div>\n </div>\n\n <div ref=\"leftTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'left'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n <div key=\"center\" :class=\"centerClass\" :style=\"centerStyle\">\n <div ref=\"centerPopupContainer\" :class=\"containerClass\" :style=\"containerStyle\">\n <BodyRows\n v-if=\"centerColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"center\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div ref=\"centerTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'center'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n </div>\n <div key=\"right\" ref=\"rightPopupContainer\" :class=\"fixRightClass\" :style=\"rightStyle\">\n <BodyRows\n v-if=\"rightColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"right\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div v-else :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n <div ref=\"rightTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize=\"true\"\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'right'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n <span ref=\"dragRowPlaceholderRef\" :class=\"`${prefixCls}-drag-placeholder`\"></span>\n </div>\n </div>\n <div v-if=\"isEmpty\" key=\"empty\" :class=\"`${prefixCls}-empty-container`\">\n <div v-resize:height style=\"padding: 1px\" @resizeheight=\"handleEmptyHeight\">\n <RenderVNode :vnode=\"emptyText\"> <Empty :image=\"emptyImage\" /> </RenderVNode>\n </div>\n </div>\n </div>\n <div ref=\"measureDomRef\" :style=\"measureDomStyle\"></div>\n <div\n v-resize:width\n :class=\"`${prefixCls}-body-scroll-measure`\"\n :style=\"`min-width: ${bodyInnerWidth}px`\"\n @resizewidth=\"handleBodyScrollResize\"\n ></div>\n <div\n v-resize:width\n :class=\"`${prefixCls}-body-inner-measure`\"\n :style=\"`min-width: ${scrollX}px`\"\n @resizewidth=\"handleBodyInnerResize\"\n ></div>\n </div>\n <YScroll :style=\"`height: ${bodyHeight}px`\" />\n </div>\n <RenderSlot>\n <div\n v-if=\"summary && summaryFixed === 'bottom'\"\n key=\"summary\"\n :class=\"fixedSummaryClass\"\n :style=\"summaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div\n ref=\"summaryViewportRef\"\n :class=\"`${prefixCls}-summary-container`\"\n :style=\"{ height: 'calc(100% + 15px)' }\"\n >\n <div v-resize:height=\"true\" @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :style=\"leftShadowStyle\" :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div :style=\"rightShadowStyle\" :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n <div :class=\"`${prefixCls}-summary-scrollbar`\" :style=\"scrollbarStyle\"></div>\n </div>\n </div>\n </RenderSlot>\n <HorizontalScroll />\n</template>\n"],"names":["_createVNode","_withCtx","_openBlock","_createElementBlock","_normalizeClass","_normalizeStyle","_createElementVNode","_withDirectives","_createBlock","_resolveDynamicComponent","_createCommentVNode"],"mappings":"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"}
@@ -240,8 +240,7 @@ var _sfc_main = vue.defineComponent({
240
240
  };
241
241
  });
242
242
  const bodyViewportStyle = vue.computed(() => ({
243
- width: `calc(100% + ${tableContext.showVerticalScrollbar.value ? tableContext.scrollBarSize.value || 15 : 0}px)`,
244
- // width: `calc(100% + 0px)`,
243
+ width: `calc(100% + ${tableContext.showVerticalScrollbar.value ? tableContext.scrollBarSize.value : 0}px)`,
245
244
  overflowX: "hidden",
246
245
  overflowY: "auto",
247
246
  height: "100%"
@@ -1 +1 @@
1
- {"version":3,"file":"Body.vue2.js","sources":["../../../../../../../../packages/components/table/src/components/Body/Body.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 22:03:08\n * @LastEditors: shen\n * @LastEditTime: 2025-09-19 16:30:31\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, onMounted, shallowRef, onBeforeUnmount } from 'vue'\nimport { Empty } from 'ant-design-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useProvideBody } from '../context/BodyContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { useVScrollSyncInject } from '../../hooks/useVScrollSync'\nimport { useHScrollSyncInject } from '../../hooks/useHScrollSync'\nimport { RenderVNode, RenderSlot } from '../../utils/renderVNode'\nimport { resize } from '@pro-design-vue/directives'\nimport { useResizeObserver } from '@vueuse/core'\nimport useTooltip from '../../hooks/useTooltip'\nimport onClickOutside from '../../utils/onClickOutside'\nimport BodyRows from './BodyRows.vue'\nimport XScroll from '../Scrollbar/XScroll'\nimport YScroll from '../Scrollbar/YScroll'\n\nimport type { PropType, CSSProperties } from 'vue'\nimport type { SummaryFixed } from '../interface'\nimport type { CustomSlotsType } from '../../utils/type'\n\nexport default defineComponent({\n name: 'TableBody',\n components: {\n BodyRows,\n Empty,\n RenderVNode,\n RenderSlot,\n HorizontalScroll: XScroll,\n YScroll,\n },\n directives: { resize },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n bodyScrollWidth: { type: Number as PropType<number> },\n bodyWidth: { type: Number as PropType<number> },\n bodyHeight: { type: Number as PropType<number> },\n height: { type: [Number, String] as PropType<number | string> },\n scrollX: [Number, String] as PropType<number | string>,\n summaryFixed: [Boolean, String] as PropType<boolean | SummaryFixed>,\n emptyText: Function,\n summary: Function,\n },\n emits: [\n 'scroll',\n 'scrollLeft',\n 'scrollTop',\n 'update:bodyWidth',\n 'update:bodyHeight',\n 'update:bodyScrollWidth',\n 'keydown',\n ],\n slots: {} as CustomSlotsType<{\n emptyText: any\n default: any\n }>,\n setup(props, { emit, attrs, expose }) {\n const tableContext = useInjectTable()\n const tableSlotsContext = useInjectSlots()\n\n const dragRowPlaceholderRef = ref<HTMLDivElement>()\n const bodyRef = ref<HTMLDivElement>()\n const measureDomRef = ref<HTMLDivElement>()\n const bodyInnerRef = ref<HTMLDivElement>()\n const scrollLayerRef = ref<HTMLDivElement>()\n const viewportRef = ref<HTMLDivElement>()\n const summaryViewportRef = ref<HTMLDivElement>()\n\n const bodyViewportRef = ref<HTMLDivElement>()\n const bodyContainerRef = ref<HTMLDivElement>()\n\n const summaryHeight = ref(0)\n\n const leftColumns = computed(() => tableContext.leftColumns.value)\n const centerColumns = computed(() => tableContext.centerColumns.value)\n const rightColumns = computed(() => tableContext.rightColumns.value)\n const showWatermark = computed(() => tableContext.status.value.code !== 4)\n\n const leftPopupContainer = ref<HTMLDivElement>()\n const centerPopupContainer = ref<HTMLDivElement>()\n const rightPopupContainer = ref<HTMLDivElement>()\n\n const leftTarget = ref<HTMLDivElement>()\n const centerTarget = ref<HTMLDivElement>()\n const rightTarget = ref<HTMLDivElement>()\n\n const { hoverColumnKey } = useInjectHover()\n const { open } = useTooltip({ hoverColumnKey })\n\n const popupContent = shallowRef<any>()\n const popupContentPos = ref<string | null>()\n const contextmenuPos = ref({ clientX: 0, clientY: 0 })\n\n const setTargetStyle = (target: HTMLDivElement) => {\n target.style.display = 'none'\n target.style.opacity = '0'\n target.style.left = '0px'\n target.style.top = '0px'\n target.style.height = '1px'\n target.style.maxWidth = props.bodyWidth! - 4 + 'px'\n }\n\n const setContextmenuPopupPos = () => {\n const { clientX, clientY } = contextmenuPos.value\n const popupPos = popupContentPos.value\n const target =\n popupPos === 'left'\n ? leftTarget.value\n : popupPos === 'right'\n ? rightTarget.value\n : centerTarget.value\n if (!popupPos || !target) {\n return\n }\n target.style.display = 'block'\n const { left, top } = target.parentElement!.getBoundingClientRect()\n const firstChild = target.children[0]!\n const minHeight = Math.min(\n target.scrollHeight,\n firstChild.scrollHeight!,\n viewportHeight.value - 4,\n )\n target.style.opacity = '1'\n target.style.height = `${minHeight}px`\n let leftPos = clientX - left\n let rightPos = clientY - top\n if (rightPos + minHeight > viewportHeight.value) {\n rightPos = viewportHeight.value - minHeight - 2\n }\n\n if (popupContentPos.value === 'center') {\n if (leftPos + target.offsetWidth > tableContext.centerWidth.value) {\n leftPos = tableContext.centerWidth.value - target.offsetWidth - 2\n }\n } else if (popupContentPos.value === 'right') {\n if (leftPos + target.offsetWidth > tableContext.rightWidth.value) {\n leftPos = tableContext.rightWidth.value - target.offsetWidth - 2\n }\n } else {\n if (leftPos + target.offsetWidth > props.bodyWidth!) {\n leftPos = props.bodyWidth! - target.offsetWidth - 2\n }\n }\n target.style.left = `${leftPos}px`\n target.style.top = `${rightPos}px`\n }\n\n const showYScrollbar = computed(() => tableContext.showVerticalScrollbar.value)\n const showXScrollbar = computed(() => tableContext.showHorizontalScrollbar.value)\n\n watch(\n [tableContext.centerWidth, tableContext.rightWidth, () => props.bodyWidth],\n () => {\n setContextmenuPopupPos()\n },\n { flush: 'post' },\n )\n\n let contextmenuTimer: any\n\n onClickOutside(leftTarget, () => {\n if (popupContentPos.value === 'left') {\n popupContentPos.value = null\n setTargetStyle(leftTarget.value!)\n }\n })\n onClickOutside(centerTarget, () => {\n if (popupContentPos.value === 'center') {\n popupContentPos.value = null\n setTargetStyle(centerTarget.value!)\n }\n })\n onClickOutside(rightTarget, () => {\n if (popupContentPos.value === 'right') {\n popupContentPos.value = null\n setTargetStyle(rightTarget.value!)\n }\n })\n\n useProvideBody({\n onBodyCellContextmenu: (event, args, type) => {\n if (tableContext.props.hasContextmenuPopup) {\n const { clientX, clientY } = event\n setTargetStyle(leftTarget.value!)\n setTargetStyle(centerTarget.value!)\n setTargetStyle(rightTarget.value!)\n popupContentPos.value = type\n popupContent.value = () =>\n tableSlotsContext.contextmenuPopup?.({\n event,\n ...args,\n hidePopup: () => {\n ;((popupContentPos.value = null),\n setTargetStyle(leftTarget.value!),\n setTargetStyle(centerTarget.value!),\n setTargetStyle(rightTarget.value!))\n },\n })\n contextmenuPos.value = { clientX, clientY }\n clearTimeout(contextmenuTimer)\n contextmenuTimer = setTimeout(() => {\n setContextmenuPopupPos()\n })\n event.preventDefault()\n }\n },\n bodyRef,\n tooltipOpen: open,\n leftPopupContainer,\n centerPopupContainer,\n rightPopupContainer,\n dragRowPlaceholderRef,\n })\n\n expose({ bodyRef })\n\n onBeforeUnmount(() => {\n clearTimeout(contextmenuTimer)\n clearTimeout(undefined)\n })\n const { addHScrollDom, removeHScrollDom } = useHScrollSyncInject()\n const { addVScrollDom, removeVScrollDom } = useVScrollSyncInject()\n\n onMounted(() => {\n watch(\n summaryViewportRef,\n (newValue, oldValue) => {\n removeHScrollDom(oldValue!)\n addHScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n watch(\n bodyContainerRef,\n (newValue, oldValue) => {\n removeHScrollDom(oldValue!)\n addHScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n watch(\n bodyViewportRef,\n (newValue, oldValue) => {\n removeVScrollDom(oldValue!)\n addVScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n })\n onBeforeUnmount(() => {\n removeHScrollDom(summaryViewportRef.value!)\n removeHScrollDom(bodyContainerRef.value!)\n removeVScrollDom(bodyViewportRef.value!)\n })\n\n const bodyInnerWidth = ref(0)\n const emptyHeight = ref(0)\n\n const scrollbarStyle = computed<CSSProperties>(() => {\n const barSize = `${tableContext.showVerticalScrollbar.value ? tableContext.scrollBarSize.value : 0}px`\n return {\n display: barSize === '0px' ? 'none' : 'block',\n width: barSize,\n minWidth: barSize,\n maxWidth: barSize,\n position: 'sticky',\n right: `-${barSize}`,\n }\n })\n\n const bodyViewportStyle = computed<CSSProperties>(() => ({\n width: `calc(100% + ${tableContext.showVerticalScrollbar.value ? tableContext.scrollBarSize.value || 15 : 0}px)`,\n // width: `calc(100% + 0px)`,\n overflowX: 'hidden',\n overflowY: 'auto',\n height: '100%',\n }))\n const isEmpty = computed(() => 0 === tableContext.pageData.value.length)\n const leftShadowStyle = computed<CSSProperties>(() =>\n props.bodyWidth! - tableContext.rightWidth.value > tableContext.leftWidth.value\n ? {\n position: 'absolute',\n left: `${tableContext.leftWidth.value}px`,\n height: '100%',\n }\n : { display: 'none' },\n )\n const rightShadowStyle = computed<CSSProperties>(() =>\n tableContext.rightWidth.value\n ? {\n position: 'absolute',\n left: props.bodyWidth! - tableContext.rightWidth.value + 'px',\n height: '100%',\n }\n : { display: 'none' },\n )\n const bodyClass = computed(() => ({\n [`${props.prefixCls}-body`]: true,\n [`${props.prefixCls}-unselectable`]: false !== tableContext.props.rangeSelection,\n }))\n const fixLeftClass = computed(() => ({\n [`${props.prefixCls}-fix-left`]: true,\n [`${props.prefixCls}-no-columns`]: !leftColumns.value.length,\n }))\n const fixRightClass = computed(() => ({\n [`${props.prefixCls}-fix-right`]: true,\n [`${props.prefixCls}-no-columns`]: !rightColumns.value.length,\n }))\n const centerClass = computed(() => ({\n [`${props.prefixCls}-center`]: true,\n [`${props.prefixCls}-no-columns`]: !centerColumns.value.length,\n }))\n const summaryViewportClass = computed(() => ({\n [`${props.prefixCls}-center-viewport`]: true,\n }))\n const containerClass = computed(() => ({\n [`${props.prefixCls}-center-container`]: true,\n }))\n const viewportHeight = computed(\n () =>\n tableContext.viewportHeight.value +\n (props.summaryFixed ? emptyHeight.value : summaryHeight.value + emptyHeight.value),\n )\n const containerStyle = computed<CSSProperties>(() => ({\n width: `${tableContext.centerWidth.value}px`,\n height: `${viewportHeight.value}px`,\n }))\n const summaryViewportStyle = computed<CSSProperties>(() => ({\n height: `calc(100% + ${tableContext.scrollBarSize.value || 15}px)`,\n }))\n const scrollLayerStyle = computed<CSSProperties>(() => ({\n height: `${viewportHeight.value}px`,\n width: `${tableContext.bodyMaxWidth.value}px`,\n minWidth: '100%',\n }))\n const rowsHeightStyle = computed<CSSProperties>(() => ({\n height: `${viewportHeight.value}px`,\n overflow: 'hidden',\n minHeight: '100%',\n transform: 'translateZ(0)',\n }))\n const bodyStyle = computed<CSSProperties>(() => ({\n ...(attrs.style || {}),\n maxHeight: 'number' == typeof props.height ? `${props.height}px` : props.height,\n overflowY: 'hidden',\n }))\n const bodyContainerStyle = computed<CSSProperties>(\n () =>\n ({\n height: tableContext.showHorizontalScrollbar.value\n ? `calc(100% + ${tableContext.scrollBarSize.value || 15}px)`\n : 'calc(100%)',\n zIndex: 'unset !important',\n overflowX: 'auto',\n overflowY: 'hidden',\n }) as any,\n )\n const centerStyle = computed<CSSProperties>(() => ({ height: `${viewportHeight.value}px` }))\n const leftStyle = computed<CSSProperties>(() => {\n const width = `${tableContext.leftWidth.value}px`\n return {\n width,\n minWidth: width,\n maxWidth: width,\n height: `${viewportHeight.value}px`,\n }\n })\n const rightStyle = computed<CSSProperties>(() => {\n const width = `${tableContext.rightWidth.value}px`\n return {\n width,\n minWidth: width,\n maxWidth: width,\n height: `${viewportHeight.value}px`,\n }\n })\n const summaryClass = computed(() => ({\n [`${props.prefixCls}-summary`]: true,\n [`${props.prefixCls}-position-absolute`]: !isEmpty.value,\n }))\n const fixedSummaryClass = computed(() => [\n summaryClass.value,\n `${props.prefixCls}-summary-fixed`,\n `${props.prefixCls}-summary-fixed-${props.summaryFixed}`,\n ])\n const summaryStyle = computed<CSSProperties>(() => {\n const styles = { height: `${summaryHeight.value}px` }\n return Object.assign(\n styles,\n props.summaryFixed\n ? showXScrollbar.value\n ? { borderTop: 'none' }\n : {}\n : {\n position: 'absolute',\n bottom: 0,\n width: `${props.bodyWidth}px`,\n borderTop: 'none',\n },\n ) as CSSProperties\n })\n const topSummaryStyle = computed<CSSProperties>(() => {\n if ('object' == typeof tableContext.props.sticky) {\n const { offsetHeader = 0, topSummary = false } = tableContext.props.sticky\n return topSummary\n ? ({\n ...summaryStyle.value,\n position: 'sticky',\n top: `${offsetHeader + tableContext.realHeaderHeight.value}px`,\n } as CSSProperties)\n : (summaryStyle.value as CSSProperties)\n }\n return summaryStyle.value as CSSProperties\n })\n const emptyStyle = computed<CSSProperties>(() => ({ width: `${props.bodyWidth}px` }))\n\n useResizeObserver(measureDomRef as never, (entries) => {\n const contentRect = entries[0]?.contentRect\n emit('update:bodyWidth', contentRect?.width || 0)\n emit('update:bodyHeight', contentRect?.height || 0)\n })\n return {\n bodyContainerStyle,\n measureDomStyle: computed<any>(() => ({\n width: '100%',\n height: '100%!important',\n position: 'absolute!important',\n fontSize: '100px!important',\n opacity: '0.1!important',\n textAlign: 'center!important',\n top: '0px!important',\n left: '0px!important',\n pointerEvents: 'none',\n display: 'block!important',\n color: '#000000!important',\n margin: '0px!important',\n padding: '0px!important',\n transform: 'unset!important',\n visibility: 'visible!important',\n zIndex: '999!important',\n })),\n isEmpty,\n emptyStyle,\n handleEmptyHeight: (e: CustomEvent) => {\n emptyHeight.value = e.detail.height\n },\n bodyClass,\n fixLeftClass,\n fixRightClass,\n centerClass,\n containerClass,\n summaryViewportClass,\n summaryClass,\n rightStyle,\n centerStyle,\n leftStyle,\n summaryViewportStyle,\n containerStyle,\n summaryStyle,\n viewportHeight,\n leftColumns,\n centerColumns,\n rightColumns,\n bodyInnerWidth,\n handleBodyInnerResize: (e: CustomEvent) => {\n bodyInnerWidth.value = e.detail.width\n },\n handleBodyScrollResize: (e: CustomEvent) => {\n emit('update:bodyScrollWidth', e.detail.width)\n },\n bodyRef,\n measureDomRef,\n bodyInnerRef,\n viewportRef,\n summaryViewportRef,\n handleResize: (e: CustomEvent) => {\n summaryHeight.value = e.detail.height\n },\n bodyStyle,\n handleBodyResize: (e: CustomEvent) => {\n emit('update:bodyWidth', e.detail.width)\n emit('update:bodyHeight', e.detail.height)\n },\n emptyImage: Empty.PRESENTED_IMAGE_SIMPLE,\n scrollLayerStyle,\n getRowClassName: (record: any, index: number) => {\n const rowClassName = tableContext.props.rowClassName\n return (\n typeof rowClassName == 'function' ? rowClassName(record, index) : rowClassName\n ) as string\n },\n showWatermark,\n leftPopupContainer,\n centerPopupContainer,\n rightPopupContainer,\n dragRowPlaceholderRef,\n leftShadowStyle,\n rightShadowStyle,\n fixedSummaryClass,\n scrollLayerRef,\n scrollbarStyle,\n topSummaryStyle,\n leftTarget,\n centerTarget,\n rightTarget,\n popupContent,\n popupContentPos,\n handleContextmenuPopupResize: () => {\n setContextmenuPopupPos()\n },\n handleDragStart: (e: MouseEvent) => {\n if (e.target instanceof HTMLImageElement) {\n e.preventDefault()\n return false\n }\n },\n handleKeydown: (e: KeyboardEvent) => {\n emit('keydown', e)\n },\n bodyViewportStyle,\n bodyViewportRef,\n bodyContainerRef,\n rowsHeightStyle,\n showYScrollbar,\n }\n },\n})\n</script>\n\n<template>\n <RenderSlot>\n <div\n v-if=\"summary && summaryFixed === 'top'\"\n key=\"summary\"\n :class=\"fixedSummaryClass\"\n :style=\"topSummaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div\n ref=\"summaryViewportRef\"\n :class=\"`${prefixCls}-summary-container`\"\n :style=\"{ height: 'calc(100% + 15px)' }\"\n >\n <div v-resize:height @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :class=\"`${prefixCls}-cell-shadow-left`\" :style=\"leftShadowStyle\"></div>\n <div :class=\"`${prefixCls}-cell-shadow-right`\" :style=\"rightShadowStyle\"></div>\n <div :class=\"`${prefixCls}-summary-scrollbar`\" :style=\"scrollbarStyle\"></div>\n </div>\n </div>\n </RenderSlot>\n <div\n key=\"body\"\n ref=\"bodyRef\"\n :class=\"bodyClass\"\n :style=\"bodyStyle\"\n @dragstart=\"handleDragStart\"\n @keydown=\"handleKeydown\"\n >\n <div\n :style=\"{\n width: '100%',\n overflow: 'hidden',\n position: 'relative',\n transform: 'translateZ(0)',\n }\"\n >\n <div\n ref=\"bodyViewportRef\"\n :class=\"`${prefixCls}-body-viewport-container`\"\n :style=\"bodyViewportStyle\"\n >\n <div :style=\"rowsHeightStyle\">\n <div\n ref=\"bodyContainerRef\"\n :class=\"`${prefixCls}-body-container`\"\n :style=\"bodyContainerStyle\"\n >\n <div ref=\"leftPopupContainer\" key=\"left\" :class=\"fixLeftClass\" :style=\"leftStyle\">\n <BodyRows\n v-if=\"leftColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"left\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div v-else :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div\n v-if=\"summary && !summaryFixed\"\n key=\"summary\"\n :class=\"summaryClass\"\n :style=\"summaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div ref=\"summaryViewportRef\" :class=\"`${prefixCls}-summary-container`\">\n <div v-resize:height @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :style=\"leftShadowStyle\" :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div :style=\"rightShadowStyle\" :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n </div>\n </div>\n\n <div ref=\"leftTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'left'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n <div key=\"center\" :class=\"centerClass\" :style=\"centerStyle\">\n <div ref=\"centerPopupContainer\" :class=\"containerClass\" :style=\"containerStyle\">\n <BodyRows\n v-if=\"centerColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"center\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div ref=\"centerTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'center'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n </div>\n <div key=\"right\" ref=\"rightPopupContainer\" :class=\"fixRightClass\" :style=\"rightStyle\">\n <BodyRows\n v-if=\"rightColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"right\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div v-else :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n <div ref=\"rightTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize=\"true\"\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'right'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n <span ref=\"dragRowPlaceholderRef\" :class=\"`${prefixCls}-drag-placeholder`\"></span>\n </div>\n </div>\n <div v-if=\"isEmpty\" key=\"empty\" :class=\"`${prefixCls}-empty-container`\">\n <div v-resize:height style=\"padding: 1px\" @resizeheight=\"handleEmptyHeight\">\n <RenderVNode :vnode=\"emptyText\"> <Empty :image=\"emptyImage\" /> </RenderVNode>\n </div>\n </div>\n </div>\n <div ref=\"measureDomRef\" :style=\"measureDomStyle\"></div>\n <div\n v-resize:width\n :class=\"`${prefixCls}-body-scroll-measure`\"\n :style=\"`min-width: ${bodyInnerWidth}px`\"\n @resizewidth=\"handleBodyScrollResize\"\n ></div>\n <div\n v-resize:width\n :class=\"`${prefixCls}-body-inner-measure`\"\n :style=\"`min-width: ${scrollX}px`\"\n @resizewidth=\"handleBodyInnerResize\"\n ></div>\n </div>\n <YScroll :style=\"`height: ${bodyHeight}px`\" />\n </div>\n <RenderSlot>\n <div\n v-if=\"summary && summaryFixed === 'bottom'\"\n key=\"summary\"\n :class=\"fixedSummaryClass\"\n :style=\"summaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div\n ref=\"summaryViewportRef\"\n :class=\"`${prefixCls}-summary-container`\"\n :style=\"{ height: 'calc(100% + 15px)' }\"\n >\n <div v-resize:height=\"true\" @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :style=\"leftShadowStyle\" :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div :style=\"rightShadowStyle\" :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n <div :class=\"`${prefixCls}-summary-scrollbar`\" :style=\"scrollbarStyle\"></div>\n </div>\n </div>\n </RenderSlot>\n <HorizontalScroll />\n</template>\n"],"names":["defineComponent","BodyRows","Empty","RenderVNode","RenderSlot","XScroll","YScroll","resize","useInjectTable","useInjectSlots","ref","computed","useInjectHover","useTooltip","shallowRef","watch","onClickOutside","useProvideBody","onBeforeUnmount","useHScrollSyncInject","useVScrollSyncInject","onMounted","useResizeObserver"],"mappings":"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"}
1
+ {"version":3,"file":"Body.vue2.js","sources":["../../../../../../../../packages/components/table/src/components/Body/Body.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-06 22:03:08\n * @LastEditors: shen\n * @LastEditTime: 2025-09-28 14:23:27\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, computed, ref, watch, onMounted, shallowRef, onBeforeUnmount } from 'vue'\nimport { Empty } from 'ant-design-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useProvideBody } from '../context/BodyContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { useVScrollSyncInject } from '../../hooks/useVScrollSync'\nimport { useHScrollSyncInject } from '../../hooks/useHScrollSync'\nimport { RenderVNode, RenderSlot } from '../../utils/renderVNode'\nimport { resize } from '@pro-design-vue/directives'\nimport { useResizeObserver } from '@vueuse/core'\nimport useTooltip from '../../hooks/useTooltip'\nimport onClickOutside from '../../utils/onClickOutside'\nimport BodyRows from './BodyRows.vue'\nimport XScroll from '../Scrollbar/XScroll'\nimport YScroll from '../Scrollbar/YScroll'\n\nimport type { PropType, CSSProperties } from 'vue'\nimport type { SummaryFixed } from '../interface'\nimport type { CustomSlotsType } from '../../utils/type'\n\nexport default defineComponent({\n name: 'TableBody',\n components: {\n BodyRows,\n Empty,\n RenderVNode,\n RenderSlot,\n HorizontalScroll: XScroll,\n YScroll,\n },\n directives: { resize },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n bodyScrollWidth: { type: Number as PropType<number> },\n bodyWidth: { type: Number as PropType<number> },\n bodyHeight: { type: Number as PropType<number> },\n height: { type: [Number, String] as PropType<number | string> },\n scrollX: [Number, String] as PropType<number | string>,\n summaryFixed: [Boolean, String] as PropType<boolean | SummaryFixed>,\n emptyText: Function,\n summary: Function,\n },\n emits: [\n 'scroll',\n 'scrollLeft',\n 'scrollTop',\n 'update:bodyWidth',\n 'update:bodyHeight',\n 'update:bodyScrollWidth',\n 'keydown',\n ],\n slots: {} as CustomSlotsType<{\n emptyText: any\n default: any\n }>,\n setup(props, { emit, attrs, expose }) {\n const tableContext = useInjectTable()\n const tableSlotsContext = useInjectSlots()\n\n const dragRowPlaceholderRef = ref<HTMLDivElement>()\n const bodyRef = ref<HTMLDivElement>()\n const measureDomRef = ref<HTMLDivElement>()\n const bodyInnerRef = ref<HTMLDivElement>()\n const scrollLayerRef = ref<HTMLDivElement>()\n const viewportRef = ref<HTMLDivElement>()\n const summaryViewportRef = ref<HTMLDivElement>()\n\n const bodyViewportRef = ref<HTMLDivElement>()\n const bodyContainerRef = ref<HTMLDivElement>()\n\n const summaryHeight = ref(0)\n\n const leftColumns = computed(() => tableContext.leftColumns.value)\n const centerColumns = computed(() => tableContext.centerColumns.value)\n const rightColumns = computed(() => tableContext.rightColumns.value)\n const showWatermark = computed(() => tableContext.status.value.code !== 4)\n\n const leftPopupContainer = ref<HTMLDivElement>()\n const centerPopupContainer = ref<HTMLDivElement>()\n const rightPopupContainer = ref<HTMLDivElement>()\n\n const leftTarget = ref<HTMLDivElement>()\n const centerTarget = ref<HTMLDivElement>()\n const rightTarget = ref<HTMLDivElement>()\n\n const { hoverColumnKey } = useInjectHover()\n const { open } = useTooltip({ hoverColumnKey })\n\n const popupContent = shallowRef<any>()\n const popupContentPos = ref<string | null>()\n const contextmenuPos = ref({ clientX: 0, clientY: 0 })\n\n const setTargetStyle = (target: HTMLDivElement) => {\n target.style.display = 'none'\n target.style.opacity = '0'\n target.style.left = '0px'\n target.style.top = '0px'\n target.style.height = '1px'\n target.style.maxWidth = props.bodyWidth! - 4 + 'px'\n }\n\n const setContextmenuPopupPos = () => {\n const { clientX, clientY } = contextmenuPos.value\n const popupPos = popupContentPos.value\n const target =\n popupPos === 'left'\n ? leftTarget.value\n : popupPos === 'right'\n ? rightTarget.value\n : centerTarget.value\n if (!popupPos || !target) {\n return\n }\n target.style.display = 'block'\n const { left, top } = target.parentElement!.getBoundingClientRect()\n const firstChild = target.children[0]!\n const minHeight = Math.min(\n target.scrollHeight,\n firstChild.scrollHeight!,\n viewportHeight.value - 4,\n )\n target.style.opacity = '1'\n target.style.height = `${minHeight}px`\n let leftPos = clientX - left\n let rightPos = clientY - top\n if (rightPos + minHeight > viewportHeight.value) {\n rightPos = viewportHeight.value - minHeight - 2\n }\n\n if (popupContentPos.value === 'center') {\n if (leftPos + target.offsetWidth > tableContext.centerWidth.value) {\n leftPos = tableContext.centerWidth.value - target.offsetWidth - 2\n }\n } else if (popupContentPos.value === 'right') {\n if (leftPos + target.offsetWidth > tableContext.rightWidth.value) {\n leftPos = tableContext.rightWidth.value - target.offsetWidth - 2\n }\n } else {\n if (leftPos + target.offsetWidth > props.bodyWidth!) {\n leftPos = props.bodyWidth! - target.offsetWidth - 2\n }\n }\n target.style.left = `${leftPos}px`\n target.style.top = `${rightPos}px`\n }\n\n const showYScrollbar = computed(() => tableContext.showVerticalScrollbar.value)\n const showXScrollbar = computed(() => tableContext.showHorizontalScrollbar.value)\n\n watch(\n [tableContext.centerWidth, tableContext.rightWidth, () => props.bodyWidth],\n () => {\n setContextmenuPopupPos()\n },\n { flush: 'post' },\n )\n\n let contextmenuTimer: any\n\n onClickOutside(leftTarget, () => {\n if (popupContentPos.value === 'left') {\n popupContentPos.value = null\n setTargetStyle(leftTarget.value!)\n }\n })\n onClickOutside(centerTarget, () => {\n if (popupContentPos.value === 'center') {\n popupContentPos.value = null\n setTargetStyle(centerTarget.value!)\n }\n })\n onClickOutside(rightTarget, () => {\n if (popupContentPos.value === 'right') {\n popupContentPos.value = null\n setTargetStyle(rightTarget.value!)\n }\n })\n\n useProvideBody({\n onBodyCellContextmenu: (event, args, type) => {\n if (tableContext.props.hasContextmenuPopup) {\n const { clientX, clientY } = event\n setTargetStyle(leftTarget.value!)\n setTargetStyle(centerTarget.value!)\n setTargetStyle(rightTarget.value!)\n popupContentPos.value = type\n popupContent.value = () =>\n tableSlotsContext.contextmenuPopup?.({\n event,\n ...args,\n hidePopup: () => {\n ;((popupContentPos.value = null),\n setTargetStyle(leftTarget.value!),\n setTargetStyle(centerTarget.value!),\n setTargetStyle(rightTarget.value!))\n },\n })\n contextmenuPos.value = { clientX, clientY }\n clearTimeout(contextmenuTimer)\n contextmenuTimer = setTimeout(() => {\n setContextmenuPopupPos()\n })\n event.preventDefault()\n }\n },\n bodyRef,\n tooltipOpen: open,\n leftPopupContainer,\n centerPopupContainer,\n rightPopupContainer,\n dragRowPlaceholderRef,\n })\n\n expose({ bodyRef })\n\n onBeforeUnmount(() => {\n clearTimeout(contextmenuTimer)\n clearTimeout(undefined)\n })\n const { addHScrollDom, removeHScrollDom } = useHScrollSyncInject()\n const { addVScrollDom, removeVScrollDom } = useVScrollSyncInject()\n\n onMounted(() => {\n watch(\n summaryViewportRef,\n (newValue, oldValue) => {\n removeHScrollDom(oldValue!)\n addHScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n watch(\n bodyContainerRef,\n (newValue, oldValue) => {\n removeHScrollDom(oldValue!)\n addHScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n watch(\n bodyViewportRef,\n (newValue, oldValue) => {\n removeVScrollDom(oldValue!)\n addVScrollDom(newValue!)\n },\n { flush: 'post', immediate: true },\n )\n })\n onBeforeUnmount(() => {\n removeHScrollDom(summaryViewportRef.value!)\n removeHScrollDom(bodyContainerRef.value!)\n removeVScrollDom(bodyViewportRef.value!)\n })\n\n const bodyInnerWidth = ref(0)\n const emptyHeight = ref(0)\n\n const scrollbarStyle = computed<CSSProperties>(() => {\n const barSize = `${tableContext.showVerticalScrollbar.value ? tableContext.scrollBarSize.value : 0}px`\n return {\n display: barSize === '0px' ? 'none' : 'block',\n width: barSize,\n minWidth: barSize,\n maxWidth: barSize,\n position: 'sticky',\n right: `-${barSize}`,\n }\n })\n\n const bodyViewportStyle = computed<CSSProperties>(() => ({\n width: `calc(100% + ${tableContext.showVerticalScrollbar.value ? tableContext.scrollBarSize.value : 0}px)`,\n overflowX: 'hidden',\n overflowY: 'auto',\n height: '100%',\n }))\n const isEmpty = computed(() => 0 === tableContext.pageData.value.length)\n const leftShadowStyle = computed<CSSProperties>(() =>\n props.bodyWidth! - tableContext.rightWidth.value > tableContext.leftWidth.value\n ? {\n position: 'absolute',\n left: `${tableContext.leftWidth.value}px`,\n height: '100%',\n }\n : { display: 'none' },\n )\n const rightShadowStyle = computed<CSSProperties>(() =>\n tableContext.rightWidth.value\n ? {\n position: 'absolute',\n left: props.bodyWidth! - tableContext.rightWidth.value + 'px',\n height: '100%',\n }\n : { display: 'none' },\n )\n const bodyClass = computed(() => ({\n [`${props.prefixCls}-body`]: true,\n [`${props.prefixCls}-unselectable`]: false !== tableContext.props.rangeSelection,\n }))\n const fixLeftClass = computed(() => ({\n [`${props.prefixCls}-fix-left`]: true,\n [`${props.prefixCls}-no-columns`]: !leftColumns.value.length,\n }))\n const fixRightClass = computed(() => ({\n [`${props.prefixCls}-fix-right`]: true,\n [`${props.prefixCls}-no-columns`]: !rightColumns.value.length,\n }))\n const centerClass = computed(() => ({\n [`${props.prefixCls}-center`]: true,\n [`${props.prefixCls}-no-columns`]: !centerColumns.value.length,\n }))\n const summaryViewportClass = computed(() => ({\n [`${props.prefixCls}-center-viewport`]: true,\n }))\n const containerClass = computed(() => ({\n [`${props.prefixCls}-center-container`]: true,\n }))\n const viewportHeight = computed(\n () =>\n tableContext.viewportHeight.value +\n (props.summaryFixed ? emptyHeight.value : summaryHeight.value + emptyHeight.value),\n )\n const containerStyle = computed<CSSProperties>(() => ({\n width: `${tableContext.centerWidth.value}px`,\n height: `${viewportHeight.value}px`,\n }))\n const summaryViewportStyle = computed<CSSProperties>(() => ({\n height: `calc(100% + ${tableContext.scrollBarSize.value || 15}px)`,\n }))\n const scrollLayerStyle = computed<CSSProperties>(() => ({\n height: `${viewportHeight.value}px`,\n width: `${tableContext.bodyMaxWidth.value}px`,\n minWidth: '100%',\n }))\n const rowsHeightStyle = computed<CSSProperties>(() => ({\n height: `${viewportHeight.value}px`,\n overflow: 'hidden',\n minHeight: '100%',\n transform: 'translateZ(0)',\n }))\n const bodyStyle = computed<CSSProperties>(() => ({\n ...(attrs.style || {}),\n maxHeight: 'number' == typeof props.height ? `${props.height}px` : props.height,\n overflowY: 'hidden',\n }))\n const bodyContainerStyle = computed<CSSProperties>(\n () =>\n ({\n height: tableContext.showHorizontalScrollbar.value\n ? `calc(100% + ${tableContext.scrollBarSize.value || 15}px)`\n : 'calc(100%)',\n zIndex: 'unset !important',\n overflowX: 'auto',\n overflowY: 'hidden',\n }) as any,\n )\n const centerStyle = computed<CSSProperties>(() => ({ height: `${viewportHeight.value}px` }))\n const leftStyle = computed<CSSProperties>(() => {\n const width = `${tableContext.leftWidth.value}px`\n return {\n width,\n minWidth: width,\n maxWidth: width,\n height: `${viewportHeight.value}px`,\n }\n })\n const rightStyle = computed<CSSProperties>(() => {\n const width = `${tableContext.rightWidth.value}px`\n return {\n width,\n minWidth: width,\n maxWidth: width,\n height: `${viewportHeight.value}px`,\n }\n })\n const summaryClass = computed(() => ({\n [`${props.prefixCls}-summary`]: true,\n [`${props.prefixCls}-position-absolute`]: !isEmpty.value,\n }))\n const fixedSummaryClass = computed(() => [\n summaryClass.value,\n `${props.prefixCls}-summary-fixed`,\n `${props.prefixCls}-summary-fixed-${props.summaryFixed}`,\n ])\n const summaryStyle = computed<CSSProperties>(() => {\n const styles = { height: `${summaryHeight.value}px` }\n return Object.assign(\n styles,\n props.summaryFixed\n ? showXScrollbar.value\n ? { borderTop: 'none' }\n : {}\n : {\n position: 'absolute',\n bottom: 0,\n width: `${props.bodyWidth}px`,\n borderTop: 'none',\n },\n ) as CSSProperties\n })\n const topSummaryStyle = computed<CSSProperties>(() => {\n if ('object' == typeof tableContext.props.sticky) {\n const { offsetHeader = 0, topSummary = false } = tableContext.props.sticky\n return topSummary\n ? ({\n ...summaryStyle.value,\n position: 'sticky',\n top: `${offsetHeader + tableContext.realHeaderHeight.value}px`,\n } as CSSProperties)\n : (summaryStyle.value as CSSProperties)\n }\n return summaryStyle.value as CSSProperties\n })\n const emptyStyle = computed<CSSProperties>(() => ({ width: `${props.bodyWidth}px` }))\n\n useResizeObserver(measureDomRef as never, (entries) => {\n const contentRect = entries[0]?.contentRect\n emit('update:bodyWidth', contentRect?.width || 0)\n emit('update:bodyHeight', contentRect?.height || 0)\n })\n return {\n bodyContainerStyle,\n measureDomStyle: computed<any>(() => ({\n width: '100%',\n height: '100%!important',\n position: 'absolute!important',\n fontSize: '100px!important',\n opacity: '0.1!important',\n textAlign: 'center!important',\n top: '0px!important',\n left: '0px!important',\n pointerEvents: 'none',\n display: 'block!important',\n color: '#000000!important',\n margin: '0px!important',\n padding: '0px!important',\n transform: 'unset!important',\n visibility: 'visible!important',\n zIndex: '999!important',\n })),\n isEmpty,\n emptyStyle,\n handleEmptyHeight: (e: CustomEvent) => {\n emptyHeight.value = e.detail.height\n },\n bodyClass,\n fixLeftClass,\n fixRightClass,\n centerClass,\n containerClass,\n summaryViewportClass,\n summaryClass,\n rightStyle,\n centerStyle,\n leftStyle,\n summaryViewportStyle,\n containerStyle,\n summaryStyle,\n viewportHeight,\n leftColumns,\n centerColumns,\n rightColumns,\n bodyInnerWidth,\n handleBodyInnerResize: (e: CustomEvent) => {\n bodyInnerWidth.value = e.detail.width\n },\n handleBodyScrollResize: (e: CustomEvent) => {\n emit('update:bodyScrollWidth', e.detail.width)\n },\n bodyRef,\n measureDomRef,\n bodyInnerRef,\n viewportRef,\n summaryViewportRef,\n handleResize: (e: CustomEvent) => {\n summaryHeight.value = e.detail.height\n },\n bodyStyle,\n handleBodyResize: (e: CustomEvent) => {\n emit('update:bodyWidth', e.detail.width)\n emit('update:bodyHeight', e.detail.height)\n },\n emptyImage: Empty.PRESENTED_IMAGE_SIMPLE,\n scrollLayerStyle,\n getRowClassName: (record: any, index: number) => {\n const rowClassName = tableContext.props.rowClassName\n return (\n typeof rowClassName == 'function' ? rowClassName(record, index) : rowClassName\n ) as string\n },\n showWatermark,\n leftPopupContainer,\n centerPopupContainer,\n rightPopupContainer,\n dragRowPlaceholderRef,\n leftShadowStyle,\n rightShadowStyle,\n fixedSummaryClass,\n scrollLayerRef,\n scrollbarStyle,\n topSummaryStyle,\n leftTarget,\n centerTarget,\n rightTarget,\n popupContent,\n popupContentPos,\n handleContextmenuPopupResize: () => {\n setContextmenuPopupPos()\n },\n handleDragStart: (e: MouseEvent) => {\n if (e.target instanceof HTMLImageElement) {\n e.preventDefault()\n return false\n }\n },\n handleKeydown: (e: KeyboardEvent) => {\n emit('keydown', e)\n },\n bodyViewportStyle,\n bodyViewportRef,\n bodyContainerRef,\n rowsHeightStyle,\n showYScrollbar,\n }\n },\n})\n</script>\n\n<template>\n <RenderSlot>\n <div\n v-if=\"summary && summaryFixed === 'top'\"\n key=\"summary\"\n :class=\"fixedSummaryClass\"\n :style=\"topSummaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div\n ref=\"summaryViewportRef\"\n :class=\"`${prefixCls}-summary-container`\"\n :style=\"{ height: 'calc(100% + 15px)' }\"\n >\n <div v-resize:height @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :class=\"`${prefixCls}-cell-shadow-left`\" :style=\"leftShadowStyle\"></div>\n <div :class=\"`${prefixCls}-cell-shadow-right`\" :style=\"rightShadowStyle\"></div>\n <div :class=\"`${prefixCls}-summary-scrollbar`\" :style=\"scrollbarStyle\"></div>\n </div>\n </div>\n </RenderSlot>\n <div\n key=\"body\"\n ref=\"bodyRef\"\n :class=\"bodyClass\"\n :style=\"bodyStyle\"\n @dragstart=\"handleDragStart\"\n @keydown=\"handleKeydown\"\n >\n <div\n :style=\"{\n width: '100%',\n overflow: 'hidden',\n position: 'relative',\n transform: 'translateZ(0)',\n }\"\n >\n <div\n ref=\"bodyViewportRef\"\n :class=\"`${prefixCls}-body-viewport-container`\"\n :style=\"bodyViewportStyle\"\n >\n <div :style=\"rowsHeightStyle\">\n <div\n ref=\"bodyContainerRef\"\n :class=\"`${prefixCls}-body-container`\"\n :style=\"bodyContainerStyle\"\n >\n <div ref=\"leftPopupContainer\" key=\"left\" :class=\"fixLeftClass\" :style=\"leftStyle\">\n <BodyRows\n v-if=\"leftColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"left\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div v-else :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div\n v-if=\"summary && !summaryFixed\"\n key=\"summary\"\n :class=\"summaryClass\"\n :style=\"summaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div ref=\"summaryViewportRef\" :class=\"`${prefixCls}-summary-container`\">\n <div v-resize:height @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :style=\"leftShadowStyle\" :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div :style=\"rightShadowStyle\" :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n </div>\n </div>\n\n <div ref=\"leftTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'left'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n <div key=\"center\" :class=\"centerClass\" :style=\"centerStyle\">\n <div ref=\"centerPopupContainer\" :class=\"containerClass\" :style=\"containerStyle\">\n <BodyRows\n v-if=\"centerColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"center\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div ref=\"centerTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'center'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n </div>\n <div key=\"right\" ref=\"rightPopupContainer\" :class=\"fixRightClass\" :style=\"rightStyle\">\n <BodyRows\n v-if=\"rightColumns.length\"\n :get-row-class-name=\"getRowClassName\"\n type=\"right\"\n :prefix-cls=\"prefixCls\"\n :wrap-text=\"wrapText\"\n />\n <div v-else :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n <div ref=\"rightTarget\" :class=\"`${prefixCls}-body-contextmenu-container`\">\n <div\n v-resize=\"true\"\n :class=\"`${prefixCls}-body-contextmenu-container-inner`\"\n @resize=\"handleContextmenuPopupResize\"\n >\n <component v-if=\"popupContentPos === 'right'\" :is=\"popupContent\"></component>\n </div>\n </div>\n </div>\n <span ref=\"dragRowPlaceholderRef\" :class=\"`${prefixCls}-drag-placeholder`\"></span>\n </div>\n </div>\n <div v-if=\"isEmpty\" key=\"empty\" :class=\"`${prefixCls}-empty-container`\">\n <div v-resize:height style=\"padding: 1px\" @resizeheight=\"handleEmptyHeight\">\n <RenderVNode :vnode=\"emptyText\"> <Empty :image=\"emptyImage\" /> </RenderVNode>\n </div>\n </div>\n </div>\n <div ref=\"measureDomRef\" :style=\"measureDomStyle\"></div>\n <div\n v-resize:width\n :class=\"`${prefixCls}-body-scroll-measure`\"\n :style=\"`min-width: ${bodyInnerWidth}px`\"\n @resizewidth=\"handleBodyScrollResize\"\n ></div>\n <div\n v-resize:width\n :class=\"`${prefixCls}-body-inner-measure`\"\n :style=\"`min-width: ${scrollX}px`\"\n @resizewidth=\"handleBodyInnerResize\"\n ></div>\n </div>\n <YScroll :style=\"`height: ${bodyHeight}px`\" />\n </div>\n <RenderSlot>\n <div\n v-if=\"summary && summaryFixed === 'bottom'\"\n key=\"summary\"\n :class=\"fixedSummaryClass\"\n :style=\"summaryStyle\"\n >\n <div :class=\"summaryViewportClass\" :style=\"summaryViewportStyle\">\n <div\n ref=\"summaryViewportRef\"\n :class=\"`${prefixCls}-summary-container`\"\n :style=\"{ height: 'calc(100% + 15px)' }\"\n >\n <div v-resize:height=\"true\" @resizeheight=\"handleResize\">\n <RenderVNode :vnode=\"summary\"></RenderVNode>\n </div>\n </div>\n <div :style=\"leftShadowStyle\" :class=\"`${prefixCls}-cell-shadow-left`\"></div>\n <div :style=\"rightShadowStyle\" :class=\"`${prefixCls}-cell-shadow-right`\"></div>\n <div :class=\"`${prefixCls}-summary-scrollbar`\" :style=\"scrollbarStyle\"></div>\n </div>\n </div>\n </RenderSlot>\n <HorizontalScroll />\n</template>\n"],"names":["defineComponent","BodyRows","Empty","RenderVNode","RenderSlot","XScroll","YScroll","resize","useInjectTable","useInjectSlots","ref","computed","useInjectHover","useTooltip","shallowRef","watch","onClickOutside","useProvideBody","onBeforeUnmount","useHScrollSyncInject","useVScrollSyncInject","onMounted","useResizeObserver"],"mappings":"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"}
@@ -211,7 +211,7 @@ const BodyCell = (props, { slots, emit }) => {
211
211
  color: option.color,
212
212
  bordered: false
213
213
  },
214
- option.text
214
+ () => option.text
215
215
  );
216
216
  } else {
217
217
  cellValue = option.text || emptyText;
@@ -284,7 +284,7 @@ const BodyCell = (props, { slots, emit }) => {
284
284
  // }),
285
285
  shouldOpen: (isEllipsis) => {
286
286
  var _a2;
287
- return (tooltipProps == null ? void 0 : tooltipProps.shouldOpen) ? (_a2 = tooltipProps == null ? void 0 : tooltipProps.shouldOpen) == null ? void 0 : _a2.call(tooltipProps, isEllipsis, cellRenderArgs) : isEllipsis;
287
+ return (tooltipProps == null ? void 0 : tooltipProps.shouldOpen) ? (_a2 = tooltipProps == null ? void 0 : tooltipProps.shouldOpen) == null ? void 0 : _a2.call(tooltipProps, isEllipsis, cellRenderArgs) : true;
288
288
  },
289
289
  onCellLeave: () => {
290
290
  emit("cellLeave");
@@ -1 +1 @@
1
- {"version":3,"file":"BodyCell.js","sources":["../../../../../../../../packages/components/table/src/components/Body/BodyCell.ts"],"sourcesContent":["/*\n * @Author: shen\n * @Date: 2023-11-09 11:37:05\n * @LastEditors: shen\n * @LastEditTime: 2025-09-16 10:31:02\n * @Description:\n */\nimport type { InnerKeydownPayload, RangeCell } from '../../hooks/RangeInterface'\nimport type { PropType, ExtractPropTypes, FunctionalComponent, VNode } from 'vue'\nimport type { FinallyColumnType, Key, RowType } from '../interface'\n\nimport { withDirectives, createVNode, mergeProps, cloneVNode } from 'vue'\nimport { Badge, Tag } from 'ant-design-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectRangeStore } from '../../hooks/useRangeStore'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport { isValidElement, ensureValidVNode } from '../../utils/util'\nimport { isEventSupported } from '../../utils/events'\nimport { isIOSUserAgent } from '../../utils/browser'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { get, isObject, isPromise, runFunction } from '@pro-design-vue/utils'\nimport { cellResize } from '@pro-design-vue/directives'\nimport RowHandler from '../Drag/RowHandler.vue'\nimport BodyCellTooltip from './BodyCellTooltip'\nimport EditInput from './EditInput.vue'\n\nconst cellProps = {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number as PropType<number>, required: true },\n flattenRowIndex: { type: Number, required: true },\n rowKey: { type: [Number, String] },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n type: { type: String as PropType<RowType> },\n height: Number as PropType<number>,\n hasAppendNode: Boolean as PropType<boolean>,\n resizeObserver: { type: Object as PropType<ResizeObserver> },\n calMaxHeight: Function,\n tooltipOpen: Boolean as PropType<boolean>,\n getPopupContainer: Function as PropType<() => HTMLElement>,\n onCellLeave: Function,\n editCellKeys: Array as PropType<string[]>,\n onOpenEditor: Function,\n onCloseEditor: Function,\n onMousedown: Function as PropType<(e: any, cellPosition: RangeCell) => void>,\n onMousemove: Function as PropType<(e: any, cellPosition: RangeCell) => void>,\n onKeydown: Function as PropType<(e: KeyboardEvent, payload: InnerKeydownPayload) => void>,\n onClick: Function as PropType<(e: MouseEvent, cellPosition: RangeCell) => void>,\n}\n\ntype CellProps = Partial<ExtractPropTypes<typeof cellProps>>\nlet lastClickTime = 0\n\nconst ValueStatusEnum = {\n success: '#03bf64',\n processing: '#315efb',\n error: '#e8353e',\n warning: '#eb8903',\n}\nconst BodyCell: FunctionalComponent<CellProps> = (props, { slots, emit }) => {\n const tableSlotsContext = useInjectSlots()\n const tableContext = useInjectTable()\n const { onBodyCellContextmenu } = useInjectBody()\n const { getRangeCellClass } = useInjectRangeStore()\n const level = useInjectLevel()\n const { oldValuesMap } = useEditInject()\n const {\n prefixCls,\n column,\n wrapText,\n rowKey,\n item,\n rowIndex,\n hasAppendNode,\n tooltipOpen,\n editCellKeys,\n } = props\n\n const columnKey = column!.columnKey\n const valueEnum = runFunction(column?.valueEnum, props.item)\n const rowDrag =\n typeof column!.rowDrag == 'function'\n ? column!.rowDrag({ record: item, column: column!.originColumn! })\n : !!column!.rowDrag\n const isRowDrag = column!.rowDrag\n\n const sorterState = tableContext.sorterStates.value.find(({ key }) => key === columnKey)\n const sorterOrder = sorterState ? sorterState.sortOrder : null\n const sorterInfo = { columnKey, sorterState, sorterOrder }\n const key = `${props.rowKey} ${columnKey}`\n const value = column!.dataIndex\n ? column!.renderText\n ? column!.renderText(get(item, column!.dataIndex), item, rowIndex!)\n : get(item, column!.dataIndex)\n : undefined\n const valueStatus = runFunction(column?.valueStatus, value, props.item)\n const recordIndexs = tableContext.getIndexsByKey(rowKey!)\n\n let customEditable = false\n let isEditing = editCellKeys?.includes(key)\n\n if (isEditing) {\n const editable =\n 'function' == typeof column!.editable &&\n column!.editable({\n record: item,\n column: column!.originColumn!,\n recordIndexs,\n value,\n })\n customEditable = 'cellEditorSlot' === column!.editable || 'cellEditorSlot' === editable\n isEditing =\n isEditing &&\n ((customEditable && !!tableSlotsContext.cellEditor) ||\n true === column!.editable ||\n !!editable)\n }\n\n let { editableTrigger = ['dblClick'] } = column!\n editableTrigger = Array.isArray(editableTrigger) ? editableTrigger : [editableTrigger]\n\n const cellInnerClass = { [`${prefixCls}-cell-inner`]: true }\n const cellContentClass = {\n [`${prefixCls}-cell-content`]: true,\n [`${prefixCls}-cell-wrap-text`]: column!.wrapText === undefined ? wrapText : column!.wrapText,\n [`${prefixCls}-cell-text-ellipsis`]: !!column!.ellipsis,\n }\n\n const cellContentStyle = {\n textAlign: `${column!.align}`,\n color: valueStatus ? ValueStatusEnum[valueStatus] || 'valueStatus' : undefined,\n }\n\n if (isObject(column!.ellipsis) && column!.ellipsis.line! > 1) {\n cellContentStyle['-webkit-box-orient'] = 'vertical'\n cellContentStyle['-webkit-line-clamp'] = column!.ellipsis.line!\n cellContentStyle['white-space'] = 'normal'\n cellContentStyle['display'] = '-webkit-box'\n cellContentStyle['padding'] = '0 16px'\n }\n\n const cellRender = tableContext.allCellProps.value?.[rowKey!]?.[column!.columnKey] || {}\n const cellProps: any = cellRender.props || {}\n const cellRowSpan = cellProps.rowSpan!\n\n const cellPosition = { rowIndex: props.flattenRowIndex, rowPinned: null, column: column }\n\n const cellClass = {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-cell-multi`]: cellRowSpan > 1,\n [`${prefixCls}-cell-hidden`]: cellRowSpan === 0,\n [`${prefixCls}-column-sort`]: sorterInfo.sorterOrder,\n [`${prefixCls}-with-append`]: hasAppendNode,\n [`${prefixCls}-cell-inline-edit`]: isEditing,\n [getRangeCellClass(cellPosition)]: true,\n }\n\n const openEditor = () => {\n const oldValue =\n props.column?.valueGetter?.({\n value,\n record: item,\n column: column!,\n recordIndexs: recordIndexs,\n }) ?? value\n const beforeOpen = tableContext.props?.onBeforeOpenEditor?.(cellRenderArgs)\n if (isPromise(beforeOpen)) {\n beforeOpen.then((res) => {\n if (res) {\n emit('openEditor', key, { [key]: oldValue })\n tableContext.props?.onOpenEditor?.(cellRenderArgs)\n }\n })\n } else {\n if (false !== beforeOpen) {\n emit('openEditor', key, { [key]: oldValue })\n tableContext.props?.onOpenEditor?.(cellRenderArgs)\n }\n }\n }\n\n const closeEditor = (currentKey?: Key) => {\n const beforeClose = tableContext.props?.onBeforeCloseEditor?.({\n ...cellRenderArgs,\n oldValue: oldValuesMap.value[key],\n })\n if (isPromise(beforeClose)) {\n beforeClose.then((res) => {\n if (res) {\n emit('closeEditor', currentKey ?? key)\n tableContext.props?.onCloseEditor?.({\n ...cellRenderArgs,\n oldValue: oldValuesMap.value[key],\n })\n }\n })\n } else {\n if (false !== beforeClose) {\n emit('closeEditor', currentKey ?? key)\n tableContext.props?.onCloseEditor?.({\n ...cellRenderArgs,\n oldValue: oldValuesMap.value[key],\n })\n }\n }\n }\n\n const cellRenderArgs: any = {\n record: item,\n column: column!.originColumn!,\n text: value,\n value,\n index: rowIndex!,\n recordIndexs: tableContext.getIndexsByKey(rowKey!),\n key,\n valueStatus,\n openEditor,\n closeEditor,\n }\n\n let bodyCell: VNode[] = (recordIndexs && tableSlotsContext.bodyCell?.(cellRenderArgs)) || []\n\n const emptyText =\n tableContext.props.columnEmptyText !== false ? tableContext.props.columnEmptyText : ''\n\n if (!ensureValidVNode(bodyCell)) {\n let cellValue\n if (cellRender.children) {\n cellValue = cellRender.children\n } else if (valueEnum) {\n const option = valueEnum[value]\n if (option && option.text) {\n if (option.status) {\n cellValue = createVNode(Badge, {\n status: option.status,\n text: option.text,\n })\n } else if (option.color) {\n cellValue = createVNode(\n Tag,\n {\n color: option.color,\n bordered: false,\n },\n option.text,\n )\n } else {\n cellValue = option.text || emptyText\n }\n } else {\n cellValue = emptyText\n }\n } else {\n // cellValue = value !== null || value !== undefined || value !== '' ? value : emptyText\n cellValue = value || emptyText\n }\n bodyCell = [\n (typeof cellValue === 'object' && isValidElement(cellValue)) || typeof cellValue !== 'object'\n ? cellValue\n : null,\n ]\n }\n\n const cellResizeValue = {\n resizeObserver: props.resizeObserver,\n calMaxHeight: props.calMaxHeight,\n }\n\n const tooltip = column!.tooltip\n const autoHeight = props.height === undefined && cellRowSpan === 1 && column?.autoHeight\n const altTitle =\n !column!.showTitle || (typeof value !== 'string' && typeof value !== 'number')\n ? undefined\n : value\n const tooltipStatus = !!tooltip && tooltipOpen\n\n const cellKeyProps = tableContext.props.ignoreCellKey ? {} : { key: key }\n\n let cellVNode = createVNode(\n 'div',\n {\n class: cellInnerClass,\n style: cellProps?.style?.height ? '' : `height: ${props.height}px`,\n 'data-cell-auto': autoHeight,\n },\n [\n createVNode(\n 'div',\n mergeProps(\n {\n class: cellContentClass,\n style: cellContentStyle,\n title: altTitle,\n },\n cellKeyProps,\n ),\n [hasAppendNode ? slots.appendNode?.() : null, bodyCell],\n ),\n ],\n )\n cellVNode = autoHeight ? withDirectives(cellVNode, [[cellResize, cellResizeValue]]) : cellVNode\n let renderCellVNode: any = null\n let showTooltip = tooltipStatus\n\n if (tooltipStatus) {\n const tooltipProps = { ...(column!.tooltip === true ? {} : column!.tooltip) } as any\n if (tooltipProps.title) {\n tooltipProps.title = tooltipProps.title(cellRenderArgs)\n showTooltip = !(!tooltipProps.title && tooltipProps.title !== 0)\n } else {\n tooltipProps.title = value\n showTooltip = !(!tooltipProps.title && tooltipProps.title !== 0)\n }\n\n renderCellVNode = createVNode(\n BodyCellTooltip,\n {\n getPopupContainer: props.getPopupContainer,\n align: { offset: [0, 13] },\n tooltipProps,\n open: showTooltip,\n allowEnter: tooltipProps?.allowEnter,\n // shouldOpen:\n // \t!tooltipProps?.shouldOpen ||\n // \t(isEllipsis => {\n // \t\treturn tooltipProps?.shouldOpen?.(isEllipsis, cellRenderArgs)\n // \t}),\n shouldOpen: (isEllipsis) => {\n return tooltipProps?.shouldOpen\n ? tooltipProps?.shouldOpen?.(isEllipsis, cellRenderArgs)\n : isEllipsis\n },\n onCellLeave: () => {\n emit('cellLeave')\n },\n },\n {\n default: () => [\n false !== tooltipProps.allowEnter\n ? cellVNode\n : cloneVNode(cellVNode, {\n onMouseleave: () => {\n emit('cellLeave')\n },\n }),\n ],\n title: () => tableSlotsContext.tooltipTitle?.(cellRenderArgs),\n },\n )\n } else {\n renderCellVNode = cellVNode\n }\n\n const onDblclick = () => {\n editableTrigger.includes('dblClick') && openEditor()\n }\n\n const editInputRender = isEditing\n ? createVNode(\n EditInput,\n {\n prefixCls,\n recordIndexs,\n rowKey,\n cellKey: key,\n column: column,\n record: item,\n onCloseEditor: closeEditor,\n value,\n customEditable,\n getPopupContainer: props.getPopupContainer,\n multiple: editCellKeys!.length > 1,\n autoHeight,\n },\n null,\n )\n : null\n\n return createVNode(\n 'div',\n mergeProps(cellProps, {\n onMouseleave: () => {\n showTooltip || emit('cellLeave')\n },\n tabindex: '-1',\n role: 'cell',\n 'data-column-key': columnKey,\n class: cellClass,\n onContextmenu: (e) => {\n if (\n (tableContext.props.hasContextmenuPopup || tableContext.props.rangeSelection) &&\n 0 === e.button &&\n e.ctrlKey\n ) {\n e.preventDefault()\n } else {\n onBodyCellContextmenu(e, cellRenderArgs, props.type!)\n editableTrigger.includes('contextmenu') && openEditor()\n }\n },\n onDblclick,\n onClick: (e: MouseEvent) => {\n tableContext.props?.onCellClick?.(e, cellRenderArgs)\n if (\n (() => {\n if (!isIOSUserAgent() || isEventSupported('dblclick')) return false\n const now = new Date().getTime()\n const is = now - lastClickTime < 200\n lastClickTime = now\n return is\n })()\n ) {\n onDblclick()\n e.preventDefault()\n return\n }\n emit('click', e, cellPosition)\n editableTrigger.includes('click') && openEditor()\n },\n onMousedown: (e: any) => {\n emit('mousedown', e, cellPosition)\n },\n onMousemove: (e: any) => {\n emit('mousemove', e, cellPosition)\n },\n onKeydown: (e: KeyboardEvent) => {\n emit('keydown', e, { cellPosition, isEditing })\n },\n 'data-level': level,\n 'aria-selected': 'true',\n }),\n [\n isRowDrag\n ? createVNode(\n RowHandler,\n {\n disabled: !rowDrag,\n columnKey,\n column: column!.originColumn,\n },\n { label: () => bodyCell },\n )\n : null,\n renderCellVNode,\n autoHeight && editInputRender\n ? createVNode(\n 'label',\n {\n class: `${prefixCls}-cell-edit-wrapper`,\n onMousedown: (e) => e.stopPropagation(),\n },\n [withDirectives(editInputRender, [[cellResize, cellResizeValue]])],\n )\n : editInputRender\n ? createVNode(\n 'label',\n {\n class: `${prefixCls}-cell-edit-wrapper`,\n onMousedown: (e) => e.stopPropagation(),\n },\n [editInputRender],\n )\n : null,\n ],\n )\n}\n\nBodyCell.props = cellProps\nexport default BodyCell\n"],"names":["useInjectSlots","useInjectTable","useInjectBody","useInjectRangeStore","useInjectLevel","useEditInject","runFunction","key","get","isObject","cellProps","_a","_b","_c","_d","_e","isPromise","ensureValidVNode","createVNode","Badge","Tag","isValidElement","mergeProps","withDirectives","cellResize","BodyCellTooltip","cloneVNode","EditInput","isIOSUserAgent","isEventSupported","RowHandler"],"mappings":"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"}
1
+ {"version":3,"file":"BodyCell.js","sources":["../../../../../../../../packages/components/table/src/components/Body/BodyCell.ts"],"sourcesContent":["/*\n * @Author: shen\n * @Date: 2023-11-09 11:37:05\n * @LastEditors: shen\n * @LastEditTime: 2025-09-29 09:06:52\n * @Description:\n */\nimport type { InnerKeydownPayload, RangeCell } from '../../hooks/RangeInterface'\nimport type { PropType, ExtractPropTypes, FunctionalComponent, VNode } from 'vue'\nimport type { FinallyColumnType, Key, RowType } from '../interface'\n\nimport { withDirectives, createVNode, mergeProps, cloneVNode } from 'vue'\nimport { Badge, Tag } from 'ant-design-vue'\nimport { useInjectSlots } from '../context/TableSlotsContext'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectRangeStore } from '../../hooks/useRangeStore'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport { isValidElement, ensureValidVNode } from '../../utils/util'\nimport { isEventSupported } from '../../utils/events'\nimport { isIOSUserAgent } from '../../utils/browser'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { get, isObject, isPromise, runFunction } from '@pro-design-vue/utils'\nimport { cellResize } from '@pro-design-vue/directives'\nimport RowHandler from '../Drag/RowHandler.vue'\nimport BodyCellTooltip from './BodyCellTooltip'\nimport EditInput from './EditInput.vue'\n\nconst cellProps = {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number as PropType<number>, required: true },\n flattenRowIndex: { type: Number, required: true },\n rowKey: { type: [Number, String] },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n type: { type: String as PropType<RowType> },\n height: Number as PropType<number>,\n hasAppendNode: Boolean as PropType<boolean>,\n resizeObserver: { type: Object as PropType<ResizeObserver> },\n calMaxHeight: Function,\n tooltipOpen: Boolean as PropType<boolean>,\n getPopupContainer: Function as PropType<() => HTMLElement>,\n onCellLeave: Function,\n editCellKeys: Array as PropType<string[]>,\n onOpenEditor: Function,\n onCloseEditor: Function,\n onMousedown: Function as PropType<(e: any, cellPosition: RangeCell) => void>,\n onMousemove: Function as PropType<(e: any, cellPosition: RangeCell) => void>,\n onKeydown: Function as PropType<(e: KeyboardEvent, payload: InnerKeydownPayload) => void>,\n onClick: Function as PropType<(e: MouseEvent, cellPosition: RangeCell) => void>,\n}\n\ntype CellProps = Partial<ExtractPropTypes<typeof cellProps>>\nlet lastClickTime = 0\n\nconst ValueStatusEnum = {\n success: '#03bf64',\n processing: '#315efb',\n error: '#e8353e',\n warning: '#eb8903',\n}\nconst BodyCell: FunctionalComponent<CellProps> = (props, { slots, emit }) => {\n const tableSlotsContext = useInjectSlots()\n const tableContext = useInjectTable()\n const { onBodyCellContextmenu } = useInjectBody()\n const { getRangeCellClass } = useInjectRangeStore()\n const level = useInjectLevel()\n const { oldValuesMap } = useEditInject()\n const {\n prefixCls,\n column,\n wrapText,\n rowKey,\n item,\n rowIndex,\n hasAppendNode,\n tooltipOpen,\n editCellKeys,\n } = props\n\n const columnKey = column!.columnKey\n const valueEnum = runFunction(column?.valueEnum, props.item)\n const rowDrag =\n typeof column!.rowDrag == 'function'\n ? column!.rowDrag({ record: item, column: column!.originColumn! })\n : !!column!.rowDrag\n const isRowDrag = column!.rowDrag\n\n const sorterState = tableContext.sorterStates.value.find(({ key }) => key === columnKey)\n const sorterOrder = sorterState ? sorterState.sortOrder : null\n const sorterInfo = { columnKey, sorterState, sorterOrder }\n const key = `${props.rowKey} ${columnKey}`\n const value = column!.dataIndex\n ? column!.renderText\n ? column!.renderText(get(item, column!.dataIndex), item, rowIndex!)\n : get(item, column!.dataIndex)\n : undefined\n const valueStatus = runFunction(column?.valueStatus, value, props.item)\n const recordIndexs = tableContext.getIndexsByKey(rowKey!)\n\n let customEditable = false\n let isEditing = editCellKeys?.includes(key)\n\n if (isEditing) {\n const editable =\n 'function' == typeof column!.editable &&\n column!.editable({\n record: item,\n column: column!.originColumn!,\n recordIndexs,\n value,\n })\n customEditable = 'cellEditorSlot' === column!.editable || 'cellEditorSlot' === editable\n isEditing =\n isEditing &&\n ((customEditable && !!tableSlotsContext.cellEditor) ||\n true === column!.editable ||\n !!editable)\n }\n\n let { editableTrigger = ['dblClick'] } = column!\n editableTrigger = Array.isArray(editableTrigger) ? editableTrigger : [editableTrigger]\n\n const cellInnerClass = { [`${prefixCls}-cell-inner`]: true }\n const cellContentClass = {\n [`${prefixCls}-cell-content`]: true,\n [`${prefixCls}-cell-wrap-text`]: column!.wrapText === undefined ? wrapText : column!.wrapText,\n [`${prefixCls}-cell-text-ellipsis`]: !!column!.ellipsis,\n }\n\n const cellContentStyle = {\n textAlign: `${column!.align}`,\n color: valueStatus ? ValueStatusEnum[valueStatus] || 'valueStatus' : undefined,\n }\n\n if (isObject(column!.ellipsis) && column!.ellipsis.line! > 1) {\n cellContentStyle['-webkit-box-orient'] = 'vertical'\n cellContentStyle['-webkit-line-clamp'] = column!.ellipsis.line!\n cellContentStyle['white-space'] = 'normal'\n cellContentStyle['display'] = '-webkit-box'\n cellContentStyle['padding'] = '0 16px'\n }\n\n const cellRender = tableContext.allCellProps.value?.[rowKey!]?.[column!.columnKey] || {}\n const cellProps: any = cellRender.props || {}\n const cellRowSpan = cellProps.rowSpan!\n\n const cellPosition = { rowIndex: props.flattenRowIndex, rowPinned: null, column: column }\n\n const cellClass = {\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-cell-multi`]: cellRowSpan > 1,\n [`${prefixCls}-cell-hidden`]: cellRowSpan === 0,\n [`${prefixCls}-column-sort`]: sorterInfo.sorterOrder,\n [`${prefixCls}-with-append`]: hasAppendNode,\n [`${prefixCls}-cell-inline-edit`]: isEditing,\n [getRangeCellClass(cellPosition)]: true,\n }\n\n const openEditor = () => {\n const oldValue =\n props.column?.valueGetter?.({\n value,\n record: item,\n column: column!,\n recordIndexs: recordIndexs,\n }) ?? value\n const beforeOpen = tableContext.props?.onBeforeOpenEditor?.(cellRenderArgs)\n if (isPromise(beforeOpen)) {\n beforeOpen.then((res) => {\n if (res) {\n emit('openEditor', key, { [key]: oldValue })\n tableContext.props?.onOpenEditor?.(cellRenderArgs)\n }\n })\n } else {\n if (false !== beforeOpen) {\n emit('openEditor', key, { [key]: oldValue })\n tableContext.props?.onOpenEditor?.(cellRenderArgs)\n }\n }\n }\n\n const closeEditor = (currentKey?: Key) => {\n const beforeClose = tableContext.props?.onBeforeCloseEditor?.({\n ...cellRenderArgs,\n oldValue: oldValuesMap.value[key],\n })\n if (isPromise(beforeClose)) {\n beforeClose.then((res) => {\n if (res) {\n emit('closeEditor', currentKey ?? key)\n tableContext.props?.onCloseEditor?.({\n ...cellRenderArgs,\n oldValue: oldValuesMap.value[key],\n })\n }\n })\n } else {\n if (false !== beforeClose) {\n emit('closeEditor', currentKey ?? key)\n tableContext.props?.onCloseEditor?.({\n ...cellRenderArgs,\n oldValue: oldValuesMap.value[key],\n })\n }\n }\n }\n\n const cellRenderArgs: any = {\n record: item,\n column: column!.originColumn!,\n text: value,\n value,\n index: rowIndex!,\n recordIndexs: tableContext.getIndexsByKey(rowKey!),\n key,\n valueStatus,\n openEditor,\n closeEditor,\n }\n\n let bodyCell: VNode[] = (recordIndexs && tableSlotsContext.bodyCell?.(cellRenderArgs)) || []\n\n const emptyText =\n tableContext.props.columnEmptyText !== false ? tableContext.props.columnEmptyText : ''\n\n if (!ensureValidVNode(bodyCell)) {\n let cellValue\n if (cellRender.children) {\n cellValue = cellRender.children\n } else if (valueEnum) {\n const option = valueEnum[value]\n if (option && option.text) {\n if (option.status) {\n cellValue = createVNode(Badge, {\n status: option.status,\n text: option.text,\n })\n } else if (option.color) {\n cellValue = createVNode(\n Tag,\n {\n color: option.color,\n bordered: false,\n },\n () => option.text,\n )\n } else {\n cellValue = option.text || emptyText\n }\n } else {\n cellValue = emptyText\n }\n } else {\n // cellValue = value !== null || value !== undefined || value !== '' ? value : emptyText\n cellValue = value || emptyText\n }\n bodyCell = [\n (typeof cellValue === 'object' && isValidElement(cellValue)) || typeof cellValue !== 'object'\n ? cellValue\n : null,\n ]\n }\n\n const cellResizeValue = {\n resizeObserver: props.resizeObserver,\n calMaxHeight: props.calMaxHeight,\n }\n\n const tooltip = column!.tooltip\n const autoHeight = props.height === undefined && cellRowSpan === 1 && column?.autoHeight\n const altTitle =\n !column!.showTitle || (typeof value !== 'string' && typeof value !== 'number')\n ? undefined\n : value\n const tooltipStatus = !!tooltip && tooltipOpen\n\n const cellKeyProps = tableContext.props.ignoreCellKey ? {} : { key: key }\n\n let cellVNode = createVNode(\n 'div',\n {\n class: cellInnerClass,\n style: cellProps?.style?.height ? '' : `height: ${props.height}px`,\n 'data-cell-auto': autoHeight,\n },\n [\n createVNode(\n 'div',\n mergeProps(\n {\n class: cellContentClass,\n style: cellContentStyle,\n title: altTitle,\n },\n cellKeyProps,\n ),\n [hasAppendNode ? slots.appendNode?.() : null, bodyCell],\n ),\n ],\n )\n cellVNode = autoHeight ? withDirectives(cellVNode, [[cellResize, cellResizeValue]]) : cellVNode\n let renderCellVNode: any = null\n let showTooltip = tooltipStatus\n if (tooltipStatus) {\n const tooltipProps = { ...(column!.tooltip === true ? {} : column!.tooltip) } as any\n if (tooltipProps.title) {\n tooltipProps.title = tooltipProps.title(cellRenderArgs)\n showTooltip = !(!tooltipProps.title && tooltipProps.title !== 0)\n } else {\n tooltipProps.title = value\n showTooltip = !(!tooltipProps.title && tooltipProps.title !== 0)\n }\n\n renderCellVNode = createVNode(\n BodyCellTooltip,\n {\n getPopupContainer: props.getPopupContainer,\n align: { offset: [0, 13] },\n tooltipProps,\n open: showTooltip,\n allowEnter: tooltipProps?.allowEnter,\n // shouldOpen:\n // \t!tooltipProps?.shouldOpen ||\n // \t(isEllipsis => {\n // \t\treturn tooltipProps?.shouldOpen?.(isEllipsis, cellRenderArgs)\n // \t}),\n shouldOpen: (isEllipsis) => {\n return tooltipProps?.shouldOpen\n ? tooltipProps?.shouldOpen?.(isEllipsis, cellRenderArgs)\n : true\n // : isEllipsis\n },\n onCellLeave: () => {\n emit('cellLeave')\n },\n },\n {\n default: () => [\n false !== tooltipProps.allowEnter\n ? cellVNode\n : cloneVNode(cellVNode, {\n onMouseleave: () => {\n emit('cellLeave')\n },\n }),\n ],\n title: () => tableSlotsContext.tooltipTitle?.(cellRenderArgs),\n },\n )\n } else {\n renderCellVNode = cellVNode\n }\n\n const onDblclick = () => {\n editableTrigger.includes('dblClick') && openEditor()\n }\n\n const editInputRender = isEditing\n ? createVNode(\n EditInput,\n {\n prefixCls,\n recordIndexs,\n rowKey,\n cellKey: key,\n column: column,\n record: item,\n onCloseEditor: closeEditor,\n value,\n customEditable,\n getPopupContainer: props.getPopupContainer,\n multiple: editCellKeys!.length > 1,\n autoHeight,\n },\n null,\n )\n : null\n\n return createVNode(\n 'div',\n mergeProps(cellProps, {\n onMouseleave: () => {\n showTooltip || emit('cellLeave')\n },\n tabindex: '-1',\n role: 'cell',\n 'data-column-key': columnKey,\n class: cellClass,\n onContextmenu: (e) => {\n if (\n (tableContext.props.hasContextmenuPopup || tableContext.props.rangeSelection) &&\n 0 === e.button &&\n e.ctrlKey\n ) {\n e.preventDefault()\n } else {\n onBodyCellContextmenu(e, cellRenderArgs, props.type!)\n editableTrigger.includes('contextmenu') && openEditor()\n }\n },\n onDblclick,\n onClick: (e: MouseEvent) => {\n tableContext.props?.onCellClick?.(e, cellRenderArgs)\n if (\n (() => {\n if (!isIOSUserAgent() || isEventSupported('dblclick')) return false\n const now = new Date().getTime()\n const is = now - lastClickTime < 200\n lastClickTime = now\n return is\n })()\n ) {\n onDblclick()\n e.preventDefault()\n return\n }\n emit('click', e, cellPosition)\n editableTrigger.includes('click') && openEditor()\n },\n onMousedown: (e: any) => {\n emit('mousedown', e, cellPosition)\n },\n onMousemove: (e: any) => {\n emit('mousemove', e, cellPosition)\n },\n onKeydown: (e: KeyboardEvent) => {\n emit('keydown', e, { cellPosition, isEditing })\n },\n 'data-level': level,\n 'aria-selected': 'true',\n }),\n [\n isRowDrag\n ? createVNode(\n RowHandler,\n {\n disabled: !rowDrag,\n columnKey,\n column: column!.originColumn,\n },\n { label: () => bodyCell },\n )\n : null,\n renderCellVNode,\n autoHeight && editInputRender\n ? createVNode(\n 'label',\n {\n class: `${prefixCls}-cell-edit-wrapper`,\n onMousedown: (e) => e.stopPropagation(),\n },\n [withDirectives(editInputRender, [[cellResize, cellResizeValue]])],\n )\n : editInputRender\n ? createVNode(\n 'label',\n {\n class: `${prefixCls}-cell-edit-wrapper`,\n onMousedown: (e) => e.stopPropagation(),\n },\n [editInputRender],\n )\n : null,\n ],\n )\n}\n\nBodyCell.props = cellProps\nexport default BodyCell\n"],"names":["useInjectSlots","useInjectTable","useInjectBody","useInjectRangeStore","useInjectLevel","useEditInject","runFunction","key","get","isObject","cellProps","_a","_b","_c","_d","_e","isPromise","ensureValidVNode","createVNode","Badge","Tag","isValidElement","mergeProps","withDirectives","cellResize","BodyCellTooltip","cloneVNode","EditInput","isIOSUserAgent","isEventSupported","RowHandler"],"mappings":"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"}