{"version":3,"file":"useScroll.mjs","sources":["../../../../../../src/components/va-infinite-scroll/hooks/useScroll.ts"],"sourcesContent":["import { Ref, onMounted, onBeforeUnmount } from 'vue'\n\ninterface ScrollTargetProps {\n  scrollTarget: HTMLElement | string | undefined;\n  disabled: boolean;\n  reverse: boolean;\n}\n\nexport const useScroll = (\n  props: ScrollTargetProps,\n  element: Ref<HTMLElement | undefined>,\n  handler: Ref<any>,\n) => {\n  const addScrollListener = () => {\n    element.value?.addEventListener(\n      'scroll',\n      handler.value,\n      { passive: true },\n    )\n  }\n\n  const removeScrollListener = () => {\n    element.value?.removeEventListener(\n      'scroll',\n      handler.value,\n    )\n  }\n\n  onMounted(() => {\n    if (!element.value) { return }\n\n    element.value.style.overflowY = 'scroll'\n\n    if (props.reverse) {\n      element.value.scrollTop = element.value.scrollHeight\n    }\n\n    addScrollListener()\n  })\n\n  onBeforeUnmount(removeScrollListener)\n\n  return {\n    addScrollListener,\n    removeScrollListener,\n  }\n}\n"],"names":[],"mappings":";AAQO,MAAM,YAAY,CACvB,OACA,SACA,YACG;AACH,QAAM,oBAAoB,MAAM;;AAC9B,kBAAQ,UAAR,mBAAe;AAAA,MACb;AAAA,MACA,QAAQ;AAAA,MACR,EAAE,SAAS,KAAK;AAAA;AAAA,EAClB;AAGF,QAAM,uBAAuB,MAAM;;AACjC,kBAAQ,UAAR,mBAAe;AAAA,MACb;AAAA,MACA,QAAQ;AAAA;AAAA,EACV;AAGF,YAAU,MAAM;AACV,QAAA,CAAC,QAAQ,OAAO;AAAE;AAAA,IAAO;AAErB,YAAA,MAAM,MAAM,YAAY;AAEhC,QAAI,MAAM,SAAS;AACT,cAAA,MAAM,YAAY,QAAQ,MAAM;AAAA,IAC1C;AAEkB;EAAA,CACnB;AAED,kBAAgB,oBAAoB;AAE7B,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;"}