UNPKG

wix-style-react

Version:
83 lines (70 loc) 2.58 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _testUtils = require('react-dom/test-utils'); var _testUtils2 = _interopRequireDefault(_testUtils); var _tabTypes = require('./core/constants/tab-types'); var _tabTypes2 = _interopRequireDefault(_tabTypes); var _Tabs = require('./Tabs.scss'); var _Tabs2 = _interopRequireDefault(_Tabs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } var tabsDriverFactory = function tabsDriverFactory(_ref) { var element = _ref.element; var findFirst = function findFirst(query) { return element.querySelector(query); }; var getItemsContainer = function getItemsContainer() { return findFirst('ul'); }; var getItems = function getItems() { return [].concat(_toConsumableArray(getItemsContainer().childNodes)); }; return { exists: function exists() { return !!element; }, getTitles: function getTitles() { return getItems().map(function (item) { return item.textContent; }); }, clickTabAt: function clickTabAt(index) { return _testUtils2.default.Simulate.click(getItems()[index]); }, getActiveTabIndex: function getActiveTabIndex() { return getItems().findIndex(function (item) { return item.classList.contains(_Tabs2.default.active); }); }, isDefaultType: function isDefaultType() { return _tabTypes2.default.every(function (tabType) { return !element.classList.contains(_Tabs2.default[tabType]); }); }, getItemsContainerClassList: function getItemsContainerClassList() { return getItemsContainer().classList; }, getDataHook: function getDataHook(index) { return getItems()[index].getAttribute('data-hook'); }, getItemsWidth: function getItemsWidth() { return new Set(getItems().map(function (item) { return item.style.width; })); }, hasDivider: function hasDivider() { return element.classList.contains(_Tabs2.default.hasDivider); }, getSideContent: function getSideContent() { return findFirst('.' + _Tabs2.default.sideContent); }, getItemsMaxWidths: function getItemsMaxWidths() { return getItems().map(function (item) { return item.style.maxWidth; }); } }; }; exports.default = tabsDriverFactory;