vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 4.87 kB
Source Map (JSON)
{"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"}