mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-15 10:09:45 +00:00
62 lines
1.3 KiB
JavaScript
62 lines
1.3 KiB
JavaScript
let touchPoints = [];
|
|
let idCnt = 0;
|
|
|
|
class Finger {
|
|
constructor(point, page) {
|
|
this._point = point;
|
|
this._page = page;
|
|
}
|
|
|
|
move(x, y) {
|
|
if (!this._point) return;
|
|
Object.assign(this._point, {
|
|
x: Math.floor(x),
|
|
y: Math.floor(y)
|
|
});
|
|
this._page.touchscreen._client.send("Input.dispatchTouchEvent", {
|
|
type: "touchMove",
|
|
touchPoints,
|
|
modifiers: page._keyboard._modifiers
|
|
});
|
|
}
|
|
|
|
up() {
|
|
if (!this._point) return;
|
|
const idx = touchPoints.indexOf(this._point);
|
|
touchPoints = touchPoints.splice(idx, 1);
|
|
this._point = null;
|
|
if (touchPoints.length === 0) {
|
|
this._page.touchscreen._client.send("Input.dispatchTouchEvent", {
|
|
type: "touchEnd",
|
|
modifiers: this._page._keyboard._modifiers
|
|
});
|
|
} else {
|
|
this._page.touchscreen._client.send("Input.dispatchTouchEvent", {
|
|
type: "touchMove",
|
|
touchPoints,
|
|
modifiers: this._page._keyboard._modifiers
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
function fingerDown(page, x, y) {
|
|
const id = idCnt++;
|
|
const point = {
|
|
x: Math.round(x),
|
|
y: Math.round(y),
|
|
id
|
|
};
|
|
touchPoints.push(point);
|
|
page.touchscreen._client.send("Input.dispatchTouchEvent", {
|
|
type: "touchStart",
|
|
touchPoints,
|
|
modifiers: page._keyboard._modifiers
|
|
});
|
|
return new Finger(point, page);
|
|
}
|
|
|
|
module.exports = {
|
|
fingerDown
|
|
};
|