@wix/design-system
Version:
@wix/design-system
109 lines (106 loc) • 4.24 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.popoverNextLegacyDriverFactory = void 0;
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var queryElementOrDocument = (query, element) => {
var _element$querySelecto;
return (_element$querySelecto = element == null ? void 0 : element.querySelector(query)) !== null && _element$querySelecto !== void 0 ? _element$querySelecto : document.body.querySelector(query);
};
var getPopoverDataHook = element => {
var popoverRootQuery = '[data-popover-root]';
var foundElement = queryElementOrDocument(popoverRootQuery, element);
return (foundElement == null ? void 0 : foundElement.getAttribute('data-hook')) || undefined;
};
var _getTriggerElement = element => queryElementOrDocument("[data-hook=\"".concat(getPopoverDataHook(element), "-trigger\"]"), element);
var _getContentElement = element => queryElementOrDocument("[data-hook=\"".concat(getPopoverDataHook(element), "-content\"]"), element);
// TODO: update when implemented
var _getArrowElement = element => element && element.querySelectorAll('[data-hook="popover-arrow"]')[0];
/** @deprecated use popoverNextUniDriverFactory instead */
var popoverNextLegacyDriverFactory = _ref => {
var {
element,
eventTrigger
} = _ref;
return {
/** Whether the element exists or not */
exists: () => !!element,
/** Returns the target element (`<Popover.Trigger/>`)
* @deprecated
* Use getTriggerElement
*/
getTargetElement: () => _getTriggerElement(element),
/** Returns the trigger element (`<Popover.Trigger/>`) */
getTriggerElement: () => _getTriggerElement(element),
/** Returns the content element (`<Popover.Content/>`) */
getContentElement: () => _getContentElement(element),
/** Returns the arrow element
* @todo not yet implemented
*/
getArrowElement: () => _getArrowElement(element),
/** Returns `true` whether the target element (`<Popover.Trigger/>`) exists
* @deprecated - use isTriggerElementExists
*/
isTargetElementExists: () => !!_getTriggerElement(element),
/** Returns `true` whether the target element (`<Popover.Trigger/>`) exists */
isTriggerElementExists: () => !!_getTriggerElement(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),
/** Trigger key press on the element */
pressKey: function () {
var _pressKey = (0, _asyncToGenerator2.default)(function* (key) {
return element && eventTrigger.keyPress(element, {
key
});
});
function pressKey(_x) {
return _pressKey.apply(this, arguments);
}
return pressKey;
}(),
/** Click on the element */
click: () => {
var triggerElement = _getTriggerElement(element);
if (triggerElement) {
eventTrigger.click(triggerElement);
}
},
/** 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
* @deprecated
*/
// @ts-ignore
inlineStyles: () => element == null ? void 0 : element.style,
/** Returns the element's id
* @deprecated
*/
getElementId: () => element == null ? void 0 : element.id
};
};
exports.popoverNextLegacyDriverFactory = popoverNextLegacyDriverFactory;
//# sourceMappingURL=PopoverNext.driver.js.map