{"version":3,"file":"useOriginScroll.cjs","sources":["../../../../../../../packages/vue-components/vc-virtual-list/src/hooks/useOriginScroll.ts"],"sourcesContent":["import type { Ref } from 'vue';\n\nexport default (isScrollAtTop: Ref<boolean>, isScrollAtBottom: Ref<boolean>) => {\n  // Do lock for a wheel when scrolling\n  let lock = false;\n  let lockTimeout: any = null;\n  function lockScroll() {\n    clearTimeout(lockTimeout);\n\n    lock = true;\n\n    lockTimeout = setTimeout(() => {\n      lock = false;\n    }, 50);\n  }\n  return (deltaY: number, smoothOffset = false) => {\n    const originScroll\n      // Pass origin wheel when on the top\n      = (deltaY < 0 && isScrollAtTop.value)\n      // Pass origin wheel when on the bottom\n      || (deltaY > 0 && isScrollAtBottom.value);\n\n    if (smoothOffset && originScroll) {\n      // No need lock anymore when it's smooth offset from touchMove interval\n      clearTimeout(lockTimeout);\n      lock = false;\n    } else if (!originScroll || lock) {\n      lockScroll();\n    }\n\n    return !lock && originScroll;\n  };\n};\n"],"names":[],"mappings":";;;;AAEA,sBAAe,CAAC,eAA6B,gBAAmC,KAAA;AAE9E,EAAA,IAAI,IAAO,GAAA,KAAA,CAAA;AACX,EAAA,IAAI,WAAmB,GAAA,IAAA,CAAA;AACvB,EAAA,SAAS,UAAa,GAAA;AACpB,IAAA,YAAA,CAAa,WAAW,CAAA,CAAA;AAExB,IAAO,IAAA,GAAA,IAAA,CAAA;AAEP,IAAA,WAAA,GAAc,WAAW,MAAM;AAC7B,MAAO,IAAA,GAAA,KAAA,CAAA;AAAA,OACN,EAAE,CAAA,CAAA;AAAA,GACP;AACA,EAAO,OAAA,CAAC,MAAgB,EAAA,YAAA,GAAe,KAAU,KAAA;AAC/C,IAAA,MAAM,eAED,MAAS,GAAA,CAAA,IAAK,cAAc,KAE3B,IAAA,MAAA,GAAS,KAAK,gBAAiB,CAAA,KAAA,CAAA;AAErC,IAAA,IAAI,gBAAgB,YAAc,EAAA;AAEhC,MAAA,YAAA,CAAa,WAAW,CAAA,CAAA;AACxB,MAAO,IAAA,GAAA,KAAA,CAAA;AAAA,KACT,MAAA,IAAW,CAAC,YAAA,IAAgB,IAAM,EAAA;AAChC,MAAW,UAAA,EAAA,CAAA;AAAA,KACb;AAEA,IAAA,OAAO,CAAC,IAAQ,IAAA,YAAA,CAAA;AAAA,GAClB,CAAA;AACF,CAAA;;;;"}