useSticky.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useSticky;
  7. var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
  8. var _canUseDom = _interopRequireDefault(require("../../_util/canUseDom"));
  9. var _vue = require("vue");
  10. // fix ssr render
  11. var defaultContainer = (0, _canUseDom.default)() ? window : null;
  12. /** Sticky header hooks */
  13. function useSticky(stickyRef, prefixClsRef) {
  14. return (0, _vue.computed)(function () {
  15. var _ref = (0, _typeof2.default)(stickyRef.value) === 'object' ? stickyRef.value : {},
  16. _ref$offsetHeader = _ref.offsetHeader,
  17. offsetHeader = _ref$offsetHeader === void 0 ? 0 : _ref$offsetHeader,
  18. _ref$offsetSummary = _ref.offsetSummary,
  19. offsetSummary = _ref$offsetSummary === void 0 ? 0 : _ref$offsetSummary,
  20. _ref$offsetScroll = _ref.offsetScroll,
  21. offsetScroll = _ref$offsetScroll === void 0 ? 0 : _ref$offsetScroll,
  22. _ref$getContainer = _ref.getContainer,
  23. getContainer = _ref$getContainer === void 0 ? function () {
  24. return defaultContainer;
  25. } : _ref$getContainer;
  26. var container = getContainer() || defaultContainer;
  27. var isSticky = !!stickyRef.value;
  28. return {
  29. isSticky: isSticky,
  30. stickyClassName: isSticky ? "".concat(prefixClsRef.value, "-sticky-holder") : '',
  31. offsetHeader: offsetHeader,
  32. offsetSummary: offsetSummary,
  33. offsetScroll: offsetScroll,
  34. container: container
  35. };
  36. });
  37. }