{"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 hasEmpty = computed(() => {\n  if (state.rightFixedColumns.length) return props.fixed === 'right'\n  if (state.leftFixedColumns.length) return props.fixed === 'left'\n  return true\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  const showEmpty = hasEmpty.value && data.value.length === 0\n\n  return {\n    [nh.cv('right-fixed-width')]:\n      props.fixed === 'right' && width ? `${width + padLeft + padRight}px` : '0px',\n    [showEmpty ? 'width' : '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\n      v-else-if=\"hasEmpty\"\n      :class=\"[nh.be('empty'), fixed === 'right' && nh.bem('empty', 'right')]\"\n      :style=\"emptyStyle\"\n    >\n      <slot name=\"empty\">\n        {{ locale.empty }}\n      </slot>\n    </div>\n  </div>\n</template>\n"],"names":["props","__props","state","getters","inject","TABLE_STORE","nh","useNameHelper","locale","toRef","columns","computed","data","hasEmpty","style","width","getLast","padLeft","_a","padRight","showEmpty","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,EAAWF,EAAAA,SAAS,IACpBT,EAAM,kBAAkB,OAAeF,EAAM,QAAU,QACvDE,EAAM,iBAAiB,OAAeF,EAAM,QAAU,OACnD,EACR,EACKc,EAAQH,EAAAA,SAAS,IAAM,SAC3B,MAAMI,EACJf,EAAM,QAAU,OACZgB,UAAQb,EAAQ,eAAe,EAC/BH,EAAM,QAAU,QACdgB,EAAAA,QAAQb,EAAQ,gBAAgB,EAChCa,EAAA,QAAQb,EAAQ,YAAY,EAC9Bc,IAAUC,EAAAR,EAAQ,MAAM,CAAC,IAAf,YAAAQ,EAAkB,SAAU,QAAShB,EAAM,YAAY,CAAC,GAAK,EACvEiB,IAAWH,EAAAA,EAAAA,QAAQN,EAAQ,KAAK,IAArBM,YAAAA,EAAwB,SAAU,SAAUd,EAAM,YAAY,CAAC,GAAK,EAC/EkB,EAAYP,EAAS,OAASD,EAAK,MAAM,SAAW,EAEnD,MAAA,CACL,CAACN,EAAG,GAAG,mBAAmB,CAAC,EACzBN,EAAM,QAAU,SAAWe,EAAQ,GAAGA,EAAQE,EAAUE,CAAQ,KAAO,MACzE,CAACC,EAAY,QAAU,UAAU,EAAGL,GAAS,GAAGA,EAAQE,EAAUE,CAAQ,KAC1E,UAAW,GAAGjB,EAAM,WAAW,IACjC,CAAA,CACD,EACKmB,EAAaV,EAAAA,SAAS,IAAM,CAC1B,KAAA,CAAE,UAAAW,EAAW,aAAAC,CAAA,EAAiBrB,EAE7B,MAAA,CACL,UAAW,GAAGoB,GAAaC,CAAY,IACzC,CAAA,CACD,8BAICC,EAAA,mBA+BM,MAAA,CA/BA,MAAKC,EAAE,eAAAC,EAAA,MAAEpB,CAAA,EAAC,GAAE,MAAA,CAAA,EAAU,KAAK,WAAY,uBAAOQ,EAAK,KAAA,CAAA,GACvCF,EAAA,MAAK,QACnBe,EAAA,UAAA,EAAA,EAAAH,EAAAA,mBAkBWI,EAAA,SAjBc,CAAA,IAAA,CAAA,EAAAC,aAAAjB,EAAA,MAAf,CAAAkB,EAAKC,mBADfC,EAAA,YAkBWC,EAAA,CAhBR,IAAKF,EACL,IAAAD,EACA,MAAOA,EAAI,UACX,MAAO7B,EAAK,MACZ,gBAAe6B,EAAI,KAAA,qBAGlB,IAAqC,EADvCH,EAAAA,UAAA,EAAA,EAAAH,EASa,mBAAAI,WARkB,KAAAC,EAAA,WAAAnB,EAAA,MAArB,CAAAwB,EAAQC,mBADlBH,EAAA,YASaI,EAAA,CAPV,IAAKD,EACL,IAAAL,EACA,YAAWA,EAAI,UACf,OAAAI,EACA,YAAWC,EACX,MAAOlC,EAAK,MACZ,gBAAekC,CAAA,gJAKTtB,EAAQ,mBADrB,EAAAW,EAAA,mBAQM,MAAA,OANH,MAAKC,EAAA,eAAA,CAAGC,WAAG,YAAazB,EAAK,QAAA,SAAgByB,EAAAA,MAAEpB,CAAA,EAAC,IAAG,QAAA,OAAA,CAAA,CAAA,EACnD,uBAAOe,EAAU,KAAA,CAAA,GAElBgB,EAAAA,WAEOC,oBAFP,IAEO,CADFC,EAAAA,gBAAAC,EAAAA,gBAAAhC,EAAA,MAAO,KAAK,EAAA,CAAA"}