testcafe
Version:
Automated browser testing for the modern web development stack.
41 lines • 5.75 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class BoundaryValues {
constructor(top = 0, right = 0, bottom = 0, left = 0) {
this.top = top;
this.right = right;
this.bottom = bottom;
this.left = left;
}
static create(v) {
return new BoundaryValues(v.top, v.right, v.bottom, v.left);
}
add(d) {
this.top += d.top;
this.right += d.right;
this.bottom += d.bottom;
this.left += d.left;
return this;
}
sub(d) {
if ('top' in d) {
this.top -= d.top;
this.left -= d.left;
}
this.bottom -= d.bottom;
this.right -= d.right;
return this;
}
round(leftTopRound = Math.round, rightBottomRound = leftTopRound) {
this.top = leftTopRound(this.top);
this.right = rightBottomRound(this.right);
this.bottom = rightBottomRound(this.bottom);
this.left = leftTopRound(this.left);
return this;
}
contains(point) {
return point.x >= this.left && point.x <= this.right && point.y >= this.top && point.y <= this.bottom;
}
}
exports.default = BoundaryValues;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRhcnktdmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9jb3JlL3V0aWxzL3ZhbHVlcy9ib3VuZGFyeS12YWx1ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxNQUFxQixjQUFjO0lBTS9CLFlBQW9CLEdBQUcsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3hELElBQUksQ0FBQyxHQUFHLEdBQU0sR0FBRyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUksS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUssSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFFLENBQXFCO1FBQ3ZDLE9BQU8sSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTSxHQUFHLENBQUUsQ0FBcUI7UUFDN0IsSUFBSSxDQUFDLEdBQUcsSUFBTyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLElBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksSUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXRCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxHQUFHLENBQUUsQ0FBaUQ7UUFDekQsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsSUFBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztTQUN2QjtRQUVELElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxJQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFdkIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLEtBQUssQ0FBRSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsR0FBRyxZQUFZO1FBQ3BFLElBQUksQ0FBQyxHQUFHLEdBQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFLLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFFBQVEsQ0FBRSxLQUF5QjtRQUN0QyxPQUFPLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUMxRyxDQUFDO0NBQ0o7QUFsREQsaUNBa0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEF4aXNWYWx1ZXMsIHsgUmlnaHRCb3R0b21WYWx1ZXMgfSBmcm9tICcuL2F4aXMtdmFsdWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBCb3VuZGFyeVZhbHVlc0RhdGEge1xuICAgIHRvcDogbnVtYmVyO1xuICAgIHJpZ2h0OiBudW1iZXI7XG4gICAgYm90dG9tOiBudW1iZXI7XG4gICAgbGVmdDogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCb3VuZGFyeVZhbHVlcyBpbXBsZW1lbnRzIEJvdW5kYXJ5VmFsdWVzRGF0YSB7XG4gICAgcHVibGljIHRvcDogbnVtYmVyO1xuICAgIHB1YmxpYyByaWdodDogbnVtYmVyO1xuICAgIHB1YmxpYyBib3R0b206IG51bWJlcjtcbiAgICBwdWJsaWMgbGVmdDogbnVtYmVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yICh0b3AgPSAwLCByaWdodCA9IDAsIGJvdHRvbSA9IDAsIGxlZnQgPSAwKSB7XG4gICAgICAgIHRoaXMudG9wICAgID0gdG9wO1xuICAgICAgICB0aGlzLnJpZ2h0ICA9IHJpZ2h0O1xuICAgICAgICB0aGlzLmJvdHRvbSA9IGJvdHRvbTtcbiAgICAgICAgdGhpcy5sZWZ0ICAgPSBsZWZ0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlICh2OiBCb3VuZGFyeVZhbHVlc0RhdGEpOiBCb3VuZGFyeVZhbHVlcyB7XG4gICAgICAgIHJldHVybiBuZXcgQm91bmRhcnlWYWx1ZXModi50b3AsIHYucmlnaHQsIHYuYm90dG9tLCB2LmxlZnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGQgKGQ6IEJvdW5kYXJ5VmFsdWVzRGF0YSk6IHRoaXMge1xuICAgICAgICB0aGlzLnRvcCAgICArPSBkLnRvcDtcbiAgICAgICAgdGhpcy5yaWdodCAgKz0gZC5yaWdodDtcbiAgICAgICAgdGhpcy5ib3R0b20gKz0gZC5ib3R0b207XG4gICAgICAgIHRoaXMubGVmdCAgICs9IGQubGVmdDtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3ViIChkOiBCb3VuZGFyeVZhbHVlc0RhdGEgfCBSaWdodEJvdHRvbVZhbHVlczxudW1iZXI+KTogdGhpcyB7XG4gICAgICAgIGlmICgndG9wJyBpbiBkKSB7XG4gICAgICAgICAgICB0aGlzLnRvcCAgLT0gZC50b3A7XG4gICAgICAgICAgICB0aGlzLmxlZnQgLT0gZC5sZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ib3R0b20gLT0gZC5ib3R0b207XG4gICAgICAgIHRoaXMucmlnaHQgIC09IGQucmlnaHQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHJvdW5kIChsZWZ0VG9wUm91bmQgPSBNYXRoLnJvdW5kLCByaWdodEJvdHRvbVJvdW5kID0gbGVmdFRvcFJvdW5kKTogdGhpcyB7XG4gICAgICAgIHRoaXMudG9wICAgID0gbGVmdFRvcFJvdW5kKHRoaXMudG9wKTtcbiAgICAgICAgdGhpcy5yaWdodCAgPSByaWdodEJvdHRvbVJvdW5kKHRoaXMucmlnaHQpO1xuICAgICAgICB0aGlzLmJvdHRvbSA9IHJpZ2h0Qm90dG9tUm91bmQodGhpcy5ib3R0b20pO1xuICAgICAgICB0aGlzLmxlZnQgICA9IGxlZnRUb3BSb3VuZCh0aGlzLmxlZnQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250YWlucyAocG9pbnQ6IEF4aXNWYWx1ZXM8bnVtYmVyPik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcG9pbnQueCA+PSB0aGlzLmxlZnQgJiYgcG9pbnQueCA8PSB0aGlzLnJpZ2h0ICYmIHBvaW50LnkgPj0gdGhpcy50b3AgJiYgcG9pbnQueSA8PSB0aGlzLmJvdHRvbTtcbiAgICB9XG59XG4iXX0=