react-spring-carousel 3.0.0-beta080 → 3.0.0-beta081

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.
@@ -1,1004 +0,0 @@
1
- import I, { useRef as nt, useEffect as rt } from "react";
2
- const P = "RSC::Event";
3
- function qt() {
4
- const s = nt(null);
5
- function t(n) {
6
- rt(() => {
7
- s.current || (s.current = document.createElement("div"));
8
- function r(i) {
9
- n(i.detail);
10
- }
11
- if (s.current)
12
- return s.current.addEventListener(P, r, !1), () => {
13
- var i;
14
- (i = s.current) == null || i.removeEventListener(P, r, !1);
15
- };
16
- }, [n]);
17
- }
18
- function e(n) {
19
- if (s.current) {
20
- const r = new CustomEvent(P, {
21
- detail: n
22
- });
23
- s.current.dispatchEvent(r);
24
- }
25
- }
26
- return {
27
- useListenToCustomEvent: t,
28
- emitEvent: e
29
- };
30
- }
31
- function it(s, t, e) {
32
- return Math.max(t, Math.min(s, e));
33
- }
34
- const d = {
35
- toVector(s, t) {
36
- return s === void 0 && (s = t), Array.isArray(s) ? s : [s, s];
37
- },
38
- add(s, t) {
39
- return [s[0] + t[0], s[1] + t[1]];
40
- },
41
- sub(s, t) {
42
- return [s[0] - t[0], s[1] - t[1]];
43
- },
44
- addTo(s, t) {
45
- s[0] += t[0], s[1] += t[1];
46
- },
47
- subTo(s, t) {
48
- s[0] -= t[0], s[1] -= t[1];
49
- }
50
- };
51
- function M(s, t, e) {
52
- return t === 0 || Math.abs(t) === 1 / 0 ? Math.pow(s, e * 5) : s * t * e / (t + e * s);
53
- }
54
- function N(s, t, e, n = 0.15) {
55
- return n === 0 ? it(s, t, e) : s < t ? -M(t - s, e - t, n) + t : s > e ? +M(s - e, e - t, n) + e : s;
56
- }
57
- function ot(s, [t, e], [n, r]) {
58
- const [[i, o], [c, f]] = s;
59
- return [N(t, i, o, n), N(e, c, f, r)];
60
- }
61
- function at(s, t) {
62
- if (typeof s != "object" || s === null)
63
- return s;
64
- var e = s[Symbol.toPrimitive];
65
- if (e !== void 0) {
66
- var n = e.call(s, t || "default");
67
- if (typeof n != "object")
68
- return n;
69
- throw new TypeError("@@toPrimitive must return a primitive value.");
70
- }
71
- return (t === "string" ? String : Number)(s);
72
- }
73
- function ct(s) {
74
- var t = at(s, "string");
75
- return typeof t == "symbol" ? t : String(t);
76
- }
77
- function l(s, t, e) {
78
- return t = ct(t), t in s ? Object.defineProperty(s, t, {
79
- value: e,
80
- enumerable: !0,
81
- configurable: !0,
82
- writable: !0
83
- }) : s[t] = e, s;
84
- }
85
- function U(s, t) {
86
- var e = Object.keys(s);
87
- if (Object.getOwnPropertySymbols) {
88
- var n = Object.getOwnPropertySymbols(s);
89
- t && (n = n.filter(function(r) {
90
- return Object.getOwnPropertyDescriptor(s, r).enumerable;
91
- })), e.push.apply(e, n);
92
- }
93
- return e;
94
- }
95
- function u(s) {
96
- for (var t = 1; t < arguments.length; t++) {
97
- var e = arguments[t] != null ? arguments[t] : {};
98
- t % 2 ? U(Object(e), !0).forEach(function(n) {
99
- l(s, n, e[n]);
100
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(s, Object.getOwnPropertyDescriptors(e)) : U(Object(e)).forEach(function(n) {
101
- Object.defineProperty(s, n, Object.getOwnPropertyDescriptor(e, n));
102
- });
103
- }
104
- return s;
105
- }
106
- const H = {
107
- pointer: {
108
- start: "down",
109
- change: "move",
110
- end: "up"
111
- },
112
- mouse: {
113
- start: "down",
114
- change: "move",
115
- end: "up"
116
- },
117
- touch: {
118
- start: "start",
119
- change: "move",
120
- end: "end"
121
- },
122
- gesture: {
123
- start: "start",
124
- change: "change",
125
- end: "end"
126
- }
127
- };
128
- function K(s) {
129
- return s ? s[0].toUpperCase() + s.slice(1) : "";
130
- }
131
- const ut = ["enter", "leave"];
132
- function ft(s = !1, t) {
133
- return s && !ut.includes(t);
134
- }
135
- function ht(s, t = "", e = !1) {
136
- const n = H[s], r = n && n[t] || t;
137
- return "on" + K(s) + K(r) + (ft(e, r) ? "Capture" : "");
138
- }
139
- const dt = ["gotpointercapture", "lostpointercapture"];
140
- function lt(s) {
141
- let t = s.substring(2).toLowerCase();
142
- const e = !!~t.indexOf("passive");
143
- e && (t = t.replace("passive", ""));
144
- const n = dt.includes(t) ? "capturecapture" : "capture", r = !!~t.indexOf(n);
145
- return r && (t = t.replace("capture", "")), {
146
- device: t,
147
- capture: r,
148
- passive: e
149
- };
150
- }
151
- function pt(s, t = "") {
152
- const e = H[s], n = e && e[t] || t;
153
- return s + n;
154
- }
155
- function O(s) {
156
- return "touches" in s;
157
- }
158
- function G(s) {
159
- return O(s) ? "touch" : "pointerType" in s ? s.pointerType : "mouse";
160
- }
161
- function mt(s) {
162
- return Array.from(s.touches).filter((t) => {
163
- var e, n;
164
- return t.target === s.currentTarget || ((e = s.currentTarget) === null || e === void 0 || (n = e.contains) === null || n === void 0 ? void 0 : n.call(e, t.target));
165
- });
166
- }
167
- function gt(s) {
168
- return s.type === "touchend" || s.type === "touchcancel" ? s.changedTouches : s.targetTouches;
169
- }
170
- function X(s) {
171
- return O(s) ? gt(s)[0] : s;
172
- }
173
- function _t(s) {
174
- return mt(s).map((t) => t.identifier);
175
- }
176
- function x(s) {
177
- const t = X(s);
178
- return O(s) ? t.identifier : t.pointerId;
179
- }
180
- function R(s) {
181
- const t = X(s);
182
- return [t.clientX, t.clientY];
183
- }
184
- function yt(s) {
185
- const t = {};
186
- if ("buttons" in s && (t.buttons = s.buttons), "shiftKey" in s) {
187
- const {
188
- shiftKey: e,
189
- altKey: n,
190
- metaKey: r,
191
- ctrlKey: i
192
- } = s;
193
- Object.assign(t, {
194
- shiftKey: e,
195
- altKey: n,
196
- metaKey: r,
197
- ctrlKey: i
198
- });
199
- }
200
- return t;
201
- }
202
- function k(s, ...t) {
203
- return typeof s == "function" ? s(...t) : s;
204
- }
205
- function vt() {
206
- }
207
- function bt(...s) {
208
- return s.length === 0 ? vt : s.length === 1 ? s[0] : function() {
209
- let t;
210
- for (const e of s)
211
- t = e.apply(this, arguments) || t;
212
- return t;
213
- };
214
- }
215
- function V(s, t) {
216
- return Object.assign({}, t, s || {});
217
- }
218
- const wt = 32;
219
- class Et {
220
- constructor(t, e, n) {
221
- this.ctrl = t, this.args = e, this.key = n, this.state || (this.state = {}, this.computeValues([0, 0]), this.computeInitial(), this.init && this.init(), this.reset());
222
- }
223
- get state() {
224
- return this.ctrl.state[this.key];
225
- }
226
- set state(t) {
227
- this.ctrl.state[this.key] = t;
228
- }
229
- get shared() {
230
- return this.ctrl.state.shared;
231
- }
232
- get eventStore() {
233
- return this.ctrl.gestureEventStores[this.key];
234
- }
235
- get timeoutStore() {
236
- return this.ctrl.gestureTimeoutStores[this.key];
237
- }
238
- get config() {
239
- return this.ctrl.config[this.key];
240
- }
241
- get sharedConfig() {
242
- return this.ctrl.config.shared;
243
- }
244
- get handler() {
245
- return this.ctrl.handlers[this.key];
246
- }
247
- reset() {
248
- const {
249
- state: t,
250
- shared: e,
251
- ingKey: n,
252
- args: r
253
- } = this;
254
- e[n] = t._active = t.active = t._blocked = t._force = !1, t._step = [!1, !1], t.intentional = !1, t._movement = [0, 0], t._distance = [0, 0], t._direction = [0, 0], t._delta = [0, 0], t._bounds = [[-1 / 0, 1 / 0], [-1 / 0, 1 / 0]], t.args = r, t.axis = void 0, t.memo = void 0, t.elapsedTime = t.timeDelta = 0, t.direction = [0, 0], t.distance = [0, 0], t.overflow = [0, 0], t._movementBound = [!1, !1], t.velocity = [0, 0], t.movement = [0, 0], t.delta = [0, 0], t.timeStamp = 0;
255
- }
256
- start(t) {
257
- const e = this.state, n = this.config;
258
- e._active || (this.reset(), this.computeInitial(), e._active = !0, e.target = t.target, e.currentTarget = t.currentTarget, e.lastOffset = n.from ? k(n.from, e) : e.offset, e.offset = e.lastOffset, e.startTime = e.timeStamp = t.timeStamp);
259
- }
260
- computeValues(t) {
261
- const e = this.state;
262
- e._values = t, e.values = this.config.transform(t);
263
- }
264
- computeInitial() {
265
- const t = this.state;
266
- t._initial = t._values, t.initial = t.values;
267
- }
268
- compute(t) {
269
- const {
270
- state: e,
271
- config: n,
272
- shared: r
273
- } = this;
274
- e.args = this.args;
275
- let i = 0;
276
- if (t && (e.event = t, n.preventDefault && t.cancelable && e.event.preventDefault(), e.type = t.type, r.touches = this.ctrl.pointerIds.size || this.ctrl.touchIds.size, r.locked = !!document.pointerLockElement, Object.assign(r, yt(t)), r.down = r.pressed = r.buttons % 2 === 1 || r.touches > 0, i = t.timeStamp - e.timeStamp, e.timeStamp = t.timeStamp, e.elapsedTime = e.timeStamp - e.startTime), e._active) {
277
- const _ = e._delta.map(Math.abs);
278
- d.addTo(e._distance, _);
279
- }
280
- this.axisIntent && this.axisIntent(t);
281
- const [o, c] = e._movement, [f, h] = n.threshold, {
282
- _step: a,
283
- values: g
284
- } = e;
285
- if (n.hasCustomTransform ? (a[0] === !1 && (a[0] = Math.abs(o) >= f && g[0]), a[1] === !1 && (a[1] = Math.abs(c) >= h && g[1])) : (a[0] === !1 && (a[0] = Math.abs(o) >= f && Math.sign(o) * f), a[1] === !1 && (a[1] = Math.abs(c) >= h && Math.sign(c) * h)), e.intentional = a[0] !== !1 || a[1] !== !1, !e.intentional)
286
- return;
287
- const p = [0, 0];
288
- if (n.hasCustomTransform) {
289
- const [_, st] = g;
290
- p[0] = a[0] !== !1 ? _ - a[0] : 0, p[1] = a[1] !== !1 ? st - a[1] : 0;
291
- } else
292
- p[0] = a[0] !== !1 ? o - a[0] : 0, p[1] = a[1] !== !1 ? c - a[1] : 0;
293
- this.restrictToAxis && !e._blocked && this.restrictToAxis(p);
294
- const w = e.offset, E = e._active && !e._blocked || e.active;
295
- E && (e.first = e._active && !e.active, e.last = !e._active && e.active, e.active = r[this.ingKey] = e._active, t && (e.first && ("bounds" in n && (e._bounds = k(n.bounds, e)), this.setup && this.setup()), e.movement = p, this.computeOffset()));
296
- const [T, D] = e.offset, [[A, Q], [Z, tt]] = e._bounds;
297
- e.overflow = [T < A ? -1 : T > Q ? 1 : 0, D < Z ? -1 : D > tt ? 1 : 0], e._movementBound[0] = e.overflow[0] ? e._movementBound[0] === !1 ? e._movement[0] : e._movementBound[0] : !1, e._movementBound[1] = e.overflow[1] ? e._movementBound[1] === !1 ? e._movement[1] : e._movementBound[1] : !1;
298
- const et = e._active ? n.rubberband || [0, 0] : [0, 0];
299
- if (e.offset = ot(e._bounds, e.offset, et), e.delta = d.sub(e.offset, w), this.computeMovement(), E && (!e.last || i > wt)) {
300
- e.delta = d.sub(e.offset, w);
301
- const _ = e.delta.map(Math.abs);
302
- d.addTo(e.distance, _), e.direction = e.delta.map(Math.sign), e._direction = e._delta.map(Math.sign), !e.first && i > 0 && (e.velocity = [_[0] / i, _[1] / i], e.timeDelta = i);
303
- }
304
- }
305
- emit() {
306
- const t = this.state, e = this.shared, n = this.config;
307
- if (t._active || this.clean(), (t._blocked || !t.intentional) && !t._force && !n.triggerAllEvents)
308
- return;
309
- const r = this.handler(u(u(u({}, e), t), {}, {
310
- [this.aliasKey]: t.values
311
- }));
312
- r !== void 0 && (t.memo = r);
313
- }
314
- clean() {
315
- this.eventStore.clean(), this.timeoutStore.clean();
316
- }
317
- }
318
- function Tt([s, t], e) {
319
- const n = Math.abs(s), r = Math.abs(t);
320
- if (n > r && n > e)
321
- return "x";
322
- if (r > n && r > e)
323
- return "y";
324
- }
325
- class Dt extends Et {
326
- constructor(...t) {
327
- super(...t), l(this, "aliasKey", "xy");
328
- }
329
- reset() {
330
- super.reset(), this.state.axis = void 0;
331
- }
332
- init() {
333
- this.state.offset = [0, 0], this.state.lastOffset = [0, 0];
334
- }
335
- computeOffset() {
336
- this.state.offset = d.add(this.state.lastOffset, this.state.movement);
337
- }
338
- computeMovement() {
339
- this.state.movement = d.sub(this.state.offset, this.state.lastOffset);
340
- }
341
- axisIntent(t) {
342
- const e = this.state, n = this.config;
343
- if (!e.axis && t) {
344
- const r = typeof n.axisThreshold == "object" ? n.axisThreshold[G(t)] : n.axisThreshold;
345
- e.axis = Tt(e._movement, r);
346
- }
347
- e._blocked = (n.lockDirection || !!n.axis) && !e.axis || !!n.axis && n.axis !== e.axis;
348
- }
349
- restrictToAxis(t) {
350
- if (this.config.axis || this.config.lockDirection)
351
- switch (this.state.axis) {
352
- case "x":
353
- t[1] = 0;
354
- break;
355
- case "y":
356
- t[0] = 0;
357
- break;
358
- }
359
- }
360
- }
361
- const j = (s) => s, B = 0.15, L = {
362
- enabled(s = !0) {
363
- return s;
364
- },
365
- eventOptions(s, t, e) {
366
- return u(u({}, e.shared.eventOptions), s);
367
- },
368
- preventDefault(s = !1) {
369
- return s;
370
- },
371
- triggerAllEvents(s = !1) {
372
- return s;
373
- },
374
- rubberband(s = 0) {
375
- switch (s) {
376
- case !0:
377
- return [B, B];
378
- case !1:
379
- return [0, 0];
380
- default:
381
- return d.toVector(s);
382
- }
383
- },
384
- from(s) {
385
- if (typeof s == "function")
386
- return s;
387
- if (s != null)
388
- return d.toVector(s);
389
- },
390
- transform(s, t, e) {
391
- const n = s || e.shared.transform;
392
- if (this.hasCustomTransform = !!n, process.env.NODE_ENV === "development") {
393
- const r = n || j;
394
- return (i) => {
395
- const o = r(i);
396
- return (!isFinite(o[0]) || !isFinite(o[1])) && console.warn(`[@use-gesture]: config.transform() must produce a valid result, but it was: [${o[0]},${[1]}]`), o;
397
- };
398
- }
399
- return n || j;
400
- },
401
- threshold(s) {
402
- return d.toVector(s, 0);
403
- }
404
- };
405
- process.env.NODE_ENV === "development" && Object.assign(L, {
406
- domTarget(s) {
407
- if (s !== void 0)
408
- throw Error("[@use-gesture]: `domTarget` option has been renamed to `target`.");
409
- return NaN;
410
- },
411
- lockDirection(s) {
412
- if (s !== void 0)
413
- throw Error("[@use-gesture]: `lockDirection` option has been merged with `axis`. Use it as in `{ axis: 'lock' }`");
414
- return NaN;
415
- },
416
- initial(s) {
417
- if (s !== void 0)
418
- throw Error("[@use-gesture]: `initial` option has been renamed to `from`.");
419
- return NaN;
420
- }
421
- });
422
- const St = 0, v = u(u({}, L), {}, {
423
- axis(s, t, {
424
- axis: e
425
- }) {
426
- if (this.lockDirection = e === "lock", !this.lockDirection)
427
- return e;
428
- },
429
- axisThreshold(s = St) {
430
- return s;
431
- },
432
- bounds(s = {}) {
433
- if (typeof s == "function")
434
- return (i) => v.bounds(s(i));
435
- if ("current" in s)
436
- return () => s.current;
437
- if (typeof HTMLElement == "function" && s instanceof HTMLElement)
438
- return s;
439
- const {
440
- left: t = -1 / 0,
441
- right: e = 1 / 0,
442
- top: n = -1 / 0,
443
- bottom: r = 1 / 0
444
- } = s;
445
- return [[t, e], [n, r]];
446
- }
447
- }), Y = {
448
- ArrowRight: (s, t = 1) => [s * t, 0],
449
- ArrowLeft: (s, t = 1) => [-1 * s * t, 0],
450
- ArrowUp: (s, t = 1) => [0, -1 * s * t],
451
- ArrowDown: (s, t = 1) => [0, s * t]
452
- };
453
- class kt extends Dt {
454
- constructor(...t) {
455
- super(...t), l(this, "ingKey", "dragging");
456
- }
457
- reset() {
458
- super.reset();
459
- const t = this.state;
460
- t._pointerId = void 0, t._pointerActive = !1, t._keyboardActive = !1, t._preventScroll = !1, t._delayed = !1, t.swipe = [0, 0], t.tap = !1, t.canceled = !1, t.cancel = this.cancel.bind(this);
461
- }
462
- setup() {
463
- const t = this.state;
464
- if (t._bounds instanceof HTMLElement) {
465
- const e = t._bounds.getBoundingClientRect(), n = t.currentTarget.getBoundingClientRect(), r = {
466
- left: e.left - n.left + t.offset[0],
467
- right: e.right - n.right + t.offset[0],
468
- top: e.top - n.top + t.offset[1],
469
- bottom: e.bottom - n.bottom + t.offset[1]
470
- };
471
- t._bounds = v.bounds(r);
472
- }
473
- }
474
- cancel() {
475
- const t = this.state;
476
- t.canceled || (t.canceled = !0, t._active = !1, setTimeout(() => {
477
- this.compute(), this.emit();
478
- }, 0));
479
- }
480
- setActive() {
481
- this.state._active = this.state._pointerActive || this.state._keyboardActive;
482
- }
483
- clean() {
484
- this.pointerClean(), this.state._pointerActive = !1, this.state._keyboardActive = !1, super.clean();
485
- }
486
- pointerDown(t) {
487
- const e = this.config, n = this.state;
488
- if (t.buttons != null && (Array.isArray(e.pointerButtons) ? !e.pointerButtons.includes(t.buttons) : e.pointerButtons !== -1 && e.pointerButtons !== t.buttons))
489
- return;
490
- const r = this.ctrl.setEventIds(t);
491
- e.pointerCapture && t.target.setPointerCapture(t.pointerId), !(r && r.size > 1 && n._pointerActive) && (this.start(t), this.setupPointer(t), n._pointerId = x(t), n._pointerActive = !0, this.computeValues(R(t)), this.computeInitial(), e.preventScrollAxis && G(t) !== "mouse" ? (n._active = !1, this.setupScrollPrevention(t)) : e.delay > 0 ? (this.setupDelayTrigger(t), e.triggerAllEvents && (this.compute(t), this.emit())) : this.startPointerDrag(t));
492
- }
493
- startPointerDrag(t) {
494
- const e = this.state;
495
- e._active = !0, e._preventScroll = !0, e._delayed = !1, this.compute(t), this.emit();
496
- }
497
- pointerMove(t) {
498
- const e = this.state, n = this.config;
499
- if (!e._pointerActive || e.type === t.type && t.timeStamp === e.timeStamp)
500
- return;
501
- const r = x(t);
502
- if (e._pointerId !== void 0 && r !== e._pointerId)
503
- return;
504
- const i = R(t);
505
- if (document.pointerLockElement === t.target ? e._delta = [t.movementX, t.movementY] : (e._delta = d.sub(i, e._values), this.computeValues(i)), d.addTo(e._movement, e._delta), this.compute(t), e._delayed && e.intentional) {
506
- this.timeoutStore.remove("dragDelay"), e.active = !1, this.startPointerDrag(t);
507
- return;
508
- }
509
- if (n.preventScrollAxis && !e._preventScroll)
510
- if (e.axis)
511
- if (e.axis === n.preventScrollAxis || n.preventScrollAxis === "xy") {
512
- e._active = !1, this.clean();
513
- return;
514
- } else {
515
- this.timeoutStore.remove("startPointerDrag"), this.startPointerDrag(t);
516
- return;
517
- }
518
- else
519
- return;
520
- this.emit();
521
- }
522
- pointerUp(t) {
523
- this.ctrl.setEventIds(t);
524
- try {
525
- this.config.pointerCapture && t.target.hasPointerCapture(t.pointerId) && t.target.releasePointerCapture(t.pointerId);
526
- } catch {
527
- process.env.NODE_ENV === "development" && console.warn("[@use-gesture]: If you see this message, it's likely that you're using an outdated version of `@react-three/fiber`. \n\nPlease upgrade to the latest version.");
528
- }
529
- const e = this.state, n = this.config;
530
- if (!e._active || !e._pointerActive)
531
- return;
532
- const r = x(t);
533
- if (e._pointerId !== void 0 && r !== e._pointerId)
534
- return;
535
- this.state._pointerActive = !1, this.setActive(), this.compute(t);
536
- const [i, o] = e._distance;
537
- if (e.tap = i <= n.tapsThreshold && o <= n.tapsThreshold, e.tap && n.filterTaps)
538
- e._force = !0;
539
- else {
540
- const [c, f] = e._delta, [h, a] = e._movement, [g, p] = n.swipe.velocity, [w, E] = n.swipe.distance, T = n.swipe.duration;
541
- if (e.elapsedTime < T) {
542
- const D = Math.abs(c / e.timeDelta), A = Math.abs(f / e.timeDelta);
543
- D > g && Math.abs(h) > w && (e.swipe[0] = Math.sign(c)), A > p && Math.abs(a) > E && (e.swipe[1] = Math.sign(f));
544
- }
545
- }
546
- this.emit();
547
- }
548
- pointerClick(t) {
549
- !this.state.tap && t.detail > 0 && (t.preventDefault(), t.stopPropagation());
550
- }
551
- setupPointer(t) {
552
- const e = this.config, n = e.device;
553
- if (process.env.NODE_ENV === "development")
554
- try {
555
- if (n === "pointer" && e.preventScrollDelay === void 0) {
556
- const r = "uv" in t ? t.sourceEvent.currentTarget : t.currentTarget;
557
- window.getComputedStyle(r).touchAction === "auto" && console.warn("[@use-gesture]: The drag target has its `touch-action` style property set to `auto`. It is recommended to add `touch-action: 'none'` so that the drag gesture behaves correctly on touch-enabled devices. For more information read this: https://use-gesture.netlify.app/docs/extras/#touch-action.\n\nThis message will only show in development mode. It won't appear in production. If this is intended, you can ignore it.", r);
558
- }
559
- } catch {
560
- }
561
- e.pointerLock && t.currentTarget.requestPointerLock(), e.pointerCapture || (this.eventStore.add(this.sharedConfig.window, n, "change", this.pointerMove.bind(this)), this.eventStore.add(this.sharedConfig.window, n, "end", this.pointerUp.bind(this)), this.eventStore.add(this.sharedConfig.window, n, "cancel", this.pointerUp.bind(this)));
562
- }
563
- pointerClean() {
564
- this.config.pointerLock && document.pointerLockElement === this.state.currentTarget && document.exitPointerLock();
565
- }
566
- preventScroll(t) {
567
- this.state._preventScroll && t.cancelable && t.preventDefault();
568
- }
569
- setupScrollPrevention(t) {
570
- this.state._preventScroll = !1, Ot(t);
571
- const e = this.eventStore.add(this.sharedConfig.window, "touch", "change", this.preventScroll.bind(this), {
572
- passive: !1
573
- });
574
- this.eventStore.add(this.sharedConfig.window, "touch", "end", e), this.eventStore.add(this.sharedConfig.window, "touch", "cancel", e), this.timeoutStore.add("startPointerDrag", this.startPointerDrag.bind(this), this.config.preventScrollDelay, t);
575
- }
576
- setupDelayTrigger(t) {
577
- this.state._delayed = !0, this.timeoutStore.add("dragDelay", () => {
578
- this.state._step = [0, 0], this.startPointerDrag(t);
579
- }, this.config.delay);
580
- }
581
- keyDown(t) {
582
- const e = Y[t.key];
583
- if (e) {
584
- const n = this.state, r = t.shiftKey ? 10 : t.altKey ? 0.1 : 1;
585
- this.start(t), n._delta = e(this.config.keyboardDisplacement, r), n._keyboardActive = !0, d.addTo(n._movement, n._delta), this.compute(t), this.emit();
586
- }
587
- }
588
- keyUp(t) {
589
- t.key in Y && (this.state._keyboardActive = !1, this.setActive(), this.compute(t), this.emit());
590
- }
591
- bind(t) {
592
- const e = this.config.device;
593
- t(e, "start", this.pointerDown.bind(this)), this.config.pointerCapture && (t(e, "change", this.pointerMove.bind(this)), t(e, "end", this.pointerUp.bind(this)), t(e, "cancel", this.pointerUp.bind(this)), t("lostPointerCapture", "", this.pointerUp.bind(this))), this.config.keys && (t("key", "down", this.keyDown.bind(this)), t("key", "up", this.keyUp.bind(this))), this.config.filterTaps && t("click", "", this.pointerClick.bind(this), {
594
- capture: !0,
595
- passive: !1
596
- });
597
- }
598
- }
599
- function Ot(s) {
600
- "persist" in s && typeof s.persist == "function" && s.persist();
601
- }
602
- const b = typeof window < "u" && window.document && window.document.createElement;
603
- function At() {
604
- return b && "ontouchstart" in window;
605
- }
606
- function W() {
607
- return At() || b && window.navigator.maxTouchPoints > 1;
608
- }
609
- function It() {
610
- return b && "onpointerdown" in window;
611
- }
612
- function Pt() {
613
- return b && "exitPointerLock" in window.document;
614
- }
615
- function xt() {
616
- try {
617
- return "constructor" in GestureEvent;
618
- } catch {
619
- return !1;
620
- }
621
- }
622
- const m = {
623
- isBrowser: b,
624
- gesture: xt(),
625
- touch: W(),
626
- touchscreen: W(),
627
- pointer: It(),
628
- pointerLock: Pt()
629
- }, Ct = 250, Lt = 180, Mt = 0.5, Nt = 50, Ut = 250, Kt = 10, F = {
630
- mouse: 0,
631
- touch: 0,
632
- pen: 8
633
- }, z = u(u({}, v), {}, {
634
- device(s, t, {
635
- pointer: {
636
- touch: e = !1,
637
- lock: n = !1,
638
- mouse: r = !1
639
- } = {}
640
- }) {
641
- return this.pointerLock = n && m.pointerLock, m.touch && e ? "touch" : this.pointerLock ? "mouse" : m.pointer && !r ? "pointer" : m.touch ? "touch" : "mouse";
642
- },
643
- preventScrollAxis(s, t, {
644
- preventScroll: e
645
- }) {
646
- if (this.preventScrollDelay = typeof e == "number" ? e : e || e === void 0 && s ? Ct : void 0, !(!m.touchscreen || e === !1))
647
- return s || (e !== void 0 ? "y" : void 0);
648
- },
649
- pointerCapture(s, t, {
650
- pointer: {
651
- capture: e = !0,
652
- buttons: n = 1,
653
- keys: r = !0
654
- } = {}
655
- }) {
656
- return this.pointerButtons = n, this.keys = r, !this.pointerLock && this.device === "pointer" && e;
657
- },
658
- threshold(s, t, {
659
- filterTaps: e = !1,
660
- tapsThreshold: n = 3,
661
- axis: r = void 0
662
- }) {
663
- const i = d.toVector(s, e ? n : r ? 1 : 0);
664
- return this.filterTaps = e, this.tapsThreshold = n, i;
665
- },
666
- swipe({
667
- velocity: s = Mt,
668
- distance: t = Nt,
669
- duration: e = Ut
670
- } = {}) {
671
- return {
672
- velocity: this.transform(d.toVector(s)),
673
- distance: this.transform(d.toVector(t)),
674
- duration: e
675
- };
676
- },
677
- delay(s = 0) {
678
- switch (s) {
679
- case !0:
680
- return Lt;
681
- case !1:
682
- return 0;
683
- default:
684
- return s;
685
- }
686
- },
687
- axisThreshold(s) {
688
- return s ? u(u({}, F), s) : F;
689
- },
690
- keyboardDisplacement(s = Kt) {
691
- return s;
692
- }
693
- });
694
- process.env.NODE_ENV === "development" && Object.assign(z, {
695
- useTouch(s) {
696
- if (s !== void 0)
697
- throw Error("[@use-gesture]: `useTouch` option has been renamed to `pointer.touch`. Use it as in `{ pointer: { touch: true } }`.");
698
- return NaN;
699
- },
700
- experimental_preventWindowScrollY(s) {
701
- if (s !== void 0)
702
- throw Error("[@use-gesture]: `experimental_preventWindowScrollY` option has been renamed to `preventScroll`.");
703
- return NaN;
704
- },
705
- swipeVelocity(s) {
706
- if (s !== void 0)
707
- throw Error("[@use-gesture]: `swipeVelocity` option has been renamed to `swipe.velocity`. Use it as in `{ swipe: { velocity: 0.5 } }`.");
708
- return NaN;
709
- },
710
- swipeDistance(s) {
711
- if (s !== void 0)
712
- throw Error("[@use-gesture]: `swipeDistance` option has been renamed to `swipe.distance`. Use it as in `{ swipe: { distance: 50 } }`.");
713
- return NaN;
714
- },
715
- swipeDuration(s) {
716
- if (s !== void 0)
717
- throw Error("[@use-gesture]: `swipeDuration` option has been renamed to `swipe.duration`. Use it as in `{ swipe: { duration: 250 } }`.");
718
- return NaN;
719
- }
720
- });
721
- u(u({}, L), {}, {
722
- device(s, t, {
723
- shared: e,
724
- pointer: {
725
- touch: n = !1
726
- } = {}
727
- }) {
728
- if (e.target && !m.touch && m.gesture)
729
- return "gesture";
730
- if (m.touch && n)
731
- return "touch";
732
- if (m.touchscreen) {
733
- if (m.pointer)
734
- return "pointer";
735
- if (m.touch)
736
- return "touch";
737
- }
738
- },
739
- bounds(s, t, {
740
- scaleBounds: e = {},
741
- angleBounds: n = {}
742
- }) {
743
- const r = (o) => {
744
- const c = V(k(e, o), {
745
- min: -1 / 0,
746
- max: 1 / 0
747
- });
748
- return [c.min, c.max];
749
- }, i = (o) => {
750
- const c = V(k(n, o), {
751
- min: -1 / 0,
752
- max: 1 / 0
753
- });
754
- return [c.min, c.max];
755
- };
756
- return typeof e != "function" && typeof n != "function" ? [r(), i()] : (o) => [r(o), i(o)];
757
- },
758
- threshold(s, t, e) {
759
- return this.lockDirection = e.axis === "lock", d.toVector(s, this.lockDirection ? [0.1, 3] : 0);
760
- },
761
- modifierKey(s) {
762
- return s === void 0 ? "ctrlKey" : s;
763
- },
764
- pinchOnWheel(s = !0) {
765
- return s;
766
- }
767
- });
768
- u(u({}, v), {}, {
769
- mouseOnly: (s = !0) => s
770
- });
771
- u(u({}, v), {}, {
772
- mouseOnly: (s = !0) => s
773
- });
774
- const q = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map();
775
- function Rt(s) {
776
- q.set(s.key, s.engine), C.set(s.key, s.resolver);
777
- }
778
- const Vt = {
779
- key: "drag",
780
- engine: kt,
781
- resolver: z
782
- };
783
- function jt(s, t) {
784
- if (s == null)
785
- return {};
786
- var e = {}, n = Object.keys(s), r, i;
787
- for (i = 0; i < n.length; i++)
788
- r = n[i], !(t.indexOf(r) >= 0) && (e[r] = s[r]);
789
- return e;
790
- }
791
- function Bt(s, t) {
792
- if (s == null)
793
- return {};
794
- var e = jt(s, t), n, r;
795
- if (Object.getOwnPropertySymbols) {
796
- var i = Object.getOwnPropertySymbols(s);
797
- for (r = 0; r < i.length; r++)
798
- n = i[r], !(t.indexOf(n) >= 0) && Object.prototype.propertyIsEnumerable.call(s, n) && (e[n] = s[n]);
799
- }
800
- return e;
801
- }
802
- const Yt = {
803
- target(s) {
804
- if (s)
805
- return () => "current" in s ? s.current : s;
806
- },
807
- enabled(s = !0) {
808
- return s;
809
- },
810
- window(s = m.isBrowser ? window : void 0) {
811
- return s;
812
- },
813
- eventOptions({
814
- passive: s = !0,
815
- capture: t = !1
816
- } = {}) {
817
- return {
818
- passive: s,
819
- capture: t
820
- };
821
- },
822
- transform(s) {
823
- return s;
824
- }
825
- }, Wt = ["target", "eventOptions", "window", "enabled", "transform"];
826
- function S(s = {}, t) {
827
- const e = {};
828
- for (const [n, r] of Object.entries(t))
829
- switch (typeof r) {
830
- case "function":
831
- if (process.env.NODE_ENV === "development") {
832
- const i = r.call(e, s[n], n, s);
833
- Number.isNaN(i) || (e[n] = i);
834
- } else
835
- e[n] = r.call(e, s[n], n, s);
836
- break;
837
- case "object":
838
- e[n] = S(s[n], r);
839
- break;
840
- case "boolean":
841
- r && (e[n] = s[n]);
842
- break;
843
- }
844
- return e;
845
- }
846
- function Ft(s, t, e = {}) {
847
- const n = s, {
848
- target: r,
849
- eventOptions: i,
850
- window: o,
851
- enabled: c,
852
- transform: f
853
- } = n, h = Bt(n, Wt);
854
- if (e.shared = S({
855
- target: r,
856
- eventOptions: i,
857
- window: o,
858
- enabled: c,
859
- transform: f
860
- }, Yt), t) {
861
- const a = C.get(t);
862
- e[t] = S(u({
863
- shared: e.shared
864
- }, h), a);
865
- } else
866
- for (const a in h) {
867
- const g = C.get(a);
868
- if (g)
869
- e[a] = S(u({
870
- shared: e.shared
871
- }, h[a]), g);
872
- else if (process.env.NODE_ENV === "development" && !["drag", "pinch", "scroll", "wheel", "move", "hover"].includes(a)) {
873
- if (a === "domTarget")
874
- throw Error("[@use-gesture]: `domTarget` option has been renamed to `target`.");
875
- console.warn(`[@use-gesture]: Unknown config key \`${a}\` was used. Please read the documentation for further information.`);
876
- }
877
- }
878
- return e;
879
- }
880
- class J {
881
- constructor(t, e) {
882
- l(this, "_listeners", /* @__PURE__ */ new Set()), this._ctrl = t, this._gestureKey = e;
883
- }
884
- add(t, e, n, r, i) {
885
- const o = this._listeners, c = pt(e, n), f = this._gestureKey ? this._ctrl.config[this._gestureKey].eventOptions : {}, h = u(u({}, f), i);
886
- t.addEventListener(c, r, h);
887
- const a = () => {
888
- t.removeEventListener(c, r, h), o.delete(a);
889
- };
890
- return o.add(a), a;
891
- }
892
- clean() {
893
- this._listeners.forEach((t) => t()), this._listeners.clear();
894
- }
895
- }
896
- class $t {
897
- constructor() {
898
- l(this, "_timeouts", /* @__PURE__ */ new Map());
899
- }
900
- add(t, e, n = 140, ...r) {
901
- this.remove(t), this._timeouts.set(t, window.setTimeout(e, n, ...r));
902
- }
903
- remove(t) {
904
- const e = this._timeouts.get(t);
905
- e && window.clearTimeout(e);
906
- }
907
- clean() {
908
- this._timeouts.forEach((t) => void window.clearTimeout(t)), this._timeouts.clear();
909
- }
910
- }
911
- class Ht {
912
- constructor(t) {
913
- l(this, "gestures", /* @__PURE__ */ new Set()), l(this, "_targetEventStore", new J(this)), l(this, "gestureEventStores", {}), l(this, "gestureTimeoutStores", {}), l(this, "handlers", {}), l(this, "config", {}), l(this, "pointerIds", /* @__PURE__ */ new Set()), l(this, "touchIds", /* @__PURE__ */ new Set()), l(this, "state", {
914
- shared: {
915
- shiftKey: !1,
916
- metaKey: !1,
917
- ctrlKey: !1,
918
- altKey: !1
919
- }
920
- }), Gt(this, t);
921
- }
922
- setEventIds(t) {
923
- if (O(t))
924
- return this.touchIds = new Set(_t(t)), this.touchIds;
925
- if ("pointerId" in t)
926
- return t.type === "pointerup" || t.type === "pointercancel" ? this.pointerIds.delete(t.pointerId) : t.type === "pointerdown" && this.pointerIds.add(t.pointerId), this.pointerIds;
927
- }
928
- applyHandlers(t, e) {
929
- this.handlers = t, this.nativeHandlers = e;
930
- }
931
- applyConfig(t, e) {
932
- this.config = Ft(t, e, this.config);
933
- }
934
- clean() {
935
- this._targetEventStore.clean();
936
- for (const t of this.gestures)
937
- this.gestureEventStores[t].clean(), this.gestureTimeoutStores[t].clean();
938
- }
939
- effect() {
940
- return this.config.shared.target && this.bind(), () => this._targetEventStore.clean();
941
- }
942
- bind(...t) {
943
- const e = this.config.shared, n = {};
944
- let r;
945
- if (!(e.target && (r = e.target(), !r))) {
946
- if (e.enabled) {
947
- for (const o of this.gestures) {
948
- const c = this.config[o], f = $(n, c.eventOptions, !!r);
949
- if (c.enabled) {
950
- const h = q.get(o);
951
- new h(this, t, o).bind(f);
952
- }
953
- }
954
- const i = $(n, e.eventOptions, !!r);
955
- for (const o in this.nativeHandlers)
956
- i(o, "", (c) => this.nativeHandlers[o](u(u({}, this.state.shared), {}, {
957
- event: c,
958
- args: t
959
- })), void 0, !0);
960
- }
961
- for (const i in n)
962
- n[i] = bt(...n[i]);
963
- if (!r)
964
- return n;
965
- for (const i in n) {
966
- const {
967
- device: o,
968
- capture: c,
969
- passive: f
970
- } = lt(i);
971
- this._targetEventStore.add(r, o, "", n[i], {
972
- capture: c,
973
- passive: f
974
- });
975
- }
976
- }
977
- }
978
- }
979
- function y(s, t) {
980
- s.gestures.add(t), s.gestureEventStores[t] = new J(s, t), s.gestureTimeoutStores[t] = new $t();
981
- }
982
- function Gt(s, t) {
983
- t.drag && y(s, "drag"), t.wheel && y(s, "wheel"), t.scroll && y(s, "scroll"), t.move && y(s, "move"), t.pinch && y(s, "pinch"), t.hover && y(s, "hover");
984
- }
985
- const $ = (s, t, e) => (n, r, i, o = {}, c = !1) => {
986
- var f, h;
987
- const a = (f = o.capture) !== null && f !== void 0 ? f : t.capture, g = (h = o.passive) !== null && h !== void 0 ? h : t.passive;
988
- let p = c ? n : ht(n, r, a);
989
- e && g && (p += "Passive"), s[p] = s[p] || [], s[p].push(i);
990
- };
991
- function Xt(s, t = {}, e, n) {
992
- const r = I.useMemo(() => new Ht(s), []);
993
- if (r.applyHandlers(s, n), r.applyConfig(t, e), I.useEffect(r.effect.bind(r)), I.useEffect(() => r.clean.bind(r), []), t.target === void 0)
994
- return r.bind.bind(r);
995
- }
996
- function Jt(s, t) {
997
- return Rt(Vt), Xt({
998
- drag: s
999
- }, t || {}, "drag");
1000
- }
1001
- export {
1002
- Jt as a,
1003
- qt as u
1004
- };