@tamagui/react-native-use-pressable 2.0.0-rc.4 → 2.0.0-rc.40

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.
@@ -3,91 +3,95 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: !0
9
- });
10
- },
11
- __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
14
  get: () => from[key],
14
15
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
16
  });
16
- return to;
17
- };
17
+ }
18
+ return to;
19
+ };
18
20
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
- value: !0
21
+ value: true
20
22
  }), mod);
21
23
  var PressResponder_exports = {};
22
24
  __export(PressResponder_exports, {
23
25
  PressResponder: () => PressResponder
24
26
  });
25
27
  module.exports = __toCommonJS(PressResponder_exports);
26
- const DELAY = "DELAY",
27
- ERROR = "ERROR",
28
- LONG_PRESS_DETECTED = "LONG_PRESS_DETECTED",
29
- NOT_RESPONDER = "NOT_RESPONDER",
30
- RESPONDER_ACTIVE_LONG_PRESS_START = "RESPONDER_ACTIVE_LONG_PRESS_START",
31
- RESPONDER_ACTIVE_PRESS_START = "RESPONDER_ACTIVE_PRESS_START",
32
- RESPONDER_INACTIVE_PRESS_START = "RESPONDER_INACTIVE_PRESS_START",
33
- RESPONDER_GRANT = "RESPONDER_GRANT",
34
- RESPONDER_RELEASE = "RESPONDER_RELEASE",
35
- RESPONDER_TERMINATED = "RESPONDER_TERMINATED",
36
- Transitions = Object.freeze({
37
- NOT_RESPONDER: {
38
- DELAY: ERROR,
39
- RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
40
- RESPONDER_RELEASE: ERROR,
41
- RESPONDER_TERMINATED: ERROR,
42
- LONG_PRESS_DETECTED: ERROR
43
- },
44
- RESPONDER_INACTIVE_PRESS_START: {
45
- DELAY: RESPONDER_ACTIVE_PRESS_START,
46
- RESPONDER_GRANT: ERROR,
47
- RESPONDER_RELEASE: NOT_RESPONDER,
48
- RESPONDER_TERMINATED: NOT_RESPONDER,
49
- LONG_PRESS_DETECTED: ERROR
50
- },
51
- RESPONDER_ACTIVE_PRESS_START: {
52
- DELAY: ERROR,
53
- RESPONDER_GRANT: ERROR,
54
- RESPONDER_RELEASE: NOT_RESPONDER,
55
- RESPONDER_TERMINATED: NOT_RESPONDER,
56
- LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START
57
- },
58
- RESPONDER_ACTIVE_LONG_PRESS_START: {
59
- DELAY: ERROR,
60
- RESPONDER_GRANT: ERROR,
61
- RESPONDER_RELEASE: NOT_RESPONDER,
62
- RESPONDER_TERMINATED: NOT_RESPONDER,
63
- LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START
64
- },
65
- ERROR: {
66
- DELAY: NOT_RESPONDER,
67
- RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
68
- RESPONDER_RELEASE: NOT_RESPONDER,
69
- RESPONDER_TERMINATED: NOT_RESPONDER,
70
- LONG_PRESS_DETECTED: NOT_RESPONDER
71
- }
72
- }),
73
- isActiveSignal = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START,
74
- isButtonRole = element => element.getAttribute("role") === "button",
75
- isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START,
76
- isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE,
77
- isValidKeyPress = event => {
78
- const key = event.key,
79
- role = event.target.getAttribute("role");
80
- return key === "Enter" || (key === " " || key === "Spacebar") && role === "button";
28
+ const DELAY = "DELAY";
29
+ const ERROR = "ERROR";
30
+ const LONG_PRESS_DETECTED = "LONG_PRESS_DETECTED";
31
+ const NOT_RESPONDER = "NOT_RESPONDER";
32
+ const RESPONDER_ACTIVE_LONG_PRESS_START = "RESPONDER_ACTIVE_LONG_PRESS_START";
33
+ const RESPONDER_ACTIVE_PRESS_START = "RESPONDER_ACTIVE_PRESS_START";
34
+ const RESPONDER_INACTIVE_PRESS_START = "RESPONDER_INACTIVE_PRESS_START";
35
+ const RESPONDER_GRANT = "RESPONDER_GRANT";
36
+ const RESPONDER_RELEASE = "RESPONDER_RELEASE";
37
+ const RESPONDER_TERMINATED = "RESPONDER_TERMINATED";
38
+ const Transitions = Object.freeze({
39
+ NOT_RESPONDER: {
40
+ DELAY: ERROR,
41
+ RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
42
+ RESPONDER_RELEASE: ERROR,
43
+ RESPONDER_TERMINATED: ERROR,
44
+ LONG_PRESS_DETECTED: ERROR
45
+ },
46
+ RESPONDER_INACTIVE_PRESS_START: {
47
+ DELAY: RESPONDER_ACTIVE_PRESS_START,
48
+ RESPONDER_GRANT: ERROR,
49
+ RESPONDER_RELEASE: NOT_RESPONDER,
50
+ RESPONDER_TERMINATED: NOT_RESPONDER,
51
+ LONG_PRESS_DETECTED: ERROR
52
+ },
53
+ RESPONDER_ACTIVE_PRESS_START: {
54
+ DELAY: ERROR,
55
+ RESPONDER_GRANT: ERROR,
56
+ RESPONDER_RELEASE: NOT_RESPONDER,
57
+ RESPONDER_TERMINATED: NOT_RESPONDER,
58
+ LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START
59
+ },
60
+ RESPONDER_ACTIVE_LONG_PRESS_START: {
61
+ DELAY: ERROR,
62
+ RESPONDER_GRANT: ERROR,
63
+ RESPONDER_RELEASE: NOT_RESPONDER,
64
+ RESPONDER_TERMINATED: NOT_RESPONDER,
65
+ LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START
81
66
  },
82
- DEFAULT_LONG_PRESS_DELAY_MS = 450,
83
- DEFAULT_PRESS_DELAY_MS = 50;
67
+ ERROR: {
68
+ DELAY: NOT_RESPONDER,
69
+ RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,
70
+ RESPONDER_RELEASE: NOT_RESPONDER,
71
+ RESPONDER_TERMINATED: NOT_RESPONDER,
72
+ LONG_PRESS_DETECTED: NOT_RESPONDER
73
+ }
74
+ });
75
+ const isActiveSignal = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;
76
+ const isButtonRole = element => element.getAttribute("role") === "button";
77
+ const isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;
78
+ const isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;
79
+ const isValidKeyPress = event => {
80
+ const key = event.key;
81
+ const target = event.target;
82
+ const role = target.getAttribute("role");
83
+ const isSpacebar = key === " " || key === "Spacebar";
84
+ return key === "Enter" || isSpacebar && role === "button";
85
+ };
86
+ const DEFAULT_LONG_PRESS_DELAY_MS = 450;
87
+ const DEFAULT_PRESS_DELAY_MS = 50;
84
88
  class PressResponder {
85
89
  _touchActivatePosition = null;
86
90
  _pressDelayTimeout = 0;
87
- _selectionTerminated = !1;
88
- _isPointerTouch = !1;
91
+ _selectionTerminated = false;
92
+ _isPointerTouch = false;
89
93
  _longPressDelayTimeout = 0;
90
- _longPressDispatched = !1;
94
+ _longPressDispatched = false;
91
95
  _pressOutDelayTimeout = 0;
92
96
  _touchState = NOT_RESPONDER;
93
97
  _config = null;
@@ -102,75 +106,120 @@ class PressResponder {
102
106
  * Resets any pending timers. This should be called on unmount.
103
107
  */
104
108
  reset() {
105
- this._cancelLongPressDelayTimeout(), this._cancelPressDelayTimeout(), this._cancelPressOutDelayTimeout();
109
+ this._cancelLongPressDelayTimeout();
110
+ this._cancelPressDelayTimeout();
111
+ this._cancelPressOutDelayTimeout();
106
112
  }
107
113
  /**
108
114
  * Returns a set of props to spread into the interactive element.
109
115
  */
110
116
  getEventHandlers() {
111
- return this._eventHandlers == null && (this._eventHandlers = this._createEventHandlers()), this._eventHandlers;
117
+ if (this._eventHandlers == null) {
118
+ this._eventHandlers = this._createEventHandlers();
119
+ }
120
+ return this._eventHandlers;
112
121
  }
113
122
  _createEventHandlers() {
114
123
  const start = (event, shouldDelay) => {
115
- event.persist(), this._cancelPressOutDelayTimeout(), this._longPressDispatched = !1, this._selectionTerminated = !1, this._touchState = NOT_RESPONDER, this._isPointerTouch = event.nativeEvent.type === "touchstart", this._receiveSignal(RESPONDER_GRANT, event);
116
- const delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);
117
- shouldDelay !== !1 && delayPressStart > 0 ? this._pressDelayTimeout = setTimeout(() => {
124
+ event.persist();
125
+ this._cancelPressOutDelayTimeout();
126
+ this._longPressDispatched = false;
127
+ this._selectionTerminated = false;
128
+ this._touchState = NOT_RESPONDER;
129
+ this._isPointerTouch = event.nativeEvent.type === "touchstart";
130
+ this._receiveSignal(RESPONDER_GRANT, event);
131
+ const delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);
132
+ if (shouldDelay !== false && delayPressStart > 0) {
133
+ this._pressDelayTimeout = setTimeout(() => {
118
134
  this._receiveSignal(DELAY, event);
119
- }, delayPressStart) : this._receiveSignal(DELAY, event);
120
- const delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);
121
- this._longPressDelayTimeout = setTimeout(() => {
122
- this._handleLongPress(event);
123
- }, delayLongPress + delayPressStart);
124
- },
125
- end = event => {
126
- this._receiveSignal(RESPONDER_RELEASE, event);
127
- },
128
- keyupHandler = event => {
129
- const onPress = this._config.onPress,
130
- target = event.target;
131
- if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {
132
- end(event), document.removeEventListener("keyup", keyupHandler);
133
- const role = target.getAttribute("role"),
134
- elementType = target.tagName.toLowerCase(),
135
- isNativeInteractiveElement = role === "link" || elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea";
136
- onPress != null && !isNativeInteractiveElement && onPress(event);
135
+ }, delayPressStart);
136
+ } else {
137
+ this._receiveSignal(DELAY, event);
138
+ }
139
+ const delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);
140
+ this._longPressDelayTimeout = setTimeout(() => {
141
+ this._handleLongPress(event);
142
+ }, delayLongPress + delayPressStart);
143
+ };
144
+ const end = event => {
145
+ this._receiveSignal(RESPONDER_RELEASE, event);
146
+ };
147
+ const keyupHandler = event => {
148
+ const onPress = this._config.onPress;
149
+ const target = event.target;
150
+ if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {
151
+ end(event);
152
+ document.removeEventListener("keyup", keyupHandler);
153
+ const role = target.getAttribute("role");
154
+ const elementType = target.tagName.toLowerCase();
155
+ const isNativeInteractiveElement = role === "link" || elementType === "a" || elementType === "button" || elementType === "input" || elementType === "select" || elementType === "textarea";
156
+ if (onPress != null && !isNativeInteractiveElement) {
157
+ onPress(event);
137
158
  }
138
- };
159
+ }
160
+ };
139
161
  return {
140
162
  onStartShouldSetResponder: event => {
141
163
  const disabled = this._config.disabled;
142
- return disabled && isButtonRole(event.currentTarget) && event.stopPropagation(), disabled == null ? !0 : !disabled;
164
+ if (disabled && isButtonRole(event.currentTarget)) {
165
+ event.stopPropagation();
166
+ }
167
+ if (disabled == null) {
168
+ return true;
169
+ }
170
+ return !disabled;
143
171
  },
144
172
  onKeyDown: event => {
145
- const disabled = this._config.disabled,
146
- key = event.key,
147
- target = event.target;
173
+ const disabled = this._config.disabled;
174
+ const key = event.key;
175
+ const target = event.target;
148
176
  if (!disabled && isValidKeyPress(event)) {
149
- this._touchState === NOT_RESPONDER && (start(event, !1), document.addEventListener("keyup", keyupHandler));
177
+ if (this._touchState === NOT_RESPONDER) {
178
+ start(event, false);
179
+ document.addEventListener("keyup", keyupHandler);
180
+ }
150
181
  const role = target.getAttribute("role");
151
- (key === " " || key === "Spacebar") && (role === "button" || role === "menuitem") && event.preventDefault(), event.stopPropagation();
182
+ const isSpacebarKey = key === " " || key === "Spacebar";
183
+ const _isButtonRole = role === "button" || role === "menuitem";
184
+ if (isSpacebarKey && _isButtonRole) {
185
+ event.preventDefault();
186
+ }
187
+ event.stopPropagation();
152
188
  }
153
189
  },
154
190
  onResponderGrant: event => start(event),
155
191
  onResponderMove: event => {
156
- this._config.onPressMove != null && this._config.onPressMove(event);
192
+ if (this._config.onPressMove != null) {
193
+ this._config.onPressMove(event);
194
+ }
157
195
  const touch = getTouchFromResponderEvent(event);
158
196
  if (this._touchActivatePosition != null) {
159
- const deltaX = this._touchActivatePosition.pageX - touch.pageX,
160
- deltaY = this._touchActivatePosition.pageY - touch.pageY;
161
- Math.hypot(deltaX, deltaY) > 10 && this._cancelLongPressDelayTimeout();
197
+ const deltaX = this._touchActivatePosition.pageX - touch.pageX;
198
+ const deltaY = this._touchActivatePosition.pageY - touch.pageY;
199
+ if (Math.hypot(deltaX, deltaY) > 10) {
200
+ this._cancelLongPressDelayTimeout();
201
+ }
162
202
  }
163
203
  },
164
204
  onResponderRelease: event => end(event),
165
205
  onResponderTerminate: event => {
166
- event.nativeEvent.type === "selectionchange" && (this._selectionTerminated = !0), this._receiveSignal(RESPONDER_TERMINATED, event);
206
+ if (event.nativeEvent.type === "selectionchange") {
207
+ this._selectionTerminated = true;
208
+ }
209
+ this._receiveSignal(RESPONDER_TERMINATED, event);
167
210
  },
168
211
  onResponderTerminationRequest: event => {
169
- const _this$_config = this._config,
170
- cancelable = _this$_config.cancelable,
171
- disabled = _this$_config.disabled,
172
- onLongPress = _this$_config.onLongPress;
173
- return !disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === "contextmenu" ? !1 : cancelable ?? !0;
212
+ const _this$_config = this._config;
213
+ const cancelable = _this$_config.cancelable;
214
+ const disabled = _this$_config.disabled;
215
+ const onLongPress = _this$_config.onLongPress;
216
+ if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === "contextmenu") {
217
+ return false;
218
+ }
219
+ if (cancelable == null) {
220
+ return true;
221
+ }
222
+ return cancelable;
174
223
  },
175
224
  // NOTE: this diverges from react-native in 3 significant ways:
176
225
  // * The `onPress` callback is not connected to the responder system (the native
@@ -181,18 +230,38 @@ class PressResponder {
181
230
  // `click` target that is using the PressResponder.
182
231
  // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.
183
232
  onClick: event => {
184
- const _this$_config2 = this._config,
185
- disabled = _this$_config2.disabled,
186
- onPress = _this$_config2.onPress;
187
- disabled ? isButtonRole(event.currentTarget) && event.stopPropagation() : (event.stopPropagation(), this._longPressDispatched || this._selectionTerminated ? event.preventDefault() : onPress != null && event.altKey === !1 && onPress(event));
233
+ const _this$_config2 = this._config;
234
+ const disabled = _this$_config2.disabled;
235
+ const onPress = _this$_config2.onPress;
236
+ if (!disabled) {
237
+ event.stopPropagation();
238
+ if (this._longPressDispatched || this._selectionTerminated) {
239
+ event.preventDefault();
240
+ } else if (onPress != null && event.altKey === false) {
241
+ onPress(event);
242
+ }
243
+ } else {
244
+ if (isButtonRole(event.currentTarget)) {
245
+ event.stopPropagation();
246
+ }
247
+ }
188
248
  },
189
249
  // If `onLongPress` is provided and a touch pointer is being used, prevent the
190
250
  // default context menu from opening.
191
251
  onContextMenu: event => {
192
- const _this$_config3 = this._config,
193
- disabled = _this$_config3.disabled,
194
- onLongPress = _this$_config3.onLongPress;
195
- disabled ? isButtonRole(event.currentTarget) && event.stopPropagation() : onLongPress != null && this._isPointerTouch && !event.defaultPrevented && (event.preventDefault(), event.stopPropagation());
252
+ const _this$_config3 = this._config;
253
+ const disabled = _this$_config3.disabled;
254
+ const onLongPress = _this$_config3.onLongPress;
255
+ if (!disabled) {
256
+ if (onLongPress != null && this._isPointerTouch && !event.defaultPrevented) {
257
+ event.preventDefault();
258
+ event.stopPropagation();
259
+ }
260
+ } else {
261
+ if (isButtonRole(event.currentTarget)) {
262
+ event.stopPropagation();
263
+ }
264
+ }
196
265
  }
197
266
  };
198
267
  }
@@ -203,69 +272,140 @@ class PressResponder {
203
272
  _receiveSignal(signal, event) {
204
273
  const prevState = this._touchState;
205
274
  let nextState = null;
206
- Transitions[prevState] != null && (nextState = Transitions[prevState][signal]), !(this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) && (nextState == null || nextState === ERROR ? console.error(`PressResponder: Invalid signal ${signal} for state ${prevState} on responder`) : prevState !== nextState && (this._performTransitionSideEffects(prevState, nextState, signal, event), this._touchState = nextState));
275
+ if (Transitions[prevState] != null) {
276
+ nextState = Transitions[prevState][signal];
277
+ }
278
+ if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {
279
+ return;
280
+ }
281
+ if (nextState == null || nextState === ERROR) {
282
+ console.error(`PressResponder: Invalid signal ${signal} for state ${prevState} on responder`);
283
+ } else if (prevState !== nextState) {
284
+ this._performTransitionSideEffects(prevState, nextState, signal, event);
285
+ this._touchState = nextState;
286
+ }
207
287
  }
208
288
  /**
209
289
  * Performs a transition between touchable states and identify any activations
210
290
  * or deactivations (and callback invocations).
211
291
  */
212
292
  _performTransitionSideEffects(prevState, nextState, signal, event) {
213
- if (isTerminalSignal(signal) && (setTimeout(() => {
214
- this._isPointerTouch = !1;
215
- }, 0), this._touchActivatePosition = null, this._cancelLongPressDelayTimeout()), isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {
293
+ if (isTerminalSignal(signal)) {
294
+ setTimeout(() => {
295
+ this._isPointerTouch = false;
296
+ }, 0);
297
+ this._touchActivatePosition = null;
298
+ this._cancelLongPressDelayTimeout();
299
+ }
300
+ if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {
216
301
  const onLongPress = this._config.onLongPress;
217
- onLongPress != null && event.nativeEvent.key == null && (onLongPress(event), this._longPressDispatched = !0);
302
+ if (onLongPress != null && event.nativeEvent.key == null) {
303
+ onLongPress(event);
304
+ this._longPressDispatched = true;
305
+ }
306
+ }
307
+ const isPrevActive = isActiveSignal(prevState);
308
+ const isNextActive = isActiveSignal(nextState);
309
+ if (!isPrevActive && isNextActive) {
310
+ this._activate(event);
311
+ } else if (isPrevActive && !isNextActive) {
312
+ this._deactivate(event);
218
313
  }
219
- const isPrevActive = isActiveSignal(prevState),
220
- isNextActive = isActiveSignal(nextState);
221
- if (!isPrevActive && isNextActive ? this._activate(event) : isPrevActive && !isNextActive && this._deactivate(event), isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {
222
- const _this$_config4 = this._config,
223
- _onLongPress = _this$_config4.onLongPress;
224
- _this$_config4.onPress != null && (_onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START || isNextActive || isPrevActive || (this._activate(event), this._deactivate(event)));
314
+ if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {
315
+ const _this$_config4 = this._config;
316
+ const _onLongPress = _this$_config4.onLongPress;
317
+ const onPress = _this$_config4.onPress;
318
+ if (onPress != null) {
319
+ const isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;
320
+ if (!isPressCanceledByLongPress) {
321
+ if (!(isNextActive || isPrevActive)) {
322
+ this._activate(event);
323
+ this._deactivate(event);
324
+ }
325
+ }
326
+ }
225
327
  }
226
328
  this._cancelPressDelayTimeout();
227
329
  }
228
330
  _activate(event) {
229
- const _this$_config5 = this._config,
230
- onPressChange = _this$_config5.onPressChange,
231
- onPressStart = _this$_config5.onPressStart,
232
- touch = getTouchFromResponderEvent(event);
331
+ const _this$_config5 = this._config;
332
+ const onPressChange = _this$_config5.onPressChange;
333
+ const onPressStart = _this$_config5.onPressStart;
334
+ const touch = getTouchFromResponderEvent(event);
233
335
  this._touchActivatePosition = {
234
336
  pageX: touch.pageX,
235
337
  pageY: touch.pageY
236
- }, onPressStart?.(event), onPressChange?.(!0);
338
+ };
339
+ if (onPressStart != null) {
340
+ onPressStart(event);
341
+ }
342
+ if (onPressChange != null) {
343
+ onPressChange(true);
344
+ }
237
345
  }
238
346
  _deactivate(event) {
239
- const _this$_config6 = this._config,
240
- onPressChange = _this$_config6.onPressChange,
241
- onPressEnd = _this$_config6.onPressEnd;
347
+ const _this$_config6 = this._config;
348
+ const onPressChange = _this$_config6.onPressChange;
349
+ const onPressEnd = _this$_config6.onPressEnd;
242
350
  function end() {
243
- onPressEnd?.(event), onPressChange?.(!1);
351
+ if (onPressEnd != null) {
352
+ onPressEnd(event);
353
+ }
354
+ if (onPressChange != null) {
355
+ onPressChange(false);
356
+ }
244
357
  }
245
358
  const delayPressEnd = normalizeDelay(this._config.delayPressEnd);
246
- delayPressEnd > 0 ? this._pressOutDelayTimeout = setTimeout(() => {
359
+ if (delayPressEnd > 0) {
360
+ this._pressOutDelayTimeout = setTimeout(() => {
361
+ end();
362
+ }, delayPressEnd);
363
+ } else {
247
364
  end();
248
- }, delayPressEnd) : end();
365
+ }
249
366
  }
250
367
  _handleLongPress(event) {
251
- (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) && this._receiveSignal(LONG_PRESS_DETECTED, event);
368
+ if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {
369
+ this._receiveSignal(LONG_PRESS_DETECTED, event);
370
+ }
252
371
  }
253
372
  _cancelLongPressDelayTimeout() {
254
- this._longPressDelayTimeout != null && (clearTimeout(this._longPressDelayTimeout), this._longPressDelayTimeout = null);
373
+ if (this._longPressDelayTimeout != null) {
374
+ clearTimeout(this._longPressDelayTimeout);
375
+ this._longPressDelayTimeout = null;
376
+ }
255
377
  }
256
378
  _cancelPressDelayTimeout() {
257
- this._pressDelayTimeout != null && (clearTimeout(this._pressDelayTimeout), this._pressDelayTimeout = null);
379
+ if (this._pressDelayTimeout != null) {
380
+ clearTimeout(this._pressDelayTimeout);
381
+ this._pressDelayTimeout = null;
382
+ }
258
383
  }
259
384
  _cancelPressOutDelayTimeout() {
260
- this._pressOutDelayTimeout != null && (clearTimeout(this._pressOutDelayTimeout), this._pressOutDelayTimeout = null);
385
+ if (this._pressOutDelayTimeout != null) {
386
+ clearTimeout(this._pressOutDelayTimeout);
387
+ this._pressOutDelayTimeout = null;
388
+ }
261
389
  }
262
390
  }
263
391
  function normalizeDelay(delay, min, fallback) {
264
- return min === void 0 && (min = 0), fallback === void 0 && (fallback = 0), Math.max(min, delay ?? fallback);
392
+ if (min === void 0) {
393
+ min = 0;
394
+ }
395
+ if (fallback === void 0) {
396
+ fallback = 0;
397
+ }
398
+ return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);
265
399
  }
266
400
  function getTouchFromResponderEvent(event) {
267
- const _event$nativeEvent = event.nativeEvent,
268
- changedTouches = _event$nativeEvent.changedTouches,
269
- touches = _event$nativeEvent.touches;
270
- return touches != null && touches.length > 0 ? touches[0] : changedTouches != null && changedTouches.length > 0 ? changedTouches[0] : event.nativeEvent;
401
+ const _event$nativeEvent = event.nativeEvent;
402
+ const changedTouches = _event$nativeEvent.changedTouches;
403
+ const touches = _event$nativeEvent.touches;
404
+ if (touches != null && touches.length > 0) {
405
+ return touches[0];
406
+ }
407
+ if (changedTouches != null && changedTouches.length > 0) {
408
+ return changedTouches[0];
409
+ }
410
+ return event.nativeEvent;
271
411
  }