pro-design-vue 1.3.20 → 1.3.21

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 (72) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +26 -7
  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 +26 -7
  8. package/es/components/config-provider/src/typing.d.ts +2 -1
  9. package/es/components/table/src/components/Body/Body.vue.d.ts +9 -0
  10. package/es/components/table/src/components/Body/BodyExtraCell.vue.d.ts +6 -1
  11. package/es/components/table/src/components/Body/BodyRow.vue.d.ts +9 -0
  12. package/es/components/table/src/components/Body/BodyRows.vue.d.ts +9 -0
  13. package/es/components/table/src/components/ExpandIcon.vue.d.ts +3 -0
  14. package/es/components/table/src/components/InteralTable.vue.d.ts +18 -0
  15. package/es/components/table/src/components/Table.d.ts +9 -0
  16. package/es/components/table/src/components/context/TableContext.d.ts +2 -1
  17. package/es/components/table/src/components/interface.d.ts +13 -0
  18. package/es/index.d.ts +15 -0
  19. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue.mjs +2 -1
  20. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue.mjs.map +1 -1
  21. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue2.mjs +1 -0
  22. package/es/packages/components/table/src/components/Body/BodyExtraCell.vue2.mjs.map +1 -1
  23. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs +4 -2
  24. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  25. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs +2 -0
  26. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  27. package/es/packages/components/table/src/components/ExpandIcon.vue.mjs.map +1 -1
  28. package/es/packages/components/table/src/components/ExpandIcon.vue2.mjs +4 -2
  29. package/es/packages/components/table/src/components/ExpandIcon.vue2.mjs.map +1 -1
  30. package/es/packages/components/table/src/components/InteralTable.vue.mjs.map +1 -1
  31. package/es/packages/components/table/src/components/InteralTable.vue2.mjs +7 -0
  32. package/es/packages/components/table/src/components/InteralTable.vue2.mjs.map +1 -1
  33. package/es/packages/components/table/src/components/context/TableContext.mjs.map +1 -1
  34. package/es/packages/components/table/src/components/interface.mjs +4 -0
  35. package/es/packages/components/table/src/components/interface.mjs.map +1 -1
  36. package/es/version.d.ts +1 -1
  37. package/es/version.mjs +1 -1
  38. package/es/version.mjs.map +1 -1
  39. package/lib/components/config-provider/src/typing.d.ts +2 -1
  40. package/lib/components/table/src/components/Body/Body.vue.d.ts +9 -0
  41. package/lib/components/table/src/components/Body/BodyExtraCell.vue.d.ts +6 -1
  42. package/lib/components/table/src/components/Body/BodyRow.vue.d.ts +9 -0
  43. package/lib/components/table/src/components/Body/BodyRows.vue.d.ts +9 -0
  44. package/lib/components/table/src/components/ExpandIcon.vue.d.ts +3 -0
  45. package/lib/components/table/src/components/InteralTable.vue.d.ts +18 -0
  46. package/lib/components/table/src/components/Table.d.ts +9 -0
  47. package/lib/components/table/src/components/context/TableContext.d.ts +2 -1
  48. package/lib/components/table/src/components/interface.d.ts +13 -0
  49. package/lib/index.d.ts +15 -0
  50. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue.js +2 -1
  51. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue.js.map +1 -1
  52. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue2.js +1 -0
  53. package/lib/packages/components/table/src/components/Body/BodyExtraCell.vue2.js.map +1 -1
  54. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js +4 -2
  55. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  56. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js +2 -0
  57. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  58. package/lib/packages/components/table/src/components/ExpandIcon.vue.js.map +1 -1
  59. package/lib/packages/components/table/src/components/ExpandIcon.vue2.js +4 -2
  60. package/lib/packages/components/table/src/components/ExpandIcon.vue2.js.map +1 -1
  61. package/lib/packages/components/table/src/components/InteralTable.vue.js.map +1 -1
  62. package/lib/packages/components/table/src/components/InteralTable.vue2.js +7 -0
  63. package/lib/packages/components/table/src/components/InteralTable.vue2.js.map +1 -1
  64. package/lib/packages/components/table/src/components/context/TableContext.js.map +1 -1
  65. package/lib/packages/components/table/src/components/interface.js +4 -0
  66. package/lib/packages/components/table/src/components/interface.js.map +1 -1
  67. package/lib/version.d.ts +1 -1
  68. package/lib/version.js +1 -1
  69. package/lib/version.js.map +1 -1
  70. package/package.json +1 -1
  71. package/theme-chalk/index.css +1 -1
  72. package/theme-chalk/src/table/table.less +49 -23
package/es/index.d.ts CHANGED
@@ -1954,6 +1954,10 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
1954
1954
  type: PropType<RenderExpandIcon<DefaultRecordType>>;
1955
1955
  default: undefined;
1956
1956
  };
1957
+ expandIconType: {
1958
+ type: PropType<ExpandIconType>;
1959
+ default: undefined;
1960
+ };
1957
1961
  onExpand: {
1958
1962
  type: PropType<(expanded: boolean, record: DefaultRecordType) => void>;
1959
1963
  default: undefined;
@@ -2449,6 +2453,10 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
2449
2453
  type: PropType<RenderExpandIcon<DefaultRecordType>>;
2450
2454
  default: undefined;
2451
2455
  };
2456
+ expandIconType: {
2457
+ type: PropType<ExpandIconType>;
2458
+ default: undefined;
2459
+ };
2452
2460
  onExpand: {
2453
2461
  type: PropType<(expanded: boolean, record: DefaultRecordType) => void>;
2454
2462
  default: undefined;
@@ -2850,6 +2858,7 @@ declare const _default_17: DefineComponent<ExtractPropTypes<{
2850
2858
  expandedRowRender: ExpandedRowRender<DefaultRecordType>;
2851
2859
  expandRowByClick: boolean;
2852
2860
  expandIcon: RenderExpandIcon<DefaultRecordType>;
2861
+ expandIconType: ExpandIconType;
2853
2862
  onExpand: (expanded: boolean, record: DefaultRecordType) => void;
2854
2863
  onExpandedRowsChange: (expandedKeys: ProTableKey[]) => void;
2855
2864
  defaultExpandAllRows: boolean;
@@ -5137,6 +5146,7 @@ declare type ExpandedRowRender<ValueType> = (opt: {
5137
5146
  indent: number;
5138
5147
  expanded: boolean;
5139
5148
  }) => any;
5149
+ declare type ExpandIconType = "default" | "arrow";
5140
5150
  export declare type ExtraSItemType = {
5141
5151
  className?: string;
5142
5152
  customUi?: boolean;
@@ -5644,6 +5654,10 @@ declare class Helper<T extends DefaultRecordType> {
5644
5654
  type: PropType<RenderExpandIcon<T>>;
5645
5655
  default: undefined;
5646
5656
  };
5657
+ expandIconType: {
5658
+ type: PropType<ExpandIconType>;
5659
+ default: undefined;
5660
+ };
5647
5661
  onExpand: {
5648
5662
  type: PropType<(expanded: boolean, record: T) => void>;
5649
5663
  default: undefined;
@@ -6376,6 +6390,7 @@ export declare interface ProConfigProviderProps extends Omit<ConfigProviderProps
6376
6390
  expandRowByClick?: boolean;
6377
6391
  rowKey?: string;
6378
6392
  size?: ProTableDensitySize;
6393
+ expandIconType?: ExpandIconType;
6379
6394
  rowHover?: boolean;
6380
6395
  summaryFixed?: boolean;
6381
6396
  columnEmptyText?: string;
@@ -56,11 +56,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
56
56
  key: 1,
57
57
  "prefix-cls": _ctx.prefixCls,
58
58
  expandable: "",
59
+ expandIconType: _ctx.expandIconType,
59
60
  expanded: _ctx.expanded,
60
61
  record: _ctx.record,
61
62
  disabled: !_ctx.supportExpand,
62
63
  onExpand: _ctx.onInternalTriggerExpand
63
- }, null, 8, ["prefix-cls", "expanded", "record", "disabled", "onExpand"])) : _ctx.column.type === "draggable" ? (openBlock(), createElementBlock("div", _hoisted_2, [
64
+ }, null, 8, ["prefix-cls", "expandIconType", "expanded", "record", "disabled", "onExpand"])) : _ctx.column.type === "draggable" ? (openBlock(), createElementBlock("div", _hoisted_2, [
64
65
  renderSlot(_ctx.$slots, "draggable-handle", {}, () => [
65
66
  createVNode(_component_MenuOutlined)
66
67
  ])
@@ -1 +1 @@
1
- {"version":3,"file":"BodyExtraCell.vue.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2023-12-22 10:31:47\n * @Description: \n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_mergeProps","_withModifiers","_openBlock","_Fragment","_createBlock","_renderSlot","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"BodyExtraCell.vue.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 14:32:53\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n ExpandIconType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n expandIconType: String as PropType<ExpandIconType>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expandIconType=\"expandIconType\"\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_mergeProps","_withModifiers","_openBlock","_Fragment","_createBlock","_renderSlot","_createVNode"],"mappings":"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"}
@@ -21,6 +21,7 @@ var _sfc_main = defineComponent({
21
21
  record: { type: Object },
22
22
  rowKey: { type: [Number, String] },
23
23
  expanded: Boolean,
24
+ expandIconType: String,
24
25
  supportExpand: Boolean
25
26
  },
26
27
  setup(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"BodyExtraCell.vue2.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2023-12-22 10:31:47\n * @Description: \n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BodyExtraCell.vue2.mjs","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyExtraCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-08 21:59:48\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 14:32:53\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, watchEffect } from 'vue'\nimport { MenuOutlined } from '@ant-design/icons-vue'\nimport { useInjectTable } from '../context/TableContext'\nimport { useInjectBody } from '../context/BodyContext'\nimport { conductCheck } from '../../utils/conductUtil'\nimport { arrDel, arrAdd } from '../../utils/util'\nimport { useInjectLevel } from '../../hooks/useLevel'\nimport devWarning from '../../utils/devWarning'\nimport Radio from '../Radio'\nimport Checkbox from '../Checkbox'\nimport ExpandIcon from '../ExpandIcon.vue'\n\nimport type { PropType } from 'vue'\nimport type {\n FinallyColumnType,\n RowType,\n Key,\n DefaultRecordType,\n RowSelectionType,\n CheckboxProps,\n CellType,\n ExpandIconType,\n} from '../interface'\n\nexport default defineComponent({\n name: 'BodyExtraCell',\n components: { Checkbox, Radio, ExpandIcon, MenuOutlined },\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number, required: true },\n type: { type: String as PropType<RowType> },\n column: { type: Object as PropType<FinallyColumnType<DefaultRecordType>>, default: () => ({}) },\n record: { type: Object as PropType<DefaultRecordType> },\n rowKey: { type: [Number, String] },\n expanded: Boolean as PropType<boolean>,\n expandIconType: String as PropType<ExpandIconType>,\n supportExpand: Boolean,\n },\n setup(props) {\n const tableContext = useInjectTable()\n const level = useInjectLevel()\n const rowSelectionType = computed<RowSelectionType>(\n () => tableContext.mergedRowSelection.value.type as RowSelectionType,\n )\n const keySet = computed<Set<Key>>(() => tableContext.selection.derivedSelectedKeySet.value)\n const checked = ref(false)\n const mergedIndeterminate = ref(false)\n const checkboxProps = computed<CheckboxProps>(\n () => tableContext.checkboxPropsMap.value.get(props.rowKey!) as CheckboxProps,\n )\n const { onBodyCellContextmenu } = useInjectBody()\n const renderedCell = computed(\n () => tableContext.allCellProps.value[props.rowKey!]?.[props.column.columnKey] ?? {},\n )\n\n watchEffect(() => {\n const {\n selection: { derivedHalfSelectedKeySet },\n expandType,\n } = tableContext\n checked.value = keySet.value.has(props.rowKey!)\n const hasSelectKey = derivedHalfSelectedKeySet.value.has(props.rowKey!)\n if (expandType.value === 'nest') {\n mergedIndeterminate.value = hasSelectKey\n devWarning(\n typeof checkboxProps.value?.indeterminate !== 'boolean',\n 'Table',\n 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.',\n )\n } else {\n mergedIndeterminate.value = checkboxProps.value?.indeterminate ?? hasSelectKey\n }\n })\n\n const mergedCellProps = computed<CellType>(() => {\n const { column } = props\n return {\n ...renderedCell.value.props,\n style: {\n ...(renderedCell.value?.props?.style || {}),\n width: `${column.finallyWidth || 0}px`,\n },\n }\n })\n\n const contextmenuProps = computed(() => ({\n record: props.record,\n column: props.column.originColumn,\n index: props.rowIndex,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n key: props.rowKey,\n }))\n\n return {\n handleRadioChange: (e: Event) => {\n if (!(checked.value && !tableContext.mergedRowSelection.value.allowCancelRadio)) {\n tableContext.selection.triggerSingleSelection(\n props.rowKey!,\n !checked.value,\n checked.value ? [] : [props.rowKey!],\n e,\n )\n }\n },\n handleCheckboxChange: (event: Event) => {\n const { shiftKey } = event as MouseEvent\n const {\n selection: {\n lastSelectedKey,\n setLastSelectedKey,\n setSelectedKeys,\n triggerSingleSelection,\n mergedRowSelection,\n derivedSelectedKeys,\n isCheckboxDisabled,\n levelEntities,\n maxLevel,\n },\n getRecordByKey,\n pageDataEnableRowKeys,\n keyEntities,\n } = tableContext\n const { checkStrictly, onSelectMultiple } = mergedRowSelection.value!\n const currentRowKey = props.rowKey\n let shiftStartIndex = -1\n let shiftEndIndex = -1\n const enableRowKeys = pageDataEnableRowKeys.value\n if (shiftKey && checkStrictly) {\n const rowKeySet = new Set([lastSelectedKey.value, currentRowKey])\n enableRowKeys.some((rowkey, index) => {\n if (rowKeySet.has(rowkey)) {\n if (shiftStartIndex !== -1) {\n shiftEndIndex = index\n return true\n }\n shiftStartIndex = index\n }\n return false\n })\n }\n if (shiftEndIndex !== -1 && shiftStartIndex !== shiftEndIndex && checkStrictly) {\n const shiftSelctedRowKeys = enableRowKeys.slice(shiftStartIndex, shiftEndIndex + 1)\n const changeRowKeys: Key[] = []\n if (checked.value) {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.delete(rowKey)\n }\n })\n } else {\n shiftSelctedRowKeys.forEach((rowKey) => {\n if (!keySet.value.has(rowKey)) {\n changeRowKeys.push(rowKey)\n keySet.value.add(rowKey)\n }\n })\n }\n const selectedKeys = Array.from(keySet.value)\n onSelectMultiple?.(\n !checked.value,\n selectedKeys.map((rowKey) => getRecordByKey(rowKey)),\n changeRowKeys.map((rowKey) => getRecordByKey(rowKey)),\n )\n setSelectedKeys(selectedKeys)\n } else {\n const selectedRowKeys = derivedSelectedKeys.value!\n if (checkStrictly) {\n let keys: Key[] = []\n if (checked.value) {\n keys = arrDel(selectedRowKeys, currentRowKey!)\n } else {\n keys = arrAdd(selectedRowKeys, currentRowKey!)\n }\n triggerSingleSelection(currentRowKey!, !checked.value, keys, event)\n } else {\n const { checkedKeys, halfCheckedKeys } = conductCheck(\n [...selectedRowKeys, currentRowKey!],\n true,\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n )\n let allCheckedKeys = checkedKeys\n if (checked.value) {\n const checkedKeysSet = new Set(checkedKeys)\n checkedKeysSet.delete(currentRowKey!)\n allCheckedKeys = conductCheck(\n Array.from(checkedKeysSet),\n { checked: false, halfCheckedKeys },\n keyEntities.value,\n levelEntities.value,\n maxLevel.value,\n isCheckboxDisabled as any,\n ).checkedKeys\n }\n triggerSingleSelection(currentRowKey!, !checked.value, allCheckedKeys, event)\n }\n }\n setLastSelectedKey(currentRowKey!)\n },\n onInternalTriggerExpand: (record: DefaultRecordType, e: MouseEvent) => {\n tableContext.onTriggerExpand(record, props.rowKey!, e)\n },\n rowSelectionType,\n keySet,\n checked,\n mergedIndeterminate,\n checkboxProps,\n mergedCellProps,\n onBodyCellContextmenu,\n contextmenuProps,\n level: level,\n }\n },\n})\n</script>\n\n<template>\n <div\n v-bind=\"mergedCellProps\"\n :key=\"`${rowKey} ${column.columnKey}`\"\n tabindex=\"-1\"\n role=\"cell\"\n :data-level=\"level\"\n :class=\"{\n [`${prefixCls}-cell`]: true,\n [`${prefixCls}-body-cell`]: true,\n [`${prefixCls}-extra-cell`]: true,\n [`${prefixCls}-row-expand-icon-cell`]: true,\n }\"\n @contextmenu=\"onBodyCellContextmenu($event, contextmenuProps, type!)\"\n @click.stop\n >\n <template v-if=\"column.type === 'checkbox'\">\n <Radio\n v-if=\"rowSelectionType === 'radio'\"\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleRadioChange\"\n />\n <Checkbox\n v-else\n :prefix-cls=\"prefixCls\"\n v-bind=\"checkboxProps\"\n :indeterminate=\"mergedIndeterminate\"\n :checked=\"checked\"\n @click.stop\n @change=\"handleCheckboxChange\"\n />\n </template>\n <ExpandIcon\n v-else-if=\"column.type === 'expand'\"\n :prefix-cls=\"prefixCls\"\n expandable\n :expandIconType=\"expandIconType\"\n :expanded=\"expanded\"\n :record=\"record\"\n :disabled=\"!supportExpand\"\n @expand=\"onInternalTriggerExpand\"\n />\n <div v-else-if=\"column.type === 'draggable'\" :draggable=\"true\">\n <slot name=\"draggable-handle\">\n <MenuOutlined />\n </slot>\n </div>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
@@ -63,11 +63,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
63
63
  type: _ctx.type,
64
64
  column: (_a = _ctx.mergedColumns) == null ? void 0 : _a[index],
65
65
  expanded: _ctx.expanded,
66
+ expandIconType: _ctx.expandIconType,
66
67
  "support-expand": _ctx.mergedExpandable,
67
68
  record: _ctx.record,
68
69
  onMouseenter: ($event) => _ctx.handleCellHover(_ctx.rowKey, column.columnKey, _ctx.tableContext.draggingRowKey.value),
69
70
  onMouseleave: _ctx.handleCellBlur
70
- }, null, 8, ["prefix-cls", "row-key", "row-index", "type", "column", "expanded", "support-expand", "record", "onMouseenter", "onMouseleave"])) : column ? (openBlock(), createBlock(_component_BodyCell, {
71
+ }, null, 8, ["prefix-cls", "row-key", "row-index", "type", "column", "expanded", "expandIconType", "support-expand", "record", "onMouseenter", "onMouseleave"])) : column ? (openBlock(), createBlock(_component_BodyCell, {
71
72
  key: 1,
72
73
  "prefix-cls": _ctx.prefixCls,
73
74
  item: _ctx.record,
@@ -112,12 +113,13 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
112
113
  ),
113
114
  createVNode(_component_ExpandIcon, {
114
115
  expanded: _ctx.expanded,
116
+ expandIconType: _ctx.expandIconType,
115
117
  "prefix-cls": _ctx.prefixCls,
116
118
  expandable: _ctx.hasNestChildren,
117
119
  record: _ctx.record,
118
120
  disabled: !_ctx.mergedExpandable,
119
121
  onExpand: _ctx.onInternalTriggerExpand
120
- }, null, 8, ["expanded", "prefix-cls", "expandable", "record", "disabled", "onExpand"])
122
+ }, null, 8, ["expanded", "expandIconType", "prefix-cls", "expandable", "record", "disabled", "onExpand"])
121
123
  ],
122
124
  2
123
125
  /* CLASS */
@@ -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-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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"}
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-11-26 14:33:58\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 expandIconType = computed(() => tableContext.expandIconType.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 expandIconType,\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 :expandIconType=\"expandIconType\"\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 :expandIconType=\"expandIconType\"\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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"}
@@ -122,6 +122,7 @@ var _sfc_main = defineComponent({
122
122
  });
123
123
  const isExpanded = ref(false);
124
124
  const expandedRowKeys = computed(() => tableContext.expandedRowKeys.value);
125
+ const expandIconType = computed(() => tableContext.expandIconType.value);
125
126
  const expanded = eagerComputed(() => {
126
127
  var _a, _b;
127
128
  return (_b = (_a = expandedRowKeys.value).has) == null ? void 0 : _b.call(_a, props.rowKey);
@@ -268,6 +269,7 @@ var _sfc_main = defineComponent({
268
269
  expandIconColumnIndex,
269
270
  indentSize,
270
271
  expanded,
272
+ expandIconType,
271
273
  onInternalTriggerExpand,
272
274
  customRowProps,
273
275
  expandColumnKey: ExpandColumnKey,
@@ -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-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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"}
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-11-26 14:33:58\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 expandIconType = computed(() => tableContext.expandIconType.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 expandIconType,\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 :expandIconType=\"expandIconType\"\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 :expandIconType=\"expandIconType\"\n :prefix-cls=\"prefixCls\"\n :expandable=\"hasNestChildren\"\n :record=\"record\"\n :disabled=\"!mergedExpandable\"\n @expand=\"onInternalTriggerExpand\"\n />\n </div>\n </template>\n </BodyCell>\n </template>\n </RenderSlot>\n <div v-if=\"type !== 'center'\" :class=\"`${prefixCls}-cell-shadow-${type}`\"></div>\n </div>\n</template>\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandIcon.vue.mjs","sources":["../../../../../../../../packages/components/table/src/components/ExpandIcon.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-09 11:35:58\n * @LastEditors: shen\n * @LastEditTime: 2025-07-30 10:47:53\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport { useInjectTable } from './context/TableContext'\n\n// import type { RenderExpandIconProps } from './interface'\n\nexport default defineComponent({\n name: 'ProTableExpandIcon',\n props: {\n prefixCls: String,\n record: Object,\n expanded: Boolean,\n expandable: Boolean,\n disabled: Boolean,\n onExpand: Function,\n },\n emits: ['expand'],\n setup(props, { emit }) {\n const tableContext = useInjectTable()\n\n const className = computed(() => {\n const { prefixCls, expanded, expandable, disabled } = props\n const expandIconClass = `${prefixCls}-row-expand-icon`\n return {\n [expandIconClass]: true,\n [`${expandIconClass}-spaced`]: !expandable,\n [`${expandIconClass}-expanded`]: expandable && expanded,\n [`${expandIconClass}-collapsed`]: expandable && !expanded,\n [`${expandIconClass}-disabled`]: !!disabled,\n }\n })\n return {\n handleClick: () => {\n if (props.disabled) {\n return\n }\n emit('expand', props.record)\n },\n className,\n label: computed(() =>\n props.expanded ? tableContext.locale.value.collapse : tableContext.locale.value.expand,\n ),\n expandIcon: computed(() => tableContext.props.expandIcon),\n props,\n }\n },\n})\n</script>\n\n<template>\n <span v-if=\"expandIcon\" @click.stop>\n <component :is=\"() => expandIcon!(props as any)\"></component>\n </span>\n <button\n v-else\n type=\"button\"\n :class=\"className\"\n :aria-label=\"label\"\n @click.stop=\"handleClick\"\n ></button>\n</template>\n"],"names":["_openBlock","_createElementBlock","_withModifiers","_createBlock","_resolveDynamicComponent","_normalizeClass"],"mappings":";;;;;;AAyDc,EAAA,OAAA,IAAA,CAAA,UAAA,IAAAA,SAAA,EAAA,EAAZC,mBAEO,MAAA,EAAA;AAAA,IAAA,GAAA,EAAA,CAAA;AAAA,IAFkB,OAAA,EAAK,OAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAAC,cAAN,MAAA;AAAA,IAAA,CAAA,EAAW,CAAA,MAAA,CAAA,CAAA;AAAA,GAAA,EAAA;AAAA,kBACjCC,WAAA,CAA6DC,uBAAA,CAAA,MAAvC,gBAAY,IAAA,CAAA,KAAK,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,KAAAJ,SAAA,EAAA,EAEzCC,mBAMU,QAAA,EAAA;AAAA,IAAA,GAAA,EAAA,CAAA;AAAA,IAJR,IAAA,EAAK,QAAA;AAAA,IACJ,KAAA,EAAKI,cAAA,CAAE,IAAA,CAAA,SAAS,CAAA;AAAA,IAChB,cAAY,IAAA,CAAA,KAAA;AAAA,IACZ,SAAK,MAAA,+CAAO,IAAA,CAAA,WAAA,IAAA,KAAA,WAAA,CAAA,GAAA,IAAA,CAAA,EAAW,CAAA,MAAA,CAAA,CAAA;AAAA,GAAA,EAAA,IAAA,EAAA,EAAA,EAAA,UAAA,CAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"ExpandIcon.vue.mjs","sources":["../../../../../../../../packages/components/table/src/components/ExpandIcon.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-09 11:35:58\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 15:20:06\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport { useInjectTable } from './context/TableContext'\nexport default defineComponent({\n name: 'ProTableExpandIcon',\n props: {\n prefixCls: String,\n record: Object,\n expanded: Boolean,\n expandable: Boolean,\n disabled: Boolean,\n onExpand: Function,\n expandIconType: String,\n },\n emits: ['expand'],\n setup(props, { emit }) {\n const tableContext = useInjectTable()\n\n const className = computed(() => {\n const { prefixCls, expanded, expandable, disabled, expandIconType } = props\n const expandIconClass = `${prefixCls}-row-expand-icon`\n return {\n [expandIconClass]: true,\n [`${expandIconClass}-${expandIconType}`]: true,\n [`${expandIconClass}-spaced`]: !expandable,\n [`${expandIconClass}-expanded`]: expandable && expanded,\n [`${expandIconClass}-collapsed`]: expandable && !expanded,\n [`${expandIconClass}-disabled`]: !!disabled,\n }\n })\n return {\n handleClick: () => {\n if (props.disabled) {\n return\n }\n emit('expand', props.record)\n },\n className,\n label: computed(() =>\n props.expanded ? tableContext.locale.value.collapse : tableContext.locale.value.expand,\n ),\n expandIcon: computed(() => tableContext.props.expandIcon),\n props,\n }\n },\n})\n</script>\n\n<template>\n <span v-if=\"expandIcon\" @click.stop>\n <component :is=\"() => expandIcon!(props as any)\"></component>\n </span>\n <button\n v-else\n type=\"button\"\n :class=\"className\"\n :aria-label=\"label\"\n @click.stop=\"handleClick\"\n ></button>\n</template>\n"],"names":["_openBlock","_createElementBlock","_withModifiers","_createBlock","_resolveDynamicComponent","_normalizeClass"],"mappings":";;;;;;AAwDc,EAAA,OAAA,IAAA,CAAA,UAAA,IAAAA,SAAA,EAAA,EAAZC,mBAEO,MAAA,EAAA;AAAA,IAAA,GAAA,EAAA,CAAA;AAAA,IAFkB,OAAA,EAAK,OAAA,CAAA,CAAA,KAAA,OAAA,CAAA,CAAA,GAAAC,cAAN,MAAA;AAAA,IAAA,CAAA,EAAW,CAAA,MAAA,CAAA,CAAA;AAAA,GAAA,EAAA;AAAA,kBACjCC,WAAA,CAA6DC,uBAAA,CAAA,MAAvC,gBAAY,IAAA,CAAA,KAAK,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA,KAAAJ,SAAA,EAAA,EAEzCC,mBAMU,QAAA,EAAA;AAAA,IAAA,GAAA,EAAA,CAAA;AAAA,IAJR,IAAA,EAAK,QAAA;AAAA,IACJ,KAAA,EAAKI,cAAA,CAAE,IAAA,CAAA,SAAS,CAAA;AAAA,IAChB,cAAY,IAAA,CAAA,KAAA;AAAA,IACZ,SAAK,MAAA,+CAAO,IAAA,CAAA,WAAA,IAAA,KAAA,WAAA,CAAA,GAAA,IAAA,CAAA,EAAW,CAAA,MAAA,CAAA,CAAA;AAAA,GAAA,EAAA,IAAA,EAAA,EAAA,EAAA,UAAA,CAAA,CAAA;;;;;;"}
@@ -9,16 +9,18 @@ var _sfc_main = defineComponent({
9
9
  expanded: Boolean,
10
10
  expandable: Boolean,
11
11
  disabled: Boolean,
12
- onExpand: Function
12
+ onExpand: Function,
13
+ expandIconType: String
13
14
  },
14
15
  emits: ["expand"],
15
16
  setup(props, { emit }) {
16
17
  const tableContext = useInjectTable();
17
18
  const className = computed(() => {
18
- const { prefixCls, expanded, expandable, disabled } = props;
19
+ const { prefixCls, expanded, expandable, disabled, expandIconType } = props;
19
20
  const expandIconClass = `${prefixCls}-row-expand-icon`;
20
21
  return {
21
22
  [expandIconClass]: true,
23
+ [`${expandIconClass}-${expandIconType}`]: true,
22
24
  [`${expandIconClass}-spaced`]: !expandable,
23
25
  [`${expandIconClass}-expanded`]: expandable && expanded,
24
26
  [`${expandIconClass}-collapsed`]: expandable && !expanded,
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandIcon.vue2.mjs","sources":["../../../../../../../../packages/components/table/src/components/ExpandIcon.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-09 11:35:58\n * @LastEditors: shen\n * @LastEditTime: 2025-07-30 10:47:53\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport { useInjectTable } from './context/TableContext'\n\n// import type { RenderExpandIconProps } from './interface'\n\nexport default defineComponent({\n name: 'ProTableExpandIcon',\n props: {\n prefixCls: String,\n record: Object,\n expanded: Boolean,\n expandable: Boolean,\n disabled: Boolean,\n onExpand: Function,\n },\n emits: ['expand'],\n setup(props, { emit }) {\n const tableContext = useInjectTable()\n\n const className = computed(() => {\n const { prefixCls, expanded, expandable, disabled } = props\n const expandIconClass = `${prefixCls}-row-expand-icon`\n return {\n [expandIconClass]: true,\n [`${expandIconClass}-spaced`]: !expandable,\n [`${expandIconClass}-expanded`]: expandable && expanded,\n [`${expandIconClass}-collapsed`]: expandable && !expanded,\n [`${expandIconClass}-disabled`]: !!disabled,\n }\n })\n return {\n handleClick: () => {\n if (props.disabled) {\n return\n }\n emit('expand', props.record)\n },\n className,\n label: computed(() =>\n props.expanded ? tableContext.locale.value.collapse : tableContext.locale.value.expand,\n ),\n expandIcon: computed(() => tableContext.props.expandIcon),\n props,\n }\n },\n})\n</script>\n\n<template>\n <span v-if=\"expandIcon\" @click.stop>\n <component :is=\"() => expandIcon!(props as any)\"></component>\n </span>\n <button\n v-else\n type=\"button\"\n :class=\"className\"\n :aria-label=\"label\"\n @click.stop=\"handleClick\"\n ></button>\n</template>\n"],"names":[],"mappings":";;;AAaA,gBAAe,eAAA,CAAgB;AAAA,EAC7B,IAAA,EAAM,oBAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,MAAA;AAAA,IACX,MAAA,EAAQ,MAAA;AAAA,IACR,QAAA,EAAU,OAAA;AAAA,IACV,UAAA,EAAY,OAAA;AAAA,IACZ,QAAA,EAAU,OAAA;AAAA,IACV,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,KAAA,EAAO,CAAC,QAAQ,CAAA;AAAA,EAChB,KAAA,CAAM,KAAA,EAAO,EAAE,IAAA,EAAK,EAAG;AACrB,IAAA,MAAM,eAAe,cAAA,EAAe;AAEpC,IAAA,MAAM,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,UAAA,EAAY,UAAS,GAAI,KAAA;AACtD,MAAA,MAAM,eAAA,GAAkB,GAAG,SAAS,CAAA,gBAAA,CAAA;AACpC,MAAA,OAAO;AAAA,QACL,CAAC,eAAe,GAAG,IAAA;AAAA,QACnB,CAAC,CAAA,EAAG,eAAe,CAAA,OAAA,CAAS,GAAG,CAAC,UAAA;AAAA,QAChC,CAAC,CAAA,EAAG,eAAe,CAAA,SAAA,CAAW,GAAG,UAAA,IAAc,QAAA;AAAA,QAC/C,CAAC,CAAA,EAAG,eAAe,CAAA,UAAA,CAAY,GAAG,cAAc,CAAC,QAAA;AAAA,QACjD,CAAC,CAAA,EAAG,eAAe,CAAA,SAAA,CAAW,GAAG,CAAC,CAAC;AAAA,OACrC;AAAA,IACF,CAAC,CAAA;AACD,IAAA,OAAO;AAAA,MACL,aAAa,MAAM;AACjB,QAAA,IAAI,MAAM,QAAA,EAAU;AAClB,UAAA;AAAA,QACF;AACA,QAAA,IAAA,CAAK,QAAA,EAAU,MAAM,MAAM,CAAA;AAAA,MAC7B,CAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA,EAAO,QAAA;AAAA,QAAS,MACd,MAAM,QAAA,GAAW,YAAA,CAAa,OAAO,KAAA,CAAM,QAAA,GAAW,YAAA,CAAa,MAAA,CAAO,KAAA,CAAM;AAAA,OAClF;AAAA,MACA,UAAA,EAAY,QAAA,CAAS,MAAM,YAAA,CAAa,MAAM,UAAU,CAAA;AAAA,MACxD;AAAA,KACF;AAAA,EACF;AACF,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"ExpandIcon.vue2.mjs","sources":["../../../../../../../../packages/components/table/src/components/ExpandIcon.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-09 11:35:58\n * @LastEditors: shen\n * @LastEditTime: 2025-11-26 15:20:06\n * @Description:\n-->\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport { useInjectTable } from './context/TableContext'\nexport default defineComponent({\n name: 'ProTableExpandIcon',\n props: {\n prefixCls: String,\n record: Object,\n expanded: Boolean,\n expandable: Boolean,\n disabled: Boolean,\n onExpand: Function,\n expandIconType: String,\n },\n emits: ['expand'],\n setup(props, { emit }) {\n const tableContext = useInjectTable()\n\n const className = computed(() => {\n const { prefixCls, expanded, expandable, disabled, expandIconType } = props\n const expandIconClass = `${prefixCls}-row-expand-icon`\n return {\n [expandIconClass]: true,\n [`${expandIconClass}-${expandIconType}`]: true,\n [`${expandIconClass}-spaced`]: !expandable,\n [`${expandIconClass}-expanded`]: expandable && expanded,\n [`${expandIconClass}-collapsed`]: expandable && !expanded,\n [`${expandIconClass}-disabled`]: !!disabled,\n }\n })\n return {\n handleClick: () => {\n if (props.disabled) {\n return\n }\n emit('expand', props.record)\n },\n className,\n label: computed(() =>\n props.expanded ? tableContext.locale.value.collapse : tableContext.locale.value.expand,\n ),\n expandIcon: computed(() => tableContext.props.expandIcon),\n props,\n }\n },\n})\n</script>\n\n<template>\n <span v-if=\"expandIcon\" @click.stop>\n <component :is=\"() => expandIcon!(props as any)\"></component>\n </span>\n <button\n v-else\n type=\"button\"\n :class=\"className\"\n :aria-label=\"label\"\n @click.stop=\"handleClick\"\n ></button>\n</template>\n"],"names":[],"mappings":";;;AAUA,gBAAe,eAAA,CAAgB;AAAA,EAC7B,IAAA,EAAM,oBAAA;AAAA,EACN,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,MAAA;AAAA,IACX,MAAA,EAAQ,MAAA;AAAA,IACR,QAAA,EAAU,OAAA;AAAA,IACV,UAAA,EAAY,OAAA;AAAA,IACZ,QAAA,EAAU,OAAA;AAAA,IACV,QAAA,EAAU,QAAA;AAAA,IACV,cAAA,EAAgB;AAAA,GAClB;AAAA,EACA,KAAA,EAAO,CAAC,QAAQ,CAAA;AAAA,EAChB,KAAA,CAAM,KAAA,EAAO,EAAE,IAAA,EAAK,EAAG;AACrB,IAAA,MAAM,eAAe,cAAA,EAAe;AAEpC,IAAA,MAAM,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,UAAA,EAAY,QAAA,EAAU,gBAAe,GAAI,KAAA;AACtE,MAAA,MAAM,eAAA,GAAkB,GAAG,SAAS,CAAA,gBAAA,CAAA;AACpC,MAAA,OAAO;AAAA,QACL,CAAC,eAAe,GAAG,IAAA;AAAA,QACnB,CAAC,CAAA,EAAG,eAAe,CAAA,CAAA,EAAI,cAAc,EAAE,GAAG,IAAA;AAAA,QAC1C,CAAC,CAAA,EAAG,eAAe,CAAA,OAAA,CAAS,GAAG,CAAC,UAAA;AAAA,QAChC,CAAC,CAAA,EAAG,eAAe,CAAA,SAAA,CAAW,GAAG,UAAA,IAAc,QAAA;AAAA,QAC/C,CAAC,CAAA,EAAG,eAAe,CAAA,UAAA,CAAY,GAAG,cAAc,CAAC,QAAA;AAAA,QACjD,CAAC,CAAA,EAAG,eAAe,CAAA,SAAA,CAAW,GAAG,CAAC,CAAC;AAAA,OACrC;AAAA,IACF,CAAC,CAAA;AACD,IAAA,OAAO;AAAA,MACL,aAAa,MAAM;AACjB,QAAA,IAAI,MAAM,QAAA,EAAU;AAClB,UAAA;AAAA,QACF;AACA,QAAA,IAAA,CAAK,QAAA,EAAU,MAAM,MAAM,CAAA;AAAA,MAC7B,CAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA,EAAO,QAAA;AAAA,QAAS,MACd,MAAM,QAAA,GAAW,YAAA,CAAa,OAAO,KAAA,CAAM,QAAA,GAAW,YAAA,CAAa,MAAA,CAAO,KAAA,CAAM;AAAA,OAClF;AAAA,MACA,UAAA,EAAY,QAAA,CAAS,MAAM,YAAA,CAAa,MAAM,UAAU,CAAA;AAAA,MACxD;AAAA,KACF;AAAA,EACF;AACF,CAAC,CAAA;;;;"}