{"version":3,"file":"index.cjs","sources":["../../../../../../.yarn/__virtual__/@uiw-react-drag-event-interactive-virtual-1abbdfb42c/4/.yarn/berry/cache/@uiw-react-drag-event-interactive-npm-2.9.2-c933e8d8ee-10c0.zip/node_modules/@uiw/react-drag-event-interactive/esm/index.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"prefixCls\", \"className\", \"onMove\", \"onDown\"];\nimport React, { useRef, useState, useCallback, useEffect } from 'react';\nimport { isTouch, preventDefaultMove, getRelativePosition, useEventCallback } from \"./utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport * from \"./utils.js\";\nvar Interactive = /*#__PURE__*/React.forwardRef((props, ref) => {\n  var {\n      prefixCls = 'w-color-interactive',\n      className,\n      onMove,\n      onDown\n    } = props,\n    reset = _objectWithoutPropertiesLoose(props, _excluded);\n  var container = useRef(null);\n  var hasTouched = useRef(false);\n  var [isDragging, setDragging] = useState(false);\n  var onMoveCallback = useEventCallback(onMove);\n  var onKeyCallback = useEventCallback(onDown);\n\n  // Prevent mobile browsers from handling mouse events (conflicting with touch ones).\n  // If we detected a touch interaction before, we prefer reacting to touch events only.\n  var isValid = event => {\n    if (hasTouched.current && !isTouch(event)) return false;\n    hasTouched.current = isTouch(event);\n    return true;\n  };\n  var handleMove = useCallback(event => {\n    preventDefaultMove(event);\n    if (!container.current) return;\n    var isDown = isTouch(event) ? event.touches.length > 0 : event.buttons > 0;\n    if (!isDown) {\n      setDragging(false);\n      return;\n    }\n    onMoveCallback == null || onMoveCallback(getRelativePosition(container.current, event), event);\n  }, [onMoveCallback]);\n  var handleMoveEnd = useCallback(() => setDragging(false), []);\n  var toggleDocumentEvents = useCallback(state => {\n    if (state) {\n      window.addEventListener(hasTouched.current ? 'touchmove' : 'mousemove', handleMove);\n      window.addEventListener(hasTouched.current ? 'touchend' : 'mouseup', handleMoveEnd);\n    } else {\n      window.removeEventListener('mousemove', handleMove);\n      window.removeEventListener('mouseup', handleMoveEnd);\n      window.removeEventListener('touchmove', handleMove);\n      window.removeEventListener('touchend', handleMoveEnd);\n    }\n  }, [handleMove, handleMoveEnd]);\n  useEffect(() => {\n    toggleDocumentEvents(isDragging);\n    return () => {\n      toggleDocumentEvents(false);\n    };\n  }, [isDragging, handleMove, handleMoveEnd, toggleDocumentEvents]);\n  var handleMoveStart = useCallback(event => {\n    var activeEl = document.activeElement;\n    activeEl == null || activeEl.blur();\n    preventDefaultMove(event.nativeEvent);\n    if (!isValid(event.nativeEvent)) return;\n    if (!container.current) return;\n    onKeyCallback == null || onKeyCallback(getRelativePosition(container.current, event.nativeEvent), event.nativeEvent);\n    setDragging(true);\n  }, [onKeyCallback]);\n  return /*#__PURE__*/_jsx(\"div\", _extends({}, reset, {\n    className: [prefixCls, className || ''].filter(Boolean).join(' '),\n    style: _extends({}, reset.style, {\n      touchAction: 'none'\n    }),\n    ref: container,\n    tabIndex: 0,\n    onMouseDown: handleMoveStart,\n    onTouchStart: handleMoveStart\n  }));\n});\nInteractive.displayName = 'Interactive';\nexport default Interactive;"],"names":["React","_objectWithoutPropertiesLoose","useRef","useState","useEventCallback","isTouch","useCallback","preventDefaultMove","getRelativePosition","useEffect","_jsx"],"mappings":";;;;;;;;;AAEA,IAAI,YAAY,CAAC,aAAa,aAAa,UAAU,QAAQ;AAK1D,IAAC,cAA2BA,+BAAAA,QAAM,WAAW,CAAC,OAAO,QAAQ;AAC9D,MAAI;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EACN,IAAQ,OACJ,QAAQC,6BAA8B,OAAO,SAAS;AACxD,MAAI,YAAYC,MAAAA,OAAO,IAAI;AAC3B,MAAI,aAAaA,MAAAA,OAAO,KAAK;AAC7B,MAAI,CAAC,YAAY,WAAW,IAAIC,MAAAA,SAAS,KAAK;AAC9C,MAAI,iBAAiBC,MAAAA,iBAAiB,MAAM;AAC5C,MAAI,gBAAgBA,MAAAA,iBAAiB,MAAM;AAI3C,MAAI,UAAU,WAAS;AACrB,QAAI,WAAW,WAAW,CAACC,MAAAA,QAAQ,KAAK,EAAG,QAAO;AAClD,eAAW,UAAUA,MAAAA,QAAQ,KAAK;AAClC,WAAO;AAAA,EACT;AACA,MAAI,aAAaC,MAAAA,YAAY,WAAS;AACpCC,UAAAA,mBAAmB,KAAK;AACxB,QAAI,CAAC,UAAU,QAAS;AACxB,QAAI,SAASF,MAAAA,QAAQ,KAAK,IAAI,MAAM,QAAQ,SAAS,IAAI,MAAM,UAAU;AACzE,QAAI,CAAC,QAAQ;AACX,kBAAY,KAAK;AACjB;AAAA,IACF;AACA,sBAAkB,QAAQ,eAAeG,MAAAA,oBAAoB,UAAU,SAAS,KAAK,GAAG,KAAK;AAAA,EAC/F,GAAG,CAAC,cAAc,CAAC;AACnB,MAAI,gBAAgBF,MAAAA,YAAY,MAAM,YAAY,KAAK,GAAG,CAAA,CAAE;AAC5D,MAAI,uBAAuBA,MAAAA,YAAY,WAAS;AAC9C,QAAI,OAAO;AACT,aAAO,iBAAiB,WAAW,UAAU,cAAc,aAAa,UAAU;AAClF,aAAO,iBAAiB,WAAW,UAAU,aAAa,WAAW,aAAa;AAAA,IACpF,OAAO;AACL,aAAO,oBAAoB,aAAa,UAAU;AAClD,aAAO,oBAAoB,WAAW,aAAa;AACnD,aAAO,oBAAoB,aAAa,UAAU;AAClD,aAAO,oBAAoB,YAAY,aAAa;AAAA,IACtD;AAAA,EACF,GAAG,CAAC,YAAY,aAAa,CAAC;AAC9BG,QAAAA,UAAU,MAAM;AACd,yBAAqB,UAAU;AAC/B,WAAO,MAAM;AACX,2BAAqB,KAAK;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,YAAY,YAAY,eAAe,oBAAoB,CAAC;AAChE,MAAI,kBAAkBH,MAAAA,YAAY,WAAS;AACzC,QAAI,WAAW,SAAS;AACxB,gBAAY,QAAQ,SAAS,KAAI;AACjCC,UAAAA,mBAAmB,MAAM,WAAW;AACpC,QAAI,CAAC,QAAQ,MAAM,WAAW,EAAG;AACjC,QAAI,CAAC,UAAU,QAAS;AACxB,qBAAiB,QAAQ,cAAcC,MAAAA,oBAAoB,UAAU,SAAS,MAAM,WAAW,GAAG,MAAM,WAAW;AACnH,gBAAY,IAAI;AAAA,EAClB,GAAG,CAAC,aAAa,CAAC;AAClB,SAAoBE,2BAAAA,kBAAAA,IAAK,OAAO,SAAS,CAAA,GAAI,OAAO;AAAA,IAClD,WAAW,CAAC,WAAW,aAAa,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,IAChE,OAAO,SAAS,IAAI,MAAM,OAAO;AAAA,MAC/B,aAAa;AAAA,IACnB,CAAK;AAAA,IACD,KAAK;AAAA,IACL,UAAU;AAAA,IACV,aAAa;AAAA,IACb,cAAc;AAAA,EAClB,CAAG,CAAC;AACJ,CAAC;AACD,YAAY,cAAc;;;;;;;","x_google_ignoreList":[0]}