UNPKG

wix-style-react

Version:
193 lines (192 loc) • 7.19 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.tabsUniDriverFactory = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _unidriver = require("../test-utils/utils/unidriver"); function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var tabsUniDriverFactory = base => { var findFirst = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2.default)(function* (query) { var item = base.$$(query).get(0); return (yield item.exists()) ? item : null; }); return function findFirst(_x) { return _ref.apply(this, arguments); }; }(); var getItemsContainer = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2.default)(function* () { return findFirst('div[role="tablist"]'); }); return function getItemsContainer() { return _ref2.apply(this, arguments); }; }(); var getItems = /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2.default)(function* () { var itemsContainer = yield getItemsContainer(); return itemsContainer.$$('button[role="tab"]').map(child => child); }); return function getItems() { return _ref3.apply(this, arguments); }; }(); var getItemsContainerType = /*#__PURE__*/function () { var _ref4 = (0, _asyncToGenerator2.default)(function* () { var itemContainer = yield getItemsContainer(); return yield itemContainer.attr('data-type'); }); return function getItemsContainerType() { return _ref4.apply(this, arguments); }; }(); return _objectSpread(_objectSpread({}, (0, _unidriver.baseUniDriverFactory)(base)), {}, { /** * Gets all titles text * @return {Promise<string[]>} */ getTitles: function () { var _getTitles = (0, _asyncToGenerator2.default)(function* () { return Promise.all((yield getItems()).map(item => item.text())); }); function getTitles() { return _getTitles.apply(this, arguments); } return getTitles; }(), /** * Clicks the tab at index * @param {number} index * @return {Promise<void>} */ clickTabAt: function () { var _clickTabAt = (0, _asyncToGenerator2.default)(function* (index) { return (yield getItems())[index].click(); }); function clickTabAt(_x2) { return _clickTabAt.apply(this, arguments); } return clickTabAt; }(), /** * Gets active tab index * @return {Promise<number>} */ getActiveTabIndex: function () { var _getActiveTabIndex = (0, _asyncToGenerator2.default)(function* () { var itemsDataActivePromises = (yield getItems()).map(item => item.attr('data-active')); var itemsDataActive = yield Promise.all(itemsDataActivePromises); return itemsDataActive.findIndex(active => active === 'true'); }); function getActiveTabIndex() { return _getActiveTabIndex.apply(this, arguments); } return getActiveTabIndex; }(), /** * Checks whether tabs type is default * @return {Promise<boolean>} */ isDefaultType: function () { var _isDefaultType = (0, _asyncToGenerator2.default)(function* () { return !(yield getItemsContainerType()); }); function isDefaultType() { return _isDefaultType.apply(this, arguments); } return isDefaultType; }(), /** * Checks whether tabs type is container * @return {Promise<boolean>} */ getItemsContainerType, /** * Gets the data-hook * @param {number} index * @return {Promise<string>} */ getDataHook: function () { var _getDataHook = (0, _asyncToGenerator2.default)(function* (index) { return (yield getItems())[index].attr('data-hook'); }); function getDataHook(_x3) { return _getDataHook.apply(this, arguments); } return getDataHook; }(), /** * Gets a set of tabs widths * @return {Promise<Set<string>>} */ getItemsWidth: function () { var _getItemsWidth = (0, _asyncToGenerator2.default)(function* () { var items = yield getItems(); var itemsWidthArrayPromise = items.map(item => item._prop('style').then(style => style.width)); var itemsWidthArray = yield Promise.all(itemsWidthArrayPromise); return new Set(itemsWidthArray); }); function getItemsWidth() { return _getItemsWidth.apply(this, arguments); } return getItemsWidth; }(), /** * Checks whether tabs has a divider * @return {Promise<boolean>} */ hasDivider: function () { var _hasDivider = (0, _asyncToGenerator2.default)(function* () { return (yield base.attr('data-divider')) === 'true'; }); function hasDivider() { return _hasDivider.apply(this, arguments); } return hasDivider; }(), /** * Gets the side content * @return {Promise<UniDriver|null>} */ getSideContent: function () { var _getSideContent = (0, _asyncToGenerator2.default)(function* () { return findFirst("[data-content=\"true\"]"); }); function getSideContent() { return _getSideContent.apply(this, arguments); } return getSideContent; }(), /** * Gets tabs max widths * @return {Promise<string[]>} */ getItemsMaxWidths: function () { var _getItemsMaxWidths = (0, _asyncToGenerator2.default)(function* () { return Promise.all((yield getItems()).map(item => item._prop('style').then(style => style.maxWidth))); }); function getItemsMaxWidths() { return _getItemsMaxWidths.apply(this, arguments); } return getItemsMaxWidths; }(), /** * Gets tabs min widths * @return {Promise<string[]>} */ getItemsMinWidths: function () { var _getItemsMinWidths = (0, _asyncToGenerator2.default)(function* () { return Promise.all((yield getItems()).map(item => item._prop('style').then(style => style.minWidth))); }); function getItemsMinWidths() { return _getItemsMinWidths.apply(this, arguments); } return getItemsMinWidths; }() }); }; exports.tabsUniDriverFactory = tabsUniDriverFactory; //# sourceMappingURL=Tabs.uni.driver.js.map