Проблема с объектом при ограничении его границей холста

В настоящее время я работаю с моим проектом, и я использовал ткань JS для работы с холстом. В этом я хочу, чтобы мой объект холста не выходил за границы холста. Я сделалэтот код и он работает нормально, если и пока я не вращаю его. но когда я вращаю объект, верхний левый от этого объекта становится в соответствии с вращением, и мой код не работает хорошо. Я хочу какое-то решение, которое будет работать в любых условиях, но мой объект не должен выходить за границы холста. Спасибо

var canvas=new fabric.Canvas('demo');
canvas.on('object:moving',function(e){
    if(e.target.getWidth()+e.target.left>canvas.width)
    {
        e.target.set('left',canvas.width-e.target.getWidth());
        e.target.setCoords();
        canvas.renderAll();
    }
    if(e.target.getHeight()+e.target.top>canvas.height)
    {
        e.target.set('top',canvas.height-e.target.getHeight());
        e.target.setCoords();
        canvas.renderAll();
    }
    if(e.target.top<0)
    {
        e.target.set('top',0);
        e.target.setCoords();
        canvas.renderAll();
    }
    if(e.target.left<0)
    {
        e.target.set('left',0);
        e.target.setCoords();
        canvas.renderAll();
    }
});
var text=new fabric.IText('Jayesh');
canvas.add(text);
<script src="http://fabricjs.com/lib/fabric.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<canvas id="demo" style="width:100px;height:100px;border: 1px solid black"></canvas>

Ответы на вопрос(1)

Ваш ответ на вопрос