wix-style-react
Version:
90 lines (69 loc) • 3.22 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _testUtils = _interopRequireDefault(require("react-dom/test-utils"));
var _constnats = require("./constnats");
var breadcrumbsDriverFactory = function breadcrumbsDriverFactory(_ref) {
var element = _ref.element;
var optionAt = function optionAt(position) {
return element.childNodes[position];
};
return {
exists: function exists() {
return !!element;
},
/** return the number of the items in the breadcrumbs */
breadcrumbsLength: function breadcrumbsLength() {
return element.childNodes.length;
},
/** return the breadcrumb item content at position */
breadcrumbContentAt: function breadcrumbContentAt(position) {
return optionAt(position).textContent;
},
/** click on breadcrumb item at position */
clickBreadcrumbAt: function clickBreadcrumbAt(position) {
return _testUtils["default"].Simulate.click(optionAt(position).querySelector("[data-hook^=\"".concat(_constnats.DATA_HOOKS.BREADCRUMB_CLICKABLE, "\"]")));
},
/** return the active breadcrumb item position or return null if no active item exists */
getActiveItemId: function getActiveItemId() {
var activeItem = element.querySelector("[".concat(_constnats.DATA_ATTRIBUTES.DATA_ACTIVE, "=\"true\"]"));
if (!activeItem) {
return null;
}
return Array.from(activeItem.parentNode.children).indexOf(activeItem);
},
/** fulfilled if breadcrumbs component is large */
isLarge: function isLarge() {
return element.getAttribute(_constnats.DATA_ATTRIBUTES.DATA_SIZE) === _constnats.SIZES.large;
},
/** fulfilled if breadcrumbs component is medium */
isMedium: function isMedium() {
return element.getAttribute(_constnats.DATA_ATTRIBUTES.DATA_SIZE) === _constnats.SIZES.medium;
},
/** fulfilled if breadcrumbs component is on white background */
isOnWhiteBackground: function isOnWhiteBackground() {
return element.getAttribute(_constnats.DATA_ATTRIBUTES.DATA_THEME) === _constnats.THEMES.onWhiteBackground;
},
/** fulfilled if breadcrumbs component is on gray background */
isOnGrayBackground: function isOnGrayBackground() {
return element.getAttribute(_constnats.DATA_ATTRIBUTES.DATA_THEME) === _constnats.THEMES.onGrayBackground;
},
/** fulfilled if breadcrumbs component is on dark background */
isOnDarkBackground: function isOnDarkBackground() {
return element.getAttribute(_constnats.DATA_ATTRIBUTES.DATA_THEME) === _constnats.THEMES.onDarkBackground;
},
/** returns breadcrumbs component classes */
getLabelClassList: function getLabelClassList(position) {
return optionAt(position).querySelector("[data-hook=\"".concat(_constnats.DATA_HOOKS.BREADCRUMBS_ITEM, "\"]")).className;
},
/** returns true if the item is a link */
isActiveLinkAt: function isActiveLinkAt(index) {
return !!optionAt(index).querySelector('a');
}
};
};
var _default = breadcrumbsDriverFactory;
exports["default"] = _default;