import { baseUniDriverFactory } from '../utils/test-utils/unidriver';
import { dataAttr, dataHooks } from './Tag.constants';
import { textUniDriverFactory } from '../Text/Text.uni.driver';
export const tagUniDriverFactory = (base) => {
    const removeButton = base.$(`[data-hook="${dataHooks.removeButton}"]`);
    const thumb = base.$(`[data-hook="${dataHooks.thumb}"]`);
    const textDriver = textUniDriverFactory(base.$(`[data-hook="${dataHooks.text}"]`));
    return {
        ...baseUniDriverFactory(base),
        isTiny: async () => (await base.attr(dataAttr.SIZE)) === 'tiny',
        isSmall: async () => (await base.attr(dataAttr.SIZE)) === 'small',
        isMedium: async () => (await base.attr(dataAttr.SIZE)) === 'medium',
        isLarge: async () => (await base.attr(dataAttr.SIZE)) === 'large',
        isStandardTheme: async () => (await base.attr(dataAttr.SKIN)) === 'standard',
        isWarningTheme: async () => (await base.attr(dataAttr.SKIN)) === 'warning',
        isErrorTheme: async () => (await base.attr(dataAttr.SKIN)) === 'error',
        isDarkTheme: async () => (await base.attr(dataAttr.SKIN)) === 'dark',
        isSuccessTheme: async () => (await base.attr(dataAttr.SKIN)) === 'success',
        isStandardSkin: async () => (await base.attr(dataAttr.SKIN)) === 'standard',
        isWarningSkin: async () => (await base.attr(dataAttr.SKIN)) === 'warning',
        isErrorSkin: async () => (await base.attr(dataAttr.SKIN)) === 'error',
        isDarkSkin: async () => (await base.attr(dataAttr.SKIN)) === 'dark',
        isSuccessSkin: async () => (await base.attr(dataAttr.SKIN)) === 'success',
        isRemovable: async () => removeButton.exists(),
        removeTag: async () => removeButton.click(),
        click: async () => base.click(),
        isThumbExists: () => thumb.exists(),
        isDisabled: async () => (await base.attr(dataAttr.DISABLED)) === 'true',
        getLabel: async () => base.text(),
        getCloseButtonSkin: async () => await removeButton.attr('data-skin'),
        getCloseButtonTheme: async () => await removeButton.attr('data-skin'),
        getCloseButtonSize: async () => await removeButton.attr('data-size'),
        getTextSize: async () => textDriver.getSize(),
        getTextWeight: async () => textDriver.getWeight(),
        isClickable: async () => (await base.attr(dataAttr.CLICKABLE)) === 'true',
        isHoverable: async () => (await base.attr(dataAttr.HOVERABLE)) === 'true',
        pressKey: async (key) => removeButton.pressKey(key),
    };
};
//# sourceMappingURL=Tag.uni.driver.js.map