@canvas-harness/react 0.1.2 → 0.1.3
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 +19 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +19 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -813,12 +813,27 @@ var usePanZoom = (ref, store, tool) => {
|
|
|
813
813
|
scheduled = false;
|
|
814
814
|
rafId = 0;
|
|
815
815
|
if (pendingZoomFactor !== 1 && pendingZoomAnchor) {
|
|
816
|
+
const MAX_PER_FRAME = 2;
|
|
817
|
+
const MIN_PER_FRAME = 0.5;
|
|
818
|
+
let appliedFactor = pendingZoomFactor;
|
|
819
|
+
let drained = true;
|
|
820
|
+
if (appliedFactor > MAX_PER_FRAME) {
|
|
821
|
+
appliedFactor = MAX_PER_FRAME;
|
|
822
|
+
pendingZoomFactor = pendingZoomFactor / MAX_PER_FRAME;
|
|
823
|
+
drained = false;
|
|
824
|
+
} else if (appliedFactor < MIN_PER_FRAME) {
|
|
825
|
+
appliedFactor = MIN_PER_FRAME;
|
|
826
|
+
pendingZoomFactor = pendingZoomFactor / MIN_PER_FRAME;
|
|
827
|
+
drained = false;
|
|
828
|
+
} else {
|
|
829
|
+
pendingZoomFactor = 1;
|
|
830
|
+
}
|
|
816
831
|
const camera = store.getCamera();
|
|
817
832
|
store.setCamera(
|
|
818
|
-
zoomAtScreenPoint(camera, clampZoom(camera.z *
|
|
833
|
+
zoomAtScreenPoint(camera, clampZoom(camera.z * appliedFactor), pendingZoomAnchor)
|
|
819
834
|
);
|
|
820
|
-
|
|
821
|
-
|
|
835
|
+
if (drained) pendingZoomAnchor = null;
|
|
836
|
+
else schedule();
|
|
822
837
|
}
|
|
823
838
|
if (pendingDx !== 0 || pendingDy !== 0) {
|
|
824
839
|
const camera = store.getCamera();
|
|
@@ -855,7 +870,7 @@ var usePanZoom = (ref, store, tool) => {
|
|
|
855
870
|
if (isEditing()) return;
|
|
856
871
|
e.preventDefault();
|
|
857
872
|
if (e.ctrlKey || e.metaKey) {
|
|
858
|
-
const factor = Math.exp(-e.deltaY * 0.01);
|
|
873
|
+
const factor = Math.abs(e.deltaY) >= 100 ? e.deltaY > 0 ? 1 / 1.1 : 1.1 : Math.exp(-e.deltaY * 0.01);
|
|
859
874
|
pendingZoomFactor *= factor;
|
|
860
875
|
pendingZoomAnchor = screenFromClient(e.clientX, e.clientY);
|
|
861
876
|
pulseMotion("zooming");
|