vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 5.04 kB
Source Map (JSON)
{"version":3,"file":"table-body.vue2.cjs","sources":["../../../components/table/table-body.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, toRef } from 'vue'\n\nimport TableCell from './table-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: 'TableBody' })\n\nconst props = defineProps({\n fixed: {\n type: String as PropType<'left' | 'right' | undefined>,\n default: null,\n },\n})\n\nconst { state, getters } = inject(TABLE_STORE)!\n\nconst nh = useNameHelper('table')\nconst locale = toRef(state, 'locale')\n\nconst columns = computed(() => {\n return props.fixed === 'left'\n ? state.leftFixedColumns\n : props.fixed === 'right'\n ? state.rightFixedColumns\n : state.normalColumns\n})\nconst data = computed(() => (state.virtual ? state.virtualData : getters.processedData))\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 [nh.cv('expanded-fix-width')]:\n props.fixed === 'right' && width ? `${width + padLeft + padRight}px` : '0px',\n minWidth: width && `${width + padLeft + padRight}px`,\n minHeight: `${state.totalHeight}px`,\n }\n})\nconst emptyStyle = computed(() => {\n const { rowHeight, rowMinHeight } = state\n\n return {\n minHeight: `${rowHeight || rowMinHeight}px`,\n }\n})\n</script>\n\n<template>\n <div :class=\"nh.be('body')\" role=\"rowgroup\" :style=\"style\">\n <template v-if=\"data.length\">\n <TableRow\n v-for=\"(row, index) in data\"\n :key=\"index\"\n :row=\"row\"\n :index=\"row.listIndex\"\n :fixed=\"fixed\"\n :aria-rowindex=\"row.index\"\n >\n <TableCell\n v-for=\"(column, colIndex) in columns\"\n :key=\"colIndex\"\n :row=\"row\"\n :row-index=\"row.listIndex\"\n :column=\"column\"\n :col-index=\"colIndex\"\n :fixed=\"fixed\"\n :aria-colindex=\"colIndex\"\n ></TableCell>\n </TableRow>\n </template>\n <div v-else :class=\"nh.be('empty')\" :style=\"emptyStyle\">\n <slot name=\"empty\" :is-fixed=\"!!fixed\">\n <template v-if=\"!fixed\">\n {{ locale.empty }}\n </template>\n </slot>\n </div>\n </div>\n</template>\n"],"names":["props","__props","state","getters","inject","TABLE_STORE","nh","useNameHelper","locale","toRef","columns","computed","data","style","width","getLast","padLeft","_a","padRight","emptyStyle","rowHeight","rowMinHeight","_createElementBlock","_normalizeClass","_unref","_openBlock","_Fragment","_renderList","row","index","_createBlock","TableRow","column","colIndex","TableCell","_renderSlot","_ctx","_createTextVNode","_toDisplayString"],"mappings":"+WAaA,MAAMA,EAAQC,EAOR,CAAE,MAAAC,EAAO,QAAAC,GAAYC,EAAAA,OAAOC,EAAAA,WAAW,EAEvCC,EAAKC,gBAAc,OAAO,EAC1BC,EAASC,EAAAA,MAAMP,EAAO,QAAQ,EAE9BQ,EAAUC,EAAAA,SAAS,IAChBX,EAAM,QAAU,OACnBE,EAAM,iBACNF,EAAM,QAAU,QACdE,EAAM,kBACNA,EAAM,aACb,EACKU,EAAOD,WAAS,IAAOT,EAAM,QAAUA,EAAM,YAAcC,EAAQ,aAAc,EACjFU,EAAQF,EAAAA,SAAS,IAAM,SAC3B,MAAMG,EACJd,EAAM,QAAU,OACZe,UAAQZ,EAAQ,eAAe,EAC/BH,EAAM,QAAU,QACde,EAAAA,QAAQZ,EAAQ,gBAAgB,EAChCY,EAAA,QAAQZ,EAAQ,YAAY,EAC9Ba,IAAUC,EAAAP,EAAQ,MAAM,CAAC,IAAf,YAAAO,EAAkB,SAAU,QAASf,EAAM,YAAY,CAAC,GAAK,EACvEgB,IAAWH,EAAAA,EAAAA,QAAQL,EAAQ,KAAK,IAArBK,YAAAA,EAAwB,SAAU,SAAUb,EAAM,YAAY,CAAC,GAAK,EAE9E,MAAA,CACL,CAACI,EAAG,GAAG,oBAAoB,CAAC,EAC1BN,EAAM,QAAU,SAAWc,EAAQ,GAAGA,EAAQE,EAAUE,CAAQ,KAAO,MACzE,SAAUJ,GAAS,GAAGA,EAAQE,EAAUE,CAAQ,KAChD,UAAW,GAAGhB,EAAM,WAAW,IACjC,CAAA,CACD,EACKiB,EAAaR,EAAAA,SAAS,IAAM,CAC1B,KAAA,CAAE,UAAAS,EAAW,aAAAC,CAAA,EAAiBnB,EAE7B,MAAA,CACL,UAAW,GAAGkB,GAAaC,CAAY,IACzC,CAAA,CACD,8BAICC,EAAA,mBA6BM,MAAA,CA7BA,MAAKC,EAAE,eAAAC,EAAA,MAAElB,CAAA,EAAC,GAAE,MAAA,CAAA,EAAU,KAAK,WAAY,uBAAOO,EAAK,KAAA,CAAA,GACvCD,EAAA,MAAK,QACnBa,EAAA,UAAA,EAAA,EAAAH,EAAAA,mBAkBWI,EAAA,SAjBc,CAAA,IAAA,CAAA,EAAAC,aAAAf,EAAA,MAAf,CAAAgB,EAAKC,mBADfC,EAAA,YAkBWC,EAAA,CAhBR,IAAKF,EACL,IAAAD,EACA,MAAOA,EAAI,UACX,MAAO3B,EAAK,MACZ,gBAAe2B,EAAI,KAAA,qBAGlB,IAAqC,EADvCH,EAAAA,UAAA,EAAA,EAAAH,EASa,mBAAAI,WARkB,KAAAC,EAAA,WAAAjB,EAAA,MAArB,CAAAsB,EAAQC,mBADlBH,EAAA,YASaI,EAAA,CAPV,IAAKD,EACL,IAAAL,EACA,YAAWA,EAAI,UACf,OAAAI,EACA,YAAWC,EACX,MAAOhC,EAAK,MACZ,gBAAegC,CAAA,+JAItBX,EAAAA,mBAMM,MAAA,OANO,MAAKC,EAAE,eAAAC,EAAA,MAAElB,CAAA,EAAC,GAAE,OAAA,CAAA,EAAY,uBAAOa,EAAU,KAAA,CAAA,GACpDgB,aAIOC,EAAA,OAAA,QAAA,CAJa,UAAYnC,EAAK,KAAA,EAArC,IAIO,CAHYA,EAAK,iDAAtBqB,qBAEWI,WAAA,CAAA,IAAA,GAAA,CADNW,EAAAA,gBAAAC,EAAAA,gBAAA9B,EAAA,MAAO,KAAK,EAAA,CAAA"}