UNPKG

react-lightning-design-system

Version:

Salesforce Lightning Design System components built with React

86 lines (84 loc) 4.36 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof3 = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.FormElement = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _FieldSet = require("./FieldSet"); var _common = require("./common"); var _TooltipContent = require("./TooltipContent"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } /** * */ /** * */ var FormElement = exports.FormElement = (0, _common.createFC)(function (props) { var id = props.id, className = props.className, controlId = props.controlId, _props$cols = props.cols, cols = _props$cols === void 0 ? 1 : _props$cols, elementRef = props.elementRef, label = props.label, required = props.required, error = props.error, errorId = props.errorId, dropdown = props.dropdown, children = props.children, readOnly = props.readOnly, tooltip = props.tooltip, tooltipIcon = props.tooltipIcon; var controlElRef = (0, _react.useRef)(null); var _useContext = (0, _react.useContext)(_FieldSet.FieldSetColumnContext), totalCols = _useContext.totalCols; var errorMessage = error ? typeof error === 'string' ? error : (0, _typeof2["default"])(error) === 'object' ? error.message : undefined : undefined; var formElementClassNames = (0, _classnames["default"])('slds-form-element', readOnly ? 'slds-form-element_readonly' : null, error ? 'slds-has-error' : null, typeof totalCols === 'number' ? "slds-size_".concat(cols, "-of-").concat(totalCols) : null, className); var onClickLabel = (0, _react.useCallback)(function () { if (controlElRef.current) { var inputEl = controlElRef.current.querySelector('input,select,button'); inputEl === null || inputEl === void 0 || inputEl.focus(); } }, []); var emptyCtx = (0, _react.useMemo)(function () { return {}; }, []); var LabelTag = readOnly ? 'span' : 'label'; return /*#__PURE__*/_react["default"].createElement(_FieldSet.FieldSetColumnContext.Provider, { value: emptyCtx }, /*#__PURE__*/_react["default"].createElement("div", { ref: elementRef, className: formElementClassNames }, label ? /*#__PURE__*/_react["default"].createElement(LabelTag, (0, _extends2["default"])({ id: id, className: "slds-form-element__label" }, LabelTag === 'label' ? { htmlFor: controlId } : {}, { onClick: id ? undefined : onClickLabel }), required ? /*#__PURE__*/_react["default"].createElement("abbr", { className: "slds-required", title: "required", "aria-hidden": "true" }, "*") : undefined, label) : null, tooltip ? /*#__PURE__*/_react["default"].createElement(_TooltipContent.TooltipContent, { icon: tooltipIcon }, tooltip) : null, /*#__PURE__*/_react["default"].createElement("div", { ref: controlElRef, className: "slds-form-element__control" }, readOnly ? /*#__PURE__*/_react["default"].createElement("div", { className: "slds-form-element__static" }, children) : children, dropdown, errorMessage ? /*#__PURE__*/_react["default"].createElement("span", { className: "slds-form-element__help", id: error ? errorId : undefined }, errorMessage) : undefined))); }, { isFormElement: true }); //# sourceMappingURL=FormElement.js.map