Вы можете использовать transform
или transformend
события, чтобы применить масштаб к ширине и высоте и сбросить масштаб до 1.
const tr = new Konva.Transformer({
node: shape,
ignoreStroke: true
});
layer.add(tr);
shape.on('transform', () => {
// adjust size to scale
// and set minimal size
shape.width(Math.max(5, shape.width() * shape.scaleX()));
shape.height(Math.max(5, shape.height() * shape.scaleY()));
// reset scale to 1
shape.scaleX(1);
shape.scaleY(1);
});
https://jsbin.com/kavisitato/1/edit?html,js,output