react-native-gesture-handler 2.18.0 → 2.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. package/README.md +1 -0
  2. package/android/build.gradle +4 -17
  3. package/android/src/main/AndroidManifest.xml +1 -3
  4. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +21 -21
  5. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +2 -2
  6. package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +5 -0
  7. package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +80 -4
  8. package/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt +2 -1
  9. package/android/src/main/java/com/swmansion/gesturehandler/core/ScaleGestureDetector.java +10 -0
  10. package/android/src/main/java/com/swmansion/gesturehandler/core/Vector.kt +2 -2
  11. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +3 -0
  12. package/android/src/main/jni/cpp-adapter.cpp +2 -4
  13. package/apple/Handlers/RNFlingHandler.h +1 -0
  14. package/apple/Handlers/RNFlingHandler.m +153 -19
  15. package/apple/Handlers/RNHoverHandler.m +44 -2
  16. package/apple/Handlers/RNLongPressHandler.m +109 -20
  17. package/apple/Handlers/RNManualHandler.m +53 -29
  18. package/apple/Handlers/RNNativeViewHandler.mm +22 -15
  19. package/apple/RNGHUIKit.h +2 -0
  20. package/apple/RNGHVector.h +31 -0
  21. package/apple/RNGHVector.m +67 -0
  22. package/apple/RNGestureHandler.h +7 -0
  23. package/apple/{RNGestureHandler.m → RNGestureHandler.mm} +63 -1
  24. package/apple/RNGestureHandlerButtonComponentView.mm +6 -0
  25. package/apple/RNGestureHandlerDirection.h +25 -0
  26. package/apple/RNGestureHandlerModule.mm +2 -4
  27. package/lib/commonjs/PointerType.js +2 -1
  28. package/lib/commonjs/PointerType.js.map +1 -1
  29. package/lib/commonjs/components/Pressable/Pressable.js +67 -70
  30. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  31. package/lib/commonjs/components/Pressable/index.js +0 -8
  32. package/lib/commonjs/components/Pressable/index.js.map +1 -1
  33. package/lib/commonjs/components/ReanimatedSwipeable.js +60 -41
  34. package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -1
  35. package/lib/commonjs/components/Swipeable.js +5 -0
  36. package/lib/commonjs/components/Swipeable.js.map +1 -1
  37. package/lib/commonjs/handlers/LongPressGestureHandler.js +1 -1
  38. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  39. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +1 -1
  40. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
  41. package/lib/commonjs/handlers/gestures/longPressGesture.js +10 -0
  42. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  43. package/lib/commonjs/mocks.js +16 -3
  44. package/lib/commonjs/mocks.js.map +1 -1
  45. package/lib/commonjs/utils.js +4 -0
  46. package/lib/commonjs/utils.js.map +1 -1
  47. package/lib/commonjs/web/constants.js +3 -3
  48. package/lib/commonjs/web/constants.js.map +1 -1
  49. package/lib/commonjs/web/handlers/GestureHandler.js +1 -0
  50. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  51. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +43 -9
  52. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  53. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +14 -3
  54. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  55. package/lib/commonjs/web/handlers/PanGestureHandler.js +4 -0
  56. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  57. package/lib/commonjs/web/interfaces.js.map +1 -1
  58. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +55 -8
  59. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  60. package/lib/commonjs/web/tools/KeyboardEventManager.js +110 -0
  61. package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -0
  62. package/lib/commonjs/web/tools/Vector.js +4 -2
  63. package/lib/commonjs/web/tools/Vector.js.map +1 -1
  64. package/lib/commonjs/web/utils.js +14 -13
  65. package/lib/commonjs/web/utils.js.map +1 -1
  66. package/lib/module/PointerType.js +2 -1
  67. package/lib/module/PointerType.js.map +1 -1
  68. package/lib/module/components/Pressable/Pressable.js +66 -70
  69. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  70. package/lib/module/components/Pressable/index.js +0 -1
  71. package/lib/module/components/Pressable/index.js.map +1 -1
  72. package/lib/module/components/ReanimatedSwipeable.js +58 -37
  73. package/lib/module/components/ReanimatedSwipeable.js.map +1 -1
  74. package/lib/module/components/Swipeable.js +6 -0
  75. package/lib/module/components/Swipeable.js.map +1 -1
  76. package/lib/module/handlers/LongPressGestureHandler.js +1 -1
  77. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  78. package/lib/module/handlers/gestures/GestureDetector/utils.js +2 -2
  79. package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
  80. package/lib/module/handlers/gestures/longPressGesture.js +10 -0
  81. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  82. package/lib/module/mocks.js +13 -3
  83. package/lib/module/mocks.js.map +1 -1
  84. package/lib/module/utils.js +1 -0
  85. package/lib/module/utils.js.map +1 -1
  86. package/lib/module/web/constants.js +1 -1
  87. package/lib/module/web/constants.js.map +1 -1
  88. package/lib/module/web/handlers/GestureHandler.js +1 -0
  89. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  90. package/lib/module/web/handlers/LongPressGestureHandler.js +43 -9
  91. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  92. package/lib/module/web/handlers/NativeViewGestureHandler.js +14 -3
  93. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  94. package/lib/module/web/handlers/PanGestureHandler.js +4 -0
  95. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  96. package/lib/module/web/interfaces.js.map +1 -1
  97. package/lib/module/web/tools/GestureHandlerWebDelegate.js +54 -8
  98. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  99. package/lib/module/web/tools/KeyboardEventManager.js +96 -0
  100. package/lib/module/web/tools/KeyboardEventManager.js.map +1 -0
  101. package/lib/module/web/tools/Vector.js +5 -3
  102. package/lib/module/web/tools/Vector.js.map +1 -1
  103. package/lib/module/web/utils.js +14 -13
  104. package/lib/module/web/utils.js.map +1 -1
  105. package/lib/typescript/PointerType.d.ts +2 -1
  106. package/lib/typescript/components/Pressable/index.d.ts +1 -1
  107. package/lib/typescript/components/Swipeable.d.ts +5 -0
  108. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +5 -1
  109. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +5 -0
  110. package/lib/typescript/mocks.d.ts +4 -3
  111. package/lib/typescript/utils.d.ts +1 -0
  112. package/lib/typescript/web/constants.d.ts +1 -1
  113. package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -1
  114. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +3 -0
  115. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
  116. package/lib/typescript/web/interfaces.d.ts +1 -1
  117. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +1 -0
  118. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +6 -0
  119. package/lib/typescript/web/tools/KeyboardEventManager.d.ts +13 -0
  120. package/package.json +3 -3
  121. package/src/PointerType.ts +1 -0
  122. package/src/components/Pressable/Pressable.tsx +70 -50
  123. package/src/components/Pressable/index.ts +1 -1
  124. package/src/components/ReanimatedSwipeable.tsx +70 -47
  125. package/src/components/Swipeable.tsx +6 -0
  126. package/src/handlers/LongPressGestureHandler.ts +6 -0
  127. package/src/handlers/gestures/GestureDetector/utils.ts +2 -2
  128. package/src/handlers/gestures/longPressGesture.ts +9 -0
  129. package/src/{mocks.ts → mocks.tsx} +8 -3
  130. package/src/utils.ts +2 -0
  131. package/src/web/constants.ts +1 -1
  132. package/src/web/handlers/GestureHandler.ts +3 -1
  133. package/src/web/handlers/LongPressGestureHandler.ts +49 -10
  134. package/src/web/handlers/NativeViewGestureHandler.ts +14 -4
  135. package/src/web/handlers/PanGestureHandler.ts +4 -0
  136. package/src/web/interfaces.ts +1 -1
  137. package/src/web/tools/GestureHandlerDelegate.ts +1 -0
  138. package/src/web/tools/GestureHandlerWebDelegate.ts +67 -8
  139. package/src/web/tools/KeyboardEventManager.ts +91 -0
  140. package/src/web/tools/Vector.ts +4 -3
  141. package/src/web/utils.ts +15 -13
@@ -1 +1 @@
1
- {"version":3,"sources":["interfaces.ts"],"names":["EventTypes","TouchEventType"],"mappings":";;;;;;IAqJYA,U;;;WAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,0BAAAA,U;;IAWAC,c;;;WAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;GAAAA,c,8BAAAA,c","sourcesContent":["import {\n UserSelect,\n ActiveCursor,\n MouseButton,\n TouchAction,\n} from '../handlers/gestureHandlerCommon';\nimport { Directions } from '../Directions';\nimport { State } from '../State';\nimport { PointerType } from '../PointerType';\n\nexport interface HitSlop {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n horizontal?: number;\n vertical?: number;\n width?: number;\n height?: number;\n}\n\nexport interface Handler {\n handlerTag: number;\n}\n\ntype ConfigArgs =\n | number\n | boolean\n | HitSlop\n | UserSelect\n | TouchAction\n | ActiveCursor\n | Directions\n | Handler[]\n | null\n | undefined;\n\nexport interface Config extends Record<string, ConfigArgs> {\n enabled?: boolean;\n simultaneousHandlers?: Handler[] | null;\n waitFor?: Handler[] | null;\n blocksHandlers?: Handler[] | null;\n hitSlop?: HitSlop;\n shouldCancelWhenOutside?: boolean;\n userSelect?: UserSelect;\n activeCursor?: ActiveCursor;\n mouseButton?: MouseButton;\n enableContextMenu?: boolean;\n touchAction?: TouchAction;\n manualActivation?: boolean;\n\n activateAfterLongPress?: number;\n failOffsetXStart?: number;\n failOffsetYStart?: number;\n failOffsetXEnd?: number;\n failOffsetYEnd?: number;\n activeOffsetXStart?: number;\n activeOffsetXEnd?: number;\n activeOffsetYStart?: number;\n activeOffsetYEnd?: number;\n minPointers?: number;\n maxPointers?: number;\n minDist?: number;\n minDistSq?: number;\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n minVelocitySq?: number;\n maxDist?: number;\n maxDistSq?: number;\n numberOfPointers?: number;\n minDurationMs?: number;\n numberOfTaps?: number;\n maxDurationMs?: number;\n maxDelayMs?: number;\n maxDeltaX?: number;\n maxDeltaY?: number;\n shouldActivateOnStart?: boolean;\n disallowInterruption?: boolean;\n direction?: Directions;\n}\n\ntype NativeEventArgs = number | State | boolean | undefined;\ninterface NativeEvent extends Record<string, NativeEventArgs> {\n numberOfPointers: number;\n state: State;\n pointerInside: boolean | undefined;\n handlerTag: number;\n target: number;\n oldState?: State;\n pointerType: PointerType;\n}\n\nexport interface Point {\n x: number;\n y: number;\n}\n\nexport interface PointerData {\n id: number;\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n}\n\ntype TouchNativeArgs = number | State | TouchEventType | PointerData[];\n\ninterface NativeTouchEvent extends Record<string, TouchNativeArgs> {\n handlerTag: number;\n state: State;\n eventType: TouchEventType;\n changedTouches: PointerData[];\n allTouches: PointerData[];\n numberOfTouches: number;\n pointerType: PointerType;\n}\n\nexport interface ResultEvent extends Record<string, NativeEvent | number> {\n nativeEvent: NativeEvent;\n timeStamp: number;\n}\n\nexport interface ResultTouchEvent\n extends Record<string, NativeTouchEvent | number> {\n nativeEvent: NativeTouchEvent;\n timeStamp: number;\n}\n\nexport interface PropsRef {\n onGestureHandlerEvent: () => void;\n onGestureHandlerStateChange: () => void;\n}\n\nexport interface AdaptedEvent {\n x: number;\n y: number;\n offsetX: number;\n offsetY: number;\n pointerId: number;\n eventType: EventTypes;\n pointerType: PointerType;\n time: number;\n button?: MouseButton;\n allTouches?: TouchList;\n changedTouches?: TouchList;\n touchEventType?: TouchEventType;\n}\n\nexport enum EventTypes {\n DOWN,\n ADDITIONAL_POINTER_DOWN,\n UP,\n ADDITIONAL_POINTER_UP,\n MOVE,\n ENTER,\n LEAVE,\n CANCEL,\n}\n\nexport enum TouchEventType {\n UNDETERMINED,\n DOWN,\n MOVE,\n UP,\n CANCELLED,\n}\n"]}
1
+ {"version":3,"sources":["interfaces.ts"],"names":["EventTypes","TouchEventType"],"mappings":";;;;;;IAqJYA,U;;;WAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,0BAAAA,U;;IAWAC,c;;;WAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;GAAAA,c,8BAAAA,c","sourcesContent":["import {\n UserSelect,\n ActiveCursor,\n MouseButton,\n TouchAction,\n} from '../handlers/gestureHandlerCommon';\nimport { Directions } from '../Directions';\nimport { State } from '../State';\nimport { PointerType } from '../PointerType';\n\nexport interface HitSlop {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n horizontal?: number;\n vertical?: number;\n width?: number;\n height?: number;\n}\n\nexport interface Handler {\n handlerTag: number;\n}\n\ntype ConfigArgs =\n | number\n | boolean\n | HitSlop\n | UserSelect\n | TouchAction\n | ActiveCursor\n | Directions\n | Handler[]\n | null\n | undefined;\n\nexport interface Config extends Record<string, ConfigArgs> {\n enabled: boolean;\n simultaneousHandlers?: Handler[] | null;\n waitFor?: Handler[] | null;\n blocksHandlers?: Handler[] | null;\n hitSlop?: HitSlop;\n shouldCancelWhenOutside?: boolean;\n userSelect?: UserSelect;\n activeCursor?: ActiveCursor;\n mouseButton?: MouseButton;\n enableContextMenu?: boolean;\n touchAction?: TouchAction;\n manualActivation?: boolean;\n\n activateAfterLongPress?: number;\n failOffsetXStart?: number;\n failOffsetYStart?: number;\n failOffsetXEnd?: number;\n failOffsetYEnd?: number;\n activeOffsetXStart?: number;\n activeOffsetXEnd?: number;\n activeOffsetYStart?: number;\n activeOffsetYEnd?: number;\n minPointers?: number;\n maxPointers?: number;\n minDist?: number;\n minDistSq?: number;\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n minVelocitySq?: number;\n maxDist?: number;\n maxDistSq?: number;\n numberOfPointers?: number;\n minDurationMs?: number;\n numberOfTaps?: number;\n maxDurationMs?: number;\n maxDelayMs?: number;\n maxDeltaX?: number;\n maxDeltaY?: number;\n shouldActivateOnStart?: boolean;\n disallowInterruption?: boolean;\n direction?: Directions;\n}\n\ntype NativeEventArgs = number | State | boolean | undefined;\ninterface NativeEvent extends Record<string, NativeEventArgs> {\n numberOfPointers: number;\n state: State;\n pointerInside: boolean | undefined;\n handlerTag: number;\n target: number;\n oldState?: State;\n pointerType: PointerType;\n}\n\nexport interface Point {\n x: number;\n y: number;\n}\n\nexport interface PointerData {\n id: number;\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n}\n\ntype TouchNativeArgs = number | State | TouchEventType | PointerData[];\n\ninterface NativeTouchEvent extends Record<string, TouchNativeArgs> {\n handlerTag: number;\n state: State;\n eventType: TouchEventType;\n changedTouches: PointerData[];\n allTouches: PointerData[];\n numberOfTouches: number;\n pointerType: PointerType;\n}\n\nexport interface ResultEvent extends Record<string, NativeEvent | number> {\n nativeEvent: NativeEvent;\n timeStamp: number;\n}\n\nexport interface ResultTouchEvent\n extends Record<string, NativeTouchEvent | number> {\n nativeEvent: NativeTouchEvent;\n timeStamp: number;\n}\n\nexport interface PropsRef {\n onGestureHandlerEvent: () => void;\n onGestureHandlerStateChange: () => void;\n}\n\nexport interface AdaptedEvent {\n x: number;\n y: number;\n offsetX: number;\n offsetY: number;\n pointerId: number;\n eventType: EventTypes;\n pointerType: PointerType;\n time: number;\n button?: MouseButton;\n allTouches?: TouchList;\n changedTouches?: TouchList;\n touchEventType?: TouchEventType;\n}\n\nexport enum EventTypes {\n DOWN,\n ADDITIONAL_POINTER_DOWN,\n UP,\n ADDITIONAL_POINTER_UP,\n MOVE,\n ENTER,\n LEAVE,\n CANCEL,\n}\n\nexport enum TouchEventType {\n UNDETERMINED,\n DOWN,\n MOVE,\n UP,\n CANCELLED,\n}\n"]}
@@ -17,17 +17,26 @@ var _utils = require("../utils");
17
17
 
18
18
  var _gestureHandlerCommon = require("../../handlers/gestureHandlerCommon");
19
19
 
20
+ var _KeyboardEventManager = _interopRequireDefault(require("./KeyboardEventManager"));
21
+
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
23
 
22
24
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
25
 
24
26
  class GestureHandlerWebDelegate {
25
27
  constructor() {
28
+ _defineProperty(this, "isInitialized", false);
29
+
26
30
  _defineProperty(this, "view", void 0);
27
31
 
28
32
  _defineProperty(this, "gestureHandler", void 0);
29
33
 
30
34
  _defineProperty(this, "eventManagers", []);
35
+
36
+ _defineProperty(this, "defaultViewStyles", {
37
+ userSelect: '',
38
+ touchAction: ''
39
+ });
31
40
  }
32
41
 
33
42
  getView() {
@@ -35,23 +44,24 @@ class GestureHandlerWebDelegate {
35
44
  }
36
45
 
37
46
  init(viewRef, handler) {
38
- var _config$userSelect, _config$userSelect2, _config$touchAction;
39
-
40
47
  if (!viewRef) {
41
48
  throw new Error(`Cannot find HTML Element for handler ${handler.getTag()}`);
42
49
  }
43
50
 
51
+ this.isInitialized = true;
44
52
  this.gestureHandler = handler;
45
53
  this.view = (0, _reactNative.findNodeHandle)(viewRef);
54
+ this.defaultViewStyles = {
55
+ userSelect: this.view.style.userSelect,
56
+ touchAction: this.view.style.touchAction
57
+ };
46
58
  const config = handler.getConfig();
47
- this.addContextMenuListeners(config);
48
- this.view.style['userSelect'] = (_config$userSelect = config.userSelect) !== null && _config$userSelect !== void 0 ? _config$userSelect : 'none';
49
- this.view.style['webkitUserSelect'] = (_config$userSelect2 = config.userSelect) !== null && _config$userSelect2 !== void 0 ? _config$userSelect2 : 'none';
50
- this.view.style['touchAction'] = (_config$touchAction = config.touchAction) !== null && _config$touchAction !== void 0 ? _config$touchAction : 'none'; // @ts-ignore This one disables default events on Safari
51
-
52
- this.view.style['WebkitTouchCallout'] = 'none';
59
+ this.setUserSelect(config.enabled);
60
+ this.setTouchAction(config.enabled);
61
+ this.setContextMenu(config.enabled);
53
62
  this.eventManagers.push(new _PointerEventManager.default(this.view));
54
63
  this.eventManagers.push(new _TouchEventManager.default(this.view));
64
+ this.eventManagers.push(new _KeyboardEventManager.default(this.view));
55
65
  this.eventManagers.forEach(manager => this.gestureHandler.attachEventManager(manager));
56
66
  }
57
67
 
@@ -115,6 +125,43 @@ class GestureHandlerWebDelegate {
115
125
  e.stopPropagation();
116
126
  }
117
127
 
128
+ setUserSelect(isHandlerEnabled) {
129
+ const {
130
+ userSelect
131
+ } = this.gestureHandler.getConfig();
132
+ this.view.style['userSelect'] = isHandlerEnabled ? userSelect !== null && userSelect !== void 0 ? userSelect : 'none' : this.defaultViewStyles.userSelect;
133
+ this.view.style['webkitUserSelect'] = isHandlerEnabled ? userSelect !== null && userSelect !== void 0 ? userSelect : 'none' : this.defaultViewStyles.userSelect;
134
+ }
135
+
136
+ setTouchAction(isHandlerEnabled) {
137
+ const {
138
+ touchAction
139
+ } = this.gestureHandler.getConfig();
140
+ this.view.style['touchAction'] = isHandlerEnabled ? touchAction !== null && touchAction !== void 0 ? touchAction : 'none' : this.defaultViewStyles.touchAction; // @ts-ignore This one disables default events on Safari
141
+
142
+ this.view.style['WebkitTouchCallout'] = isHandlerEnabled ? touchAction !== null && touchAction !== void 0 ? touchAction : 'none' : this.defaultViewStyles.touchAction;
143
+ }
144
+
145
+ setContextMenu(isHandlerEnabled) {
146
+ const config = this.gestureHandler.getConfig();
147
+
148
+ if (isHandlerEnabled) {
149
+ this.addContextMenuListeners(config);
150
+ } else {
151
+ this.removeContextMenuListeners(config);
152
+ }
153
+ }
154
+
155
+ onEnabledChange(enabled) {
156
+ if (!this.isInitialized) {
157
+ return;
158
+ }
159
+
160
+ this.setUserSelect(enabled);
161
+ this.setTouchAction(enabled);
162
+ this.setContextMenu(enabled);
163
+ }
164
+
118
165
  onBegin() {// no-op for now
119
166
  }
120
167
 
@@ -1 +1 @@
1
- {"version":3,"sources":["GestureHandlerWebDelegate.ts"],"names":["GestureHandlerWebDelegate","getView","view","init","viewRef","handler","Error","getTag","gestureHandler","config","getConfig","addContextMenuListeners","style","userSelect","touchAction","eventManagers","push","PointerEventManager","TouchEventManager","forEach","manager","attachEventManager","isPointerInBounds","x","y","measureView","rect","getBoundingClientRect","pageX","left","pageY","top","width","height","reset","resetManager","tryResetCursor","activeCursor","getState","State","ACTIVE","cursor","shouldDisableContextMenu","enableContextMenu","undefined","isButtonInConfig","MouseButton","RIGHT","addEventListener","disableContextMenu","removeContextMenuListeners","removeEventListener","e","preventDefault","stopPropagation","onBegin","onActivate","onEnd","onCancel","onFail","destroy","unregisterListeners"],"mappings":"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","sourcesContent":["import { findNodeHandle } from 'react-native';\nimport type IGestureHandler from '../handlers/IGestureHandler';\nimport {\n GestureHandlerDelegate,\n MeasureResult,\n} from './GestureHandlerDelegate';\nimport PointerEventManager from './PointerEventManager';\nimport TouchEventManager from './TouchEventManager';\nimport { State } from '../../State';\nimport { isPointerInBounds } from '../utils';\nimport EventManager from './EventManager';\nimport { Config } from '../interfaces';\nimport { MouseButton } from '../../handlers/gestureHandlerCommon';\n\nexport class GestureHandlerWebDelegate\n implements GestureHandlerDelegate<HTMLElement, IGestureHandler>\n{\n private view!: HTMLElement;\n private gestureHandler!: IGestureHandler;\n private eventManagers: EventManager<unknown>[] = [];\n\n getView(): HTMLElement {\n return this.view;\n }\n\n init(viewRef: number, handler: IGestureHandler): void {\n if (!viewRef) {\n throw new Error(\n `Cannot find HTML Element for handler ${handler.getTag()}`\n );\n }\n\n this.gestureHandler = handler;\n this.view = findNodeHandle(viewRef) as unknown as HTMLElement;\n\n const config = handler.getConfig();\n\n this.addContextMenuListeners(config);\n\n this.view.style['userSelect'] = config.userSelect ?? 'none';\n this.view.style['webkitUserSelect'] = config.userSelect ?? 'none';\n\n this.view.style['touchAction'] = config.touchAction ?? 'none';\n // @ts-ignore This one disables default events on Safari\n this.view.style['WebkitTouchCallout'] = 'none';\n\n this.eventManagers.push(new PointerEventManager(this.view));\n this.eventManagers.push(new TouchEventManager(this.view));\n\n this.eventManagers.forEach((manager) =>\n this.gestureHandler.attachEventManager(manager)\n );\n }\n\n isPointerInBounds({ x, y }: { x: number; y: number }): boolean {\n return isPointerInBounds(this.view, { x, y });\n }\n\n measureView(): MeasureResult {\n const rect = this.view.getBoundingClientRect();\n\n return {\n pageX: rect.left,\n pageY: rect.top,\n width: rect.width,\n height: rect.height,\n };\n }\n\n reset(): void {\n this.eventManagers.forEach((manager: EventManager<unknown>) =>\n manager.resetManager()\n );\n }\n\n tryResetCursor() {\n const config = this.gestureHandler.getConfig();\n\n if (\n config.activeCursor &&\n config.activeCursor !== 'auto' &&\n this.gestureHandler.getState() === State.ACTIVE\n ) {\n this.view.style.cursor = 'auto';\n }\n }\n\n private shouldDisableContextMenu(config: Config) {\n return (\n (config.enableContextMenu === undefined &&\n this.gestureHandler.isButtonInConfig(MouseButton.RIGHT)) ||\n config.enableContextMenu === false\n );\n }\n\n private addContextMenuListeners(config: Config): void {\n if (this.shouldDisableContextMenu(config)) {\n this.view.addEventListener('contextmenu', this.disableContextMenu);\n } else if (config.enableContextMenu) {\n this.view.addEventListener('contextmenu', this.enableContextMenu);\n }\n }\n\n private removeContextMenuListeners(config: Config): void {\n if (this.shouldDisableContextMenu(config)) {\n this.view.removeEventListener('contextmenu', this.disableContextMenu);\n } else if (config.enableContextMenu) {\n this.view.removeEventListener('contextmenu', this.enableContextMenu);\n }\n }\n\n private disableContextMenu(this: void, e: MouseEvent): void {\n e.preventDefault();\n }\n\n private enableContextMenu(this: void, e: MouseEvent): void {\n e.stopPropagation();\n }\n\n onBegin(): void {\n // no-op for now\n }\n\n onActivate(): void {\n const config = this.gestureHandler.getConfig();\n\n if (\n (!this.view.style.cursor || this.view.style.cursor === 'auto') &&\n config.activeCursor\n ) {\n this.view.style.cursor = config.activeCursor;\n }\n }\n\n onEnd(): void {\n this.tryResetCursor();\n }\n\n onCancel(): void {\n this.tryResetCursor();\n }\n\n onFail(): void {\n this.tryResetCursor();\n }\n\n public destroy(config: Config): void {\n this.removeContextMenuListeners(config);\n\n this.eventManagers.forEach((manager) => {\n manager.unregisterListeners();\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["GestureHandlerWebDelegate.ts"],"names":["GestureHandlerWebDelegate","userSelect","touchAction","getView","view","init","viewRef","handler","Error","getTag","isInitialized","gestureHandler","defaultViewStyles","style","config","getConfig","setUserSelect","enabled","setTouchAction","setContextMenu","eventManagers","push","PointerEventManager","TouchEventManager","KeyboardEventManager","forEach","manager","attachEventManager","isPointerInBounds","x","y","measureView","rect","getBoundingClientRect","pageX","left","pageY","top","width","height","reset","resetManager","tryResetCursor","activeCursor","getState","State","ACTIVE","cursor","shouldDisableContextMenu","enableContextMenu","undefined","isButtonInConfig","MouseButton","RIGHT","addContextMenuListeners","addEventListener","disableContextMenu","removeContextMenuListeners","removeEventListener","e","preventDefault","stopPropagation","isHandlerEnabled","onEnabledChange","onBegin","onActivate","onEnd","onCancel","onFail","destroy","unregisterListeners"],"mappings":"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","sourcesContent":["import { findNodeHandle } from 'react-native';\nimport type IGestureHandler from '../handlers/IGestureHandler';\nimport {\n GestureHandlerDelegate,\n MeasureResult,\n} from './GestureHandlerDelegate';\nimport PointerEventManager from './PointerEventManager';\nimport TouchEventManager from './TouchEventManager';\nimport { State } from '../../State';\nimport { isPointerInBounds } from '../utils';\nimport EventManager from './EventManager';\nimport { Config } from '../interfaces';\nimport { MouseButton } from '../../handlers/gestureHandlerCommon';\nimport KeyboardEventManager from './KeyboardEventManager';\n\ninterface DefaultViewStyles {\n userSelect: string;\n touchAction: string;\n}\n\nexport class GestureHandlerWebDelegate\n implements GestureHandlerDelegate<HTMLElement, IGestureHandler>\n{\n private isInitialized = false;\n private view!: HTMLElement;\n private gestureHandler!: IGestureHandler;\n private eventManagers: EventManager<unknown>[] = [];\n private defaultViewStyles: DefaultViewStyles = {\n userSelect: '',\n touchAction: '',\n };\n\n getView(): HTMLElement {\n return this.view;\n }\n\n init(viewRef: number, handler: IGestureHandler): void {\n if (!viewRef) {\n throw new Error(\n `Cannot find HTML Element for handler ${handler.getTag()}`\n );\n }\n\n this.isInitialized = true;\n\n this.gestureHandler = handler;\n this.view = findNodeHandle(viewRef) as unknown as HTMLElement;\n\n this.defaultViewStyles = {\n userSelect: this.view.style.userSelect,\n touchAction: this.view.style.touchAction,\n };\n\n const config = handler.getConfig();\n\n this.setUserSelect(config.enabled);\n this.setTouchAction(config.enabled);\n this.setContextMenu(config.enabled);\n\n this.eventManagers.push(new PointerEventManager(this.view));\n this.eventManagers.push(new TouchEventManager(this.view));\n this.eventManagers.push(new KeyboardEventManager(this.view));\n\n this.eventManagers.forEach((manager) =>\n this.gestureHandler.attachEventManager(manager)\n );\n }\n\n isPointerInBounds({ x, y }: { x: number; y: number }): boolean {\n return isPointerInBounds(this.view, { x, y });\n }\n\n measureView(): MeasureResult {\n const rect = this.view.getBoundingClientRect();\n\n return {\n pageX: rect.left,\n pageY: rect.top,\n width: rect.width,\n height: rect.height,\n };\n }\n\n reset(): void {\n this.eventManagers.forEach((manager: EventManager<unknown>) =>\n manager.resetManager()\n );\n }\n\n tryResetCursor() {\n const config = this.gestureHandler.getConfig();\n\n if (\n config.activeCursor &&\n config.activeCursor !== 'auto' &&\n this.gestureHandler.getState() === State.ACTIVE\n ) {\n this.view.style.cursor = 'auto';\n }\n }\n\n private shouldDisableContextMenu(config: Config) {\n return (\n (config.enableContextMenu === undefined &&\n this.gestureHandler.isButtonInConfig(MouseButton.RIGHT)) ||\n config.enableContextMenu === false\n );\n }\n\n private addContextMenuListeners(config: Config): void {\n if (this.shouldDisableContextMenu(config)) {\n this.view.addEventListener('contextmenu', this.disableContextMenu);\n } else if (config.enableContextMenu) {\n this.view.addEventListener('contextmenu', this.enableContextMenu);\n }\n }\n\n private removeContextMenuListeners(config: Config): void {\n if (this.shouldDisableContextMenu(config)) {\n this.view.removeEventListener('contextmenu', this.disableContextMenu);\n } else if (config.enableContextMenu) {\n this.view.removeEventListener('contextmenu', this.enableContextMenu);\n }\n }\n\n private disableContextMenu(this: void, e: MouseEvent): void {\n e.preventDefault();\n }\n\n private enableContextMenu(this: void, e: MouseEvent): void {\n e.stopPropagation();\n }\n\n private setUserSelect(isHandlerEnabled: boolean) {\n const { userSelect } = this.gestureHandler.getConfig();\n\n this.view.style['userSelect'] = isHandlerEnabled\n ? userSelect ?? 'none'\n : this.defaultViewStyles.userSelect;\n\n this.view.style['webkitUserSelect'] = isHandlerEnabled\n ? userSelect ?? 'none'\n : this.defaultViewStyles.userSelect;\n }\n\n private setTouchAction(isHandlerEnabled: boolean) {\n const { touchAction } = this.gestureHandler.getConfig();\n\n this.view.style['touchAction'] = isHandlerEnabled\n ? touchAction ?? 'none'\n : this.defaultViewStyles.touchAction;\n\n // @ts-ignore This one disables default events on Safari\n this.view.style['WebkitTouchCallout'] = isHandlerEnabled\n ? touchAction ?? 'none'\n : this.defaultViewStyles.touchAction;\n }\n\n private setContextMenu(isHandlerEnabled: boolean) {\n const config = this.gestureHandler.getConfig();\n\n if (isHandlerEnabled) {\n this.addContextMenuListeners(config);\n } else {\n this.removeContextMenuListeners(config);\n }\n }\n\n onEnabledChange(enabled: boolean): void {\n if (!this.isInitialized) {\n return;\n }\n\n this.setUserSelect(enabled);\n this.setTouchAction(enabled);\n this.setContextMenu(enabled);\n }\n\n onBegin(): void {\n // no-op for now\n }\n\n onActivate(): void {\n const config = this.gestureHandler.getConfig();\n\n if (\n (!this.view.style.cursor || this.view.style.cursor === 'auto') &&\n config.activeCursor\n ) {\n this.view.style.cursor = config.activeCursor;\n }\n }\n\n onEnd(): void {\n this.tryResetCursor();\n }\n\n onCancel(): void {\n this.tryResetCursor();\n }\n\n onFail(): void {\n this.tryResetCursor();\n }\n\n public destroy(config: Config): void {\n this.removeContextMenuListeners(config);\n\n this.eventManagers.forEach((manager) => {\n manager.unregisterListeners();\n });\n }\n}\n"]}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _interfaces = require("../interfaces");
9
+
10
+ var _EventManager = _interopRequireDefault(require("./EventManager"));
11
+
12
+ var _PointerType = require("../../PointerType");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
18
+ class KeyboardEventManager extends _EventManager.default {
19
+ constructor(...args) {
20
+ super(...args);
21
+
22
+ _defineProperty(this, "activationKeys", ['Enter', ' ']);
23
+
24
+ _defineProperty(this, "cancelationKeys", ['Tab']);
25
+
26
+ _defineProperty(this, "isPressed", false);
27
+
28
+ _defineProperty(this, "keyDownCallback", event => {
29
+ if (this.cancelationKeys.indexOf(event.key) !== -1 && this.isPressed) {
30
+ this.dispatchEvent(event, _interfaces.EventTypes.CANCEL);
31
+ return;
32
+ }
33
+
34
+ if (this.activationKeys.indexOf(event.key) === -1) {
35
+ return;
36
+ }
37
+
38
+ this.dispatchEvent(event, _interfaces.EventTypes.DOWN);
39
+ });
40
+
41
+ _defineProperty(this, "keyUpCallback", event => {
42
+ if (this.activationKeys.indexOf(event.key) === -1 || !this.isPressed) {
43
+ return;
44
+ }
45
+
46
+ this.dispatchEvent(event, _interfaces.EventTypes.UP);
47
+ });
48
+ }
49
+
50
+ dispatchEvent(event, eventType) {
51
+ if (!(event.target instanceof HTMLElement)) {
52
+ return;
53
+ }
54
+
55
+ const adaptedEvent = this.mapEvent(event, eventType);
56
+
57
+ switch (eventType) {
58
+ case _interfaces.EventTypes.UP:
59
+ this.isPressed = false;
60
+ this.onPointerUp(adaptedEvent);
61
+ break;
62
+
63
+ case _interfaces.EventTypes.DOWN:
64
+ this.isPressed = true;
65
+ this.onPointerDown(adaptedEvent);
66
+ break;
67
+
68
+ case _interfaces.EventTypes.CANCEL:
69
+ this.isPressed = false;
70
+ this.onPointerCancel(adaptedEvent);
71
+ break;
72
+ }
73
+ }
74
+
75
+ registerListeners() {
76
+ this.view.addEventListener('keydown', this.keyDownCallback);
77
+ this.view.addEventListener('keyup', this.keyUpCallback);
78
+ }
79
+
80
+ unregisterListeners() {
81
+ this.view.addEventListener('keydown', this.keyDownCallback);
82
+ this.view.addEventListener('keyup', this.keyUpCallback);
83
+ }
84
+
85
+ mapEvent(event, eventType) {
86
+ const viewRect = event.target.getBoundingClientRect();
87
+ const viewportPosition = {
88
+ x: (viewRect === null || viewRect === void 0 ? void 0 : viewRect.x) + (viewRect === null || viewRect === void 0 ? void 0 : viewRect.width) / 2,
89
+ y: (viewRect === null || viewRect === void 0 ? void 0 : viewRect.y) + (viewRect === null || viewRect === void 0 ? void 0 : viewRect.height) / 2
90
+ };
91
+ const relativePosition = {
92
+ x: (viewRect === null || viewRect === void 0 ? void 0 : viewRect.width) / 2,
93
+ y: (viewRect === null || viewRect === void 0 ? void 0 : viewRect.height) / 2
94
+ };
95
+ return {
96
+ x: viewportPosition.x,
97
+ y: viewportPosition.y,
98
+ offsetX: relativePosition.x,
99
+ offsetY: relativePosition.y,
100
+ pointerId: 0,
101
+ eventType: eventType,
102
+ pointerType: _PointerType.PointerType.KEY,
103
+ time: event.timeStamp
104
+ };
105
+ }
106
+
107
+ }
108
+
109
+ exports.default = KeyboardEventManager;
110
+ //# sourceMappingURL=KeyboardEventManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["KeyboardEventManager.ts"],"names":["KeyboardEventManager","EventManager","event","cancelationKeys","indexOf","key","isPressed","dispatchEvent","EventTypes","CANCEL","activationKeys","DOWN","UP","eventType","target","HTMLElement","adaptedEvent","mapEvent","onPointerUp","onPointerDown","onPointerCancel","registerListeners","view","addEventListener","keyDownCallback","keyUpCallback","unregisterListeners","viewRect","getBoundingClientRect","viewportPosition","x","width","y","height","relativePosition","offsetX","offsetY","pointerId","pointerType","PointerType","KEY","time","timeStamp"],"mappings":"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","sourcesContent":["import { AdaptedEvent, EventTypes } from '../interfaces';\nimport EventManager from './EventManager';\nimport { PointerType } from '../../PointerType';\n\nexport default class KeyboardEventManager extends EventManager<HTMLElement> {\n private activationKeys = ['Enter', ' '];\n private cancelationKeys = ['Tab'];\n private isPressed = false;\n\n private keyDownCallback = (event: KeyboardEvent): void => {\n if (this.cancelationKeys.indexOf(event.key) !== -1 && this.isPressed) {\n this.dispatchEvent(event, EventTypes.CANCEL);\n return;\n }\n\n if (this.activationKeys.indexOf(event.key) === -1) {\n return;\n }\n\n this.dispatchEvent(event, EventTypes.DOWN);\n };\n\n private keyUpCallback = (event: KeyboardEvent): void => {\n if (this.activationKeys.indexOf(event.key) === -1 || !this.isPressed) {\n return;\n }\n\n this.dispatchEvent(event, EventTypes.UP);\n };\n\n private dispatchEvent(event: KeyboardEvent, eventType: EventTypes) {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const adaptedEvent = this.mapEvent(event, eventType);\n\n switch (eventType) {\n case EventTypes.UP:\n this.isPressed = false;\n this.onPointerUp(adaptedEvent);\n break;\n case EventTypes.DOWN:\n this.isPressed = true;\n this.onPointerDown(adaptedEvent);\n break;\n case EventTypes.CANCEL:\n this.isPressed = false;\n this.onPointerCancel(adaptedEvent);\n break;\n }\n }\n\n public registerListeners(): void {\n this.view.addEventListener('keydown', this.keyDownCallback);\n this.view.addEventListener('keyup', this.keyUpCallback);\n }\n\n public unregisterListeners(): void {\n this.view.addEventListener('keydown', this.keyDownCallback);\n this.view.addEventListener('keyup', this.keyUpCallback);\n }\n\n protected mapEvent(\n event: KeyboardEvent,\n eventType: EventTypes\n ): AdaptedEvent {\n const viewRect = (event.target as HTMLElement).getBoundingClientRect();\n\n const viewportPosition = {\n x: viewRect?.x + viewRect?.width / 2,\n y: viewRect?.y + viewRect?.height / 2,\n };\n\n const relativePosition = {\n x: viewRect?.width / 2,\n y: viewRect?.height / 2,\n };\n\n return {\n x: viewportPosition.x,\n y: viewportPosition.y,\n offsetX: relativePosition.x,\n offsetY: relativePosition.y,\n pointerId: 0,\n eventType: eventType,\n pointerType: PointerType.KEY,\n time: event.timeStamp,\n };\n }\n}\n"]}
@@ -26,13 +26,15 @@ class Vector {
26
26
  this.x = x;
27
27
  this.y = y;
28
28
  this._magnitude = Math.hypot(this.x, this.y);
29
- const isMagnitudeSufficient = this._magnitude > _constants.MINIMAL_FLING_VELOCITY;
29
+ const isMagnitudeSufficient = this._magnitude > _constants.MINIMAL_RECOGNIZABLE_MAGNITUDE;
30
30
  this.unitX = isMagnitudeSufficient ? this.x / this._magnitude : 0;
31
31
  this.unitY = isMagnitudeSufficient ? this.y / this._magnitude : 0;
32
32
  }
33
33
 
34
34
  static fromDirection(direction) {
35
- return DirectionToVectorMappings.get(direction);
35
+ var _DirectionToVectorMap;
36
+
37
+ return (_DirectionToVectorMap = DirectionToVectorMappings.get(direction)) !== null && _DirectionToVectorMap !== void 0 ? _DirectionToVectorMap : new Vector(0, 0);
36
38
  }
37
39
 
38
40
  static fromVelocity(tracker, pointerId) {
@@ -1 +1 @@
1
- {"version":3,"sources":["Vector.ts"],"names":["Vector","constructor","x","y","_magnitude","Math","hypot","isMagnitudeSufficient","MINIMAL_FLING_VELOCITY","unitX","unitY","fromDirection","direction","DirectionToVectorMappings","get","fromVelocity","tracker","pointerId","velocity","getVelocity","magnitude","computeSimilarity","vector","isSimilar","threshold","Map","Directions","LEFT","RIGHT","UP","DOWN","DiagonalDirections","UP_RIGHT","DOWN_RIGHT","UP_LEFT","DOWN_LEFT"],"mappings":";;;;;;;AAAA;;AACA;;;;AAGe,MAAMA,MAAN,CAAa;AAO1BC,EAAAA,WAAW,CAACC,CAAD,EAAYC,CAAZ,EAAuB;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAChC,SAAKD,CAAL,GAASA,CAAT;AACA,SAAKC,CAAL,GAASA,CAAT;AAEA,SAAKC,UAAL,GAAkBC,IAAI,CAACC,KAAL,CAAW,KAAKJ,CAAhB,EAAmB,KAAKC,CAAxB,CAAlB;AACA,UAAMI,qBAAqB,GAAG,KAAKH,UAAL,GAAkBI,iCAAhD;AAEA,SAAKC,KAAL,GAAaF,qBAAqB,GAAG,KAAKL,CAAL,GAAS,KAAKE,UAAjB,GAA8B,CAAhE;AACA,SAAKM,KAAL,GAAaH,qBAAqB,GAAG,KAAKJ,CAAL,GAAS,KAAKC,UAAjB,GAA8B,CAAhE;AACD;;AAEmB,SAAbO,aAAa,CAACC,SAAD,EAAqD;AACvE,WAAOC,yBAAyB,CAACC,GAA1B,CAA8BF,SAA9B,CAAP;AACD;;AAEkB,SAAZG,YAAY,CAACC,OAAD,EAA0BC,SAA1B,EAA6C;AAC9D,UAAMC,QAAQ,GAAGF,OAAO,CAACG,WAAR,CAAoBF,SAApB,CAAjB;AACA,WAAO,IAAIjB,MAAJ,CAAWkB,QAAQ,CAAChB,CAApB,EAAuBgB,QAAQ,CAACf,CAAhC,CAAP;AACD;;AAEY,MAATiB,SAAS,GAAG;AACd,WAAO,KAAKhB,UAAZ;AACD;;AAEDiB,EAAAA,iBAAiB,CAACC,MAAD,EAAiB;AAChC,WAAO,KAAKb,KAAL,GAAaa,MAAM,CAACb,KAApB,GAA4B,KAAKC,KAAL,GAAaY,MAAM,CAACZ,KAAvD;AACD;;AAEDa,EAAAA,SAAS,CAACD,MAAD,EAAiBE,SAAjB,EAAoC;AAC3C,WAAO,KAAKH,iBAAL,CAAuBC,MAAvB,IAAiCE,SAAxC;AACD;;AArCyB;;;AAwC5B,MAAMX,yBAAyB,GAAG,IAAIY,GAAJ,CAGhC,CACA,CAACC,uBAAWC,IAAZ,EAAkB,IAAI3B,MAAJ,CAAW,CAAC,CAAZ,EAAe,CAAf,CAAlB,CADA,EAEA,CAAC0B,uBAAWE,KAAZ,EAAmB,IAAI5B,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAnB,CAFA,EAGA,CAAC0B,uBAAWG,EAAZ,EAAgB,IAAI7B,MAAJ,CAAW,CAAX,EAAc,CAAC,CAAf,CAAhB,CAHA,EAIA,CAAC0B,uBAAWI,IAAZ,EAAkB,IAAI9B,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAlB,CAJA,EAMA,CAAC+B,+BAAmBC,QAApB,EAA8B,IAAIhC,MAAJ,CAAW,CAAX,EAAc,CAAC,CAAf,CAA9B,CANA,EAOA,CAAC+B,+BAAmBE,UAApB,EAAgC,IAAIjC,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAhC,CAPA,EAQA,CAAC+B,+BAAmBG,OAApB,EAA6B,IAAIlC,MAAJ,CAAW,CAAC,CAAZ,EAAe,CAAC,CAAhB,CAA7B,CARA,EASA,CAAC+B,+BAAmBI,SAApB,EAA+B,IAAInC,MAAJ,CAAW,CAAC,CAAZ,EAAe,CAAf,CAA/B,CATA,CAHgC,CAAlC","sourcesContent":["import { DiagonalDirections, Directions } from '../../Directions';\nimport { MINIMAL_FLING_VELOCITY } from '../constants';\nimport PointerTracker from './PointerTracker';\n\nexport default class Vector {\n private readonly x;\n private readonly y;\n private readonly unitX;\n private readonly unitY;\n private readonly _magnitude;\n\n constructor(x: number, y: number) {\n this.x = x;\n this.y = y;\n\n this._magnitude = Math.hypot(this.x, this.y);\n const isMagnitudeSufficient = this._magnitude > MINIMAL_FLING_VELOCITY;\n\n this.unitX = isMagnitudeSufficient ? this.x / this._magnitude : 0;\n this.unitY = isMagnitudeSufficient ? this.y / this._magnitude : 0;\n }\n\n static fromDirection(direction: Directions | DiagonalDirections): Vector {\n return DirectionToVectorMappings.get(direction)!;\n }\n\n static fromVelocity(tracker: PointerTracker, pointerId: number) {\n const velocity = tracker.getVelocity(pointerId);\n return new Vector(velocity.x, velocity.y);\n }\n\n get magnitude() {\n return this._magnitude;\n }\n\n computeSimilarity(vector: Vector) {\n return this.unitX * vector.unitX + this.unitY * vector.unitY;\n }\n\n isSimilar(vector: Vector, threshold: number) {\n return this.computeSimilarity(vector) > threshold;\n }\n}\n\nconst DirectionToVectorMappings = new Map<\n Directions | DiagonalDirections,\n Vector\n>([\n [Directions.LEFT, new Vector(-1, 0)],\n [Directions.RIGHT, new Vector(1, 0)],\n [Directions.UP, new Vector(0, -1)],\n [Directions.DOWN, new Vector(0, 1)],\n\n [DiagonalDirections.UP_RIGHT, new Vector(1, -1)],\n [DiagonalDirections.DOWN_RIGHT, new Vector(1, 1)],\n [DiagonalDirections.UP_LEFT, new Vector(-1, -1)],\n [DiagonalDirections.DOWN_LEFT, new Vector(-1, 1)],\n]);\n"]}
1
+ {"version":3,"sources":["Vector.ts"],"names":["Vector","constructor","x","y","_magnitude","Math","hypot","isMagnitudeSufficient","MINIMAL_RECOGNIZABLE_MAGNITUDE","unitX","unitY","fromDirection","direction","DirectionToVectorMappings","get","fromVelocity","tracker","pointerId","velocity","getVelocity","magnitude","computeSimilarity","vector","isSimilar","threshold","Map","Directions","LEFT","RIGHT","UP","DOWN","DiagonalDirections","UP_RIGHT","DOWN_RIGHT","UP_LEFT","DOWN_LEFT"],"mappings":";;;;;;;AAAA;;AACA;;;;AAGe,MAAMA,MAAN,CAAa;AAO1BC,EAAAA,WAAW,CAACC,CAAD,EAAYC,CAAZ,EAAuB;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAChC,SAAKD,CAAL,GAASA,CAAT;AACA,SAAKC,CAAL,GAASA,CAAT;AAEA,SAAKC,UAAL,GAAkBC,IAAI,CAACC,KAAL,CAAW,KAAKJ,CAAhB,EAAmB,KAAKC,CAAxB,CAAlB;AACA,UAAMI,qBAAqB,GACzB,KAAKH,UAAL,GAAkBI,yCADpB;AAGA,SAAKC,KAAL,GAAaF,qBAAqB,GAAG,KAAKL,CAAL,GAAS,KAAKE,UAAjB,GAA8B,CAAhE;AACA,SAAKM,KAAL,GAAaH,qBAAqB,GAAG,KAAKJ,CAAL,GAAS,KAAKC,UAAjB,GAA8B,CAAhE;AACD;;AAEmB,SAAbO,aAAa,CAACC,SAAD,EAAqD;AAAA;;AACvE,oCAAOC,yBAAyB,CAACC,GAA1B,CAA8BF,SAA9B,CAAP,yEAAmD,IAAIZ,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAnD;AACD;;AAEkB,SAAZe,YAAY,CAACC,OAAD,EAA0BC,SAA1B,EAA6C;AAC9D,UAAMC,QAAQ,GAAGF,OAAO,CAACG,WAAR,CAAoBF,SAApB,CAAjB;AACA,WAAO,IAAIjB,MAAJ,CAAWkB,QAAQ,CAAChB,CAApB,EAAuBgB,QAAQ,CAACf,CAAhC,CAAP;AACD;;AAEY,MAATiB,SAAS,GAAG;AACd,WAAO,KAAKhB,UAAZ;AACD;;AAEDiB,EAAAA,iBAAiB,CAACC,MAAD,EAAiB;AAChC,WAAO,KAAKb,KAAL,GAAaa,MAAM,CAACb,KAApB,GAA4B,KAAKC,KAAL,GAAaY,MAAM,CAACZ,KAAvD;AACD;;AAEDa,EAAAA,SAAS,CAACD,MAAD,EAAiBE,SAAjB,EAAoC;AAC3C,WAAO,KAAKH,iBAAL,CAAuBC,MAAvB,IAAiCE,SAAxC;AACD;;AAtCyB;;;AAyC5B,MAAMX,yBAAyB,GAAG,IAAIY,GAAJ,CAGhC,CACA,CAACC,uBAAWC,IAAZ,EAAkB,IAAI3B,MAAJ,CAAW,CAAC,CAAZ,EAAe,CAAf,CAAlB,CADA,EAEA,CAAC0B,uBAAWE,KAAZ,EAAmB,IAAI5B,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAnB,CAFA,EAGA,CAAC0B,uBAAWG,EAAZ,EAAgB,IAAI7B,MAAJ,CAAW,CAAX,EAAc,CAAC,CAAf,CAAhB,CAHA,EAIA,CAAC0B,uBAAWI,IAAZ,EAAkB,IAAI9B,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAlB,CAJA,EAMA,CAAC+B,+BAAmBC,QAApB,EAA8B,IAAIhC,MAAJ,CAAW,CAAX,EAAc,CAAC,CAAf,CAA9B,CANA,EAOA,CAAC+B,+BAAmBE,UAApB,EAAgC,IAAIjC,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAhC,CAPA,EAQA,CAAC+B,+BAAmBG,OAApB,EAA6B,IAAIlC,MAAJ,CAAW,CAAC,CAAZ,EAAe,CAAC,CAAhB,CAA7B,CARA,EASA,CAAC+B,+BAAmBI,SAApB,EAA+B,IAAInC,MAAJ,CAAW,CAAC,CAAZ,EAAe,CAAf,CAA/B,CATA,CAHgC,CAAlC","sourcesContent":["import { DiagonalDirections, Directions } from '../../Directions';\nimport { MINIMAL_RECOGNIZABLE_MAGNITUDE } from '../constants';\nimport PointerTracker from './PointerTracker';\n\nexport default class Vector {\n private readonly x;\n private readonly y;\n private readonly unitX;\n private readonly unitY;\n private readonly _magnitude;\n\n constructor(x: number, y: number) {\n this.x = x;\n this.y = y;\n\n this._magnitude = Math.hypot(this.x, this.y);\n const isMagnitudeSufficient =\n this._magnitude > MINIMAL_RECOGNIZABLE_MAGNITUDE;\n\n this.unitX = isMagnitudeSufficient ? this.x / this._magnitude : 0;\n this.unitY = isMagnitudeSufficient ? this.y / this._magnitude : 0;\n }\n\n static fromDirection(direction: Directions | DiagonalDirections): Vector {\n return DirectionToVectorMappings.get(direction) ?? new Vector(0, 0);\n }\n\n static fromVelocity(tracker: PointerTracker, pointerId: number) {\n const velocity = tracker.getVelocity(pointerId);\n return new Vector(velocity.x, velocity.y);\n }\n\n get magnitude() {\n return this._magnitude;\n }\n\n computeSimilarity(vector: Vector) {\n return this.unitX * vector.unitX + this.unitY * vector.unitY;\n }\n\n isSimilar(vector: Vector, threshold: number) {\n return this.computeSimilarity(vector) > threshold;\n }\n}\n\nconst DirectionToVectorMappings = new Map<\n Directions | DiagonalDirections,\n Vector\n>([\n [Directions.LEFT, new Vector(-1, 0)],\n [Directions.RIGHT, new Vector(1, 0)],\n [Directions.UP, new Vector(0, -1)],\n [Directions.DOWN, new Vector(0, 1)],\n\n [DiagonalDirections.UP_RIGHT, new Vector(1, -1)],\n [DiagonalDirections.DOWN_RIGHT, new Vector(1, 1)],\n [DiagonalDirections.UP_LEFT, new Vector(-1, -1)],\n [DiagonalDirections.DOWN_LEFT, new Vector(-1, 1)],\n]);\n"]}
@@ -35,26 +35,27 @@ function calculateViewScale(view) {
35
35
  const resultScales = {
36
36
  scaleX: 1,
37
37
  scaleY: 1
38
- };
39
- const scales = styles.scale.split(' ');
38
+ }; // Get scales from scale property
40
39
 
41
- if (scales[0] !== 'none') {
42
- resultScales.scaleX = parseFloat(scales[0]);
43
- }
40
+ if (styles.scale !== undefined && styles.scale !== 'none') {
41
+ const scales = styles.scale.split(' ');
42
+
43
+ if (scales[0]) {
44
+ resultScales.scaleX = parseFloat(scales[0]);
45
+ }
46
+
47
+ resultScales.scaleY = scales[1] ? parseFloat(scales[1]) : parseFloat(scales[0]);
48
+ } // Get scales from transform property
44
49
 
45
- if (scales[1]) {
46
- resultScales.scaleY = parseFloat(scales[1]);
47
- }
48
50
 
49
51
  const matrixElements = (_RegExp$exec = new RegExp(/matrix\((.+)\)/).exec(styles.transform)) === null || _RegExp$exec === void 0 ? void 0 : _RegExp$exec[1];
50
52
 
51
- if (!matrixElements) {
52
- return resultScales;
53
+ if (matrixElements) {
54
+ const matrixElementsArray = matrixElements.split(', ');
55
+ resultScales.scaleX *= parseFloat(matrixElementsArray[0]);
56
+ resultScales.scaleY *= parseFloat(matrixElementsArray[3]);
53
57
  }
54
58
 
55
- const matrixElementsArray = matrixElements.split(', ');
56
- resultScales.scaleX *= parseFloat(matrixElementsArray[0]);
57
- resultScales.scaleY *= parseFloat(matrixElementsArray[3]);
58
59
  return resultScales;
59
60
  }
60
61
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.ts"],"names":["isPointerInBounds","view","x","y","rect","getBoundingClientRect","left","right","top","bottom","PointerTypeMapping","Map","PointerType","MOUSE","TOUCH","STYLUS","OTHER","degToRad","degrees","Math","PI","coneToDeviation","cos","calculateViewScale","styles","getComputedStyle","resultScales","scaleX","scaleY","scales","scale","split","parseFloat","matrixElements","RegExp","exec","transform","matrixElementsArray"],"mappings":";;;;;;;;;AAAA;;AAGO,SAASA,iBAAT,CAA2BC,IAA3B,EAA8C;AAAEC,EAAAA,CAAF;AAAKC,EAAAA;AAAL,CAA9C,EAAwE;AAC7E,QAAMC,IAAa,GAAGH,IAAI,CAACI,qBAAL,EAAtB;AAEA,SAAOH,CAAC,IAAIE,IAAI,CAACE,IAAV,IAAkBJ,CAAC,IAAIE,IAAI,CAACG,KAA5B,IAAqCJ,CAAC,IAAIC,IAAI,CAACI,GAA/C,IAAsDL,CAAC,IAAIC,IAAI,CAACK,MAAvE;AACD;;AAEM,MAAMC,kBAAkB,GAAG,IAAIC,GAAJ,CAA6B,CAC7D,CAAC,OAAD,EAAUC,yBAAYC,KAAtB,CAD6D,EAE7D,CAAC,OAAD,EAAUD,yBAAYE,KAAtB,CAF6D,EAG7D,CAAC,KAAD,EAAQF,yBAAYG,MAApB,CAH6D,EAI7D,CAAC,MAAD,EAASH,yBAAYI,KAArB,CAJ6D,CAA7B,CAA3B;;;AAOA,MAAMC,QAAQ,GAAIC,OAAD,IAAsBA,OAAO,GAAGC,IAAI,CAACC,EAAhB,GAAsB,GAA5D;;;;AAEA,MAAMC,eAAe,GAAIH,OAAD,IAC7BC,IAAI,CAACG,GAAL,CAASL,QAAQ,CAACC,OAAO,GAAG,CAAX,CAAjB,CADK;;;;AAGA,SAASK,kBAAT,CAA4BtB,IAA5B,EAA+C;AAAA;;AACpD,QAAMuB,MAAM,GAAGC,gBAAgB,CAACxB,IAAD,CAA/B;AAEA,QAAMyB,YAAY,GAAG;AACnBC,IAAAA,MAAM,EAAE,CADW;AAEnBC,IAAAA,MAAM,EAAE;AAFW,GAArB;AAKA,QAAMC,MAAM,GAAGL,MAAM,CAACM,KAAP,CAAaC,KAAb,CAAmB,GAAnB,CAAf;;AAEA,MAAIF,MAAM,CAAC,CAAD,CAAN,KAAc,MAAlB,EAA0B;AACxBH,IAAAA,YAAY,CAACC,MAAb,GAAsBK,UAAU,CAACH,MAAM,CAAC,CAAD,CAAP,CAAhC;AACD;;AAED,MAAIA,MAAM,CAAC,CAAD,CAAV,EAAe;AACbH,IAAAA,YAAY,CAACE,MAAb,GAAsBI,UAAU,CAACH,MAAM,CAAC,CAAD,CAAP,CAAhC;AACD;;AAED,QAAMI,cAAc,mBAAG,IAAIC,MAAJ,CAAW,gBAAX,EAA6BC,IAA7B,CACrBX,MAAM,CAACY,SADc,CAAH,iDAAG,aAEnB,CAFmB,CAAvB;;AAIA,MAAI,CAACH,cAAL,EAAqB;AACnB,WAAOP,YAAP;AACD;;AAED,QAAMW,mBAAmB,GAAGJ,cAAc,CAACF,KAAf,CAAqB,IAArB,CAA5B;AAEAL,EAAAA,YAAY,CAACC,MAAb,IAAuBK,UAAU,CAACK,mBAAmB,CAAC,CAAD,CAApB,CAAjC;AACAX,EAAAA,YAAY,CAACE,MAAb,IAAuBI,UAAU,CAACK,mBAAmB,CAAC,CAAD,CAApB,CAAjC;AAEA,SAAOX,YAAP;AACD","sourcesContent":["import { PointerType } from '../PointerType';\nimport { Point } from './interfaces';\n\nexport function isPointerInBounds(view: HTMLElement, { x, y }: Point): boolean {\n const rect: DOMRect = view.getBoundingClientRect();\n\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n}\n\nexport const PointerTypeMapping = new Map<string, PointerType>([\n ['mouse', PointerType.MOUSE],\n ['touch', PointerType.TOUCH],\n ['pen', PointerType.STYLUS],\n ['none', PointerType.OTHER],\n]);\n\nexport const degToRad = (degrees: number) => (degrees * Math.PI) / 180;\n\nexport const coneToDeviation = (degrees: number) =>\n Math.cos(degToRad(degrees / 2));\n\nexport function calculateViewScale(view: HTMLElement) {\n const styles = getComputedStyle(view);\n\n const resultScales = {\n scaleX: 1,\n scaleY: 1,\n };\n\n const scales = styles.scale.split(' ');\n\n if (scales[0] !== 'none') {\n resultScales.scaleX = parseFloat(scales[0]);\n }\n\n if (scales[1]) {\n resultScales.scaleY = parseFloat(scales[1]);\n }\n\n const matrixElements = new RegExp(/matrix\\((.+)\\)/).exec(\n styles.transform\n )?.[1];\n\n if (!matrixElements) {\n return resultScales;\n }\n\n const matrixElementsArray = matrixElements.split(', ');\n\n resultScales.scaleX *= parseFloat(matrixElementsArray[0]);\n resultScales.scaleY *= parseFloat(matrixElementsArray[3]);\n\n return resultScales;\n}\n"]}
1
+ {"version":3,"sources":["utils.ts"],"names":["isPointerInBounds","view","x","y","rect","getBoundingClientRect","left","right","top","bottom","PointerTypeMapping","Map","PointerType","MOUSE","TOUCH","STYLUS","OTHER","degToRad","degrees","Math","PI","coneToDeviation","cos","calculateViewScale","styles","getComputedStyle","resultScales","scaleX","scaleY","scale","undefined","scales","split","parseFloat","matrixElements","RegExp","exec","transform","matrixElementsArray"],"mappings":";;;;;;;;;AAAA;;AAGO,SAASA,iBAAT,CAA2BC,IAA3B,EAA8C;AAAEC,EAAAA,CAAF;AAAKC,EAAAA;AAAL,CAA9C,EAAwE;AAC7E,QAAMC,IAAa,GAAGH,IAAI,CAACI,qBAAL,EAAtB;AAEA,SAAOH,CAAC,IAAIE,IAAI,CAACE,IAAV,IAAkBJ,CAAC,IAAIE,IAAI,CAACG,KAA5B,IAAqCJ,CAAC,IAAIC,IAAI,CAACI,GAA/C,IAAsDL,CAAC,IAAIC,IAAI,CAACK,MAAvE;AACD;;AAEM,MAAMC,kBAAkB,GAAG,IAAIC,GAAJ,CAA6B,CAC7D,CAAC,OAAD,EAAUC,yBAAYC,KAAtB,CAD6D,EAE7D,CAAC,OAAD,EAAUD,yBAAYE,KAAtB,CAF6D,EAG7D,CAAC,KAAD,EAAQF,yBAAYG,MAApB,CAH6D,EAI7D,CAAC,MAAD,EAASH,yBAAYI,KAArB,CAJ6D,CAA7B,CAA3B;;;AAOA,MAAMC,QAAQ,GAAIC,OAAD,IAAsBA,OAAO,GAAGC,IAAI,CAACC,EAAhB,GAAsB,GAA5D;;;;AAEA,MAAMC,eAAe,GAAIH,OAAD,IAC7BC,IAAI,CAACG,GAAL,CAASL,QAAQ,CAACC,OAAO,GAAG,CAAX,CAAjB,CADK;;;;AAGA,SAASK,kBAAT,CAA4BtB,IAA5B,EAA+C;AAAA;;AACpD,QAAMuB,MAAM,GAAGC,gBAAgB,CAACxB,IAAD,CAA/B;AAEA,QAAMyB,YAAY,GAAG;AACnBC,IAAAA,MAAM,EAAE,CADW;AAEnBC,IAAAA,MAAM,EAAE;AAFW,GAArB,CAHoD,CAQpD;;AACA,MAAIJ,MAAM,CAACK,KAAP,KAAiBC,SAAjB,IAA8BN,MAAM,CAACK,KAAP,KAAiB,MAAnD,EAA2D;AACzD,UAAME,MAAM,GAAGP,MAAM,CAACK,KAAP,CAAaG,KAAb,CAAmB,GAAnB,CAAf;;AAEA,QAAID,MAAM,CAAC,CAAD,CAAV,EAAe;AACbL,MAAAA,YAAY,CAACC,MAAb,GAAsBM,UAAU,CAACF,MAAM,CAAC,CAAD,CAAP,CAAhC;AACD;;AAEDL,IAAAA,YAAY,CAACE,MAAb,GAAsBG,MAAM,CAAC,CAAD,CAAN,GAClBE,UAAU,CAACF,MAAM,CAAC,CAAD,CAAP,CADQ,GAElBE,UAAU,CAACF,MAAM,CAAC,CAAD,CAAP,CAFd;AAGD,GAnBmD,CAqBpD;;;AACA,QAAMG,cAAc,mBAAG,IAAIC,MAAJ,CAAW,gBAAX,EAA6BC,IAA7B,CACrBZ,MAAM,CAACa,SADc,CAAH,iDAAG,aAEnB,CAFmB,CAAvB;;AAIA,MAAIH,cAAJ,EAAoB;AAClB,UAAMI,mBAAmB,GAAGJ,cAAc,CAACF,KAAf,CAAqB,IAArB,CAA5B;AAEAN,IAAAA,YAAY,CAACC,MAAb,IAAuBM,UAAU,CAACK,mBAAmB,CAAC,CAAD,CAApB,CAAjC;AACAZ,IAAAA,YAAY,CAACE,MAAb,IAAuBK,UAAU,CAACK,mBAAmB,CAAC,CAAD,CAApB,CAAjC;AACD;;AAED,SAAOZ,YAAP;AACD","sourcesContent":["import { PointerType } from '../PointerType';\nimport { Point } from './interfaces';\n\nexport function isPointerInBounds(view: HTMLElement, { x, y }: Point): boolean {\n const rect: DOMRect = view.getBoundingClientRect();\n\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n}\n\nexport const PointerTypeMapping = new Map<string, PointerType>([\n ['mouse', PointerType.MOUSE],\n ['touch', PointerType.TOUCH],\n ['pen', PointerType.STYLUS],\n ['none', PointerType.OTHER],\n]);\n\nexport const degToRad = (degrees: number) => (degrees * Math.PI) / 180;\n\nexport const coneToDeviation = (degrees: number) =>\n Math.cos(degToRad(degrees / 2));\n\nexport function calculateViewScale(view: HTMLElement) {\n const styles = getComputedStyle(view);\n\n const resultScales = {\n scaleX: 1,\n scaleY: 1,\n };\n\n // Get scales from scale property\n if (styles.scale !== undefined && styles.scale !== 'none') {\n const scales = styles.scale.split(' ');\n\n if (scales[0]) {\n resultScales.scaleX = parseFloat(scales[0]);\n }\n\n resultScales.scaleY = scales[1]\n ? parseFloat(scales[1])\n : parseFloat(scales[0]);\n }\n\n // Get scales from transform property\n const matrixElements = new RegExp(/matrix\\((.+)\\)/).exec(\n styles.transform\n )?.[1];\n\n if (matrixElements) {\n const matrixElementsArray = matrixElements.split(', ');\n\n resultScales.scaleX *= parseFloat(matrixElementsArray[0]);\n resultScales.scaleY *= parseFloat(matrixElementsArray[3]);\n }\n\n return resultScales;\n}\n"]}
@@ -4,6 +4,7 @@ export let PointerType;
4
4
  PointerType[PointerType["TOUCH"] = 0] = "TOUCH";
5
5
  PointerType[PointerType["STYLUS"] = 1] = "STYLUS";
6
6
  PointerType[PointerType["MOUSE"] = 2] = "MOUSE";
7
- PointerType[PointerType["OTHER"] = 3] = "OTHER";
7
+ PointerType[PointerType["KEY"] = 3] = "KEY";
8
+ PointerType[PointerType["OTHER"] = 4] = "OTHER";
8
9
  })(PointerType || (PointerType = {}));
9
10
  //# sourceMappingURL=PointerType.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["PointerType.ts"],"names":["PointerType"],"mappings":"AAAA,WAAYA,WAAZ;;WAAYA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["export enum PointerType {\n TOUCH,\n STYLUS,\n MOUSE,\n OTHER,\n}\n"]}
1
+ {"version":3,"sources":["PointerType.ts"],"names":["PointerType"],"mappings":"AAAA,WAAYA,WAAZ;;WAAYA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;AAAAA,EAAAA,W,CAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["export enum PointerType {\n TOUCH,\n STYLUS,\n MOUSE,\n KEY,\n OTHER,\n}\n"]}