diff --git a/package/src/store/state.ts b/package/src/store/state.ts index 0414d628..edbd8b77 100644 --- a/package/src/store/state.ts +++ b/package/src/store/state.ts @@ -54,15 +54,16 @@ const defaultState = (): State => ({ d3ZoomHandler: null, minZoom: 0.5, maxZoom: 2, + translateExtent: [ [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY], [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY], ], - nodeExtent: [ [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY], [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY], ], + preventScrolling: true, zoomOnScroll: true, zoomOnPinch: true, diff --git a/package/src/types/node.ts b/package/src/types/node.ts index 2a8b664e..385eee2e 100644 --- a/package/src/types/node.ts +++ b/package/src/types/node.ts @@ -2,6 +2,7 @@ import { XYPosition, Position, SnapGrid, Element, XYZPosition, Dimensions } from import { DefaultNodeTypes } from './components' import { HandleElement, ValidConnectionFunc } from './handle' +/** Defined as [[x-from, y-from], [x-to, y-to]] **/ export type CoordinateExtent = [[number, number], [number, number]] export type NodeHandleBounds = { diff --git a/package/src/utils/changes.ts b/package/src/utils/changes.ts index 282d3784..dd39eb1f 100644 --- a/package/src/utils/changes.ts +++ b/package/src/utils/changes.ts @@ -150,7 +150,7 @@ export const createPositionChange = ( if (diff) { const nextPosition = { x: node.position.x + diff.x, y: node.position.y + diff.y } - let currentExtent = node.extent === 'parent' ? nodeExtent : node.extent + let currentExtent = node.extent === 'parent' || typeof node.extent === 'undefined' ? nodeExtent : node.extent if (node.extent === 'parent' && parent && node.dimensions.width && node.dimensions.height) { currentExtent =