{"version":3,"file":"table-header.vue2.mjs","sources":["../../../../../packages/components/table/src/table-header.vue"],"sourcesContent":["<template>\n  <colgroup>\n    <col\n      v-for=\"column of columns\"\n      :key=\"column.key\"\n      :style=\"getColStyle(column)\"\n    />\n  </colgroup>\n\n  <tr :class=\"ns.e('header')\">\n    <template v-for=\"(columns, type) of columnLayouts\">\n      <th\n        v-for=\"column of columns\"\n        :class=\"[\n          headerCellClass,\n          ns.em('header-cell', type),\n          ns.is('last', column.typeLast),\n          ns.is('first', column.typeFirst)\n        ]\"\n        :style=\"getCellStyle(column, column.fixed)\"\n        :key=\"column.key\"\n      >\n        <ElNodeRender :nodes=\"[column.name()]\" />\n      </th>\n    </template>\n  </tr>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, CSSProperties, inject } from 'vue'\nimport { tableToken } from './token'\nimport { ElNodeRender } from '@element-ultra/components/node-render'\nimport type { TableColumn } from './table'\n\nconst { columnLayouts, columns, containerWidth, ns, getCellStyle } =\n  inject(tableToken)!\n\nconst headerCellClass = ns.e('header-cell')\n\n/** 剩余的平均宽度 */\nconst restAverageWidth = computed(() => {\n  const columnTotalWidth = columns.value.reduce((acc, cur) => {\n    if (cur.width) {\n      if (cur.minWidth && cur.minWidth > cur.width) {\n        acc += cur.minWidth\n      } else {\n        acc += cur.width\n      }\n    } else {\n      if (cur.minWidth) {\n        acc += cur.minWidth\n      }\n    }\n\n    return acc\n  }, 0)\n\n  const restNum = columns.value.filter(column => !column.width).length\n\n  return (containerWidth.value - columnTotalWidth) / restNum\n})\n\nconst getColStyle = (column: TableColumn): CSSProperties => {\n  const style: CSSProperties = {}\n\n  if (column.width) {\n    style.width = `${column.width}px`\n  }\n  if (column.minWidth) {\n    if (restAverageWidth.value > 0) {\n      style.width = `${column.minWidth + restAverageWidth.value}px`\n    } else {\n      style.width = `${column.minWidth}px`\n    }\n  }\n  return style\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;AAkCA,IAAM,MAAA,EAAE,eAAe,OAAS,EAAA,cAAA,EAAgB,IAAI,YAAa,EAAA,GAC/D,OAAO,UAAU,CAAA,CAAA;AAEnB,IAAM,MAAA,eAAA,GAAkB,EAAG,CAAA,CAAA,CAAE,aAAa,CAAA,CAAA;AAG1C,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAAM;AACtC,MAAA,MAAM,mBAAmB,OAAQ,CAAA,KAAA,CAAM,MAAO,CAAA,CAAC,KAAK,GAAQ,KAAA;AAC1D,QAAA,IAAI,IAAI,KAAO,EAAA;AACb,UAAA,IAAI,GAAI,CAAA,QAAA,IAAY,GAAI,CAAA,QAAA,GAAW,IAAI,KAAO,EAAA;AAC5C,YAAA,GAAA,IAAO,GAAI,CAAA,QAAA,CAAA;AAAA,WACN,MAAA;AACL,YAAA,GAAA,IAAO,GAAI,CAAA,KAAA,CAAA;AAAA,WACb;AAAA,SACK,MAAA;AACL,UAAA,IAAI,IAAI,QAAU,EAAA;AAChB,YAAA,GAAA,IAAO,GAAI,CAAA,QAAA,CAAA;AAAA,WACb;AAAA,SACF;AAEA,QAAO,OAAA,GAAA,CAAA;AAAA,SACN,CAAC,CAAA,CAAA;AAEJ,MAAM,MAAA,OAAA,GAAU,QAAQ,KAAM,CAAA,MAAA,CAAO,YAAU,CAAC,MAAA,CAAO,KAAK,CAAE,CAAA,MAAA,CAAA;AAE9D,MAAQ,OAAA,CAAA,cAAA,CAAe,QAAQ,gBAAoB,IAAA,OAAA,CAAA;AAAA,KACpD,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAc,CAAC,MAAuC,KAAA;AAC1D,MAAA,MAAM,QAAuB,EAAC,CAAA;AAE9B,MAAA,IAAI,OAAO,KAAO,EAAA;AAChB,QAAM,KAAA,CAAA,KAAA,GAAQ,GAAG,MAAO,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAAA,OAC1B;AACA,MAAA,IAAI,OAAO,QAAU,EAAA;AACnB,QAAI,IAAA,gBAAA,CAAiB,QAAQ,CAAG,EAAA;AAC9B,UAAA,KAAA,CAAM,KAAQ,GAAA,CAAA,EAAG,MAAO,CAAA,QAAA,GAAW,gBAAiB,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SAC/C,MAAA;AACL,UAAM,KAAA,CAAA,KAAA,GAAQ,GAAG,MAAO,CAAA,QAAA,CAAA,EAAA,CAAA,CAAA;AAAA,SAC1B;AAAA,OACF;AACA,MAAO,OAAA,KAAA,CAAA;AAAA,KACT,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}