@bootstrap-styled/ra-ui
Version:
UI components for react-admin
88 lines (72 loc) • 3.28 kB
JavaScript
"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;