fc26f7d7f7578134dc9b7dba4627c822.json 17.5 KB
{"ast":null,"code":"var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=createHandler;var _extends2=_interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));var _classCallCheck2=_interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));var _createClass2=_interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));var _possibleConstructorReturn2=_interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));var _getPrototypeOf5=_interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));var _inherits2=_interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));var _react=_interopRequireDefault(require(\"react\"));var _TouchableWithoutFeedback=_interopRequireDefault(require(\"react-native-web/dist/exports/TouchableWithoutFeedback\"));var _State=_interopRequireDefault(require(\"./State\"));var _class,_temp;function handleHandlerStateChange(props,event,oldState,state){var enabled=props.enabled,onHandlerStateChange=props.onHandlerStateChange;if(enabled!==false&&onHandlerStateChange){var _event$nativeEvent=event.nativeEvent,x=_event$nativeEvent.locationX,y=_event$nativeEvent.locationY,absoluteX=_event$nativeEvent.pageX,absoluteY=_event$nativeEvent.pageY;onHandlerStateChange({nativeEvent:{oldState:oldState,state:state,x:x,y:y,absoluteX:absoluteX,absoluteY:absoluteY,pointerInside:true}});}}function handleFailed(props,event){handleHandlerStateChange(props,event,_State.default.ACTIVE,_State.default.FAILED);}function handleEnd(props,event){handleHandlerStateChange(props,event,_State.default.ACTIVE,_State.default.END);}function handleActivate(props,event){handleHandlerStateChange(props,event,_State.default.BEGAN,_State.default.ACTIVE);}function handleBegan(props,event){handleHandlerStateChange(props,event,_State.default.UNDETERMINED,_State.default.BEGAN);}var UnimplementedGestureHandler=function(_React$Component){(0,_inherits2.default)(UnimplementedGestureHandler,_React$Component);function UnimplementedGestureHandler(){var _getPrototypeOf2;var _this;(0,_classCallCheck2.default)(this,UnimplementedGestureHandler);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=(0,_possibleConstructorReturn2.default)(this,(_getPrototypeOf2=(0,_getPrototypeOf5.default)(UnimplementedGestureHandler)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.setNativeProps=function(){};return _this;}(0,_createClass2.default)(UnimplementedGestureHandler,[{key:\"render\",value:function render(){return this.props.children;}}]);return UnimplementedGestureHandler;}(_react.default.Component);var handlers={NativeViewGestureHandler:function(_React$Component2){(0,_inherits2.default)(NativeViewGestureHandler,_React$Component2);function NativeViewGestureHandler(){(0,_classCallCheck2.default)(this,NativeViewGestureHandler);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf5.default)(NativeViewGestureHandler).apply(this,arguments));}(0,_createClass2.default)(NativeViewGestureHandler,[{key:\"render\",value:function render(){var children=this.props.children;return children;}}]);return NativeViewGestureHandler;}(_react.default.Component),TapGestureHandler:(_temp=_class=function(_React$Component3){(0,_inherits2.default)(TapGestureHandler,_React$Component3);function TapGestureHandler(){var _getPrototypeOf3;var _this2;(0,_classCallCheck2.default)(this,TapGestureHandler);for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2];}_this2=(0,_possibleConstructorReturn2.default)(this,(_getPrototypeOf3=(0,_getPrototypeOf5.default)(TapGestureHandler)).call.apply(_getPrototypeOf3,[this].concat(args)));_this2.hasBegun=false;_this2.touchBank=[];_this2.timeout=null;_this2.clearState=function(){_this2.hasBegun=false;_this2.touchBank=[];window.clearTimeout(_this2.timeout);};_this2.handlePressIn=function(event){var maxDelayMs=_this2.props.maxDelayMs;if(!_this2.hasBegun){event.persist();_this2.hasBegun=true;handleBegan(_this2.props,event);_this2.timeout=window.setTimeout(function(){if(_this2.hasBegun){_this2.clearState();handleFailed(_this2.props,event);}},maxDelayMs);}};_this2.handlePressOut=function(event){var _event$touchHistory$t=event.touchHistory.touchBank,touchBank=_event$touchHistory$t===void 0?[]:_event$touchHistory$t;var _this2$props=_this2.props,maxDeltaX=_this2$props.maxDeltaX,maxDeltaY=_this2$props.maxDeltaY,maxDurationMs=_this2$props.maxDurationMs,numberOfTaps=_this2$props.numberOfTaps;_this2.touchBank=_this2.touchBank.concat(touchBank);var areTouchesValid=_this2.touchBank.every(function(touch){var currentPageX=touch.currentPageX,currentPageY=touch.currentPageY,currentTimeStamp=touch.currentTimeStamp,startPageX=touch.startPageX,startPageY=touch.startPageY,startTimeStamp=touch.startTimeStamp;if(startTimeStamp+maxDurationMs<currentTimeStamp){return false;}if(startPageX+maxDeltaX<currentPageX||startPageX-maxDeltaX>currentPageX){return false;}if(startPageY+maxDeltaY<currentPageY||startPageY-maxDeltaY>currentPageY){return false;}return true;});if(!areTouchesValid){_this2.clearState();handleFailed(_this2.props,event);}else if(_this2.touchBank.length>=numberOfTaps){handleActivate(_this2.props,event);_this2.clearState();handleEnd(_this2.props,event);}};return _this2;}(0,_createClass2.default)(TapGestureHandler,[{key:\"setNativeProps\",value:function setNativeProps(){}},{key:\"render\",value:function render(){var _this$props=this.props,children=_this$props.children,style=_this$props.style;return _react.default.createElement(_TouchableWithoutFeedback.default,{style:style,onPressIn:this.handlePressIn,onPressOut:this.handlePressOut},children);}}]);return TapGestureHandler;}(_react.default.Component),_class.defaultProps={numberOfTaps:1,maxDurationMs:500,maxDelayMs:500,minPointers:1,maxDeltaX:Number.MAX_SAFE_INTEGER,maxDeltaY:Number.MAX_SAFE_INTEGER,maxDist:Number.MAX_SAFE_INTEGER},_temp)};function createHandler(handlerName){var propTypes=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var Handler=function(_React$Component4){(0,_inherits2.default)(Handler,_React$Component4);function Handler(){var _getPrototypeOf4;var _this3;(0,_classCallCheck2.default)(this,Handler);for(var _len3=arguments.length,_args=new Array(_len3),_key3=0;_key3<_len3;_key3++){_args[_key3]=arguments[_key3];}_this3=(0,_possibleConstructorReturn2.default)(this,(_getPrototypeOf4=(0,_getPrototypeOf5.default)(Handler)).call.apply(_getPrototypeOf4,[this].concat(_args)));_this3._refHandler=function(node){_this3._viewNode=node;};_this3.setNativeProps=function(){var _this3$_viewNode;(_this3$_viewNode=_this3._viewNode).setNativeProps.apply(_this3$_viewNode,arguments);};return _this3;}(0,_createClass2.default)(Handler,[{key:\"componentDidMount\",value:function componentDidMount(){if(!handlers[handlerName]){console.warn(handlerName+\" is not yet supported on web.\");}}},{key:\"render\",value:function render(){var Handler=handlers[handlerName]||UnimplementedGestureHandler;return _react.default.createElement(Handler,(0,_extends2.default)({ref:this._refHandler},this.props));}}]);return Handler;}(_react.default.Component);Handler.displayName=handlerName;Handler.propTypes=propTypes;return Handler;}","map":{"version":3,"sources":["C:/Users/bluej/Desktop/2_2/searchGuide/searchGuide/node_modules/react-native-gesture-handler/createHandler.web.js"],"names":["handleHandlerStateChange","props","event","oldState","state","enabled","onHandlerStateChange","nativeEvent","x","locationX","y","locationY","absoluteX","pageX","absoluteY","pageY","pointerInside","handleFailed","State","ACTIVE","FAILED","handleEnd","END","handleActivate","BEGAN","handleBegan","UNDETERMINED","UnimplementedGestureHandler","setNativeProps","children","React","Component","handlers","NativeViewGestureHandler","TapGestureHandler","hasBegun","touchBank","timeout","clearState","window","clearTimeout","handlePressIn","maxDelayMs","persist","setTimeout","handlePressOut","touchHistory","maxDeltaX","maxDeltaY","maxDurationMs","numberOfTaps","concat","areTouchesValid","every","touch","currentPageX","currentPageY","currentTimeStamp","startPageX","startPageY","startTimeStamp","length","style","defaultProps","minPointers","Number","MAX_SAFE_INTEGER","maxDist","createHandler","handlerName","propTypes","Handler","_refHandler","node","_viewNode","console","warn","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { TouchableWithoutFeedback } from 'react-native';\n\nimport State from './State';\n\nfunction handleHandlerStateChange(props, event, oldState, state) {\n  const { enabled, onHandlerStateChange } = props;\n\n  if (enabled !== false && onHandlerStateChange) {\n    const {\n      nativeEvent: {\n        locationX: x,\n        locationY: y,\n        pageX: absoluteX,\n        pageY: absoluteY,\n      },\n    } = event;\n\n    onHandlerStateChange({\n      nativeEvent: {\n        oldState,\n        state,\n        x,\n        y,\n        absoluteX,\n        absoluteY,\n        pointerInside: true,\n      },\n    });\n  }\n}\n\nfunction handleFailed(props, event) {\n  handleHandlerStateChange(props, event, State.ACTIVE, State.FAILED);\n}\n\nfunction handleEnd(props, event) {\n  handleHandlerStateChange(props, event, State.ACTIVE, State.END);\n}\n\nfunction handleActivate(props, event) {\n  handleHandlerStateChange(props, event, State.BEGAN, State.ACTIVE);\n}\n\nfunction handleBegan(props, event) {\n  handleHandlerStateChange(props, event, State.UNDETERMINED, State.BEGAN);\n}\n\nclass UnimplementedGestureHandler extends React.Component {\n  setNativeProps = () => {\n    // Do nothing\n  };\n\n  render() {\n    return this.props.children;\n  }\n}\n\nconst handlers = {\n  NativeViewGestureHandler: class NativeViewGestureHandler extends React.Component {\n    render() {\n      const { children } = this.props;\n\n      return children;\n    }\n  },\n\n  TapGestureHandler: class TapGestureHandler extends React.Component {\n    static defaultProps = {\n      numberOfTaps: 1,\n      maxDurationMs: 500,\n      maxDelayMs: 500,\n      minPointers: 1,\n      maxDeltaX: Number.MAX_SAFE_INTEGER,\n      maxDeltaY: Number.MAX_SAFE_INTEGER,\n      maxDist: Number.MAX_SAFE_INTEGER,\n    };\n\n    hasBegun = false;\n    touchBank = [];\n    timeout = null;\n\n    setNativeProps() {}\n\n    clearState = () => {\n      this.hasBegun = false;\n      this.touchBank = [];\n      window.clearTimeout(this.timeout);\n    };\n\n    handlePressIn = event => {\n      const { maxDelayMs } = this.props;\n\n      if (!this.hasBegun) {\n        event.persist();\n        this.hasBegun = true;\n        handleBegan(this.props, event);\n\n        // Cancel if not finished in time\n        this.timeout = window.setTimeout(() => {\n          if (this.hasBegun) {\n            this.clearState();\n            handleFailed(this.props, event);\n          }\n        }, maxDelayMs);\n      }\n    };\n\n    handlePressOut = event => {\n      const {\n        touchHistory: { touchBank = [] },\n      } = event;\n      const { maxDeltaX, maxDeltaY, maxDurationMs, numberOfTaps } = this.props;\n\n      this.touchBank = this.touchBank.concat(touchBank);\n\n      // Check if all touches are valid\n      const areTouchesValid = this.touchBank.every(touch => {\n        const {\n          currentPageX,\n          currentPageY,\n          currentTimeStamp,\n          startPageX,\n          startPageY,\n          startTimeStamp,\n        } = touch;\n\n        // Check if touch took longer than it may\n        if (startTimeStamp + maxDurationMs < currentTimeStamp) {\n          return false;\n        }\n\n        // Check if touch moved too far away\n        if (\n          startPageX + maxDeltaX < currentPageX ||\n          startPageX - maxDeltaX > currentPageX\n        ) {\n          return false;\n        }\n\n        // Check if touch moved too far away\n        if (\n          startPageY + maxDeltaY < currentPageY ||\n          startPageY - maxDeltaY > currentPageY\n        ) {\n          return false;\n        }\n\n        return true;\n      });\n\n      // Check if all touches were valid and the necessary number of touches was achieved\n      if (!areTouchesValid) {\n        this.clearState();\n        handleFailed(this.props, event);\n      } else if (this.touchBank.length >= numberOfTaps) {\n        handleActivate(this.props, event);\n        this.clearState();\n        handleEnd(this.props, event);\n      }\n    };\n\n    render() {\n      const { children, style } = this.props;\n\n      return (\n        <TouchableWithoutFeedback\n          style={style}\n          onPressIn={this.handlePressIn}\n          onPressOut={this.handlePressOut}>\n          {children}\n        </TouchableWithoutFeedback>\n      );\n    }\n  },\n};\n\nexport default function createHandler(handlerName, propTypes = {}) {\n  class Handler extends React.Component {\n    static displayName = handlerName;\n\n    static propTypes = propTypes;\n\n    componentDidMount() {\n      if (!handlers[handlerName]) {\n        console.warn(`${handlerName} is not yet supported on web.`);\n      }\n    }\n\n    _refHandler = node => {\n      this._viewNode = node;\n    };\n\n    setNativeProps = (...args) => {\n      this._viewNode.setNativeProps(...args);\n    };\n\n    render() {\n      const Handler = handlers[handlerName] || UnimplementedGestureHandler;\n\n      return <Handler ref={this._refHandler} {...this.props} />;\n    }\n  }\n  return Handler;\n}\n"]},"metadata":{},"sourceType":"script"}