@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
48 lines • 2.34 kB
JavaScript
import { Cursor } from "../../../Utils/Common";
import { PlaceholderItemHandler } from "../../../ItemHandlers/PlaceholderItemHandler";
const CSS_CURSORS = ["default", "nw-resize", "ne-resize", "sw-resize", "se-resize",
"n-resize", "s-resize", "w-resize", "e-resize", "move", "crosshair",
"pointer",
"ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "text", "grab", "grabbing"];
export class DefaultCursorHelper {
static getCursor(point, selectionHtManager, hitTestManager, rubberbandHandler, angle, allowMove) {
var _a;
if (rubberbandHandler.isActive)
return Cursor.defaultCursor;
const ht = selectionHtManager.hitTest(point);
if (ht.resize) {
const resizePointAngle = [315, 45, 135, 225, 270, 0, 90, 180];
const fullAngle = ((_a = resizePointAngle[ht.resizeIndex - 1] + angle) !== null && _a !== void 0 ? _a : 0) % 360;
if (fullAngle > 337.5 || fullAngle <= 22.5)
return Cursor.sizeNS;
else if (fullAngle > 22.5 && fullAngle <= 67.5)
return Cursor.sizeNESW;
else if (fullAngle > 67.5 && fullAngle <= 112.5)
return Cursor.sizeEW;
else if (fullAngle > 112.5 && fullAngle <= 157.5)
return Cursor.sizeNWSE;
else if (fullAngle > 157.5 && fullAngle <= 202.5)
return Cursor.sizeNS;
else if (fullAngle > 202.5 && fullAngle <= 247.5)
return Cursor.sizeNESW;
else if (fullAngle > 247.5 && fullAngle <= 292.5)
return Cursor.sizeEW;
else if (fullAngle > 292.5 && fullAngle <= 337.5)
return Cursor.sizeNWSE;
}
else if (ht.rotate)
return Cursor.pointer;
else if (ht.body && allowMove)
return Cursor.move;
let firstHandler = hitTestManager.getFirstHandlerByHitTest(point);
if (firstHandler instanceof PlaceholderItemHandler && firstHandler.editing)
return Cursor.defaultCursor;
else if (firstHandler != null)
return Cursor.pointer;
return Cursor.defaultCursor;
}
static toCss(cursor) {
return CSS_CURSORS[cursor];
}
}
//# sourceMappingURL=DefaultCursorHandler.js.map