UNPKG

@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
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