File size: 1,059 Bytes
22c7264 a47eab3 22c7264 33909e6 22c7264 8755ee2 3ce1b66 8755ee2 bcf9be5 22c7264 f5ebead 8755ee2 3ce1b66 8755ee2 f5ebead b1c5f8c f5ebead 22c7264 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
/**
* Responsible for validating positions and is used
* when manipulating positions across the application
*/
export default class Position {
/**
* @param {number} left
* @param {number} top
* @param {number} right
* @param {number} bottom
*/
constructor({
left = 0,
top = 0,
right = 0,
bottom = 0,
} = {}) {
this.left = left;
this.right = right;
this.top = top;
this.bottom = bottom;
}
/**
* Checks if the position is valid to be highlighted
* @returns {boolean}
* @public
*/
canHighlight() {
return this.left < this.right && this.top < this.bottom;
}
/**
* Checks if the given position is equal to the passed position
* @param position Position
* @returns {boolean}
* @public
*/
equals(position) {
return Math.round(this.left) === Math.round(position.left) &&
Math.round(this.right) === Math.round(position.right) &&
Math.round(this.top) === Math.round(position.top) &&
Math.round(this.bottom) === Math.round(position.bottom);
}
}
|