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
14 KiB

{"ast":null,"code":"import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\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 { DEFAULT_TOUCH_SLOP } from \"../constants\";\nimport { EventTypes } from \"../interfaces\";\nvar ScaleGestureDetector = function () {\n function ScaleGestureDetector(callbacks) {\n _classCallCheck(this, ScaleGestureDetector);\n _defineProperty(this, \"onScaleBegin\", void 0);\n _defineProperty(this, \"onScale\", void 0);\n _defineProperty(this, \"onScaleEnd\", void 0);\n _defineProperty(this, \"focusX\", void 0);\n _defineProperty(this, \"focusY\", void 0);\n _defineProperty(this, \"currentSpan\", void 0);\n _defineProperty(this, \"prevSpan\", void 0);\n _defineProperty(this, \"initialSpan\", void 0);\n _defineProperty(this, \"currentTime\", void 0);\n _defineProperty(this, \"prevTime\", void 0);\n _defineProperty(this, \"inProgress\", false);\n _defineProperty(this, \"spanSlop\", void 0);\n _defineProperty(this, \"minSpan\", void 0);\n this.onScaleBegin = callbacks.onScaleBegin;\n this.onScale = callbacks.onScale;\n this.onScaleEnd = callbacks.onScaleEnd;\n this.spanSlop = DEFAULT_TOUCH_SLOP * 2;\n this.minSpan = 0;\n }\n _createClass(ScaleGestureDetector, [{\n key: \"onTouchEvent\",\n value: function onTouchEvent(event, tracker) {\n this.currentTime = event.time;\n var action = event.eventType;\n var numOfPointers = tracker.getTrackedPointersCount();\n var streamComplete = action === EventTypes.UP || action === EventTypes.ADDITIONAL_POINTER_UP || action === EventTypes.CANCEL;\n if (action === EventTypes.DOWN || streamComplete) {\n if (this.inProgress) {\n this.onScaleEnd(this);\n this.inProgress = false;\n this.initialSpan = 0;\n }\n if (streamComplete) {\n return true;\n }\n }\n var configChanged = action === EventTypes.DOWN || action === EventTypes.ADDITIONAL_POINTER_UP || action === EventTypes.ADDITIONAL_POINTER_DOWN;\n var pointerUp = action === EventTypes.ADDITIONAL_POINTER_UP;\n var ignoredPointer = pointerUp ? event.pointerId : undefined;\n var div = pointerUp ? numOfPointers - 1 : numOfPointers;\n var sumX = tracker.getSumX(ignoredPointer);\n var sumY = tracker.getSumY(ignoredPointer);\n var focusX = sumX / div;\n var focusY = sumY / div;\n var devSumX = 0;\n var devSumY = 0;\n tracker.getData().forEach(function (value, key) {\n if (key === ignoredPointer) {\n return;\n }\n devSumX += Math.abs(value.lastX - focusX);\n devSumY += Math.abs(value.lastY - focusY);\n });\n var devX = devSumX / div;\n var devY = devSumY / div;\n var spanX = devX * 2;\n var spanY = devY * 2;\n var span = Math.hypot(spanX, spanY);\n var wasInProgress = this.inProgress;\n this.focusX = focusX;\n this.focusY = focusY;\n if (this.inProgress && (span < this.minSpan || configChanged)) {\n this.onScaleEnd(this);\n this.inProgress = false;\n this.initialSpan = span;\n }\n if (configChanged) {\n this.initialSpan = this.prevSpan = this.currentSpan = span;\n }\n if (!this.inProgress && span >= this.minSpan && (wasInProgress || Math.abs(span - this.initialSpan) > this.spanSlop)) {\n this.prevSpan = this.currentSpan = span;\n this.prevTime = this.currentTime;\n this.inProgress = this.onScaleBegin(this);\n }\n if (action !== EventTypes.MOVE) {\n return true;\n }\n this.currentSpan = span;\n if (this.inProgress && !this.onScale(this)) {\n return true;\n }\n this.prevSpan = this.currentSpan;\n this.prevTime = this.currentTime;\n return true;\n }\n }, {\n key: \"getCurrentSpan\",\n value: function getCurrentSpan() {\n return this.currentSpan;\n }\n }, {\n key: \"getFocusX\",\n value: function getFocusX() {\n return this.focusX;\n }\n }, {\n key: \"getFocusY\",\n value: function getFocusY() {\n return this.focusY;\n }\n }, {\n key: \"getTimeDelta\",\n value: function getTimeDelta() {\n return this.currentTime - this.prevTime;\n }\n }, {\n key: \"getScaleFactor\",\n value: function getScaleFactor(numOfPointers) {\n if (numOfPointers < 2) {\n return 1;\n }\n return this.prevSpan > 0 ? this.currentSpan / this.prevSpan : 1;\n }\n }]);\n return ScaleGestureDetector;\n}();\nexport { ScaleGestureDetector as default };","map":{"version":3,"mappings":"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","names":["DEFAULT_TOUCH_SLOP","EventTypes","ScaleGestureDetector","constructor","callbacks","_defineProperty","onScaleBegin","onScale","onScaleEnd","spanSlop","minSpan","onTouchEvent","event","tracker","currentTime","time","action","eventType","numOfPointers","getTrackedPointersCount","streamComplete","UP","ADDITIONAL_POINTER_UP","CANCEL","DOWN","inProgress","initialSpan","configChanged","ADDITIONAL_POINTER_DOWN","pointerUp","ignoredPointer","pointerId","undefined","div","sumX","getSumX","sumY","getSumY","focusX","focusY","devSumX","devSumY","getData","forEach","value","key","Math","abs","lastX","lastY","devX","devY","spanX","spanY","span","hypot","wasInProgress","prevSpan","currentSpan","prevTime","MOVE","getCurrentSpan","getFocusX","getFocusY","getTimeDelta","getScaleFactor"],"sources":["/Users/mathildejean/Documents/BUT/LaSuperMeteo/LaSuperMeteo/iut-expo-starter/node_modules/react-native-gesture-handler/lib/module/web/detectors/ScaleGestureDetector.ts"],"sourcesContent":["import { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedEvent, EventTypes } from '../interfaces';\n\nimport PointerTracker from '../tools/PointerTracker';\n\nexport interface ScaleGestureListener {\n onScaleBegin: (detector: ScaleGestureDetector) => boolean;\n onScale: (detector: ScaleGestureDetector) => boolean;\n onScaleEnd: (detector: ScaleGestureDetector) => void;\n}\n\nexport default class ScaleGestureDetector implements ScaleGestureListener {\n public onScaleBegin: (detector: ScaleGestureDetector) => boolean;\n public onScale: (detector: ScaleGestureDetector) => boolean;\n public onScaleEnd: (detector: ScaleGestureDetector) => void;\n\n private focusX!: number;\n private focusY!: number;\n\n private currentSpan!: number;\n private prevSpan!: number;\n private initialSpan!: number;\n\n private currentTime!: number;\n private prevTime!: number;\n\n private inProgress = false;\n\n private spanSlop: number;\n private minSpan: number;\n\n public constructor(callbacks: ScaleGestureListener) {\n this.onScaleBegin = callbacks.onScaleBegin;\n this.onScale = callbacks.onScale;\n this.onScaleEnd = callbacks.onScaleEnd;\n\n this.spanSlop = DEFAULT_TOUCH_SLOP * 2;\n this.minSpan = 0;\n }\n\n public onTouchEvent(event: AdaptedEvent, tracker: PointerTracker): boolean {\n this.currentTime = event.time;\n\n const action: EventTypes = event.eventType;\n const numOfPointers = tracker.getTrackedPointersCount();\n\n const streamComplete: boolean =\n action === EventTypes.UP ||\n action === EventTypes.ADDITIONAL_POINTER_UP ||\n action === EventTypes.CANCEL;\n\n if (action === EventTypes.DOWN || streamComplete) {\n if (this.inProgress) {\n this.onScaleEnd(this);\n this.inProgress = false;\n this.initialSpan = 0;\n }\n\n if (streamComplete) {\n return true;\n }\n }\n\n const configChanged: boolean =\n action === EventTypes.DOWN ||\n action === EventTypes.ADDITIONAL_POINTER_UP ||\n action === EventTypes.ADDITIONAL_POINTER_DOWN;\n\n const pointerUp = action === EventTypes.ADDITIONAL_POINTER_UP;\n\n const ignoredPointer: number | undefined = pointerUp\n ? event.pointerId\n : undefined;\n\n //Determine focal point\n\n const div: number = pointerUp ? numOfPointers - 1 : numOfPointers;\n\n const sumX = tracker.getSumX(ignoredPointer);\n const sumY = tracker.getSumY(ignoredPointer);\n\n const focusX = sumX / div;\n const focusY = sumY / div;\n\n //Determine average deviation from focal point\n\n let devSumX = 0;\n let devSumY = 0;\n\n tracker.getData().forEach((value, key) => {\n if (key === ignoredPointer) {\n return;\n }\n\n devSumX += Math.abs(value.lastX - focusX);\n devSumY += Math.abs(value.lastY - focusY);\n });\n\n const devX: number = devSumX / div;\n const devY: number = devSumY / div;\n\n const spanX: number = devX * 2;\n const spanY: number = devY * 2;\n\n const span = Math.hypot(spanX, spanY);\n\n //Begin/end events\n const wasInProgress: boolean = this.inProgress;\n this.focusX = focusX;\n this.focusY = focusY;\n\n if (this.inProgress && (span < this.minSpan || configChanged)) {\n this.onScaleEnd(this);\n this.inProgress = false;\n this.initialSpan = span;\n }\n\n if (configChanged) {\n this.initialSpan = this.prevSpan = this.currentSpan = span;\n }\n\n if (\n !this.inProgress &&\n span >= this.minSpan &&\n (wasInProgress || Math.abs(span - this.initialSpan) > this.spanSlop)\n ) {\n this.prevSpan = this.currentSpan = span;\n this.prevTime = this.currentTime;\n this.inProgress = this.onScaleBegin(this);\n }\n\n //Handle motion\n if (action !== EventTypes.MOVE) {\n return true;\n }\n\n this.currentSpan = span;\n\n if (this.inProgress && !this.onScale(this)) {\n return true;\n }\n\n this.prevSpan = this.currentSpan;\n this.prevTime = this.currentTime;\n\n return true;\n }\n\n public getCurrentSpan(): number {\n return this.currentSpan;\n }\n\n public getFocusX(): number {\n return this.focusX;\n }\n\n public getFocusY(): number {\n return this.focusY;\n }\n\n public getTimeDelta(): number {\n return this.currentTime - this.prevTime;\n }\n\n public getScaleFactor(numOfPointers: number): number {\n if (numOfPointers < 2) {\n return 1;\n }\n\n return this.prevSpan > 0 ? this.currentSpan / this.prevSpan : 1;\n }\n}\n"]},"metadata":{},"sourceType":"module","externalDependencies":[]}