testcafe
Version:
Automated browser testing for the modern web development stack.
43 lines • 5.38 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class AxisValues {
constructor(x, y) {
this.x = x;
this.y = y;
}
static create(a) {
if ('left' in a)
return new AxisValues(a.left, a.top);
else if ('right' in a)
return new AxisValues(a.right, a.bottom);
return new AxisValues(a.x, a.y);
}
add(p) {
this.x += p.x;
this.y += p.y;
return this;
}
sub(p) {
this.x -= p.x;
this.y -= p.y;
return this;
}
round(fn = Math.round) {
this.x = fn(this.x);
this.y = fn(this.y);
return this;
}
eql(p) {
return this.x === p.x && this.y === p.y;
}
mul(n) {
this.x *= n;
this.y *= n;
return this;
}
distance(p) {
return Math.sqrt(Math.pow(this.x - p.x, 2) + Math.pow(this.y - p.y, 2));
}
}
exports.default = AxisValues;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhpcy12YWx1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2NvcmUvdXRpbHMvdmFsdWVzL2F4aXMtdmFsdWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZUEsTUFBcUIsVUFBVTtJQUkzQixZQUFvQixDQUFJLEVBQUUsQ0FBSTtRQUMxQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUssQ0FBOEQ7UUFDbkYsSUFBSSxNQUFNLElBQUksQ0FBQztZQUNYLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDcEMsSUFBSSxPQUFPLElBQUksQ0FBQztZQUNqQixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLEdBQUcsQ0FBNEIsQ0FBeUI7UUFDM0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLEdBQUcsQ0FBNEIsQ0FBeUI7UUFDM0QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLEtBQUssQ0FBNEIsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLO1FBQ25ELElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLEdBQUcsQ0FBRSxDQUFvQjtRQUM1QixPQUFPLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLEdBQUcsQ0FBNEIsQ0FBUztRQUMzQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRVosT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFFBQVEsQ0FBNEIsQ0FBeUI7UUFDaEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNKO0FBckRELDZCQXFEQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQXhpc1ZhbHVlc0RhdGE8VD4ge1xuICAgIHg6IFQ7XG4gICAgeTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZWZ0VG9wVmFsdWVzPFQ+IHtcbiAgICBsZWZ0OiBUO1xuICAgIHRvcDogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSaWdodEJvdHRvbVZhbHVlczxUPiB7XG4gICAgcmlnaHQ6IFQ7XG4gICAgYm90dG9tOiBUO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBeGlzVmFsdWVzPFQ+IGltcGxlbWVudHMgQXhpc1ZhbHVlc0RhdGE8VD4ge1xuICAgIHB1YmxpYyB4OiBUO1xuICAgIHB1YmxpYyB5OiBUO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yICh4OiBULCB5OiBUKSB7XG4gICAgICAgIHRoaXMueCA9IHg7XG4gICAgICAgIHRoaXMueSA9IHk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8VD4gKGE6IEF4aXNWYWx1ZXNEYXRhPFQ+IHwgTGVmdFRvcFZhbHVlczxUPiB8IFJpZ2h0Qm90dG9tVmFsdWVzPFQ+KTogQXhpc1ZhbHVlczxUPiB7XG4gICAgICAgIGlmICgnbGVmdCcgaW4gYSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgQXhpc1ZhbHVlcyhhLmxlZnQsIGEudG9wKTtcbiAgICAgICAgZWxzZSBpZiAoJ3JpZ2h0JyBpbiBhKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBeGlzVmFsdWVzKGEucmlnaHQsIGEuYm90dG9tKTtcblxuICAgICAgICByZXR1cm4gbmV3IEF4aXNWYWx1ZXMoYS54LCBhLnkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGQgKHRoaXM6IEF4aXNWYWx1ZXM8bnVtYmVyPiwgcDogQXhpc1ZhbHVlc0RhdGE8bnVtYmVyPik6IEF4aXNWYWx1ZXM8bnVtYmVyPiB7XG4gICAgICAgIHRoaXMueCArPSBwLng7XG4gICAgICAgIHRoaXMueSArPSBwLnk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHN1YiAodGhpczogQXhpc1ZhbHVlczxudW1iZXI+LCBwOiBBeGlzVmFsdWVzRGF0YTxudW1iZXI+KTogQXhpc1ZhbHVlczxudW1iZXI+IHtcbiAgICAgICAgdGhpcy54IC09IHAueDtcbiAgICAgICAgdGhpcy55IC09IHAueTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgcm91bmQgKHRoaXM6IEF4aXNWYWx1ZXM8bnVtYmVyPiwgZm4gPSBNYXRoLnJvdW5kKTogQXhpc1ZhbHVlczxudW1iZXI+IHtcbiAgICAgICAgdGhpcy54ID0gZm4odGhpcy54KTtcbiAgICAgICAgdGhpcy55ID0gZm4odGhpcy55KTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZXFsIChwOiBBeGlzVmFsdWVzRGF0YTxUPik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy54ID09PSBwLnggJiYgdGhpcy55ID09PSBwLnk7XG4gICAgfVxuXG4gICAgcHVibGljIG11bCAodGhpczogQXhpc1ZhbHVlczxudW1iZXI+LCBuOiBudW1iZXIpOiBBeGlzVmFsdWVzPG51bWJlcj4ge1xuICAgICAgICB0aGlzLnggKj0gbjtcbiAgICAgICAgdGhpcy55ICo9IG47XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc3RhbmNlICh0aGlzOiBBeGlzVmFsdWVzPG51bWJlcj4sIHA6IEF4aXNWYWx1ZXNEYXRhPG51bWJlcj4pOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHRoaXMueCAtIHAueCwgMikgKyBNYXRoLnBvdyh0aGlzLnkgLSBwLnksIDIpKTtcbiAgICB9XG59XG4iXX0=