gesturx 1.11.0 → 1.11.2

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/index.js CHANGED
@@ -1,770 +1,410 @@
1
- var ie = Object.defineProperty;
2
- var se = (t, i, e) => i in t ? ie(t, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[i] = e;
3
- var $ = (t, i, e) => se(t, typeof i != "symbol" ? i + "" : i, e);
4
- import { filter as h, fromEvent as S, mergeMap as b, defer as pe, of as T, merge as y, takeWhile as V, scan as L, map as c, BehaviorSubject as q, switchMap as g, share as P, distinctUntilChanged as oe, startWith as re, shareReplay as M, combineLatest as j, exhaustMap as H, first as z, timer as J, withLatestFrom as C, takeUntil as I, skip as ae, tap as K, ignoreElements as le, buffer as he, debounceTime as ce, NEVER as $e, defaultIfEmpty as ue } from "rxjs";
5
- function de(t, i) {
6
- return Math.sqrt((i.x - t.x) ** 2 + (i.y - t.y) ** 2);
1
+ import { BehaviorSubject as e, NEVER as t, buffer as n, combineLatest as r, debounceTime as i, defaultIfEmpty as a, defer as o, distinctUntilChanged as s, exhaustMap as c, filter as l, first as u, fromEvent as d, ignoreElements as f, map as p, merge as m, mergeMap as h, of as g, scan as _, share as v, shareReplay as y, skip as b, startWith as x, switchMap as S, takeUntil as C, takeWhile as w, tap as T, timer as E, withLatestFrom as D } from "rxjs";
2
+ //#region src/core/utils/geometry.ts
3
+ function O(e, t) {
4
+ return Math.sqrt((t.x - e.x) ** 2 + (t.y - e.y) ** 2);
7
5
  }
8
- function ve(t) {
9
- const i = t.length;
10
- if (i < 2) return 0;
11
- const e = t.reduce((o, p, a) => o + t.slice(a + 1).reduce((s, r) => s + de(p, r), 0), 0), n = i * (i - 1) / 2;
12
- return e / n;
6
+ function ee(e) {
7
+ let t = e.length;
8
+ return t < 2 ? 0 : e.reduce((t, n, r) => t + e.slice(r + 1).reduce((e, t) => e + O(n, t), 0), 0) / (t * (t - 1) / 2);
13
9
  }
14
- function N(t, i) {
15
- const e = i.x - t.x, n = i.y - t.y;
16
- return Math.atan2(n, e);
10
+ function k(e, t) {
11
+ let n = t.x - e.x, r = t.y - e.y;
12
+ return Math.atan2(r, n);
17
13
  }
18
- function ge(t, i) {
19
- return N(t, i) * (180 / Math.PI);
14
+ function A(e, t) {
15
+ return k(e, t) * (180 / Math.PI);
20
16
  }
21
- function F(t) {
22
- const i = t.reduce(
23
- (n, o) => (n.x += o.x, n.y += o.y, n),
24
- { x: 0, y: 0 }
25
- ), e = t.length || 1;
26
- return {
27
- x: i.x / e,
28
- y: i.y / e
29
- };
17
+ function j(e) {
18
+ let t = e.reduce((e, t) => (e.x += t.x, e.y += t.y, e), {
19
+ x: 0,
20
+ y: 0
21
+ }), n = e.length || 1;
22
+ return {
23
+ x: t.x / n,
24
+ y: t.y / n
25
+ };
30
26
  }
31
- function ye(t, i) {
32
- if (t.length !== i.length)
33
- throw new Error("Initial and new points arrays must have the same length.");
34
- const e = F(t), n = F(i);
35
- let o = 0;
36
- t.forEach((s, r) => {
37
- const l = N(
38
- e,
39
- s
40
- );
41
- let u = N(
42
- n,
43
- i[r] ?? s
44
- ) - l;
45
- u > Math.PI ? u -= 2 * Math.PI : u < -Math.PI && (u += 2 * Math.PI), o += u;
46
- });
47
- const p = o / t.length, a = p * (180 / Math.PI);
48
- return { radianDelta: p, degreesDelta: a };
27
+ function M(e, t) {
28
+ if (e.length !== t.length) throw Error("Initial and new points arrays must have the same length.");
29
+ let n = j(e), r = j(t), i = 0;
30
+ e.forEach((e, a) => {
31
+ let o = k(n, e), s = k(r, t[a] ?? e) - o;
32
+ s > Math.PI ? s -= 2 * Math.PI : s < -Math.PI && (s += 2 * Math.PI), i += s;
33
+ });
34
+ let a = i / e.length;
35
+ return {
36
+ radianDelta: a,
37
+ degreesDelta: 180 / Math.PI * a
38
+ };
49
39
  }
50
- function fe(t) {
51
- return t != null;
40
+ //#endregion
41
+ //#region src/core/utils/utils.ts
42
+ function N(e) {
43
+ return e != null;
52
44
  }
53
- const me = (t) => t.length > 0, Ae = (t) => t.pipe(h(me));
54
- function Q(t, i, e) {
55
- const n = F([t]), o = F([i]);
56
- return Math.abs(o.x - n.x) >= e || Math.abs(o.y - n.y) >= e;
45
+ var P = (e) => e.length > 0, F = (e) => e.pipe(l(P));
46
+ function I(e, t, n) {
47
+ let r = j([e]), i = j([t]);
48
+ return Math.abs(i.x - r.x) >= n || Math.abs(i.y - r.y) >= n;
57
49
  }
58
- const De = (t, i, e) => {
59
- const n = t > 0 ? i / t : 0, o = t > 0 ? e / t : 0;
60
- return {
61
- velocityX: n,
62
- velocityY: o
63
- };
64
- };
65
- function U(t) {
66
- return (i) => i.pipe(
67
- h((e) => e.pointerId === t.pointerId)
68
- );
50
+ var L = (e, t, n) => ({
51
+ velocityX: e > 0 ? t / e : 0,
52
+ velocityY: e > 0 ? n / e : 0
53
+ });
54
+ //#endregion
55
+ //#region src/core/utils/events.ts
56
+ function R(e) {
57
+ return (t) => t.pipe(l((t) => t.pointerId === e.pointerId));
69
58
  }
70
- const Z = (t) => t.type === "pointerleave" || t.type === "pointercancel" || t.type === "pointerup", Pe = ({
71
- container: t,
72
- afterEventReceived: i = (e) => e
73
- }) => S(t, "pointerdown").pipe(
74
- c(i)
75
- ), ee = ({
76
- pointerEvent$: t
77
- }) => (i) => {
78
- const e = t.pipe(
79
- h((r) => r.type === "pointerup")
80
- ), n = t.pipe(
81
- h((r) => r.type === "pointerleave")
82
- ), o = t.pipe(
83
- h((r) => r.type === "pointercancel")
84
- ), p = t.pipe(
85
- h((r) => r.type === "pointermove")
86
- ), a = S(window, "contextmenu"), s = (r) => ["pointercancel", "pointerleave", "pointerup", "contextmenu"].includes(
87
- r.type
88
- );
89
- return i.pipe(
90
- b((r) => {
91
- const l = pe(() => T(r));
92
- return y(
93
- l,
94
- y(
95
- p,
96
- o,
97
- n,
98
- e,
99
- a
100
- )
101
- ).pipe(
102
- U(r),
103
- V((u) => !s(u), !0)
104
- );
105
- }),
106
- L((r, l) => {
107
- if (s(l)) {
108
- const { [l.pointerId]: d, ...u } = (r == null ? void 0 : r.pointers) ?? {};
109
- return {
110
- event: l,
111
- pointers: u
112
- };
113
- }
114
- return {
115
- event: l,
116
- pointers: {
117
- ...(r == null ? void 0 : r.pointers) ?? {},
118
- [l.pointerId]: l
119
- }
120
- };
121
- }, void 0),
122
- c(({ event: r, pointers: l }) => ({
123
- event: r,
124
- pointers: Object.values(l).filter(fe)
125
- }))
126
- );
127
- }, _ = (t) => t.pipe(
128
- h(
129
- (i) => !!i.container
130
- )
131
- ), te = (t) => t.pipe(h(Z)), G = (t, i, e, n) => {
132
- const o = t.x - i.x + e, p = t.y - i.y + n;
133
- return {
134
- deltaX: o,
135
- deltaY: p
136
- };
137
- }, ne = (t) => {
138
- const i = (e) => F(
139
- e.latestActivePointers.length ? e.latestActivePointers : [e.event]
140
- );
141
- return t.pipe(
142
- L((e, n) => {
143
- var m, E;
144
- const o = i(n), p = (e == null ? void 0 : e.center) ?? o, a = (e == null ? void 0 : e.deltaX) ?? 0, s = (e == null ? void 0 : e.deltaY) ?? 0, r = ((m = e == null ? void 0 : e.latestActivePointers) == null ? void 0 : m.length) ?? 1, l = ((E = n.latestActivePointers) == null ? void 0 : E.length) ?? 1, d = ["pointerdown", "pointercancel", "pointerleave", "pointerup"].includes(
145
- n.event.type
146
- ) && r !== l, u = l > 0, { deltaX: f, deltaY: A } = d && u || /**
147
- * A pointercancel cean come after a drag event and heven being completely
148
- * desync, leading to erroned values. We should just ignore it.
149
- */
150
- n.event.type === "pointercancel" ? G(o, o, a, s) : G(o, p, a, s), { degreesDelta: D } = r === l && r >= 2 && l >= 2 && /**
151
- * A pointercancel cean come after a drag event and heven being completely
152
- * desync, leading to erroned values. We should just ignore it.
153
- */
154
- n.event.type !== "pointercancel" ? ye(
155
- (e == null ? void 0 : e.latestActivePointers) ?? [],
156
- n.latestActivePointers ?? []
157
- ) : { degreesDelta: 0 };
158
- return {
159
- startTime: (/* @__PURE__ */ new Date()).getTime(),
160
- ...e,
161
- ...n,
162
- center: o,
163
- deltaX: f,
164
- deltaY: A,
165
- deltaPointersAngle: D
166
- };
167
- }, void 0),
168
- c((e) => {
169
- const {
170
- deltaX: n,
171
- deltaY: o,
172
- latestActivePointers: p,
173
- startTime: a,
174
- center: s,
175
- event: r,
176
- deltaPointersAngle: l
177
- } = e, d = p ?? [], f = Date.now() - a, { velocityX: A, velocityY: D } = De(f, n, o), m = ve(p);
178
- return {
179
- deltaX: n,
180
- deltaY: o,
181
- velocityX: A,
182
- velocityY: D,
183
- delay: f,
184
- center: s,
185
- pointers: d,
186
- startTime: a,
187
- event: r,
188
- deltaPointersAngle: l,
189
- pointersAverageDistance: m
190
- };
191
- })
192
- );
193
- }, Ee = ({
194
- container: t,
195
- afterEventReceived: i = (e) => e
196
- }) => {
197
- const e = Pe({ afterEventReceived: i, container: t }), n = S(t, "pointerup").pipe(
198
- c(i)
199
- ), o = S(t, "pointermove").pipe(
200
- c(i)
201
- ), p = S(t, "pointerleave").pipe(
202
- c(i)
203
- ), a = S(
204
- t,
205
- "pointercancel"
206
- ).pipe(c(i));
207
- return {
208
- pointerEvents$: y(
209
- e,
210
- a,
211
- p,
212
- n,
213
- o
214
- ),
215
- pointerDown$: e,
216
- pointerCancel$: a,
217
- pointerLeave$: p,
218
- pointerUp$: n,
219
- pointerMove$: o
220
- };
59
+ var z = (e) => e.type === "pointerleave" || e.type === "pointercancel" || e.type === "pointerup", B = (e) => e.button === 0, V = ({ container: e, afterEventReceived: t = (e) => e }) => d(e, "pointerdown").pipe(p(t), l(B)), H = ({ pointerEvent$: e }) => (t) => {
60
+ let n = e.pipe(l((e) => e.type === "pointerup")), r = e.pipe(l((e) => e.type === "pointerleave")), i = e.pipe(l((e) => e.type === "pointercancel")), a = e.pipe(l((e) => e.type === "pointermove")), s = d(window, "contextmenu"), c = (e) => [
61
+ "pointercancel",
62
+ "pointerleave",
63
+ "pointerup",
64
+ "contextmenu"
65
+ ].includes(e.type);
66
+ return t.pipe(h((e) => {
67
+ let t = o(() => g(e));
68
+ return m(t, m(a, i, r, n, s)).pipe(R(e), w((e) => !c(e), !0));
69
+ }), _((e, t) => {
70
+ if (c(t)) {
71
+ let { [t.pointerId]: n, ...r } = (e == null ? void 0 : e.pointers) ?? {};
72
+ return {
73
+ event: t,
74
+ pointers: r
75
+ };
76
+ }
77
+ return {
78
+ event: t,
79
+ pointers: {
80
+ ...(e == null ? void 0 : e.pointers) ?? {},
81
+ [t.pointerId]: t
82
+ }
83
+ };
84
+ }, void 0), p(({ event: e, pointers: t }) => ({
85
+ event: e,
86
+ pointers: Object.values(t).filter(N)
87
+ })));
88
+ }, U = (e) => e.pipe(l((e) => !!e.container)), W = (e) => e.pipe(l(z)), G = (e, t, n, r) => ({
89
+ deltaX: e.x - t.x + n,
90
+ deltaY: e.y - t.y + r
91
+ }), K = (e) => {
92
+ let t = (e) => j(e.latestActivePointers.length ? e.latestActivePointers : [e.event]);
93
+ return e.pipe(_((e, n) => {
94
+ var r, i;
95
+ let a = t(n), o = (e == null ? void 0 : e.center) ?? a, s = (e == null ? void 0 : e.deltaX) ?? 0, c = (e == null ? void 0 : e.deltaY) ?? 0, l = (e == null || (r = e.latestActivePointers) == null ? void 0 : r.length) ?? 1, u = ((i = n.latestActivePointers) == null ? void 0 : i.length) ?? 1, { deltaX: d, deltaY: f } = [
96
+ "pointerdown",
97
+ "pointercancel",
98
+ "pointerleave",
99
+ "pointerup"
100
+ ].includes(n.event.type) && l !== u && u > 0 || n.event.type === "pointercancel" ? G(a, a, s, c) : G(a, o, s, c), { degreesDelta: p } = l === u && l >= 2 && u >= 2 && n.event.type !== "pointercancel" ? M((e == null ? void 0 : e.latestActivePointers) ?? [], n.latestActivePointers ?? []) : { degreesDelta: 0 };
101
+ return {
102
+ startTime: (/* @__PURE__ */ new Date()).getTime(),
103
+ ...e,
104
+ ...n,
105
+ center: a,
106
+ deltaX: d,
107
+ deltaY: f,
108
+ deltaPointersAngle: p
109
+ };
110
+ }, void 0), p((e) => {
111
+ let { deltaX: t, deltaY: n, latestActivePointers: r, startTime: i, center: a, event: o, deltaPointersAngle: s } = e, c = r ?? [], l = Date.now() - i, { velocityX: u, velocityY: d } = L(l, t, n);
112
+ return {
113
+ deltaX: t,
114
+ deltaY: n,
115
+ velocityX: u,
116
+ velocityY: d,
117
+ delay: l,
118
+ center: a,
119
+ pointers: c,
120
+ startTime: i,
121
+ event: o,
122
+ deltaPointersAngle: s,
123
+ pointersAverageDistance: ee(r)
124
+ };
125
+ }));
126
+ }, q = ({ container: e, afterEventReceived: t = (e) => e }) => {
127
+ let n = V({
128
+ afterEventReceived: t,
129
+ container: e
130
+ }), r = d(e, "pointerup").pipe(p(t)), i = d(e, "pointermove").pipe(p(t)), a = d(e, "pointerleave").pipe(p(t)), o = d(e, "pointercancel").pipe(p(t));
131
+ return {
132
+ pointerEvents$: m(n, o, a, r, i),
133
+ pointerDown$: n,
134
+ pointerCancel$: o,
135
+ pointerLeave$: a,
136
+ pointerUp$: r,
137
+ pointerMove$: i
138
+ };
221
139
  };
222
- class O {
223
- constructor(i, e) {
224
- $(this, "configSubject", new q({}));
225
- $(this, "pan$");
226
- $(this, "panStart$");
227
- $(this, "panMove$");
228
- $(this, "panEnd$");
229
- $(this, "pointerEvent$");
230
- $(this, "pointerDown$");
231
- $(this, "pointerUp$");
232
- $(this, "pointerCancel$");
233
- $(this, "pointerMove$");
234
- $(this, "pointerOff$");
235
- $(this, "state$");
236
- $(this, "config$", this.configSubject.pipe(_));
237
- /**
238
- * Track active running failWith recognizers
239
- */
240
- $(this, "failWithActive$");
241
- const n = new q({
242
- fingers: 0
243
- });
244
- this.pointerEvent$ = this.config$.pipe(
245
- g(
246
- ({ container: p, afterEventReceived: a }) => Ee({
247
- container: p,
248
- afterEventReceived: a
249
- }).pointerEvents$
250
- ),
251
- P()
252
- ), this.pointerDown$ = this.pointerEvent$.pipe(
253
- h((p) => p.type === "pointerdown")
254
- ), this.pointerUp$ = this.pointerEvent$.pipe(
255
- h((p) => p.type === "pointerup")
256
- ), this.pointerMove$ = this.pointerEvent$.pipe(
257
- h((p) => p.type === "pointermove")
258
- ), this.pointerCancel$ = this.pointerEvent$.pipe(
259
- h((p) => p.type === "pointercancel")
260
- ), this.pointerOff$ = this.pointerEvent$.pipe(te);
261
- const o = this.config$.pipe(
262
- c(({ failWith: p }) => p),
263
- oe()
264
- );
265
- this.failWithActive$ = o.pipe(
266
- g((p) => {
267
- const a = p == null ? void 0 : p.map((s) => {
268
- const r = s.start$.pipe(c(() => !0)), l = s.end$.pipe(c(() => !1));
269
- return y(r, l).pipe(
270
- re(!1),
271
- M(1)
272
- );
273
- });
274
- return a != null && a.length ? j(a) : j([T(!1)]);
275
- }),
276
- c((p) => p.some((a) => a)),
277
- M(1)
278
- ), this.pan$ = this.configSubject.pipe(
279
- _,
280
- g((p) => {
281
- var f, A, D;
282
- const a = Math.max(1, ((f = p.panConfig) == null ? void 0 : f.numInputs) ?? 1), s = Math.max(0, ((A = p.panConfig) == null ? void 0 : A.posThreshold) ?? 0), r = Math.max(0, ((D = p.panConfig) == null ? void 0 : D.delay) ?? 0), l = this.pointerDown$.pipe(
283
- ee({
284
- pointerEvent$: this.pointerEvent$
285
- }),
286
- M(1)
287
- ), d = (m) => m.pipe(
288
- h(
289
- (E) => E.pointers.length >= a
290
- )
291
- ), u = (m) => m.pipe(h((E) => E.pointers.length < a));
292
- return l.pipe(
293
- d,
294
- H(({ pointers: m }) => {
295
- const E = l.pipe(
296
- u,
297
- z(),
298
- P()
299
- ), X = J(r), R = y(
300
- ...m.map((v) => T(v)),
301
- this.pointerDown$
302
- ).pipe(
303
- b(
304
- (v) => y(this.pointerMove$, T(v)).pipe(
305
- U(v),
306
- h(
307
- (x) => Q(
308
- v,
309
- x,
310
- s
311
- )
312
- )
313
- )
314
- ),
315
- z()
316
- ).pipe(
317
- g(() => X),
318
- C(l),
319
- c(([, { event: v, pointers: x }]) => ({
320
- type: "start",
321
- event: v,
322
- latestActivePointers: x
323
- })),
324
- M({
325
- bufferSize: 1,
326
- refCount: !1
327
- }),
328
- I(E)
329
- ), k = R.pipe(
330
- b(
331
- () => l.pipe(
332
- ae(1),
333
- c(({ event: v, pointers: x }) => ({
334
- type: "move",
335
- event: v,
336
- latestActivePointers: x
337
- }))
338
- )
339
- ),
340
- I(E)
341
- ), w = R.pipe(
342
- b(
343
- () => E.pipe(
344
- c(({ event: v, pointers: x }) => ({
345
- type: "end",
346
- event: v,
347
- latestActivePointers: x
348
- }))
349
- )
350
- )
351
- ), W = y(R, k, w).pipe(
352
- M(1)
353
- );
354
- return W.pipe(
355
- ne,
356
- C(W),
357
- c(([v, { type: x }]) => ({
358
- ...v,
359
- type: x
360
- }))
361
- );
362
- })
363
- );
364
- }),
365
- K((p) => {
366
- n.next({
367
- fingers: p.pointers.length
368
- });
369
- }),
370
- P()
371
- ), this.panStart$ = this.pan$.pipe(
372
- h((p) => p.type === "start"),
373
- c(({ type: p, ...a }) => a)
374
- ), this.panMove$ = this.pan$.pipe(
375
- h((p) => p.type === "move"),
376
- c(({ type: p, ...a }) => a)
377
- ), this.panEnd$ = this.pan$.pipe(
378
- h((p) => p.type === "end"),
379
- c(({ type: p, ...a }) => a)
380
- ), this.state$ = n.asObservable(), this.updateInternal(i ?? {}, e);
381
- }
382
- updateInternal(i, e) {
383
- const n = this.configSubject.getValue();
384
- this.configSubject.next({
385
- ...n,
386
- ...i,
387
- ...i.options && {
388
- options: { ...n.options, ...i.options }
389
- },
390
- panConfig: {
391
- ...n.panConfig,
392
- ...e
393
- }
394
- });
395
- }
396
- update(i, e) {
397
- this.updateInternal(i, e);
398
- }
399
- }
400
- class Se extends O {
401
- constructor(e) {
402
- var a;
403
- super(e, {
404
- ...e,
405
- posThreshold: ((a = e == null ? void 0 : e.options) == null ? void 0 : a.posThreshold) ?? 15
406
- });
407
- $(this, "events$");
408
- $(this, "start$");
409
- $(this, "end$");
410
- const n = this.panStart$.pipe(
411
- c((s) => ({
412
- type: "panStart",
413
- ...s
414
- })),
415
- C(this.failWithActive$),
416
- h(([, s]) => !s),
417
- c(([s]) => s),
418
- P()
419
- ), o = this.panEnd$.pipe(
420
- c((s) => ({
421
- type: "panEnd",
422
- ...s
423
- })),
424
- P()
425
- ), p = this.panMove$.pipe(
426
- c((s) => ({
427
- type: "panMove",
428
- ...s
429
- }))
430
- );
431
- this.events$ = n.pipe(
432
- g((s) => {
433
- let r = s;
434
- const l = T(s), d = this.failWithActive$.pipe(
435
- h((A) => A),
436
- z()
437
- ), u = y(l, p, o).pipe(
438
- K((A) => {
439
- r = A;
440
- }),
441
- I(d)
442
- ), f = d.pipe(
443
- c(() => ({
444
- ...r,
445
- type: "panEnd"
446
- })),
447
- I(o)
448
- );
449
- return y(u, f);
450
- }),
451
- P()
452
- ), this.start$ = this.events$.pipe(
453
- h((s) => s.type === "panStart")
454
- ), this.end$ = this.events$.pipe(h((s) => s.type === "panEnd"));
455
- }
456
- update(e) {
457
- super.update(e, e.options);
458
- }
459
- }
460
- const we = (t) => (i) => i.pipe(
461
- h((e) => Math.abs(e.velocityX) >= t || Math.abs(e.velocityY) >= t)
462
- );
463
- class be extends O {
464
- constructor(e) {
465
- super(e, {
466
- posThreshold: 0,
467
- numInputs: 1
468
- });
469
- $(this, "events$");
470
- this.events$ = this.config$.pipe(
471
- g((n) => {
472
- const { escapeVelocity: o = 0.9 } = n.options ?? {};
473
- return this.panStart$.pipe(
474
- C(this.failWithActive$),
475
- h(([, p]) => !p),
476
- g(([p]) => this.panEnd$.pipe(
477
- we(o),
478
- c((a) => ({
479
- type: "swipe",
480
- angle: ge(
481
- p.event,
482
- a.event
483
- ),
484
- ...a
485
- })),
486
- I(
487
- this.failWithActive$.pipe(h((a) => a))
488
- )
489
- )),
490
- P()
491
- );
492
- })
493
- );
494
- }
495
- update(e) {
496
- super.update(e);
497
- }
498
- }
499
- const Me = ({
500
- timeout: t,
501
- pointerEvent$: i
502
- }) => (e) => e.pipe(
503
- b(
504
- (n) => J(t).pipe(
505
- I(
506
- i.pipe(te, U(n))
507
- )
508
- )
509
- )
510
- ), xe = ({
511
- initialPointerEvent: t,
512
- pointerEvent$: i,
513
- tolerance: e
514
- }) => (n) => n.pipe(
515
- b(
516
- (o) => i.pipe(
517
- U(o),
518
- V((p) => !Z(p), !0),
519
- h(
520
- (p) => Q(t, p, e)
521
- )
522
- )
523
- )
524
- );
525
- class Ce extends O {
526
- constructor(e) {
527
- super(e);
528
- $(this, "events$");
529
- this.events$ = this.config$.pipe(
530
- g((n) => {
531
- var f, A;
532
- const o = ((f = n.options) == null ? void 0 : f.maxTaps) ?? 1, p = ((A = n.options) == null ? void 0 : A.multiTapThreshold) ?? 100 * (o - 1), { maximumPressTime: a = 150, tolerance: s = 10 } = n.options ?? {}, r = this.pointerDown$.pipe(
533
- ee({
534
- pointerEvent$: this.pointerEvent$
535
- }),
536
- M(1)
537
- ), l = r.pipe(
538
- h(({ pointers: D }) => D.length > 1)
539
- ), d = (D) => D.pipe(
540
- he(this.pointerUp$.pipe(ce(p))),
541
- z()
542
- );
543
- return y(
544
- this.pointerDown$,
545
- r.pipe(le())
546
- ).pipe(
547
- H((D) => {
548
- const m = y(
549
- T(D),
550
- this.pointerDown$
551
- ).pipe(M(1)), E = m.pipe(d), X = m.pipe(
552
- xe({
553
- initialPointerEvent: D,
554
- pointerEvent$: this.pointerEvent$,
555
- tolerance: s
556
- })
557
- ), B = m.pipe(
558
- Me({
559
- pointerEvent$: this.pointerEvent$,
560
- timeout: a
561
- })
562
- ), R = y(
563
- this.failWithActive$.pipe(h((w) => w)),
564
- this.pointerCancel$,
565
- l,
566
- X,
567
- B
568
- ), k = E.pipe(
569
- Ae,
570
- h((w) => w.length <= o),
571
- c((w) => ({
572
- type: "tap",
573
- taps: w.length,
574
- latestActivePointers: w,
575
- event: w[0]
576
- })),
577
- M(1)
578
- );
579
- return k.pipe(
580
- ne,
581
- C(k),
582
- c(([w, { type: W, taps: v }]) => ({
583
- ...w,
584
- type: W,
585
- taps: v
586
- })),
587
- I(R)
588
- );
589
- })
590
- );
591
- }),
592
- P()
593
- );
594
- }
595
- update(e) {
596
- super.update(e);
597
- }
140
+ //#endregion
141
+ //#region \0@oxc-project+runtime@0.151.0/helpers/esm/typeof.js
142
+ function J(e) {
143
+ "@babel/helpers - typeof";
144
+ return J = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
145
+ return typeof e;
146
+ } : function(e) {
147
+ return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
148
+ }, J(e);
598
149
  }
599
- class Re extends O {
600
- constructor(e = {}) {
601
- super(e, {
602
- numInputs: 2,
603
- posThreshold: 15,
604
- ...e.options
605
- });
606
- $(this, "events$");
607
- this.events$ = this.config$.pipe(
608
- g(() => {
609
- const n = this.panStart$.pipe(
610
- c((s) => ({
611
- ...s,
612
- type: "rotateStart",
613
- angle: 0,
614
- deltaAngle: 0
615
- })),
616
- M(1)
617
- ), o = n.pipe(
618
- g(
619
- () => this.pan$.pipe(
620
- L((s, r) => {
621
- const l = ((s == null ? void 0 : s.angle) ?? 0) + r.deltaPointersAngle;
622
- return {
623
- ...s,
624
- ...r,
625
- angle: l,
626
- deltaAngle: r.deltaPointersAngle
627
- };
628
- }, void 0)
629
- )
630
- ),
631
- P()
632
- ), p = o.pipe(
633
- h((s) => s.type === "move"),
634
- c((s) => ({ ...s, type: "rotateMove" }))
635
- ), a = o.pipe(
636
- h((s) => s.type === "end"),
637
- c((s) => ({ ...s, type: "rotateEnd" }))
638
- );
639
- return y(n, p, a);
640
- }),
641
- P()
642
- );
643
- }
644
- update(e) {
645
- super.update(e, e.options);
646
- }
150
+ //#endregion
151
+ //#region \0@oxc-project+runtime@0.151.0/helpers/esm/toPrimitive.js
152
+ function Y(e, t) {
153
+ if (J(e) != "object" || !e) return e;
154
+ var n = e[Symbol.toPrimitive];
155
+ if (n !== void 0) {
156
+ var r = n.call(e, t || "default");
157
+ if (J(r) != "object") return r;
158
+ throw TypeError("@@toPrimitive must return a primitive value.");
159
+ }
160
+ return (t === "string" ? String : Number)(e);
647
161
  }
648
- const Y = ({
649
- type: t,
650
- initialEvent: i
651
- }) => (e) => e.pipe(
652
- L((n, o) => {
653
- const a = ((n == null ? void 0 : n.pointers.length) ?? 0) !== o.pointers.length, s = (n == null ? void 0 : n.pointersAverageDistance) ?? o.pointersAverageDistance, r = a ? o.pointersAverageDistance : n && "initialPointersAverageDistance" in n ? n.initialPointersAverageDistance : o.pointersAverageDistance, l = r === 0 ? 1 : o.pointersAverageDistance / r, d = o.pointersAverageDistance - r, u = o.pointersAverageDistance - r, f = a || s === 0 ? 1 : o.pointersAverageDistance / s;
654
- return {
655
- ...n,
656
- ...o,
657
- type: t,
658
- initialPointersAverageDistance: r,
659
- scale: l,
660
- distance: d,
661
- deltaDistance: u,
662
- deltaDistanceScale: f
663
- };
664
- }, i),
665
- c(({ initialPointersAverageDistance: n, ...o }) => o)
666
- );
667
- class ze extends O {
668
- constructor(e) {
669
- super(e, {
670
- ...e == null ? void 0 : e.options,
671
- numInputs: 2
672
- });
673
- $(this, "events$");
674
- $(this, "start$");
675
- $(this, "end$");
676
- this.events$ = this.config$.pipe(
677
- g(() => {
678
- const n = this.panStart$.pipe(
679
- C(this.failWithActive$),
680
- h(([, s]) => !s),
681
- c(([s]) => s),
682
- g(
683
- (s) => T(s).pipe(
684
- // we don't want a scan on pinch start
685
- Y({
686
- type: "pinchStart",
687
- initialEvent: void 0
688
- })
689
- )
690
- ),
691
- M(1)
692
- ), o = this.failWithActive$.pipe(
693
- h((s) => s),
694
- z()
695
- ), p = n.pipe(
696
- g((s) => this.pan$.pipe(
697
- V((r) => r.type !== "end"),
698
- Y({
699
- type: "pinchMove",
700
- initialEvent: s
701
- })
702
- )),
703
- I(o)
704
- ), a = n.pipe(
705
- g((s) => {
706
- let r = s;
707
- return this.pan$.pipe(
708
- g((l) => l.type === "end" ? T(l) : (r = l, $e)),
709
- I(o),
710
- ue(null),
711
- c(
712
- (l) => l || r
713
- ),
714
- Y({
715
- type: "pinchEnd",
716
- initialEvent: r
717
- }),
718
- P()
719
- );
720
- })
721
- );
722
- return y(n, p, a);
723
- }),
724
- P()
725
- ), this.start$ = this.events$.pipe(
726
- h((n) => n.type === "pinchStart")
727
- ), this.end$ = this.events$.pipe(h((n) => n.type === "pinchEnd"));
728
- }
729
- update(e) {
730
- super.update(e, e.options);
731
- }
162
+ //#endregion
163
+ //#region \0@oxc-project+runtime@0.151.0/helpers/esm/toPropertyKey.js
164
+ function X(e) {
165
+ var t = Y(e, "string");
166
+ return J(t) == "symbol" ? t : t + "";
732
167
  }
733
- class Fe {
734
- constructor(i) {
735
- $(this, "events$");
736
- $(this, "recognizers");
737
- $(this, "state$");
738
- this.options = i, this.recognizers = i.recognizers, this.events$ = y(
739
- ...i.recognizers.map(
740
- (e) => e.events$.pipe(c((n) => ({ event: n, recognizer: e })))
741
- )
742
- ).pipe(P()), this.state$ = j(
743
- this.recognizers.map((e) => e.state$)
744
- ).pipe(
745
- c(
746
- (e) => e.reduce((n, o) => ({
747
- fingers: Math.max(n.fingers, o.fingers)
748
- }))
749
- )
750
- ), this.update(i);
751
- }
752
- update({
753
- disableTextSelection: i,
754
- ...e
755
- }) {
756
- e.container && (e.container.style.touchAction = "none", i && (e.container.style.userSelect = "none"));
757
- for (const n of this.options.recognizers)
758
- n.update(e);
759
- }
168
+ //#endregion
169
+ //#region \0@oxc-project+runtime@0.151.0/helpers/esm/defineProperty.js
170
+ function Z(e, t, n) {
171
+ return (t = X(t)) in e ? Object.defineProperty(e, t, {
172
+ value: n,
173
+ enumerable: !0,
174
+ configurable: !0,
175
+ writable: !0
176
+ }) : e[t] = n, e;
760
177
  }
761
- export {
762
- Se as PanRecognizer,
763
- ze as PinchRecognizer,
764
- Fe as Recognizable,
765
- O as Recognizer,
766
- Re as RotateRecognizer,
767
- be as SwipeRecognizer,
768
- Ce as TapRecognizer
178
+ //#endregion
179
+ //#region src/core/recognizer/Recognizer.ts
180
+ var Q = class {
181
+ constructor(t, n) {
182
+ Z(this, "configSubject", new e({})), Z(this, "pan$", void 0), Z(this, "panStart$", void 0), Z(this, "panMove$", void 0), Z(this, "panEnd$", void 0), Z(this, "pointerEvent$", void 0), Z(this, "pointerDown$", void 0), Z(this, "pointerUp$", void 0), Z(this, "pointerCancel$", void 0), Z(this, "pointerMove$", void 0), Z(this, "pointerOff$", void 0), Z(this, "state$", void 0), Z(this, "config$", this.configSubject.pipe(U)), Z(this, "failWithActive$", void 0);
183
+ let i = new e({ fingers: 0 });
184
+ this.pointerEvent$ = this.config$.pipe(S(({ container: e, afterEventReceived: t }) => q({
185
+ container: e,
186
+ afterEventReceived: t
187
+ }).pointerEvents$), v()), this.pointerDown$ = this.pointerEvent$.pipe(l((e) => e.type === "pointerdown")), this.pointerUp$ = this.pointerEvent$.pipe(l((e) => e.type === "pointerup")), this.pointerMove$ = this.pointerEvent$.pipe(l((e) => e.type === "pointermove")), this.pointerCancel$ = this.pointerEvent$.pipe(l((e) => e.type === "pointercancel")), this.pointerOff$ = this.pointerEvent$.pipe(W);
188
+ let a = this.config$.pipe(p(({ failWith: e }) => e), s());
189
+ this.failWithActive$ = a.pipe(S((e) => {
190
+ let t = e == null ? void 0 : e.map((e) => {
191
+ let t = e.start$.pipe(p(() => !0)), n = e.end$.pipe(p(() => !1));
192
+ return m(t, n).pipe(x(!1), y(1));
193
+ });
194
+ return t != null && t.length ? r(t) : r([g(!1)]);
195
+ }), p((e) => e.some((e) => e)), y(1)), this.pan$ = this.configSubject.pipe(U, S((e) => {
196
+ var t, n, r;
197
+ let i = Math.max(1, ((t = e.panConfig) == null ? void 0 : t.numInputs) ?? 1), a = Math.max(0, ((n = e.panConfig) == null ? void 0 : n.posThreshold) ?? 0), o = Math.max(0, ((r = e.panConfig) == null ? void 0 : r.delay) ?? 0), s = this.pointerDown$.pipe(H({
198
+ pointerEvent$: this.pointerEvent$,
199
+ trackMove: !0
200
+ }), y(1)), d = (e) => e.pipe(l((e) => e.pointers.length >= i)), f = (e) => e.pipe(l((e) => e.pointers.length < i));
201
+ return s.pipe(d, c(({ pointers: e }) => {
202
+ let t = s.pipe(f, u(), v()), n = E(o), r = m(...e.map((e) => g(e)), this.pointerDown$).pipe(h((e) => m(this.pointerMove$, g(e)).pipe(R(e), l((t) => I(e, t, a)))), u()).pipe(S(() => n), D(s), p(([, { event: e, pointers: t }]) => ({
203
+ type: "start",
204
+ event: e,
205
+ latestActivePointers: t
206
+ })), y({
207
+ bufferSize: 1,
208
+ refCount: !1
209
+ }), C(t)), i = r.pipe(h(() => s.pipe(b(1), p(({ event: e, pointers: t }) => ({
210
+ type: "move",
211
+ event: e,
212
+ latestActivePointers: t
213
+ })))), C(t)), c = r.pipe(h(() => t.pipe(p(({ event: e, pointers: t }) => ({
214
+ type: "end",
215
+ event: e,
216
+ latestActivePointers: t
217
+ }))))), d = m(r, i, c).pipe(y(1));
218
+ return d.pipe(K, D(d), p(([e, { type: t }]) => ({
219
+ ...e,
220
+ type: t
221
+ })));
222
+ }));
223
+ }), T((e) => {
224
+ i.next({ fingers: e.pointers.length });
225
+ }), v()), this.panStart$ = this.pan$.pipe(l((e) => e.type === "start"), p(({ type: e, ...t }) => t)), this.panMove$ = this.pan$.pipe(l((e) => e.type === "move"), p(({ type: e, ...t }) => t)), this.panEnd$ = this.pan$.pipe(l((e) => e.type === "end"), p(({ type: e, ...t }) => t)), this.state$ = i.asObservable(), this.updateInternal(t ?? {}, n);
226
+ }
227
+ updateInternal(e, t) {
228
+ let n = this.configSubject.getValue();
229
+ this.configSubject.next({
230
+ ...n,
231
+ ...e,
232
+ ...e.options && { options: {
233
+ ...n.options,
234
+ ...e.options
235
+ } },
236
+ panConfig: {
237
+ ...n.panConfig,
238
+ ...t
239
+ }
240
+ });
241
+ }
242
+ update(e, t) {
243
+ this.updateInternal(e, t);
244
+ }
245
+ }, te = class extends Q {
246
+ constructor(e) {
247
+ var t;
248
+ super(e, {
249
+ ...e,
250
+ posThreshold: (e == null || (t = e.options) == null ? void 0 : t.posThreshold) ?? 15
251
+ }), Z(this, "events$", void 0), Z(this, "start$", void 0), Z(this, "end$", void 0);
252
+ let n = this.panStart$.pipe(p((e) => ({
253
+ type: "panStart",
254
+ ...e
255
+ })), D(this.failWithActive$), l(([, e]) => !e), p(([e]) => e), v()), r = this.panEnd$.pipe(p((e) => ({
256
+ type: "panEnd",
257
+ ...e
258
+ })), v()), i = this.panMove$.pipe(p((e) => ({
259
+ type: "panMove",
260
+ ...e
261
+ })));
262
+ this.events$ = n.pipe(S((e) => {
263
+ let t = e, n = g(e), a = this.failWithActive$.pipe(l((e) => e), u()), o = m(n, i, r).pipe(T((e) => {
264
+ t = e;
265
+ }), C(a)), s = a.pipe(p(() => ({
266
+ ...t,
267
+ type: "panEnd"
268
+ })), C(r));
269
+ return m(o, s);
270
+ }), v()), this.start$ = this.events$.pipe(l((e) => e.type === "panStart")), this.end$ = this.events$.pipe(l((e) => e.type === "panEnd"));
271
+ }
272
+ update(e) {
273
+ super.update(e, e.options);
274
+ }
275
+ }, $ = ({ type: e, initialEvent: t }) => (n) => n.pipe(_((t, n) => {
276
+ let r = ((t == null ? void 0 : t.pointers.length) ?? 0) !== n.pointers.length, i = (t == null ? void 0 : t.pointersAverageDistance) ?? n.pointersAverageDistance, a = r ? n.pointersAverageDistance : t && "initialPointersAverageDistance" in t ? t.initialPointersAverageDistance : n.pointersAverageDistance, o = a === 0 ? 1 : n.pointersAverageDistance / a, s = n.pointersAverageDistance - a, c = n.pointersAverageDistance - a, l = r || i === 0 ? 1 : n.pointersAverageDistance / i;
277
+ return {
278
+ ...t,
279
+ ...n,
280
+ type: e,
281
+ initialPointersAverageDistance: a,
282
+ scale: o,
283
+ distance: s,
284
+ deltaDistance: c,
285
+ deltaDistanceScale: l
286
+ };
287
+ }, t), p(({ initialPointersAverageDistance: e, ...t }) => t)), ne = class extends Q {
288
+ constructor(e) {
289
+ super(e, {
290
+ ...e == null ? void 0 : e.options,
291
+ numInputs: 2
292
+ }), Z(this, "events$", void 0), Z(this, "start$", void 0), Z(this, "end$", void 0), this.events$ = this.config$.pipe(S(() => {
293
+ let e = this.panStart$.pipe(D(this.failWithActive$), l(([, e]) => !e), p(([e]) => e), S((e) => g(e).pipe($({
294
+ type: "pinchStart",
295
+ initialEvent: void 0
296
+ }))), y(1)), n = this.failWithActive$.pipe(l((e) => e), u()), r = e.pipe(S((e) => this.pan$.pipe(w((e) => e.type !== "end"), $({
297
+ type: "pinchMove",
298
+ initialEvent: e
299
+ }))), C(n)), i = e.pipe(S((e) => {
300
+ let r = e;
301
+ return this.pan$.pipe(S((e) => e.type === "end" ? g(e) : (r = e, t)), C(n), a(null), p((e) => e || r), $({
302
+ type: "pinchEnd",
303
+ initialEvent: r
304
+ }), v());
305
+ }));
306
+ return m(e, r, i);
307
+ }), v()), this.start$ = this.events$.pipe(l((e) => e.type === "pinchStart")), this.end$ = this.events$.pipe(l((e) => e.type === "pinchEnd"));
308
+ }
309
+ update(e) {
310
+ super.update(e, e.options);
311
+ }
312
+ }, re = class {
313
+ constructor(e) {
314
+ Z(this, "options", void 0), Z(this, "events$", void 0), Z(this, "recognizers", void 0), Z(this, "state$", void 0), this.options = e, this.recognizers = e.recognizers, this.events$ = m(...e.recognizers.map((e) => e.events$.pipe(p((t) => ({
315
+ event: t,
316
+ recognizer: e
317
+ }))))).pipe(v()), this.state$ = r(this.recognizers.map((e) => e.state$)).pipe(p((e) => e.reduce((e, t) => ({ fingers: Math.max(e.fingers, t.fingers) })))), this.update(e);
318
+ }
319
+ update({ disableTextSelection: e, ...t }) {
320
+ t.container && (t.container.style.touchAction = "none", e && (t.container.style.userSelect = "none"));
321
+ for (let e of this.options.recognizers) e.update(t);
322
+ }
323
+ }, ie = class extends Q {
324
+ constructor(e = {}) {
325
+ super(e, {
326
+ numInputs: 2,
327
+ posThreshold: 15,
328
+ ...e.options
329
+ }), Z(this, "events$", void 0), this.events$ = this.config$.pipe(S(() => {
330
+ let e = this.panStart$.pipe(p((e) => ({
331
+ ...e,
332
+ type: "rotateStart",
333
+ angle: 0,
334
+ deltaAngle: 0
335
+ })), y(1)), t = e.pipe(S(() => this.pan$.pipe(_((e, t) => {
336
+ let n = ((e == null ? void 0 : e.angle) ?? 0) + t.deltaPointersAngle;
337
+ return {
338
+ ...e,
339
+ ...t,
340
+ angle: n,
341
+ deltaAngle: t.deltaPointersAngle
342
+ };
343
+ }, void 0))), v()), n = t.pipe(l((e) => e.type === "move"), p((e) => ({
344
+ ...e,
345
+ type: "rotateMove"
346
+ }))), r = t.pipe(l((e) => e.type === "end"), p((e) => ({
347
+ ...e,
348
+ type: "rotateEnd"
349
+ })));
350
+ return m(e, n, r);
351
+ }), v());
352
+ }
353
+ update(e) {
354
+ super.update(e, e.options);
355
+ }
356
+ }, ae = (e) => (t) => t.pipe(l((t) => Math.abs(t.velocityX) >= e || Math.abs(t.velocityY) >= e)), oe = class extends Q {
357
+ constructor(e) {
358
+ super(e, {
359
+ posThreshold: 0,
360
+ numInputs: 1
361
+ }), Z(this, "events$", void 0), this.events$ = this.config$.pipe(S((e) => {
362
+ let { escapeVelocity: t = .9 } = e.options ?? {};
363
+ return this.panStart$.pipe(D(this.failWithActive$), l(([, e]) => !e), S(([e]) => this.panEnd$.pipe(ae(t), p((t) => ({
364
+ type: "swipe",
365
+ angle: A(e.event, t.event),
366
+ ...t
367
+ })), C(this.failWithActive$.pipe(l((e) => e))))), v());
368
+ }));
369
+ }
370
+ update(e) {
371
+ super.update(e);
372
+ }
373
+ }, se = ({ timeout: e, pointerEvent$: t }) => (n) => n.pipe(h((n) => E(e).pipe(C(t.pipe(W, R(n)))))), ce = ({ initialPointerEvent: e, pointerEvent$: t, tolerance: n }) => (r) => r.pipe(h((r) => t.pipe(R(r), w((e) => !z(e), !0), l((t) => I(e, t, n))))), le = class extends Q {
374
+ constructor(e) {
375
+ super(e), Z(this, "events$", void 0), this.events$ = this.config$.pipe(S((e) => {
376
+ var t, r;
377
+ let a = ((t = e.options) == null ? void 0 : t.maxTaps) ?? 1, o = ((r = e.options) == null ? void 0 : r.multiTapThreshold) ?? 100 * (a - 1), { maximumPressTime: s = 150, tolerance: d = 10 } = e.options ?? {}, h = this.pointerDown$.pipe(H({
378
+ pointerEvent$: this.pointerEvent$,
379
+ trackMove: !0
380
+ }), y(1)), _ = h.pipe(l(({ pointers: e }) => e.length > 1)), v = (e) => e.pipe(n(this.pointerUp$.pipe(i(o))), u());
381
+ return m(this.pointerDown$, h.pipe(f())).pipe(c((e) => {
382
+ let t = m(g(e), this.pointerDown$).pipe(y(1)), n = t.pipe(v), r = t.pipe(ce({
383
+ initialPointerEvent: e,
384
+ pointerEvent$: this.pointerEvent$,
385
+ tolerance: d
386
+ })), i = t.pipe(se({
387
+ pointerEvent$: this.pointerEvent$,
388
+ timeout: s
389
+ })), o = m(this.failWithActive$.pipe(l((e) => e)), this.pointerCancel$, _, r, i), c = n.pipe(F, l((e) => e.length <= a), p((e) => ({
390
+ type: "tap",
391
+ taps: e.length,
392
+ latestActivePointers: e,
393
+ event: e[0]
394
+ })), y(1));
395
+ return c.pipe(K, D(c), p(([e, { type: t, taps: n }]) => ({
396
+ ...e,
397
+ type: t,
398
+ taps: n
399
+ })), C(o));
400
+ }));
401
+ }), v());
402
+ }
403
+ update(e) {
404
+ super.update(e);
405
+ }
769
406
  };
770
- //# sourceMappingURL=index.js.map
407
+ //#endregion
408
+ export { te as PanRecognizer, ne as PinchRecognizer, re as Recognizable, Q as Recognizer, ie as RotateRecognizer, oe as SwipeRecognizer, le as TapRecognizer };
409
+
410
+ //# sourceMappingURL=index.js.map