{"version":3,"file":"table-head.vue2.mjs","sources":["../../../components/table/table-head.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, inject } from 'vue'\r\n\r\nimport TableHeadCell from './table-head-cell.vue'\r\nimport TableRow from './table-row.vue'\r\nimport { useNameHelper } from '@vexip-ui/config'\r\nimport { getLast } from '@vexip-ui/utils'\r\nimport { TABLE_HEAD_PREFIX, TABLE_STORE } from './symbol'\r\n\r\nimport type { PropType } from 'vue'\r\n\r\ndefineOptions({ name: 'TableHead' })\r\n\r\nconst props = defineProps({\r\n  fixed: {\r\n    type: String as PropType<'left' | 'right' | undefined>,\r\n    default: null,\r\n  },\r\n})\r\n\r\nconst { state, getters, mutations } = inject(TABLE_STORE)!\r\n\r\nconst nh = useNameHelper('table')\r\nconst allColumns = computed(() => {\r\n  const left = state.leftFixedColumns.length\r\n  const right = state.allColumns[0].length - state.rightFixedColumns.length\r\n\r\n  if (props.fixed === 'left') {\r\n    return state.allColumns.map(columns => columns.slice(0, left))\r\n  } else if (props.fixed === 'right') {\r\n    return state.allColumns.map(columns => columns.slice(right, state.allColumns[0].length))\r\n  }\r\n\r\n  return state.allColumns.map(columns => columns.slice(left, right))\r\n})\r\nconst columns = computed(() => {\r\n  return props.fixed === 'left'\r\n    ? state.leftFixedColumns\r\n    : props.fixed === 'right'\r\n      ? state.rightFixedColumns\r\n      : state.normalColumns\r\n})\r\nconst style = computed(() => {\r\n  const width =\r\n    props.fixed === 'left'\r\n      ? getLast(getters.leftFixedWidths)\r\n      : props.fixed === 'right'\r\n        ? getLast(getters.rightFixedWidths)\r\n        : getLast(getters.normalWidths)\r\n  const padLeft = columns.value[0]?.fixed === 'left' ? state.sidePadding[0] || 0 : 0\r\n  const padRight = getLast(columns.value)?.fixed === 'right' ? state.sidePadding[1] || 0 : 0\r\n\r\n  return {\r\n    minWidth: width && `${width + padLeft + padRight}px`,\r\n  }\r\n})\r\n\r\nfunction getRow(index: number) {\r\n  const key = `${TABLE_HEAD_PREFIX}${index}`\r\n\r\n  return state.rowMap.get(key) || mutations.createMinRowState(key)\r\n}\r\n</script>\r\n\r\n<template>\r\n  <div :class=\"nh.be('head')\" role=\"rowgroup\" :style=\"style\">\r\n    <TableRow\r\n      v-for=\"(rowColumns, rowIndex) in allColumns\"\r\n      :key=\"rowIndex\"\r\n      :index=\"rowIndex\"\r\n      is-head\r\n      :fixed=\"fixed\"\r\n      :row=\"getRow(rowIndex)\"\r\n      :aria-rowindex=\"rowIndex\"\r\n    >\r\n      <template v-for=\"(column, index) in rowColumns as any\" :key=\"index\">\r\n        <TableHeadCell\r\n          v-if=\"column\"\r\n          :column=\"column\"\r\n          :index=\"index\"\r\n          :row=\"getRow(rowIndex)\"\r\n          :row-index=\"rowIndex\"\r\n          :fixed=\"fixed\"\r\n          :aria-colindex=\"index\"\r\n        ></TableHeadCell>\r\n      </template>\r\n    </TableRow>\r\n  </div>\r\n</template>\r\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","_createElementBlock","_normalizeClass","_unref","_openBlock","_Fragment","_renderList","rowColumns","rowIndex","_createBlock","TableRow","column","TableHeadCell"],"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;2BAK/DE,EAsBM,OAAA;AAAA,MAtBA,OAAKC,EAAEC,EAAEpB,CAAA,EAAC,GAAE,MAAA,CAAA;AAAA,MAAU,MAAK;AAAA,MAAY,SAAOO,EAAK,KAAA;AAAA,IAAA;OACvDc,EAAA,EAAA,GAAAH,EAoBWI,GAnBwB,MAAAC,EAAArB,EAAA,OAAzB,CAAAsB,GAAYC,YADtBC,EAoBWC,GAAA;AAAA,QAlBR,KAAKF;AAAA,QACL,OAAOA;AAAA,QACR,WAAA;AAAA,QACC,OAAO/B,EAAK;AAAA,QACZ,KAAKoB,EAAOW,CAAQ;AAAA,QACpB,iBAAeA;AAAA,MAAA;mBAEN,MAA4C;AAAA,WAAtDJ,EAAA,EAAA,GAAAH,EAUWI,GAVyB,MAAAC,EAAAC,GAAlB,CAAAI,GAAQb,wBAAmCA,KAAK;AAAA,YAExDa,UADRF,EAQiBG,GAAA;AAAA;cANd,QAAAD;AAAA,cACA,OAAAb;AAAA,cACA,KAAKD,EAAOW,CAAQ;AAAA,cACpB,aAAWA;AAAA,cACX,OAAO/B,EAAK;AAAA,cACZ,iBAAeqB;AAAA;;;;;;;;"}