@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
168 lines • 8.14 kB
JavaScript
import { EqualsOfFloatNumbers } from "@aurigma/design-atoms-model";
export var GripsResizeType;
(function (GripsResizeType) {
GripsResizeType["increaseRight"] = "increaseRight";
GripsResizeType["decreaseRight"] = "decreaseRight";
GripsResizeType["increaseLeft"] = "increaseLeft";
GripsResizeType["decreaseLeft"] = "decreaseLeft";
GripsResizeType["increaseTop"] = "increaseTop";
GripsResizeType["decreaseTop"] = "decreaseTop";
GripsResizeType["increaseBottom"] = "increaseBottom";
GripsResizeType["decreaseBottom"] = "decreaseBottom";
GripsResizeType["cornerTopLeftIncrease"] = "cornerTopLeftIncrease";
GripsResizeType["cornerTopLeftDecrease"] = "cornerTopLeftDecrease";
GripsResizeType["cornerTopRightIncrease"] = "cornerTopRightIncrease";
GripsResizeType["cornerTopRightDecrease"] = "cornerTopRightDecrease";
GripsResizeType["cornerBottomLeftIncrease"] = "cornerBottomLeftIncrease";
GripsResizeType["cornerBottomLeftDecrease"] = "cornerBottomLeftDecrease";
GripsResizeType["cornerBottomRightIncrease"] = "cornerBottomRightIncrease";
GripsResizeType["cornerBottomRightDecrease"] = "cornerBottomRightDecrease";
GripsResizeType["none"] = "none";
})(GripsResizeType || (GripsResizeType = {}));
export class ResizeHelper {
static isLeftResizeGrip(index) {
return index === 1 || index === 4 || index === 5;
}
static isTopResizeGrip(index) {
return index === 1 || index === 2 || index === 6;
}
static isRightResizeGrip(index) {
return index === 2 || index === 3 || index === 7;
}
static isBottomResizeGrip(index) {
return index === 3 || index === 4 || index === 8;
}
static isCornerResizeGrip(index) {
return index === 1 || index === 2 || index === 3 || index === 4;
}
static isEdgeResizeGrip(index) {
return index === 5 || index === 6 || index === 7 || index === 8;
}
static isTopLeftResizeGrip(index) {
return index === 1;
}
static isTopRightResizeGrip(index) {
return index === 2;
}
static isBottomRightResizeGrip(index) {
return index === 3;
}
static isBottomLeftResizeGrip(index) {
return index === 4;
}
static geTypeOfResizeByGrips(currentRect, prevRect, resizeIndex) {
if (resizeIndex == null || prevRect == null)
return GripsResizeType.none;
const { width: previousWidth, height: previousHeight } = prevRect;
const { width: currentWidth, height: currentHeight } = currentRect;
const { top: previousTop, right: previousRight, bottom: previousBottom, left: previousLeft } = prevRect.bounds;
const { top: currentTop, right: currentRight, left: currentLeft, bottom: currentBottom } = currentRect.bounds;
if (ResizeHelper.isTopResizeGrip(resizeIndex)) {
if (currentTop > previousTop && EqualsOfFloatNumbers(previousWidth, currentWidth)) {
return GripsResizeType.decreaseTop;
}
if (currentTop < previousTop && EqualsOfFloatNumbers(previousWidth, currentWidth)) {
return GripsResizeType.increaseTop;
}
}
if (ResizeHelper.isBottomResizeGrip(resizeIndex)) {
if (currentBottom > previousBottom && EqualsOfFloatNumbers(previousWidth, currentWidth)) {
return GripsResizeType.increaseBottom;
}
if (currentBottom < previousBottom && EqualsOfFloatNumbers(previousWidth, currentWidth)) {
return GripsResizeType.decreaseBottom;
}
}
if (ResizeHelper.isRightResizeGrip(resizeIndex)) {
if (currentRight > previousRight && EqualsOfFloatNumbers(previousHeight, currentHeight)) {
return GripsResizeType.increaseRight;
}
if (currentRight < previousRight && EqualsOfFloatNumbers(previousHeight, currentHeight)) {
return GripsResizeType.decreaseRight;
}
}
if (ResizeHelper.isLeftResizeGrip(resizeIndex)) {
if (currentLeft > previousLeft && EqualsOfFloatNumbers(previousHeight, currentHeight)) {
return GripsResizeType.decreaseLeft;
}
if (currentLeft < previousLeft && EqualsOfFloatNumbers(previousHeight, currentHeight)) {
return GripsResizeType.increaseLeft;
}
}
if (ResizeHelper.isTopLeftResizeGrip(resizeIndex)) {
if (currentLeft < previousLeft && currentTop < previousTop) {
return GripsResizeType.cornerTopLeftIncrease;
}
else if (currentLeft > previousLeft && currentTop > previousTop) {
return GripsResizeType.cornerTopLeftDecrease;
}
}
if (ResizeHelper.isTopRightResizeGrip(resizeIndex)) {
if (currentRight > previousRight && currentTop < previousTop) {
return GripsResizeType.cornerTopRightIncrease;
}
else if (currentRight < previousRight && currentTop > previousTop) {
return GripsResizeType.cornerTopRightDecrease;
}
}
if (ResizeHelper.isBottomRightResizeGrip(resizeIndex)) {
if (currentBottom > previousBottom && currentRight > previousRight) {
return GripsResizeType.cornerBottomRightIncrease;
}
else if (currentBottom < previousBottom && currentRight < previousRight) {
return GripsResizeType.cornerBottomRightDecrease;
}
}
if (ResizeHelper.isBottomLeftResizeGrip(resizeIndex)) {
if (currentBottom > previousBottom && currentLeft < previousLeft) {
return GripsResizeType.cornerBottomLeftIncrease;
}
else if (currentBottom < previousBottom && currentLeft > previousLeft) {
return GripsResizeType.cornerBottomLeftDecrease;
}
}
return GripsResizeType.none;
}
static getTypeResize(currentRect, prevRect) {
const { width: previousWidth, height: previousHeight } = prevRect;
const { width: currentWidth, height: currentHeight } = currentRect;
if (EqualsOfFloatNumbers(previousWidth, currentWidth) && previousHeight > currentHeight) {
return ResizeType.decHeight;
}
if (EqualsOfFloatNumbers(previousWidth, currentWidth) && previousHeight < currentHeight) {
return ResizeType.incHeight;
}
if (EqualsOfFloatNumbers(previousHeight, currentHeight) && previousWidth > currentWidth) {
return ResizeType.decWidth;
}
if (EqualsOfFloatNumbers(previousHeight, currentHeight) && previousWidth < currentWidth) {
return ResizeType.incWidth;
}
if (previousHeight < currentHeight && previousWidth < currentWidth) {
return ResizeType.decHeightAndWidth;
}
if (previousHeight > currentHeight && previousWidth > currentWidth) {
return ResizeType.incHeightAndWidth;
}
if (previousHeight > currentHeight && previousWidth < currentWidth) {
return ResizeType.incWidthAndDecHeight;
}
if (previousHeight < currentHeight && previousWidth > currentWidth) {
return ResizeType.incHeightAndDecWidth;
}
return ResizeType.none;
}
}
export var ResizeType;
(function (ResizeType) {
ResizeType["incHeight"] = "incHeight";
ResizeType["decHeight"] = "decHeight";
ResizeType["incWidth"] = "incWidth";
ResizeType["decWidth"] = "decWidth";
ResizeType["incHeightAndWidth"] = "incHeightAndWidth";
ResizeType["decHeightAndWidth"] = "decHeightAndWidth";
ResizeType["incWidthAndDecHeight"] = "incWidthAndDecHeight";
ResizeType["incHeightAndDecWidth"] = "incHeightAndDecWidth";
ResizeType["none"] = "none";
})(ResizeType || (ResizeType = {}));
//# sourceMappingURL=Grips.js.map