UNPKG

react-misc-toolbox

Version:

- [ ] diagramexample | optimize creating from blank slate

137 lines (114 loc) 6.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require("babel-runtime/helpers/extends"); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require("babel-runtime/helpers/objectWithoutProperties"); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _taggedTemplateLiteral2 = require("babel-runtime/helpers/taggedTemplateLiteral"); var _taggedTemplateLiteral3 = _interopRequireDefault(_taggedTemplateLiteral2); var _templateObject = (0, _taggedTemplateLiteral3.default)(["\n background: none;\n color: #dadada;\n padding: 0rem 0 0.675rem 0rem;\n display: block;\n width: ", ";\n border: none;\n border-radius: 0;\n border-bottom: 1px solid #dadada;\n :valid {\n color: black;\n }\n :focus {\n outline: none;\n }\n &::placeholder {\n font-family: \"PT Sans\";\n }\n &:focus ~ ", ", &:valid ~ ", " {\n /* top: -15px;\n left: 0px; */\n font-size: 3.75rem;\n color: #224233;\n }\n"], ["\n background: none;\n color: #dadada;\n padding: 0rem 0 0.675rem 0rem;\n display: block;\n width: ", ";\n border: none;\n border-radius: 0;\n border-bottom: 1px solid #dadada;\n :valid {\n color: black;\n }\n :focus {\n outline: none;\n }\n &::placeholder {\n font-family: \"PT Sans\";\n }\n &:focus ~ ", ", &:valid ~ ", " {\n /* top: -15px;\n left: 0px; */\n font-size: 3.75rem;\n color: #224233;\n }\n"]), _templateObject2 = (0, _taggedTemplateLiteral3.default)(["\n margin-top: 0.25rem;\n font-size: 1.25rem;\n width: 25.5rem;\n"], ["\n margin-top: 0.25rem;\n font-size: 1.25rem;\n width: 25.5rem;\n"]), _templateObject3 = (0, _taggedTemplateLiteral3.default)(["\n position: relative;\n display: flex;\n\n :before {\n content: \"\";\n\n height: 1px;\n width: 0rem;\n bottom: 0px;\n position: absolute;\n /* background: #424242; */\n background: #d93025;\n transition: 300ms ease all;\n left: 0%;\n ", ":focus ~ & {\n width: ", ";\n }\n ", ":valid ~ & {\n background: black;\n height: 2px;\n }\n }\n"], ["\n position: relative;\n display: flex;\n\n :before {\n content: \"\";\n\n height: 1px;\n width: 0rem;\n bottom: 0px;\n position: absolute;\n /* background: #424242; */\n background: #d93025;\n transition: 300ms ease all;\n left: 0%;\n ", ":focus ~ & {\n width: ", ";\n }\n ", ":valid ~ & {\n background: black;\n height: 2px;\n }\n }\n"]), _templateObject4 = (0, _taggedTemplateLiteral3.default)([""], [""]), _templateObject5 = (0, _taggedTemplateLiteral3.default)(["\n color: #d93025;\n"], ["\n color: #d93025;\n"]); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _helperFunctions = require("./helperFunctions"); var _styledComponents = require("styled-components"); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _StyledForm = require("./StyledForm"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var INPUT = (0, _styledComponents2.default)("input")(_templateObject, function (_ref) { var width = _ref.width; return width; }, LABEL, LABEL); var SUBLABEL = (0, _styledComponents2.default)("div")(_templateObject2); var BAR = (0, _styledComponents2.default)("div")(_templateObject3, INPUT, function (_ref2) { var width = _ref2.width; return width; }, INPUT); var LABEL = (0, _styledComponents2.default)(_StyledForm.INPUTBOX.LABEL)(_templateObject4); var ASTERISK = (0, _styledComponents2.default)("span")(_templateObject5); var getClassName = function getClassName(className, primary, secondary) { return (0, _helperFunctions.advancedMulti)({ unflattenedBases: ["form", className], suffixes: ["__" + primary, "__" + secondary + "__" + primary] }); }; var InputBox = function InputBox(_ref3) { var externalInputRef = _ref3.externalInputRef, id = _ref3.id, _ref3$border = _ref3.border, border = _ref3$border === undefined ? "1px solid" : _ref3$border, className = _ref3.className, placeholder = _ref3.placeholder, value = _ref3.value, onBlur = _ref3.onBlur, onChange = _ref3.onChange, _ref3$margin = _ref3.margin, margin = _ref3$margin === undefined ? 0 : _ref3$margin, _ref3$width = _ref3.width, width = _ref3$width === undefined ? "100%" : _ref3$width, _ref3$label = _ref3.label, label = _ref3$label === undefined ? null : _ref3$label, _ref3$sublabel = _ref3.sublabel, sublabel = _ref3$sublabel === undefined ? null : _ref3$sublabel, _ref3$required = _ref3.required, required = _ref3$required === undefined ? true : _ref3$required, _ref3$autoFocus = _ref3.autoFocus, autoFocus = _ref3$autoFocus === undefined ? false : _ref3$autoFocus, autocomplete = _ref3.autocomplete, children = _ref3.children, props = (0, _objectWithoutProperties3.default)(_ref3, ["externalInputRef", "id", "border", "className", "placeholder", "value", "onBlur", "onChange", "margin", "width", "label", "sublabel", "required", "autoFocus", "autocomplete", "children"]); var getLocalClassName = function getLocalClassName(primary) { return getClassName(className, primary, "inputbox"); }; var renderAsterisk = function renderAsterisk() { return required && _react2.default.createElement( ASTERISK, null, " *" ); }; var ref = externalInputRef ? externalInputRef : (0, _react.useRef)(null); var renderLabel = function renderLabel() { return label && _react2.default.createElement( LABEL, { className: getLocalClassName("label") }, label, renderAsterisk() ); }; var renderSublabel = function renderSublabel() { return sublabel && _react2.default.createElement( SUBLABEL, { className: getLocalClassName("sublabel") }, sublabel ); }; return _react2.default.createElement( _react.Fragment, null, renderLabel(), _react2.default.createElement(INPUT, (0, _extends3.default)({ ref: ref, id: id, onBlur: onBlur, className: getLocalClassName("input"), width: width, placeholder: placeholder, value: value, onChange: onChange, type: "text", required: required, autoFocus: false, autocomplete: autocomplete }, props)), _react2.default.createElement(BAR, { className: getLocalClassName("bar"), width: width }), renderSublabel(), children ); }; exports.default = _react2.default.memo(InputBox);