wix-style-react
Version:
wix-style-react
27 lines • 1.76 kB
JavaScript
import { dropdownBaseDriverFactory as publicDriverFactory } from './DropdownBase.uni.driver';
import { dropdownLayoutDriverFactory } from '../DropdownLayout/DropdownLayout.uni.driver';
export const dropdownBasePrivateDriverFactory = (base, body) => {
const byDataHook = dataHook => base.$(`[data-hook="${dataHook}"]`);
const getTargetElement = () => byDataHook('popover-element');
const getContentElement = () => byDataHook('popover-content');
const createDropdownLayoutDriver = () => dropdownLayoutDriverFactory(base);
return {
...publicDriverFactory(base, body),
/** Returns the native target element */
getTargetElement: () => getTargetElement().getNative(),
/** Returns the native DropdownLayout element */
getDropdownElement: () => getContentElement().getNative(),
/** Return `true` if the option is hovered by the mouse */
isOptionHovered: async (index) => createDropdownLayoutDriver().isOptionHovered(index),
/** Return `true` if the option is selected */
isOptionSelected: async (index) => createDropdownLayoutDriver().isOptionSelected(index),
/** Trigger a keyDown event on the target element */
keyDown: async (key) => (await getTargetElement()).pressKey(key),
/** Perform a mouseLeave on the target element */
mouseLeaveTarget: async () => (await getTargetElement()).mouse.leave(),
getDropdownLayoutDriver: createDropdownLayoutDriver,
keyDownListItem: async (position, key) => createDropdownLayoutDriver().keyDownListItem(position, key),
isListItemFocused: async (position) => createDropdownLayoutDriver().isListItemFocused(position),
};
};
//# sourceMappingURL=DropdownBase.private.uni.driver.js.map