canvu-react 0.3.22 → 0.3.24
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.cjs +18 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +18 -9
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +73 -52
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +73 -52
- package/dist/react.js.map +1 -1
- package/dist/realtime.cjs +1 -6
- package/dist/realtime.cjs.map +1 -1
- package/dist/realtime.js +1 -6
- package/dist/realtime.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -554,16 +554,23 @@ function distanceBetween(a, b) {
|
|
|
554
554
|
function midpoint(a, b) {
|
|
555
555
|
return { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 };
|
|
556
556
|
}
|
|
557
|
-
function
|
|
558
|
-
switch (
|
|
557
|
+
function wheelDeltaPixels(delta, deltaMode) {
|
|
558
|
+
switch (deltaMode) {
|
|
559
559
|
case WheelEvent.DOM_DELTA_LINE:
|
|
560
|
-
return
|
|
560
|
+
return delta * 16;
|
|
561
561
|
case WheelEvent.DOM_DELTA_PAGE:
|
|
562
|
-
return
|
|
562
|
+
return delta * 400;
|
|
563
563
|
default:
|
|
564
|
-
return
|
|
564
|
+
return delta;
|
|
565
565
|
}
|
|
566
566
|
}
|
|
567
|
+
var TRACKPAD_MAX_DELTA = 20;
|
|
568
|
+
var MOUSE_WHEEL_DAMPING = 0.4;
|
|
569
|
+
function softenWheelDelta(d) {
|
|
570
|
+
const a = Math.abs(d);
|
|
571
|
+
if (a <= TRACKPAD_MAX_DELTA) return d;
|
|
572
|
+
return Math.sign(d) * (TRACKPAD_MAX_DELTA + (a - TRACKPAD_MAX_DELTA) * MOUSE_WHEEL_DAMPING);
|
|
573
|
+
}
|
|
567
574
|
function attachViewportInput(options) {
|
|
568
575
|
const {
|
|
569
576
|
element,
|
|
@@ -586,8 +593,8 @@ function attachViewportInput(options) {
|
|
|
586
593
|
const onWheel = (e) => {
|
|
587
594
|
if (e.ctrlKey || e.metaKey) {
|
|
588
595
|
e.preventDefault();
|
|
589
|
-
const dy =
|
|
590
|
-
const normDy = Math.abs(dy) <
|
|
596
|
+
const dy = wheelDeltaPixels(e.deltaY, e.deltaMode);
|
|
597
|
+
const normDy = Math.abs(dy) < TRACKPAD_MAX_DELTA ? dy * 12 : dy;
|
|
591
598
|
const factor = Math.exp(-normDy * wheelZoomSensitivity);
|
|
592
599
|
const rect = element.getBoundingClientRect();
|
|
593
600
|
camera.setZoom(camera.zoom * factor, {
|
|
@@ -598,8 +605,10 @@ function attachViewportInput(options) {
|
|
|
598
605
|
return;
|
|
599
606
|
}
|
|
600
607
|
e.preventDefault();
|
|
601
|
-
|
|
602
|
-
|
|
608
|
+
const panDx = softenWheelDelta(wheelDeltaPixels(e.deltaX, e.deltaMode));
|
|
609
|
+
const panDy = softenWheelDelta(wheelDeltaPixels(e.deltaY, e.deltaMode));
|
|
610
|
+
camera.x -= panDx * wheelPanSensitivity / camera.zoom;
|
|
611
|
+
camera.y -= panDy * wheelPanSensitivity / camera.zoom;
|
|
603
612
|
onUpdate();
|
|
604
613
|
};
|
|
605
614
|
const onPointerDown = (e) => {
|