useStickyOffsets.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _vue = require("vue");
  7. /**
  8. * Get sticky column offset width
  9. */
  10. function useStickyOffsets(colWidthsRef, columnCountRef, directionRef) {
  11. var stickyOffsets = (0, _vue.computed)(function () {
  12. var leftOffsets = [];
  13. var rightOffsets = [];
  14. var left = 0;
  15. var right = 0;
  16. var colWidths = colWidthsRef.value;
  17. var columnCount = columnCountRef.value;
  18. var direction = directionRef.value;
  19. for (var start = 0; start < columnCount; start += 1) {
  20. if (direction === 'rtl') {
  21. // Left offset
  22. rightOffsets[start] = right;
  23. right += colWidths[start] || 0;
  24. // Right offset
  25. var end = columnCount - start - 1;
  26. leftOffsets[end] = left;
  27. left += colWidths[end] || 0;
  28. } else {
  29. // Left offset
  30. leftOffsets[start] = left;
  31. left += colWidths[start] || 0;
  32. // Right offset
  33. var _end = columnCount - start - 1;
  34. rightOffsets[_end] = right;
  35. right += colWidths[_end] || 0;
  36. }
  37. }
  38. return {
  39. left: leftOffsets,
  40. right: rightOffsets
  41. };
  42. });
  43. return stickyOffsets;
  44. }
  45. var _default = useStickyOffsets;
  46. exports.default = _default;