UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 15.8 kB
{"version":3,"file":"table-v2.mjs","sources":["../../../../../../packages/components/table-v2/src/table-v2.tsx"],"sourcesContent":["import { defineComponent, provide, unref } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useTable } from './use-table'\nimport { TableV2InjectionKey } from './tokens'\nimport { tableV2Props } from './table'\n// renderers\nimport MainTable from './renderers/main-table'\nimport LeftTable from './renderers/left-table'\nimport RightTable from './renderers/right-table'\nimport Row from './renderers/row'\nimport Cell from './renderers/cell'\nimport Header from './renderers/header'\nimport HeaderCell from './renderers/header-cell'\nimport Footer from './renderers/footer'\nimport Empty from './renderers/empty'\nimport Overlay from './renderers/overlay'\n\nimport type { TableGridRowSlotParams } from './table-grid'\n\nimport type {\n TableV2HeaderRendererParams,\n TableV2HeaderRowCellRendererParams,\n TableV2RowCellRenderParam,\n} from './components'\n\nconst COMPONENT_NAME = 'ElTableV2'\n\nconst TableV2 = defineComponent({\n name: COMPONENT_NAME,\n props: tableV2Props,\n setup(props, { slots }) {\n const ns = useNamespace('table-v2')\n\n const {\n columnsStyles,\n fixedColumnsOnLeft,\n fixedColumnsOnRight,\n mainColumns,\n mainTableHeight,\n fixedTableHeight,\n leftTableWidth,\n rightTableWidth,\n data,\n depthMap,\n expandedRowKeys,\n hasFixedColumns,\n hoveringRowKey,\n mainTableRef,\n leftTableRef,\n rightTableRef,\n isDynamic,\n isResetting,\n isScrolling,\n\n bodyWidth,\n emptyStyle,\n rootStyle,\n headerWidth,\n footerHeight,\n\n showEmpty,\n\n getRowHeight,\n onColumnSorted,\n onRowHeightChange,\n onRowHovered,\n onRowExpanded,\n onRowsRendered,\n onScroll,\n onVerticalScroll,\n } = useTable(props)\n\n // function renderFooter() {}\n\n provide(TableV2InjectionKey, {\n ns,\n isResetting,\n hoveringRowKey,\n isScrolling,\n })\n\n return () => {\n const {\n cache,\n estimatedRowHeight,\n expandColumnKey,\n fixedData,\n headerHeight,\n headerClass,\n headerProps,\n headerCellProps,\n sortBy,\n sortState,\n rowHeight,\n rowClass,\n rowEventHandlers,\n rowKey,\n rowProps,\n scrollbarAlwaysOn,\n indentSize,\n iconSize,\n useIsScrolling,\n vScrollbarSize,\n width,\n } = props\n\n const _data = unref(data)\n\n const mainTableProps = {\n cache,\n class: ns.e('main'),\n columns: unref(mainColumns),\n data: _data,\n fixedData,\n estimatedRowHeight,\n bodyWidth: unref(bodyWidth),\n headerHeight,\n headerWidth: unref(headerWidth),\n height: unref(mainTableHeight),\n mainTableRef,\n rowKey,\n rowHeight,\n scrollbarAlwaysOn,\n scrollbarStartGap: 2,\n scrollbarEndGap: vScrollbarSize,\n useIsScrolling,\n width,\n getRowHeight,\n onRowsRendered,\n onScroll,\n }\n\n const leftColumnsWidth = unref(leftTableWidth)\n const _fixedTableHeight = unref(fixedTableHeight)\n\n const leftTableProps = {\n cache,\n class: ns.e('left'),\n columns: unref(fixedColumnsOnLeft),\n data: _data,\n estimatedRowHeight,\n leftTableRef,\n rowHeight,\n bodyWidth: leftColumnsWidth,\n headerWidth: leftColumnsWidth,\n headerHeight,\n height: _fixedTableHeight,\n rowKey,\n scrollbarAlwaysOn,\n scrollbarStartGap: 2,\n scrollbarEndGap: vScrollbarSize,\n useIsScrolling,\n width: leftColumnsWidth,\n getRowHeight,\n onScroll: onVerticalScroll,\n }\n\n const rightColumnsWidth = unref(rightTableWidth)\n const rightColumnsWidthWithScrollbar = rightColumnsWidth + vScrollbarSize\n\n const rightTableProps = {\n cache,\n class: ns.e('right'),\n columns: unref(fixedColumnsOnRight),\n data: _data,\n estimatedRowHeight,\n rightTableRef,\n rowHeight,\n bodyWidth: rightColumnsWidthWithScrollbar,\n headerWidth: rightColumnsWidthWithScrollbar,\n headerHeight,\n height: _fixedTableHeight,\n rowKey,\n scrollbarAlwaysOn,\n scrollbarStartGap: 2,\n scrollbarEndGap: vScrollbarSize,\n width: rightColumnsWidthWithScrollbar,\n style: `--${unref(\n ns.namespace\n )}-table-scrollbar-size: ${vScrollbarSize}px`,\n useIsScrolling,\n getRowHeight,\n onScroll: onVerticalScroll,\n }\n\n const tableRowProps = {\n ns,\n depthMap: unref(depthMap),\n expandColumnKey,\n expandedRowKeys: unref(expandedRowKeys),\n estimatedRowHeight,\n hasFixedColumns: unref(hasFixedColumns),\n hoveringRowKey: unref(hoveringRowKey),\n rowProps,\n rowClass,\n rowKey,\n rowEventHandlers,\n onRowHovered,\n onRowExpanded,\n onRowHeightChange,\n }\n\n const tableCellProps = {\n expandColumnKey,\n indentSize,\n iconSize,\n rowKey,\n columnsStyles: unref(columnsStyles),\n expandedRowKeys: unref(expandedRowKeys),\n ns,\n }\n\n const tableHeaderProps = {\n ns,\n headerClass,\n headerProps,\n }\n\n const tableHeaderCellProps = {\n ns,\n\n sortBy,\n sortState,\n headerCellProps,\n columnsStyles: unref(columnsStyles),\n onColumnSorted,\n }\n\n const tableSlots = {\n row: (props: TableGridRowSlotParams) => (\n <Row {...props} {...tableRowProps}>\n {{\n row: slots.row,\n cell: (props: TableV2RowCellRenderParam) =>\n slots.cell ? (\n <Cell {...props} {...tableCellProps}>\n {slots.cell}\n </Cell>\n ) : (\n <Cell {...props} {...tableCellProps} />\n ),\n }}\n </Row>\n ),\n header: (props: TableV2HeaderRendererParams) => (\n <Header {...props} {...tableHeaderProps}>\n {{\n header: slots.header,\n cell: (props: TableV2HeaderRowCellRendererParams) =>\n slots['header-cell'] ? (\n <HeaderCell {...props} {...tableHeaderCellProps}>\n {slots['header-cell']}\n </HeaderCell>\n ) : (\n <HeaderCell {...props} {...tableHeaderCellProps} />\n ),\n }}\n </Header>\n ),\n }\n\n const rootKls = [\n ns.b(),\n ns.e('root'),\n {\n [ns.is('dynamic')]: unref(isDynamic),\n },\n ]\n\n const footerProps = {\n class: ns.e('footer'),\n style: unref(footerHeight),\n }\n\n return (\n <div class={rootKls} style={unref(rootStyle)}>\n <MainTable {...mainTableProps}>{tableSlots}</MainTable>\n <LeftTable {...leftTableProps}>{tableSlots}</LeftTable>\n <RightTable {...rightTableProps}>{tableSlots}</RightTable>\n {slots.footer && (\n <Footer {...footerProps}>{{ default: slots.footer }}</Footer>\n )}\n {unref(showEmpty) && (\n <Empty class={ns.e('empty')} style={unref(emptyStyle)}>\n {{ default: slots.empty }}\n </Empty>\n )}\n {slots.overlay && (\n <Overlay class={ns.e('overlay')}>\n {{ default: slots.overlay }}\n </Overlay>\n )}\n </div>\n )\n }\n },\n})\n\nexport default TableV2\n\nexport type TableV2Instance = InstanceType<typeof TableV2>\n"],"names":["Overlay","COMPONENT_NAME","TableV2","defineComponent","name","props","setup","slots","columnsStyles","fixedColumnsOnLeft","fixedColumnsOnRight","mainColumns","mainTableHeight","fixedTableHeight","leftTableWidth","rightTableWidth","data","depthMap","expandedRowKeys","hasFixedColumns","hoveringRowKey","mainTableRef","leftTableRef","rightTableRef","isDynamic","isResetting","isScrolling","bodyWidth","emptyStyle","rootStyle","headerWidth","footerHeight","showEmpty","getRowHeight","onColumnSorted","onRowHeightChange","onRowHovered","onRowExpanded","onRowsRendered","onScroll","onVerticalScroll","provide","ns","cache","estimatedRowHeight","expandColumnKey","fixedData","headerHeight","headerClass","headerProps","headerCellProps","sortBy","sortState","rowHeight","rowClass","rowEventHandlers","rowKey","rowProps","scrollbarAlwaysOn","indentSize","iconSize","useIsScrolling","vScrollbarSize","width","class","columns","height","scrollbarStartGap","scrollbarEndGap","leftColumnsWidth","_fixedTableHeight","style","tableCellProps","Row","_mergeProps","_createVNode","Cell","HeaderCell","row","cell","header","RightTable","rootKls","unref","Empty","default","footer"],"mappings":"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"}