/**
*
* Close current window (and focus on an other window). If no window handle is given
* it automatically switches back to the first handle.
*
* <example>
:close.js
client
.url('http://github.com')
.newWindow('http://google.com')
.getTitle().then(function(title) {
console.log(title); // outputs: "Google"
})
.close()
.getTitle().then(function(title) {
console.log(title); // outputs: "GitHub · Build software better, together."
});
* </example>
*
* @param {String=} windowHandle new window to focus on
*
* @uses protocol/window, window/switchTab
* @type window
*
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
var _utilsErrorHandler = require('../utils/ErrorHandler');
var close = function close(windowHandle) {
// istanbul ignore next
var _this = this;
if (typeof windowHandle !== 'string') {
return this.getTabIds().then(function (tabIds) {
if (tabIds.length === 0) {
throw new _utilsErrorHandler.RuntimeError('' + 'Can\'t switch to the next tab because all windows are closed. ' + 'Make sure you keep at least one window open!');
}
return _this.window().switchTab(tabIds[0]);
});
}
return this.window().switchTab(windowHandle);
};
exports['default'] = close;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvY2xvc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBMEI2Qix1QkFBdUI7O0FBRXBELElBQUksS0FBSyxHQUFHLFNBQVIsS0FBSyxDQUFhLFlBQVksRUFBRTs7Ozs7QUFDaEMsUUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUU7QUFDbEMsZUFBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTSxFQUFLO0FBQ3JDLGdCQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO0FBQ3JCLHNCQUFNLG9DQUFpQixxRUFDNEMsaURBQ2pCLENBQUMsQ0FBQTthQUN0RDs7QUFFRCxtQkFBTyxNQUFLLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUM1QyxDQUFDLENBQUE7S0FDTDs7QUFFRCxXQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUE7Q0FDL0MsQ0FBQTs7cUJBRWMsS0FBSyIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL2NvbW1hbmRzL2Nsb3NlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogQ2xvc2UgY3VycmVudCB3aW5kb3cgKGFuZCBmb2N1cyBvbiBhbiBvdGhlciB3aW5kb3cpLiBJZiBubyB3aW5kb3cgaGFuZGxlIGlzIGdpdmVuXG4gKiBpdCBhdXRvbWF0aWNhbGx5IHN3aXRjaGVzIGJhY2sgdG8gdGhlIGZpcnN0IGhhbmRsZS5cbiAqXG4gKiA8ZXhhbXBsZT5cbiAgICA6Y2xvc2UuanNcbiAgICBjbGllbnRcbiAgICAgICAgLnVybCgnaHR0cDovL2dpdGh1Yi5jb20nKVxuICAgICAgICAubmV3V2luZG93KCdodHRwOi8vZ29vZ2xlLmNvbScpXG4gICAgICAgIC5nZXRUaXRsZSgpLnRoZW4oZnVuY3Rpb24odGl0bGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRpdGxlKTsgLy8gb3V0cHV0czogXCJHb29nbGVcIlxuICAgICAgICB9KVxuICAgICAgICAuY2xvc2UoKVxuICAgICAgICAuZ2V0VGl0bGUoKS50aGVuKGZ1bmN0aW9uKHRpdGxlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0aXRsZSk7IC8vIG91dHB1dHM6IFwiR2l0SHViIMK3IEJ1aWxkIHNvZnR3YXJlIGJldHRlciwgdG9nZXRoZXIuXCJcbiAgICAgICAgfSk7XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogQHBhcmFtIHtTdHJpbmc9fSB3aW5kb3dIYW5kbGUgbmV3IHdpbmRvdyB0byBmb2N1cyBvblxuICpcbiAqIEB1c2VzIHByb3RvY29sL3dpbmRvdywgd2luZG93L3N3aXRjaFRhYlxuICogQHR5cGUgd2luZG93XG4gKlxuICovXG5cbmltcG9ydCB7IFJ1bnRpbWVFcnJvciB9IGZyb20gJy4uL3V0aWxzL0Vycm9ySGFuZGxlcidcblxubGV0IGNsb3NlID0gZnVuY3Rpb24gKHdpbmRvd0hhbmRsZSkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93SGFuZGxlICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUYWJJZHMoKS50aGVuKCh0YWJJZHMpID0+IHtcbiAgICAgICAgICAgIGlmICh0YWJJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFcnJvcihgYCArXG4gICAgICAgICAgICAgICAgICAgIGBDYW4ndCBzd2l0Y2ggdG8gdGhlIG5leHQgdGFiIGJlY2F1c2UgYWxsIHdpbmRvd3MgYXJlIGNsb3NlZC4gYCArXG4gICAgICAgICAgICAgICAgICAgIGBNYWtlIHN1cmUgeW91IGtlZXAgYXQgbGVhc3Qgb25lIHdpbmRvdyBvcGVuIWApXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLndpbmRvdygpLnN3aXRjaFRhYih0YWJJZHNbMF0pXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMud2luZG93KCkuc3dpdGNoVGFiKHdpbmRvd0hhbmRsZSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvc2VcbiJdfQ== |