@nativescript/canvas 2.0.0-rc.0 → 2.0.0-rc.10
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/Canvas/common.d.ts +8 -6
- package/Canvas/common.js +252 -205
- package/Canvas/common.js.map +1 -1
- package/Canvas/index.android.d.ts +2 -0
- package/Canvas/index.android.js +11 -0
- package/Canvas/index.android.js.map +1 -1
- package/Canvas/index.d.ts +1 -0
- package/Canvas/index.ios.d.ts +2 -0
- package/Canvas/index.ios.js +6 -0
- package/Canvas/index.ios.js.map +1 -1
- package/TextDecoder/index.d.ts +1 -0
- package/TextDecoder/index.js +17 -0
- package/TextDecoder/index.js.map +1 -1
- package/WebGPU/GPUQueue.js +1 -1
- package/WebGPU/GPUQueue.js.map +1 -1
- package/angular/esm2022/index.mjs +4 -4
- package/angular/fesm2022/nativescript-canvas-angular.mjs +4 -4
- package/helpers.d.ts +3 -0
- package/helpers.js +9 -0
- package/helpers.js.map +1 -1
- package/package.json +1 -1
- package/platforms/android/canvas-release.aar +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_ios.h +14 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +10 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +18 -18
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +994 -994
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_ios.h +14 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +10 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +20 -20
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +20 -20
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +16 -16
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +989 -989
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +1037 -1037
- package/platforms/ios/src/cpp/CanvasJSIModule.cpp +172 -2
- package/platforms/ios/src/cpp/CanvasJSIModule.h +6 -0
- package/platforms/ios/src/cpp/Helpers.h +44 -0
- package/platforms/ios/src/cpp/PromiseCallback.h +42 -20
- package/platforms/ios/src/cpp/TextDecoderImpl.cpp +142 -0
- package/platforms/ios/src/cpp/TextDecoderImpl.h +2 -0
- package/platforms/ios/src/cpp/webgpu/GPUQueueImpl.cpp +1 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Black.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Bold.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-ExtraBold.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-ExtraLight.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Light.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Medium.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Regular.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-SemiBold.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Black.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Bold.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-ExtraBold.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-ExtraLight.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Light.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Medium.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Regular.ttf +0 -0
- package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-SemiBold.ttf +0 -0
package/Canvas/common.js
CHANGED
|
@@ -34,11 +34,17 @@ export class Event {
|
|
|
34
34
|
this.type = type;
|
|
35
35
|
this.bubbles = options?.bubbles ?? false;
|
|
36
36
|
this.cancelable = options?.cancelable ?? false;
|
|
37
|
-
this.cancelable = options?.cancelable ?? false;
|
|
38
37
|
this.composed = options?.composed ?? false;
|
|
38
|
+
this.target = options?.target ?? null;
|
|
39
|
+
this._preventDefault = options?.preventDefault;
|
|
40
|
+
this._stopPropagation = options?.stopPropagation;
|
|
41
|
+
}
|
|
42
|
+
preventDefault() {
|
|
43
|
+
this._preventDefault?.();
|
|
44
|
+
}
|
|
45
|
+
stopPropagation() {
|
|
46
|
+
this._stopPropagation?.();
|
|
39
47
|
}
|
|
40
|
-
preventDefault() { }
|
|
41
|
-
stopPropagation() { }
|
|
42
48
|
}
|
|
43
49
|
export class UIEvent extends Event {
|
|
44
50
|
constructor(type, options) {
|
|
@@ -84,8 +90,6 @@ export class PointerEvent extends MouseEvent {
|
|
|
84
90
|
this.twist = options?.twist ?? 0;
|
|
85
91
|
this.isPrimary = options?.isPrimary ?? false;
|
|
86
92
|
}
|
|
87
|
-
preventDefault() { }
|
|
88
|
-
stopPropagation() { }
|
|
89
93
|
}
|
|
90
94
|
export class Touch {
|
|
91
95
|
constructor(options) {
|
|
@@ -132,8 +136,6 @@ export class TouchEvent extends UIEvent {
|
|
|
132
136
|
this.ctrlKey = options?.ctrlKey ?? false;
|
|
133
137
|
this.shiftKey = options?.shiftKey ?? false;
|
|
134
138
|
}
|
|
135
|
-
preventDefault() { }
|
|
136
|
-
stopPropagation() { }
|
|
137
139
|
}
|
|
138
140
|
export class WheelEvent extends UIEvent {
|
|
139
141
|
constructor(type, options) {
|
|
@@ -187,7 +189,7 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
187
189
|
this._touchCancelCallbacks = new Array();
|
|
188
190
|
this._touches = [];
|
|
189
191
|
this._touchesById = [];
|
|
190
|
-
this._lastPointerEventById =
|
|
192
|
+
this._lastPointerEventById = new Map();
|
|
191
193
|
this.__target = null;
|
|
192
194
|
this._classList = new Set();
|
|
193
195
|
this.style.width = { unit: '%', value: 1 };
|
|
@@ -326,19 +328,13 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
326
328
|
_moveCallback(pointers) {
|
|
327
329
|
const hasPointerCallbacks = this._pointerMoveCallbacks.length > 0;
|
|
328
330
|
const hasMouseCallbacks = this._mouseMoveCallbacks.length > 0;
|
|
329
|
-
|
|
331
|
+
const hasTouchCallbacks = this._touchMoveCallbacks.length > 0;
|
|
332
|
+
if (hasPointerCallbacks || hasMouseCallbacks || hasTouchCallbacks) {
|
|
333
|
+
let preventDefault = false;
|
|
334
|
+
const changedTouches = hasTouchCallbacks ? TouchList.empty() : null;
|
|
330
335
|
for (const pointer of pointers) {
|
|
331
336
|
const pointerId = pointer.ptrId;
|
|
332
|
-
const
|
|
333
|
-
return item?.pointerId === pointerId;
|
|
334
|
-
});
|
|
335
|
-
let previousEvent;
|
|
336
|
-
if (index > -1) {
|
|
337
|
-
previousEvent = this._lastPointerEventById[index];
|
|
338
|
-
}
|
|
339
|
-
else {
|
|
340
|
-
previousEvent = { pointerId, x: 0, y: 0 };
|
|
341
|
-
}
|
|
337
|
+
const previousEvent = this._lastPointerEventById.get(pointerId) ?? { pointerId, x: 0, y: 0 };
|
|
342
338
|
if (hasPointerCallbacks) {
|
|
343
339
|
const event = new PointerEvent('pointermove', {
|
|
344
340
|
pointerType: 'touch',
|
|
@@ -354,12 +350,49 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
354
350
|
isPrimary: pointer.isPrimary,
|
|
355
351
|
button: -1,
|
|
356
352
|
target: this.__target ?? this,
|
|
353
|
+
cancelable: true,
|
|
354
|
+
preventDefault: () => {
|
|
355
|
+
preventDefault = true;
|
|
356
|
+
},
|
|
357
357
|
});
|
|
358
358
|
for (const callback of this._pointerMoveCallbacks) {
|
|
359
359
|
callback(event);
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
|
-
if (
|
|
362
|
+
if (!preventDefault && hasTouchCallbacks) {
|
|
363
|
+
changedTouches.push(new Touch({
|
|
364
|
+
identifier: pointer.ptrId,
|
|
365
|
+
target: this.__target ?? this,
|
|
366
|
+
clientX: pointer.x,
|
|
367
|
+
clientY: pointer.y,
|
|
368
|
+
screenX: pointer.x,
|
|
369
|
+
screenY: pointer.y,
|
|
370
|
+
pageX: pointer.x,
|
|
371
|
+
pageY: pointer.y,
|
|
372
|
+
}));
|
|
373
|
+
}
|
|
374
|
+
this._lastPointerEventById.set(pointerId, { pointerId, x: pointer.x, y: pointer.y });
|
|
375
|
+
}
|
|
376
|
+
if ((changedTouches?.length ?? 0) > 0) {
|
|
377
|
+
const touches = TouchList.fromList(this._touches);
|
|
378
|
+
const event = new TouchEvent('touchmove', {
|
|
379
|
+
touches,
|
|
380
|
+
targetTouches: touches,
|
|
381
|
+
changedTouches,
|
|
382
|
+
target: this.__target ?? this,
|
|
383
|
+
cancelable: true,
|
|
384
|
+
preventDefault: () => {
|
|
385
|
+
preventDefault = true;
|
|
386
|
+
},
|
|
387
|
+
});
|
|
388
|
+
for (const callback of this._touchMoveCallbacks) {
|
|
389
|
+
callback(event);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
if (!preventDefault && hasMouseCallbacks) {
|
|
393
|
+
for (const pointer of pointers) {
|
|
394
|
+
const pointerId = pointer.ptrId;
|
|
395
|
+
const previousEvent = this._lastPointerEventById.get(pointerId) ?? { pointerId, x: 0, y: 0 };
|
|
363
396
|
const event = new MouseEvent('mousemove', {
|
|
364
397
|
clientX: pointer.x,
|
|
365
398
|
clientY: pointer.y,
|
|
@@ -371,48 +404,24 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
371
404
|
movementY: pointer.y - previousEvent.y,
|
|
372
405
|
button: -1,
|
|
373
406
|
target: this.__target ?? this,
|
|
407
|
+
preventDefault: () => {
|
|
408
|
+
preventDefault = true;
|
|
409
|
+
},
|
|
374
410
|
});
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
// }
|
|
379
|
-
}
|
|
380
|
-
if (index > -1) {
|
|
381
|
-
this._lastPointerEventById[index] = { pointerId, x: pointer.x, y: pointer.y };
|
|
411
|
+
for (const callback of this._mouseMoveCallbacks) {
|
|
412
|
+
callback(event);
|
|
413
|
+
}
|
|
382
414
|
}
|
|
383
415
|
}
|
|
384
416
|
}
|
|
385
|
-
if (this._touchMoveCallbacks.length > 0) {
|
|
386
|
-
const changedTouches = TouchList.empty();
|
|
387
|
-
for (const pointer of pointers) {
|
|
388
|
-
changedTouches.push(new Touch({
|
|
389
|
-
identifier: pointer.ptrId,
|
|
390
|
-
target: this.__target ?? this,
|
|
391
|
-
clientX: pointer.x,
|
|
392
|
-
clientY: pointer.y,
|
|
393
|
-
screenX: pointer.x,
|
|
394
|
-
screenY: pointer.y,
|
|
395
|
-
pageX: pointer.x,
|
|
396
|
-
pageY: pointer.y,
|
|
397
|
-
}));
|
|
398
|
-
}
|
|
399
|
-
const touches = TouchList.fromList(this._touches);
|
|
400
|
-
const event = new TouchEvent('touchmove', {
|
|
401
|
-
touches,
|
|
402
|
-
targetTouches: touches,
|
|
403
|
-
changedTouches,
|
|
404
|
-
target: this.__target ?? this,
|
|
405
|
-
});
|
|
406
|
-
for (const callback of this._touchMoveCallbacks) {
|
|
407
|
-
callback(event);
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
417
|
}
|
|
411
418
|
_upCallback(ptrId, x, y, isPrimary = false) {
|
|
412
419
|
const hasPointerCallbacks = this._pointerUpCallbacks.length > 0 || this._pointerOutCallbacks.length > 0 || this._pointerLeaveCallbacks.length > 0;
|
|
413
420
|
const hasMouseCallbacks = this._mouseUpCallbacks.length > 0;
|
|
414
|
-
|
|
415
|
-
|
|
421
|
+
const hasTouchCallbacks = this._touchEndCallbacks.length > 0;
|
|
422
|
+
const pointerId = ptrId;
|
|
423
|
+
if (hasPointerCallbacks || hasMouseCallbacks || hasTouchCallbacks) {
|
|
424
|
+
let preventDefault = false;
|
|
416
425
|
if (hasPointerCallbacks) {
|
|
417
426
|
const up = new PointerEvent('pointerup', {
|
|
418
427
|
pointerType: 'touch',
|
|
@@ -425,6 +434,10 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
425
434
|
pageX: x,
|
|
426
435
|
pageY: y,
|
|
427
436
|
target: this.__target ?? this,
|
|
437
|
+
cancelable: true,
|
|
438
|
+
preventDefault: () => {
|
|
439
|
+
preventDefault = true;
|
|
440
|
+
},
|
|
428
441
|
});
|
|
429
442
|
const out = new PointerEvent('pointerout', {
|
|
430
443
|
pointerType: 'touch',
|
|
@@ -460,7 +473,35 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
460
473
|
callback(leave);
|
|
461
474
|
}
|
|
462
475
|
}
|
|
463
|
-
if (
|
|
476
|
+
if (hasTouchCallbacks && !preventDefault) {
|
|
477
|
+
const touches = TouchList.fromList(this._touches);
|
|
478
|
+
const changedTouches = TouchList.fromList([
|
|
479
|
+
new Touch({
|
|
480
|
+
identifier: ptrId,
|
|
481
|
+
target: this.__target ?? this,
|
|
482
|
+
clientX: x,
|
|
483
|
+
clientY: y,
|
|
484
|
+
screenX: x,
|
|
485
|
+
screenY: y,
|
|
486
|
+
pageX: x,
|
|
487
|
+
pageY: y,
|
|
488
|
+
}),
|
|
489
|
+
]);
|
|
490
|
+
const event = new TouchEvent('touchend', {
|
|
491
|
+
touches,
|
|
492
|
+
targetTouches: touches,
|
|
493
|
+
changedTouches,
|
|
494
|
+
target: this.__target ?? this,
|
|
495
|
+
cancelable: true,
|
|
496
|
+
preventDefault: () => {
|
|
497
|
+
preventDefault = true;
|
|
498
|
+
},
|
|
499
|
+
});
|
|
500
|
+
for (const callback of this._touchEndCallbacks) {
|
|
501
|
+
callback(event);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
if (hasMouseCallbacks && !preventDefault) {
|
|
464
505
|
const event = new MouseEvent('mouseup', {
|
|
465
506
|
clientX: x,
|
|
466
507
|
clientY: y,
|
|
@@ -469,17 +510,13 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
469
510
|
pageX: x,
|
|
470
511
|
pageY: y,
|
|
471
512
|
target: this.__target ?? this,
|
|
513
|
+
preventDefault: () => {
|
|
514
|
+
preventDefault = true;
|
|
515
|
+
},
|
|
472
516
|
});
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
// }
|
|
477
|
-
}
|
|
478
|
-
const index = this._lastPointerEventById.findIndex((item) => {
|
|
479
|
-
return item?.pointerId === pointerId;
|
|
480
|
-
});
|
|
481
|
-
if (index > -1) {
|
|
482
|
-
this._lastPointerEventById.splice(index, 1);
|
|
517
|
+
for (const callback of this._mouseUpCallbacks) {
|
|
518
|
+
callback(event);
|
|
519
|
+
}
|
|
483
520
|
}
|
|
484
521
|
}
|
|
485
522
|
const length = this._touches.length;
|
|
@@ -489,34 +526,14 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
489
526
|
break;
|
|
490
527
|
}
|
|
491
528
|
}
|
|
492
|
-
|
|
493
|
-
const touches = TouchList.fromList(this._touches);
|
|
494
|
-
const changedTouches = TouchList.fromList([
|
|
495
|
-
new Touch({
|
|
496
|
-
identifier: ptrId,
|
|
497
|
-
target: this.__target ?? this,
|
|
498
|
-
clientX: x,
|
|
499
|
-
clientY: y,
|
|
500
|
-
screenX: x,
|
|
501
|
-
screenY: y,
|
|
502
|
-
pageX: x,
|
|
503
|
-
pageY: y,
|
|
504
|
-
}),
|
|
505
|
-
]);
|
|
506
|
-
const event = new TouchEvent('touchend', {
|
|
507
|
-
touches,
|
|
508
|
-
targetTouches: touches,
|
|
509
|
-
changedTouches,
|
|
510
|
-
});
|
|
511
|
-
for (const callback of this._touchEndCallbacks) {
|
|
512
|
-
callback(event);
|
|
513
|
-
}
|
|
514
|
-
}
|
|
529
|
+
this._lastPointerEventById.delete(pointerId);
|
|
515
530
|
}
|
|
516
531
|
_downCallback(ptrId, x, y, isPrimary = false) {
|
|
517
532
|
const hasPointerCallbacks = this._pointerDownCallbacks.length > 0;
|
|
518
533
|
const hasMouseCallbacks = this._mouseDownCallbacks.length > 0;
|
|
519
|
-
|
|
534
|
+
const hasTouchCallbacks = this._touchStartCallbacks.length > 0;
|
|
535
|
+
if (hasPointerCallbacks || hasMouseCallbacks || hasTouchCallbacks) {
|
|
536
|
+
let preventDefault = false;
|
|
520
537
|
const pointerId = ptrId;
|
|
521
538
|
if (hasPointerCallbacks) {
|
|
522
539
|
const event = new PointerEvent('pointerdown', {
|
|
@@ -530,57 +547,69 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
530
547
|
pageX: x,
|
|
531
548
|
pageY: y,
|
|
532
549
|
target: this.__target ?? this,
|
|
550
|
+
cancelable: true,
|
|
551
|
+
preventDefault: () => {
|
|
552
|
+
preventDefault = true;
|
|
553
|
+
},
|
|
533
554
|
});
|
|
534
555
|
for (const callback of this._pointerDownCallbacks) {
|
|
535
556
|
callback(event);
|
|
536
557
|
}
|
|
537
558
|
}
|
|
538
|
-
if (
|
|
539
|
-
const
|
|
559
|
+
if (hasTouchCallbacks && !preventDefault) {
|
|
560
|
+
const touch = new Touch({
|
|
561
|
+
identifier: ptrId,
|
|
562
|
+
target: this.__target ?? this,
|
|
540
563
|
clientX: x,
|
|
541
564
|
clientY: y,
|
|
542
565
|
screenX: x,
|
|
543
566
|
screenY: y,
|
|
544
567
|
pageX: x,
|
|
545
568
|
pageY: y,
|
|
569
|
+
});
|
|
570
|
+
this._touches.push(touch);
|
|
571
|
+
this._touchesById[ptrId] = touch;
|
|
572
|
+
const touches = TouchList.fromList(this._touches);
|
|
573
|
+
const touchEvent = new TouchEvent('touchstart', {
|
|
574
|
+
touches,
|
|
575
|
+
targetTouches: touches,
|
|
576
|
+
changedTouches: this._touches,
|
|
546
577
|
target: this.__target ?? this,
|
|
578
|
+
cancelable: true,
|
|
579
|
+
preventDefault: () => {
|
|
580
|
+
preventDefault = true;
|
|
581
|
+
},
|
|
547
582
|
});
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
// }
|
|
583
|
+
for (const callback of this._touchStartCallbacks) {
|
|
584
|
+
callback(touchEvent);
|
|
585
|
+
}
|
|
552
586
|
}
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
const touchEvent = new TouchEvent('touchstart', {
|
|
570
|
-
touches,
|
|
571
|
-
targetTouches: touches,
|
|
572
|
-
changedTouches: this._touches,
|
|
573
|
-
target: this.__target ?? this,
|
|
574
|
-
});
|
|
575
|
-
for (const callback of this._touchStartCallbacks) {
|
|
576
|
-
callback(touchEvent);
|
|
587
|
+
if (hasMouseCallbacks && !preventDefault) {
|
|
588
|
+
const event = new MouseEvent('mousedown', {
|
|
589
|
+
clientX: x,
|
|
590
|
+
clientY: y,
|
|
591
|
+
screenX: x,
|
|
592
|
+
screenY: y,
|
|
593
|
+
pageX: x,
|
|
594
|
+
pageY: y,
|
|
595
|
+
target: this.__target ?? this,
|
|
596
|
+
preventDefault: () => {
|
|
597
|
+
preventDefault = true;
|
|
598
|
+
},
|
|
599
|
+
});
|
|
600
|
+
for (const callback of this._mouseDownCallbacks) {
|
|
601
|
+
callback(event);
|
|
602
|
+
}
|
|
577
603
|
}
|
|
604
|
+
this._lastPointerEventById.set(pointerId, { pointerId, x, y });
|
|
578
605
|
}
|
|
579
606
|
}
|
|
580
607
|
_cancelCallback(ptrId, x, y, isPrimary = false) {
|
|
581
608
|
const hasPointerCallbacks = this._pointerCancelCallbacks.length > 0;
|
|
582
609
|
const hasMouseCallbacks = this._mouseCancelCallbacks.length > 0;
|
|
583
|
-
|
|
610
|
+
const hasTouchCallbacks = this._touchCancelCallbacks.length > 0;
|
|
611
|
+
if (hasPointerCallbacks || hasMouseCallbacks || hasTouchCallbacks) {
|
|
612
|
+
let preventDefault = false;
|
|
584
613
|
const pointerId = ptrId;
|
|
585
614
|
if (hasPointerCallbacks) {
|
|
586
615
|
const event = new PointerEvent('pointercancel', {
|
|
@@ -594,51 +623,62 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
594
623
|
pageY: y,
|
|
595
624
|
isPrimary,
|
|
596
625
|
target: this.__target ?? this,
|
|
626
|
+
cancelable: true,
|
|
627
|
+
preventDefault: () => {
|
|
628
|
+
preventDefault = true;
|
|
629
|
+
},
|
|
597
630
|
});
|
|
598
631
|
for (const callback of this._pointerCancelCallbacks) {
|
|
599
632
|
callback(event);
|
|
600
633
|
}
|
|
601
634
|
}
|
|
602
|
-
if (
|
|
603
|
-
const
|
|
635
|
+
if (hasTouchCallbacks && !preventDefault) {
|
|
636
|
+
const touch = new Touch({
|
|
637
|
+
identifier: ptrId,
|
|
638
|
+
target: this.__target ?? this,
|
|
604
639
|
clientX: x,
|
|
605
640
|
clientY: y,
|
|
606
641
|
screenX: x,
|
|
607
642
|
screenY: y,
|
|
608
643
|
pageX: x,
|
|
609
644
|
pageY: y,
|
|
645
|
+
});
|
|
646
|
+
const touchesList = [touch];
|
|
647
|
+
const touchesById = [];
|
|
648
|
+
touchesById[ptrId] = touch;
|
|
649
|
+
const touches = TouchList.fromList(touchesList);
|
|
650
|
+
const touchEvent = new TouchEvent('touchcancel', {
|
|
651
|
+
touches,
|
|
652
|
+
targetTouches: touches,
|
|
653
|
+
changedTouches: touchesList,
|
|
610
654
|
target: this.__target ?? this,
|
|
655
|
+
cancelable: true,
|
|
656
|
+
preventDefault: () => {
|
|
657
|
+
preventDefault = true;
|
|
658
|
+
},
|
|
611
659
|
});
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
// }
|
|
660
|
+
for (const callback of this._touchCancelCallbacks) {
|
|
661
|
+
callback(touchEvent);
|
|
662
|
+
}
|
|
616
663
|
}
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
const touchEvent = new TouchEvent('touchcancel', {
|
|
634
|
-
touches,
|
|
635
|
-
targetTouches: touches,
|
|
636
|
-
changedTouches: touchesList,
|
|
637
|
-
target: this.__target ?? this,
|
|
638
|
-
});
|
|
639
|
-
for (const callback of this._touchCancelCallbacks) {
|
|
640
|
-
callback(touchEvent);
|
|
664
|
+
if (hasMouseCallbacks && !preventDefault) {
|
|
665
|
+
const event = new MouseEvent('mouseout', {
|
|
666
|
+
clientX: x,
|
|
667
|
+
clientY: y,
|
|
668
|
+
screenX: x,
|
|
669
|
+
screenY: y,
|
|
670
|
+
pageX: x,
|
|
671
|
+
pageY: y,
|
|
672
|
+
target: this.__target ?? this,
|
|
673
|
+
preventDefault: () => {
|
|
674
|
+
preventDefault = true;
|
|
675
|
+
},
|
|
676
|
+
});
|
|
677
|
+
for (const callback of this._mouseCancelCallbacks) {
|
|
678
|
+
callback(event);
|
|
679
|
+
}
|
|
641
680
|
}
|
|
681
|
+
this._lastPointerEventById.set(pointerId, { pointerId, x, y });
|
|
642
682
|
}
|
|
643
683
|
}
|
|
644
684
|
_pinchCallback(data) {
|
|
@@ -646,19 +686,13 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
646
686
|
const hasPointerCallbacks = this._pointerMoveCallbacks.length > 0;
|
|
647
687
|
const hasMouseCallbacks = this._mouseMoveCallbacks.length > 0;
|
|
648
688
|
const hasMouseWheel = this._mouseWheelCallbacks.length > 0;
|
|
649
|
-
|
|
689
|
+
const hasTouchCallbacks = this._touchMoveCallbacks.length > 0;
|
|
690
|
+
if (hasPointerCallbacks || hasMouseCallbacks || hasMouseWheel || hasTouchCallbacks) {
|
|
691
|
+
const changedTouches = hasTouchCallbacks ? TouchList.empty() : null;
|
|
692
|
+
let preventDefault = false;
|
|
650
693
|
for (const pointer of data.pointers) {
|
|
651
694
|
const pointerId = pointer.ptrId;
|
|
652
|
-
const
|
|
653
|
-
return item?.pointerId === pointerId;
|
|
654
|
-
});
|
|
655
|
-
let previousEvent;
|
|
656
|
-
if (index > -1) {
|
|
657
|
-
previousEvent = this._lastPointerEventById[index];
|
|
658
|
-
}
|
|
659
|
-
else {
|
|
660
|
-
previousEvent = { pointerId, x: 0, y: 0 };
|
|
661
|
-
}
|
|
695
|
+
const previousEvent = this._lastPointerEventById.get(pointerId) ?? { pointerId, x: 0, y: 0 };
|
|
662
696
|
if (hasPointerCallbacks) {
|
|
663
697
|
const event = new PointerEvent('pointermove', {
|
|
664
698
|
pointerType: 'touch',
|
|
@@ -673,12 +707,49 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
673
707
|
movementY: pointer.y - previousEvent.y,
|
|
674
708
|
button: -1,
|
|
675
709
|
target: this.__target ?? this,
|
|
710
|
+
cancelable: true,
|
|
711
|
+
preventDefault: () => {
|
|
712
|
+
preventDefault = true;
|
|
713
|
+
},
|
|
676
714
|
});
|
|
677
715
|
for (const callback of this._pointerMoveCallbacks) {
|
|
678
716
|
callback(event);
|
|
679
717
|
}
|
|
680
718
|
}
|
|
681
|
-
if (
|
|
719
|
+
if (hasTouchCallbacks && !preventDefault) {
|
|
720
|
+
changedTouches.push(new Touch({
|
|
721
|
+
identifier: pointer.ptrId,
|
|
722
|
+
target: this.__target ?? this,
|
|
723
|
+
clientX: pointer.x,
|
|
724
|
+
clientY: pointer.y,
|
|
725
|
+
screenX: pointer.x,
|
|
726
|
+
screenY: pointer.y,
|
|
727
|
+
pageX: pointer.x,
|
|
728
|
+
pageY: pointer.y,
|
|
729
|
+
}));
|
|
730
|
+
}
|
|
731
|
+
this._lastPointerEventById.set(pointerId, { pointerId, x: pointer.x, y: pointer.y });
|
|
732
|
+
}
|
|
733
|
+
if ((changedTouches?.length ?? 0) > 0) {
|
|
734
|
+
const touches = TouchList.fromList(this._touches);
|
|
735
|
+
const event = new TouchEvent('touchmove', {
|
|
736
|
+
touches,
|
|
737
|
+
targetTouches: touches,
|
|
738
|
+
changedTouches,
|
|
739
|
+
target: this.__target ?? this,
|
|
740
|
+
cancelable: true,
|
|
741
|
+
preventDefault: () => {
|
|
742
|
+
preventDefault = true;
|
|
743
|
+
},
|
|
744
|
+
});
|
|
745
|
+
for (const callback of this._touchMoveCallbacks) {
|
|
746
|
+
callback(event);
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
if (!preventDefault && hasMouseCallbacks) {
|
|
750
|
+
for (const pointer of data.pointers) {
|
|
751
|
+
const pointerId = pointer.ptrId;
|
|
752
|
+
const previousEvent = this._lastPointerEventById.get(pointerId) ?? { pointerId, x: 0, y: 0 };
|
|
682
753
|
const event = new MouseEvent('mousemove', {
|
|
683
754
|
clientX: pointer.x,
|
|
684
755
|
clientY: pointer.y,
|
|
@@ -690,53 +761,26 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
690
761
|
movementY: pointer.y - previousEvent.y,
|
|
691
762
|
button: -1,
|
|
692
763
|
target: this.__target ?? this,
|
|
764
|
+
preventDefault: () => {
|
|
765
|
+
preventDefault = true;
|
|
766
|
+
},
|
|
693
767
|
});
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
// }
|
|
698
|
-
}
|
|
699
|
-
if (hasMouseWheel) {
|
|
700
|
-
const event = new WheelEvent('wheel', {
|
|
701
|
-
deltaX: data.deltaX,
|
|
702
|
-
deltaY: data.deltaY,
|
|
703
|
-
deltaZ: 0,
|
|
704
|
-
deltaMode: data.deltaMode,
|
|
705
|
-
target: this.__target ?? this,
|
|
706
|
-
});
|
|
707
|
-
// todo emit wheel when desktop is supported
|
|
708
|
-
// for (const callback of this._mouseWheelCallbacks) {
|
|
709
|
-
// callback(event);
|
|
710
|
-
// }
|
|
711
|
-
}
|
|
712
|
-
if (index > -1) {
|
|
713
|
-
this._lastPointerEventById[index] = { pointerId, x: pointer.x, y: pointer.y };
|
|
768
|
+
for (const callback of this._mouseMoveCallbacks) {
|
|
769
|
+
callback(event);
|
|
770
|
+
}
|
|
714
771
|
}
|
|
715
772
|
}
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
773
|
+
if (hasMouseWheel) {
|
|
774
|
+
const event = new WheelEvent('wheel', {
|
|
775
|
+
deltaX: data.deltaX,
|
|
776
|
+
deltaY: data.deltaY,
|
|
777
|
+
deltaZ: 0,
|
|
778
|
+
deltaMode: data.deltaMode,
|
|
722
779
|
target: this.__target ?? this,
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
pageX: pointer.x,
|
|
728
|
-
pageY: pointer.y,
|
|
729
|
-
}));
|
|
730
|
-
}
|
|
731
|
-
const touches = TouchList.fromList(this._touches);
|
|
732
|
-
const event = new TouchEvent('touchmove', {
|
|
733
|
-
touches,
|
|
734
|
-
targetTouches: touches,
|
|
735
|
-
changedTouches,
|
|
736
|
-
target: this.__target ?? this,
|
|
737
|
-
});
|
|
738
|
-
for (const callback of this._touchMoveCallbacks) {
|
|
739
|
-
callback(event);
|
|
780
|
+
});
|
|
781
|
+
for (const callback of this._mouseWheelCallbacks) {
|
|
782
|
+
callback(event);
|
|
783
|
+
}
|
|
740
784
|
}
|
|
741
785
|
}
|
|
742
786
|
}
|
|
@@ -782,6 +826,9 @@ let CanvasBase = class CanvasBase extends View {
|
|
|
782
826
|
}
|
|
783
827
|
setPointerCapture(id) { }
|
|
784
828
|
releasePointerCapture(id) { }
|
|
829
|
+
getRootNode() {
|
|
830
|
+
return this;
|
|
831
|
+
}
|
|
785
832
|
};
|
|
786
833
|
CanvasBase.readyEvent = 'ready';
|
|
787
834
|
CanvasBase = __decorate([
|