fixUtil.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.getCellFixedInfo = getCellFixedInfo;
  6. function getCellFixedInfo(colStart, colEnd, columns, stickyOffsets, direction) {
  7. var startColumn = columns[colStart] || {};
  8. var endColumn = columns[colEnd] || {};
  9. var fixLeft;
  10. var fixRight;
  11. if (startColumn.fixed === 'left') {
  12. fixLeft = stickyOffsets.left[direction === 'rtl' ? colEnd : colStart];
  13. } else if (endColumn.fixed === 'right') {
  14. fixRight = stickyOffsets.right[direction === 'rtl' ? colStart : colEnd];
  15. }
  16. var lastFixLeft = false;
  17. var firstFixRight = false;
  18. var lastFixRight = false;
  19. var firstFixLeft = false;
  20. var nextColumn = columns[colEnd + 1];
  21. var prevColumn = columns[colStart - 1];
  22. // need show shadow only when canLastFix is true
  23. var canLastFix = nextColumn && !nextColumn.fixed || prevColumn && !prevColumn.fixed || columns.every(function (col) {
  24. return col.fixed === 'left';
  25. });
  26. if (direction === 'rtl') {
  27. if (fixLeft !== undefined) {
  28. var prevFixLeft = prevColumn && prevColumn.fixed === 'left';
  29. firstFixLeft = !prevFixLeft && canLastFix;
  30. } else if (fixRight !== undefined) {
  31. var nextFixRight = nextColumn && nextColumn.fixed === 'right';
  32. lastFixRight = !nextFixRight && canLastFix;
  33. }
  34. } else if (fixLeft !== undefined) {
  35. var nextFixLeft = nextColumn && nextColumn.fixed === 'left';
  36. lastFixLeft = !nextFixLeft && canLastFix;
  37. } else if (fixRight !== undefined) {
  38. var prevFixRight = prevColumn && prevColumn.fixed === 'right';
  39. firstFixRight = !prevFixRight && canLastFix;
  40. }
  41. return {
  42. fixLeft: fixLeft,
  43. fixRight: fixRight,
  44. lastFixLeft: lastFixLeft,
  45. firstFixRight: firstFixRight,
  46. lastFixRight: lastFixRight,
  47. firstFixLeft: firstFixLeft,
  48. isSticky: stickyOffsets.isSticky
  49. };
  50. }