UNPKG

wix-style-react

Version:
172 lines (139 loc) • 7.74 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _omit = _interopRequireDefault(require("omit")); var _propTypes = _interopRequireDefault(require("prop-types")); var _Input = _interopRequireDefault(require("../Input/Input")); var _NoBorderInputSt = require("./NoBorderInput.st.css"); var _Text = _interopRequireDefault(require("../Text")); var _dataHooks = _interopRequireDefault(require("./dataHooks")); var _context = require("../FontUpgrade/context"); var _deprecationLog = _interopRequireDefault(require("../utils/deprecationLog")); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var NoBorderInput = /*#__PURE__*/function (_React$Component) { (0, _inherits2["default"])(NoBorderInput, _React$Component); var _super = _createSuper(NoBorderInput); function NoBorderInput(props) { var _this; (0, _classCallCheck2["default"])(this, NoBorderInput); _this = _super.call(this, props); _this.state = { focus: !!props.autoFocus }; (0, _deprecationLog["default"])('<NoBorderInput/> is deprecated and will be removed next version. Please use <Input border="bottomLine"/> instead'); return _this; } (0, _createClass2["default"])(NoBorderInput, [{ key: "render", value: function render() { var _this2 = this; var _this$props = this.props, id = _this$props.id, size = _this$props.size, dataHook = _this$props.dataHook, label = _this$props.label, disabled = _this$props.disabled, _onFocus = _this$props.onFocus, _onBlur = _this$props.onBlur, status = _this$props.status, statusMessage = _this$props.statusMessage, className = _this$props.className, value = _this$props.value; var rejectedProps = ['prefix', 'className', 'statusMessage', 'roundInput', 'noLeftBorderRadius', 'noRightBorderRadius']; var wsrInputProps = (0, _omit["default"])(rejectedProps, this.props); var hasValue = Boolean(value && value.length || this.wsrInput && this.wsrInput.input && !!this.wsrInput.input.value); var renderStatusLine = function renderStatusLine() { return !disabled && status && statusMessage && /*#__PURE__*/_react["default"].createElement(_Text["default"], { dataHook: _dataHooks["default"].statusMessage, className: _NoBorderInputSt.classes.statusMessage, size: "tiny", weight: "thin", skin: "error" }, statusMessage); }; return /*#__PURE__*/_react["default"].createElement(_context.FontUpgradeContext.Consumer, null, function (_ref) { var isMadefor = _ref.active; return /*#__PURE__*/_react["default"].createElement("div", { className: (0, _NoBorderInputSt.st)(_NoBorderInputSt.classes.root, { isMadefor: isMadefor, size: size, focus: _this2.state.focus, hasValue: hasValue, noLabel: !label, status: status, disabled: disabled }, className), "data-hook": dataHook, "data-status": status }, /*#__PURE__*/_react["default"].createElement(_Text["default"], { tagName: "label", dataHook: _dataHooks["default"].label, className: _NoBorderInputSt.classes.label, htmlFor: id, size: "medium", weight: isMadefor ? 'thin' : 'normal', light: true, secondary: true, ellipsis: true, showTooltip: false, skin: disabled ? 'disabled' : 'standard' }, label), /*#__PURE__*/_react["default"].createElement(_Input["default"], (0, _extends2["default"])({}, wsrInputProps, { ref: function ref(wsrInput) { return _this2.wsrInput = wsrInput; }, onFocus: function onFocus(e) { _this2.setState({ focus: true }); if (typeof _onFocus === 'function') { _onFocus(e); } }, onBlur: function onBlur(e) { _this2.setState({ focus: false }); if (typeof _onBlur === 'function') { _onBlur(e); } } })), /*#__PURE__*/_react["default"].createElement("div", { className: _NoBorderInputSt.classes.border }), renderStatusLine()); }); } }]); return NoBorderInput; }(_react["default"].Component); (0, _defineProperty2["default"])(NoBorderInput, "StatusError", _Input["default"].StatusError); NoBorderInput.displayName = 'NoBorderInput'; NoBorderInput.defaultProps = { autoSelect: true, size: 'medium', statusMessage: '', textOverflow: 'clip', maxLength: 524288 }; NoBorderInput.propTypes = _objectSpread(_objectSpread({ /** The label displayed above the input when focused and as the input text when there is none */ label: _propTypes["default"].string }, _Input["default"].propTypes), {}, { /** Input status - use to display an status indication for the user. for example: 'error' */ status: _propTypes["default"].oneOf([NoBorderInput.StatusError]) }); var _default = NoBorderInput; exports["default"] = _default;