UNPKG

wix-style-react

Version:
37 lines 1.92 kB
import { tooltipLegacyDriverFactory } from '../Tooltip/Tooltip.driver'; import textDriverFactory from '../Text/Text.driver'; import { dataHooks } from './constants'; import * as DATA_ATTR from './DataAttr'; const checkboxDriverFactory = ({ element, eventTrigger }) => { const byHook = hook => element.querySelector(`[data-hook*="${hook}"]`); const input = () => element.querySelector('input'); const checkbox = () => element.querySelector(dataHooks.box); const isChecked = () => input().checked; const labelText = () => element.querySelector(`[data-hook="${dataHooks.children}"]`); const labelTextDriver = () => textDriverFactory({ element: labelText() }); const getTooltipDriver = () => tooltipLegacyDriverFactory({ element: byHook(dataHooks.boxTooltip), eventTrigger, }); return { exists: () => !!element, click: () => eventTrigger.change(input(), { target: { checked: !isChecked() } }), /** Trigger focus on the element */ focus: () => eventTrigger.focus(checkbox()), /** Checks whether the checkbox is focused */ isFocused: () => element === document.activeElement, /** trigger blur on the element */ blur: () => eventTrigger.blur(checkbox()), isChecked, isDisabled: () => element.getAttribute(DATA_ATTR.DATA_DISABLED) === 'true', isIndeterminate: () => element.getAttribute(DATA_ATTR.DATA_CHECK_TYPE) === DATA_ATTR.CHECK_TYPES.INDETERMINATE, isTooltipEnabled: () => !!getTooltipDriver().getTooltipText(), hasError: () => element.getAttribute(DATA_ATTR.DATA_HAS_ERROR) === 'true', getTooltipContent: () => getTooltipDriver().getTooltipText(), getLabel: () => labelTextDriver().getText(), getLabelSize: () => labelTextDriver().getSize(), }; }; export default checkboxDriverFactory; //# sourceMappingURL=Checkbox.driver.js.map