b9722ea5662c2517aaf3b322a2907ccf2bca2189bb288420b00223e71f4d92bba3e178e872f9e40ff5f89bf1494e37641bfb7b14bcc4689272be6e78906ce6 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /**
  2. * @class ColumnFilter
  3. */
  4. class ColumnFilter {
  5. /**
  6. * @param {Number} offset
  7. * @param {Number} total
  8. * @param {Number} countTH
  9. */
  10. constructor(offset, total, countTH) {
  11. this.offset = offset;
  12. this.total = total;
  13. this.countTH = countTH;
  14. }
  15. /**
  16. * @param index
  17. * @returns {Number}
  18. */
  19. offsetted(index) {
  20. return index + this.offset;
  21. }
  22. /**
  23. * @param index
  24. * @returns {Number}
  25. */
  26. unOffsetted(index) {
  27. return index - this.offset;
  28. }
  29. /**
  30. * @param index
  31. * @returns {Number}
  32. */
  33. renderedToSource(index) {
  34. return this.offsetted(index);
  35. }
  36. /**
  37. * @param index
  38. * @returns {Number}
  39. */
  40. sourceToRendered(index) {
  41. return this.unOffsetted(index);
  42. }
  43. /**
  44. * @param index
  45. * @returns {Number}
  46. */
  47. offsettedTH(index) {
  48. return index - this.countTH;
  49. }
  50. /**
  51. * @param index
  52. * @returns {Number}
  53. */
  54. unOffsettedTH(index) {
  55. return index + this.countTH;
  56. }
  57. /**
  58. * @param index
  59. * @returns {Number}
  60. */
  61. visibleRowHeadedColumnToSourceColumn(index) {
  62. return this.renderedToSource(this.offsettedTH(index));
  63. }
  64. /**
  65. * @param index
  66. * @returns {Number}
  67. */
  68. sourceColumnToVisibleRowHeadedColumn(index) {
  69. return this.unOffsettedTH(this.sourceToRendered(index));
  70. }
  71. }
  72. export default ColumnFilter;