408bc2711ce17ed66a0b56f02b0af3f96acd41213afff49432af4b666e65ea72b13f5f000a1da3a0b8ff04c63e4b534cdfce643700b4b25e830d372d5c18f4 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. const useScrollbar = (props, {
  5. mainTableRef,
  6. leftTableRef,
  7. rightTableRef,
  8. onMaybeEndReached
  9. }) => {
  10. const scrollPos = vue.ref({ scrollLeft: 0, scrollTop: 0 });
  11. function doScroll(params) {
  12. var _a, _b, _c;
  13. const { scrollTop } = params;
  14. (_a = mainTableRef.value) == null ? void 0 : _a.scrollTo(params);
  15. (_b = leftTableRef.value) == null ? void 0 : _b.scrollToTop(scrollTop);
  16. (_c = rightTableRef.value) == null ? void 0 : _c.scrollToTop(scrollTop);
  17. }
  18. function scrollTo(params) {
  19. scrollPos.value = params;
  20. doScroll(params);
  21. }
  22. function scrollToTop(scrollTop) {
  23. scrollPos.value.scrollTop = scrollTop;
  24. doScroll(vue.unref(scrollPos));
  25. }
  26. function scrollToLeft(scrollLeft) {
  27. var _a, _b;
  28. scrollPos.value.scrollLeft = scrollLeft;
  29. (_b = (_a = mainTableRef.value) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, vue.unref(scrollPos));
  30. }
  31. function onScroll(params) {
  32. var _a;
  33. scrollTo(params);
  34. (_a = props.onScroll) == null ? void 0 : _a.call(props, params);
  35. }
  36. function onVerticalScroll({ scrollTop }) {
  37. const { scrollTop: currentScrollTop } = vue.unref(scrollPos);
  38. if (scrollTop !== currentScrollTop)
  39. scrollToTop(scrollTop);
  40. }
  41. function scrollToRow(row, strategy = "auto") {
  42. var _a;
  43. (_a = mainTableRef.value) == null ? void 0 : _a.scrollToRow(row, strategy);
  44. }
  45. vue.watch(() => vue.unref(scrollPos).scrollTop, (cur, prev) => {
  46. if (cur > prev)
  47. onMaybeEndReached();
  48. });
  49. return {
  50. scrollPos,
  51. scrollTo,
  52. scrollToLeft,
  53. scrollToTop,
  54. scrollToRow,
  55. onScroll,
  56. onVerticalScroll
  57. };
  58. };
  59. exports.useScrollbar = useScrollbar;
  60. //# sourceMappingURL=use-scrollbar.js.map