@wix/design-system
Version:
@wix/design-system
26 lines • 1.4 kB
JavaScript
import publicDriverFactory from './Accordion.uni.driver';
import { DATA_HOOKS } from './constants';
export const accordionPrivateDriverFactory = (base) => {
const getItemAt = (idx) => base.$$(`[data-hook="${DATA_HOOKS.item}"]`).at(idx);
return {
...publicDriverFactory(base),
getAmountOfItems: async () => base.$$(`[data-hook="${DATA_HOOKS.item}"]`).count(),
hoverOnItem: async (idx) => await getItemAt(idx).$('[data-hook="header"]').hover(),
getAccordionItemAt: async (idx) => {
const accordionItem = await getItemAt(idx);
return accordionItemPrivateDriverFactory(accordionItem);
},
};
};
export const accordionItemPrivateDriverFactory = (base) => ({
getToggleIconPlacement: async () => {
const header = await base.get(`[data-hook="${DATA_HOOKS.header}"]`);
const headerElement = (await header.getNative());
const isAtStart = headerElement.children[0].getAttribute('data-hook') ||
headerElement.children[0].querySelector(`[data-hook="${DATA_HOOKS.toggleButton}"]`);
const isAtEnd = headerElement.lastElementChild?.getAttribute('data-hook') ||
headerElement.lastElementChild?.querySelector(`[data-hook="${DATA_HOOKS.toggleButton}"]`);
return isAtStart ? 'start' : isAtEnd ? 'end' : 'none';
},
});
//# sourceMappingURL=Accordion.private.uni.driver.js.map