pro-design-vue 1.2.10 → 1.2.12

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 (51) hide show
  1. package/dist/index.full.js +172 -149
  2. package/dist/index.full.min.js +6 -6
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +8 -8
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +172 -149
  7. package/es/components/table/src/components/InteralTable.vue.d.ts +1 -1
  8. package/es/components/table/src/components/PaginationConfig.d.ts +4 -0
  9. package/es/index.d.ts +4 -0
  10. package/es/packages/components/config-provider/src/config-provider-container.vue2.mjs +1 -0
  11. package/es/packages/components/config-provider/src/config-provider-container.vue2.mjs.map +1 -1
  12. package/es/packages/components/drawer/src/drawer.vue2.mjs +65 -57
  13. package/es/packages/components/drawer/src/drawer.vue2.mjs.map +1 -1
  14. package/es/packages/components/modal/src/modal.vue2.mjs +78 -74
  15. package/es/packages/components/modal/src/modal.vue2.mjs.map +1 -1
  16. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  17. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs +2 -2
  18. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  19. package/es/packages/components/table/src/components/InteralTable.vue.mjs.map +1 -1
  20. package/es/packages/components/table/src/components/InteralTable.vue2.mjs +10 -2
  21. package/es/packages/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
  22. package/es/packages/components/table/src/components/Table.mjs +6 -5
  23. package/es/packages/components/table/src/components/Table.mjs.map +1 -1
  24. package/es/packages/components/table/src/hooks/useFetchData.mjs +9 -8
  25. package/es/packages/components/table/src/hooks/useFetchData.mjs.map +1 -1
  26. package/es/version.d.ts +1 -1
  27. package/es/version.mjs +1 -1
  28. package/es/version.mjs.map +1 -1
  29. package/lib/components/table/src/components/InteralTable.vue.d.ts +1 -1
  30. package/lib/components/table/src/components/PaginationConfig.d.ts +4 -0
  31. package/lib/index.d.ts +4 -0
  32. package/lib/packages/components/config-provider/src/config-provider-container.vue2.js +1 -0
  33. package/lib/packages/components/config-provider/src/config-provider-container.vue2.js.map +1 -1
  34. package/lib/packages/components/drawer/src/drawer.vue2.js +64 -56
  35. package/lib/packages/components/drawer/src/drawer.vue2.js.map +1 -1
  36. package/lib/packages/components/modal/src/modal.vue2.js +78 -74
  37. package/lib/packages/components/modal/src/modal.vue2.js.map +1 -1
  38. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  39. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js +2 -2
  40. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  41. package/lib/packages/components/table/src/components/InteralTable.vue.js.map +1 -1
  42. package/lib/packages/components/table/src/components/InteralTable.vue2.js +10 -2
  43. package/lib/packages/components/table/src/components/InteralTable.vue2.js.map +1 -1
  44. package/lib/packages/components/table/src/components/Table.js +6 -5
  45. package/lib/packages/components/table/src/components/Table.js.map +1 -1
  46. package/lib/packages/components/table/src/hooks/useFetchData.js +9 -8
  47. package/lib/packages/components/table/src/hooks/useFetchData.js.map +1 -1
  48. package/lib/version.d.ts +1 -1
  49. package/lib/version.js +1 -1
  50. package/lib/version.js.map +1 -1
  51. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.vue2.mjs","sources":["../../../../../../../packages/components/drawer/src/drawer.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2025-06-23 16:43:27\n * @LastEditors: shen\n * @LastEditTime: 2025-10-12 12:59:57\n * @Description:\n-->\n<script setup lang=\"ts\">\nimport type { DrawerProps } from 'ant-design-vue'\n\nimport { computed, ref } from 'vue'\nimport { Drawer } from 'ant-design-vue'\nimport { CloseOutlined, FullscreenOutlined, FullscreenExitOutlined } from '@ant-design/icons-vue'\nimport { ProButton } from '@pro-design-vue/components/button'\nimport { omitKeysAndUndefined } from '@pro-design-vue/utils'\nimport { useIsMobile, usePrefixCls } from '@pro-design-vue/hooks'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\n\nexport interface Props extends DrawerProps {\n description?: string\n showFullscreen?: boolean\n defaultFullscreen?: boolean\n}\ndefineOptions({\n name: 'ProDrawer',\n})\n\nconst props = withDefaults(defineProps<Props>(), {\n autofocus: false,\n closable: true,\n destroyOnClose: true,\n getContainer: 'body',\n mask: true,\n maskClosable: true,\n open: false,\n showFullscreen: undefined,\n})\n\nconst emit = defineEmits<{ close: [e: Event]; fullScreen: [value: boolean] }>()\n\nconst prefixCls = usePrefixCls('drawer')\nconst { isMobile } = useIsMobile()\nconst { drawer } = useProConfigInject()\nconst fullscreen = ref(props.defaultFullscreen)\nconst hasFullscreen = computed(() => isMobile.value || fullscreen.value)\nconst mergeShowFullscreen = computed(() => props.showFullscreen ?? drawer?.value?.showFullscreen)\n\nconst drawerProps = computed(() =>\n omitKeysAndUndefined(props, ['rootClassName', 'closable', 'onClose', 'title', 'width', 'height']),\n)\n\nconst width = computed(() => {\n if (fullscreen.value) {\n return '100%'\n }\n return props.width\n})\n\nconst height = computed(() => {\n if (hasFullscreen.value) {\n return '100%'\n }\n return props.height\n})\n\nconst handleClose = (e: Event) => {\n fullscreen.value = props.defaultFullscreen\n props['onUpdate:open']?.(false)\n emit('close', e)\n}\n\nconst handleBtnClose = (e: Event) => {\n handleClose(e)\n}\n\nconst handleFullScreen = () => {\n fullscreen.value = !fullscreen.value\n emit('fullScreen', fullscreen.value)\n}\n</script>\n\n<template>\n <Drawer\n v-bind=\"drawerProps\"\n :root-class-name=\"`${prefixCls} ${rootClassName || ''}`\"\n :closable=\"false\"\n :width\n :height\n @close=\"handleClose\"\n >\n <template #title>\n <slot name=\"title\">\n <div :class=\"`${prefixCls}-title`\">{{ title }}</div>\n </slot>\n <slot name=\"description\">\n <div :class=\"`${prefixCls}-description`\">{{ description }}</div>\n </slot>\n </template>\n <template #extra>\n <slot name=\"extra\" />\n <ProButton\n v-if=\"mergeShowFullscreen && !isMobile\"\n :class=\"`${prefixCls}-fullscreen`\"\n size=\"small\"\n shape=\"circle\"\n type=\"text\"\n @click=\"handleFullScreen\"\n >\n <template #icon>\n <FullscreenOutlined v-if=\"!fullscreen\" />\n <FullscreenExitOutlined v-else />\n </template>\n </ProButton>\n <ProButton\n v-if=\"closable\"\n :class=\"`${prefixCls}-close`\"\n size=\"small\"\n shape=\"circle\"\n type=\"text\"\n @click=\"handleBtnClose\"\n >\n <template #icon>\n <CloseOutlined />\n </template>\n </ProButton>\n </template>\n <template #default>\n <slot />\n </template>\n\n <template #footer v-if=\"$slots.footer\">\n <slot name=\"footer\" />\n </template>\n </Drawer>\n</template>\n"],"names":["_createBlock","_unref","_mergeProps","rootClassName","_renderSlot","_createElementVNode","title","description","closable","_createVNode","$slots"],"mappings":"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"}
1
+ {"version":3,"file":"drawer.vue2.mjs","sources":["../../../../../../../packages/components/drawer/src/drawer.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2025-06-23 16:43:27\n * @LastEditors: shen\n * @LastEditTime: 2025-10-18 19:17:38\n * @Description:\n-->\n<script setup lang=\"ts\">\nimport type { DrawerProps } from 'ant-design-vue'\n\nimport { computed, ref } from 'vue'\nimport { Drawer } from 'ant-design-vue'\nimport { CloseOutlined, FullscreenOutlined, FullscreenExitOutlined } from '@ant-design/icons-vue'\nimport { ProButton } from '@pro-design-vue/components/button'\nimport { omitKeysAndUndefined } from '@pro-design-vue/utils'\nimport { useIsMobile, usePrefixCls } from '@pro-design-vue/hooks'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\n\nexport interface Props extends DrawerProps {\n description?: string\n showFullscreen?: boolean\n defaultFullscreen?: boolean\n}\ndefineOptions({\n name: 'ProDrawer',\n})\n\nconst props = withDefaults(defineProps<Props>(), {\n autofocus: false,\n closable: true,\n destroyOnClose: true,\n getContainer: 'body',\n mask: true,\n maskClosable: true,\n open: false,\n showFullscreen: undefined,\n})\n\nconst emit = defineEmits<{ close: [e: Event]; fullScreen: [value: boolean] }>()\n\nconst prefixCls = usePrefixCls('drawer')\nconst { isMobile } = useIsMobile()\nconst { drawer } = useProConfigInject()\nconst fullscreen = ref(props.defaultFullscreen)\nconst hasFullscreen = computed(() => isMobile.value || fullscreen.value)\nconst mergeShowFullscreen = computed(() => props.showFullscreen ?? drawer?.value?.showFullscreen)\n\nconst drawerProps = computed(() =>\n omitKeysAndUndefined(props, ['rootClassName', 'closable', 'onClose', 'title', 'width', 'height']),\n)\n\nconst width = computed(() => {\n if (fullscreen.value) {\n return '100%'\n }\n return props.width\n})\n\nconst height = computed(() => {\n if (hasFullscreen.value) {\n return '100%'\n }\n return props.height\n})\n\nconst handleClose = (e: Event) => {\n fullscreen.value = props.defaultFullscreen\n props['onUpdate:open']?.(false)\n emit('close', e)\n}\n\nconst handleBtnClose = (e: Event) => {\n handleClose(e)\n}\n\nconst handleFullScreen = () => {\n fullscreen.value = !fullscreen.value\n emit('fullScreen', fullscreen.value)\n}\n</script>\n\n<template>\n <Drawer\n v-bind=\"drawerProps\"\n :root-class-name=\"`${prefixCls} ${rootClassName || ''}`\"\n :closable=\"false\"\n :width\n :height\n @close=\"handleClose\"\n >\n <template #title v-if=\"title || $slots.title\">\n <slot name=\"title\">\n <div :class=\"`${prefixCls}-title`\">{{ title }}</div>\n </slot>\n <slot name=\"description\">\n <div :class=\"`${prefixCls}-description`\">{{ description }}</div>\n </slot>\n </template>\n <template #extra v-if=\"title || $slots.title\">\n <slot name=\"extra\" />\n <ProButton\n v-if=\"mergeShowFullscreen && !isMobile\"\n :class=\"`${prefixCls}-fullscreen`\"\n size=\"small\"\n shape=\"circle\"\n type=\"text\"\n @click=\"handleFullScreen\"\n >\n <template #icon>\n <FullscreenOutlined v-if=\"!fullscreen\" />\n <FullscreenExitOutlined v-else />\n </template>\n </ProButton>\n <ProButton\n v-if=\"closable\"\n :class=\"`${prefixCls}-close`\"\n size=\"small\"\n shape=\"circle\"\n type=\"text\"\n @click=\"handleBtnClose\"\n >\n <template #icon>\n <CloseOutlined />\n </template>\n </ProButton>\n </template>\n <template #default>\n <slot />\n </template>\n\n <template #footer v-if=\"$slots.footer\">\n <slot name=\"footer\" />\n </template>\n </Drawer>\n</template>\n"],"names":["_createBlock","_unref","_mergeProps","rootClassName","_renderSlot","title","$slots","_createElementVNode","description","closable","_createVNode"],"mappings":"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"}
@@ -143,91 +143,95 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
143
143
  style: modalStyle.value,
144
144
  onCancel: handleClose
145
145
  }), createSlots({
146
- title: withCtx(() => [
147
- createElementVNode(
148
- "div",
149
- {
150
- ref: "modalHeaderRef",
151
- class: normalizeClass(`${unref(prefixCls)}-header`)
152
- },
153
- [
154
- renderSlot(_ctx.$slots, "title", {}, () => [
155
- createElementVNode(
156
- "div",
157
- {
158
- class: normalizeClass(`${unref(prefixCls)}-title`)
159
- },
160
- toDisplayString(_ctx.title),
161
- 3
162
- /* TEXT, CLASS */
163
- )
164
- ]),
165
- renderSlot(_ctx.$slots, "description", {}, () => [
166
- createElementVNode(
167
- "div",
168
- {
169
- class: normalizeClass(`${unref(prefixCls)}-description`)
170
- },
171
- toDisplayString(_ctx.description),
172
- 3
173
- /* TEXT, CLASS */
174
- )
175
- ]),
176
- createElementVNode(
177
- "div",
178
- {
179
- class: normalizeClass(`${unref(prefixCls)}-extra`)
180
- },
181
- [
182
- mergeShowFullscreen.value && !unref(isMobile) ? (openBlock(), createBlock(unref(ProButton), {
183
- key: 0,
184
- class: normalizeClass(`${unref(prefixCls)}-fullscreen`),
185
- size: "small",
186
- shape: "circle",
187
- type: "text",
188
- onClick: handleFullScreen
189
- }, {
190
- icon: withCtx(() => [
191
- !fullscreen.value ? (openBlock(), createBlock(unref(FullscreenOutlined), { key: 0 })) : (openBlock(), createBlock(unref(FullscreenExitOutlined), { key: 1 }))
192
- ]),
193
- _: 1
194
- /* STABLE */
195
- }, 8, ["class"])) : createCommentVNode("v-if", true),
196
- _ctx.closable ? (openBlock(), createBlock(unref(ProButton), {
197
- key: 1,
198
- class: normalizeClass(`${unref(prefixCls)}-close`),
199
- size: "small",
200
- shape: "circle",
201
- type: "text",
202
- onClick: handleBtnClose
203
- }, {
204
- icon: withCtx(() => [
205
- createVNode(unref(CloseOutlined))
206
- ]),
207
- _: 1
208
- /* STABLE */
209
- }, 8, ["class"])) : createCommentVNode("v-if", true)
210
- ],
211
- 2
212
- /* CLASS */
213
- )
214
- ],
215
- 2
216
- /* CLASS */
217
- )
218
- ]),
219
146
  default: withCtx(() => [
220
147
  renderSlot(_ctx.$slots, "default")
221
148
  ]),
222
149
  _: 2
223
150
  /* DYNAMIC */
224
151
  }, [
152
+ _ctx.title || _ctx.$slots.title ? {
153
+ name: "title",
154
+ fn: withCtx(() => [
155
+ createElementVNode(
156
+ "div",
157
+ {
158
+ ref: "modalHeaderRef",
159
+ class: normalizeClass(`${unref(prefixCls)}-header`)
160
+ },
161
+ [
162
+ renderSlot(_ctx.$slots, "title", {}, () => [
163
+ createElementVNode(
164
+ "div",
165
+ {
166
+ class: normalizeClass(`${unref(prefixCls)}-title`)
167
+ },
168
+ toDisplayString(_ctx.title),
169
+ 3
170
+ /* TEXT, CLASS */
171
+ )
172
+ ]),
173
+ renderSlot(_ctx.$slots, "description", {}, () => [
174
+ createElementVNode(
175
+ "div",
176
+ {
177
+ class: normalizeClass(`${unref(prefixCls)}-description`)
178
+ },
179
+ toDisplayString(_ctx.description),
180
+ 3
181
+ /* TEXT, CLASS */
182
+ )
183
+ ]),
184
+ createElementVNode(
185
+ "div",
186
+ {
187
+ class: normalizeClass(`${unref(prefixCls)}-extra`)
188
+ },
189
+ [
190
+ mergeShowFullscreen.value && !unref(isMobile) ? (openBlock(), createBlock(unref(ProButton), {
191
+ key: 0,
192
+ class: normalizeClass(`${unref(prefixCls)}-fullscreen`),
193
+ size: "small",
194
+ shape: "circle",
195
+ type: "text",
196
+ onClick: handleFullScreen
197
+ }, {
198
+ icon: withCtx(() => [
199
+ !fullscreen.value ? (openBlock(), createBlock(unref(FullscreenOutlined), { key: 0 })) : (openBlock(), createBlock(unref(FullscreenExitOutlined), { key: 1 }))
200
+ ]),
201
+ _: 1
202
+ /* STABLE */
203
+ }, 8, ["class"])) : createCommentVNode("v-if", true),
204
+ _ctx.closable ? (openBlock(), createBlock(unref(ProButton), {
205
+ key: 1,
206
+ class: normalizeClass(`${unref(prefixCls)}-close`),
207
+ size: "small",
208
+ shape: "circle",
209
+ type: "text",
210
+ onClick: handleBtnClose
211
+ }, {
212
+ icon: withCtx(() => [
213
+ createVNode(unref(CloseOutlined))
214
+ ]),
215
+ _: 1
216
+ /* STABLE */
217
+ }, 8, ["class"])) : createCommentVNode("v-if", true)
218
+ ],
219
+ 2
220
+ /* CLASS */
221
+ )
222
+ ],
223
+ 2
224
+ /* CLASS */
225
+ )
226
+ ]),
227
+ key: "0"
228
+ } : void 0,
225
229
  _ctx.$slots.footer ? {
226
230
  name: "footer",
227
231
  fn: withCtx(() => [
228
232
  renderSlot(_ctx.$slots, "footer")
229
233
  ]),
230
- key: "0"
234
+ key: "1"
231
235
  } : void 0
232
236
  ]), 1040, ["class", "width", "style"]);
233
237
  };
@@ -1 +1 @@
1
- {"version":3,"file":"modal.vue2.mjs","sources":["../../../../../../../packages/components/modal/src/modal.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2025-06-23 16:43:27\n * @LastEditors: shen\n * @LastEditTime: 2025-10-12 12:58:02\n * @Description:\n-->\n<script setup lang=\"ts\">\nimport type { ModalProps } from 'ant-design-vue'\n\nimport { computed, ref, useTemplateRef, useAttrs } from 'vue'\nimport { Modal } from 'ant-design-vue'\nimport { CloseOutlined, FullscreenOutlined, FullscreenExitOutlined } from '@ant-design/icons-vue'\nimport { ProButton } from '@pro-design-vue/components/button'\nimport { omitKeysAndUndefined } from '@pro-design-vue/utils'\nimport { useIsMobile, usePrefixCls } from '@pro-design-vue/hooks'\nimport { useDraggable, useElementBounding, useResizeObserver } from '@vueuse/core'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\n\nexport interface Props extends Omit<ModalProps, 'visible'> {\n /**\n * @zh_CN 标题描述信息\n */\n description?: string\n /**\n * @zh_CN 是否可以切换全屏\n */\n showFullscreen?: boolean\n /**\n * @zh_CN 默认全屏\n */\n defaultFullscreen?: boolean\n /**\n * @zh_CN 是否可以拖拽\n */\n draggable?: boolean\n /**\n * @zh_CN 距离顶部距离\n */\n top?: number\n}\ndefineOptions({\n name: 'ProModal',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<Props>(), {\n autofocus: false,\n closable: true,\n destroyOnClose: true,\n getContainer: () => document.body,\n mask: true,\n keyboard: true,\n maskClosable: true,\n open: false,\n showFullscreen: undefined,\n draggable: undefined,\n top: 100,\n})\nconst emit = defineEmits<{ cancel: [e: Event]; fullScreen: [value: boolean] }>()\nconst attrs = useAttrs()\nconst prefixCls = usePrefixCls('modal')\n// const open = defineModel<boolean>('open')\nconst isDrag = ref(false)\nconst fullscreen = ref(props.defaultFullscreen)\nconst { isMobile } = useIsMobile()\nconst { modal } = useProConfigInject()\nconst bodyWidth = ref(0)\nconst modalHeaderEl = useTemplateRef<HTMLElement>('modalHeaderRef')\nconst { width } = useElementBounding(modalHeaderEl)\nuseResizeObserver(document.body, (entries) => {\n const entry = entries[0]\n const { width } = entry?.contentRect || ({} as DOMRectReadOnly)\n bodyWidth.value = width\n})\n\nconst mergeShowFullscreen = computed(() => props.showFullscreen ?? modal?.value?.showFullscreen)\nconst mergeDraggable = computed(() => props.draggable ?? modal?.value?.draggable)\n\nconst hasFullscreen = computed(() => isMobile.value || fullscreen.value)\nconst hasDraggable = computed(() => mergeDraggable.value && !hasFullscreen.value)\n\nconst { style } = useDraggable(modalHeaderEl, {\n disabled: computed(() => !hasDraggable.value),\n onMove() {\n isDrag.value = true\n },\n})\n\nconst modalProps = computed(() =>\n omitKeysAndUndefined(props, ['closable', 'onCancel', 'title', 'width', 'height']),\n)\n\nconst modalClass = computed(() => ({\n [prefixCls]: true,\n [attrs.class as string]: true,\n [`${prefixCls}--fullscreen`]: hasFullscreen.value,\n [`${prefixCls}--draggable`]: hasDraggable.value,\n}))\n\nconst modalStyle = computed(() => {\n if (isDrag.value) {\n return style.value\n }\n if (hasDraggable.value) {\n return {\n left: (bodyWidth.value - width.value) / 2 + 'px',\n top: `${props.top}px`,\n }\n }\n return {\n top: `${props.top}px`,\n }\n})\n\nconst modalWidth = computed(() => {\n if (hasFullscreen.value) {\n return '100%'\n }\n return props.width\n})\n\nconst handleClose = (e: Event) => {\n fullscreen.value = props.defaultFullscreen\n props['onUpdate:open']?.(false)\n emit('cancel', e)\n}\n\nconst handleBtnClose = (e: Event) => {\n e.stopPropagation()\n handleClose(e)\n}\n\nconst handleFullScreen = () => {\n fullscreen.value = !fullscreen.value\n emit('fullScreen', fullscreen.value)\n}\n</script>\n\n<template>\n <Modal\n v-bind=\"modalProps\"\n :class=\"modalClass\"\n :closable=\"false\"\n :width=\"modalWidth\"\n :style=\"modalStyle\"\n @cancel=\"handleClose\"\n >\n <template #title>\n <div ref=\"modalHeaderRef\" :class=\"`${prefixCls}-header`\">\n <slot name=\"title\">\n <div :class=\"`${prefixCls}-title`\">{{ title }}</div>\n </slot>\n <slot name=\"description\">\n <div :class=\"`${prefixCls}-description`\">{{ description }}</div>\n </slot>\n <div :class=\"`${prefixCls}-extra`\">\n <ProButton\n v-if=\"mergeShowFullscreen && !isMobile\"\n :class=\"`${prefixCls}-fullscreen`\"\n size=\"small\"\n shape=\"circle\"\n type=\"text\"\n @click=\"handleFullScreen\"\n >\n <template #icon>\n <FullscreenOutlined v-if=\"!fullscreen\" />\n <FullscreenExitOutlined v-else />\n </template>\n </ProButton>\n <ProButton\n v-if=\"closable\"\n :class=\"`${prefixCls}-close`\"\n size=\"small\"\n shape=\"circle\"\n type=\"text\"\n @click=\"handleBtnClose\"\n >\n <template #icon>\n <CloseOutlined />\n </template>\n </ProButton>\n </div>\n </div>\n </template>\n <template #default>\n <slot />\n </template>\n\n <template #footer v-if=\"$slots.footer\">\n <slot name=\"footer\" />\n </template>\n </Modal>\n</template>\n"],"names":["width","_createBlock","_unref","_mergeProps","_createElementVNode","_renderSlot","title","description","closable","_createVNode","$slots"],"mappings":"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"}
1
+ {"version":3,"file":"modal.vue2.mjs","sources":["../../../../../../../packages/components/modal/src/modal.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2025-06-23 16:43:27\n * @LastEditors: shen\n * @LastEditTime: 2025-10-18 19:12:36\n * @Description:\n-->\n<script setup lang=\"ts\">\nimport type { ModalProps } from 'ant-design-vue'\n\nimport { computed, ref, useTemplateRef, useAttrs } from 'vue'\nimport { Modal } from 'ant-design-vue'\nimport { CloseOutlined, FullscreenOutlined, FullscreenExitOutlined } from '@ant-design/icons-vue'\nimport { ProButton } from '@pro-design-vue/components/button'\nimport { omitKeysAndUndefined } from '@pro-design-vue/utils'\nimport { useIsMobile, usePrefixCls } from '@pro-design-vue/hooks'\nimport { useDraggable, useElementBounding, useResizeObserver } from '@vueuse/core'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\n\nexport interface Props extends Omit<ModalProps, 'visible'> {\n /**\n * @zh_CN 标题描述信息\n */\n description?: string\n /**\n * @zh_CN 是否可以切换全屏\n */\n showFullscreen?: boolean\n /**\n * @zh_CN 默认全屏\n */\n defaultFullscreen?: boolean\n /**\n * @zh_CN 是否可以拖拽\n */\n draggable?: boolean\n /**\n * @zh_CN 距离顶部距离\n */\n top?: number\n}\ndefineOptions({\n name: 'ProModal',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<Props>(), {\n autofocus: false,\n closable: true,\n destroyOnClose: true,\n getContainer: () => document.body,\n mask: true,\n keyboard: true,\n maskClosable: true,\n open: false,\n showFullscreen: undefined,\n draggable: undefined,\n top: 100,\n})\nconst emit = defineEmits<{ cancel: [e: Event]; fullScreen: [value: boolean] }>()\nconst attrs = useAttrs()\nconst prefixCls = usePrefixCls('modal')\n// const open = defineModel<boolean>('open')\nconst isDrag = ref(false)\nconst fullscreen = ref(props.defaultFullscreen)\nconst { isMobile } = useIsMobile()\nconst { modal } = useProConfigInject()\nconst bodyWidth = ref(0)\nconst modalHeaderEl = useTemplateRef<HTMLElement>('modalHeaderRef')\nconst { width } = useElementBounding(modalHeaderEl)\nuseResizeObserver(document.body, (entries) => {\n const entry = entries[0]\n const { width } = entry?.contentRect || ({} as DOMRectReadOnly)\n bodyWidth.value = width\n})\n\nconst mergeShowFullscreen = computed(() => props.showFullscreen ?? modal?.value?.showFullscreen)\nconst mergeDraggable = computed(() => props.draggable ?? modal?.value?.draggable)\n\nconst hasFullscreen = computed(() => isMobile.value || fullscreen.value)\nconst hasDraggable = computed(() => mergeDraggable.value && !hasFullscreen.value)\n\nconst { style } = useDraggable(modalHeaderEl, {\n disabled: computed(() => !hasDraggable.value),\n onMove() {\n isDrag.value = true\n },\n})\n\nconst modalProps = computed(() =>\n omitKeysAndUndefined(props, ['closable', 'onCancel', 'title', 'width', 'height']),\n)\n\nconst modalClass = computed(() => ({\n [prefixCls]: true,\n [attrs.class as string]: true,\n [`${prefixCls}--fullscreen`]: hasFullscreen.value,\n [`${prefixCls}--draggable`]: hasDraggable.value,\n}))\n\nconst modalStyle = computed(() => {\n if (isDrag.value) {\n return style.value\n }\n if (hasDraggable.value) {\n return {\n left: (bodyWidth.value - width.value) / 2 + 'px',\n top: `${props.top}px`,\n }\n }\n return {\n top: `${props.top}px`,\n }\n})\n\nconst modalWidth = computed(() => {\n if (hasFullscreen.value) {\n return '100%'\n }\n return props.width\n})\n\nconst handleClose = (e: Event) => {\n fullscreen.value = props.defaultFullscreen\n props['onUpdate:open']?.(false)\n emit('cancel', e)\n}\n\nconst handleBtnClose = (e: Event) => {\n e.stopPropagation()\n handleClose(e)\n}\n\nconst handleFullScreen = () => {\n fullscreen.value = !fullscreen.value\n emit('fullScreen', fullscreen.value)\n}\n</script>\n\n<template>\n <Modal\n v-bind=\"modalProps\"\n :class=\"modalClass\"\n :closable=\"false\"\n :width=\"modalWidth\"\n :style=\"modalStyle\"\n @cancel=\"handleClose\"\n >\n <template #title v-if=\"title || $slots.title\">\n <div ref=\"modalHeaderRef\" :class=\"`${prefixCls}-header`\">\n <slot name=\"title\">\n <div :class=\"`${prefixCls}-title`\">{{ title }}</div>\n </slot>\n <slot name=\"description\">\n <div :class=\"`${prefixCls}-description`\">{{ description }}</div>\n </slot>\n <div :class=\"`${prefixCls}-extra`\">\n <ProButton\n v-if=\"mergeShowFullscreen && !isMobile\"\n :class=\"`${prefixCls}-fullscreen`\"\n size=\"small\"\n shape=\"circle\"\n type=\"text\"\n @click=\"handleFullScreen\"\n >\n <template #icon>\n <FullscreenOutlined v-if=\"!fullscreen\" />\n <FullscreenExitOutlined v-else />\n </template>\n </ProButton>\n <ProButton\n v-if=\"closable\"\n :class=\"`${prefixCls}-close`\"\n size=\"small\"\n shape=\"circle\"\n type=\"text\"\n @click=\"handleBtnClose\"\n >\n <template #icon>\n <CloseOutlined />\n </template>\n </ProButton>\n </div>\n </div>\n </template>\n <template #default>\n <slot />\n </template>\n\n <template #footer v-if=\"$slots.footer\">\n <slot name=\"footer\" />\n </template>\n </Modal>\n</template>\n"],"names":["width","_createBlock","_unref","_mergeProps","_renderSlot","title","$slots","_createElementVNode","description","closable","_createVNode"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BodyRow.vue.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyRow.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-10-12 13:49:34\n * @Description:\n-->\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n onBeforeUnmount,\n computed,\n nextTick,\n watchEffect,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRows, useProvideBodyRow } from '../context/BodyRowsContext'\nimport { ExpandColumnKey } from '../../hooks/useColumns'\nimport { RenderSlot } from '../../utils/renderVNode'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { useCellSelection } from '../../hooks/useCellSelection'\nimport { useCellKeyboard } from '../../hooks/useCellKeyboard'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport eagerComputed from '../../utils/eagerComputed'\nimport classNames from '../../utils/classNames'\nimport BodyCell from './BodyCell'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { CSSProperties, PropType } from 'vue'\nimport type { RowClassName, RowType, Key } from '../interface'\n\nlet uniIdCount = 0\nexport default defineComponent({\n name: 'ProTableBodyRow',\n components: {\n ExpandIcon,\n BodyCell,\n ExpandedRow,\n BodyExtraCell,\n RenderSlot,\n },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n isExpandRow: Boolean as PropType<boolean>,\n record: { type: Object },\n type: { type: String as PropType<RowType> },\n rowKey: { type: [Number, String] as PropType<Key>, required: true },\n supportExpand: Boolean,\n pos: Number as PropType<number>,\n rowIndex: Number as PropType<number>,\n flattenRowIndex: Number,\n indent: Number as PropType<number>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n getRowClassName: { type: Function as PropType<RowClassName<any>> },\n },\n setup(props) {\n const rowUniId = 'row_uni_id_' + uniIdCount++\n const tableContext = useInjectTable()\n const rowInstance = getCurrentInstance()\n const { table } = useProConfigInject()\n const { editCellKeys, closeEditor, openEditor } = useEditInject()\n\n let isUnmount = false\n const bodyRow = ref()\n\n const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection()\n const { onCellKeydown } = useCellKeyboard()\n\n const calMaxHeight = () => {\n if (isUnmount) return\n let rowHeight = 0\n let autoCells: HTMLDivElement[] = []\n if (bodyRow.value) {\n autoCells = bodyRow.value.querySelectorAll('div[data-cell-auto=true]')\n }\n autoCells.forEach((autoCell: HTMLDivElement) => {\n const { offsetWidth, offsetHeight } = autoCell\n let autoCellHeight = offsetWidth ? offsetHeight : 0\n const parentStyle = getComputedStyle(autoCell.parentNode as Element)\n autoCellHeight +=\n parseFloat(parentStyle.getPropertyValue('border-top-width')) +\n parseFloat(parentStyle.getPropertyValue('border-bottom-width'))\n rowHeight = rowHeight > autoCellHeight ? rowHeight : autoCellHeight\n })\n if (autoCells.length) {\n tableContext.addRowHeight(rowUniId, props.rowKey!, rowHeight)\n } else {\n tableContext.removeRowHeight(rowUniId)\n }\n }\n\n watch(\n () => props.rowKey,\n () => {\n calMaxHeight()\n },\n { flush: 'post' },\n )\n\n const resizeObserver: ResizeObserver = new ResizeObserver(() => {\n calMaxHeight()\n })\n\n const { columns, columnStartIndex } = useInjectBodyRows()\n const mergedColumns = computed(() =>\n (props.type === 'center'\n ? tableContext.centerRowColumnsMap.value.get(props.rowKey)\n : columns.value)!.filter((item) => !!item),\n )\n\n const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } =\n useInjectBody()\n const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey, rowHover } =\n useInjectHover()\n\n const popupContainer = computed(() =>\n props.type === 'left'\n ? leftPopupContainer.value\n : props.type === 'center'\n ? centerPopupContainer.value\n : props.type === 'right'\n ? rightPopupContainer.value\n : null,\n )\n\n const isDragging = eagerComputed(() => tableContext.draggingRowKey.value === props.rowKey)\n const isRowHover = eagerComputed(() => hoverRowKey.value === props.rowKey)\n\n watch(\n [isRowHover, bodyRow],\n () => {\n bodyRow.value &&\n rowHover.value &&\n (isRowHover.value\n ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`)\n : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`))\n },\n { immediate: true, flush: 'post' },\n )\n\n const mergedTooltipOpen = eagerComputed(() => tooltipOpen.value && isRowHover.value)\n\n let timer: any\n onBeforeUnmount(() => {\n isUnmount = true\n resizeObserver.disconnect()\n clearTimeout(timer)\n tableContext.removeRowHeight(rowUniId)\n })\n\n const hasMultiRowSpanInfo = eagerComputed(() => {\n return !tableContext.hasMultiRowSpanInfo.value[props.rowKey!]\n })\n\n const customRowProps = computed(() => {\n return tableContext.props.customRow?.(props.record!, props.rowIndex)\n })\n\n const rowSelectionType = computed(() => {\n return tableContext.props.rowSelection?.type\n })\n\n const isExpanded = ref(false)\n const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value)\n const expanded = eagerComputed(() => expandedRowKeys.value.has?.(props.rowKey!))\n const expandIconColumnIndex = computed(() => tableContext.expandIconColumnIndex.value || 0)\n const indentSize = computed(() => tableContext.indentSize.value)\n\n watchEffect(() => {\n if (expanded.value) {\n isExpanded.value = true\n }\n })\n\n const rowExpandable = computed(\n () =>\n tableContext.expandType.value === 'row' &&\n tableContext.props.rowExpandable?.(props.record!),\n )\n\n const nestExpandable = computed(() => tableContext.expandType.value === 'nest')\n\n const hasNestChildren = computed(\n () =>\n !!(\n tableContext.childrenColumnName.value &&\n props.record?.[tableContext.childrenColumnName.value]\n ),\n )\n const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value)\n\n const onInternalTriggerExpand = (record: any, event: any) => {\n tableContext.onTriggerExpand(record, props.rowKey!, event)\n }\n\n const mergedRowHeights = computed(() => tableContext.mergedRowHeights.value)\n\n const height = eagerComputed(() => mergedRowHeights.value[props.rowKey!])\n const cellHeight = eagerComputed(() => tableContext.rowHeights.value[props.rowKey!])\n\n const isSelected = computed(() => {\n const highlightSelectRow =\n tableContext.props.highlightSelectRow ?? table?.value?.highlightSelectRow\n return (\n highlightSelectRow && tableContext.selection.derivedSelectedKeySet.value.has(props.rowKey!)\n )\n })\n\n const rowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n const isEven = rowIndex! % 2 == 0\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-row-level-${indent}`]: true,\n [`${prefixCls}-row-hover`]: isRowHover.value && rowHover.value,\n [`${prefixCls}-row-dragging`]: isDragging.value,\n [`${prefixCls}-row-dragging-insert-target`]:\n tableContext.insertToRowKey.value === props.rowKey,\n [`${prefixCls}-row-odd`]: !isEven,\n [`${prefixCls}-row-even`]: isEven,\n [`${prefixCls}-no-height`]: !height.value,\n [`${prefixCls}-row-selected`]: isSelected.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandRowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-expanded-row`]: true,\n [`${prefixCls}-expanded-row-level-${indent! + 1}`]: true,\n [`${prefixCls}-no-height`]: !height.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandColumnWidth = eagerComputed(() => {\n return tableContext.allCellProps.value[props.rowKey!]?.[ExpandColumnKey]?.props?.style?.width\n })\n\n const rowStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {\n opacity: 1,\n [`--${props.prefixCls}-row-bg`]: `var(--${props.prefixCls}-row-bg-${props.rowKey}, var(--${props.prefixCls}-bg))`,\n }\n if (hasMultiRowSpanInfo.value) {\n style.transform = `translateY(${props.pos}px)`\n } else {\n style.top = `${props.pos}px`\n }\n if (height.value !== undefined) {\n style.height = `${height.value}px`\n } else {\n style.height = `${tableContext.baseHeight.value}px`\n }\n if (props.isExpandRow && columnStartIndex.value === 0) {\n style.width = expandColumnWidth.value\n style.minWidth = '100%'\n }\n return style\n })\n\n watch(\n () => ({ ...rowStyle.value }),\n (newStyle, oldStyle = {}) => {\n if (tableContext.animateRows.value && !tableContext.useAnimate.value) {\n if (\n newStyle.top !== oldStyle.top ||\n newStyle.height !== oldStyle.height ||\n newStyle.transform !== oldStyle.transform\n ) {\n nextTick(() => {\n clearTimeout(timer)\n if (rowInstance?.vnode.el && rowInstance.vnode.el.style) {\n rowInstance.vnode.el.style.transition = 'none'\n timer = setTimeout(() => {\n if (rowInstance?.vnode?.el?.style) {\n rowInstance.vnode.el.style.transition = null\n }\n }, 100)\n }\n })\n }\n }\n },\n { immediate: true },\n )\n\n useProvideBodyRow({\n top: computed(() => props.pos!),\n height: computed(() =>\n height.value !== undefined ? height.value : tableContext.baseHeight.value,\n ),\n rowKey: computed(() => props.rowKey),\n })\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-position-absolute`]: true,\n }))\n\n return {\n rowClass,\n rowStyle,\n cellClass,\n tableContext,\n mergedRowHeights,\n handleCellBlur,\n handleCellHover,\n handleClick: (event: any) => {\n const expandRowByClick =\n tableContext.props.expandRowByClick ?? table?.value?.expandRowByClick\n expandRowByClick && mergedExpandable.value && onInternalTriggerExpand(props.record, event)\n },\n rowSelectionType,\n nestExpandable,\n hasNestChildren,\n mergedExpandable,\n expandIconColumnIndex,\n indentSize,\n expanded,\n onInternalTriggerExpand,\n customRowProps,\n expandColumnKey: ExpandColumnKey,\n expandRowClass,\n mergedColumns,\n height,\n cellHeight,\n columnStartIndex,\n resizeObserver,\n calMaxHeight,\n bodyRow,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n editCellKeys,\n closeEditor,\n openEditor,\n mergedTooltipOpen,\n onCellMousedown,\n onCellKeydown,\n onCellMousemove,\n onCellClick,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isExpandRow\">\n <div\n v-if=\"columnStartIndex === 0\"\n ref=\"bodyRow\"\n :data-row-key=\"rowKey\"\n :class=\"expandRowClass\"\n :style=\"rowStyle\"\n role=\"row\"\n >\n <ExpandedRow\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n />\n </div>\n </template>\n <div\n v-else\n v-bind=\"customRowProps\"\n ref=\"bodyRow\"\n :class=\"rowClass\"\n :style=\"rowStyle\"\n :data-row-key=\"rowKey\"\n role=\"row\"\n @click=\"handleClick\"\n >\n <RenderSlot>\n <template v-for=\"(column, index) in mergedColumns\" :key=\"column && column.columnKey\">\n <BodyExtraCell\n v-if=\"column && column.__Internal__Column__\"\n :prefix-cls=\"prefixCls\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex!\"\n :type=\"type\"\n :column=\"mergedColumns?.[index]\"\n :expanded=\"expanded\"\n :support-expand=\"mergedExpandable\"\n :record=\"record\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @mouseleave=\"handleCellBlur\"\n />\n <BodyCell\n v-else-if=\"column\"\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :type=\"type\"\n :row-index=\"rowIndex!\"\n :flatten-row-index=\"flattenRowIndex\"\n :wrap-text=\"wrapText\"\n :column=\"column\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n :has-append-node=\"column.columnIndex === expandIconColumnIndex && nestExpandable\"\n :height=\"cellHeight\"\n :get-popup-container=\"getPopupContainer\"\n :tooltip-open=\"mergedTooltipOpen && hoverColumnKey === column.columnKey\"\n :edit-cell-keys=\"editCellKeys\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\n @mousedown=\"onCellMousedown\"\n @mousemove=\"onCellMousemove\"\n @keydown=\"onCellKeydown\"\n @click=\"onCellClick\"\n >\n <template #appendNode>\n <div :class=\"`${prefixCls}-append-node`\">\n <span\n :style=\"`padding-left: ${(indent || 0) * indentSize}px`\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n ></span>\n <ExpandIcon\n :expanded=\"expanded\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_Fragment","_normalizeClass","_normalizeStyle","_createVNode","_mergeProps","_withCtx","_renderList","_createBlock","_createElementVNode"],"mappings":"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"}
1
+ {"version":3,"file":"BodyRow.vue.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyRow.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-10-20 15:34:32\n * @Description:\n-->\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n onBeforeUnmount,\n computed,\n nextTick,\n watchEffect,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRows, useProvideBodyRow } from '../context/BodyRowsContext'\nimport { ExpandColumnKey } from '../../hooks/useColumns'\nimport { RenderSlot } from '../../utils/renderVNode'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { useCellSelection } from '../../hooks/useCellSelection'\nimport { useCellKeyboard } from '../../hooks/useCellKeyboard'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport eagerComputed from '../../utils/eagerComputed'\nimport classNames from '../../utils/classNames'\nimport BodyCell from './BodyCell'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { CSSProperties, PropType } from 'vue'\nimport type { RowClassName, RowType, Key } from '../interface'\n\nlet uniIdCount = 0\nexport default defineComponent({\n name: 'ProTableBodyRow',\n components: {\n ExpandIcon,\n BodyCell,\n ExpandedRow,\n BodyExtraCell,\n RenderSlot,\n },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n isExpandRow: Boolean as PropType<boolean>,\n record: { type: Object },\n type: { type: String as PropType<RowType> },\n rowKey: { type: [Number, String] as PropType<Key>, required: true },\n supportExpand: Boolean,\n pos: Number as PropType<number>,\n rowIndex: Number as PropType<number>,\n flattenRowIndex: Number,\n indent: Number as PropType<number>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n getRowClassName: { type: Function as PropType<RowClassName<any>> },\n },\n setup(props) {\n const rowUniId = 'row_uni_id_' + uniIdCount++\n const tableContext = useInjectTable()\n const rowInstance = getCurrentInstance()\n const { table } = useProConfigInject()\n const { editCellKeys, closeEditor, openEditor } = useEditInject()\n\n let isUnmount = false\n const bodyRow = ref()\n\n const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection()\n const { onCellKeydown } = useCellKeyboard()\n\n const calMaxHeight = () => {\n if (isUnmount) return\n let rowHeight = 0\n let autoCells: HTMLDivElement[] = []\n if (bodyRow.value) {\n autoCells = bodyRow.value.querySelectorAll('div[data-cell-auto=true]')\n }\n autoCells.forEach((autoCell: HTMLDivElement) => {\n const { offsetWidth, offsetHeight } = autoCell\n let autoCellHeight = offsetWidth ? offsetHeight : 0\n const parentStyle = getComputedStyle(autoCell.parentNode as Element)\n autoCellHeight +=\n parseFloat(parentStyle.getPropertyValue('border-top-width')) +\n parseFloat(parentStyle.getPropertyValue('border-bottom-width'))\n rowHeight = rowHeight > autoCellHeight ? rowHeight : autoCellHeight\n })\n if (autoCells.length) {\n tableContext.addRowHeight(rowUniId, props.rowKey!, rowHeight)\n } else {\n tableContext.removeRowHeight(rowUniId)\n }\n }\n\n watch(\n () => props.rowKey,\n () => {\n calMaxHeight()\n },\n { flush: 'post' },\n )\n\n const resizeObserver: ResizeObserver = new ResizeObserver(() => {\n calMaxHeight()\n })\n\n const { columns, columnStartIndex } = useInjectBodyRows()\n const mergedColumns = computed(() =>\n (props.type === 'center'\n ? tableContext.centerRowColumnsMap.value.get(props.rowKey)\n : columns.value)!.filter((item) => !!item),\n )\n\n const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } =\n useInjectBody()\n const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey, rowHover } =\n useInjectHover()\n\n const popupContainer = computed(() =>\n props.type === 'left'\n ? leftPopupContainer.value\n : props.type === 'center'\n ? centerPopupContainer.value\n : props.type === 'right'\n ? rightPopupContainer.value\n : null,\n )\n\n const isDragging = eagerComputed(() => tableContext.draggingRowKey.value === props.rowKey)\n const isRowHover = eagerComputed(() => hoverRowKey.value === props.rowKey)\n\n watch(\n [isRowHover, bodyRow],\n () => {\n bodyRow.value &&\n rowHover.value &&\n (isRowHover.value\n ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`)\n : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`))\n },\n { immediate: true, flush: 'post' },\n )\n\n const mergedTooltipOpen = eagerComputed(() => tooltipOpen.value && isRowHover.value)\n\n let timer: any\n onBeforeUnmount(() => {\n isUnmount = true\n resizeObserver.disconnect()\n clearTimeout(timer)\n tableContext.removeRowHeight(rowUniId)\n })\n\n const hasMultiRowSpanInfo = eagerComputed(() => {\n return !tableContext.hasMultiRowSpanInfo.value[props.rowKey!]\n })\n\n const customRowProps = computed(() => {\n return tableContext.props.customRow?.(props.record!, props.rowIndex)\n })\n\n const rowSelectionType = computed(() => {\n return tableContext.props.rowSelection?.type\n })\n\n const isExpanded = ref(false)\n const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value)\n const expanded = eagerComputed(() => expandedRowKeys.value.has?.(props.rowKey!))\n const expandIconColumnIndex = computed(() => tableContext.expandIconColumnIndex.value || 0)\n const indentSize = computed(() => tableContext.indentSize.value)\n\n watchEffect(() => {\n if (expanded.value) {\n isExpanded.value = true\n }\n })\n\n const rowExpandable = computed(\n () =>\n tableContext.expandType.value === 'row' &&\n tableContext.props.rowExpandable?.(props.record!),\n )\n\n const nestExpandable = computed(() => tableContext.expandType.value === 'nest')\n\n const hasNestChildren = computed(\n () =>\n !!(\n tableContext.childrenColumnName.value &&\n props.record?.[tableContext.childrenColumnName.value]?.length\n ),\n )\n const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value)\n\n const onInternalTriggerExpand = (record: any, event: any) => {\n tableContext.onTriggerExpand(record, props.rowKey!, event)\n }\n\n const mergedRowHeights = computed(() => tableContext.mergedRowHeights.value)\n\n const height = eagerComputed(() => mergedRowHeights.value[props.rowKey!])\n const cellHeight = eagerComputed(() => tableContext.rowHeights.value[props.rowKey!])\n\n const isSelected = computed(() => {\n const highlightSelectRow =\n tableContext.props.highlightSelectRow ?? table?.value?.highlightSelectRow\n return (\n highlightSelectRow && tableContext.selection.derivedSelectedKeySet.value.has(props.rowKey!)\n )\n })\n\n const rowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n const isEven = rowIndex! % 2 == 0\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-row-level-${indent}`]: true,\n [`${prefixCls}-row-hover`]: isRowHover.value && rowHover.value,\n [`${prefixCls}-row-dragging`]: isDragging.value,\n [`${prefixCls}-row-dragging-insert-target`]:\n tableContext.insertToRowKey.value === props.rowKey,\n [`${prefixCls}-row-odd`]: !isEven,\n [`${prefixCls}-row-even`]: isEven,\n [`${prefixCls}-no-height`]: !height.value,\n [`${prefixCls}-row-selected`]: isSelected.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandRowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-expanded-row`]: true,\n [`${prefixCls}-expanded-row-level-${indent! + 1}`]: true,\n [`${prefixCls}-no-height`]: !height.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandColumnWidth = eagerComputed(() => {\n return tableContext.allCellProps.value[props.rowKey!]?.[ExpandColumnKey]?.props?.style?.width\n })\n\n const rowStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {\n opacity: 1,\n [`--${props.prefixCls}-row-bg`]: `var(--${props.prefixCls}-row-bg-${props.rowKey}, var(--${props.prefixCls}-bg))`,\n }\n if (hasMultiRowSpanInfo.value) {\n style.transform = `translateY(${props.pos}px)`\n } else {\n style.top = `${props.pos}px`\n }\n if (height.value !== undefined) {\n style.height = `${height.value}px`\n } else {\n style.height = `${tableContext.baseHeight.value}px`\n }\n if (props.isExpandRow && columnStartIndex.value === 0) {\n style.width = expandColumnWidth.value\n style.minWidth = '100%'\n }\n return style\n })\n\n watch(\n () => ({ ...rowStyle.value }),\n (newStyle, oldStyle = {}) => {\n if (tableContext.animateRows.value && !tableContext.useAnimate.value) {\n if (\n newStyle.top !== oldStyle.top ||\n newStyle.height !== oldStyle.height ||\n newStyle.transform !== oldStyle.transform\n ) {\n nextTick(() => {\n clearTimeout(timer)\n if (rowInstance?.vnode.el && rowInstance.vnode.el.style) {\n rowInstance.vnode.el.style.transition = 'none'\n timer = setTimeout(() => {\n if (rowInstance?.vnode?.el?.style) {\n rowInstance.vnode.el.style.transition = null\n }\n }, 100)\n }\n })\n }\n }\n },\n { immediate: true },\n )\n\n useProvideBodyRow({\n top: computed(() => props.pos!),\n height: computed(() =>\n height.value !== undefined ? height.value : tableContext.baseHeight.value,\n ),\n rowKey: computed(() => props.rowKey),\n })\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-position-absolute`]: true,\n }))\n\n return {\n rowClass,\n rowStyle,\n cellClass,\n tableContext,\n mergedRowHeights,\n handleCellBlur,\n handleCellHover,\n handleClick: (event: any) => {\n const expandRowByClick =\n tableContext.props.expandRowByClick ?? table?.value?.expandRowByClick\n expandRowByClick && mergedExpandable.value && onInternalTriggerExpand(props.record, event)\n },\n rowSelectionType,\n nestExpandable,\n hasNestChildren,\n mergedExpandable,\n expandIconColumnIndex,\n indentSize,\n expanded,\n onInternalTriggerExpand,\n customRowProps,\n expandColumnKey: ExpandColumnKey,\n expandRowClass,\n mergedColumns,\n height,\n cellHeight,\n columnStartIndex,\n resizeObserver,\n calMaxHeight,\n bodyRow,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n editCellKeys,\n closeEditor,\n openEditor,\n mergedTooltipOpen,\n onCellMousedown,\n onCellKeydown,\n onCellMousemove,\n onCellClick,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isExpandRow\">\n <div\n v-if=\"columnStartIndex === 0\"\n ref=\"bodyRow\"\n :data-row-key=\"rowKey\"\n :class=\"expandRowClass\"\n :style=\"rowStyle\"\n role=\"row\"\n >\n <ExpandedRow\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n />\n </div>\n </template>\n <div\n v-else\n v-bind=\"customRowProps\"\n ref=\"bodyRow\"\n :class=\"rowClass\"\n :style=\"rowStyle\"\n :data-row-key=\"rowKey\"\n role=\"row\"\n @click=\"handleClick\"\n >\n <RenderSlot>\n <template v-for=\"(column, index) in mergedColumns\" :key=\"column && column.columnKey\">\n <BodyExtraCell\n v-if=\"column && column.__Internal__Column__\"\n :prefix-cls=\"prefixCls\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex!\"\n :type=\"type\"\n :column=\"mergedColumns?.[index]\"\n :expanded=\"expanded\"\n :support-expand=\"mergedExpandable\"\n :record=\"record\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @mouseleave=\"handleCellBlur\"\n />\n <BodyCell\n v-else-if=\"column\"\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :type=\"type\"\n :row-index=\"rowIndex!\"\n :flatten-row-index=\"flattenRowIndex\"\n :wrap-text=\"wrapText\"\n :column=\"column\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n :has-append-node=\"column.columnIndex === expandIconColumnIndex && nestExpandable\"\n :height=\"cellHeight\"\n :get-popup-container=\"getPopupContainer\"\n :tooltip-open=\"mergedTooltipOpen && hoverColumnKey === column.columnKey\"\n :edit-cell-keys=\"editCellKeys\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\n @mousedown=\"onCellMousedown\"\n @mousemove=\"onCellMousemove\"\n @keydown=\"onCellKeydown\"\n @click=\"onCellClick\"\n >\n <template #appendNode>\n <div :class=\"`${prefixCls}-append-node`\">\n <span\n :style=\"`padding-left: ${(indent || 0) * indentSize}px`\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n ></span>\n <ExpandIcon\n :expanded=\"expanded\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_Fragment","_normalizeClass","_normalizeStyle","_createVNode","_mergeProps","_withCtx","_renderList","_createBlock","_createElementVNode"],"mappings":"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"}
@@ -142,8 +142,8 @@ var _sfc_main = defineComponent({
142
142
  const nestExpandable = computed(() => tableContext.expandType.value === "nest");
143
143
  const hasNestChildren = computed(
144
144
  () => {
145
- var _a;
146
- return !!(tableContext.childrenColumnName.value && ((_a = props.record) == null ? void 0 : _a[tableContext.childrenColumnName.value]));
145
+ var _a, _b;
146
+ return !!(tableContext.childrenColumnName.value && ((_b = (_a = props.record) == null ? void 0 : _a[tableContext.childrenColumnName.value]) == null ? void 0 : _b.length));
147
147
  }
148
148
  );
149
149
  const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value);
@@ -1 +1 @@
1
- {"version":3,"file":"BodyRow.vue2.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyRow.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-10-12 13:49:34\n * @Description:\n-->\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n onBeforeUnmount,\n computed,\n nextTick,\n watchEffect,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRows, useProvideBodyRow } from '../context/BodyRowsContext'\nimport { ExpandColumnKey } from '../../hooks/useColumns'\nimport { RenderSlot } from '../../utils/renderVNode'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { useCellSelection } from '../../hooks/useCellSelection'\nimport { useCellKeyboard } from '../../hooks/useCellKeyboard'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport eagerComputed from '../../utils/eagerComputed'\nimport classNames from '../../utils/classNames'\nimport BodyCell from './BodyCell'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { CSSProperties, PropType } from 'vue'\nimport type { RowClassName, RowType, Key } from '../interface'\n\nlet uniIdCount = 0\nexport default defineComponent({\n name: 'ProTableBodyRow',\n components: {\n ExpandIcon,\n BodyCell,\n ExpandedRow,\n BodyExtraCell,\n RenderSlot,\n },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n isExpandRow: Boolean as PropType<boolean>,\n record: { type: Object },\n type: { type: String as PropType<RowType> },\n rowKey: { type: [Number, String] as PropType<Key>, required: true },\n supportExpand: Boolean,\n pos: Number as PropType<number>,\n rowIndex: Number as PropType<number>,\n flattenRowIndex: Number,\n indent: Number as PropType<number>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n getRowClassName: { type: Function as PropType<RowClassName<any>> },\n },\n setup(props) {\n const rowUniId = 'row_uni_id_' + uniIdCount++\n const tableContext = useInjectTable()\n const rowInstance = getCurrentInstance()\n const { table } = useProConfigInject()\n const { editCellKeys, closeEditor, openEditor } = useEditInject()\n\n let isUnmount = false\n const bodyRow = ref()\n\n const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection()\n const { onCellKeydown } = useCellKeyboard()\n\n const calMaxHeight = () => {\n if (isUnmount) return\n let rowHeight = 0\n let autoCells: HTMLDivElement[] = []\n if (bodyRow.value) {\n autoCells = bodyRow.value.querySelectorAll('div[data-cell-auto=true]')\n }\n autoCells.forEach((autoCell: HTMLDivElement) => {\n const { offsetWidth, offsetHeight } = autoCell\n let autoCellHeight = offsetWidth ? offsetHeight : 0\n const parentStyle = getComputedStyle(autoCell.parentNode as Element)\n autoCellHeight +=\n parseFloat(parentStyle.getPropertyValue('border-top-width')) +\n parseFloat(parentStyle.getPropertyValue('border-bottom-width'))\n rowHeight = rowHeight > autoCellHeight ? rowHeight : autoCellHeight\n })\n if (autoCells.length) {\n tableContext.addRowHeight(rowUniId, props.rowKey!, rowHeight)\n } else {\n tableContext.removeRowHeight(rowUniId)\n }\n }\n\n watch(\n () => props.rowKey,\n () => {\n calMaxHeight()\n },\n { flush: 'post' },\n )\n\n const resizeObserver: ResizeObserver = new ResizeObserver(() => {\n calMaxHeight()\n })\n\n const { columns, columnStartIndex } = useInjectBodyRows()\n const mergedColumns = computed(() =>\n (props.type === 'center'\n ? tableContext.centerRowColumnsMap.value.get(props.rowKey)\n : columns.value)!.filter((item) => !!item),\n )\n\n const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } =\n useInjectBody()\n const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey, rowHover } =\n useInjectHover()\n\n const popupContainer = computed(() =>\n props.type === 'left'\n ? leftPopupContainer.value\n : props.type === 'center'\n ? centerPopupContainer.value\n : props.type === 'right'\n ? rightPopupContainer.value\n : null,\n )\n\n const isDragging = eagerComputed(() => tableContext.draggingRowKey.value === props.rowKey)\n const isRowHover = eagerComputed(() => hoverRowKey.value === props.rowKey)\n\n watch(\n [isRowHover, bodyRow],\n () => {\n bodyRow.value &&\n rowHover.value &&\n (isRowHover.value\n ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`)\n : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`))\n },\n { immediate: true, flush: 'post' },\n )\n\n const mergedTooltipOpen = eagerComputed(() => tooltipOpen.value && isRowHover.value)\n\n let timer: any\n onBeforeUnmount(() => {\n isUnmount = true\n resizeObserver.disconnect()\n clearTimeout(timer)\n tableContext.removeRowHeight(rowUniId)\n })\n\n const hasMultiRowSpanInfo = eagerComputed(() => {\n return !tableContext.hasMultiRowSpanInfo.value[props.rowKey!]\n })\n\n const customRowProps = computed(() => {\n return tableContext.props.customRow?.(props.record!, props.rowIndex)\n })\n\n const rowSelectionType = computed(() => {\n return tableContext.props.rowSelection?.type\n })\n\n const isExpanded = ref(false)\n const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value)\n const expanded = eagerComputed(() => expandedRowKeys.value.has?.(props.rowKey!))\n const expandIconColumnIndex = computed(() => tableContext.expandIconColumnIndex.value || 0)\n const indentSize = computed(() => tableContext.indentSize.value)\n\n watchEffect(() => {\n if (expanded.value) {\n isExpanded.value = true\n }\n })\n\n const rowExpandable = computed(\n () =>\n tableContext.expandType.value === 'row' &&\n tableContext.props.rowExpandable?.(props.record!),\n )\n\n const nestExpandable = computed(() => tableContext.expandType.value === 'nest')\n\n const hasNestChildren = computed(\n () =>\n !!(\n tableContext.childrenColumnName.value &&\n props.record?.[tableContext.childrenColumnName.value]\n ),\n )\n const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value)\n\n const onInternalTriggerExpand = (record: any, event: any) => {\n tableContext.onTriggerExpand(record, props.rowKey!, event)\n }\n\n const mergedRowHeights = computed(() => tableContext.mergedRowHeights.value)\n\n const height = eagerComputed(() => mergedRowHeights.value[props.rowKey!])\n const cellHeight = eagerComputed(() => tableContext.rowHeights.value[props.rowKey!])\n\n const isSelected = computed(() => {\n const highlightSelectRow =\n tableContext.props.highlightSelectRow ?? table?.value?.highlightSelectRow\n return (\n highlightSelectRow && tableContext.selection.derivedSelectedKeySet.value.has(props.rowKey!)\n )\n })\n\n const rowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n const isEven = rowIndex! % 2 == 0\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-row-level-${indent}`]: true,\n [`${prefixCls}-row-hover`]: isRowHover.value && rowHover.value,\n [`${prefixCls}-row-dragging`]: isDragging.value,\n [`${prefixCls}-row-dragging-insert-target`]:\n tableContext.insertToRowKey.value === props.rowKey,\n [`${prefixCls}-row-odd`]: !isEven,\n [`${prefixCls}-row-even`]: isEven,\n [`${prefixCls}-no-height`]: !height.value,\n [`${prefixCls}-row-selected`]: isSelected.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandRowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-expanded-row`]: true,\n [`${prefixCls}-expanded-row-level-${indent! + 1}`]: true,\n [`${prefixCls}-no-height`]: !height.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandColumnWidth = eagerComputed(() => {\n return tableContext.allCellProps.value[props.rowKey!]?.[ExpandColumnKey]?.props?.style?.width\n })\n\n const rowStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {\n opacity: 1,\n [`--${props.prefixCls}-row-bg`]: `var(--${props.prefixCls}-row-bg-${props.rowKey}, var(--${props.prefixCls}-bg))`,\n }\n if (hasMultiRowSpanInfo.value) {\n style.transform = `translateY(${props.pos}px)`\n } else {\n style.top = `${props.pos}px`\n }\n if (height.value !== undefined) {\n style.height = `${height.value}px`\n } else {\n style.height = `${tableContext.baseHeight.value}px`\n }\n if (props.isExpandRow && columnStartIndex.value === 0) {\n style.width = expandColumnWidth.value\n style.minWidth = '100%'\n }\n return style\n })\n\n watch(\n () => ({ ...rowStyle.value }),\n (newStyle, oldStyle = {}) => {\n if (tableContext.animateRows.value && !tableContext.useAnimate.value) {\n if (\n newStyle.top !== oldStyle.top ||\n newStyle.height !== oldStyle.height ||\n newStyle.transform !== oldStyle.transform\n ) {\n nextTick(() => {\n clearTimeout(timer)\n if (rowInstance?.vnode.el && rowInstance.vnode.el.style) {\n rowInstance.vnode.el.style.transition = 'none'\n timer = setTimeout(() => {\n if (rowInstance?.vnode?.el?.style) {\n rowInstance.vnode.el.style.transition = null\n }\n }, 100)\n }\n })\n }\n }\n },\n { immediate: true },\n )\n\n useProvideBodyRow({\n top: computed(() => props.pos!),\n height: computed(() =>\n height.value !== undefined ? height.value : tableContext.baseHeight.value,\n ),\n rowKey: computed(() => props.rowKey),\n })\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-position-absolute`]: true,\n }))\n\n return {\n rowClass,\n rowStyle,\n cellClass,\n tableContext,\n mergedRowHeights,\n handleCellBlur,\n handleCellHover,\n handleClick: (event: any) => {\n const expandRowByClick =\n tableContext.props.expandRowByClick ?? table?.value?.expandRowByClick\n expandRowByClick && mergedExpandable.value && onInternalTriggerExpand(props.record, event)\n },\n rowSelectionType,\n nestExpandable,\n hasNestChildren,\n mergedExpandable,\n expandIconColumnIndex,\n indentSize,\n expanded,\n onInternalTriggerExpand,\n customRowProps,\n expandColumnKey: ExpandColumnKey,\n expandRowClass,\n mergedColumns,\n height,\n cellHeight,\n columnStartIndex,\n resizeObserver,\n calMaxHeight,\n bodyRow,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n editCellKeys,\n closeEditor,\n openEditor,\n mergedTooltipOpen,\n onCellMousedown,\n onCellKeydown,\n onCellMousemove,\n onCellClick,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isExpandRow\">\n <div\n v-if=\"columnStartIndex === 0\"\n ref=\"bodyRow\"\n :data-row-key=\"rowKey\"\n :class=\"expandRowClass\"\n :style=\"rowStyle\"\n role=\"row\"\n >\n <ExpandedRow\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n />\n </div>\n </template>\n <div\n v-else\n v-bind=\"customRowProps\"\n ref=\"bodyRow\"\n :class=\"rowClass\"\n :style=\"rowStyle\"\n :data-row-key=\"rowKey\"\n role=\"row\"\n @click=\"handleClick\"\n >\n <RenderSlot>\n <template v-for=\"(column, index) in mergedColumns\" :key=\"column && column.columnKey\">\n <BodyExtraCell\n v-if=\"column && column.__Internal__Column__\"\n :prefix-cls=\"prefixCls\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex!\"\n :type=\"type\"\n :column=\"mergedColumns?.[index]\"\n :expanded=\"expanded\"\n :support-expand=\"mergedExpandable\"\n :record=\"record\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @mouseleave=\"handleCellBlur\"\n />\n <BodyCell\n v-else-if=\"column\"\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :type=\"type\"\n :row-index=\"rowIndex!\"\n :flatten-row-index=\"flattenRowIndex\"\n :wrap-text=\"wrapText\"\n :column=\"column\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n :has-append-node=\"column.columnIndex === expandIconColumnIndex && nestExpandable\"\n :height=\"cellHeight\"\n :get-popup-container=\"getPopupContainer\"\n :tooltip-open=\"mergedTooltipOpen && hoverColumnKey === column.columnKey\"\n :edit-cell-keys=\"editCellKeys\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\n @mousedown=\"onCellMousedown\"\n @mousemove=\"onCellMousemove\"\n @keydown=\"onCellKeydown\"\n @click=\"onCellClick\"\n >\n <template #appendNode>\n <div :class=\"`${prefixCls}-append-node`\">\n <span\n :style=\"`padding-left: ${(indent || 0) * indentSize}px`\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n ></span>\n <ExpandIcon\n :expanded=\"expanded\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BodyRow.vue2.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyRow.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-10-20 15:34:32\n * @Description:\n-->\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n onBeforeUnmount,\n computed,\n nextTick,\n watchEffect,\n} from 'vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { useInjectBodyRows, useProvideBodyRow } from '../context/BodyRowsContext'\nimport { ExpandColumnKey } from '../../hooks/useColumns'\nimport { RenderSlot } from '../../utils/renderVNode'\nimport { useEditInject } from '../../hooks/useEdit'\nimport { useCellSelection } from '../../hooks/useCellSelection'\nimport { useCellKeyboard } from '../../hooks/useCellKeyboard'\nimport { useInjectHover } from '../../hooks/useHover'\nimport { addClass, removeClass } from '../../utils/class'\nimport { useProConfigInject } from '@pro-design-vue/components/config-provider'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport eagerComputed from '../../utils/eagerComputed'\nimport classNames from '../../utils/classNames'\nimport BodyCell from './BodyCell'\nimport ExpandedRow from './ExpandedRow.vue'\nimport BodyExtraCell from './BodyExtraCell.vue'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { CSSProperties, PropType } from 'vue'\nimport type { RowClassName, RowType, Key } from '../interface'\n\nlet uniIdCount = 0\nexport default defineComponent({\n name: 'ProTableBodyRow',\n components: {\n ExpandIcon,\n BodyCell,\n ExpandedRow,\n BodyExtraCell,\n RenderSlot,\n },\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n isExpandRow: Boolean as PropType<boolean>,\n record: { type: Object },\n type: { type: String as PropType<RowType> },\n rowKey: { type: [Number, String] as PropType<Key>, required: true },\n supportExpand: Boolean,\n pos: Number as PropType<number>,\n rowIndex: Number as PropType<number>,\n flattenRowIndex: Number,\n indent: Number as PropType<number>,\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n getRowClassName: { type: Function as PropType<RowClassName<any>> },\n },\n setup(props) {\n const rowUniId = 'row_uni_id_' + uniIdCount++\n const tableContext = useInjectTable()\n const rowInstance = getCurrentInstance()\n const { table } = useProConfigInject()\n const { editCellKeys, closeEditor, openEditor } = useEditInject()\n\n let isUnmount = false\n const bodyRow = ref()\n\n const { onCellMousedown, onCellMousemove, onCellClick } = useCellSelection()\n const { onCellKeydown } = useCellKeyboard()\n\n const calMaxHeight = () => {\n if (isUnmount) return\n let rowHeight = 0\n let autoCells: HTMLDivElement[] = []\n if (bodyRow.value) {\n autoCells = bodyRow.value.querySelectorAll('div[data-cell-auto=true]')\n }\n autoCells.forEach((autoCell: HTMLDivElement) => {\n const { offsetWidth, offsetHeight } = autoCell\n let autoCellHeight = offsetWidth ? offsetHeight : 0\n const parentStyle = getComputedStyle(autoCell.parentNode as Element)\n autoCellHeight +=\n parseFloat(parentStyle.getPropertyValue('border-top-width')) +\n parseFloat(parentStyle.getPropertyValue('border-bottom-width'))\n rowHeight = rowHeight > autoCellHeight ? rowHeight : autoCellHeight\n })\n if (autoCells.length) {\n tableContext.addRowHeight(rowUniId, props.rowKey!, rowHeight)\n } else {\n tableContext.removeRowHeight(rowUniId)\n }\n }\n\n watch(\n () => props.rowKey,\n () => {\n calMaxHeight()\n },\n { flush: 'post' },\n )\n\n const resizeObserver: ResizeObserver = new ResizeObserver(() => {\n calMaxHeight()\n })\n\n const { columns, columnStartIndex } = useInjectBodyRows()\n const mergedColumns = computed(() =>\n (props.type === 'center'\n ? tableContext.centerRowColumnsMap.value.get(props.rowKey)\n : columns.value)!.filter((item) => !!item),\n )\n\n const { tooltipOpen, leftPopupContainer, centerPopupContainer, rightPopupContainer } =\n useInjectBody()\n const { handleCellBlur, handleCellHover, hoverRowKey, hoverColumnKey, rowHover } =\n useInjectHover()\n\n const popupContainer = computed(() =>\n props.type === 'left'\n ? leftPopupContainer.value\n : props.type === 'center'\n ? centerPopupContainer.value\n : props.type === 'right'\n ? rightPopupContainer.value\n : null,\n )\n\n const isDragging = eagerComputed(() => tableContext.draggingRowKey.value === props.rowKey)\n const isRowHover = eagerComputed(() => hoverRowKey.value === props.rowKey)\n\n watch(\n [isRowHover, bodyRow],\n () => {\n bodyRow.value &&\n rowHover.value &&\n (isRowHover.value\n ? addClass(bodyRow.value, `${props.prefixCls}-row-hover`)\n : removeClass(bodyRow.value, `${props.prefixCls}-row-hover`))\n },\n { immediate: true, flush: 'post' },\n )\n\n const mergedTooltipOpen = eagerComputed(() => tooltipOpen.value && isRowHover.value)\n\n let timer: any\n onBeforeUnmount(() => {\n isUnmount = true\n resizeObserver.disconnect()\n clearTimeout(timer)\n tableContext.removeRowHeight(rowUniId)\n })\n\n const hasMultiRowSpanInfo = eagerComputed(() => {\n return !tableContext.hasMultiRowSpanInfo.value[props.rowKey!]\n })\n\n const customRowProps = computed(() => {\n return tableContext.props.customRow?.(props.record!, props.rowIndex)\n })\n\n const rowSelectionType = computed(() => {\n return tableContext.props.rowSelection?.type\n })\n\n const isExpanded = ref(false)\n const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value)\n const expanded = eagerComputed(() => expandedRowKeys.value.has?.(props.rowKey!))\n const expandIconColumnIndex = computed(() => tableContext.expandIconColumnIndex.value || 0)\n const indentSize = computed(() => tableContext.indentSize.value)\n\n watchEffect(() => {\n if (expanded.value) {\n isExpanded.value = true\n }\n })\n\n const rowExpandable = computed(\n () =>\n tableContext.expandType.value === 'row' &&\n tableContext.props.rowExpandable?.(props.record!),\n )\n\n const nestExpandable = computed(() => tableContext.expandType.value === 'nest')\n\n const hasNestChildren = computed(\n () =>\n !!(\n tableContext.childrenColumnName.value &&\n props.record?.[tableContext.childrenColumnName.value]?.length\n ),\n )\n const mergedExpandable = computed(() => rowExpandable.value || nestExpandable.value)\n\n const onInternalTriggerExpand = (record: any, event: any) => {\n tableContext.onTriggerExpand(record, props.rowKey!, event)\n }\n\n const mergedRowHeights = computed(() => tableContext.mergedRowHeights.value)\n\n const height = eagerComputed(() => mergedRowHeights.value[props.rowKey!])\n const cellHeight = eagerComputed(() => tableContext.rowHeights.value[props.rowKey!])\n\n const isSelected = computed(() => {\n const highlightSelectRow =\n tableContext.props.highlightSelectRow ?? table?.value?.highlightSelectRow\n return (\n highlightSelectRow && tableContext.selection.derivedSelectedKeySet.value.has(props.rowKey!)\n )\n })\n\n const rowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n const isEven = rowIndex! % 2 == 0\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-row-level-${indent}`]: true,\n [`${prefixCls}-row-hover`]: isRowHover.value && rowHover.value,\n [`${prefixCls}-row-dragging`]: isDragging.value,\n [`${prefixCls}-row-dragging-insert-target`]:\n tableContext.insertToRowKey.value === props.rowKey,\n [`${prefixCls}-row-odd`]: !isEven,\n [`${prefixCls}-row-even`]: isEven,\n [`${prefixCls}-no-height`]: !height.value,\n [`${prefixCls}-row-selected`]: isSelected.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandRowClass = computed(() => {\n const { prefixCls, record, rowIndex, indent } = props\n return classNames(\n {\n [`${prefixCls}-row`]: true,\n [`${prefixCls}-expanded-row`]: true,\n [`${prefixCls}-expanded-row-level-${indent! + 1}`]: true,\n [`${prefixCls}-no-height`]: !height.value,\n },\n props.getRowClassName?.(record, rowIndex!, indent),\n )\n })\n\n const expandColumnWidth = eagerComputed(() => {\n return tableContext.allCellProps.value[props.rowKey!]?.[ExpandColumnKey]?.props?.style?.width\n })\n\n const rowStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {\n opacity: 1,\n [`--${props.prefixCls}-row-bg`]: `var(--${props.prefixCls}-row-bg-${props.rowKey}, var(--${props.prefixCls}-bg))`,\n }\n if (hasMultiRowSpanInfo.value) {\n style.transform = `translateY(${props.pos}px)`\n } else {\n style.top = `${props.pos}px`\n }\n if (height.value !== undefined) {\n style.height = `${height.value}px`\n } else {\n style.height = `${tableContext.baseHeight.value}px`\n }\n if (props.isExpandRow && columnStartIndex.value === 0) {\n style.width = expandColumnWidth.value\n style.minWidth = '100%'\n }\n return style\n })\n\n watch(\n () => ({ ...rowStyle.value }),\n (newStyle, oldStyle = {}) => {\n if (tableContext.animateRows.value && !tableContext.useAnimate.value) {\n if (\n newStyle.top !== oldStyle.top ||\n newStyle.height !== oldStyle.height ||\n newStyle.transform !== oldStyle.transform\n ) {\n nextTick(() => {\n clearTimeout(timer)\n if (rowInstance?.vnode.el && rowInstance.vnode.el.style) {\n rowInstance.vnode.el.style.transition = 'none'\n timer = setTimeout(() => {\n if (rowInstance?.vnode?.el?.style) {\n rowInstance.vnode.el.style.transition = null\n }\n }, 100)\n }\n })\n }\n }\n },\n { immediate: true },\n )\n\n useProvideBodyRow({\n top: computed(() => props.pos!),\n height: computed(() =>\n height.value !== undefined ? height.value : tableContext.baseHeight.value,\n ),\n rowKey: computed(() => props.rowKey),\n })\n\n const cellClass = computed(() => ({\n [`${props.prefixCls}-cell`]: true,\n [`${props.prefixCls}-position-absolute`]: true,\n }))\n\n return {\n rowClass,\n rowStyle,\n cellClass,\n tableContext,\n mergedRowHeights,\n handleCellBlur,\n handleCellHover,\n handleClick: (event: any) => {\n const expandRowByClick =\n tableContext.props.expandRowByClick ?? table?.value?.expandRowByClick\n expandRowByClick && mergedExpandable.value && onInternalTriggerExpand(props.record, event)\n },\n rowSelectionType,\n nestExpandable,\n hasNestChildren,\n mergedExpandable,\n expandIconColumnIndex,\n indentSize,\n expanded,\n onInternalTriggerExpand,\n customRowProps,\n expandColumnKey: ExpandColumnKey,\n expandRowClass,\n mergedColumns,\n height,\n cellHeight,\n columnStartIndex,\n resizeObserver,\n calMaxHeight,\n bodyRow,\n hoverRowKey,\n hoverColumnKey,\n xVirtual: eagerComputed(() => tableContext.xVirtual.value),\n getPopupContainer: () => popupContainer.value!,\n editCellKeys,\n closeEditor,\n openEditor,\n mergedTooltipOpen,\n onCellMousedown,\n onCellKeydown,\n onCellMousemove,\n onCellClick,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isExpandRow\">\n <div\n v-if=\"columnStartIndex === 0\"\n ref=\"bodyRow\"\n :data-row-key=\"rowKey\"\n :class=\"expandRowClass\"\n :style=\"rowStyle\"\n role=\"row\"\n >\n <ExpandedRow\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n />\n </div>\n </template>\n <div\n v-else\n v-bind=\"customRowProps\"\n ref=\"bodyRow\"\n :class=\"rowClass\"\n :style=\"rowStyle\"\n :data-row-key=\"rowKey\"\n role=\"row\"\n @click=\"handleClick\"\n >\n <RenderSlot>\n <template v-for=\"(column, index) in mergedColumns\" :key=\"column && column.columnKey\">\n <BodyExtraCell\n v-if=\"column && column.__Internal__Column__\"\n :prefix-cls=\"prefixCls\"\n :row-key=\"rowKey\"\n :row-index=\"rowIndex!\"\n :type=\"type\"\n :column=\"mergedColumns?.[index]\"\n :expanded=\"expanded\"\n :support-expand=\"mergedExpandable\"\n :record=\"record\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @mouseleave=\"handleCellBlur\"\n />\n <BodyCell\n v-else-if=\"column\"\n :prefix-cls=\"prefixCls\"\n :item=\"record\"\n :row-key=\"rowKey\"\n :type=\"type\"\n :row-index=\"rowIndex!\"\n :flatten-row-index=\"flattenRowIndex\"\n :wrap-text=\"wrapText\"\n :column=\"column\"\n :resize-observer=\"resizeObserver\"\n :cal-max-height=\"calMaxHeight\"\n :has-append-node=\"column.columnIndex === expandIconColumnIndex && nestExpandable\"\n :height=\"cellHeight\"\n :get-popup-container=\"getPopupContainer\"\n :tooltip-open=\"mergedTooltipOpen && hoverColumnKey === column.columnKey\"\n :edit-cell-keys=\"editCellKeys\"\n @closeEditor=\"closeEditor\"\n @openEditor=\"openEditor\"\n @mouseenter=\"\n handleCellHover(rowKey, column.columnKey, tableContext.draggingRowKey.value!)\n \"\n @cellLeave=\"handleCellBlur\"\n @mousedown=\"onCellMousedown\"\n @mousemove=\"onCellMousemove\"\n @keydown=\"onCellKeydown\"\n @click=\"onCellClick\"\n >\n <template #appendNode>\n <div :class=\"`${prefixCls}-append-node`\">\n <span\n :style=\"`padding-left: ${(indent || 0) * indentSize}px`\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n ></span>\n <ExpandIcon\n :expanded=\"expanded\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":[],"mappings":"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"}