wix-style-react
Version:
wix-style-react
83 lines (70 loc) • 2.58 kB
JavaScript
;
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;