/**
*
* Send a sequence of key strokes to an element.
*
* @param {String} ID ID of a WebElement JSON object to route the command to
* @param {String|String[]} value The sequence of keys to type. An array must be provided. The server should flatten the array items to a single string to be typed.
*
* @see https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value
* @type protocol
*
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
var _helpersConstants = require('../helpers/constants');
var _utilsErrorHandler = require('../utils/ErrorHandler');
var elementIdValue = function elementIdValue(id, value) {
var key = [];
if (typeof id !== 'string' && typeof id !== 'number') {
throw new _utilsErrorHandler.ProtocolError('number or type of arguments don\'t agree with elementIdValue protocol command');
}
/**
* replace key with corresponding unicode character
*/
if (typeof value === 'string') {
key = checkUnicode(value);
} else if (value instanceof Array) {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var charSet = _step.value;
key = key.concat(checkUnicode(charSet));
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator['return']) {
_iterator['return']();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
} else {
throw new _utilsErrorHandler.ProtocolError('number or type of arguments don\'t agree with elementIdValue protocol command');
}
return this.requestHandler.create('/session/:sessionId/element/' + id + '/value', {
'value': key
});
};
/*!
* check for unicode character or split string into literals
* @param {String} value text
* @return {Array} set of characters or unicode symbols
*/
function checkUnicode(value) {
return _helpersConstants.UNICODE_CHARACTERS.hasOwnProperty(value) ? [_helpersConstants.UNICODE_CHARACTERS[value]] : Array.from(value);
}
exports['default'] = elementIdValue;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvcHJvdG9jb2wvZWxlbWVudElkVmFsdWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dDQVltQyxzQkFBc0I7O2lDQUMzQix1QkFBdUI7O0FBRXJELElBQUksY0FBYyxHQUFHLFNBQWpCLGNBQWMsQ0FBYSxFQUFFLEVBQUUsS0FBSyxFQUFFO0FBQ3RDLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQTs7QUFFWixRQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQUU7QUFDbEQsY0FBTSxxQ0FBa0IsK0VBQStFLENBQUMsQ0FBQTtLQUMzRzs7Ozs7QUFLRCxRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUMzQixXQUFHLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO0tBQzVCLE1BQU0sSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFOzs7Ozs7QUFDL0IsaUNBQW9CLEtBQUssOEhBQUU7b0JBQWxCLE9BQU87O0FBQ1osbUJBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2FBQzFDOzs7Ozs7Ozs7Ozs7Ozs7S0FDSixNQUFNO0FBQ0gsY0FBTSxxQ0FBa0IsK0VBQStFLENBQUMsQ0FBQTtLQUMzRzs7QUFFRCxXQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxrQ0FBZ0MsRUFBRSxhQUFVO0FBQ3pFLGVBQU8sRUFBRSxHQUFHO0tBQ2YsQ0FBQyxDQUFBO0NBQ0wsQ0FBQTs7Ozs7OztBQU9ELFNBQVMsWUFBWSxDQUFFLEtBQUssRUFBRTtBQUMxQixXQUFPLHFDQUFtQixjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxxQ0FBbUIsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0NBQ3BHOztxQkFFYyxjQUFjIiwiZmlsZSI6Ii9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvcHJvdG9jb2wvZWxlbWVudElkVmFsdWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBTZW5kIGEgc2VxdWVuY2Ugb2Yga2V5IHN0cm9rZXMgdG8gYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gSUQgICAgICAgICAgICAgIElEIG9mIGEgV2ViRWxlbWVudCBKU09OIG9iamVjdCB0byByb3V0ZSB0aGUgY29tbWFuZCB0b1xuICogQHBhcmFtIHtTdHJpbmd8U3RyaW5nW119IHZhbHVlICBUaGUgc2VxdWVuY2Ugb2Yga2V5cyB0byB0eXBlLiBBbiBhcnJheSBtdXN0IGJlIHByb3ZpZGVkLiBUaGUgc2VydmVyIHNob3VsZCBmbGF0dGVuIHRoZSBhcnJheSBpdGVtcyB0byBhIHNpbmdsZSBzdHJpbmcgdG8gYmUgdHlwZWQuXG4gKlxuICogQHNlZSAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zZWxlbml1bS93aWtpL0pzb25XaXJlUHJvdG9jb2wjL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LzppZC92YWx1ZVxuICogQHR5cGUgcHJvdG9jb2xcbiAqXG4gKi9cblxuaW1wb3J0IHsgVU5JQ09ERV9DSEFSQUNURVJTIH0gZnJvbSAnLi4vaGVscGVycy9jb25zdGFudHMnXG5pbXBvcnQgeyBQcm90b2NvbEVycm9yIH0gZnJvbSAnLi4vdXRpbHMvRXJyb3JIYW5kbGVyJ1xuXG5sZXQgZWxlbWVudElkVmFsdWUgPSBmdW5jdGlvbiAoaWQsIHZhbHVlKSB7XG4gICAgbGV0IGtleSA9IFtdXG5cbiAgICBpZiAodHlwZW9mIGlkICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgaWQgIT09ICdudW1iZXInKSB7XG4gICAgICAgIHRocm93IG5ldyBQcm90b2NvbEVycm9yKCdudW1iZXIgb3IgdHlwZSBvZiBhcmd1bWVudHMgZG9uXFwndCBhZ3JlZSB3aXRoIGVsZW1lbnRJZFZhbHVlIHByb3RvY29sIGNvbW1hbmQnKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJlcGxhY2Uga2V5IHdpdGggY29ycmVzcG9uZGluZyB1bmljb2RlIGNoYXJhY3RlclxuICAgICAqL1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGtleSA9IGNoZWNrVW5pY29kZSh2YWx1ZSlcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgZm9yIChsZXQgY2hhclNldCBvZiB2YWx1ZSkge1xuICAgICAgICAgICAga2V5ID0ga2V5LmNvbmNhdChjaGVja1VuaWNvZGUoY2hhclNldCkpXG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgUHJvdG9jb2xFcnJvcignbnVtYmVyIG9yIHR5cGUgb2YgYXJndW1lbnRzIGRvblxcJ3QgYWdyZWUgd2l0aCBlbGVtZW50SWRWYWx1ZSBwcm90b2NvbCBjb21tYW5kJylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SGFuZGxlci5jcmVhdGUoYC9zZXNzaW9uLzpzZXNzaW9uSWQvZWxlbWVudC8ke2lkfS92YWx1ZWAsIHtcbiAgICAgICAgJ3ZhbHVlJzoga2V5XG4gICAgfSlcbn1cblxuLyohXG4gKiBjaGVjayBmb3IgdW5pY29kZSBjaGFyYWN0ZXIgb3Igc3BsaXQgc3RyaW5nIGludG8gbGl0ZXJhbHNcbiAqIEBwYXJhbSAge1N0cmluZ30gdmFsdWUgIHRleHRcbiAqIEByZXR1cm4ge0FycmF5fSAgICAgICAgIHNldCBvZiBjaGFyYWN0ZXJzIG9yIHVuaWNvZGUgc3ltYm9sc1xuICovXG5mdW5jdGlvbiBjaGVja1VuaWNvZGUgKHZhbHVlKSB7XG4gICAgcmV0dXJuIFVOSUNPREVfQ0hBUkFDVEVSUy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkgPyBbVU5JQ09ERV9DSEFSQUNURVJTW3ZhbHVlXV0gOiBBcnJheS5mcm9tKHZhbHVlKVxufVxuXG5leHBvcnQgZGVmYXVsdCBlbGVtZW50SWRWYWx1ZVxuIl19 |