{"version":3,"file":"table.vue2.mjs","sources":["../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<template>\n  <el-scrollbar\n    :class=\"ns.e('wrap')\"\n    :z-index=\"2\"\n    @view-resize=\"containerWidth = $event.width\"\n    @scroll=\"handleScroll\"\n  >\n    <table\n      :class=\"[\n        ns.b(),\n        ns.m(tableSize),\n        leftShadow ? ns.m('shadow-left') : undefined,\n        rightShadow ? ns.m('shadow-right') : undefined\n      ]\"\n      ref=\"tableDom\"\n    >\n      <TableHeader />\n\n      <TableBody>\n        <template #empty>\n          <slot name=\"empty\" />\n        </template>\n      </TableBody>\n\n      <TableFooter>\n        <template #append v-if=\"$slots.append\">\n          <slot name=\"append\" />\n        </template>\n      </TableFooter>\n    </table>\n  </el-scrollbar>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useNamespace, useSize } from '@element-ultra/hooks'\nimport TableHeader from './table-header.vue'\nimport TableBody from './table-body.vue'\nimport TableFooter from './table-footer.vue'\nimport {\n  tableProps,\n  FinalTableColumn,\n  tableEmits,\n  SummaryMethod\n} from './table'\nimport { computed, CSSProperties, provide, shallowRef } from 'vue'\nimport { tableToken } from './token'\nimport { ElScrollbar } from '@element-ultra/components/scrollbar'\nimport useColumns from './use-columns'\nimport useShadow from './use-shadow'\n\nconst ns = useNamespace('table')\n\nconst props = defineProps(tableProps)\n\nconst emit = defineEmits(tableEmits)\n\nconst { columns, columnLayouts } = useColumns({\n  props\n})\n\nconst containerWidth = shallowRef(0)\n\nconst tableSize = useSize({\n  props\n})\n\nconst { handleScroll, leftShadow, rightShadow } = useShadow()\n\nconst summaryMethods = computed(() => {\n  const summaries = columns.value.filter(column => !!column.summary)\n  if (!summaries.length) return undefined\n\n  const commonSummary = (ctx: any) => ctx.total\n\n  return summaries.reduce((acc, cur) => {\n    acc[cur.key] =\n      typeof cur.summary === 'function' ? cur.summary! : commonSummary\n    return acc\n  }, {} as Record<string, SummaryMethod>)\n})\n\nconst cellGetters = {\n  left: (column: FinalTableColumn) => ({\n    left: column.left + 'px'\n  }),\n  right: (column: FinalTableColumn) => ({\n    right: column.right + 'px'\n  }),\n  center: () => ({})\n}\n\nconst getCellStyle = (\n  column: FinalTableColumn,\n  type: 'left' | 'center' | 'right' = 'center'\n): CSSProperties => {\n  return {\n    textAlign: column.align || 'left',\n    ...cellGetters[type](column)\n  }\n}\n\nprovide(tableToken, {\n  containerWidth,\n  rootProps: props,\n  rootEmit: emit,\n  ns,\n  columns,\n  columnLayouts,\n  getCellStyle,\n  summaryMethods\n})\n\nconst tableDom = shallowRef<HTMLTableElement>()\n\ndefineExpose({\n  tableDom\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAkDA,IAAM,MAAA,EAAA,GAAK,aAAa,OAAO,CAAA,CAAA;AAM/B,IAAA,MAAM,EAAE,OAAA,EAAS,aAAc,EAAA,GAAI,UAAW,CAAA;AAAA,MAC5C,KAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,cAAA,GAAiB,WAAW,CAAC,CAAA,CAAA;AAEnC,IAAA,MAAM,YAAY,OAAQ,CAAA;AAAA,MACxB,KAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,EAAE,YAAA,EAAc,UAAY,EAAA,WAAA,KAAgB,SAAU,EAAA,CAAA;AAE5D,IAAM,MAAA,cAAA,GAAiB,SAAS,MAAM;AACpC,MAAM,MAAA,SAAA,GAAY,QAAQ,KAAM,CAAA,MAAA,CAAO,YAAU,CAAC,CAAC,OAAO,OAAO,CAAA,CAAA;AACjE,MAAA,IAAI,CAAC,SAAU,CAAA,MAAA;AAAQ,QAAO,OAAA,KAAA,CAAA,CAAA;AAE9B,MAAM,MAAA,aAAA,GAAgB,CAAC,GAAA,KAAa,GAAI,CAAA,KAAA,CAAA;AAExC,MAAA,OAAO,SAAU,CAAA,MAAA,CAAO,CAAC,GAAA,EAAK,GAAQ,KAAA;AACpC,QAAI,GAAA,CAAA,GAAA,CAAI,GAAG,CACT,GAAA,OAAO,IAAI,OAAY,KAAA,UAAA,GAAa,IAAI,OAAW,GAAA,aAAA,CAAA;AACrD,QAAO,OAAA,GAAA,CAAA;AAAA,OACT,EAAG,EAAmC,CAAA,CAAA;AAAA,KACvC,CAAA,CAAA;AAED,IAAA,MAAM,WAAc,GAAA;AAAA,MAClB,IAAA,EAAM,CAAC,MAA8B,MAAA;AAAA,QACnC,IAAA,EAAM,OAAO,IAAO,GAAA,IAAA;AAAA,OACtB,CAAA;AAAA,MACA,KAAA,EAAO,CAAC,MAA8B,MAAA;AAAA,QACpC,KAAA,EAAO,OAAO,KAAQ,GAAA,IAAA;AAAA,OACxB,CAAA;AAAA,MACA,MAAA,EAAQ,OAAO,EAAC,CAAA;AAAA,KAClB,CAAA;AAEA,IAAA,MAAM,YAAe,GAAA,CACnB,MACA,EAAA,IAAA,GAAoC,QAClB,KAAA;AAClB,MAAO,OAAA;AAAA,QACL,SAAA,EAAW,OAAO,KAAS,IAAA,MAAA;AAAA,QAC3B,GAAG,WAAA,CAAY,IAAI,CAAA,CAAE,MAAM,CAAA;AAAA,OAC7B,CAAA;AAAA,KACF,CAAA;AAEA,IAAA,OAAA,CAAQ,UAAY,EAAA;AAAA,MAClB,cAAA;AAAA,MACA,SAAW,EAAA,KAAA;AAAA,MACX,QAAU,EAAA,IAAA;AAAA,MACV,EAAA;AAAA,MACA,OAAA;AAAA,MACA,aAAA;AAAA,MACA,YAAA;AAAA,MACA,cAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,WAAW,UAA6B,EAAA,CAAA;AAE9C,IAAa,MAAA,CAAA;AAAA,MACX,QAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}