fixUtil.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. export function getCellFixedInfo(colStart, colEnd, columns, stickyOffsets, direction) {
  2. var startColumn = columns[colStart] || {};
  3. var endColumn = columns[colEnd] || {};
  4. var fixLeft;
  5. var fixRight;
  6. if (startColumn.fixed === 'left') {
  7. fixLeft = stickyOffsets.left[colStart];
  8. } else if (endColumn.fixed === 'right') {
  9. fixRight = stickyOffsets.right[colEnd];
  10. }
  11. var lastFixLeft = false;
  12. var firstFixRight = false;
  13. var lastFixRight = false;
  14. var firstFixLeft = false;
  15. var nextColumn = columns[colEnd + 1];
  16. var prevColumn = columns[colStart - 1];
  17. if (direction === 'rtl') {
  18. if (fixLeft !== undefined) {
  19. var prevFixLeft = prevColumn && prevColumn.fixed === 'left';
  20. firstFixLeft = !prevFixLeft;
  21. } else if (fixRight !== undefined) {
  22. var nextFixRight = nextColumn && nextColumn.fixed === 'right';
  23. lastFixRight = !nextFixRight;
  24. }
  25. } else if (fixLeft !== undefined) {
  26. var nextFixLeft = nextColumn && nextColumn.fixed === 'left';
  27. lastFixLeft = !nextFixLeft;
  28. } else if (fixRight !== undefined) {
  29. var prevFixRight = prevColumn && prevColumn.fixed === 'right';
  30. firstFixRight = !prevFixRight;
  31. }
  32. return {
  33. fixLeft: fixLeft,
  34. fixRight: fixRight,
  35. lastFixLeft: lastFixLeft,
  36. firstFixRight: firstFixRight,
  37. lastFixRight: lastFixRight,
  38. firstFixLeft: firstFixLeft,
  39. isSticky: stickyOffsets.isSticky
  40. };
  41. }