{"version":3,"file":"table-head.vue2.cjs","sources":["../../../components/table/table-head.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject } from 'vue'\n\nimport TableHeadCell from './table-head-cell.vue'\nimport TableRow from './table-row.vue'\nimport { useNameHelper } from '@vexip-ui/config'\nimport { getLast } from '@vexip-ui/utils'\nimport { TABLE_HEAD_PREFIX, TABLE_STORE } from './symbol'\n\nimport type { PropType } from 'vue'\n\ndefineOptions({ name: 'TableHead' })\n\nconst props = defineProps({\n  fixed: {\n    type: String as PropType<'left' | 'right' | undefined>,\n    default: null,\n  },\n})\n\nconst { state, getters, mutations } = inject(TABLE_STORE)!\n\nconst nh = useNameHelper('table')\nconst allColumns = computed(() => {\n  const left = state.leftFixedColumns.length\n  const right = state.allColumns[0].length - state.rightFixedColumns.length\n\n  if (props.fixed === 'left') {\n    return state.allColumns.map(columns => columns.slice(0, left))\n  } else if (props.fixed === 'right') {\n    return state.allColumns.map(columns => columns.slice(right, state.allColumns[0].length))\n  }\n\n  return state.allColumns.map(columns => columns.slice(left, right))\n})\nconst columns = computed(() => {\n  return props.fixed === 'left'\n    ? state.leftFixedColumns\n    : props.fixed === 'right'\n      ? state.rightFixedColumns\n      : state.normalColumns\n})\nconst style = computed(() => {\n  const width =\n    props.fixed === 'left'\n      ? getLast(getters.leftFixedWidths)\n      : props.fixed === 'right'\n        ? getLast(getters.rightFixedWidths)\n        : getLast(getters.normalWidths)\n  const padLeft = columns.value[0]?.fixed === 'left' ? state.sidePadding[0] || 0 : 0\n  const padRight = getLast(columns.value)?.fixed === 'right' ? state.sidePadding[1] || 0 : 0\n\n  return {\n    minWidth: width && `${width + padLeft + padRight}px`,\n  }\n})\n\nfunction getRow(index: number) {\n  const key = `${TABLE_HEAD_PREFIX}${index}`\n\n  return state.rowMap.get(key) || mutations.createMinRowState(key)\n}\n</script>\n\n<template>\n  <div :class=\"nh.be('head')\" role=\"rowgroup\" :style=\"style\">\n    <TableRow\n      v-for=\"(rowColumns, rowIndex) in allColumns\"\n      :key=\"rowIndex\"\n      :index=\"rowIndex\"\n      is-head\n      :fixed=\"fixed\"\n      :row=\"getRow(rowIndex)\"\n      :aria-rowindex=\"rowIndex\"\n    >\n      <template v-for=\"(column, index) in rowColumns as any\" :key=\"index\">\n        <TableHeadCell\n          v-if=\"column\"\n          :column=\"column\"\n          :index=\"index\"\n          :row=\"getRow(rowIndex)\"\n          :row-index=\"rowIndex\"\n          :fixed=\"fixed\"\n          :aria-colindex=\"index\"\n        ></TableHeadCell>\n      </template>\n    </TableRow>\n  </div>\n</template>\n"],"names":["props","__props","state","getters","mutations","inject","TABLE_STORE","nh","useNameHelper","allColumns","computed","left","right","columns","style","width","getLast","padLeft","_a","padRight","getRow","index","key","TABLE_HEAD_PREFIX","_createElementBlock","_normalizeClass","_unref","_openBlock","_Fragment","_renderList","rowColumns","rowIndex","_createBlock","TableRow","column","TableHeadCell"],"mappings":"yXAaA,MAAMA,EAAQC,EAOR,CAAE,MAAAC,EAAO,QAAAC,EAAS,UAAAC,CAAU,EAAIC,EAAAA,OAAOC,EAAAA,WAAW,EAElDC,EAAKC,gBAAc,OAAO,EAC1BC,EAAaC,EAAAA,SAAS,IAAM,CAC1B,MAAAC,EAAOT,EAAM,iBAAiB,OAC9BU,EAAQV,EAAM,WAAW,CAAC,EAAE,OAASA,EAAM,kBAAkB,OAE/D,OAAAF,EAAM,QAAU,OACXE,EAAM,WAAW,IAAIW,GAAWA,EAAQ,MAAM,EAAGF,CAAI,CAAC,EACpDX,EAAM,QAAU,QAClBE,EAAM,WAAW,IAAIW,GAAWA,EAAQ,MAAMD,EAAOV,EAAM,WAAW,CAAC,EAAE,MAAM,CAAC,EAGlFA,EAAM,WAAW,IAAIW,GAAWA,EAAQ,MAAMF,EAAMC,CAAK,CAAC,CAAA,CAClE,EACKC,EAAUH,EAAAA,SAAS,IAChBV,EAAM,QAAU,OACnBE,EAAM,iBACNF,EAAM,QAAU,QACdE,EAAM,kBACNA,EAAM,aACb,EACKY,EAAQJ,EAAAA,SAAS,IAAM,SAC3B,MAAMK,EACJf,EAAM,QAAU,OACZgB,UAAQb,EAAQ,eAAe,EAC/BH,EAAM,QAAU,QACdgB,EAAAA,QAAQb,EAAQ,gBAAgB,EAChCa,EAAA,QAAQb,EAAQ,YAAY,EAC9Bc,IAAUC,EAAAL,EAAQ,MAAM,CAAC,IAAf,YAAAK,EAAkB,SAAU,QAAShB,EAAM,YAAY,CAAC,GAAK,EACvEiB,IAAWH,EAAAA,EAAAA,QAAQH,EAAQ,KAAK,IAArBG,YAAAA,EAAwB,SAAU,SAAUd,EAAM,YAAY,CAAC,GAAK,EAE9E,MAAA,CACL,SAAUa,GAAS,GAAGA,EAAQE,EAAUE,CAAQ,IAClD,CAAA,CACD,EAED,SAASC,EAAOC,EAAe,CAC7B,MAAMC,EAAM,GAAGC,mBAAiB,GAAGF,CAAK,GAExC,OAAOnB,EAAM,OAAO,IAAIoB,CAAG,GAAKlB,EAAU,kBAAkBkB,CAAG,CAAA,6BAK/DE,EAAA,mBAsBM,MAAA,CAtBA,MAAKC,EAAE,eAAAC,EAAA,MAAEnB,CAAA,EAAC,GAAE,MAAA,CAAA,EAAU,KAAK,WAAY,uBAAOO,EAAK,KAAA,CAAA,IACvDa,EAAAA,UAAA,EAAA,EAAAH,EAoBW,mBAAAI,WAnBwB,KAAAC,EAAA,WAAApB,EAAA,MAAzB,CAAAqB,EAAYC,mBADtBC,EAAA,YAoBWC,EAAA,CAlBR,IAAKF,EACL,MAAOA,EACR,UAAA,GACC,MAAO9B,EAAK,MACZ,IAAKmB,EAAOW,CAAQ,EACpB,gBAAeA,CAAA,qBAEN,IAA4C,EAAtDJ,YAAA,EAAA,EAAAH,EAAAA,mBAUWI,EAAA,SAVyB,KAAAC,EAAAA,WAAAC,EAAlB,CAAAI,EAAQb,wDAAmCA,GAAK,CAExDa,iBADRF,EAAA,YAQiBG,EAAA,OANd,OAAAD,EACA,MAAAb,EACA,IAAKD,EAAOW,CAAQ,EACpB,YAAWA,EACX,MAAO9B,EAAK,MACZ,gBAAeoB"}