{"version":3,"file":"table-head.vue2.mjs","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","_b","getRow","index","key","TABLE_HEAD_PREFIX"],"mappings":";;;;;;;;;;;;;;;;;;AAaA,UAAMA,IAAQC,GAOR,EAAE,OAAAC,GAAO,SAAAC,GAAS,WAAAC,EAAU,IAAIC,EAAOC,CAAW,GAElDC,IAAKC,EAAc,OAAO,GAC1BC,IAAaC,EAAS,MAAM;AAC1B,YAAAC,IAAOT,EAAM,iBAAiB,QAC9BU,IAAQV,EAAM,WAAW,CAAC,EAAE,SAASA,EAAM,kBAAkB;AAE/D,aAAAF,EAAM,UAAU,SACXE,EAAM,WAAW,IAAI,CAAAW,MAAWA,EAAQ,MAAM,GAAGF,CAAI,CAAC,IACpDX,EAAM,UAAU,UAClBE,EAAM,WAAW,IAAI,CAAAW,MAAWA,EAAQ,MAAMD,GAAOV,EAAM,WAAW,CAAC,EAAE,MAAM,CAAC,IAGlFA,EAAM,WAAW,IAAI,CAAAW,MAAWA,EAAQ,MAAMF,GAAMC,CAAK,CAAC;AAAA,IAAA,CAClE,GACKC,IAAUH,EAAS,MAChBV,EAAM,UAAU,SACnBE,EAAM,mBACNF,EAAM,UAAU,UACdE,EAAM,oBACNA,EAAM,aACb,GACKY,IAAQJ,EAAS,MAAM;;AAC3B,YAAMK,IACJf,EAAM,UAAU,SACZgB,EAAQb,EAAQ,eAAe,IAC/BH,EAAM,UAAU,UACdgB,EAAQb,EAAQ,gBAAgB,IAChCa,EAAQb,EAAQ,YAAY,GAC9Bc,MAAUC,IAAAL,EAAQ,MAAM,CAAC,MAAf,gBAAAK,EAAkB,WAAU,UAAShB,EAAM,YAAY,CAAC,KAAK,GACvEiB,MAAWC,IAAAJ,EAAQH,EAAQ,KAAK,MAArB,gBAAAO,EAAwB,WAAU,WAAUlB,EAAM,YAAY,CAAC,KAAK;AAE9E,aAAA;AAAA,QACL,UAAUa,KAAS,GAAGA,IAAQE,IAAUE,CAAQ;AAAA,MAClD;AAAA,IAAA,CACD;AAED,aAASE,EAAOC,GAAe;AAC7B,YAAMC,IAAM,GAAGC,CAAiB,GAAGF,CAAK;AAExC,aAAOpB,EAAM,OAAO,IAAIqB,CAAG,KAAKnB,EAAU,kBAAkBmB,CAAG;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}