wix-style-react
Version:
wix-style-react
93 lines (92 loc) • 4.43 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _AddItem = _interopRequireDefault(require("../AddItem/AddItem.driver"));
var _constants = require("./constants");
var _Tooltip = require("../Tooltip/Tooltip.driver");
var imageViewerDriverFactory = _ref => {
var {
element: _element,
wrapper,
eventTrigger
} = _ref;
var byHook = dataHook => _element.querySelector("[data-hook=\"".concat(dataHook, "\"]"));
var hasDataAttribute = (dataAttr, el) => el.getAttribute(dataAttr) === 'true';
var addItemDriver = () => (0, _AddItem.default)({
element: byHook(_constants.dataHooks.addItem),
eventTrigger
});
var getTooltipDriver = dataHook => (0, _Tooltip.tooltipLegacyDriverFactory)({
element: _element.querySelector("[data-hook=\"".concat(dataHook, "\"]")),
eventTrigger
});
var getImageElement = () => byHook(_constants.dataHooks.image);
var getPreviousImageElement = () => byHook(_constants.dataHooks.previousImage);
var isImagesContainerElementVisible = () => hasDataAttribute(_constants.dataAttributes.containerVisible, byHook(_constants.dataHooks.imagesContainer));
var isImageElementVisible = imgElement => hasDataAttribute(_constants.dataAttributes.imageVisible, imgElement);
var hoverElement = () => eventTrigger.mouseOver(_element);
var showButtons = hoverElement;
return {
exists: () => !!_element,
getElement: () => _element,
// for backward compatibility
element: () => _element,
// same as unidriver language
updateExists: () => !!byHook(_constants.dataHooks.update),
updateButtonExists: () => !!byHook(_constants.dataHooks.update),
removeButtonExists: () => !!byHook(_constants.dataHooks.remove),
downloadButtonExists: () => !!byHook(_constants.dataHooks.download),
moreButtonExists: () => !!byHook(_constants.dataHooks.more),
clickAdd: () => addItemDriver().click(),
clickUpdate: () => {
showButtons();
eventTrigger.click(byHook(_constants.dataHooks.update));
},
clickDownload: () => {
showButtons();
eventTrigger.click(byHook(_constants.dataHooks.download));
},
clickRemove: () => {
showButtons();
eventTrigger.click(byHook(_constants.dataHooks.remove));
},
getContainerStyles: () => _element.getAttribute('style'),
getAddTooltipContent: () => addItemDriver().getTooltipContent(),
getUpdateTooltipContent: () => getTooltipDriver(_constants.dataHooks.updateTooltip).getTooltipText(),
getDownloadTooltipContent: () => getTooltipDriver(_constants.dataHooks.downloadTooltip).getTooltipText(),
getRemoveTooltipContent: () => getTooltipDriver(_constants.dataHooks.removeTooltip).getTooltipText(),
getMoreTooltipContent: () => getTooltipDriver(_constants.dataHooks.moreTooltip).getTooltipText(),
isDisabled: () => _element.getAttribute('data-disabled') === 'true',
isAddItemVisible: () => !!byHook(_constants.dataHooks.addItem),
isLoaderVisible: () => !!byHook(_constants.dataHooks.loader),
isImageLoaded: () => hasDataAttribute(_constants.dataAttributes.imageLoaded, _element),
isImageVisible: () => {
var image = getImageElement();
return !!image && isImageElementVisible(image) && isImagesContainerElementVisible();
},
isPreviousImageVisible: () => {
var previousImage = getPreviousImageElement();
return !!previousImage && isImageElementVisible(previousImage) && isImagesContainerElementVisible();
},
getImageUrl: () => {
var imageUrl = getImageElement();
return imageUrl && imageUrl.getAttribute('src');
},
getPreviousImageUrl: () => {
var previousImage = getPreviousImageElement();
return previousImage && previousImage.getAttribute('src');
},
hover: () => hoverElement(),
// Status
/** Return true if the given status is displayed */
hasStatus: status => {
var statusEl = _element.querySelector("[data-hook='".concat(_constants.dataHooks.errorTooltip, "']"));
return (statusEl && statusEl.getAttribute('data-status')) === status;
},
/** If there's a status message, returns its text value */
getStatusMessage: () => getTooltipDriver('status-indicator-tooltip').getTooltipText(0)
};
};
var _default = exports.default = imageViewerDriverFactory;
//# sourceMappingURL=ImageViewer.driver.js.map