element-plus
Version:
A Component Library for Vue 3
1 lines • 6.08 kB
Source Map (JSON)
{"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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"}