UNPKG

@bootstrap-styled/ra-ui

Version:
88 lines (72 loc) 3.28 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.Labeled = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _Label = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Label")); var _FormGroup = _interopRequireDefault(require("@bootstrap-styled/v4/lib/Form/FormGroup")); var _classnames = _interopRequireDefault(require("classnames")); var _raCore = require("ra-core"); var LabeledContainer = _styledComponents.default.div.withConfig({ displayName: "Labeled__LabeledContainer", componentId: "tlsj8s-0" })(["padding:1rem 0 1rem,border:0,background:none,margin:0,display:block,width:100%,"]); var Labeled = function Labeled(_ref) { var children = _ref.children, className = _ref.className, fullWidth = _ref.fullWidth, id = _ref.id, input = _ref.input, isRequired = _ref.isRequired, label = _ref.label, meta = _ref.meta, resource = _ref.resource, source = _ref.source, rest = (0, _objectWithoutProperties2.default)(_ref, ["children", "className", "fullWidth", "id", "input", "isRequired", "label", "meta", "resource", "source"]); if (!label && !source) { throw new Error("Cannot create label for component <".concat(children && children.type && children.type.name, ">: You must set either the label or source props. You can also disable automated label insertion by setting 'addLabel: false' in the component default props")); } var restProps = fullWidth ? (0, _objectSpread2.default)({}, rest, { fullWidth: fullWidth }) : rest; return _react.default.createElement(_FormGroup.default, { className: (0, _classnames.default)(className, { 'w-100': fullWidth }) }, _react.default.createElement(_Label.default, { htmlFor: id }, _react.default.createElement(_raCore.FieldTitle, { label: label, source: source, resource: resource, isRequired: isRequired })), _react.default.createElement(LabeledContainer, null, children && typeof children.type !== 'string' ? _react.default.cloneElement(children, (0, _objectSpread2.default)({ input: input, resource: resource }, restProps)) : children)); }; exports.Labeled = Labeled; Labeled.propTypes = { basePath: _propTypes.default.string, children: _propTypes.default.element, className: _propTypes.default.string, fullWidth: _propTypes.default.bool, id: _propTypes.default.string, input: _propTypes.default.object, isRequired: _propTypes.default.bool, label: _propTypes.default.string, meta: _propTypes.default.object, onChange: _propTypes.default.func, record: _propTypes.default.object, resource: _propTypes.default.string, source: _propTypes.default.string, labelStyle: _propTypes.default.object }; var _default = Labeled; exports.default = _default;