UNPKG

@wix/design-system

Version:

@wix/design-system

34 lines 2.02 kB
import { dropdownBaseDriverFactory as publicDriverFactory } from './DropdownBase.uni.driver'; import { dropdownLayoutDriverFactory } from '../DropdownLayout/DropdownLayout.uni.driver'; export const dropdownBasePrivateDriverFactory = (base, body) => { const byDataHook = (dataHook) => body.$(`[data-hook="${dataHook}"]`); const getDataHook = async () => base.attr('data-hook'); const getTargetElement = async () => { const dataHook = await getDataHook(); return byDataHook(`${dataHook}-trigger`); }; const getContentElement = async () => { const dataHook = await getDataHook(); return byDataHook(`${dataHook}-content`); }; const createDropdownLayoutDriver = () => dropdownLayoutDriverFactory(base, body); return { ...publicDriverFactory(base, body), /** Returns the native target element */ getTargetElement: async () => (await getTargetElement()).getNative(), /** Returns the native DropdownLayout element */ getDropdownElement: async () => (await 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