import { dragAndDropDriverFactory } from '../../utils/DragAndDrop/dragAndDropDriverFactory';
import { baseUniDriverFactory } from '../../utils/test-utils/unidriver';
export const draggableUniDriverFactory = (base, body) => {
    return {
        ...baseUniDriverFactory(base, body),
        /**
         * fire dragstart event for the provided draggable item
         * @param itemDetails { dataHook: string }
         * @return {Promise<void>}
         */
        beginDrag: async ({ dataHook }) => dragAndDropDriverFactory({
            base,
            element: await base.getNative(),
        }).beginDrag({ dataHook }),
        /**
         * fire dragover event for the provided draggable item
         * @param itemDetails { dataHook: string }
         * @return {Promise<void>}
         */
        dragOver: async ({ dataHook }) => dragAndDropDriverFactory({
            base,
            element: await base.getNative(),
        }).dragOver({ dataHook }),
        /**
         * fire drop and dragend events for the provided draggable item
         * @param itemDetails { dataHook?: string }
         * @return {Promise<void>}
         */
        endDrag: async (draggableItemDetails) => dragAndDropDriverFactory({
            base,
            element: await base.getNative(),
        }).endDrag(draggableItemDetails),
    };
};
//# sourceMappingURL=Draggable.uni.driver.js.map