UNPKG

wix-style-react

Version:
253 lines (203 loc) • 9.37 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.multiselectUniDriverFactory = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _baseDriver = require("wix-ui-test-utils/base-driver"); var _testUtils = _interopRequireDefault(require("react-dom/test-utils")); var _InputWithOptionsUni = require("../InputWithOptions/InputWithOptions.uni.driver"); var _TagPrivateUni = require("../Tag/Tag.private.uni.driver"); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var multiselectUniDriverFactory = function multiselectUniDriverFactory(base, body) { var _inputWithOptionsUniD = (0, _InputWithOptionsUni.inputWithOptionsUniDriverFactory)(base, body), driver = _inputWithOptionsUniD.driver, inputDriver = _inputWithOptionsUniD.inputDriver, dropdownLayoutDriver = _inputWithOptionsUniD.dropdownLayoutDriver; var getInputWrapper = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return driver.inputWrapper(); case 2: return _context.abrupt("return", _context.sent.childNodes[0]); case 3: case "end": return _context.stop(); } } }, _callee); })); return function getInputWrapper() { return _ref.apply(this, arguments); }; }(); var tags = base.$$('[data-hook="tag"]'); var multiSelectDriver = _objectSpread(_objectSpread(_objectSpread({}, (0, _baseDriver.baseUniDriverFactory)(base)), driver), {}, { /** returns the max height of the component */ getMaxHeight: function () { var _getMaxHeight = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return getInputWrapper(); case 2: return _context2.abrupt("return", _context2.sent.style.maxHeight); case 3: case "end": return _context2.stop(); } } }, _callee2); })); function getMaxHeight() { return _getMaxHeight.apply(this, arguments); } return getMaxHeight; }(), /** click on the input element wrapper */ clickOnInputWrapper: function () { var _clickOnInputWrapper = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.t0 = _testUtils["default"].Simulate; _context3.next = 3; return getInputWrapper(); case 3: _context3.t1 = _context3.sent; return _context3.abrupt("return", _context3.t0.click.call(_context3.t0, _context3.t1)); case 5: case "end": return _context3.stop(); } } }, _callee3); })); function clickOnInputWrapper() { return _clickOnInputWrapper.apply(this, arguments); } return clickOnInputWrapper; }(), /** returns true if the input is focused */ inputWrapperHasFocus: function inputWrapperHasFocus() { return inputDriver.isFocusedStyle(); }, /** returns true if the input is disabled */ inputWrapperIsDisabled: function () { var _inputWrapperIsDisabled = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return base.$('[data-hook="wsr-custom-input"]'); case 2: return _context4.abrupt("return", !!_context4.sent.attr('disabled')); case 3: case "end": return _context4.stop(); } } }, _callee4); })); function inputWrapperIsDisabled() { return _inputWrapperIsDisabled.apply(this, arguments); } return inputWrapperIsDisabled; }(), /** returns the number of tags selected in the input */ numberOfTags: function numberOfTags() { return tags.count(); }, /** returns the label of the tag given it's index */ getTagLabelAt: function getTagLabelAt(index) { return tags.get(index).text(); }, /** press the comma key in the input field */ pressCommaKey: function pressCommaKey() { return inputDriver.pressKey(','); }, /** returns the `tagDriver` for the specified tag id */ getTagDriverByTagId: function () { var _getTagDriverByTagId = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(tagId) { return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: return _context6.abrupt("return", (0, _TagPrivateUni.tagPrivateUniDriverFactory)(tags.filter( /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(tag) { return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: _context5.next = 2; return tag._prop('id'); case 2: _context5.t0 = _context5.sent; _context5.t1 = tagId; return _context5.abrupt("return", _context5.t0 === _context5.t1); case 5: case "end": return _context5.stop(); } } }, _callee5); })); return function (_x2) { return _ref2.apply(this, arguments); }; }()).get(0))); case 1: case "end": return _context6.stop(); } } }, _callee6); })); function getTagDriverByTagId(_x) { return _getTagDriverByTagId.apply(this, arguments); } return getTagDriverByTagId; }(), /** returns true if a custom suffix exists */ customSuffixExists: function () { var _customSuffixExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() { return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; return getInputWrapper(); case 2: return _context7.abrupt("return", !!_context7.sent.querySelector('[data-hook="custom-suffix"]')); case 3: case "end": return _context7.stop(); } } }, _callee7); })); function customSuffixExists() { return _customSuffixExists.apply(this, arguments); } return customSuffixExists; }() }); return { driver: multiSelectDriver, inputDriver: inputDriver, dropdownLayoutDriver: dropdownLayoutDriver }; }; exports.multiselectUniDriverFactory = multiselectUniDriverFactory;