You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
17 KiB
1 line
17 KiB
{"ast":null,"code":"import _defineProperty2 from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _get from \"@babel/runtime/helpers/get\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nvar _excluded = [\"enabled\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { State } from \"../../State\";\nimport { DEFAULT_TOUCH_SLOP } from \"../constants\";\nimport GestureHandler from \"./GestureHandler\";\nvar NativeViewGestureHandler = function (_GestureHandler) {\n _inherits(NativeViewGestureHandler, _GestureHandler);\n var _super = _createSuper(NativeViewGestureHandler);\n function NativeViewGestureHandler() {\n var _this;\n _classCallCheck(this, NativeViewGestureHandler);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"buttonRole\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"shouldActivateOnStart\", false);\n _defineProperty(_assertThisInitialized(_this), \"disallowInterruption\", false);\n _defineProperty(_assertThisInitialized(_this), \"startX\", 0);\n _defineProperty(_assertThisInitialized(_this), \"startY\", 0);\n _defineProperty(_assertThisInitialized(_this), \"minDistSq\", DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP);\n return _this;\n }\n _createClass(NativeViewGestureHandler, [{\n key: \"init\",\n value: function init(ref, propsRef) {\n _get(_getPrototypeOf(NativeViewGestureHandler.prototype), \"init\", this).call(this, ref, propsRef);\n this.setShouldCancelWhenOutside(true);\n this.view.style['touchAction'] = 'auto';\n this.view.style['WebkitTouchCallout'] = 'auto';\n if (this.view.hasAttribute('role')) {\n this.buttonRole = true;\n } else {\n this.buttonRole = false;\n }\n }\n }, {\n key: \"updateGestureConfig\",\n value: function updateGestureConfig(_ref) {\n var _ref$enabled = _ref.enabled,\n enabled = _ref$enabled === void 0 ? true : _ref$enabled,\n props = _objectWithoutProperties(_ref, _excluded);\n _get(_getPrototypeOf(NativeViewGestureHandler.prototype), \"updateGestureConfig\", this).call(this, _objectSpread({\n enabled: enabled\n }, props));\n if (this.config.shouldActivateOnStart !== undefined) {\n this.shouldActivateOnStart = this.config.shouldActivateOnStart;\n }\n if (this.config.disallowInterruption !== undefined) {\n this.disallowInterruption = this.config.disallowInterruption;\n }\n }\n }, {\n key: \"resetConfig\",\n value: function resetConfig() {\n _get(_getPrototypeOf(NativeViewGestureHandler.prototype), \"resetConfig\", this).call(this);\n }\n }, {\n key: \"onPointerDown\",\n value: function onPointerDown(event) {\n this.tracker.addToTracker(event);\n _get(_getPrototypeOf(NativeViewGestureHandler.prototype), \"onPointerDown\", this).call(this, event);\n this.newPointerAction();\n }\n }, {\n key: \"onPointerAdd\",\n value: function onPointerAdd(event) {\n this.tracker.addToTracker(event);\n _get(_getPrototypeOf(NativeViewGestureHandler.prototype), \"onPointerAdd\", this).call(this, event);\n this.newPointerAction();\n }\n }, {\n key: \"newPointerAction\",\n value: function newPointerAction() {\n this.startX = this.tracker.getLastAvgX();\n this.startY = this.tracker.getLastAvgY();\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n this.begin();\n if (this.buttonRole) {\n this.activate();\n }\n }\n }, {\n key: \"onPointerMove\",\n value: function onPointerMove(event) {\n this.tracker.track(event);\n var dx = this.startX - this.tracker.getLastAvgX();\n var dy = this.startY - this.tracker.getLastAvgY();\n var distSq = dx * dx + dy * dy;\n if (!this.buttonRole && distSq >= this.minDistSq && this.currentState === State.BEGAN) {\n this.activate();\n }\n }\n }, {\n key: \"onPointerOut\",\n value: function onPointerOut() {\n this.cancel();\n }\n }, {\n key: \"onPointerUp\",\n value: function onPointerUp(event) {\n _get(_getPrototypeOf(NativeViewGestureHandler.prototype), \"onPointerUp\", this).call(this, event);\n this.onUp(event);\n }\n }, {\n key: \"onPointerRemove\",\n value: function onPointerRemove(event) {\n _get(_getPrototypeOf(NativeViewGestureHandler.prototype), \"onPointerRemove\", this).call(this, event);\n this.onUp(event);\n }\n }, {\n key: \"onUp\",\n value: function onUp(event) {\n this.tracker.removeFromTracker(event.pointerId);\n if (this.tracker.getTrackedPointersCount() === 0) {\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n }\n }, {\n key: \"onPointerCancel\",\n value: function onPointerCancel(event) {\n _get(_getPrototypeOf(NativeViewGestureHandler.prototype), \"onPointerCancel\", this).call(this, event);\n this.cancel();\n this.reset();\n }\n }, {\n key: \"shouldRecognizeSimultaneously\",\n value: function shouldRecognizeSimultaneously(handler) {\n if (_get(_getPrototypeOf(NativeViewGestureHandler.prototype), \"shouldRecognizeSimultaneously\", this).call(this, handler)) {\n return true;\n }\n if (handler instanceof NativeViewGestureHandler && handler.getState() === State.ACTIVE && handler.disallowsInterruption()) {\n return false;\n }\n var canBeInterrupted = !this.disallowInterruption;\n if (this.currentState === State.ACTIVE && handler.getState() === State.ACTIVE && canBeInterrupted) {\n return false;\n }\n return this.currentState === State.ACTIVE && canBeInterrupted && handler.getTag() > 0;\n }\n }, {\n key: \"shouldBeCancelledByOther\",\n value: function shouldBeCancelledByOther(_handler) {\n return !this.disallowInterruption;\n }\n }, {\n key: \"disallowsInterruption\",\n value: function disallowsInterruption() {\n return this.disallowInterruption;\n }\n }]);\n return NativeViewGestureHandler;\n}(GestureHandler);\nexport { NativeViewGestureHandler as default };","map":{"version":3,"sources":["NativeViewGestureHandler.ts"],"names":["State","DEFAULT_TOUCH_SLOP","GestureHandler","NativeViewGestureHandler","init","ref","propsRef","setShouldCancelWhenOutside","view","style","hasAttribute","buttonRole","updateGestureConfig","enabled","props","config","shouldActivateOnStart","undefined","disallowInterruption","resetConfig","onPointerDown","event","tracker","addToTracker","newPointerAction","onPointerAdd","startX","getLastAvgX","startY","getLastAvgY","currentState","UNDETERMINED","begin","activate","onPointerMove","track","dx","dy","distSq","minDistSq","BEGAN","onPointerOut","cancel","onPointerUp","onUp","onPointerRemove","removeFromTracker","pointerId","getTrackedPointersCount","ACTIVE","end","fail","onPointerCancel","reset","shouldRecognizeSimultaneously","handler","getState","disallowsInterruption","canBeInterrupted","getTag","shouldBeCancelledByOther","_handler"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nexport default class NativeViewGestureHandler extends GestureHandler {\n private buttonRole!: boolean;\n\n //TODO: Implement logic for activation on start\n //@ts-ignore Logic yet to be implemented\n private shouldActivateOnStart = false;\n private disallowInterruption = false;\n\n private startX = 0;\n private startY = 0;\n private minDistSq = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n\n this.setShouldCancelWhenOutside(true);\n\n this.view.style['touchAction'] = 'auto';\n\n //@ts-ignore Turns on defualt touch behavior on Safari\n this.view.style['WebkitTouchCallout'] = 'auto';\n\n if (this.view.hasAttribute('role')) {\n this.buttonRole = true;\n } else {\n this.buttonRole = false;\n }\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n if (this.config.shouldActivateOnStart !== undefined) {\n this.shouldActivateOnStart = this.config.shouldActivateOnStart;\n }\n if (this.config.disallowInterruption !== undefined) {\n this.disallowInterruption = this.config.disallowInterruption;\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.newPointerAction();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.newPointerAction();\n }\n\n private newPointerAction(): void {\n this.startX = this.tracker.getLastAvgX();\n this.startY = this.tracker.getLastAvgY();\n\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.begin();\n if (this.buttonRole) {\n this.activate();\n }\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n const dx = this.startX - this.tracker.getLastAvgX();\n const dy = this.startY - this.tracker.getLastAvgY();\n const distSq = dx * dx + dy * dy;\n\n if (\n !this.buttonRole &&\n distSq >= this.minDistSq &&\n this.currentState === State.BEGAN\n ) {\n this.activate();\n }\n }\n\n protected onPointerOut(): void {\n this.cancel();\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.onUp(event);\n }\n\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.onUp(event);\n }\n\n private onUp(event: AdaptedEvent): void {\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.tracker.getTrackedPointersCount() === 0) {\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.cancel();\n this.reset();\n }\n\n public shouldRecognizeSimultaneously(handler: GestureHandler): boolean {\n if (super.shouldRecognizeSimultaneously(handler)) {\n return true;\n }\n\n if (\n handler instanceof NativeViewGestureHandler &&\n handler.getState() === State.ACTIVE &&\n handler.disallowsInterruption()\n ) {\n return false;\n }\n\n const canBeInterrupted = !this.disallowInterruption;\n\n if (\n this.currentState === State.ACTIVE &&\n handler.getState() === State.ACTIVE &&\n canBeInterrupted\n ) {\n return false;\n }\n\n return (\n this.currentState === State.ACTIVE &&\n canBeInterrupted &&\n handler.getTag() > 0\n );\n }\n\n public shouldBeCancelledByOther(_handler: GestureHandler): boolean {\n return !this.disallowInterruption;\n }\n\n public disallowsInterruption(): boolean {\n return this.disallowInterruption;\n }\n}\n"]},"metadata":{},"sourceType":"module"} |