@bootstrap-styled/ra-ui
Version:
UI components for react-admin
226 lines (203 loc) • 9.65 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.List = exports.ListView = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _raCore = require("ra-core");
var _Title = _interopRequireDefault(require("../layout/Title"));
var _ListToolbar = _interopRequireDefault(require("./ListToolbar"));
var _Pagination = _interopRequireDefault(require("./Pagination"));
var _BulkDeleteButton = _interopRequireDefault(require("../button/BulkDeleteButton"));
var _BulkActionsToolbar = _interopRequireDefault(require("./BulkActionsToolbar"));
var _ListActions = _interopRequireDefault(require("./ListActions"));
var _CardContent = _interopRequireDefault(require("../layout/CardContent"));
var DefaultBulkActionButtons = function DefaultBulkActionButtons(props) {
return _react.default.createElement(_BulkDeleteButton.default, props);
};
var sanitizeRestProps = function sanitizeRestProps(_ref) {
var actions = _ref.actions,
basePath = _ref.basePath,
bulkActions = _ref.bulkActions,
changeListParams = _ref.changeListParams,
children = _ref.children,
className = _ref.className,
crudGetList = _ref.crudGetList,
currentSort = _ref.currentSort,
data = _ref.data,
defaultTitle = _ref.defaultTitle,
displayedFilters = _ref.displayedFilters,
exporter = _ref.exporter,
filter = _ref.filter,
filterDefaultValues = _ref.filterDefaultValues,
filters = _ref.filters,
filterValues = _ref.filterValues,
hasCreate = _ref.hasCreate,
hasEdit = _ref.hasEdit,
hasList = _ref.hasList,
hasShow = _ref.hasShow,
hideFilter = _ref.hideFilter,
history = _ref.history,
ids = _ref.ids,
isLoading = _ref.isLoading,
loadedOnce = _ref.loadedOnce,
locale = _ref.locale,
location = _ref.location,
match = _ref.match,
onSelect = _ref.onSelect,
onToggleItem = _ref.onToggleItem,
onUnselectItems = _ref.onUnselectItems,
options = _ref.options,
page = _ref.page,
pagination = _ref.pagination,
params = _ref.params,
permissions = _ref.permissions,
perPage = _ref.perPage,
push = _ref.push,
query = _ref.query,
refresh = _ref.refresh,
resource = _ref.resource,
selectedIds = _ref.selectedIds,
setFilters = _ref.setFilters,
setPage = _ref.setPage,
setPerPage = _ref.setPerPage,
setSelectedIds = _ref.setSelectedIds,
setSort = _ref.setSort,
showFilter = _ref.showFilter,
sort = _ref.sort,
theme = _ref.theme,
title = _ref.title,
toggleItem = _ref.toggleItem,
total = _ref.total,
translate = _ref.translate,
version = _ref.version,
rest = (0, _objectWithoutProperties2.default)(_ref, ["actions", "basePath", "bulkActions", "changeListParams", "children", "className", "crudGetList", "currentSort", "data", "defaultTitle", "displayedFilters", "exporter", "filter", "filterDefaultValues", "filters", "filterValues", "hasCreate", "hasEdit", "hasList", "hasShow", "hideFilter", "history", "ids", "isLoading", "loadedOnce", "locale", "location", "match", "onSelect", "onToggleItem", "onUnselectItems", "options", "page", "pagination", "params", "permissions", "perPage", "push", "query", "refresh", "resource", "selectedIds", "setFilters", "setPage", "setPerPage", "setSelectedIds", "setSort", "showFilter", "sort", "theme", "title", "toggleItem", "total", "translate", "version"]);
return rest;
};
var ListView = function ListView(_ref2) {
var actions = _ref2.actions,
aside = _ref2.aside,
filter = _ref2.filter,
filters = _ref2.filters,
bulkActions = _ref2.bulkActions,
bulkActionButtons = _ref2.bulkActionButtons,
pagination = _ref2.pagination,
children = _ref2.children,
className = _ref2.className,
exporter = _ref2.exporter,
title = _ref2.title,
rest = (0, _objectWithoutProperties2.default)(_ref2, ["actions", "aside", "filter", "filters", "bulkActions", "bulkActionButtons", "pagination", "children", "className", "exporter", "title"]);
var defaultTitle = rest.defaultTitle,
version = rest.version;
var controllerProps = (0, _raCore.getListControllerProps)(rest);
return _react.default.createElement("div", (0, _extends2.default)({
className: (0, _classnames.default)('list-page d-flex', className)
}, sanitizeRestProps(rest)), _react.default.createElement(_Title.default, {
title: title,
defaultTitle: defaultTitle
}), _react.default.createElement(_CardContent.default, null, bulkActions !== false && bulkActionButtons !== false && bulkActionButtons && !bulkActions && _react.default.createElement(_BulkActionsToolbar.default, controllerProps, bulkActionButtons), (filters || actions) && _react.default.createElement(_ListToolbar.default, (0, _extends2.default)({
filters: filters
}, controllerProps, {
actions: actions,
bulkActions: bulkActions,
exporter: exporter
})), _react.default.createElement("div", {
key: version
}, children && (0, _react.cloneElement)(_react.Children.only(children), (0, _objectSpread2.default)({}, controllerProps, {
hasBulkActions: bulkActions !== false && bulkActionButtons !== false
})), pagination && (0, _react.cloneElement)(pagination, controllerProps))), aside && (0, _react.cloneElement)(aside, controllerProps));
};
exports.ListView = ListView;
ListView.propTypes = {
actions: _propTypes.default.element,
aside: _propTypes.default.node,
basePath: _propTypes.default.string,
bulkActions: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.element]),
bulkActionButtons: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.element]),
children: _propTypes.default.element,
className: _propTypes.default.string,
currentSort: _propTypes.default.shape({
field: _propTypes.default.string,
order: _propTypes.default.string
}),
data: _propTypes.default.object,
defaultTitle: _propTypes.default.string,
displayedFilters: _propTypes.default.object,
exporter: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.bool]),
filterDefaultValues: _propTypes.default.object,
filters: _propTypes.default.element,
filterValues: _propTypes.default.object,
hasCreate: _propTypes.default.bool,
hideFilter: _propTypes.default.func,
ids: _propTypes.default.array,
isLoading: _propTypes.default.bool,
onSelect: _propTypes.default.func,
onToggleItem: _propTypes.default.func,
onUnselectItems: _propTypes.default.func,
page: _propTypes.default.number,
pagination: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.element]),
perPage: _propTypes.default.number,
refresh: _propTypes.default.func,
resource: _propTypes.default.string,
selectedIds: _propTypes.default.array,
setFilters: _propTypes.default.func,
setPage: _propTypes.default.func,
setPerPage: _propTypes.default.func,
setSort: _propTypes.default.func,
showFilter: _propTypes.default.func,
title: _propTypes.default.any,
total: _propTypes.default.number,
translate: _propTypes.default.func,
version: _propTypes.default.number
};
ListView.defaultProps = {
actions: _react.default.createElement(_ListActions.default, null),
bulkActionButtons: _react.default.createElement(DefaultBulkActionButtons, null),
pagination: _react.default.createElement(_Pagination.default, null)
};
var List = function List(props) {
return _react.default.createElement(_raCore.ListController, props, function (controllerProps) {
return _react.default.createElement(ListView, (0, _extends2.default)({}, props, controllerProps));
});
};
exports.List = List;
List.propTypes = {
actions: _propTypes.default.element,
aside: _propTypes.default.node,
bulkActions: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.bool]),
bulkActionButtons: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.bool]),
children: _propTypes.default.node,
className: _propTypes.default.string,
filter: _propTypes.default.object,
filterDefaultValues: _propTypes.default.object,
filters: _propTypes.default.element,
pagination: _propTypes.default.element,
perPage: _propTypes.default.number.isRequired,
sort: _propTypes.default.shape({
field: _propTypes.default.string,
order: _propTypes.default.string
}),
title: _propTypes.default.any,
authProvider: _propTypes.default.func,
hasCreate: _propTypes.default.bool.isRequired,
hasEdit: _propTypes.default.bool.isRequired,
hasList: _propTypes.default.bool.isRequired,
hasShow: _propTypes.default.bool.isRequired,
location: _propTypes.default.object.isRequired,
match: _propTypes.default.object.isRequired,
path: _propTypes.default.string,
resource: _propTypes.default.string.isRequired
};
List.defaultProps = {
filter: {},
perPage: 10
};
var _default = List;
exports.default = _default;