@mantou/gem 2.2.10 → 2.2.11

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 +1 @@
1
- {"version":3,"file":"gesture.js","sourceRoot":"","sources":["../../src/elements/base/gesture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gesture.js","sourceRoot":"","sources":["../../src/elements/base/gesture.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/helper/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAC/B,KAAK,CAAC,OAAO,CAAC,GAAG;KACd,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,OAAO,GACvC,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAC1E,CAAC,GAAG,MAAM;CACf,CAAC;AAKJ,aAAa;AACb,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GACX,KAAK,CAAC,CAAC,CAAC,CAC5C;AAED,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GACX,KAAK,CAAC,CAAC,CAAC,CAC5C;AAwCD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,YAE/E;AAED,WAAW;AACX,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,YAIzE;AAED,eAAe;AACf,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,qBAE3G;AAED;;;;;;;;;;;KAWK;AACL,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,GAgBpC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAb7C,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,+BAC/C,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,MAG1D,GAAG,GAAG,EAAE,gGAA+B,UAS4B,CAC9E"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/helper/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAC/B,KAAK,CAAC,OAAO,CAAC,GAAG;KACd,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,OAAO,GACvC,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAC1E,CAAC,GAAG,MAAM;CACf,CAAC;AAKJ,aAAa;AACb,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GACX,KAAK,CAAC,CAAC,CAAC,CAC5C;AAED,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GACX,KAAK,CAAC,CAAC,CAAC,CAC5C;AAwCD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,YAE/E;AAED,WAAW;AACX,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,YAIzE;AAED,eAAe;AACf,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,qBAE3G;AAED;;;;;;;;;;;KAWK;AACL,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,GA6BpC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GA1B7C,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,+BAC/C,CAAC,SAAS,SAAS,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,MAG1D,GAAG,GAAG,EAAE,gGAA+B,UAsB4B,CAC9E"}
package/helper/theme.js CHANGED
@@ -80,8 +80,18 @@ export function createDecoratorTheme(themeObj) {
80
80
  return (_, { addInitializer, access }) => {
81
81
  addInitializer(function () {
82
82
  const theme = createThemeFromProps({ ...themeObj }, props);
83
- this.internals.sheets.push(theme[SheetToken].getStyle(this, true));
84
- this.memo(() => theme(access.get(this).apply(this)), getDep && (() => getDep(this)));
83
+ const style = theme[SheetToken].getStyle(this, true);
84
+ this.internals.sheets.push(style);
85
+ this.memo(() => {
86
+ const next = access.get(this).apply(this);
87
+ const rule = style.cssRules[0];
88
+ const eleTarget = this.shadowRoot
89
+ ? rule
90
+ : style.element?.sheet?.cssRules[0]?.cssRules?.[0];
91
+ for (const key in props) {
92
+ eleTarget?.style.setProperty(props[key], next[key]);
93
+ }
94
+ }, getDep && (() => getDep(this)));
85
95
  });
86
96
  };
87
97
  };
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/helper/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/helper/theme.ts"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "2.2.10";
1
+ export declare const version = "2.2.11";
2
2
  //# sourceMappingURL=version.d.ts.map
package/lib/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '2.2.10';
1
+ export const version = '2.2.11';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantou/gem",
3
- "version": "2.2.10",
3
+ "version": "2.2.11",
4
4
  "description": "💎 使用自定义元素的轻量级 WebApp 开发框架",
5
5
  "keywords": [
6
6
  "frontend",
@@ -30,6 +30,76 @@ export interface RotateEventDetail {
30
30
  rotate: number;
31
31
  }
32
32
 
33
+ // 甩动手感的经验参数,非 UIKit 的公开阈值;坐标单位为 CSS px。
34
+ const SWIPE_TIME_WINDOW = 100;
35
+ const SWIPE_MIN_SPEED = 0.3; // px/ms
36
+ const SWIPE_MIN_DISTANCE = 20;
37
+ const SWIPE_DIRECTION_SLOP = 10;
38
+
39
+ /** Viewport coordinates in CSS pixels and a monotonic timestamp in milliseconds. */
40
+ export interface GestureSample {
41
+ clientX: number;
42
+ clientY: number;
43
+ timeStamp: number;
44
+ }
45
+
46
+ /** Detect the final flick from chronological samples, including the release position and pause. */
47
+ export function getSwipe(
48
+ startEvent: GestureSample,
49
+ moves: readonly GestureSample[],
50
+ evt: GestureSample,
51
+ getMovementX?: (x: number, y: number) => number,
52
+ getMovementY?: (x: number, y: number) => number,
53
+ ): SwipeEventDetail | undefined {
54
+ const targetTime = Math.max(startEvent.timeStamp, evt.timeStamp - SWIPE_TIME_WINDOW);
55
+ let sample: GestureSample = evt;
56
+ let furthest = sample;
57
+ let axis: 'clientX' | 'clientY' | undefined;
58
+ let sign = 0;
59
+
60
+ for (let i = moves.length - 1; i >= -1; i--) {
61
+ const previous = i < 0 ? startEvent : moves[i];
62
+ if (previous.timeStamp >= sample.timeStamp) continue;
63
+ // 以抬手时间为窗口终点,插值边界,避免事件采样频率影响速度。
64
+ const timeStamp = Math.max(targetTime, previous.timeStamp);
65
+ const ratio = (timeStamp - previous.timeStamp) / (sample.timeStamp - previous.timeStamp);
66
+ sample = {
67
+ clientX: previous.clientX + (sample.clientX - previous.clientX) * ratio,
68
+ clientY: previous.clientY + (sample.clientY - previous.clientY) * ratio,
69
+ timeStamp,
70
+ };
71
+ const dx = evt.clientX - sample.clientX;
72
+ const dy = evt.clientY - sample.clientY;
73
+ if (!axis && Math.max(Math.abs(dx), Math.abs(dy)) >= SWIPE_DIRECTION_SLOP) {
74
+ axis = Math.abs(dx) >= Math.abs(dy) ? 'clientX' : 'clientY';
75
+ sign = Math.sign(evt[axis] - sample[axis]);
76
+ }
77
+ if (axis) {
78
+ if ((furthest[axis] - sample[axis]) * sign >= 0) {
79
+ furthest = sample;
80
+ } else if ((sample[axis] - furthest[axis]) * sign >= SWIPE_DIRECTION_SLOP) {
81
+ // 明显回拉时只取最后一段,微抖不改变甩动方向。
82
+ sample = furthest;
83
+ break;
84
+ }
85
+ }
86
+ if (timeStamp <= targetTime) break;
87
+ }
88
+
89
+ const duration = evt.timeStamp - sample.timeStamp;
90
+ if (duration <= 0) return;
91
+ const dx = evt.clientX - sample.clientX;
92
+ const dy = evt.clientY - sample.clientY;
93
+ const horizontal = Math.abs(dx) > Math.abs(dy);
94
+ if (Math.abs(dx) === Math.abs(dy)) return;
95
+ const movement = horizontal ? (getMovementX?.(dx, dy) ?? dx) : (getMovementY?.(dx, dy) ?? dy);
96
+ const distance = Math.abs(movement);
97
+ const speed = distance / duration;
98
+ if (distance < SWIPE_MIN_DISTANCE || speed < SWIPE_MIN_SPEED) return;
99
+ const direction = horizontal ? (movement > 0 ? 'right' : 'left') : movement > 0 ? 'bottom' : 'top';
100
+ return { direction, speed };
101
+ }
102
+
33
103
  function angleAB(
34
104
  a: number,
35
105
  b: number,
@@ -75,6 +145,7 @@ export class GemGestureElement extends GemElement {
75
145
 
76
146
  #pressed = false; // 触发 press 之后不触发其他事件
77
147
  #gestureTriggered = false; // 会排除 touchAction 方向
148
+ #multiTouch = false;
78
149
  #pressTimer: ReturnType<typeof setTimeout> | number = 0;
79
150
 
80
151
  #startEventMap: Map<number, PointerEvent> = new Map();
@@ -88,7 +159,7 @@ export class GemGestureElement extends GemElement {
88
159
  };
89
160
 
90
161
  #getOtherLastMove = (pointerId: number) => {
91
- for (const id of this.movesMap.keys()) {
162
+ for (const id of this.#startEventMap.keys()) {
92
163
  if (id !== pointerId) {
93
164
  const moves = this.#getMoves(id);
94
165
  return moves[moves.length - 1] || this.#getStartEvent(id);
@@ -129,6 +200,7 @@ export class GemGestureElement extends GemElement {
129
200
  };
130
201
 
131
202
  #onStart = (evt: PointerEvent) => {
203
+ this.#multiTouch = this.#startEventMap.size > 0;
132
204
  this.grabbing = true;
133
205
  evt.stopPropagation();
134
206
  this.setPointerCapture(evt.pointerId);
@@ -150,6 +222,7 @@ export class GemGestureElement extends GemElement {
150
222
  if (this.hasPointerCapture(pointerId)) {
151
223
  const moves = this.#getMoves(pointerId);
152
224
  const startEvent = this.#getStartEvent(pointerId);
225
+ if (!startEvent) return;
153
226
  const lastMove = moves[moves.length - 1] || startEvent;
154
227
  // Firefox contextmenu after trigger
155
228
  if (!lastMove) return;
@@ -170,7 +243,7 @@ export class GemGestureElement extends GemElement {
170
243
  moves.push(move);
171
244
  this.pan(move);
172
245
 
173
- if (this.movesMap.size !== 1) {
246
+ if (this.#startEventMap.size !== 1) {
174
247
  this.#gestureTriggered = true;
175
248
  const secondaryPoint = this.#getOtherLastMove(pointerId) as PanEventDetail;
176
249
  const moveLen = Math.sqrt(movementX ** 2 + movementY ** 2);
@@ -204,58 +277,52 @@ export class GemGestureElement extends GemElement {
204
277
  #onMoveSet = (evt: PointerEvent) => {
205
278
  evt.stopPropagation();
206
279
  // https://bugs.webkit.org/show_bug.cgi?id=210454
207
- if ('getCoalescedEvents' in evt) {
208
- evt.getCoalescedEvents().forEach((event) => this.#onMove(event));
280
+ const events = 'getCoalescedEvents' in evt ? evt.getCoalescedEvents() : [];
281
+ if (events.length) {
282
+ events.forEach((event) => this.#onMove(event));
209
283
  } else {
210
284
  this.#onMove(evt);
211
285
  }
212
286
  };
213
287
 
288
+ #getSwipe = (evt: PointerEvent): SwipeEventDetail | undefined => {
289
+ return getSwipe(
290
+ this.#getStartEvent(evt.pointerId),
291
+ this.#getMoves(evt.pointerId),
292
+ evt,
293
+ this.#getMovementX,
294
+ this.#getMovementY,
295
+ );
296
+ };
297
+
214
298
  #onEnd = async (evt: PointerEvent) => {
215
299
  evt.stopPropagation();
216
300
  const { pointerId } = evt;
301
+ if (!this.#startEventMap.has(pointerId)) return;
217
302
  clearTimeout(this.#pressTimer);
218
303
 
219
- if (this.movesMap.size === 1) {
304
+ const moves = this.movesMap.get(pointerId);
305
+ // auto release: https://javascript.info/pointer-events#pointer-capturing
306
+ const swipe =
307
+ evt.type === 'pointerup' &&
308
+ !this.#pressed &&
309
+ !this.#multiTouch &&
310
+ this.hasPointerCapture(pointerId) &&
311
+ this.#getSwipe(evt);
312
+ // end 处理器需要先拿到本次甩动速度,才能决定回弹或继续滑动。
313
+ if (swipe) this.swipe(swipe);
314
+
315
+ this.#startEventMap.delete(pointerId);
316
+ const ended = this.#startEventMap.size === 0;
317
+ if (ended) {
220
318
  this.grabbing = false;
221
319
  this.#gestureTriggered = false;
222
320
  this.end(evt);
223
321
  }
224
322
 
225
- // auto release: https://javascript.info/pointer-events#pointer-capturing
226
- if (!this.#pressed && this.hasPointerCapture(pointerId)) {
227
- const moves = this.#getMoves(pointerId);
228
-
229
- if (moves.length > 2) {
230
- const { x, y, timeStamp, clientX, clientY } = moves[moves.length - 1];
231
- const move2 = moves[moves.length - 3];
232
- if (Math.abs(x) > 2) {
233
- if (Math.abs(x) > Math.abs(y)) {
234
- const speed = Math.abs(move2.clientX - clientX) / (timeStamp - move2.timeStamp);
235
- if (x > 0) {
236
- this.swipe({ direction: 'right', speed });
237
- } else {
238
- this.swipe({ direction: 'left', speed });
239
- }
240
- }
241
- }
242
- if (Math.abs(y) > 2) {
243
- const speed = Math.abs(move2.clientY - clientY) / (timeStamp - move2.timeStamp);
244
- if (Math.abs(y) > Math.abs(x)) {
245
- if (y > 0) {
246
- this.swipe({ direction: 'bottom', speed });
247
- } else {
248
- this.swipe({ direction: 'top', speed });
249
- }
250
- }
251
- }
252
- }
253
- }
254
-
255
- this.#startEventMap.delete(pointerId);
256
- // 确保外部 end 事件处理器中可以读取到
323
+ // 确保外部 end 事件处理器中可以读取到,且不删除新手势的记录。
257
324
  await Promise.resolve();
258
- this.movesMap.delete(pointerId);
325
+ if (this.movesMap.get(pointerId) === moves) this.movesMap.delete(pointerId);
259
326
  };
260
327
 
261
328
  #preventDefault = (evt: Event) => evt.preventDefault();
@@ -104,8 +104,21 @@ export function createDecoratorTheme<T extends Record<string, unknown>>(themeObj
104
104
  return (_: any, { addInitializer, access }: Ctx) => {
105
105
  addInitializer(function (this: E) {
106
106
  const theme = createThemeFromProps({ ...themeObj }, props);
107
- this.internals.sheets.push(theme[SheetToken].getStyle(this, true));
108
- this.memo(() => theme(access.get(this).apply(this)), getDep && (() => getDep(this) as any));
107
+ const style = theme[SheetToken].getStyle(this, true);
108
+ this.internals.sheets.push(style);
109
+ this.memo(
110
+ () => {
111
+ const next = access.get(this).apply(this);
112
+ const rule = style.cssRules[0] as CSSStyleRule;
113
+ const eleTarget = this.shadowRoot
114
+ ? rule
115
+ : ((style.element?.sheet?.cssRules[0] as CSSStyleRule)?.cssRules?.[0] as CSSStyleRule);
116
+ for (const key in props) {
117
+ eleTarget?.style.setProperty(props[key], next[key]);
118
+ }
119
+ },
120
+ getDep && (() => getDep(this) as any),
121
+ );
109
122
  });
110
123
  };
111
124
  };
@@ -1 +1 @@
1
- export const version = '2.2.10';
1
+ export const version = '2.2.11';
@@ -0,0 +1,311 @@
1
+ import type { GemGestureElement, SwipeEventDetail } from '../../elements/gesture';
2
+ import { html } from '../../lib/element';
3
+ import { aTimeout, expect, fixture } from '../utils';
4
+
5
+ import '../../elements/gesture';
6
+
7
+ type Sample = [timeStamp: number, clientX: number, clientY?: number];
8
+
9
+ function pointer(type: string, [timeStamp, clientX, clientY = 0]: Sample, pointerId = 1) {
10
+ const event = new PointerEvent(type, {
11
+ bubbles: true,
12
+ pointerType: 'touch',
13
+ isPrimary: pointerId === 1,
14
+ pointerId,
15
+ clientX,
16
+ clientY,
17
+ });
18
+ // timeStamp 是只读属性,PointerEventInit 不接受它。
19
+ Object.defineProperty(event, 'timeStamp', { value: timeStamp });
20
+ return event;
21
+ }
22
+
23
+ async function setupGesture(touchAction = '') {
24
+ const el: GemGestureElement = await fixture(html`<gem-gesture touch-action=${touchAction}></gem-gesture>`);
25
+ const captured = new Set<number>();
26
+ el.setPointerCapture = (id) => captured.add(id);
27
+ el.releasePointerCapture = (id) => captured.delete(id);
28
+ el.hasPointerCapture = (id) => captured.has(id);
29
+ const swipes: SwipeEventDetail[] = [];
30
+ const events: string[] = [];
31
+ el.addEventListener('swipe', (evt: CustomEvent<SwipeEventDetail>) => {
32
+ swipes.push(evt.detail);
33
+ events.push('swipe');
34
+ });
35
+ el.addEventListener('end', () => events.push('end'));
36
+ const dispatch = (type: string, sample: Sample, id = 1) => el.dispatchEvent(pointer(type, sample, id));
37
+ return { el, swipes, events, dispatch };
38
+ }
39
+
40
+ describe('GemGestureElement swipe', () => {
41
+ for (const [direction, x, y] of [
42
+ ['right', 60, 0],
43
+ ['left', -60, 0],
44
+ ['bottom', 0, 60],
45
+ ['top', 0, -60],
46
+ ] as const) {
47
+ it(`emits ${direction} with release speed before end`, async () => {
48
+ const { el, swipes, events, dispatch } = await setupGesture();
49
+ dispatch('pointerdown', [0, 100, 100]);
50
+ dispatch('pointermove', [50, 100 + x, 100 + y]);
51
+ let movesAtEnd = 0;
52
+ el.addEventListener('end', () => {
53
+ movesAtEnd = el.movesMap.get(1)!.length;
54
+ expect(el.grabbing).to.equal(false);
55
+ });
56
+ dispatch('pointerup', [60, 100 + x, 100 + y]);
57
+ await Promise.resolve();
58
+ expect(swipes).to.deep.equal([{ direction, speed: 1 }]);
59
+ expect(events).to.deep.equal(['swipe', 'end']);
60
+ expect(movesAtEnd).to.equal(1);
61
+ await Promise.resolve();
62
+ expect(el.movesMap.size).to.equal(0);
63
+ });
64
+ }
65
+
66
+ for (const frequency of [30, 60, 120, 240]) {
67
+ it(`samples the same release velocity at ${frequency} Hz`, async () => {
68
+ const { swipes, dispatch } = await setupGesture();
69
+ dispatch('pointerdown', [0, 0]);
70
+ for (let time = 1000 / frequency; time < 250; time += 1000 / frequency) {
71
+ dispatch('pointermove', [time, time <= 100 ? time * 0.2 : 20 + (time - 100) * 0.8]);
72
+ }
73
+ dispatch('pointerup', [250, 140]);
74
+ await Promise.resolve();
75
+ expect(swipes).to.have.lengthOf(1);
76
+ expect(swipes[0].direction).to.equal('right');
77
+ expect(swipes[0].speed).to.be.closeTo(0.8, 0.000001);
78
+ });
79
+ }
80
+
81
+ it('interpolates the window boundary instead of including stale movement', async () => {
82
+ const { swipes, dispatch } = await setupGesture();
83
+ dispatch('pointerdown', [0, 0]);
84
+ dispatch('pointermove', [50, 5]);
85
+ dispatch('pointermove', [150, 105]);
86
+ dispatch('pointerup', [180, 135]);
87
+ await Promise.resolve();
88
+ expect(swipes).to.deep.equal([{ direction: 'right', speed: 1 }]);
89
+ });
90
+
91
+ it('includes movement delivered only on pointerup', async () => {
92
+ const { swipes, dispatch } = await setupGesture();
93
+ dispatch('pointerdown', [0, 0]);
94
+ dispatch('pointerup', [50, 50]);
95
+ await Promise.resolve();
96
+ expect(swipes).to.deep.equal([{ direction: 'right', speed: 1 }]);
97
+ });
98
+
99
+ it('reduces velocity when the finger pauses briefly before release', async () => {
100
+ const { swipes, dispatch } = await setupGesture();
101
+ dispatch('pointerdown', [0, 0]);
102
+ dispatch('pointermove', [40, 40]);
103
+ dispatch('pointerup', [80, 40]);
104
+ await Promise.resolve();
105
+ expect(swipes).to.deep.equal([{ direction: 'right', speed: 0.5 }]);
106
+ });
107
+
108
+ for (const [name, samples] of [
109
+ [
110
+ 'slow drag',
111
+ [
112
+ [0, 0],
113
+ [150, 30],
114
+ [180, 35],
115
+ ],
116
+ ],
117
+ [
118
+ 'tap jitter',
119
+ [
120
+ [0, 0],
121
+ [10, 8],
122
+ [20, 7],
123
+ ],
124
+ ],
125
+ [
126
+ 'paused drag',
127
+ [
128
+ [0, 0],
129
+ [40, 80],
130
+ [140, 80],
131
+ ],
132
+ ],
133
+ [
134
+ 'diagonal without a dominant axis',
135
+ [
136
+ [0, 0],
137
+ [40, 40, 40],
138
+ [50, 50, 50],
139
+ ],
140
+ ],
141
+ [
142
+ 'zero duration',
143
+ [
144
+ [0, 0],
145
+ [0, 50],
146
+ [0, 80],
147
+ ],
148
+ ],
149
+ [
150
+ 'short reversal',
151
+ [
152
+ [0, 0],
153
+ [30, 100],
154
+ [60, 85],
155
+ ],
156
+ ],
157
+ ] satisfies [string, Sample[]][]) {
158
+ it(`does not swipe on ${name}`, async () => {
159
+ const { swipes, dispatch } = await setupGesture();
160
+ dispatch('pointerdown', samples[0]);
161
+ dispatch('pointermove', samples[1]);
162
+ dispatch('pointerup', samples[2]);
163
+ await Promise.resolve();
164
+ expect(swipes).to.deep.equal([]);
165
+ });
166
+ }
167
+
168
+ it('uses the final flick direction after reversing a drag', async () => {
169
+ const { swipes, dispatch } = await setupGesture();
170
+ dispatch('pointerdown', [0, 0]);
171
+ dispatch('pointermove', [40, 100]);
172
+ dispatch('pointermove', [60, 80]);
173
+ dispatch('pointerup', [80, 60]);
174
+ await Promise.resolve();
175
+ expect(swipes).to.deep.equal([{ direction: 'left', speed: 1 }]);
176
+ });
177
+
178
+ it('ignores a small backwards jitter at release', async () => {
179
+ const { swipes, dispatch } = await setupGesture();
180
+ dispatch('pointerdown', [0, 0]);
181
+ dispatch('pointermove', [50, 60]);
182
+ dispatch('pointerup', [60, 58]);
183
+ await Promise.resolve();
184
+ expect(swipes).to.have.lengthOf(1);
185
+ expect(swipes[0].direction).to.equal('right');
186
+ expect(swipes[0].speed).to.be.closeTo(58 / 60, 0.000001);
187
+ });
188
+
189
+ for (const [touchAction, x, y] of [
190
+ ['pan-x', 50, 0],
191
+ ['pan-y', 0, 50],
192
+ ['pan-right', 50, 0],
193
+ ['pan-left', -50, 0],
194
+ ['pan-down', 0, 50],
195
+ ['pan-up', 0, -50],
196
+ ] as const) {
197
+ it(`respects touch-action=${touchAction}`, async () => {
198
+ const { swipes, dispatch } = await setupGesture(touchAction);
199
+ dispatch('pointerdown', [0, 0]);
200
+ dispatch('pointermove', [40, x, y]);
201
+ dispatch('pointerup', [50, x, y]);
202
+ await Promise.resolve();
203
+ expect(swipes).to.deep.equal([]);
204
+ });
205
+ }
206
+
207
+ it('allows horizontal flicks with touch-action=pan-y', async () => {
208
+ const { swipes, dispatch } = await setupGesture('pan-y');
209
+ dispatch('pointerdown', [0, 0]);
210
+ dispatch('pointermove', [40, 50, 2]);
211
+ dispatch('pointerup', [50, 50, 2]);
212
+ await Promise.resolve();
213
+ expect(swipes).to.deep.equal([{ direction: 'right', speed: 1 }]);
214
+ });
215
+
216
+ for (const type of ['pointercancel', 'pointerleave']) {
217
+ it(`does not swipe on ${type} or duplicate end events`, async () => {
218
+ const { swipes, events, dispatch } = await setupGesture();
219
+ dispatch('pointerdown', [0, 0]);
220
+ dispatch('pointermove', [40, 50]);
221
+ dispatch(type, [50, 50]);
222
+ dispatch('pointerup', [50, 50]);
223
+ await Promise.resolve();
224
+ expect(swipes).to.deep.equal([]);
225
+ expect(events).to.deep.equal(['end']);
226
+ });
227
+ }
228
+
229
+ it('ignores end events from pointers outside the gesture', async () => {
230
+ const { el, events, dispatch } = await setupGesture();
231
+ dispatch('pointerdown', [0, 0]);
232
+ dispatch('pointerleave', [10, 0], 2);
233
+ expect(events).to.deep.equal([]);
234
+ expect(el.grabbing).to.equal(true);
235
+ dispatch('pointercancel', [20, 0]);
236
+ });
237
+
238
+ it('does not swipe after losing pointer capture', async () => {
239
+ const { el, swipes, dispatch } = await setupGesture();
240
+ dispatch('pointerdown', [0, 0]);
241
+ dispatch('pointermove', [40, 50]);
242
+ el.releasePointerCapture(1);
243
+ dispatch('pointerup', [50, 50]);
244
+ await Promise.resolve();
245
+ expect(swipes).to.deep.equal([]);
246
+ });
247
+
248
+ it('suppresses both fingers of a multitouch gesture and resets for the next gesture', async () => {
249
+ const { el, swipes, events, dispatch } = await setupGesture();
250
+ dispatch('pointerdown', [0, 0]);
251
+ dispatch('pointerdown', [10, 100], 2);
252
+ dispatch('pointermove', [30, 30]);
253
+ dispatch('pointerup', [40, 40]);
254
+ await Promise.resolve();
255
+ expect(el.grabbing).to.equal(true);
256
+ expect(events).to.deep.equal([]);
257
+ await Promise.resolve();
258
+ dispatch('pointermove', [60, 150], 2);
259
+ dispatch('pointerup', [80, 170], 2);
260
+ await Promise.resolve();
261
+ expect(swipes).to.deep.equal([]);
262
+ expect(events).to.deep.equal(['end']);
263
+ dispatch('pointerdown', [100, 0]);
264
+ dispatch('pointermove', [140, 50]);
265
+ dispatch('pointerup', [150, 50]);
266
+ await Promise.resolve();
267
+ expect(swipes).to.deep.equal([{ direction: 'right', speed: 1 }]);
268
+ });
269
+
270
+ it('does not swipe after a long press', async () => {
271
+ const { el, swipes, dispatch } = await setupGesture();
272
+ const pressed = new Promise((resolve) => el.addEventListener('press', resolve, { once: true }));
273
+ dispatch('pointerdown', [0, 0]);
274
+ await pressed;
275
+ dispatch('pointermove', [300, 0]);
276
+ dispatch('pointermove', [340, 60]);
277
+ dispatch('pointerup', [350, 60]);
278
+ await Promise.resolve();
279
+ expect(swipes).to.deep.equal([]);
280
+ });
281
+
282
+ it('handles coalesced samples and the empty-list fallback', async () => {
283
+ const { el, swipes, dispatch } = await setupGesture();
284
+ dispatch('pointerdown', [0, 0]);
285
+ const coalesced = pointer('pointermove', [50, 50]);
286
+ Object.defineProperty(coalesced, 'getCoalescedEvents', {
287
+ value: () => [pointer('pointermove', [25, 25]), pointer('pointermove', [50, 50])],
288
+ });
289
+ el.dispatchEvent(coalesced);
290
+ const empty = pointer('pointermove', [75, 75]);
291
+ Object.defineProperty(empty, 'getCoalescedEvents', { value: () => [] });
292
+ el.dispatchEvent(empty);
293
+ expect(el.movesMap.get(1)).to.have.lengthOf(3);
294
+ dispatch('pointerup', [100, 100]);
295
+ await Promise.resolve();
296
+ expect(swipes).to.deep.equal([{ direction: 'right', speed: 1 }]);
297
+ });
298
+
299
+ it('preserves a new gesture started by an end handler', async () => {
300
+ const { el, dispatch } = await setupGesture();
301
+ el.addEventListener('end', () => dispatch('pointerdown', [100, 0]), { once: true });
302
+ dispatch('pointerdown', [0, 0]);
303
+ dispatch('pointermove', [40, 50]);
304
+ dispatch('pointerup', [50, 50]);
305
+ await Promise.resolve();
306
+ await aTimeout();
307
+ expect(el.grabbing).to.equal(true);
308
+ expect(el.movesMap.has(1)).to.equal(true);
309
+ dispatch('pointercancel', [110, 0]);
310
+ });
311
+ });