UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 5.89 kB
{"version":3,"file":"use-styles.mjs","sources":["../../../../../../../packages/components/table-v2/src/composables/use-styles.ts"],"sourcesContent":["import { computed, unref } from 'vue'\nimport { addUnit, isNumber } from '@element-plus/utils'\nimport { enforceUnit, sum } from '../utils'\n\nimport type { CSSProperties, ComputedRef } from 'vue'\nimport type { TableV2Props } from '../table'\nimport type { UseColumnsReturn } from './use-columns'\n\ntype UseStyleProps = {\n columnsTotalWidth: UseColumnsReturn['columnsTotalWidth']\n fixedColumnsOnLeft: UseColumnsReturn['fixedColumnsOnLeft']\n fixedColumnsOnRight: UseColumnsReturn['fixedColumnsOnRight']\n rowsHeight: ComputedRef<number>\n}\n\nexport const useStyles = (\n props: TableV2Props,\n {\n columnsTotalWidth,\n rowsHeight,\n fixedColumnsOnLeft,\n fixedColumnsOnRight,\n }: UseStyleProps\n) => {\n const bodyWidth = computed(() => {\n const { fixed, width, vScrollbarSize } = props\n const ret = width - vScrollbarSize\n return fixed ? Math.max(Math.round(unref(columnsTotalWidth)), ret) : ret\n })\n\n const mainTableHeight = computed(() => {\n const { height = 0, maxHeight = 0, footerHeight, hScrollbarSize } = props\n\n if (maxHeight > 0) {\n const _fixedRowsHeight = unref(fixedRowsHeight)\n const _rowsHeight = unref(rowsHeight)\n const _headerHeight = unref(headerHeight)\n const total =\n _headerHeight + _fixedRowsHeight + _rowsHeight + hScrollbarSize\n\n return Math.min(total, maxHeight - footerHeight)\n }\n\n return height - footerHeight\n })\n\n const fixedTableHeight = computed(() => {\n const { maxHeight } = props\n const tableHeight = unref(mainTableHeight)\n if (isNumber(maxHeight) && maxHeight > 0) return tableHeight\n\n const totalHeight =\n unref(rowsHeight) + unref(headerHeight) + unref(fixedRowsHeight)\n\n return Math.min(tableHeight, totalHeight)\n })\n\n const mapColumn = (column: TableV2Props['columns'][number]) => column.width\n\n const leftTableWidth = computed(() =>\n sum(unref(fixedColumnsOnLeft).map(mapColumn))\n )\n\n const rightTableWidth = computed(() =>\n sum(unref(fixedColumnsOnRight).map(mapColumn))\n )\n\n const headerHeight = computed(() => sum(props.headerHeight))\n\n const fixedRowsHeight = computed(() => {\n return (props.fixedData?.length || 0) * props.rowHeight\n })\n\n const windowHeight = computed(() => {\n return unref(mainTableHeight) - unref(headerHeight) - unref(fixedRowsHeight)\n })\n\n const rootStyle = computed<CSSProperties>(() => {\n const { style = {}, height, width } = props\n return enforceUnit({\n ...style,\n height,\n width,\n })\n })\n\n const footerHeight = computed(() =>\n enforceUnit({ height: props.footerHeight })\n )\n\n const emptyStyle = computed<CSSProperties>(() => ({\n top: addUnit(unref(headerHeight)),\n bottom: addUnit(props.footerHeight),\n width: addUnit(props.width),\n }))\n\n return {\n bodyWidth,\n fixedTableHeight,\n mainTableHeight,\n leftTableWidth,\n rightTableWidth,\n windowHeight,\n footerHeight,\n emptyStyle,\n rootStyle,\n headerHeight,\n }\n}\n\nexport type UseStyleReturn = ReturnType<typeof useStyles>\n"],"names":["footerHeight"],"mappings":"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"}