UNPKG

wix-style-react

Version:
68 lines (67 loc) 2.71 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _InfoIcon = _interopRequireDefault(require("../InfoIcon/InfoIcon.driver")); var _constants = require("./constants"); var _Text = _interopRequireDefault(require("../Text/Text.driver")); var formFieldDriver = _ref => { var { element: _element, eventTrigger } = _ref; var byHook = hook => _element.querySelector("[data-hook*=\"".concat(hook, "\"]")); var charactersCounter = () => byHook(_constants.dataHooks.counter); var labelElement = () => byHook(_constants.dataHooks.label); var labelTextDriver = () => (0, _Text.default)({ element: labelElement() }); return { exists: () => !!_element, element: () => _element, /** get children */ getChildren: () => byHook(_constants.dataHooks.children), /** get label */ getLabel: () => labelElement(), /** returns label size */ getLabelSize: () => labelTextDriver().getSize(), /** returns true whether form field is required */ isRequired: () => !!byHook(_constants.dataHooks.asterisk), /** returns the length left */ getLengthLeft: () => { var counter = charactersCounter(); return counter ? parseInt(counter.innerHTML, 10) : null; }, /** returns whether the form field length is exceeded */ isLengthExceeded: () => { var counter = charactersCounter(); if (counter) { var length = parseInt(counter.innerHTML, 10); return length < 0; } return false; }, /** returns true whether form field has tooltip */ hasTooltip: () => !!_element.querySelector("[data-hook=\"".concat(_constants.dataHooks.infoIcon, "\"]")), /** returns tooltip text of the info content */ getInfoContent: () => (0, _InfoIcon.default)({ element: _element.querySelector("[data-hook=\"".concat(_constants.dataHooks.infoIcon, "\"]")), eventTrigger }).getContent(), /** get form field suffix */ getSuffix: () => byHook(_constants.dataHooks.suffix), /** hovers over the formfield infoicon */ hoverInfoIcon: () => (0, _InfoIcon.default)({ element: _element.querySelector("[data-hook=\"".concat(_constants.dataHooks.infoIcon, "\"]")), eventTrigger }).hover(), /** returns status message text */ getStatusMessage: () => (0, _Text.default)({ element: byHook(_constants.dataHooks.statusMessage) }).getText(), /** return true if it has a given status */ hasStatus: status => _element.getAttribute('data-status') === status }; }; var _default = exports.default = formFieldDriver; //# sourceMappingURL=FormField.driver.js.map