ExpandedRow.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _vue = require("vue");
  8. var _Cell = _interopRequireDefault(require("../Cell"));
  9. var _TableContext = require("../context/TableContext");
  10. var _ExpandedRowContext = require("../context/ExpandedRowContext");
  11. var _default = exports.default = (0, _vue.defineComponent)({
  12. name: 'ExpandedRow',
  13. inheritAttrs: false,
  14. props: ['prefixCls', 'component', 'cellComponent', 'expanded', 'colSpan', 'isEmpty'],
  15. setup(props, _ref) {
  16. let {
  17. slots,
  18. attrs
  19. } = _ref;
  20. const tableContext = (0, _TableContext.useInjectTable)();
  21. const expandedRowContext = (0, _ExpandedRowContext.useInjectExpandedRow)();
  22. const {
  23. fixHeader,
  24. fixColumn,
  25. componentWidth,
  26. horizonScroll
  27. } = expandedRowContext;
  28. return () => {
  29. const {
  30. prefixCls,
  31. component: Component,
  32. cellComponent,
  33. expanded,
  34. colSpan,
  35. isEmpty
  36. } = props;
  37. return (0, _vue.createVNode)(Component, {
  38. "class": attrs.class,
  39. "style": {
  40. display: expanded ? null : 'none'
  41. }
  42. }, {
  43. default: () => [(0, _vue.createVNode)(_Cell.default, {
  44. "component": cellComponent,
  45. "prefixCls": prefixCls,
  46. "colSpan": colSpan
  47. }, {
  48. default: () => {
  49. var _a;
  50. let contentNode = (_a = slots.default) === null || _a === void 0 ? void 0 : _a.call(slots);
  51. if (isEmpty ? horizonScroll.value : fixColumn.value) {
  52. const _contentNode = function () {
  53. return contentNode;
  54. }();
  55. contentNode = (0, _vue.createVNode)("div", {
  56. "style": {
  57. width: `${componentWidth.value - (fixHeader.value ? tableContext.scrollbarSize : 0)}px`,
  58. position: 'sticky',
  59. left: 0,
  60. overflow: 'hidden'
  61. },
  62. "class": `${prefixCls}-expanded-row-fixed`
  63. }, [contentNode]);
  64. }
  65. return contentNode;
  66. }
  67. })]
  68. });
  69. };
  70. }
  71. });