wix-style-react
Version:
wix-style-react
72 lines (71 loc) • 2.82 kB
JavaScript
;
exports.__esModule = true;
exports.popoverLegacyDriverFactory = void 0;
var _getTargetElement = element => element && element.querySelectorAll('[data-hook="popover-element"]')[0];
var queryDocumentOrElement = (element, query) => element && element.querySelectorAll(query)[0] || document && document.querySelector(query);
var _getContentElement = element => {
var contentHook = element == null ? void 0 : element.getAttribute('data-content-hook');
var contentSelector = "[data-content-element=\"".concat(contentHook, "\"]");
return queryDocumentOrElement(element, contentSelector);
};
var _getArrowElement = element => element && element.querySelectorAll('[data-hook="popover-arrow"]')[0];
var popoverLegacyDriverFactory = _ref => {
var {
element,
eventTrigger
} = _ref;
return {
/** Whether the element exists or not */
exists: () => !!element,
/** Returns the target element (`<Popover.Element/>`) */
getTargetElement: () => _getTargetElement(element),
/** Returns the content element (`<Popover.Content/>`) */
getContentElement: () => _getContentElement(element),
/** Returns the arrow element */
getArrowElement: () => _getArrowElement(element),
/** Returns `true` whether the target element (`<Popover.Element/>`) exists */
isTargetElementExists: () => !!_getTargetElement(element),
/** Returns `true` whether the content element (`<Popover.Content/>`) exists */
isContentElementExists: () => !!_getContentElement(element),
/** Trigger `mouseEnter` on the element */
mouseEnter: () => element && eventTrigger.mouseEnter(element),
/** Trigger `mouseLeave` on the element */
mouseLeave: () => element && eventTrigger.mouseLeave(element),
/** Click on the element */
click: () => {
var targetElement = _getTargetElement(element);
if (targetElement) {
eventTrigger.click(targetElement);
}
},
/** Click outside the element */
clickOutside: () => {
document.dispatchEvent(new Event('mousedown'));
document.dispatchEvent(new Event('mouseup'));
},
/** Returns the arrow offset */
getArrowOffset: () => {
var _getArrowElement2;
// @ts-ignore
var {
top,
left,
right,
bottom
} = (_getArrowElement2 = _getArrowElement(element)) == null ? void 0 : _getArrowElement2.style;
return {
top,
left,
right,
bottom
};
},
/** Returns the element's inline styles */
// @ts-ignore
inlineStyles: () => element == null ? void 0 : element.style,
/** Returns the element's id */
getElementId: () => element == null ? void 0 : element.id
};
};
exports.popoverLegacyDriverFactory = popoverLegacyDriverFactory;
//# sourceMappingURL=Popover.driver.js.map