This commit is contained in:
2025-09-19 14:25:20 +08:00
parent 269893a435
commit fbf3f77229
24949 changed files with 2839404 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
import type { FunctionalComponent, UnwrapNestedRefs } from 'vue';
import type { TableV2RowCellRenderParam } from '../components';
import type { UseNamespaceReturn } from 'element-plus/es/hooks';
import type { UseTableReturn } from '../use-table';
import type { TableV2Props } from '../table';
type CellRendererProps = TableV2RowCellRenderParam & Pick<TableV2Props, 'cellProps' | 'expandColumnKey' | 'indentSize' | 'iconSize' | 'rowKey'> & UnwrapNestedRefs<Pick<UseTableReturn, 'expandedRowKeys'>> & {
ns: UseNamespaceReturn;
};
declare const CellRenderer: FunctionalComponent<CellRendererProps>;
export default CellRenderer;

View File

@@ -0,0 +1,104 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var lodashUnified = require('lodash-unified');
var constants = require('../constants.js');
var _private = require('../private.js');
var utils = require('../utils.js');
var cell = require('../components/cell.js');
var expandIcon = require('../components/expand-icon.js');
var shared = require('@vue/shared');
const CellRenderer = ({
columns,
column,
columnIndex,
depth,
expandIconProps,
isScrolling,
rowData,
rowIndex,
style,
expandedRowKeys,
ns,
cellProps: _cellProps,
expandColumnKey,
indentSize,
iconSize,
rowKey
}, {
slots
}) => {
const cellStyle = utils.enforceUnit(style);
if (column.placeholderSign === _private.placeholderSign) {
return vue.createVNode("div", {
"class": ns.em("row-cell", "placeholder"),
"style": cellStyle
}, null);
}
const {
cellRenderer,
dataKey,
dataGetter
} = column;
const cellData = shared.isFunction(dataGetter) ? dataGetter({
columns,
column,
columnIndex,
rowData,
rowIndex
}) : lodashUnified.get(rowData, dataKey != null ? dataKey : "");
const extraCellProps = utils.tryCall(_cellProps, {
cellData,
columns,
column,
columnIndex,
rowIndex,
rowData
});
const cellProps = {
class: ns.e("cell-text"),
columns,
column,
columnIndex,
cellData,
isScrolling,
rowData,
rowIndex
};
const columnCellRenderer = utils.componentToSlot(cellRenderer);
const Cell = columnCellRenderer ? columnCellRenderer(cellProps) : vue.renderSlot(slots, "default", cellProps, () => [vue.createVNode(cell["default"], cellProps, null)]);
const kls = [ns.e("row-cell"), column.class, column.align === constants.Alignment.CENTER && ns.is("align-center"), column.align === constants.Alignment.RIGHT && ns.is("align-right")];
const expandable = rowIndex >= 0 && expandColumnKey && column.key === expandColumnKey;
const expanded = rowIndex >= 0 && expandedRowKeys.includes(rowData[rowKey]);
let IconOrPlaceholder;
const iconStyle = `margin-inline-start: ${depth * indentSize}px;`;
if (expandable) {
if (shared.isObject(expandIconProps)) {
IconOrPlaceholder = vue.createVNode(expandIcon["default"], vue.mergeProps(expandIconProps, {
"class": [ns.e("expand-icon"), ns.is("expanded", expanded)],
"size": iconSize,
"expanded": expanded,
"style": iconStyle,
"expandable": true
}), null);
} else {
IconOrPlaceholder = vue.createVNode("div", {
"style": [iconStyle, `width: ${iconSize}px; height: ${iconSize}px;`].join(" ")
}, null);
}
}
return vue.createVNode("div", vue.mergeProps({
"class": kls,
"style": cellStyle
}, extraCellProps, {
"role": "cell"
}), [IconOrPlaceholder, Cell]);
};
CellRenderer.inheritAttrs = false;
var Cell = CellRenderer;
exports["default"] = Cell;
//# sourceMappingURL=cell.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
import type { CSSProperties, FunctionalComponent } from 'vue';
type EmptyRendererProps = {
class?: JSX.IntrinsicAttributes['class'];
style?: CSSProperties;
};
declare const Footer: FunctionalComponent<EmptyRendererProps>;
export default Footer;

View File

@@ -0,0 +1,21 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var index = require('../../../empty/index.js');
const Footer = (props, {
slots
}) => {
const defaultSlot = vue.renderSlot(slots, "default", {}, () => [vue.createVNode(index.ElEmpty, null, null)]);
return vue.createVNode("div", {
"class": props.class,
"style": props.style
}, [defaultSlot]);
};
Footer.displayName = "ElTableV2Empty";
var Empty = Footer;
exports["default"] = Empty;
//# sourceMappingURL=empty.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"empty.js","sources":["../../../../../../../packages/components/table-v2/src/renderers/empty.tsx"],"sourcesContent":["import { renderSlot } from 'vue'\nimport ElEmpty from '@element-plus/components/empty'\n\nimport type { CSSProperties, FunctionalComponent } from 'vue'\n\ntype EmptyRendererProps = {\n class?: JSX.IntrinsicAttributes['class']\n style?: CSSProperties\n}\n\nconst Footer: FunctionalComponent<EmptyRendererProps> = (props, { slots }) => {\n const defaultSlot = renderSlot(slots, 'default', {}, () => [<ElEmpty />])\n return (\n <div class={props.class} style={props.style}>\n {defaultSlot}\n </div>\n )\n}\n\nFooter.displayName = 'ElTableV2Empty'\n\nexport default Footer\n"],"names":["slots","renderSlot","_createVNode","ElEmpty","props","class","style"],"mappings":";;;;;;;;AAUA,EAAA,KAAqD;AAAaA,CAAAA,KAAAA;AAAF,EAAc,MAAA,WAAA,GAAAC,cAAA,CAAA,KAAA,EAAA,SAAA,EAAA,EAAA,EAAA,MAAA,CAAAC,eAAA,CAAAC,aAAA,EAAA,IAAA,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAC5E,EAAA,OAAiBD,eAAA,CAAGD,KAAU,EAAA;AAC9B,IAAA,OAAA,EAAA,KAAA,CAAA,KAAA;IAAA,OACcG,EAAAA,KAAK,CAACC,KADpB;AAAA,GAAA,EAAA,CAAA,YACuC,CAACC,CAAAA;AADxC,CAAA,CAAA;AAKD,MAPD,CAAA,WAAA,GAAA,gBAAA,CAAA;;;;;"}

View File

@@ -0,0 +1,7 @@
import type { CSSProperties, FunctionalComponent } from 'vue';
type FooterRendererProps = {
class?: JSX.IntrinsicAttributes['class'];
style: CSSProperties;
};
declare const Footer: FunctionalComponent<FooterRendererProps>;
export default Footer;

View File

@@ -0,0 +1,20 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
const Footer = (props, {
slots
}) => {
var _a;
return vue.createVNode("div", {
"class": props.class,
"style": props.style
}, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
};
Footer.displayName = "ElTableV2Footer";
var Footer$1 = Footer;
exports["default"] = Footer$1;
//# sourceMappingURL=footer.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"footer.js","sources":["../../../../../../../packages/components/table-v2/src/renderers/footer.tsx"],"sourcesContent":["import type { CSSProperties, FunctionalComponent } from 'vue'\n\ntype FooterRendererProps = {\n class?: JSX.IntrinsicAttributes['class']\n style: CSSProperties\n}\n\nconst Footer: FunctionalComponent<FooterRendererProps> = (props, { slots }) => {\n return (\n <div class={props.class} style={props.style}>\n {slots.default?.()}\n </div>\n )\n}\n\nFooter.displayName = 'ElTableV2Footer'\n\nexport default Footer\n"],"names":["slots","_createVNode","props","class","style","default","Footer"],"mappings":";;;;;;;AAOA,EAAA,KAAsD;AAAaA,CAAAA,KAAAA;AAAF,EAAc,IAAA,EAAA,CAAA;AAC7E,EAAA,OAAAC,eAAA,CAAA,KAAA,EAAA;IAAA,OACcC,EAAAA,KAAK,CAACC,KADpB;AAAA,IAAA,OAAA,EACkCD,KAAK,CAACE,KAAAA;GACnCJ,EAAAA,CAAAA,CAAAA,EAAAA,GAAMK,KAAAA,CAAAA,OAFX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAKD,CAND,CAAA;;AAQAC,eAAA,MAAqB;;;;"}

View File

@@ -0,0 +1,13 @@
import type { FunctionalComponent, UnwrapNestedRefs } from 'vue';
import type { UseNamespaceReturn } from 'element-plus/es/hooks';
import type { TableV2HeaderRowCellRendererParams } from '../components';
import type { UseTableReturn } from '../use-table';
import type { TableV2Props } from '../table';
export type HeaderCellRendererProps = TableV2HeaderRowCellRendererParams & UnwrapNestedRefs<Pick<UseTableReturn, 'onColumnSorted'>> & Pick<TableV2Props, 'sortBy' | 'sortState' | 'headerCellProps'> & {
ns: UseNamespaceReturn;
};
declare const HeaderCellRenderer: FunctionalComponent<HeaderCellRendererProps>;
export default HeaderCellRenderer;
export type HeaderCellSlotProps = HeaderCellRendererProps & {
class: string;
};

View File

@@ -0,0 +1,71 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var constants = require('../constants.js');
var _private = require('../private.js');
var utils = require('../utils.js');
var headerCell = require('../components/header-cell.js');
var sortIcon = require('../components/sort-icon.js');
const HeaderCellRenderer = (props, {
slots
}) => {
const {
column,
ns,
style,
onColumnSorted
} = props;
const cellStyle = utils.enforceUnit(style);
if (column.placeholderSign === _private.placeholderSign) {
return vue.createVNode("div", {
"class": ns.em("header-row-cell", "placeholder"),
"style": cellStyle
}, null);
}
const {
headerCellRenderer,
headerClass,
sortable
} = column;
const cellProps = {
...props,
class: ns.e("header-cell-text")
};
const columnCellRenderer = utils.componentToSlot(headerCellRenderer);
const Cell = columnCellRenderer ? columnCellRenderer(cellProps) : vue.renderSlot(slots, "default", cellProps, () => [vue.createVNode(headerCell["default"], cellProps, null)]);
const {
sortBy,
sortState,
headerCellProps
} = props;
let sorting, sortOrder;
if (sortState) {
const order = sortState[column.key];
sorting = Boolean(constants.oppositeOrderMap[order]);
sortOrder = sorting ? order : constants.SortOrder.ASC;
} else {
sorting = column.key === sortBy.key;
sortOrder = sorting ? sortBy.order : constants.SortOrder.ASC;
}
const cellKls = [ns.e("header-cell"), utils.tryCall(headerClass, props, ""), column.align === constants.Alignment.CENTER && ns.is("align-center"), column.align === constants.Alignment.RIGHT && ns.is("align-right"), sortable && ns.is("sortable")];
const cellWrapperProps = {
...utils.tryCall(headerCellProps, props),
onClick: column.sortable ? onColumnSorted : void 0,
class: cellKls,
style: cellStyle,
["data-key"]: column.key
};
return vue.createVNode("div", vue.mergeProps(cellWrapperProps, {
"role": "columnheader"
}), [Cell, sortable && vue.createVNode(sortIcon["default"], {
"class": [ns.e("sort-icon"), sorting && ns.is("sorting")],
"sortOrder": sortOrder
}, null)]);
};
var HeaderCell = HeaderCellRenderer;
exports["default"] = HeaderCell;
//# sourceMappingURL=header-cell.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,9 @@
import type { FunctionalComponent } from 'vue';
import type { UseNamespaceReturn } from 'element-plus/es/hooks';
import type { TableV2HeaderRendererParams } from '../components';
import type { TableV2Props } from '../table';
type HeaderRendererProps = TableV2HeaderRendererParams & Pick<TableV2Props, 'headerClass' | 'headerProps'> & {
ns: UseNamespaceReturn;
};
declare const HeaderRenderer: FunctionalComponent<HeaderRendererProps>;
export default HeaderRenderer;

View File

@@ -0,0 +1,45 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var utils = require('../utils.js');
var headerRow = require('../components/header-row.js');
function _isSlot(s) {
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
}
const HeaderRenderer = ({
columns,
columnsStyles,
headerIndex,
style,
headerClass,
headerProps,
ns
}, {
slots
}) => {
const param = {
columns,
headerIndex
};
const kls = [ns.e("header-row"), utils.tryCall(headerClass, param, ""), {
[ns.is("customized")]: Boolean(slots.header)
}];
const extraProps = {
...utils.tryCall(headerProps, param),
columnsStyles,
class: kls,
columns,
headerIndex,
style
};
return vue.createVNode(headerRow["default"], extraProps, _isSlot(slots) ? slots : {
default: () => [slots]
});
};
var Header = HeaderRenderer;
exports["default"] = Header;
//# sourceMappingURL=header.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"header.js","sources":["../../../../../../../packages/components/table-v2/src/renderers/header.tsx"],"sourcesContent":["import { HeaderRow } from '../components'\nimport { tryCall } from '../utils'\n\nimport type { FunctionalComponent } from 'vue'\nimport type { UseNamespaceReturn } from '@element-plus/hooks'\nimport type { TableV2HeaderRendererParams } from '../components'\nimport type { TableV2Props } from '../table'\n\ntype HeaderRendererProps = TableV2HeaderRendererParams &\n Pick<TableV2Props, 'headerClass' | 'headerProps'> & {\n ns: UseNamespaceReturn\n }\n\nconst HeaderRenderer: FunctionalComponent<HeaderRendererProps> = (\n {\n columns,\n columnsStyles,\n headerIndex,\n style,\n // derived from root\n headerClass,\n headerProps,\n\n ns,\n },\n { slots }\n) => {\n const param = { columns, headerIndex }\n\n const kls = [\n ns.e('header-row'),\n tryCall(headerClass, param, ''),\n {\n // [ns.is('resizing')]: Boolean(resizingKey),\n [ns.is('customized')]: Boolean(slots.header),\n },\n ]\n\n const extraProps = {\n ...tryCall(headerProps, param),\n columnsStyles,\n class: kls,\n columns,\n headerIndex,\n style,\n }\n\n return <HeaderRow {...extraProps}>{slots}</HeaderRow>\n}\n\nexport default HeaderRenderer\n"],"names":["HeaderRenderer","columns","columnsStyles","headerIndex","style","headerProps","ns","slots","tryCall","kls","e","extraProps","class","_createVNode","HeaderRow"],"mappings":";;;;;;;;;;;;;AAaA,EAAMA,aAAAA;EAEFC,WADF;EAEEC,KAFF;EAGEC,WAHF;EAIEC,WAJF;AAKE,EAAA,EAAA;GALF;EAOEC,KAPF;AASEC,CAAAA,KAAAA;AATF,EAWA,MAAA,KAAA,GAAA;AAAEC,IAAAA,OAAAA;AAAF,IACG,WAAA;AACH,GAAA,CAAA;QAAc,GAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,YAAA,CAAA,EAAAC,aAAA,CAAA,WAAA,EAAA,KAAA,EAAA,EAAA,CAAA,EAAA;AAAWL,IAAAA,CAAAA,EAAAA,CAAAA,EAAAA,CAAAA,YAAAA,CAAAA,GAAAA,OAAAA,CAAAA,KAAAA,CAAAA,MAAAA,CAAAA;GAAzB,CAAA,CAAA;AAEA,EAAA,MAAMM,UACDC,GAAH;AAGE,IAAA,GAAAF,aAAA,CAAA,WAAA,EAAA,KAAA,CAAA;IACA,aAAO;AAFT,IAHF,KAAA,EAAA,GAAA;IASMG,OAAAA;IAEJT,WAFiB;AAGjBU,IAAAA,KAAK;IACLX;SAJiBY,eAAA,CAAAC,oBAAA,EAAA,UAAA,EAAA,OAAA,CAAA,KAAA,CAAA,GAAA,KAAA,GAAA;AAMjBV,IAAAA,OAAAA,EAAAA,MAAAA,CAAAA,KAAAA,CAAAA;GANF,CAAA,CAAA;AASA,CAAA,CAAA;AAAA,aAAA,cAAA;;;;"}

View File

@@ -0,0 +1,8 @@
import type { FunctionalComponent, Ref } from 'vue';
import type { TableV2GridProps } from '../grid';
import type { TableGridInstance } from '../table-grid';
type LeftTableProps = TableV2GridProps & {
leftTableRef: Ref<TableGridInstance | undefined>;
};
declare const LeftTable: FunctionalComponent<LeftTableProps>;
export default LeftTable;

View File

@@ -0,0 +1,29 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var tableGrid = require('../table-grid.js');
function _isSlot(s) {
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
}
const LeftTable = (props, {
slots
}) => {
if (!props.columns.length)
return;
const {
leftTableRef,
...rest
} = props;
return vue.createVNode(tableGrid["default"], vue.mergeProps({
"ref": leftTableRef
}, rest), _isSlot(slots) ? slots : {
default: () => [slots]
});
};
var LeftTable$1 = LeftTable;
exports["default"] = LeftTable$1;
//# sourceMappingURL=left-table.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"left-table.js","sources":["../../../../../../../packages/components/table-v2/src/renderers/left-table.tsx"],"sourcesContent":["import Table from '../table-grid'\n\nimport type { FunctionalComponent, Ref } from 'vue'\nimport type { TableV2GridProps } from '../grid'\nimport type { TableGridInstance } from '../table-grid'\n\ntype LeftTableProps = TableV2GridProps & {\n leftTableRef: Ref<TableGridInstance | undefined>\n}\n\nconst LeftTable: FunctionalComponent<LeftTableProps> = (props, { slots }) => {\n if (!props.columns.length) return\n\n const { leftTableRef, ...rest } = props\n\n return (\n <Table ref={leftTableRef} {...rest}>\n {slots}\n </Table>\n )\n}\n\nexport default LeftTable\n"],"names":["LeftTable","slots","leftTableRef","rest","_createVNode","Table","_mergeProps"],"mappings":";;;;;;;;;;;;AAUA,CAAA,KAAMA;AAA2DC,EAAAA,IAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,MAAAA;AAAF,IAAc,OAAA;AAC3E,EAAA,MAAU;IAEJ,YAAA;IAAEC,GAAF,IAAA;MAAmBC,KAAAA,CAAAA;AAAnB,EAAA,OAANC,eAAA,CAAAC,oBAAA,EAAAC,cAAA,CAAA;AAEA,IAAA,KAAA,EAAA,YAAA;KACcJ,IAAAA,CAAAA,EAAAA,OAAAA,CAAAA,KAAAA,CAAAA,GAAAA,KAAAA,GAAAA;AADd,IAAA,OAAA,EAAA,MAAA,CAEKD,KAFL,CAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAKD,kBAVD,SAAA;;;;"}

View File

@@ -0,0 +1,8 @@
import type { FunctionalComponent, Ref } from 'vue';
import type { TableV2GridProps } from '../grid';
import type { TableGridInstance } from '../table-grid';
export type MainTableRendererProps = TableV2GridProps & {
mainTableRef: Ref<TableGridInstance | undefined>;
};
declare const MainTable: FunctionalComponent<MainTableRendererProps>;
export default MainTable;

View File

@@ -0,0 +1,27 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var tableGrid = require('../table-grid.js');
function _isSlot(s) {
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
}
const MainTable = (props, {
slots
}) => {
const {
mainTableRef,
...rest
} = props;
return vue.createVNode(tableGrid["default"], vue.mergeProps({
"ref": mainTableRef
}, rest), _isSlot(slots) ? slots : {
default: () => [slots]
});
};
var MainTable$1 = MainTable;
exports["default"] = MainTable$1;
//# sourceMappingURL=main-table.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"main-table.js","sources":["../../../../../../../packages/components/table-v2/src/renderers/main-table.tsx"],"sourcesContent":["import Table from '../table-grid'\n\nimport type { FunctionalComponent, Ref } from 'vue'\nimport type { TableV2GridProps } from '../grid'\nimport type { TableGridInstance } from '../table-grid'\n\nexport type MainTableRendererProps = TableV2GridProps & {\n mainTableRef: Ref<TableGridInstance | undefined>\n}\n\nconst MainTable: FunctionalComponent<MainTableRendererProps> = (\n props: MainTableRendererProps,\n { slots }\n) => {\n const { mainTableRef, ...rest } = props\n return (\n <Table ref={mainTableRef} {...rest}>\n {slots}\n </Table>\n )\n}\n\nexport default MainTable\n"],"names":["MainTable","slots","rest","mainTableRef"],"mappings":";;;;;;;;;;;;AAUA,CAAA,KAAMA;AAEFC,EAAAA,MAAAA;AAAF,IACG,YAAA;IACG,GAAA,IAAA;MAAA,KAAA,CAAA;SAAmBC,eAAAA,CAAAA,oBAAAA,EAAAA,cAAAA,CAAAA;AAAnB,IAAA,KAAN,EAAA,YAAA;AACA,GAAA,EAAA,IAAA,CAAA,EAAA,OAAA,CAAA,KAAA,CAAA,GAAA,KAAA,GAAA;IAAA,OACcC,EAAAA,MAAAA,CAAAA,KAAAA,CAAAA;AADd,GAAA,CAAA,CACgCD;AADhC,CAAA,CAAA;AAAA,kBAAA,SAAA;;;;"}

View File

@@ -0,0 +1,3 @@
import type { SimpleFunctionalComponent } from '../types';
declare const Overlay: SimpleFunctionalComponent;
export default Overlay;

View File

@@ -0,0 +1,20 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
const Overlay = (props, {
slots
}) => {
var _a;
return vue.createVNode("div", {
"class": props.class,
"style": props.style
}, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
};
Overlay.displayName = "ElTableV2Overlay";
var Overlay$1 = Overlay;
exports["default"] = Overlay$1;
//# sourceMappingURL=overlay.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"overlay.js","sources":["../../../../../../../packages/components/table-v2/src/renderers/overlay.tsx"],"sourcesContent":["import type { SimpleFunctionalComponent } from '../types'\n\nconst Overlay: SimpleFunctionalComponent = (props, { slots }) => {\n return (\n <div class={props.class} style={props.style}>\n {slots.default?.()}\n </div>\n )\n}\n\nOverlay.displayName = 'ElTableV2Overlay'\n\nexport default Overlay\n"],"names":["slots","_createVNode","props","class","style","default","Overlay"],"mappings":";;;;;;;AAEA,EAAA,KAAwC;AAAaA,CAAAA,KAAAA;AAAF,EAAc,IAAA,EAAA,CAAA;AAC/D,EAAA,OAAAC,eAAA,CAAA,KAAA,EAAA;IAAA,OACcC,EAAAA,KAAK,CAACC,KADpB;AAAA,IAAA,OAAA,EACkCD,KAAK,CAACE,KAAAA;GACnCJ,EAAAA,CAAAA,CAAAA,EAAAA,GAAMK,KAAAA,CAAAA,OAFX,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAKD,CAND,CAAA;;AAQAC,gBAAA,OAAsB;;;;"}

View File

@@ -0,0 +1,8 @@
import type { FunctionalComponent, Ref } from 'vue';
import type { TableV2GridProps } from '../grid';
import type { TableGridInstance } from '../table-grid';
type RightTableProps = TableV2GridProps & {
rightTableRef: Ref<TableGridInstance | undefined>;
};
declare const RightTable: FunctionalComponent<RightTableProps>;
export default RightTable;

View File

@@ -0,0 +1,29 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var tableGrid = require('../table-grid.js');
function _isSlot(s) {
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
}
const RightTable = (props, {
slots
}) => {
if (!props.columns.length)
return;
const {
rightTableRef,
...rest
} = props;
return vue.createVNode(tableGrid["default"], vue.mergeProps({
"ref": rightTableRef
}, rest), _isSlot(slots) ? slots : {
default: () => [slots]
});
};
var RightTable$1 = RightTable;
exports["default"] = RightTable$1;
//# sourceMappingURL=right-table.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"right-table.js","sources":["../../../../../../../packages/components/table-v2/src/renderers/right-table.tsx"],"sourcesContent":["import Table from '../table-grid'\n\nimport type { FunctionalComponent, Ref } from 'vue'\nimport type { TableV2GridProps } from '../grid'\nimport type { TableGridInstance } from '../table-grid'\n\ntype RightTableProps = TableV2GridProps & {\n rightTableRef: Ref<TableGridInstance | undefined>\n}\n\nconst RightTable: FunctionalComponent<RightTableProps> = (props, { slots }) => {\n if (!props.columns.length) return\n\n const { rightTableRef, ...rest } = props\n\n return (\n <Table ref={rightTableRef} {...rest}>\n {slots}\n </Table>\n )\n}\n\nexport default RightTable\n"],"names":["RightTable","slots","rightTableRef","rest","_createVNode","Table","_mergeProps"],"mappings":";;;;;;;;;;;;AAUA,CAAA,KAAMA;AAA6DC,EAAAA,IAAAA,CAAAA,KAAAA,CAAAA,OAAAA,CAAAA,MAAAA;AAAF,IAAc,OAAA;AAC7E,EAAA,MAAU;IAEJ,aAAA;IAAEC,GAAF,IAAA;MAAoBC,KAAAA,CAAAA;AAApB,EAAA,OAANC,eAAA,CAAAC,oBAAA,EAAAC,cAAA,CAAA;AAEA,IAAA,KAAA,EAAA,aAAA;KACcJ,IAAAA,CAAAA,EAAAA,OAAAA,CAAAA,KAAAA,CAAAA,GAAAA,KAAAA,GAAAA;AADd,IAAA,OAAA,EAAA,MAAA,CAEKD,KAFL,CAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAKD,mBAVD,UAAA;;;;"}

View File

@@ -0,0 +1,11 @@
import type { ComponentInternalInstance, FunctionalComponent, UnwrapNestedRefs } from 'vue';
import type { UseNamespaceReturn } from 'element-plus/es/hooks';
import type { UseTableReturn } from '../use-table';
import type { TableV2Props } from '../table';
import type { TableGridRowSlotParams } from '../table-grid';
type RowRendererProps = TableGridRowSlotParams & Pick<TableV2Props, 'expandColumnKey' | 'estimatedRowHeight' | 'rowProps' | 'rowClass' | 'rowKey' | 'rowEventHandlers'> & UnwrapNestedRefs<Pick<UseTableReturn, 'depthMap' | 'expandedRowKeys' | 'hasFixedColumns' | 'onRowHovered' | 'onRowExpanded' | 'columnsStyles'>> & {
ns: UseNamespaceReturn;
tableInstance?: ComponentInternalInstance;
};
declare const RowRenderer: FunctionalComponent<RowRendererProps>;
export default RowRenderer;

View File

@@ -0,0 +1,101 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var utils = require('../utils.js');
var row = require('../components/row.js');
function _isSlot(s) {
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
}
const RowRenderer = (props, {
slots
}) => {
const {
columns,
columnsStyles,
depthMap,
expandColumnKey,
expandedRowKeys,
estimatedRowHeight,
hasFixedColumns,
rowData,
rowIndex,
style,
isScrolling,
rowProps,
rowClass,
rowKey,
rowEventHandlers,
ns,
onRowHovered,
onRowExpanded
} = props;
const rowKls = utils.tryCall(rowClass, {
columns,
rowData,
rowIndex
}, "");
const additionalProps = utils.tryCall(rowProps, {
columns,
rowData,
rowIndex
});
const _rowKey = rowData[rowKey];
const depth = depthMap[_rowKey] || 0;
const canExpand = Boolean(expandColumnKey);
const isFixedRow = rowIndex < 0;
const kls = [ns.e("row"), rowKls, {
[ns.e(`row-depth-${depth}`)]: canExpand && rowIndex >= 0,
[ns.is("expanded")]: canExpand && expandedRowKeys.includes(_rowKey),
[ns.is("fixed")]: !depth && isFixedRow,
[ns.is("customized")]: Boolean(slots.row)
}];
const onRowHover = hasFixedColumns ? onRowHovered : void 0;
const _rowProps = {
...additionalProps,
columns,
columnsStyles,
class: kls,
depth,
expandColumnKey,
estimatedRowHeight: isFixedRow ? void 0 : estimatedRowHeight,
isScrolling,
rowIndex,
rowData,
rowKey: _rowKey,
rowEventHandlers,
style
};
const handlerMouseEnter = (e) => {
onRowHover == null ? void 0 : onRowHover({
hovered: true,
rowKey: _rowKey,
event: e,
rowData,
rowIndex
});
};
const handlerMouseLeave = (e) => {
onRowHover == null ? void 0 : onRowHover({
hovered: false,
rowKey: _rowKey,
event: e,
rowData,
rowIndex
});
};
return vue.createVNode(row["default"], vue.mergeProps(_rowProps, {
"onRowExpand": onRowExpanded,
"onMouseenter": handlerMouseEnter,
"onMouseleave": handlerMouseLeave,
"rowkey": _rowKey
}), _isSlot(slots) ? slots : {
default: () => [slots]
});
};
var Row = RowRenderer;
exports["default"] = Row;
//# sourceMappingURL=row.js.map

File diff suppressed because one or more lines are too long