@tamagui/react-native-use-responder-events 2.0.0-rc.8 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ResponderSystem.cjs +293 -152
- package/dist/cjs/ResponderSystem.native.js +312 -170
- package/dist/cjs/ResponderSystem.native.js.map +1 -1
- package/dist/cjs/ResponderTouchHistoryStore.cjs +97 -30
- package/dist/cjs/ResponderTouchHistoryStore.native.js +144 -68
- package/dist/cjs/ResponderTouchHistoryStore.native.js.map +1 -1
- package/dist/cjs/createResponderEvent.cjs +66 -52
- package/dist/cjs/createResponderEvent.native.js +51 -39
- package/dist/cjs/createResponderEvent.native.js.map +1 -1
- package/dist/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/types.cjs +26 -24
- package/dist/cjs/types.native.js +26 -24
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/useResponderEvents.cjs +49 -37
- package/dist/cjs/useResponderEvents.native.js +53 -42
- package/dist/cjs/useResponderEvents.native.js.map +1 -1
- package/dist/cjs/utils.cjs +101 -58
- package/dist/cjs/utils.native.js +104 -57
- package/dist/cjs/utils.native.js.map +1 -1
- package/dist/esm/ResponderSystem.mjs +276 -137
- package/dist/esm/ResponderSystem.mjs.map +1 -1
- package/dist/esm/ResponderSystem.native.js +295 -155
- package/dist/esm/ResponderSystem.native.js.map +1 -1
- package/dist/esm/ResponderTouchHistoryStore.mjs +85 -20
- package/dist/esm/ResponderTouchHistoryStore.mjs.map +1 -1
- package/dist/esm/ResponderTouchHistoryStore.native.js +132 -58
- package/dist/esm/ResponderTouchHistoryStore.native.js.map +1 -1
- package/dist/esm/createResponderEvent.mjs +54 -42
- package/dist/esm/createResponderEvent.mjs.map +1 -1
- package/dist/esm/createResponderEvent.native.js +38 -28
- package/dist/esm/createResponderEvent.native.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/types.mjs +14 -14
- package/dist/esm/types.mjs.map +1 -1
- package/dist/esm/types.native.js +14 -14
- package/dist/esm/types.native.js.map +1 -1
- package/dist/esm/useResponderEvents.mjs +21 -11
- package/dist/esm/useResponderEvents.mjs.map +1 -1
- package/dist/esm/useResponderEvents.native.js +25 -16
- package/dist/esm/useResponderEvents.native.js.map +1 -1
- package/dist/esm/utils.mjs +89 -48
- package/dist/esm/utils.mjs.map +1 -1
- package/dist/esm/utils.native.js +92 -47
- package/dist/esm/utils.native.js.map +1 -1
- package/package.json +5 -8
- package/dist/cjs/ResponderSystem.js +0 -205
- package/dist/cjs/ResponderSystem.js.map +0 -6
- package/dist/cjs/ResponderTouchHistoryStore.js +0 -117
- package/dist/cjs/ResponderTouchHistoryStore.js.map +0 -6
- package/dist/cjs/createResponderEvent.js +0 -121
- package/dist/cjs/createResponderEvent.js.map +0 -6
- package/dist/cjs/index.js +0 -15
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/types.js +0 -58
- package/dist/cjs/types.js.map +0 -6
- package/dist/cjs/useResponderEvents.js +0 -81
- package/dist/cjs/useResponderEvents.js.map +0 -6
- package/dist/cjs/utils.js +0 -102
- package/dist/cjs/utils.js.map +0 -6
- package/dist/esm/ResponderSystem.js +0 -207
- package/dist/esm/ResponderSystem.js.map +0 -6
- package/dist/esm/ResponderTouchHistoryStore.js +0 -101
- package/dist/esm/ResponderTouchHistoryStore.js.map +0 -6
- package/dist/esm/createResponderEvent.js +0 -105
- package/dist/esm/createResponderEvent.js.map +0 -6
- package/dist/esm/types.js +0 -42
- package/dist/esm/types.js.map +0 -6
- package/dist/esm/useResponderEvents.js +0 -59
- package/dist/esm/useResponderEvents.js.map +0 -6
- package/dist/esm/utils.js +0 -86
- package/dist/esm/utils.js.map +0 -6
|
@@ -12,15 +12,35 @@ class ResponderTouchHistoryStore {
|
|
|
12
12
|
};
|
|
13
13
|
recordTouchTrack(topLevelType, nativeEvent) {
|
|
14
14
|
const touchHistory = this._touchHistory;
|
|
15
|
-
if (isMoveish(topLevelType))
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
if (isMoveish(topLevelType)) {
|
|
16
|
+
nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));
|
|
17
|
+
} else if (isStartish(topLevelType)) {
|
|
18
|
+
nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));
|
|
19
|
+
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
20
|
+
if (touchHistory.numberActiveTouches === 1) {
|
|
21
|
+
touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;
|
|
22
|
+
}
|
|
23
|
+
} else if (isEndish(topLevelType)) {
|
|
24
|
+
nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory));
|
|
25
|
+
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
26
|
+
if (touchHistory.numberActiveTouches === 1) {
|
|
27
|
+
const {
|
|
28
|
+
touchBank
|
|
29
|
+
} = touchHistory;
|
|
30
|
+
for (let i = 0; i < touchBank.length; i++) {
|
|
31
|
+
const touchTrackToCheck = touchBank[i];
|
|
32
|
+
if (touchTrackToCheck?.touchActive) {
|
|
33
|
+
touchHistory.indexOfSingleActiveTouch = i;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (process.env.NODE_ENV === "development") {
|
|
38
|
+
const activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];
|
|
39
|
+
if (!activeRecord?.touchActive) {
|
|
40
|
+
console.error("Cannot find single active touch.");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
22
43
|
}
|
|
23
|
-
process.env.NODE_ENV === "development" && (touchBank[touchHistory.indexOfSingleActiveTouch]?.touchActive || console.error("Cannot find single active touch."));
|
|
24
44
|
}
|
|
25
45
|
}
|
|
26
46
|
get touchHistory() {
|
|
@@ -29,11 +49,11 @@ class ResponderTouchHistoryStore {
|
|
|
29
49
|
}
|
|
30
50
|
const MAX_TOUCH_BANK = 20;
|
|
31
51
|
function timestampForTouch(touch) {
|
|
32
|
-
return touch
|
|
52
|
+
return touch["timeStamp"] || touch.timestamp;
|
|
33
53
|
}
|
|
34
54
|
function createTouchRecord(touch) {
|
|
35
55
|
return {
|
|
36
|
-
touchActive:
|
|
56
|
+
touchActive: true,
|
|
37
57
|
startPageX: touch.pageX,
|
|
38
58
|
startPageY: touch.pageY,
|
|
39
59
|
startTimeStamp: timestampForTouch(touch),
|
|
@@ -46,29 +66,71 @@ function createTouchRecord(touch) {
|
|
|
46
66
|
};
|
|
47
67
|
}
|
|
48
68
|
function resetTouchRecord(touchRecord, touch) {
|
|
49
|
-
touchRecord.touchActive =
|
|
69
|
+
touchRecord.touchActive = true;
|
|
70
|
+
touchRecord.startPageX = touch.pageX;
|
|
71
|
+
touchRecord.startPageY = touch.pageY;
|
|
72
|
+
touchRecord.startTimeStamp = timestampForTouch(touch);
|
|
73
|
+
touchRecord.currentPageX = touch.pageX;
|
|
74
|
+
touchRecord.currentPageY = touch.pageY;
|
|
75
|
+
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
76
|
+
touchRecord.previousPageX = touch.pageX;
|
|
77
|
+
touchRecord.previousPageY = touch.pageY;
|
|
78
|
+
touchRecord.previousTimeStamp = timestampForTouch(touch);
|
|
50
79
|
}
|
|
51
80
|
function getTouchIdentifier({
|
|
52
81
|
identifier
|
|
53
82
|
}) {
|
|
54
|
-
|
|
83
|
+
if (identifier == null) {
|
|
84
|
+
console.error("Touch object is missing identifier.");
|
|
85
|
+
}
|
|
86
|
+
if (process.env.NODE_ENV === "development") {
|
|
87
|
+
if (identifier > MAX_TOUCH_BANK) {
|
|
88
|
+
console.error("Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.", identifier, MAX_TOUCH_BANK);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return identifier;
|
|
55
92
|
}
|
|
56
93
|
function recordTouchStart(touch, touchHistory) {
|
|
57
|
-
const identifier = getTouchIdentifier(touch)
|
|
58
|
-
|
|
59
|
-
|
|
94
|
+
const identifier = getTouchIdentifier(touch);
|
|
95
|
+
const touchRecord = touchHistory.touchBank[identifier];
|
|
96
|
+
if (touchRecord) {
|
|
97
|
+
resetTouchRecord(touchRecord, touch);
|
|
98
|
+
} else {
|
|
99
|
+
touchHistory.touchBank[identifier] = createTouchRecord(touch);
|
|
100
|
+
}
|
|
101
|
+
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
60
102
|
}
|
|
61
103
|
function recordTouchMove(touch, touchHistory) {
|
|
62
104
|
const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
63
|
-
|
|
64
|
-
|
|
105
|
+
if (touchRecord) {
|
|
106
|
+
touchRecord.touchActive = true;
|
|
107
|
+
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
108
|
+
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
109
|
+
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
110
|
+
touchRecord.currentPageX = touch.pageX;
|
|
111
|
+
touchRecord.currentPageY = touch.pageY;
|
|
112
|
+
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
113
|
+
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
114
|
+
} else {
|
|
115
|
+
console.warn("Cannot record touch move without a touch start.\n", `Touch Move: ${printTouch(touch)}
|
|
65
116
|
`, `Touch Bank: ${printTouchBank(touchHistory)}`);
|
|
117
|
+
}
|
|
66
118
|
}
|
|
67
119
|
function recordTouchEnd(touch, touchHistory) {
|
|
68
120
|
const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
69
|
-
|
|
70
|
-
|
|
121
|
+
if (touchRecord) {
|
|
122
|
+
touchRecord.touchActive = false;
|
|
123
|
+
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
124
|
+
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
125
|
+
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
126
|
+
touchRecord.currentPageX = touch.pageX;
|
|
127
|
+
touchRecord.currentPageY = touch.pageY;
|
|
128
|
+
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
129
|
+
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
130
|
+
} else {
|
|
131
|
+
console.warn("Cannot record touch end without a touch start.\n", `Touch End: ${printTouch(touch)}
|
|
71
132
|
`, `Touch Bank: ${printTouchBank(touchHistory)}`);
|
|
133
|
+
}
|
|
72
134
|
}
|
|
73
135
|
function printTouch(touch) {
|
|
74
136
|
return JSON.stringify({
|
|
@@ -83,7 +145,10 @@ function printTouchBank(touchHistory) {
|
|
|
83
145
|
touchBank
|
|
84
146
|
} = touchHistory;
|
|
85
147
|
let printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
|
|
86
|
-
|
|
148
|
+
if (touchBank.length > MAX_TOUCH_BANK) {
|
|
149
|
+
printed += ` (original size: ${touchBank.length})`;
|
|
150
|
+
}
|
|
151
|
+
return printed;
|
|
87
152
|
}
|
|
88
153
|
export { ResponderTouchHistoryStore };
|
|
89
154
|
//# sourceMappingURL=ResponderTouchHistoryStore.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isEndish","isMoveish","isStartish","ResponderTouchHistoryStore","_touchHistory","touchBank","numberActiveTouches","indexOfSingleActiveTouch","mostRecentTimeStamp","recordTouchTrack","topLevelType","nativeEvent","touchHistory","changedTouches","forEach","touch","recordTouchMove","recordTouchStart","touches","length","identifier","recordTouchEnd","i","touchActive","process","env","NODE_ENV","console","error","MAX_TOUCH_BANK","timestampForTouch","
|
|
1
|
+
{"version":3,"names":["isEndish","isMoveish","isStartish","ResponderTouchHistoryStore","_touchHistory","touchBank","numberActiveTouches","indexOfSingleActiveTouch","mostRecentTimeStamp","recordTouchTrack","topLevelType","nativeEvent","touchHistory","changedTouches","forEach","touch","recordTouchMove","recordTouchStart","touches","length","identifier","recordTouchEnd","i","touchTrackToCheck","touchActive","process","env","NODE_ENV","activeRecord","console","error","MAX_TOUCH_BANK","timestampForTouch","timestamp","createTouchRecord","startPageX","pageX","startPageY","pageY","startTimeStamp","currentPageX","currentPageY","currentTimeStamp","previousPageX","previousPageY","previousTimeStamp","resetTouchRecord","touchRecord","getTouchIdentifier","warn","printTouch","printTouchBank","JSON","stringify","printed","slice"],"sources":["../../src/ResponderTouchHistoryStore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,79 +1,108 @@
|
|
|
1
1
|
import { isEndish, isMoveish, isStartish } from "./types.native.js";
|
|
2
2
|
function _class_call_check(instance, Constructor) {
|
|
3
|
-
if (!(instance instanceof Constructor))
|
|
3
|
+
if (!(instance instanceof Constructor)) {
|
|
4
|
+
throw new TypeError("Cannot call a class as a function");
|
|
5
|
+
}
|
|
4
6
|
}
|
|
5
7
|
function _defineProperties(target, props) {
|
|
6
8
|
for (var i = 0; i < props.length; i++) {
|
|
7
9
|
var descriptor = props[i];
|
|
8
|
-
descriptor.enumerable = descriptor.enumerable ||
|
|
10
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
11
|
+
descriptor.configurable = true;
|
|
12
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
13
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
9
14
|
}
|
|
10
15
|
}
|
|
11
16
|
function _create_class(Constructor, protoProps, staticProps) {
|
|
12
|
-
|
|
17
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
18
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
19
|
+
return Constructor;
|
|
13
20
|
}
|
|
14
21
|
function _define_property(obj, key, value) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
if (key in obj) {
|
|
23
|
+
Object.defineProperty(obj, key, {
|
|
24
|
+
value,
|
|
25
|
+
enumerable: true,
|
|
26
|
+
configurable: true,
|
|
27
|
+
writable: true
|
|
28
|
+
});
|
|
29
|
+
} else {
|
|
30
|
+
obj[key] = value;
|
|
31
|
+
}
|
|
32
|
+
return obj;
|
|
21
33
|
}
|
|
22
34
|
var ResponderTouchHistoryStore = /* @__PURE__ */function () {
|
|
23
|
-
|
|
35
|
+
"use strict";
|
|
24
36
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
function ResponderTouchHistoryStore2() {
|
|
38
|
+
_class_call_check(this, ResponderTouchHistoryStore2);
|
|
39
|
+
_define_property(this, "_touchHistory", {
|
|
40
|
+
touchBank: [],
|
|
41
|
+
//Array<TouchRecord>
|
|
42
|
+
numberActiveTouches: 0,
|
|
43
|
+
// If there is only one active touch, we remember its location. This prevents
|
|
44
|
+
// us having to loop through all of the touches all the time in the most
|
|
45
|
+
// common case.
|
|
46
|
+
indexOfSingleActiveTouch: -1,
|
|
47
|
+
mostRecentTimeStamp: 0
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
_create_class(ResponderTouchHistoryStore2, [{
|
|
51
|
+
key: "recordTouchTrack",
|
|
52
|
+
value: function recordTouchTrack(topLevelType, nativeEvent) {
|
|
53
|
+
var touchHistory = this._touchHistory;
|
|
54
|
+
if (isMoveish(topLevelType)) {
|
|
55
|
+
nativeEvent.changedTouches.forEach(function (touch) {
|
|
42
56
|
return recordTouchMove(touch, touchHistory);
|
|
43
|
-
});
|
|
57
|
+
});
|
|
58
|
+
} else if (isStartish(topLevelType)) {
|
|
59
|
+
nativeEvent.changedTouches.forEach(function (touch) {
|
|
44
60
|
return recordTouchStart(touch, touchHistory);
|
|
45
|
-
})
|
|
61
|
+
});
|
|
62
|
+
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
63
|
+
if (touchHistory.numberActiveTouches === 1) {
|
|
64
|
+
touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;
|
|
65
|
+
}
|
|
66
|
+
} else if (isEndish(topLevelType)) {
|
|
67
|
+
nativeEvent.changedTouches.forEach(function (touch) {
|
|
46
68
|
return recordTouchEnd(touch, touchHistory);
|
|
47
|
-
})
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
69
|
+
});
|
|
70
|
+
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
71
|
+
if (touchHistory.numberActiveTouches === 1) {
|
|
72
|
+
var {
|
|
73
|
+
touchBank
|
|
74
|
+
} = touchHistory;
|
|
75
|
+
for (var i = 0; i < touchBank.length; i++) {
|
|
51
76
|
var touchTrackToCheck = touchBank[i];
|
|
52
|
-
if (touchTrackToCheck
|
|
77
|
+
if (touchTrackToCheck === null || touchTrackToCheck === void 0 ? void 0 : touchTrackToCheck.touchActive) {
|
|
53
78
|
touchHistory.indexOfSingleActiveTouch = i;
|
|
54
79
|
break;
|
|
55
80
|
}
|
|
56
81
|
}
|
|
57
82
|
if (process.env.NODE_ENV === "development") {
|
|
58
83
|
var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];
|
|
59
|
-
activeRecord
|
|
84
|
+
if (!(activeRecord === null || activeRecord === void 0 ? void 0 : activeRecord.touchActive)) {
|
|
85
|
+
console.error("Cannot find single active touch.");
|
|
86
|
+
}
|
|
60
87
|
}
|
|
61
88
|
}
|
|
62
89
|
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
90
|
+
}
|
|
91
|
+
}, {
|
|
92
|
+
key: "touchHistory",
|
|
93
|
+
get: function get() {
|
|
94
|
+
return this._touchHistory;
|
|
95
|
+
}
|
|
96
|
+
}]);
|
|
97
|
+
return ResponderTouchHistoryStore2;
|
|
98
|
+
}();
|
|
99
|
+
var MAX_TOUCH_BANK = 20;
|
|
71
100
|
function timestampForTouch(touch) {
|
|
72
|
-
return touch
|
|
101
|
+
return touch["timeStamp"] || touch.timestamp;
|
|
73
102
|
}
|
|
74
103
|
function createTouchRecord(touch) {
|
|
75
104
|
return {
|
|
76
|
-
touchActive:
|
|
105
|
+
touchActive: true,
|
|
77
106
|
startPageX: touch.pageX,
|
|
78
107
|
startPageY: touch.pageY,
|
|
79
108
|
startTimeStamp: timestampForTouch(touch),
|
|
@@ -86,30 +115,72 @@ function createTouchRecord(touch) {
|
|
|
86
115
|
};
|
|
87
116
|
}
|
|
88
117
|
function resetTouchRecord(touchRecord, touch) {
|
|
89
|
-
touchRecord.touchActive =
|
|
118
|
+
touchRecord.touchActive = true;
|
|
119
|
+
touchRecord.startPageX = touch.pageX;
|
|
120
|
+
touchRecord.startPageY = touch.pageY;
|
|
121
|
+
touchRecord.startTimeStamp = timestampForTouch(touch);
|
|
122
|
+
touchRecord.currentPageX = touch.pageX;
|
|
123
|
+
touchRecord.currentPageY = touch.pageY;
|
|
124
|
+
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
125
|
+
touchRecord.previousPageX = touch.pageX;
|
|
126
|
+
touchRecord.previousPageY = touch.pageY;
|
|
127
|
+
touchRecord.previousTimeStamp = timestampForTouch(touch);
|
|
90
128
|
}
|
|
91
129
|
function getTouchIdentifier(param) {
|
|
92
130
|
var {
|
|
93
131
|
identifier
|
|
94
132
|
} = param;
|
|
95
|
-
|
|
133
|
+
if (identifier == null) {
|
|
134
|
+
console.error("Touch object is missing identifier.");
|
|
135
|
+
}
|
|
136
|
+
if (process.env.NODE_ENV === "development") {
|
|
137
|
+
if (identifier > MAX_TOUCH_BANK) {
|
|
138
|
+
console.error("Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.", identifier, MAX_TOUCH_BANK);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return identifier;
|
|
96
142
|
}
|
|
97
143
|
function recordTouchStart(touch, touchHistory) {
|
|
98
|
-
var identifier = getTouchIdentifier(touch)
|
|
99
|
-
|
|
100
|
-
|
|
144
|
+
var identifier = getTouchIdentifier(touch);
|
|
145
|
+
var touchRecord = touchHistory.touchBank[identifier];
|
|
146
|
+
if (touchRecord) {
|
|
147
|
+
resetTouchRecord(touchRecord, touch);
|
|
148
|
+
} else {
|
|
149
|
+
touchHistory.touchBank[identifier] = createTouchRecord(touch);
|
|
150
|
+
}
|
|
151
|
+
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
101
152
|
}
|
|
102
153
|
function recordTouchMove(touch, touchHistory) {
|
|
103
154
|
var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
104
|
-
|
|
105
|
-
|
|
155
|
+
if (touchRecord) {
|
|
156
|
+
touchRecord.touchActive = true;
|
|
157
|
+
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
158
|
+
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
159
|
+
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
160
|
+
touchRecord.currentPageX = touch.pageX;
|
|
161
|
+
touchRecord.currentPageY = touch.pageY;
|
|
162
|
+
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
163
|
+
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
164
|
+
} else {
|
|
165
|
+
console.warn("Cannot record touch move without a touch start.\n", `Touch Move: ${printTouch(touch)}
|
|
106
166
|
`, `Touch Bank: ${printTouchBank(touchHistory)}`);
|
|
167
|
+
}
|
|
107
168
|
}
|
|
108
169
|
function recordTouchEnd(touch, touchHistory) {
|
|
109
170
|
var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
110
|
-
|
|
111
|
-
|
|
171
|
+
if (touchRecord) {
|
|
172
|
+
touchRecord.touchActive = false;
|
|
173
|
+
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
174
|
+
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
175
|
+
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
176
|
+
touchRecord.currentPageX = touch.pageX;
|
|
177
|
+
touchRecord.currentPageY = touch.pageY;
|
|
178
|
+
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
179
|
+
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
180
|
+
} else {
|
|
181
|
+
console.warn("Cannot record touch end without a touch start.\n", `Touch End: ${printTouch(touch)}
|
|
112
182
|
`, `Touch Bank: ${printTouchBank(touchHistory)}`);
|
|
183
|
+
}
|
|
113
184
|
}
|
|
114
185
|
function printTouch(touch) {
|
|
115
186
|
return JSON.stringify({
|
|
@@ -121,10 +192,13 @@ function printTouch(touch) {
|
|
|
121
192
|
}
|
|
122
193
|
function printTouchBank(touchHistory) {
|
|
123
194
|
var {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
195
|
+
touchBank
|
|
196
|
+
} = touchHistory;
|
|
197
|
+
var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
|
|
198
|
+
if (touchBank.length > MAX_TOUCH_BANK) {
|
|
199
|
+
printed += ` (original size: ${touchBank.length})`;
|
|
200
|
+
}
|
|
201
|
+
return printed;
|
|
128
202
|
}
|
|
129
203
|
export { ResponderTouchHistoryStore };
|
|
130
204
|
//# sourceMappingURL=ResponderTouchHistoryStore.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isEndish","isMoveish","isStartish","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","ResponderTouchHistoryStore","ResponderTouchHistoryStore2","touchBank","numberActiveTouches","indexOfSingleActiveTouch","mostRecentTimeStamp","topLevelType","nativeEvent","touchHistory","_touchHistory","changedTouches","forEach","touch","recordTouchMove","recordTouchStart","touches","identifier","recordTouchEnd","touchTrackToCheck","touchActive","process","env","NODE_ENV","activeRecord","console","error","get","MAX_TOUCH_BANK","timestampForTouch","
|
|
1
|
+
{"version":3,"names":["isEndish","isMoveish","isStartish","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","ResponderTouchHistoryStore","ResponderTouchHistoryStore2","touchBank","numberActiveTouches","indexOfSingleActiveTouch","mostRecentTimeStamp","recordTouchTrack","topLevelType","nativeEvent","touchHistory","_touchHistory","changedTouches","forEach","touch","recordTouchMove","recordTouchStart","touches","identifier","recordTouchEnd","touchTrackToCheck","touchActive","process","env","NODE_ENV","activeRecord","console","error","get","MAX_TOUCH_BANK","timestampForTouch","timestamp","createTouchRecord","startPageX","pageX","startPageY","pageY","startTimeStamp","currentPageX","currentPageY","currentTimeStamp","previousPageX","previousPageY","previousTimeStamp","resetTouchRecord","touchRecord","getTouchIdentifier","param"],"sources":["../../src/ResponderTouchHistoryStore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,44 +1,49 @@
|
|
|
1
1
|
import { getBoundingClientRect } from "./utils.mjs";
|
|
2
|
-
const emptyFunction = () => {}
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
const emptyFunction = () => {};
|
|
3
|
+
const emptyObject = {};
|
|
4
|
+
const emptyArray = [];
|
|
5
5
|
function normalizeIdentifier(identifier) {
|
|
6
6
|
return identifier > 20 ? identifier % 20 : identifier;
|
|
7
7
|
}
|
|
8
8
|
function createResponderEvent(domEvent, responderTouchHistoryStore) {
|
|
9
|
-
let rect
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const domEventChangedTouches = domEvent.changedTouches
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
9
|
+
let rect;
|
|
10
|
+
let propagationWasStopped = false;
|
|
11
|
+
let changedTouches;
|
|
12
|
+
let touches;
|
|
13
|
+
const domEventChangedTouches = domEvent.changedTouches;
|
|
14
|
+
const domEventType = domEvent.type;
|
|
15
|
+
const metaKey = domEvent.metaKey === true;
|
|
16
|
+
const shiftKey = domEvent.shiftKey === true;
|
|
17
|
+
const force = domEventChangedTouches?.[0].force || 0;
|
|
18
|
+
const identifier = normalizeIdentifier(domEventChangedTouches?.[0].identifier || 0);
|
|
19
|
+
const clientX = domEventChangedTouches?.[0].clientX || domEvent.clientX;
|
|
20
|
+
const clientY = domEventChangedTouches?.[0].clientY || domEvent.clientY;
|
|
21
|
+
const pageX = domEventChangedTouches?.[0].pageX || domEvent.pageX;
|
|
22
|
+
const pageY = domEventChangedTouches?.[0].pageY || domEvent.pageY;
|
|
23
|
+
const preventDefault = typeof domEvent.preventDefault === "function" ? domEvent.preventDefault.bind(domEvent) : emptyFunction;
|
|
24
|
+
const timestamp = domEvent.timeStamp;
|
|
25
25
|
function normalizeTouches(touches2) {
|
|
26
|
-
return Array.prototype.slice.call(touches2).map(touch =>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
return Array.prototype.slice.call(touches2).map(touch => {
|
|
27
|
+
return {
|
|
28
|
+
force: touch.force,
|
|
29
|
+
identifier: normalizeIdentifier(touch.identifier),
|
|
30
|
+
get locationX() {
|
|
31
|
+
return locationX(touch.clientX);
|
|
32
|
+
},
|
|
33
|
+
get locationY() {
|
|
34
|
+
return locationY(touch.clientY);
|
|
35
|
+
},
|
|
36
|
+
pageX: touch.pageX,
|
|
37
|
+
pageY: touch.pageY,
|
|
38
|
+
target: touch.target,
|
|
39
|
+
timestamp
|
|
40
|
+
};
|
|
41
|
+
});
|
|
40
42
|
}
|
|
41
|
-
if (domEventChangedTouches != null)
|
|
43
|
+
if (domEventChangedTouches != null) {
|
|
44
|
+
changedTouches = normalizeTouches(domEventChangedTouches);
|
|
45
|
+
touches = normalizeTouches(domEvent.touches);
|
|
46
|
+
} else {
|
|
42
47
|
const emulatedTouches = [{
|
|
43
48
|
force,
|
|
44
49
|
identifier,
|
|
@@ -53,11 +58,12 @@ function createResponderEvent(domEvent, responderTouchHistoryStore) {
|
|
|
53
58
|
target: domEvent.target,
|
|
54
59
|
timestamp
|
|
55
60
|
}];
|
|
56
|
-
changedTouches = emulatedTouches
|
|
61
|
+
changedTouches = emulatedTouches;
|
|
62
|
+
touches = domEventType === "mouseup" || domEventType === "dragstart" ? emptyArray : emulatedTouches;
|
|
57
63
|
}
|
|
58
64
|
const responderEvent = {
|
|
59
|
-
bubbles:
|
|
60
|
-
cancelable:
|
|
65
|
+
bubbles: true,
|
|
66
|
+
cancelable: true,
|
|
61
67
|
// `currentTarget` is set before dispatch
|
|
62
68
|
currentTarget: null,
|
|
63
69
|
defaultPrevented: domEvent.defaultPrevented,
|
|
@@ -71,8 +77,8 @@ function createResponderEvent(domEvent, responderTouchHistoryStore) {
|
|
|
71
77
|
},
|
|
72
78
|
isTrusted: domEvent.isTrusted,
|
|
73
79
|
nativeEvent: {
|
|
74
|
-
altKey:
|
|
75
|
-
ctrlKey:
|
|
80
|
+
altKey: false,
|
|
81
|
+
ctrlKey: false,
|
|
76
82
|
metaKey,
|
|
77
83
|
shiftKey,
|
|
78
84
|
changedTouches,
|
|
@@ -94,17 +100,23 @@ function createResponderEvent(domEvent, responderTouchHistoryStore) {
|
|
|
94
100
|
persist: emptyFunction,
|
|
95
101
|
preventDefault,
|
|
96
102
|
stopPropagation() {
|
|
97
|
-
propagationWasStopped =
|
|
103
|
+
propagationWasStopped = true;
|
|
98
104
|
},
|
|
99
105
|
target: domEvent.target,
|
|
100
106
|
timeStamp: timestamp,
|
|
101
107
|
touchHistory: responderTouchHistoryStore.touchHistory
|
|
102
108
|
};
|
|
103
109
|
function locationX(x) {
|
|
104
|
-
|
|
110
|
+
rect = rect || getBoundingClientRect(responderEvent.currentTarget);
|
|
111
|
+
if (rect) {
|
|
112
|
+
return x - rect.left;
|
|
113
|
+
}
|
|
105
114
|
}
|
|
106
115
|
function locationY(y) {
|
|
107
|
-
|
|
116
|
+
rect = rect || getBoundingClientRect(responderEvent.currentTarget);
|
|
117
|
+
if (rect) {
|
|
118
|
+
return y - rect.top;
|
|
119
|
+
}
|
|
108
120
|
}
|
|
109
121
|
return responderEvent;
|
|
110
122
|
}
|