index.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { createVNode as _createVNode } from "vue";
  2. import Summary from './Summary';
  3. import SummaryRow from './Row';
  4. import SummaryCell from './Cell';
  5. import { computed, defineComponent, reactive, toRef } from 'vue';
  6. import { useProvideSummary } from '../context/SummaryContext';
  7. import { useInjectTable } from '../context/TableContext';
  8. export default defineComponent({
  9. name: 'Footer',
  10. inheritAttrs: false,
  11. props: ['stickyOffsets', 'flattenColumns'],
  12. setup: function setup(props, _ref) {
  13. var slots = _ref.slots;
  14. var tableContext = useInjectTable();
  15. useProvideSummary(reactive({
  16. stickyOffsets: toRef(props, 'stickyOffsets'),
  17. flattenColumns: toRef(props, 'flattenColumns'),
  18. scrollColumnIndex: computed(function () {
  19. var lastColumnIndex = props.flattenColumns.length - 1;
  20. var scrollColumn = props.flattenColumns[lastColumnIndex];
  21. return scrollColumn !== null && scrollColumn !== void 0 && scrollColumn.scrollbar ? lastColumnIndex : null;
  22. })
  23. }));
  24. return function () {
  25. var _slots$default;
  26. var prefixCls = tableContext.prefixCls;
  27. return _createVNode("tfoot", {
  28. "class": "".concat(prefixCls, "-summary")
  29. }, [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)]);
  30. };
  31. }
  32. });
  33. export { SummaryRow, SummaryCell };
  34. export var FooterComponents = Summary;