/**
*
* Move the mouse by an offset of the specificed element. If an element is provided but no
* offset, the mouse will be moved to the center of the element. If the element is not
* visible, it will be scrolled into view.
*
* @param {String} selector element to move to
* @param {Number} xoffset X offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element.
* @param {Number} yoffset Y offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element.
*
* @uses protocol/element, protocol/elementIdLocation
* @type action
*
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
var moveToObject = function moveToObject(selector) {
// istanbul ignore next
var _this = this;
var xoffset = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];
var yoffset = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2];
/**
* check for offset params
*/
var hasOffsetParams = true;
if (typeof xoffset !== 'number' && typeof yoffset !== 'number') {
hasOffsetParams = false;
}
if (this.isMobile) {
return this.element(selector).then(function (res) {
return _this.elementIdSize(res.value.ELEMENT).then(function (size) {
return _this.elementIdLocation(res.element.value.ELEMENT).then(function (location) {
return { size: size, location: location };
});
});
}).then(function (res) {
var x = res.location.value.x - res.size.value.width / 2;
var y = res.location.value.y - res.size.value.height / 2;
if (hasOffsetParams) {
x = res.location.value.x + xoffset;
y = res.location.value.y + yoffset;
}
return _this.touchMove(x, y);
});
}
return this.element(selector).then(function (res) {
return _this.moveTo(res.value.ELEMENT, xoffset, yoffset);
});
};
exports['default'] = moveToObject;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvbW92ZVRvT2JqZWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsSUFBSSxZQUFZLEdBQUcsU0FBZixZQUFZLENBQWEsUUFBUSxFQUE0Qjs7Ozs7UUFBMUIsT0FBTyx5REFBRyxDQUFDO1FBQUUsT0FBTyx5REFBRyxDQUFDOzs7OztBQUkzRCxRQUFJLGVBQWUsR0FBRyxJQUFJLENBQUE7QUFDMUIsUUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzVELHVCQUFlLEdBQUcsS0FBSyxDQUFBO0tBQzFCOztBQUVELFFBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtBQUNmLGVBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQyxHQUFHO21CQUNuQyxNQUFLLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLElBQUk7dUJBQzVDLE1BQUssaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsUUFBUSxFQUFLO0FBQ2pFLDJCQUFPLEVBQUUsSUFBSSxFQUFKLElBQUksRUFBRSxRQUFRLEVBQVIsUUFBUSxFQUFFLENBQUE7aUJBQzVCLENBQUM7YUFBQSxDQUNMO1NBQUEsQ0FDSixDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUcsRUFBSztBQUNaLGdCQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQUFBQyxDQUFBO0FBQ3pELGdCQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQUFBQyxDQUFBOztBQUUxRCxnQkFBSSxlQUFlLEVBQUU7QUFDakIsaUJBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFBO0FBQ2xDLGlCQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQTthQUNyQzs7QUFFRCxtQkFBTyxNQUFLLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7U0FDOUIsQ0FBQyxDQUFBO0tBQ0w7O0FBRUQsV0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUcsRUFBSztBQUN4QyxlQUFPLE1BQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtLQUMxRCxDQUFDLENBQUE7Q0FDTCxDQUFBOztxQkFFYyxZQUFZIiwiZmlsZSI6Ii9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvbW92ZVRvT2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogTW92ZSB0aGUgbW91c2UgYnkgYW4gb2Zmc2V0IG9mIHRoZSBzcGVjaWZpY2VkIGVsZW1lbnQuIElmIGFuIGVsZW1lbnQgaXMgcHJvdmlkZWQgYnV0IG5vXG4gKiBvZmZzZXQsIHRoZSBtb3VzZSB3aWxsIGJlIG1vdmVkIHRvIHRoZSBjZW50ZXIgb2YgdGhlIGVsZW1lbnQuIElmIHRoZSBlbGVtZW50IGlzIG5vdFxuICogdmlzaWJsZSwgaXQgd2lsbCBiZSBzY3JvbGxlZCBpbnRvIHZpZXcuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNlbGVjdG9yIGVsZW1lbnQgdG8gbW92ZSB0b1xuICogQHBhcmFtIHtOdW1iZXJ9IHhvZmZzZXQgIFggb2Zmc2V0IHRvIG1vdmUgdG8sIHJlbGF0aXZlIHRvIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIGVsZW1lbnQuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBtb3VzZSB3aWxsIG1vdmUgdG8gdGhlIG1pZGRsZSBvZiB0aGUgZWxlbWVudC5cbiAqIEBwYXJhbSB7TnVtYmVyfSB5b2Zmc2V0ICBZIG9mZnNldCB0byBtb3ZlIHRvLCByZWxhdGl2ZSB0byB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSBlbGVtZW50LiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgbW91c2Ugd2lsbCBtb3ZlIHRvIHRoZSBtaWRkbGUgb2YgdGhlIGVsZW1lbnQuXG4gKlxuICogQHVzZXMgcHJvdG9jb2wvZWxlbWVudCwgcHJvdG9jb2wvZWxlbWVudElkTG9jYXRpb25cbiAqIEB0eXBlIGFjdGlvblxuICpcbiAqL1xuXG5sZXQgbW92ZVRvT2JqZWN0ID0gZnVuY3Rpb24gKHNlbGVjdG9yLCB4b2Zmc2V0ID0gMCwgeW9mZnNldCA9IDApIHtcbiAgICAvKipcbiAgICAgKiBjaGVjayBmb3Igb2Zmc2V0IHBhcmFtc1xuICAgICAqL1xuICAgIHZhciBoYXNPZmZzZXRQYXJhbXMgPSB0cnVlXG4gICAgaWYgKHR5cGVvZiB4b2Zmc2V0ICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgeW9mZnNldCAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgaGFzT2Zmc2V0UGFyYW1zID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50KHNlbGVjdG9yKS50aGVuKChyZXMpID0+XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRJZFNpemUocmVzLnZhbHVlLkVMRU1FTlQpLnRoZW4oKHNpemUpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50SWRMb2NhdGlvbihyZXMuZWxlbWVudC52YWx1ZS5FTEVNRU5UKS50aGVuKChsb2NhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBzaXplLCBsb2NhdGlvbiB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgICAgIGxldCB4ID0gcmVzLmxvY2F0aW9uLnZhbHVlLnggLSAocmVzLnNpemUudmFsdWUud2lkdGggLyAyKVxuICAgICAgICAgICAgbGV0IHkgPSByZXMubG9jYXRpb24udmFsdWUueSAtIChyZXMuc2l6ZS52YWx1ZS5oZWlnaHQgLyAyKVxuXG4gICAgICAgICAgICBpZiAoaGFzT2Zmc2V0UGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgeCA9IHJlcy5sb2NhdGlvbi52YWx1ZS54ICsgeG9mZnNldFxuICAgICAgICAgICAgICAgIHkgPSByZXMubG9jYXRpb24udmFsdWUueSArIHlvZmZzZXRcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG91Y2hNb3ZlKHgsIHkpXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudChzZWxlY3RvcikudGhlbigocmVzKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vdmVUbyhyZXMudmFsdWUuRUxFTUVOVCwgeG9mZnNldCwgeW9mZnNldClcbiAgICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBtb3ZlVG9PYmplY3RcbiJdfQ== |