UNPKG

@bootstrap-styled/ra-ui

Version:
205 lines (183 loc) 7.35 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.ReferenceInput = exports.ReferenceInputView = 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 allowEmpty = _ref.allowEmpty, basePath = _ref.basePath, choices = _ref.choices, className = _ref.className, component = _ref.component, crudGetMatching = _ref.crudGetMatching, crudGetOne = _ref.crudGetOne, defaultValue = _ref.defaultValue, filter = _ref.filter, filterToQuery = _ref.filterToQuery, formClassName = _ref.formClassName, initializeForm = _ref.initializeForm, input = _ref.input, isRequired = _ref.isRequired, label = _ref.label, locale = _ref.locale, meta = _ref.meta, onChange = _ref.onChange, optionValue = _ref.optionValue, optionText = _ref.optionText, perPage = _ref.perPage, record = _ref.record, reference = _ref.reference, referenceSource = _ref.referenceSource, resource = _ref.resource, setFilter = _ref.setFilter, setPagination = _ref.setPagination, setSort = _ref.setSort, sort = _ref.sort, source = _ref.source, textAlign = _ref.textAlign, translate = _ref.translate, translateChoice = _ref.translateChoice, validation = _ref.validation, rest = (0, _objectWithoutProperties2.default)(_ref, ["allowEmpty", "basePath", "choices", "className", "component", "crudGetMatching", "crudGetOne", "defaultValue", "filter", "filterToQuery", "formClassName", "initializeForm", "input", "isRequired", "label", "locale", "meta", "onChange", "optionValue", "optionText", "perPage", "record", "reference", "referenceSource", "resource", "setFilter", "setPagination", "setSort", "sort", "source", "textAlign", "translate", "translateChoice", "validation"]); return rest; }; var ReferenceInputView = function ReferenceInputView(_ref2) { var allowEmpty = _ref2.allowEmpty, basePath = _ref2.basePath, children = _ref2.children, choices = _ref2.choices, className = _ref2.className, error = _ref2.error, input = _ref2.input, isRequired = _ref2.isRequired, isLoading = _ref2.isLoading, label = _ref2.label, meta = _ref2.meta, onChange = _ref2.onChange, 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", "isRequired", "isLoading", "label", "meta", "onChange", "resource", "setFilter", "setPagination", "setSort", "source", "translate", "warning"]); if (isLoading) { return _react.default.createElement(_Labeled.default, { label: label, source: source, resource: resource, className: className, isRequired: isRequired }, _react.default.createElement(_LinearProgress.default, null)); } if (error) { return _react.default.createElement(_ReferenceError.default, { label: label, error: error }); } return _react.default.cloneElement(children, (0, _objectSpread2.default)({ allowEmpty: allowEmpty, className: className, input: input, isRequired: isRequired, label: label, resource: resource, meta: (0, _objectSpread2.default)({}, meta, { helperText: warning || false }), source: source, choices: choices, basePath: basePath, onChange: onChange, setFilter: setFilter, setPagination: setPagination, setSort: setSort, translateChoice: false }, sanitizeRestProps(rest))); }; exports.ReferenceInputView = ReferenceInputView; ReferenceInputView.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, input: _propTypes.default.object.isRequired, isLoading: _propTypes.default.bool, label: _propTypes.default.string, meta: _propTypes.default.object, onChange: _propTypes.default.func, 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 ReferenceInput = function ReferenceInput(_ref3) { var children = _ref3.children, props = (0, _objectWithoutProperties2.default)(_ref3, ["children"]); if (_react.default.Children.count(children) !== 1) { throw new Error('<ReferenceInput> only accepts a single child'); } return _react.default.createElement(_raCore.ReferenceInputController, props, function (controllerProps) { return _react.default.createElement(ReferenceInputView, (0, _extends2.default)({}, props, (0, _objectSpread2.default)({ children: children }, controllerProps))); }); }; exports.ReferenceInput = ReferenceInput; ReferenceInput.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, onChange: _propTypes.default.func, perPage: _propTypes.default.number, record: _propTypes.default.object, 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 }; ReferenceInput.defaultProps = { allowEmpty: false, filter: {}, filterToQuery: function filterToQuery(searchText) { return { q: searchText }; }, perPage: 25, sort: { field: 'id', order: 'DESC' } }; var EnhancedReferenceInput = (0, _compose.default)(_raCore.addField, _raCore.translate)(ReferenceInput); var _default = EnhancedReferenceInput; exports.default = _default;