{"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"}