@tamagui/react-native-use-pressable 2.7.7 → 3.0.0-beta.637.1
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/PressResponder.cjs +370 -383
- package/dist/cjs/PressResponder.native.cjs +487 -0
- package/dist/cjs/PressResponder.native.js +445 -445
- package/dist/cjs/PressResponder.native.js.map +1 -1
- package/dist/cjs/index.cjs +33 -41
- package/dist/cjs/index.native.cjs +51 -0
- package/dist/cjs/index.native.js +33 -40
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/PressResponder.mjs +356 -365
- package/dist/esm/PressResponder.mjs.map +1 -1
- package/dist/esm/PressResponder.native.js +431 -428
- package/dist/esm/PressResponder.native.js.map +1 -1
- package/dist/esm/index.js +17 -15
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +17 -15
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +17 -15
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +2 -2
- package/types/PressResponder.d.ts.map +1 -1
|
@@ -1,63 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
|
|
3
4
|
var __defProp = Object.defineProperty;
|
|
4
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
8
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
for (var name in all) __defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true
|
|
12
|
+
});
|
|
12
13
|
};
|
|
13
14
|
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
|
+
get: () => from[key],
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
21
22
|
};
|
|
22
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
-
value: true
|
|
24
|
-
}), mod);
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
24
|
var PressResponder_exports = {};
|
|
26
|
-
__export(PressResponder_exports, {
|
|
27
|
-
PressResponder: () => PressResponder
|
|
28
|
-
});
|
|
25
|
+
__export(PressResponder_exports, { PressResponder: () => PressResponder });
|
|
29
26
|
module.exports = __toCommonJS(PressResponder_exports);
|
|
30
27
|
function _class_call_check(instance, Constructor) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
if (!(instance instanceof Constructor)) {
|
|
29
|
+
throw new TypeError("Cannot call a class as a function");
|
|
30
|
+
}
|
|
34
31
|
}
|
|
35
32
|
function _defineProperties(target, props) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
for (var i = 0; i < props.length; i++) {
|
|
34
|
+
var descriptor = props[i];
|
|
35
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
36
|
+
descriptor.configurable = true;
|
|
37
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
38
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
39
|
+
}
|
|
43
40
|
}
|
|
44
41
|
function _create_class(Constructor, protoProps, staticProps) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
43
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
44
|
+
return Constructor;
|
|
48
45
|
}
|
|
49
46
|
function _define_property(obj, key, value) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
if (key in obj) {
|
|
48
|
+
Object.defineProperty(obj, key, {
|
|
49
|
+
value,
|
|
50
|
+
enumerable: true,
|
|
51
|
+
configurable: true,
|
|
52
|
+
writable: true
|
|
53
|
+
});
|
|
54
|
+
} else {
|
|
55
|
+
obj[key] = value;
|
|
56
|
+
}
|
|
57
|
+
return obj;
|
|
61
58
|
}
|
|
62
59
|
var DELAY = "DELAY";
|
|
63
60
|
var ERROR = "ERROR";
|
|
@@ -70,420 +67,423 @@ var RESPONDER_GRANT = "RESPONDER_GRANT";
|
|
|
70
67
|
var RESPONDER_RELEASE = "RESPONDER_RELEASE";
|
|
71
68
|
var RESPONDER_TERMINATED = "RESPONDER_TERMINATED";
|
|
72
69
|
var Transitions = Object.freeze({
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
70
|
+
NOT_RESPONDER: {
|
|
71
|
+
DELAY: ERROR,
|
|
72
|
+
RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
|
|
73
|
+
RESPONDER_RELEASE: ERROR,
|
|
74
|
+
RESPONDER_TERMINATED: ERROR,
|
|
75
|
+
LONG_PRESS_DETECTED: ERROR
|
|
76
|
+
},
|
|
77
|
+
RESPONDER_INACTIVE_PRESS_START: {
|
|
78
|
+
DELAY: RESPONDER_ACTIVE_PRESS_START,
|
|
79
|
+
RESPONDER_GRANT: ERROR,
|
|
80
|
+
RESPONDER_RELEASE: NOT_RESPONDER,
|
|
81
|
+
RESPONDER_TERMINATED: NOT_RESPONDER,
|
|
82
|
+
LONG_PRESS_DETECTED: ERROR
|
|
83
|
+
},
|
|
84
|
+
RESPONDER_ACTIVE_PRESS_START: {
|
|
85
|
+
DELAY: ERROR,
|
|
86
|
+
RESPONDER_GRANT: ERROR,
|
|
87
|
+
RESPONDER_RELEASE: NOT_RESPONDER,
|
|
88
|
+
RESPONDER_TERMINATED: NOT_RESPONDER,
|
|
89
|
+
LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START
|
|
90
|
+
},
|
|
91
|
+
RESPONDER_ACTIVE_LONG_PRESS_START: {
|
|
92
|
+
DELAY: ERROR,
|
|
93
|
+
RESPONDER_GRANT: ERROR,
|
|
94
|
+
RESPONDER_RELEASE: NOT_RESPONDER,
|
|
95
|
+
RESPONDER_TERMINATED: NOT_RESPONDER,
|
|
96
|
+
LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START
|
|
97
|
+
},
|
|
98
|
+
ERROR: {
|
|
99
|
+
DELAY: NOT_RESPONDER,
|
|
100
|
+
RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
|
|
101
|
+
RESPONDER_RELEASE: NOT_RESPONDER,
|
|
102
|
+
RESPONDER_TERMINATED: NOT_RESPONDER,
|
|
103
|
+
LONG_PRESS_DETECTED: NOT_RESPONDER
|
|
104
|
+
}
|
|
108
105
|
});
|
|
109
|
-
var isActiveSignal = function
|
|
110
|
-
|
|
106
|
+
var isActiveSignal = function(signal) {
|
|
107
|
+
return signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;
|
|
111
108
|
};
|
|
112
|
-
var isButtonRole = function
|
|
113
|
-
|
|
109
|
+
var isButtonRole = function(element) {
|
|
110
|
+
return element.getAttribute("role") === "button";
|
|
114
111
|
};
|
|
115
|
-
var isPressStartSignal = function
|
|
116
|
-
|
|
112
|
+
var isPressStartSignal = function(signal) {
|
|
113
|
+
return signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;
|
|
117
114
|
};
|
|
118
|
-
var isTerminalSignal = function
|
|
119
|
-
|
|
115
|
+
var isTerminalSignal = function(signal) {
|
|
116
|
+
return signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;
|
|
120
117
|
};
|
|
121
|
-
var isValidKeyPress = function
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
118
|
+
var isValidKeyPress = function(event) {
|
|
119
|
+
var key = event.key;
|
|
120
|
+
var target = event.target;
|
|
121
|
+
var role = target.getAttribute("role");
|
|
122
|
+
var isSpacebar = key === " " || key === "Spacebar";
|
|
123
|
+
return key === "Enter" || isSpacebar && role === "button";
|
|
127
124
|
};
|
|
128
125
|
var DEFAULT_LONG_PRESS_DELAY_MS = 450;
|
|
129
126
|
var DEFAULT_PRESS_DELAY_MS = 50;
|
|
130
|
-
var PressResponder = /* @__PURE__ */
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
127
|
+
var PressResponder = /* @__PURE__ */ (function() {
|
|
128
|
+
"use strict";
|
|
129
|
+
function PressResponder2(config) {
|
|
130
|
+
_class_call_check(this, PressResponder2);
|
|
131
|
+
_define_property(this, "_touchActivatePosition", null);
|
|
132
|
+
_define_property(this, "_pressDelayTimeout", 0);
|
|
133
|
+
_define_property(this, "_selectionTerminated", false);
|
|
134
|
+
_define_property(this, "_isPointerTouch", false);
|
|
135
|
+
_define_property(this, "_longPressDelayTimeout", 0);
|
|
136
|
+
_define_property(this, "_longPressDispatched", false);
|
|
137
|
+
_define_property(this, "_pressOutDelayTimeout", 0);
|
|
138
|
+
_define_property(this, "_touchState", NOT_RESPONDER);
|
|
139
|
+
_define_property(this, "_config", null);
|
|
140
|
+
_define_property(this, "_eventHandlers", null);
|
|
141
|
+
this.configure(config);
|
|
142
|
+
}
|
|
143
|
+
_create_class(PressResponder2, [
|
|
144
|
+
{
|
|
145
|
+
key: "configure",
|
|
146
|
+
value: function configure(config) {
|
|
147
|
+
this._config = config;
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
/**
|
|
152
|
+
* Resets any pending timers. This should be called on unmount.
|
|
153
|
+
*/
|
|
154
|
+
key: "reset",
|
|
155
|
+
value: function reset() {
|
|
156
|
+
this._cancelLongPressDelayTimeout();
|
|
157
|
+
this._cancelPressDelayTimeout();
|
|
158
|
+
this._cancelPressOutDelayTimeout();
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
/**
|
|
163
|
+
* Returns a set of props to spread into the interactive element.
|
|
164
|
+
*/
|
|
165
|
+
key: "getEventHandlers",
|
|
166
|
+
value: function getEventHandlers() {
|
|
167
|
+
if (this._eventHandlers == null) {
|
|
168
|
+
this._eventHandlers = this._createEventHandlers();
|
|
169
|
+
}
|
|
170
|
+
return this._eventHandlers;
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
key: "_createEventHandlers",
|
|
175
|
+
value: function _createEventHandlers() {
|
|
176
|
+
var _this = this;
|
|
177
|
+
var start = function(event, shouldDelay) {
|
|
178
|
+
event.persist();
|
|
179
|
+
_this._cancelPressOutDelayTimeout();
|
|
180
|
+
_this._longPressDispatched = false;
|
|
181
|
+
_this._selectionTerminated = false;
|
|
182
|
+
_this._touchState = NOT_RESPONDER;
|
|
183
|
+
_this._isPointerTouch = event.nativeEvent.type === "touchstart";
|
|
184
|
+
_this._receiveSignal(RESPONDER_GRANT, event);
|
|
185
|
+
var delayPressStart = normalizeDelay(_this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);
|
|
186
|
+
if (shouldDelay !== false && delayPressStart > 0) {
|
|
187
|
+
_this._pressDelayTimeout = setTimeout(function() {
|
|
188
|
+
_this._receiveSignal(DELAY, event);
|
|
189
|
+
}, delayPressStart);
|
|
190
|
+
} else {
|
|
191
|
+
_this._receiveSignal(DELAY, event);
|
|
192
|
+
}
|
|
193
|
+
var delayLongPress = normalizeDelay(_this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);
|
|
194
|
+
_this._longPressDelayTimeout = setTimeout(function() {
|
|
195
|
+
_this._handleLongPress(event);
|
|
196
|
+
}, delayLongPress + delayPressStart);
|
|
197
|
+
};
|
|
198
|
+
var end = function(event) {
|
|
199
|
+
_this._receiveSignal(RESPONDER_RELEASE, event);
|
|
200
|
+
};
|
|
201
|
+
var keyupHandler = function(event) {
|
|
202
|
+
var onPress = _this._config.onPress;
|
|
203
|
+
var target = event.target;
|
|
204
|
+
if (_this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {
|
|
205
|
+
end(event);
|
|
206
|
+
document.removeEventListener("keyup", keyupHandler);
|
|
207
|
+
var role = target.getAttribute("role");
|
|
208
|
+
var elementType = target.tagName.toLowerCase();
|
|
209
|
+
var isNativeInteractiveElement = role === "link" || elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea";
|
|
210
|
+
if (onPress != null && !isNativeInteractiveElement) {
|
|
211
|
+
onPress(event);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
return {
|
|
216
|
+
onStartShouldSetResponder: function(event) {
|
|
217
|
+
var disabled = _this._config.disabled;
|
|
218
|
+
if (disabled && isButtonRole(event.currentTarget)) {
|
|
219
|
+
event.stopPropagation();
|
|
220
|
+
}
|
|
221
|
+
if (disabled == null) {
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
return !disabled;
|
|
225
|
+
},
|
|
226
|
+
onKeyDown: function(event) {
|
|
227
|
+
var disabled = _this._config.disabled;
|
|
228
|
+
var key = event.key;
|
|
229
|
+
var target = event.target;
|
|
230
|
+
if (!disabled && isValidKeyPress(event)) {
|
|
231
|
+
if (_this._touchState === NOT_RESPONDER) {
|
|
232
|
+
start(event, false);
|
|
233
|
+
document.addEventListener("keyup", keyupHandler);
|
|
234
|
+
}
|
|
235
|
+
var role = target.getAttribute("role");
|
|
236
|
+
var isSpacebarKey = key === " " || key === "Spacebar";
|
|
237
|
+
var _isButtonRole = role === "button" || role === "menuitem";
|
|
238
|
+
if (isSpacebarKey && _isButtonRole) {
|
|
239
|
+
event.preventDefault();
|
|
240
|
+
}
|
|
241
|
+
event.stopPropagation();
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
onResponderGrant: function(event) {
|
|
245
|
+
return start(event);
|
|
246
|
+
},
|
|
247
|
+
onResponderMove: function(event) {
|
|
248
|
+
if (_this._config.onPressMove != null) {
|
|
249
|
+
_this._config.onPressMove(event);
|
|
250
|
+
}
|
|
251
|
+
var touch = getTouchFromResponderEvent(event);
|
|
252
|
+
if (_this._touchActivatePosition != null) {
|
|
253
|
+
var deltaX = _this._touchActivatePosition.pageX - touch.pageX;
|
|
254
|
+
var deltaY = _this._touchActivatePosition.pageY - touch.pageY;
|
|
255
|
+
if (Math.hypot(deltaX, deltaY) > 10) {
|
|
256
|
+
_this._cancelLongPressDelayTimeout();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
onResponderRelease: function(event) {
|
|
261
|
+
return end(event);
|
|
262
|
+
},
|
|
263
|
+
onResponderTerminate: function(event) {
|
|
264
|
+
if (event.nativeEvent.type === "selectionchange") {
|
|
265
|
+
_this._selectionTerminated = true;
|
|
266
|
+
}
|
|
267
|
+
_this._receiveSignal(RESPONDER_TERMINATED, event);
|
|
268
|
+
},
|
|
269
|
+
onResponderTerminationRequest: function(event) {
|
|
270
|
+
var _this$_config = _this._config;
|
|
271
|
+
var cancelable = _this$_config.cancelable;
|
|
272
|
+
var disabled = _this$_config.disabled;
|
|
273
|
+
var onLongPress = _this$_config.onLongPress;
|
|
274
|
+
if (!disabled && onLongPress != null && _this._isPointerTouch && event.nativeEvent.type === "contextmenu") {
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
if (cancelable == null) {
|
|
278
|
+
return true;
|
|
279
|
+
}
|
|
280
|
+
return cancelable;
|
|
281
|
+
},
|
|
282
|
+
onClick: function(event) {
|
|
283
|
+
var _this$_config2 = _this._config;
|
|
284
|
+
var disabled = _this$_config2.disabled;
|
|
285
|
+
var onPress = _this$_config2.onPress;
|
|
286
|
+
if (!disabled) {
|
|
287
|
+
event.stopPropagation();
|
|
288
|
+
if (_this._longPressDispatched || _this._selectionTerminated) {
|
|
289
|
+
event.preventDefault();
|
|
290
|
+
} else if (onPress != null && event.altKey === false) {
|
|
291
|
+
onPress(event);
|
|
292
|
+
}
|
|
293
|
+
} else {
|
|
294
|
+
if (isButtonRole(event.currentTarget)) {
|
|
295
|
+
event.stopPropagation();
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
onContextMenu: function(event) {
|
|
300
|
+
var _this$_config3 = _this._config;
|
|
301
|
+
var disabled = _this$_config3.disabled;
|
|
302
|
+
var onLongPress = _this$_config3.onLongPress;
|
|
303
|
+
if (!disabled) {
|
|
304
|
+
if (onLongPress != null && _this._isPointerTouch && !event.defaultPrevented) {
|
|
305
|
+
event.preventDefault();
|
|
306
|
+
event.stopPropagation();
|
|
307
|
+
}
|
|
308
|
+
} else {
|
|
309
|
+
if (isButtonRole(event.currentTarget)) {
|
|
310
|
+
event.stopPropagation();
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
/**
|
|
319
|
+
* Receives a state machine signal, performs side effects of the transition
|
|
320
|
+
* and stores the new state. Validates the transition as well.
|
|
321
|
+
*/
|
|
322
|
+
key: "_receiveSignal",
|
|
323
|
+
value: function _receiveSignal(signal, event) {
|
|
324
|
+
var prevState = this._touchState;
|
|
325
|
+
var nextState = null;
|
|
326
|
+
if (Transitions[prevState] != null) {
|
|
327
|
+
nextState = Transitions[prevState][signal];
|
|
328
|
+
}
|
|
329
|
+
if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
if (nextState == null || nextState === ERROR) {
|
|
333
|
+
console.error(`PressResponder: Invalid signal ${signal} for state ${prevState} on responder`);
|
|
334
|
+
} else if (prevState !== nextState) {
|
|
335
|
+
this._performTransitionSideEffects(prevState, nextState, signal, event);
|
|
336
|
+
this._touchState = nextState;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
/**
|
|
342
|
+
* Performs a transition between touchable states and identify any activations
|
|
343
|
+
* or deactivations (and callback invocations).
|
|
344
|
+
*/
|
|
345
|
+
key: "_performTransitionSideEffects",
|
|
346
|
+
value: function _performTransitionSideEffects(prevState, nextState, signal, event) {
|
|
347
|
+
var _this = this;
|
|
348
|
+
if (isTerminalSignal(signal)) {
|
|
349
|
+
setTimeout(function() {
|
|
350
|
+
_this._isPointerTouch = false;
|
|
351
|
+
}, 0);
|
|
352
|
+
this._touchActivatePosition = null;
|
|
353
|
+
this._cancelLongPressDelayTimeout();
|
|
354
|
+
}
|
|
355
|
+
if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {
|
|
356
|
+
var onLongPress = this._config.onLongPress;
|
|
357
|
+
if (onLongPress != null && event.nativeEvent.key == null) {
|
|
358
|
+
onLongPress(event);
|
|
359
|
+
this._longPressDispatched = true;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
var isPrevActive = isActiveSignal(prevState);
|
|
363
|
+
var isNextActive = isActiveSignal(nextState);
|
|
364
|
+
if (!isPrevActive && isNextActive) {
|
|
365
|
+
this._activate(event);
|
|
366
|
+
} else if (isPrevActive && !isNextActive) {
|
|
367
|
+
this._deactivate(event);
|
|
368
|
+
}
|
|
369
|
+
if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {
|
|
370
|
+
var _this$_config4 = this._config;
|
|
371
|
+
var _onLongPress = _this$_config4.onLongPress;
|
|
372
|
+
var onPress = _this$_config4.onPress;
|
|
373
|
+
if (onPress != null) {
|
|
374
|
+
var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;
|
|
375
|
+
if (!isPressCanceledByLongPress) {
|
|
376
|
+
if (!(isNextActive || isPrevActive)) {
|
|
377
|
+
this._activate(event);
|
|
378
|
+
this._deactivate(event);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
this._cancelPressDelayTimeout();
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
key: "_activate",
|
|
388
|
+
value: function _activate(event) {
|
|
389
|
+
var _this$_config5 = this._config;
|
|
390
|
+
var onPressChange = _this$_config5.onPressChange;
|
|
391
|
+
var onPressStart = _this$_config5.onPressStart;
|
|
392
|
+
var touch = getTouchFromResponderEvent(event);
|
|
393
|
+
this._touchActivatePosition = {
|
|
394
|
+
pageX: touch.pageX,
|
|
395
|
+
pageY: touch.pageY
|
|
396
|
+
};
|
|
397
|
+
if (onPressStart != null) {
|
|
398
|
+
onPressStart(event);
|
|
399
|
+
}
|
|
400
|
+
if (onPressChange != null) {
|
|
401
|
+
onPressChange(true);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
key: "_deactivate",
|
|
407
|
+
value: function _deactivate(event) {
|
|
408
|
+
var _this$_config6 = this._config;
|
|
409
|
+
var onPressChange = _this$_config6.onPressChange;
|
|
410
|
+
var onPressEnd = _this$_config6.onPressEnd;
|
|
411
|
+
function end() {
|
|
412
|
+
if (onPressEnd != null) {
|
|
413
|
+
onPressEnd(event);
|
|
414
|
+
}
|
|
415
|
+
if (onPressChange != null) {
|
|
416
|
+
onPressChange(false);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
var delayPressEnd = normalizeDelay(this._config.delayPressEnd);
|
|
420
|
+
if (delayPressEnd > 0) {
|
|
421
|
+
this._pressOutDelayTimeout = setTimeout(function() {
|
|
422
|
+
end();
|
|
423
|
+
}, delayPressEnd);
|
|
424
|
+
} else {
|
|
425
|
+
end();
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
key: "_handleLongPress",
|
|
431
|
+
value: function _handleLongPress(event) {
|
|
432
|
+
if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {
|
|
433
|
+
this._receiveSignal(LONG_PRESS_DETECTED, event);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
key: "_cancelLongPressDelayTimeout",
|
|
439
|
+
value: function _cancelLongPressDelayTimeout() {
|
|
440
|
+
if (this._longPressDelayTimeout != null) {
|
|
441
|
+
clearTimeout(this._longPressDelayTimeout);
|
|
442
|
+
this._longPressDelayTimeout = null;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
key: "_cancelPressDelayTimeout",
|
|
448
|
+
value: function _cancelPressDelayTimeout() {
|
|
449
|
+
if (this._pressDelayTimeout != null) {
|
|
450
|
+
clearTimeout(this._pressDelayTimeout);
|
|
451
|
+
this._pressDelayTimeout = null;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
key: "_cancelPressOutDelayTimeout",
|
|
457
|
+
value: function _cancelPressOutDelayTimeout() {
|
|
458
|
+
if (this._pressOutDelayTimeout != null) {
|
|
459
|
+
clearTimeout(this._pressOutDelayTimeout);
|
|
460
|
+
this._pressOutDelayTimeout = null;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
]);
|
|
465
|
+
return PressResponder2;
|
|
466
|
+
})();
|
|
468
467
|
function normalizeDelay(delay, min, fallback) {
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
468
|
+
if (min === void 0) {
|
|
469
|
+
min = 0;
|
|
470
|
+
}
|
|
471
|
+
if (fallback === void 0) {
|
|
472
|
+
fallback = 0;
|
|
473
|
+
}
|
|
474
|
+
return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);
|
|
476
475
|
}
|
|
477
476
|
function getTouchFromResponderEvent(event) {
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
477
|
+
var _event$nativeEvent = event.nativeEvent;
|
|
478
|
+
var changedTouches = _event$nativeEvent.changedTouches;
|
|
479
|
+
var touches = _event$nativeEvent.touches;
|
|
480
|
+
if (touches != null && touches.length > 0) {
|
|
481
|
+
return touches[0];
|
|
482
|
+
}
|
|
483
|
+
if (changedTouches != null && changedTouches.length > 0) {
|
|
484
|
+
return changedTouches[0];
|
|
485
|
+
}
|
|
486
|
+
return event.nativeEvent;
|
|
488
487
|
}
|
|
488
|
+
|
|
489
489
|
//# sourceMappingURL=PressResponder.native.js.map
|