@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 3.88 kB
Source Map (JSON)
{"version":3,"file":"table-foot.vue2.mjs","sources":["../../../components/table/table-foot.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject } from 'vue'\n\nimport TableFootCell from './table-foot-cell.vue'\nimport TableRow from './table-row.vue'\nimport { useNameHelper } from '@vexip-ui/config'\nimport { getLast } from '@vexip-ui/utils'\nimport { TABLE_STORE } from './symbol'\n\nimport type { PropType } from 'vue'\n\ndefineOptions({ name: 'TableFoot' })\n\nconst props = defineProps({\n fixed: {\n type: String as PropType<'left' | 'right' | undefined>,\n default: null\n },\n above: {\n type: Boolean,\n default: false\n }\n})\n\nconst { state, getters, mutations } = inject(TABLE_STORE)!\n\nconst nh = useNameHelper('table')\n\nconst columns = computed(() => {\n return props.fixed === 'left'\n ? state.leftFixedColumns\n : props.fixed === 'right'\n ? state.rightFixedColumns\n : state.normalColumns\n})\nconst summaries = computed(() => (props.above ? state.aboveSummaries : state.belowSummaries))\nconst summaryData = computed(() => {\n return summaries.value.map(summary => {\n const key = mutations.buildSummaryKey(summary.key)\n const row = state.rowMap.get(key) || mutations.createMinRowState(key)\n\n return { summary, row }\n })\n})\nconst className = computed(() => {\n return [nh.be('foot'), nh.bem('foot', props.above ? 'above' : 'below')]\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</script>\n\n<template>\n <div :class=\"className\" role=\"rowgroup\" :style=\"style\">\n <TableRow\n v-for=\"({ row, summary }, index) in summaryData\"\n :key=\"row.key\"\n is-foot\n :fixed=\"fixed\"\n :row=\"row\"\n :aria-rowindex=\"index\"\n >\n <TableFootCell\n v-for=\"(column, colIndex) in columns\"\n :key=\"colIndex\"\n :row=\"row\"\n :column=\"column\"\n :col-index=\"colIndex\"\n :summary=\"summary\"\n :summary-index=\"index\"\n :fixed=\"fixed\"\n :above=\"above\"\n :aria-colindex=\"colIndex\"\n ></TableFootCell>\n </TableRow>\n </div>\n</template>\n"],"names":["props","__props","state","getters","mutations","inject","TABLE_STORE","nh","useNameHelper","columns","computed","summaries","summaryData","summary","key","row","className","style","width","getLast","padLeft","_a","padRight","_b"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaA,UAAMA,IAAQC,GAWR,EAAE,OAAAC,GAAO,SAAAC,GAAS,WAAAC,EAAU,IAAIC,EAAOC,CAAW,GAElDC,IAAKC,EAAc,OAAO,GAE1BC,IAAUC,EAAS,MAChBV,EAAM,UAAU,SACnBE,EAAM,mBACNF,EAAM,UAAU,UACdE,EAAM,oBACNA,EAAM,aACb,GACKS,IAAYD,EAAS,MAAOV,EAAM,QAAQE,EAAM,iBAAiBA,EAAM,cAAe,GACtFU,IAAcF,EAAS,MACpBC,EAAU,MAAM,IAAI,CAAWE,MAAA;AACpC,YAAMC,IAAMV,EAAU,gBAAgBS,EAAQ,GAAG,GAC3CE,IAAMb,EAAM,OAAO,IAAIY,CAAG,KAAKV,EAAU,kBAAkBU,CAAG;AAE7D,aAAA,EAAE,SAAAD,GAAS,KAAAE,EAAI;AAAA,IAAA,CACvB,CACF,GACKC,IAAYN,EAAS,MAClB,CAACH,EAAG,GAAG,MAAM,GAAGA,EAAG,IAAI,QAAQP,EAAM,QAAQ,UAAU,OAAO,CAAC,CACvE,GACKiB,IAAQP,EAAS,MAAM;;AAC3B,YAAMQ,IACJlB,EAAM,UAAU,SACZmB,EAAQhB,EAAQ,eAAe,IAC/BH,EAAM,UAAU,UACdmB,EAAQhB,EAAQ,gBAAgB,IAChCgB,EAAQhB,EAAQ,YAAY,GAC9BiB,MAAUC,IAAAZ,EAAQ,MAAM,CAAC,MAAf,gBAAAY,EAAkB,WAAU,UAASnB,EAAM,YAAY,CAAC,KAAK,GACvEoB,MAAWC,IAAAJ,EAAQV,EAAQ,KAAK,MAArB,gBAAAc,EAAwB,WAAU,WAAUrB,EAAM,YAAY,CAAC,KAAK;AAE9E,aAAA;AAAA,QACL,UAAUgB,KAAS,GAAGA,IAAQE,IAAUE,CAAQ;AAAA,MAClD;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}