{"ast":null,"code":"import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nfunction smoothScrollOffset(offset) {\n  return Math.floor(Math.pow(offset, 0.5));\n}\nexport function getPageXY(e, horizontal) {\n  var obj = 'touches' in e ? e.touches[0] : e;\n  return obj[horizontal ? 'pageX' : 'pageY'] - window[horizontal ? 'scrollX' : 'scrollY'];\n}\nexport default function useScrollDrag(inVirtual, componentRef, onScrollOffset) {\n  React.useEffect(function () {\n    var ele = componentRef.current;\n    if (inVirtual && ele) {\n      var mouseDownLock = false;\n      var rafId;\n      var _offset;\n      var stopScroll = function stopScroll() {\n        raf.cancel(rafId);\n      };\n      var continueScroll = function continueScroll() {\n        stopScroll();\n        rafId = raf(function () {\n          onScrollOffset(_offset);\n          continueScroll();\n        });\n      };\n      var clearDragState = function clearDragState() {\n        mouseDownLock = false;\n        stopScroll();\n      };\n      var onMouseDown = function onMouseDown(e) {\n        // Skip if element set draggable\n        if (e.target.draggable || e.button !== 0) {\n          return;\n        }\n        // Skip if nest List has handled this event\n        var event = e;\n        if (!event._virtualHandled) {\n          event._virtualHandled = true;\n          mouseDownLock = true;\n        }\n      };\n      var onMouseMove = function onMouseMove(e) {\n        if (mouseDownLock) {\n          var mouseY = getPageXY(e, false);\n          var _ele$getBoundingClien = ele.getBoundingClientRect(),\n            top = _ele$getBoundingClien.top,\n            bottom = _ele$getBoundingClien.bottom;\n          if (mouseY <= top) {\n            var diff = top - mouseY;\n            _offset = -smoothScrollOffset(diff);\n            continueScroll();\n          } else if (mouseY >= bottom) {\n            var _diff = mouseY - bottom;\n            _offset = smoothScrollOffset(_diff);\n            continueScroll();\n          } else {\n            stopScroll();\n          }\n        }\n      };\n      ele.addEventListener('mousedown', onMouseDown);\n      ele.ownerDocument.addEventListener('mouseup', clearDragState);\n      ele.ownerDocument.addEventListener('mousemove', onMouseMove);\n      ele.ownerDocument.addEventListener('dragend', clearDragState);\n      return function () {\n        ele.removeEventListener('mousedown', onMouseDown);\n        ele.ownerDocument.removeEventListener('mouseup', clearDragState);\n        ele.ownerDocument.removeEventListener('mousemove', onMouseMove);\n        ele.ownerDocument.removeEventListener('dragend', clearDragState);\n        stopScroll();\n      };\n    }\n  }, [inVirtual]);\n}","map":{"version":3,"names":["raf","React","smoothScrollOffset","offset","Math","floor","pow","getPageXY","e","horizontal","obj","touches","window","useScrollDrag","inVirtual","componentRef","onScrollOffset","useEffect","ele","current","mouseDownLock","rafId","_offset","stopScroll","cancel","continueScroll","clearDragState","onMouseDown","target","draggable","button","event","_virtualHandled","onMouseMove","mouseY","_ele$getBoundingClien","getBoundingClientRect","top","bottom","diff","_diff","addEventListener","ownerDocument","removeEventListener"],"sources":["/Users/nili/Documents/trae_projects/client/node_modules/rc-virtual-list/es/hooks/useScrollDrag.js"],"sourcesContent":["import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nfunction smoothScrollOffset(offset) {\n  return Math.floor(Math.pow(offset, 0.5));\n}\nexport function getPageXY(e, horizontal) {\n  var obj = 'touches' in e ? e.touches[0] : e;\n  return obj[horizontal ? 'pageX' : 'pageY'] - window[horizontal ? 'scrollX' : 'scrollY'];\n}\nexport default function useScrollDrag(inVirtual, componentRef, onScrollOffset) {\n  React.useEffect(function () {\n    var ele = componentRef.current;\n    if (inVirtual && ele) {\n      var mouseDownLock = false;\n      var rafId;\n      var _offset;\n      var stopScroll = function stopScroll() {\n        raf.cancel(rafId);\n      };\n      var continueScroll = function continueScroll() {\n        stopScroll();\n        rafId = raf(function () {\n          onScrollOffset(_offset);\n          continueScroll();\n        });\n      };\n      var clearDragState = function clearDragState() {\n        mouseDownLock = false;\n        stopScroll();\n      };\n      var onMouseDown = function onMouseDown(e) {\n        // Skip if element set draggable\n        if (e.target.draggable || e.button !== 0) {\n          return;\n        }\n        // Skip if nest List has handled this event\n        var event = e;\n        if (!event._virtualHandled) {\n          event._virtualHandled = true;\n          mouseDownLock = true;\n        }\n      };\n      var onMouseMove = function onMouseMove(e) {\n        if (mouseDownLock) {\n          var mouseY = getPageXY(e, false);\n          var _ele$getBoundingClien = ele.getBoundingClientRect(),\n            top = _ele$getBoundingClien.top,\n            bottom = _ele$getBoundingClien.bottom;\n          if (mouseY <= top) {\n            var diff = top - mouseY;\n            _offset = -smoothScrollOffset(diff);\n            continueScroll();\n          } else if (mouseY >= bottom) {\n            var _diff = mouseY - bottom;\n            _offset = smoothScrollOffset(_diff);\n            continueScroll();\n          } else {\n            stopScroll();\n          }\n        }\n      };\n      ele.addEventListener('mousedown', onMouseDown);\n      ele.ownerDocument.addEventListener('mouseup', clearDragState);\n      ele.ownerDocument.addEventListener('mousemove', onMouseMove);\n      ele.ownerDocument.addEventListener('dragend', clearDragState);\n      return function () {\n        ele.removeEventListener('mousedown', onMouseDown);\n        ele.ownerDocument.removeEventListener('mouseup', clearDragState);\n        ele.ownerDocument.removeEventListener('mousemove', onMouseMove);\n        ele.ownerDocument.removeEventListener('dragend', clearDragState);\n        stopScroll();\n      };\n    }\n  }, [inVirtual]);\n}"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}