wix-style-react
Version:
103 lines (80 loc) • 2.74 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: 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 = function formFieldDriver(_ref) {
var _element = _ref.element;
var byHook = function byHook(hook) {
return _element.querySelector("[data-hook*=\"".concat(hook, "\"]"));
};
var charactersCounter = function charactersCounter() {
return byHook(_constants.dataHooks.counter);
};
var labelElement = function labelElement() {
return byHook(_constants.dataHooks.label);
};
var labelTextDriver = function labelTextDriver() {
return (0, _Text["default"])({
element: labelElement()
});
};
return {
exists: function exists() {
return !!_element;
},
element: function element() {
return _element;
},
/** get children */
getChildren: function getChildren() {
return byHook(_constants.dataHooks.children);
},
/** get label */
getLabel: function getLabel() {
return labelElement();
},
/** returns label size */
getLabelSize: function getLabelSize() {
return labelTextDriver().getSize();
},
/** returns true whether form field is required */
isRequired: function isRequired() {
return !!byHook(_constants.dataHooks.asterisk);
},
/** returns the length left */
getLengthLeft: function getLengthLeft() {
var counter = charactersCounter();
return counter ? parseInt(counter.innerHTML, 10) : null;
},
/** returns whether the form field length is exceeded */
isLengthExceeded: function 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: function hasTooltip() {
return !!_element.querySelector("[data-hook=\"".concat(_constants.dataHooks.infoIcon, "\"]"));
},
/** returns tooltip text of the info content */
getInfoContent: function getInfoContent() {
return (0, _InfoIcon["default"])({
element: _element.querySelector("[data-hook=\"".concat(_constants.dataHooks.infoIcon, "\"]"))
}).getContent();
},
/** get form field suffix */
getSuffix: function getSuffix() {
return byHook(_constants.dataHooks.suffix);
}
};
};
var _default = formFieldDriver;
exports["default"] = _default;