UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 4.64 kB
{"version":3,"file":"use-styles.mjs","names":[],"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"],"mappings":";;;;;;AAeA,MAAa,aACX,OACA,EACE,mBACA,YACA,oBACA,0BAEC;CACH,MAAM,YAAY,eAAe;EAC/B,MAAM,EAAE,OAAO,OAAO,mBAAmB;EACzC,MAAM,MAAM,QAAQ;AACpB,SAAO,QAAQ,KAAK,IAAI,KAAK,MAAM,MAAM,kBAAkB,CAAC,EAAE,IAAI,GAAG;GACrE;CAEF,MAAM,kBAAkB,eAAe;EACrC,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,cAAc,mBAAmB;AAEpE,MAAI,YAAY,GAAG;GACjB,MAAM,mBAAmB,MAAM,gBAAgB;GAC/C,MAAM,cAAc,MAAM,WAAW;GAErC,MAAM,QADgB,MAAM,aAAa,GAEvB,mBAAmB,cAAc;AAEnD,UAAO,KAAK,IAAI,OAAO,YAAY,aAAa;;AAGlD,SAAO,SAAS;GAChB;CAEF,MAAM,mBAAmB,eAAe;EACtC,MAAM,EAAE,cAAc;EACtB,MAAM,cAAc,MAAM,gBAAgB;AAC1C,MAAI,SAAS,UAAU,IAAI,YAAY,EAAG,QAAO;EAEjD,MAAM,cACJ,MAAM,WAAW,GAAG,MAAM,aAAa,GAAG,MAAM,gBAAgB;AAElE,SAAO,KAAK,IAAI,aAAa,YAAY;GACzC;CAEF,MAAM,aAAa,WAA4C,OAAO;CAEtE,MAAM,iBAAiB,eACrB,IAAI,MAAM,mBAAmB,CAAC,IAAI,UAAU,CAAC,CAC9C;CAED,MAAM,kBAAkB,eACtB,IAAI,MAAM,oBAAoB,CAAC,IAAI,UAAU,CAAC,CAC/C;CAED,MAAM,eAAe,eAAe,IAAI,MAAM,aAAa,CAAC;CAE5D,MAAM,kBAAkB,eAAe;AACrC,UAAQ,MAAM,WAAW,UAAU,KAAK,MAAM;GAC9C;CAEF,MAAM,eAAe,eAAe;AAClC,SAAO,MAAM,gBAAgB,GAAG,MAAM,aAAa,GAAG,MAAM,gBAAgB;GAC5E;CAEF,MAAM,YAAY,eAA8B;EAC9C,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,UAAU;AACtC,SAAO,YAAY;GACjB,GAAG;GACH;GACA;GACD,CAAC;GACF;AAYF,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA,cAjBmB,eACnB,YAAY,EAAE,QAAQ,MAAM,cAAc,CAAC,CAC5C;EAgBC,YAdiB,gBAA+B;GAChD,KAAK,QAAQ,MAAM,aAAa,CAAC;GACjC,QAAQ,QAAQ,MAAM,aAAa;GACnC,OAAO,QAAQ,MAAM,MAAM;GAC5B,EAAE;EAWD;EACA;EACD"}