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