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

{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _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}\nvar VELOCITY_FACTOR = 0.2;\nvar MAX_POINTERS = 20;\nvar PointerTracker = function () {\n function PointerTracker() {\n _classCallCheck(this, PointerTracker);\n _defineProperty(this, \"trackedPointers\", new Map());\n _defineProperty(this, \"touchEventsIds\", new Map());\n _defineProperty(this, \"lastMovedPointerId\", void 0);\n _defineProperty(this, \"cachedAverages\", {\n x: 0,\n y: 0\n });\n this.lastMovedPointerId = NaN;\n for (var i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n _createClass(PointerTracker, [{\n key: \"addToTracker\",\n value: function addToTracker(event) {\n if (this.trackedPointers.has(event.pointerId)) {\n return;\n }\n this.lastMovedPointerId = event.pointerId;\n var newElement = {\n lastX: event.x,\n lastY: event.y,\n timeStamp: event.time,\n velocityX: 0,\n velocityY: 0\n };\n this.trackedPointers.set(event.pointerId, newElement);\n this.mapTouchEventId(event.pointerId);\n this.cachedAverages = {\n x: this.getLastAvgX(),\n y: this.getLastAvgY()\n };\n }\n }, {\n key: \"removeFromTracker\",\n value: function removeFromTracker(pointerId) {\n this.trackedPointers.delete(pointerId);\n this.removeMappedTouchId(pointerId);\n }\n }, {\n key: \"track\",\n value: function track(event) {\n var element = this.trackedPointers.get(event.pointerId);\n if (!element) {\n return;\n }\n this.lastMovedPointerId = event.pointerId;\n var dx = event.x - element.lastX;\n var dy = event.y - element.lastY;\n var dt = event.time - element.timeStamp;\n element.velocityX = dx / dt * 1000 * VELOCITY_FACTOR;\n element.velocityY = dy / dt * 1000 * VELOCITY_FACTOR;\n element.lastX = event.x;\n element.lastY = event.y;\n this.trackedPointers.set(event.pointerId, element);\n var avgX = this.getLastAvgX();\n var avgY = this.getLastAvgY();\n this.cachedAverages = {\n x: avgX,\n y: avgY\n };\n }\n }, {\n key: \"mapTouchEventId\",\n value: function mapTouchEventId(id) {\n for (var _ref of this.touchEventsIds) {\n var _ref2 = _slicedToArray(_ref, 2);\n var mappedId = _ref2[0];\n var touchId = _ref2[1];\n if (isNaN(touchId)) {\n this.touchEventsIds.set(mappedId, id);\n break;\n }\n }\n }\n }, {\n key: \"removeMappedTouchId\",\n value: function removeMappedTouchId(id) {\n var mappedId = this.getMappedTouchEventId(id);\n if (!isNaN(mappedId)) {\n this.touchEventsIds.set(mappedId, NaN);\n }\n }\n }, {\n key: \"getMappedTouchEventId\",\n value: function getMappedTouchEventId(touchEventId) {\n for (var _ref3 of this.touchEventsIds.entries()) {\n var _ref4 = _slicedToArray(_ref3, 2);\n var key = _ref4[0];\n var value = _ref4[1];\n if (value === touchEventId) {\n return key;\n }\n }\n return NaN;\n }\n }, {\n key: \"getVelocityX\",\n value: function getVelocityX(pointerId) {\n var _this$trackedPointers;\n return (_this$trackedPointers = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers === void 0 ? void 0 : _this$trackedPointers.velocityX;\n }\n }, {\n key: \"getVelocityY\",\n value: function getVelocityY(pointerId) {\n var _this$trackedPointers2;\n return (_this$trackedPointers2 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers2 === void 0 ? void 0 : _this$trackedPointers2.velocityY;\n }\n }, {\n key: \"getLastX\",\n value: function getLastX(pointerId) {\n if (pointerId !== undefined) {\n var _this$trackedPointers3;\n return (_this$trackedPointers3 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers3 === void 0 ? void 0 : _this$trackedPointers3.lastX;\n } else {\n var _this$trackedPointers4;\n return (_this$trackedPointers4 = this.trackedPointers.get(this.lastMovedPointerId)) === null || _this$trackedPointers4 === void 0 ? void 0 : _this$trackedPointers4.lastX;\n }\n }\n }, {\n key: \"getLastY\",\n value: function getLastY(pointerId) {\n if (pointerId !== undefined) {\n var _this$trackedPointers5;\n return (_this$trackedPointers5 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers5 === void 0 ? void 0 : _this$trackedPointers5.lastY;\n } else {\n var _this$trackedPointers6;\n return (_this$trackedPointers6 = this.trackedPointers.get(this.lastMovedPointerId)) === null || _this$trackedPointers6 === void 0 ? void 0 : _this$trackedPointers6.lastY;\n }\n }\n }, {\n key: \"getLastAvgX\",\n value: function getLastAvgX() {\n var avgX = this.getSumX() / this.trackedPointers.size;\n return isNaN(avgX) ? this.cachedAverages.x : avgX;\n }\n }, {\n key: \"getLastAvgY\",\n value: function getLastAvgY() {\n var avgY = this.getSumY() / this.trackedPointers.size;\n return isNaN(avgY) ? this.cachedAverages.y : avgY;\n }\n }, {\n key: \"getSumX\",\n value: function getSumX(ignoredPointer) {\n var sumX = 0;\n this.trackedPointers.forEach(function (value, key) {\n if (key !== ignoredPointer) {\n sumX += value.lastX;\n }\n });\n return sumX;\n }\n }, {\n key: \"getSumY\",\n value: function getSumY(ignoredPointer) {\n var sumY = 0;\n this.trackedPointers.forEach(function (value, key) {\n if (key !== ignoredPointer) {\n sumY += value.lastY;\n }\n });\n return sumY;\n }\n }, {\n key: \"getTrackedPointersCount\",\n value: function getTrackedPointersCount() {\n return this.trackedPointers.size;\n }\n }, {\n key: \"getTrackedPointersID\",\n value: function getTrackedPointersID() {\n var keys = [];\n this.trackedPointers.forEach(function (_value, key) {\n keys.push(key);\n });\n return keys;\n }\n }, {\n key: \"getData\",\n value: function getData() {\n return this.trackedPointers;\n }\n }, {\n key: \"resetTracker\",\n value: function resetTracker() {\n this.trackedPointers.clear();\n this.lastMovedPointerId = NaN;\n for (var i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n }], [{\n key: \"shareCommonPointers\",\n value: function shareCommonPointers(stPointers, ndPointers) {\n return stPointers.some(function (pointerId) {\n return ndPointers.includes(pointerId);\n });\n }\n }]);\n return PointerTracker;\n}();\nexport { PointerTracker as default };","map":{"version":3,"mappings":"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","names":["VELOCITY_FACTOR","MAX_POINTERS","PointerTracker","constructor","_defineProperty","Map","x","y","lastMovedPointerId","NaN","i","touchEventsIds","set","addToTracker","event","trackedPointers","has","pointerId","newElement","lastX","lastY","timeStamp","time","velocityX","velocityY","mapTouchEventId","cachedAverages","getLastAvgX","getLastAvgY","removeFromTracker","delete","removeMappedTouchId","track","element","get","dx","dy","dt","avgX","avgY","id","mappedId","touchId","isNaN","getMappedTouchEventId","touchEventId","entries","key","value","getVelocityX","_this$trackedPointers","getVelocityY","_this$trackedPointers2","getLastX","undefined","_this$trackedPointers3","_this$trackedPointers4","getLastY","_this$trackedPointers5","_this$trackedPointers6","getSumX","size","getSumY","ignoredPointer","sumX","forEach","sumY","getTrackedPointersCount","getTrackedPointersID","keys","_value","push","getData","resetTracker","clear","stPointers","ndPointers","some","includes"],"sources":["/Users/mathildejean/Documents/BUT/LaSuperMeteo/LaSuperMeteo/iut-expo-starter/node_modules/react-native-gesture-handler/lib/module/web/tools/PointerTracker.ts"],"sourcesContent":["import { AdaptedEvent } from '../interfaces';\n\nexport interface TrackerElement {\n lastX: number;\n lastY: number;\n\n timeStamp: number;\n\n velocityX: number;\n velocityY: number;\n}\n\n// Used to scale velocity so that it is similar to velocity in Android/iOS\nconst VELOCITY_FACTOR = 0.2;\nconst MAX_POINTERS = 20;\n\nexport default class PointerTracker {\n private trackedPointers: Map<number, TrackerElement> = new Map<\n number,\n TrackerElement\n >();\n\n private touchEventsIds: Map<number, number> = new Map<number, number>();\n\n private lastMovedPointerId: number;\n\n private cachedAverages: { x: number; y: number } = { x: 0, y: 0 };\n\n public constructor() {\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n public addToTracker(event: AdaptedEvent): void {\n if (this.trackedPointers.has(event.pointerId)) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n\n const newElement: TrackerElement = {\n lastX: event.x,\n lastY: event.y,\n timeStamp: event.time,\n velocityX: 0,\n velocityY: 0,\n };\n\n this.trackedPointers.set(event.pointerId, newElement);\n this.mapTouchEventId(event.pointerId);\n\n this.cachedAverages = {\n x: this.getLastAvgX(),\n y: this.getLastAvgY(),\n };\n }\n\n public removeFromTracker(pointerId: number): void {\n this.trackedPointers.delete(pointerId);\n this.removeMappedTouchId(pointerId);\n }\n\n public track(event: AdaptedEvent): void {\n const element: TrackerElement = this.trackedPointers.get(\n event.pointerId\n ) as TrackerElement;\n\n if (!element) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n\n const dx = event.x - element.lastX;\n const dy = event.y - element.lastY;\n const dt = event.time - element.timeStamp;\n\n element.velocityX = (dx / dt) * 1000 * VELOCITY_FACTOR;\n element.velocityY = (dy / dt) * 1000 * VELOCITY_FACTOR;\n\n element.lastX = event.x;\n element.lastY = event.y;\n\n this.trackedPointers.set(event.pointerId, element);\n\n const avgX: number = this.getLastAvgX();\n const avgY: number = this.getLastAvgY();\n\n this.cachedAverages = {\n x: avgX,\n y: avgY,\n };\n }\n\n //Mapping TouchEvents ID\n private mapTouchEventId(id: number): void {\n for (const [mappedId, touchId] of this.touchEventsIds) {\n if (isNaN(touchId)) {\n this.touchEventsIds.set(mappedId, id);\n break;\n }\n }\n }\n\n private removeMappedTouchId(id: number): void {\n const mappedId: number = this.getMappedTouchEventId(id);\n if (!isNaN(mappedId)) {\n this.touchEventsIds.set(mappedId, NaN);\n }\n }\n\n public getMappedTouchEventId(touchEventId: number): number {\n for (const [key, value] of this.touchEventsIds.entries()) {\n if (value === touchEventId) {\n return key;\n }\n }\n\n return NaN;\n }\n\n public getVelocityX(pointerId: number): number {\n return this.trackedPointers.get(pointerId)?.velocityX as number;\n }\n public getVelocityY(pointerId: number): number {\n return this.trackedPointers.get(pointerId)?.velocityY as number;\n }\n\n /**\n * Returns X coordinate of last moved pointer\n */\n public getLastX(): number;\n\n /**\n *\n * @param pointerId\n * Returns X coordinate of given pointer\n */\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n public getLastX(pointerId: number): number;\n\n public getLastX(pointerId?: number): number {\n if (pointerId !== undefined) {\n return this.trackedPointers.get(pointerId)?.lastX as number;\n } else {\n return this.trackedPointers.get(this.lastMovedPointerId)?.lastX as number;\n }\n }\n\n /**\n * Returns Y coordinate of last moved pointer\n */\n public getLastY(): number;\n\n /**\n *\n * @param pointerId\n * Returns Y coordinate of given pointer\n */\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n public getLastY(pointerId: number): number;\n\n public getLastY(pointerId?: number): number {\n if (pointerId !== undefined) {\n return this.trackedPointers.get(pointerId)?.lastY as number;\n } else {\n return this.trackedPointers.get(this.lastMovedPointerId)?.lastY as number;\n }\n }\n\n // Some handlers use these methods to send average values in native event.\n // This may happen when pointers have already been removed from tracker (i.e. pointerup event).\n // In situation when NaN would be sent as a response, we return cached value.\n // That prevents handlers from crashing\n public getLastAvgX(): number {\n const avgX: number = this.getSumX() / this.trackedPointers.size;\n return isNaN(avgX) ? this.cachedAverages.x : avgX;\n }\n public getLastAvgY(): number {\n const avgY: number = this.getSumY() / this.trackedPointers.size;\n return isNaN(avgY) ? this.cachedAverages.y : avgY;\n }\n public getSumX(ignoredPointer?: number): number {\n let sumX = 0;\n\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sumX += value.lastX;\n }\n });\n\n return sumX;\n }\n public getSumY(ignoredPointer?: number): number {\n let sumY = 0;\n\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sumY += value.lastY;\n }\n });\n\n return sumY;\n }\n public getTrackedPointersCount(): number {\n return this.trackedPointers.size;\n }\n public getTrackedPointersID(): number[] {\n const keys: number[] = [];\n\n this.trackedPointers.forEach((_value, key) => {\n keys.push(key);\n });\n\n return keys;\n }\n\n public getData(): Map<number, TrackerElement> {\n return this.trackedPointers;\n }\n\n public resetTracker(): void {\n this.trackedPointers.clear();\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n public static shareCommonPointers(\n stPointers: number[],\n ndPointers: number[]\n ): boolean {\n return stPointers.some((pointerId) => ndPointers.includes(pointerId));\n }\n}\n"]},"metadata":{},"sourceType":"module","externalDependencies":[]}