{"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}