@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
38 lines • 1.92 kB
JavaScript
import { Violation, ViolationState, ViolationInfoResult } from "./Violation";
import { ItemUtils } from "../../../Utils/ItemUtils";
import { rectangleEquals } from "../../../Utils/Math";
import { RectangleF } from "@aurigma/design-atoms-model/Math";
import { Configuration } from "@aurigma/design-atoms-model/Configuration";
export class RegionViolation extends Violation {
constructor(_productHandler, _messages) {
super();
this._productHandler = _productHandler;
this._messages = _messages;
this._isItemOutOfRegion = (item) => {
if (item.parentContainer == null || item.parentContainer.region == null)
return false;
const itemBounds = ItemUtils.getItemBoundsForViolationCheck(this._productHandler.getHandler(item));
const region = item.parentContainer.region.clone();
return !rectangleEquals(RectangleF.intersect(region, itemBounds), itemBounds);
};
}
isAvailableFor(item) {
return true;
}
getViolationInfo(item) {
var _a;
if (!ItemUtils.isTextItemHandlerReady(item, this._productHandler))
return ViolationInfoResult.none;
if (!item.violationSettings.allowRegion || ((_a = item.parentContainer) === null || _a === void 0 ? void 0 : _a.name) !== Configuration.MAIN_CONTAINER_NAME)
return ViolationInfoResult.good;
const violationState = this._isItemOutOfRegion(item) ?
ViolationState.Warning : ViolationState.Good;
const message = violationState === ViolationState.Warning ? this._messages.regionViolationWarning : null;
return { state: violationState, message: message };
}
getStatePropertyName() {
return RegionViolation.statePropertyName;
}
}
RegionViolation.statePropertyName = "regionViolationState";
//# sourceMappingURL=RegionViolation.js.map