wix-style-react
Version:
wix-style-react
68 lines (67 loc) • 2.71 kB
JavaScript
;
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