{"ast":null,"code":"import { useRef, useContext, useEffect } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.js';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.js';\nimport { usePointerEvent } from '../events/use-pointer-event.js';\nimport { PanSession } from './PanSession.js';\n\n/**\n *\n * @param handlers -\n * @param ref -\n *\n * @internalremarks\n * Currently this sets new pan gesture functions every render. The memo route has been explored\n * in the past but ultimately we're still creating new functions every render. An optimisation\n * to explore is creating the pan gestures and loading them into a `ref`.\n *\n * @internal\n */\nfunction usePanGesture(_a) {\n  var onPan = _a.onPan,\n    onPanStart = _a.onPanStart,\n    onPanEnd = _a.onPanEnd,\n    onPanSessionStart = _a.onPanSessionStart,\n    visualElement = _a.visualElement;\n  var hasPanEvents = onPan || onPanStart || onPanEnd || onPanSessionStart;\n  var panSession = useRef(null);\n  var transformPagePoint = useContext(MotionConfigContext).transformPagePoint;\n  var handlers = {\n    onSessionStart: onPanSessionStart,\n    onStart: onPanStart,\n    onMove: onPan,\n    onEnd: function onEnd(event, info) {\n      panSession.current = null;\n      onPanEnd && onPanEnd(event, info);\n    }\n  };\n  useEffect(function () {\n    if (panSession.current !== null) {\n      panSession.current.updateHandlers(handlers);\n    }\n  });\n  function onPointerDown(event) {\n    panSession.current = new PanSession(event, handlers, {\n      transformPagePoint: transformPagePoint\n    });\n  }\n  usePointerEvent(visualElement, \"pointerdown\", hasPanEvents && onPointerDown);\n  useUnmountEffect(function () {\n    return panSession.current && panSession.current.end();\n  });\n}\nexport { usePanGesture };","map":{"version":3,"names":["useRef","useContext","useEffect","MotionConfigContext","useUnmountEffect","usePointerEvent","PanSession","usePanGesture","_a","onPan","onPanStart","onPanEnd","onPanSessionStart","visualElement","hasPanEvents","panSession","transformPagePoint","handlers","onSessionStart","onStart","onMove","onEnd","event","info","current","updateHandlers","onPointerDown","end"],"sources":["D:/DSP_Management/node_modules/framer-motion/dist/es/gestures/use-pan-gesture.js"],"sourcesContent":["import { useRef, useContext, useEffect } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.js';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.js';\nimport { usePointerEvent } from '../events/use-pointer-event.js';\nimport { PanSession } from './PanSession.js';\n\n/**\n *\n * @param handlers -\n * @param ref -\n *\n * @internalremarks\n * Currently this sets new pan gesture functions every render. The memo route has been explored\n * in the past but ultimately we're still creating new functions every render. An optimisation\n * to explore is creating the pan gestures and loading them into a `ref`.\n *\n * @internal\n */\nfunction usePanGesture(_a) {\n    var onPan = _a.onPan, onPanStart = _a.onPanStart, onPanEnd = _a.onPanEnd, onPanSessionStart = _a.onPanSessionStart, visualElement = _a.visualElement;\n    var hasPanEvents = onPan || onPanStart || onPanEnd || onPanSessionStart;\n    var panSession = useRef(null);\n    var transformPagePoint = useContext(MotionConfigContext).transformPagePoint;\n    var handlers = {\n        onSessionStart: onPanSessionStart,\n        onStart: onPanStart,\n        onMove: onPan,\n        onEnd: function (event, info) {\n            panSession.current = null;\n            onPanEnd && onPanEnd(event, info);\n        },\n    };\n    useEffect(function () {\n        if (panSession.current !== null) {\n            panSession.current.updateHandlers(handlers);\n        }\n    });\n    function onPointerDown(event) {\n        panSession.current = new PanSession(event, handlers, {\n            transformPagePoint: transformPagePoint,\n        });\n    }\n    usePointerEvent(visualElement, \"pointerdown\", hasPanEvents && onPointerDown);\n    useUnmountEffect(function () { return panSession.current && panSession.current.end(); });\n}\n\nexport { usePanGesture };\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,UAAU,EAAEC,SAAS,QAAQ,OAAO;AACrD,SAASC,mBAAmB,QAAQ,mCAAmC;AACvE,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,UAAU,QAAQ,iBAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CAACC,EAAE,EAAE;EACvB,IAAIC,KAAK,GAAGD,EAAE,CAACC,KAAK;IAAEC,UAAU,GAAGF,EAAE,CAACE,UAAU;IAAEC,QAAQ,GAAGH,EAAE,CAACG,QAAQ;IAAEC,iBAAiB,GAAGJ,EAAE,CAACI,iBAAiB;IAAEC,aAAa,GAAGL,EAAE,CAACK,aAAa;EACpJ,IAAIC,YAAY,GAAGL,KAAK,IAAIC,UAAU,IAAIC,QAAQ,IAAIC,iBAAiB;EACvE,IAAIG,UAAU,GAAGf,MAAM,CAAC,IAAI,CAAC;EAC7B,IAAIgB,kBAAkB,GAAGf,UAAU,CAACE,mBAAmB,CAAC,CAACa,kBAAkB;EAC3E,IAAIC,QAAQ,GAAG;IACXC,cAAc,EAAEN,iBAAiB;IACjCO,OAAO,EAAET,UAAU;IACnBU,MAAM,EAAEX,KAAK;IACbY,KAAK,EAAE,SAAPA,KAAKA,CAAYC,KAAK,EAAEC,IAAI,EAAE;MAC1BR,UAAU,CAACS,OAAO,GAAG,IAAI;MACzBb,QAAQ,IAAIA,QAAQ,CAACW,KAAK,EAAEC,IAAI,CAAC;IACrC;EACJ,CAAC;EACDrB,SAAS,CAAC,YAAY;IAClB,IAAIa,UAAU,CAACS,OAAO,KAAK,IAAI,EAAE;MAC7BT,UAAU,CAACS,OAAO,CAACC,cAAc,CAACR,QAAQ,CAAC;IAC/C;EACJ,CAAC,CAAC;EACF,SAASS,aAAaA,CAACJ,KAAK,EAAE;IAC1BP,UAAU,CAACS,OAAO,GAAG,IAAIlB,UAAU,CAACgB,KAAK,EAAEL,QAAQ,EAAE;MACjDD,kBAAkB,EAAEA;IACxB,CAAC,CAAC;EACN;EACAX,eAAe,CAACQ,aAAa,EAAE,aAAa,EAAEC,YAAY,IAAIY,aAAa,CAAC;EAC5EtB,gBAAgB,CAAC,YAAY;IAAE,OAAOW,UAAU,CAACS,OAAO,IAAIT,UAAU,CAACS,OAAO,CAACG,GAAG,CAAC,CAAC;EAAE,CAAC,CAAC;AAC5F;AAEA,SAASpB,aAAa","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}