in packages/core/src/models/TransformHelper.ts [321:390]
calcBaseResize(node: TreeNode) {
const deltaX = this.deltaX
const deltaY = this.deltaY
const dragStartTranslate = this.dragStartTranslateStore[node.id] ?? {
x: 0,
y: 0,
}
const dragStartSize = this.dragStartSizeStore[node.id] ?? {
width: 0,
height: 0,
}
switch (this.direction) {
case 'left-top':
return new Rect(
dragStartTranslate.x + deltaX,
dragStartTranslate.y + deltaY,
dragStartSize.width - deltaX,
dragStartSize.height - deltaY
)
case 'left-center':
return new Rect(
dragStartTranslate.x + deltaX,
dragStartTranslate.y,
dragStartSize.width - deltaX,
dragStartSize.height
)
case 'left-bottom':
return new Rect(
dragStartTranslate.x + deltaX,
dragStartTranslate.y,
dragStartSize.width - deltaX,
dragStartSize.height + deltaY
)
case 'center-bottom':
return new Rect(
dragStartTranslate.x,
dragStartTranslate.y,
dragStartSize.width,
dragStartSize.height + deltaY
)
case 'center-top':
return new Rect(
dragStartTranslate.x,
dragStartTranslate.y + deltaY,
dragStartSize.width,
dragStartSize.height - deltaY
)
case 'right-top':
return new Rect(
dragStartTranslate.x,
dragStartTranslate.y + deltaY,
dragStartSize.width + deltaX,
dragStartSize.height - deltaY
)
case 'right-bottom':
return new Rect(
dragStartTranslate.x,
dragStartTranslate.y,
dragStartSize.width + deltaX,
dragStartSize.height + deltaY
)
case 'right-center':
return new Rect(
dragStartTranslate.x,
dragStartTranslate.y,
dragStartSize.width + deltaX,
dragStartSize.height
)
}
}