UNPKG

@bootstrap-styled/ra-ui

Version:
202 lines (180 loc) 7.29 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.ReferenceArrayInput = exports.ReferenceArrayInputView = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); 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 _compose = _interopRequireDefault(require("recompose/compose")); var _raCore = require("ra-core"); var _LinearProgress = _interopRequireDefault(require("../layout/LinearProgress")); var _Labeled = _interopRequireDefault(require("./Labeled")); var _ReferenceError = _interopRequireDefault(require("./ReferenceError")); var sanitizeRestProps = function sanitizeRestProps(_ref) { var alwaysOn = _ref.alwaysOn, basePath = _ref.basePath, component = _ref.component, crudGetMany = _ref.crudGetMany, crudGetMatching = _ref.crudGetMatching, defaultValue = _ref.defaultValue, filterToQuery = _ref.filterToQuery, formClassName = _ref.formClassName, initializeForm = _ref.initializeForm, input = _ref.input, isRequired = _ref.isRequired, label = _ref.label, locale = _ref.locale, meta = _ref.meta, optionText = _ref.optionText, optionValue = _ref.optionValue, perPage = _ref.perPage, record = _ref.record, referenceSource = _ref.referenceSource, resource = _ref.resource, allowEmpty = _ref.allowEmpty, source = _ref.source, textAlign = _ref.textAlign, translate = _ref.translate, translateChoice = _ref.translateChoice, rest = (0, _objectWithoutProperties2.default)(_ref, ["alwaysOn", "basePath", "component", "crudGetMany", "crudGetMatching", "defaultValue", "filterToQuery", "formClassName", "initializeForm", "input", "isRequired", "label", "locale", "meta", "optionText", "optionValue", "perPage", "record", "referenceSource", "resource", "allowEmpty", "source", "textAlign", "translate", "translateChoice"]); return rest; }; var ReferenceArrayInputView = function ReferenceArrayInputView(_ref2) { var allowEmpty = _ref2.allowEmpty, basePath = _ref2.basePath, children = _ref2.children, choices = _ref2.choices, className = _ref2.className, error = _ref2.error, input = _ref2.input, isLoading = _ref2.isLoading, isRequired = _ref2.isRequired, label = _ref2.label, meta = _ref2.meta, onChange = _ref2.onChange, options = _ref2.options, resource = _ref2.resource, setFilter = _ref2.setFilter, setPagination = _ref2.setPagination, setSort = _ref2.setSort, source = _ref2.source, translate = _ref2.translate, warning = _ref2.warning, rest = (0, _objectWithoutProperties2.default)(_ref2, ["allowEmpty", "basePath", "children", "choices", "className", "error", "input", "isLoading", "isRequired", "label", "meta", "onChange", "options", "resource", "setFilter", "setPagination", "setSort", "source", "translate", "warning"]); var translatedLabel = translate(label || "resources.".concat(resource, ".fields.").concat(source), { _: label }); if (isLoading) { return _react.default.createElement(_Labeled.default, { label: translatedLabel, source: source, resource: resource, className: className, isRequired: isRequired }, _react.default.createElement(_LinearProgress.default, null)); } if (error) { return _react.default.createElement(_ReferenceError.default, { label: translatedLabel, error: error }); } return _react.default.cloneElement(children, (0, _objectSpread2.default)({ allowEmpty: allowEmpty, basePath: basePath, choices: choices, className: className, error: error, input: input, isRequired: isRequired, label: translatedLabel, meta: (0, _objectSpread2.default)({}, meta, { helperText: warning || false }), onChange: onChange, options: options, resource: resource, setFilter: setFilter, setPagination: setPagination, setSort: setSort, source: source, translateChoice: false, limitChoicesToValue: true }, sanitizeRestProps(rest))); }; exports.ReferenceArrayInputView = ReferenceArrayInputView; ReferenceArrayInputView.propTypes = { allowEmpty: _propTypes.default.bool, basePath: _propTypes.default.string, children: _propTypes.default.element, choices: _propTypes.default.array, className: _propTypes.default.string, error: _propTypes.default.string, isLoading: _propTypes.default.bool, input: _propTypes.default.object.isRequired, label: _propTypes.default.string, meta: _propTypes.default.object, onChange: _propTypes.default.func, options: _propTypes.default.object, resource: _propTypes.default.string.isRequired, setFilter: _propTypes.default.func, setPagination: _propTypes.default.func, setSort: _propTypes.default.func, source: _propTypes.default.string, translate: _propTypes.default.func.isRequired, warning: _propTypes.default.string }; var ReferenceArrayInput = function ReferenceArrayInput(_ref3) { var children = _ref3.children, props = (0, _objectWithoutProperties2.default)(_ref3, ["children"]); if (_react.default.Children.count(children) !== 1) { throw new Error('<ReferenceArrayInput> only accepts a single child (like <Datagrid>)'); } return _react.default.createElement(_raCore.ReferenceArrayInputController, props, function (controllerProps) { return _react.default.createElement(ReferenceArrayInputView, (0, _extends2.default)({}, props, (0, _objectSpread2.default)({ children: children }, controllerProps))); }); }; exports.ReferenceArrayInput = ReferenceArrayInput; ReferenceArrayInput.propTypes = { allowEmpty: _propTypes.default.bool.isRequired, basePath: _propTypes.default.string, children: _propTypes.default.element.isRequired, className: _propTypes.default.string, filter: _propTypes.default.object, filterToQuery: _propTypes.default.func.isRequired, input: _propTypes.default.object.isRequired, label: _propTypes.default.string, meta: _propTypes.default.object, perPage: _propTypes.default.number, reference: _propTypes.default.string.isRequired, resource: _propTypes.default.string.isRequired, sort: _propTypes.default.shape({ field: _propTypes.default.string, order: _propTypes.default.oneOf(['ASC', 'DESC']) }), source: _propTypes.default.string, translate: _propTypes.default.func.isRequired }; ReferenceArrayInput.defaultProps = { allowEmpty: false, filter: {}, filterToQuery: function filterToQuery(searchText) { return { q: searchText }; }, perPage: 25, sort: { field: 'id', order: 'DESC' } }; var EnhancedReferenceArrayInput = (0, _compose.default)(_raCore.addField, _raCore.translate)(ReferenceArrayInput); var _default = EnhancedReferenceArrayInput; exports.default = _default;