ngx-diagrams
Version:
> Light Weight, Modular, Typed Diagram Engine for Angular
28 lines • 5.26 kB
JavaScript
import { BaseAction } from './base.action';
export class SelectingAction extends BaseAction {
constructor(mouseX, mouseY) {
super(mouseX, mouseY);
this.mouseX2 = mouseX;
this.mouseY2 = mouseY;
}
getBoxDimensions() {
this.dimensions = {
left: this.mouseX2 > this.mouseX ? this.mouseX : this.mouseX2,
top: this.mouseY2 > this.mouseY ? this.mouseY : this.mouseY2,
width: Math.abs(this.mouseX2 - this.mouseX),
height: Math.abs(this.mouseY2 - this.mouseY),
right: this.mouseX2 < this.mouseX ? this.mouseX : this.mouseX2,
bottom: this.mouseY2 < this.mouseY ? this.mouseY : this.mouseY2,
};
return this.dimensions;
}
containsElement({ x, y }, diagramModel) {
const z = diagramModel.getZoomLevel() / 100.0;
const dimensions = this.getBoxDimensions();
return (x * z + diagramModel.getOffsetX() > dimensions.left &&
x * z + diagramModel.getOffsetX() < dimensions.right &&
y * z + diagramModel.getOffsetY() > dimensions.top &&
y * z + diagramModel.getOffsetY() < dimensions.bottom);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW5nLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9saWJzL25neC1kaWFncmFtcy9zcmMvIiwic291cmNlcyI6WyJsaWIvYWN0aW9ucy9zZWxlY3RpbmcuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQWE3QyxZQUFZLE1BQWMsRUFBRSxNQUFjO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDN0QsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDNUQsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzNDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM1QyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztZQUM5RCxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztTQUNoRSxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFVLEVBQUUsWUFBMEI7UUFDMUQsTUFBTSxDQUFDLEdBQUcsWUFBWSxDQUFDLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUM5QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUUzQyxPQUFPLENBQ0wsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsVUFBVSxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUk7WUFDbkQsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsVUFBVSxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUs7WUFDcEQsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsVUFBVSxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUc7WUFDbEQsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsVUFBVSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FDdEQsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBY3Rpb24gfSBmcm9tICcuL2Jhc2UuYWN0aW9uJztcbmltcG9ydCB7IERpYWdyYW1Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9kaWFncmFtLm1vZGVsJztcbmltcG9ydCB7IENvb3JkcyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29vcmRzLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RpbmdBY3Rpb24gZXh0ZW5kcyBCYXNlQWN0aW9uIHtcbiAgbW91c2VYMjogbnVtYmVyO1xuICBtb3VzZVkyOiBudW1iZXI7XG5cbiAgZGltZW5zaW9uczoge1xuICAgIHRvcDogbnVtYmVyO1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xuICAgIHJpZ2h0OiBudW1iZXI7XG4gICAgYm90dG9tOiBudW1iZXI7XG4gIH07XG5cbiAgY29uc3RydWN0b3IobW91c2VYOiBudW1iZXIsIG1vdXNlWTogbnVtYmVyKSB7XG4gICAgc3VwZXIobW91c2VYLCBtb3VzZVkpO1xuICAgIHRoaXMubW91c2VYMiA9IG1vdXNlWDtcbiAgICB0aGlzLm1vdXNlWTIgPSBtb3VzZVk7XG4gIH1cblxuICBnZXRCb3hEaW1lbnNpb25zKCkge1xuICAgIHRoaXMuZGltZW5zaW9ucyA9IHtcbiAgICAgIGxlZnQ6IHRoaXMubW91c2VYMiA+IHRoaXMubW91c2VYID8gdGhpcy5tb3VzZVggOiB0aGlzLm1vdXNlWDIsXG4gICAgICB0b3A6IHRoaXMubW91c2VZMiA+IHRoaXMubW91c2VZID8gdGhpcy5tb3VzZVkgOiB0aGlzLm1vdXNlWTIsXG4gICAgICB3aWR0aDogTWF0aC5hYnModGhpcy5tb3VzZVgyIC0gdGhpcy5tb3VzZVgpLFxuICAgICAgaGVpZ2h0OiBNYXRoLmFicyh0aGlzLm1vdXNlWTIgLSB0aGlzLm1vdXNlWSksXG4gICAgICByaWdodDogdGhpcy5tb3VzZVgyIDwgdGhpcy5tb3VzZVggPyB0aGlzLm1vdXNlWCA6IHRoaXMubW91c2VYMixcbiAgICAgIGJvdHRvbTogdGhpcy5tb3VzZVkyIDwgdGhpcy5tb3VzZVkgPyB0aGlzLm1vdXNlWSA6IHRoaXMubW91c2VZMixcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmRpbWVuc2lvbnM7XG4gIH1cblxuICBjb250YWluc0VsZW1lbnQoeyB4LCB5IH06IENvb3JkcywgZGlhZ3JhbU1vZGVsOiBEaWFncmFtTW9kZWwpOiBib29sZWFuIHtcbiAgICBjb25zdCB6ID0gZGlhZ3JhbU1vZGVsLmdldFpvb21MZXZlbCgpIC8gMTAwLjA7XG4gICAgY29uc3QgZGltZW5zaW9ucyA9IHRoaXMuZ2V0Qm94RGltZW5zaW9ucygpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHggKiB6ICsgZGlhZ3JhbU1vZGVsLmdldE9mZnNldFgoKSA+IGRpbWVuc2lvbnMubGVmdCAmJlxuICAgICAgeCAqIHogKyBkaWFncmFtTW9kZWwuZ2V0T2Zmc2V0WCgpIDwgZGltZW5zaW9ucy5yaWdodCAmJlxuICAgICAgeSAqIHogKyBkaWFncmFtTW9kZWwuZ2V0T2Zmc2V0WSgpID4gZGltZW5zaW9ucy50b3AgJiZcbiAgICAgIHkgKiB6ICsgZGlhZ3JhbU1vZGVsLmdldE9mZnNldFkoKSA8IGRpbWVuc2lvbnMuYm90dG9tXG4gICAgKTtcbiAgfVxufVxuIl19