muffin-admin 1.29.0 → 1.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +44 -0
- package/Makefile +7 -0
- package/dist/admin.js +82 -0
- package/dist/authprovider.js +250 -0
- package/dist/buttons/ActionButton.js +110 -0
- package/dist/buttons/LinkButton.js +44 -0
- package/dist/dashboard.js +70 -0
- package/dist/dataprovider.js +379 -0
- package/dist/fields/AvatarField.js +46 -0
- package/dist/fields/FKField.js +43 -0
- package/dist/fields/JsonField.js +51 -0
- package/dist/hooks/useAction.js +17 -0
- package/dist/index.js +20 -0
- package/dist/inputs/FKInput.js +53 -0
- package/dist/inputs/JsonInput.js +82 -0
- package/dist/resources.js +57 -0
- package/dist/ui.js +95 -0
- package/dist/utils.js +67 -0
- package/dist/views/create.js +25 -0
- package/dist/views/edit.js +53 -0
- package/dist/views/list.js +83 -0
- package/dist/views/show.js +36 -0
- package/dist/web.js +33 -0
- package/jsconfig.json +9 -0
- package/package.json +20 -8
- package/webpack.config.js +8 -6
- package/admin.jsx +0 -56
- package/authprovider.js +0 -79
- package/buttons/ActionButton.jsx +0 -68
- package/buttons/LinkButton.jsx +0 -21
- package/dashboard.jsx +0 -57
- package/dataprovider.js +0 -81
- package/fields/AvatarField.jsx +0 -25
- package/fields/FKField.jsx +0 -24
- package/index.js +0 -12
- package/inputs/FKInput.jsx +0 -30
- package/resources.jsx +0 -27
- package/ui.jsx +0 -51
- package/utils.js +0 -35
- package/views/create.jsx +0 -26
- package/views/edit.jsx +0 -34
- package/views/list.jsx +0 -56
- package/views/show.jsx +0 -34
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
|
|
13
|
+
var _reactAdmin = require("react-admin");
|
|
14
|
+
|
|
15
|
+
var icons = _interopRequireWildcard(require("@mui/icons-material"));
|
|
16
|
+
|
|
17
|
+
var _utils = require("./utils");
|
|
18
|
+
|
|
19
|
+
require("./views/list");
|
|
20
|
+
|
|
21
|
+
require("./views/show");
|
|
22
|
+
|
|
23
|
+
require("./views/edit");
|
|
24
|
+
|
|
25
|
+
require("./views/create");
|
|
26
|
+
|
|
27
|
+
var _excluded = ["create", "edit", "icon", "list", "name", "show"];
|
|
28
|
+
|
|
29
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
30
|
+
|
|
31
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
32
|
+
|
|
33
|
+
// Initialize Resources Components
|
|
34
|
+
(0, _utils.setupAdmin)('resources', function (resources) {
|
|
35
|
+
return resources.map(function (res) {
|
|
36
|
+
return (0, _utils.processAdmin)('resource', res, res.name);
|
|
37
|
+
});
|
|
38
|
+
}); // Initialize a resource's component
|
|
39
|
+
|
|
40
|
+
(0, _utils.setupAdmin)('resource', (0, _utils.checkParams)(function (props, res) {
|
|
41
|
+
var create = props.create,
|
|
42
|
+
edit = props.edit,
|
|
43
|
+
icon = props.icon,
|
|
44
|
+
list = props.list,
|
|
45
|
+
name = props.name,
|
|
46
|
+
show = props.show,
|
|
47
|
+
resProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
48
|
+
return /*#__PURE__*/_react["default"].createElement(_reactAdmin.Resource, (0, _extends2["default"])({
|
|
49
|
+
key: name,
|
|
50
|
+
name: name,
|
|
51
|
+
icon: icons[icon],
|
|
52
|
+
create: (0, _utils.processAdmin)('create', create, res),
|
|
53
|
+
edit: (0, _utils.processAdmin)('edit', edit, res),
|
|
54
|
+
list: (0, _utils.processAdmin)('list', list, res),
|
|
55
|
+
show: (0, _utils.processAdmin)('show', show, res)
|
|
56
|
+
}, resProps));
|
|
57
|
+
}));
|
package/dist/ui.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireDefault(require("react"));
|
|
15
|
+
|
|
16
|
+
var _reactAdmin = require("react-admin");
|
|
17
|
+
|
|
18
|
+
var _AvatarField = _interopRequireDefault(require("./fields/AvatarField"));
|
|
19
|
+
|
|
20
|
+
var _FKField = _interopRequireDefault(require("./fields/FKField"));
|
|
21
|
+
|
|
22
|
+
var _FKInput = _interopRequireDefault(require("./inputs/FKInput"));
|
|
23
|
+
|
|
24
|
+
var _JsonField = _interopRequireDefault(require("./fields/JsonField"));
|
|
25
|
+
|
|
26
|
+
var _JsonInput = _interopRequireDefault(require("./inputs/JsonInput"));
|
|
27
|
+
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
|
+
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
|
+
|
|
32
|
+
var ui = {
|
|
33
|
+
// Fields
|
|
34
|
+
BooleanField: _reactAdmin.BooleanField,
|
|
35
|
+
ChipField: _reactAdmin.ChipField,
|
|
36
|
+
DateField: _reactAdmin.DateField,
|
|
37
|
+
EmailField: _reactAdmin.EmailField,
|
|
38
|
+
ImageField: _reactAdmin.ImageField,
|
|
39
|
+
FileField: _reactAdmin.FileField,
|
|
40
|
+
NumberField: _reactAdmin.NumberField,
|
|
41
|
+
RichTextField: _reactAdmin.RichTextField,
|
|
42
|
+
TextField: _reactAdmin.TextField,
|
|
43
|
+
UrlField: _reactAdmin.UrlField,
|
|
44
|
+
SelectField: _reactAdmin.SelectField,
|
|
45
|
+
ArrayField: _reactAdmin.ArrayField,
|
|
46
|
+
ReferenceField: _reactAdmin.ReferenceField,
|
|
47
|
+
ReferenceManyField: _reactAdmin.ReferenceManyField,
|
|
48
|
+
ReferenceArrayField: _reactAdmin.ReferenceArrayField,
|
|
49
|
+
AvatarField: _AvatarField["default"],
|
|
50
|
+
JsonField: _JsonField["default"],
|
|
51
|
+
FKField: _FKField["default"],
|
|
52
|
+
// Inputs
|
|
53
|
+
BooleanInput: _reactAdmin.BooleanInput,
|
|
54
|
+
NullableBooleanInput: _reactAdmin.NullableBooleanInput,
|
|
55
|
+
DateInput: _reactAdmin.DateInput,
|
|
56
|
+
DateTimeInput: _reactAdmin.DateTimeInput,
|
|
57
|
+
ImageInput: _reactAdmin.ImageInput,
|
|
58
|
+
FileInput: _reactAdmin.FileInput,
|
|
59
|
+
NumberInput: _reactAdmin.NumberInput,
|
|
60
|
+
PasswordInput: _reactAdmin.PasswordInput,
|
|
61
|
+
TextInput: _reactAdmin.TextInput,
|
|
62
|
+
AutocompleteInput: _reactAdmin.AutocompleteInput,
|
|
63
|
+
RadioButtonGroupInput: _reactAdmin.RadioButtonGroupInput,
|
|
64
|
+
SelectInput: _reactAdmin.SelectInput,
|
|
65
|
+
ArrayInput: _reactAdmin.ArrayInput,
|
|
66
|
+
AutocompleteArrayInput: _reactAdmin.AutocompleteArrayInput,
|
|
67
|
+
CheckboxGroupInput: _reactAdmin.CheckboxGroupInput,
|
|
68
|
+
ReferenceArrayInput: _reactAdmin.ReferenceArrayInput,
|
|
69
|
+
ReferenceInput: _reactAdmin.ReferenceInput,
|
|
70
|
+
JsonInput: _JsonInput["default"],
|
|
71
|
+
FKInput: _FKInput["default"]
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
var initRAItems = function initRAItems(itemsProps) {
|
|
75
|
+
return itemsProps.map(function (item) {
|
|
76
|
+
var _props$fullWidth;
|
|
77
|
+
|
|
78
|
+
var Item = ui[item[0]],
|
|
79
|
+
props = _objectSpread({}, item[1]);
|
|
80
|
+
|
|
81
|
+
if (props.required) {
|
|
82
|
+
props.validate = (0, _reactAdmin.required)();
|
|
83
|
+
delete props.required;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
props.fullWidth = (_props$fullWidth = props.fullWidth) !== null && _props$fullWidth !== void 0 ? _props$fullWidth : true;
|
|
87
|
+
if (props.children) props.children = initRAItems(props.children)[0];
|
|
88
|
+
return /*#__PURE__*/_react["default"].createElement(Item, (0, _extends2["default"])({
|
|
89
|
+
key: props.source
|
|
90
|
+
}, props));
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
var _default = initRAItems;
|
|
95
|
+
exports["default"] = _default;
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.setupAdmin = exports.requestHeaders = exports.processAdmin = exports.makeRequest = exports.checkParams = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
|
|
16
|
+
var _raCore = require("ra-core");
|
|
17
|
+
|
|
18
|
+
var _queryString = require("query-string");
|
|
19
|
+
|
|
20
|
+
var _excluded = ["data", "query"];
|
|
21
|
+
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
+
|
|
24
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
25
|
+
|
|
26
|
+
var parts = {};
|
|
27
|
+
|
|
28
|
+
var setupAdmin = function setupAdmin(part, gen) {
|
|
29
|
+
return parts[part] = gen;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.setupAdmin = setupAdmin;
|
|
33
|
+
|
|
34
|
+
var checkParams = function checkParams(fn) {
|
|
35
|
+
return function (props, res) {
|
|
36
|
+
if (!props || /*#__PURE__*/(0, _react.isValidElement)(props)) return props;
|
|
37
|
+
return fn(props, res);
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
exports.checkParams = checkParams;
|
|
42
|
+
|
|
43
|
+
var processAdmin = function processAdmin(type, props, res) {
|
|
44
|
+
if (process.env.NODE_ENV == 'development') console.log("".concat(type).concat(res ? '-' + res : ''), props);
|
|
45
|
+
if (parts["".concat(type, "-").concat(res)]) return parts["".concat(type, "-").concat(res)](props, res);
|
|
46
|
+
if (parts[type]) return parts[type](props, res);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
exports.processAdmin = processAdmin;
|
|
50
|
+
var requestHeaders = {};
|
|
51
|
+
exports.requestHeaders = requestHeaders;
|
|
52
|
+
|
|
53
|
+
var makeRequest = function makeRequest(url, params) {
|
|
54
|
+
var _ref = params || {},
|
|
55
|
+
data = _ref.data,
|
|
56
|
+
query = _ref.query,
|
|
57
|
+
opts = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
58
|
+
|
|
59
|
+
if (data) opts.body = JSON.stringify(data);
|
|
60
|
+
if (query) url = "".concat(url, "?").concat((0, _queryString.stringify)(query));
|
|
61
|
+
opts = _objectSpread(_objectSpread({}, opts), {}, {
|
|
62
|
+
headers: new Headers(_objectSpread(_objectSpread({}, requestHeaders), opts.headers))
|
|
63
|
+
});
|
|
64
|
+
return _raCore.fetchUtils.fetchJson(url, opts);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
exports.makeRequest = makeRequest;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
6
|
+
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
|
|
9
|
+
var _reactAdmin = require("react-admin");
|
|
10
|
+
|
|
11
|
+
var _ui = _interopRequireDefault(require("../ui"));
|
|
12
|
+
|
|
13
|
+
var _utils = require("../utils");
|
|
14
|
+
|
|
15
|
+
// Initialize a create component
|
|
16
|
+
(0, _utils.setupAdmin)('create', (0, _utils.checkParams)(function (inputs, res) {
|
|
17
|
+
return function MACreate(props) {
|
|
18
|
+
var Actions = /*#__PURE__*/_react["default"].createElement(_reactAdmin.TopToolbar, null, /*#__PURE__*/_react["default"].createElement(_reactAdmin.ListButton, null));
|
|
19
|
+
|
|
20
|
+
return /*#__PURE__*/_react["default"].createElement(_reactAdmin.Create, (0, _extends2["default"])({
|
|
21
|
+
actions: Actions
|
|
22
|
+
}, props), /*#__PURE__*/_react["default"].createElement(_reactAdmin.SimpleForm, null, (0, _utils.processAdmin)('create-inputs', inputs, res)));
|
|
23
|
+
};
|
|
24
|
+
}));
|
|
25
|
+
(0, _utils.setupAdmin)('create-inputs', _ui["default"]);
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
6
|
+
|
|
7
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
+
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
|
|
13
|
+
var _reactAdmin = require("react-admin");
|
|
14
|
+
|
|
15
|
+
var _ui = _interopRequireDefault(require("../ui"));
|
|
16
|
+
|
|
17
|
+
var _utils = require("../utils");
|
|
18
|
+
|
|
19
|
+
var _ActionButton = require("../buttons/ActionButton");
|
|
20
|
+
|
|
21
|
+
var _excluded = ["basePath", "resource"];
|
|
22
|
+
|
|
23
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
24
|
+
|
|
25
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
26
|
+
|
|
27
|
+
// Initialize an edit component
|
|
28
|
+
(0, _utils.setupAdmin)('edit', (0, _utils.checkParams)(function (_ref, res) {
|
|
29
|
+
var actions = _ref.actions,
|
|
30
|
+
inputs = _ref.inputs;
|
|
31
|
+
return function MAEdit(props) {
|
|
32
|
+
var Actions = function Actions(_ref2) {
|
|
33
|
+
var basePath = _ref2.basePath,
|
|
34
|
+
resource = _ref2.resource,
|
|
35
|
+
baseProps = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
|
|
36
|
+
return /*#__PURE__*/_react["default"].createElement(_reactAdmin.TopToolbar, null, actions.map(function (props, idx) {
|
|
37
|
+
var aProps = _objectSpread(_objectSpread({
|
|
38
|
+
resource: resource,
|
|
39
|
+
basePath: basePath
|
|
40
|
+
}, baseProps), props);
|
|
41
|
+
|
|
42
|
+
return /*#__PURE__*/_react["default"].createElement(_ActionButton.ActionButton, (0, _extends2["default"])({
|
|
43
|
+
key: idx
|
|
44
|
+
}, aProps));
|
|
45
|
+
}), /*#__PURE__*/_react["default"].createElement(_reactAdmin.ListButton, null), /*#__PURE__*/_react["default"].createElement(_reactAdmin.ShowButton, null));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
return /*#__PURE__*/_react["default"].createElement(_reactAdmin.Edit, (0, _extends2["default"])({
|
|
49
|
+
actions: /*#__PURE__*/_react["default"].createElement(Actions, null)
|
|
50
|
+
}, props), /*#__PURE__*/_react["default"].createElement(_reactAdmin.SimpleForm, null, (0, _utils.processAdmin)('edit-inputs', inputs, res)));
|
|
51
|
+
};
|
|
52
|
+
}));
|
|
53
|
+
(0, _utils.setupAdmin)('edit-inputs', _ui["default"]);
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
6
|
+
|
|
7
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
|
+
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
|
|
13
|
+
var _reactAdmin = require("react-admin");
|
|
14
|
+
|
|
15
|
+
var _uniq = _interopRequireDefault(require("lodash/uniq"));
|
|
16
|
+
|
|
17
|
+
var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
|
|
18
|
+
|
|
19
|
+
var _ui = _interopRequireDefault(require("../ui"));
|
|
20
|
+
|
|
21
|
+
var _utils = require("../utils");
|
|
22
|
+
|
|
23
|
+
var _ActionButton = require("../buttons/ActionButton");
|
|
24
|
+
|
|
25
|
+
var _excluded = ["children", "filters", "edit", "pagination", "show", "limit", "limitMax", "actions"];
|
|
26
|
+
|
|
27
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
28
|
+
|
|
29
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
30
|
+
|
|
31
|
+
var defaultPagination = /*#__PURE__*/_react["default"].createElement(_reactAdmin.Pagination, {
|
|
32
|
+
rowsPerPageOptions: [10, 25, 50, 100]
|
|
33
|
+
}); // Initiliaze a list component
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
(0, _utils.setupAdmin)('list', (0, _utils.checkParams)(function (props, res) {
|
|
37
|
+
var children = props.children,
|
|
38
|
+
filters = props.filters,
|
|
39
|
+
edit = props.edit,
|
|
40
|
+
pagination = props.pagination,
|
|
41
|
+
show = props.show,
|
|
42
|
+
limit = props.limit,
|
|
43
|
+
limitMax = props.limitMax,
|
|
44
|
+
actions = props.actions,
|
|
45
|
+
listProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
46
|
+
children = (0, _utils.processAdmin)('list-fields', children, res);
|
|
47
|
+
if (edit) children.push( /*#__PURE__*/_react["default"].createElement(_reactAdmin.EditButton, {
|
|
48
|
+
key: "edit-button"
|
|
49
|
+
}));
|
|
50
|
+
pagination = pagination || /*#__PURE__*/_react["default"].createElement(_reactAdmin.Pagination, {
|
|
51
|
+
rowsPerPageOptions: (0, _sortBy["default"])((0, _uniq["default"])([10, 25, 50, 100, limit, limitMax]))
|
|
52
|
+
});
|
|
53
|
+
return function MAList(props) {
|
|
54
|
+
var Filters = function Filters(props) {
|
|
55
|
+
return /*#__PURE__*/_react["default"].createElement(_reactAdmin.Filter, props, (0, _utils.processAdmin)('list-filters', filters, res));
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
var Actions = (0, _utils.processAdmin)('list-bulkActions', actions);
|
|
59
|
+
props = _objectSpread(_objectSpread({}, props), listProps);
|
|
60
|
+
return /*#__PURE__*/_react["default"].createElement(_reactAdmin.List, (0, _extends2["default"])({
|
|
61
|
+
filters: /*#__PURE__*/_react["default"].createElement(Filters, null),
|
|
62
|
+
bulkActionButtons: /*#__PURE__*/_react["default"].createElement(Actions, null),
|
|
63
|
+
perPage: limit,
|
|
64
|
+
pagination: pagination || defaultPagination
|
|
65
|
+
}, props), /*#__PURE__*/_react["default"].createElement(_reactAdmin.Datagrid, {
|
|
66
|
+
rowClick: show ? 'show' : null
|
|
67
|
+
}, children));
|
|
68
|
+
};
|
|
69
|
+
}));
|
|
70
|
+
(0, _utils.setupAdmin)('list-bulkActions', function (actions) {
|
|
71
|
+
return function MABulkActions(props) {
|
|
72
|
+
var buttons = actions.map(function (action, idx) {
|
|
73
|
+
var aProps = _objectSpread(_objectSpread({}, action), props);
|
|
74
|
+
|
|
75
|
+
return /*#__PURE__*/_react["default"].createElement(_ActionButton.BulkActionButton, (0, _extends2["default"])({
|
|
76
|
+
key: idx
|
|
77
|
+
}, aProps));
|
|
78
|
+
});
|
|
79
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, buttons, /*#__PURE__*/_react["default"].createElement(_reactAdmin.BulkDeleteButton, props));
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
(0, _utils.setupAdmin)('list-filters', _ui["default"]);
|
|
83
|
+
(0, _utils.setupAdmin)('list-fields', _ui["default"]);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
6
|
+
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
|
|
9
|
+
var _reactAdmin = require("react-admin");
|
|
10
|
+
|
|
11
|
+
var _ui = _interopRequireDefault(require("../ui"));
|
|
12
|
+
|
|
13
|
+
var _utils = require("../utils");
|
|
14
|
+
|
|
15
|
+
var _ActionButton = require("../buttons/ActionButton");
|
|
16
|
+
|
|
17
|
+
// Initiliaze a show component
|
|
18
|
+
(0, _utils.setupAdmin)('show', (0, _utils.checkParams)(function (_ref, resource) {
|
|
19
|
+
var actions = _ref.actions,
|
|
20
|
+
fields = _ref.fields;
|
|
21
|
+
return function MAShow(props) {
|
|
22
|
+
var Actions = function Actions() {
|
|
23
|
+
return /*#__PURE__*/_react["default"].createElement(_reactAdmin.TopToolbar, null, actions.map(function (props, idx) {
|
|
24
|
+
return /*#__PURE__*/_react["default"].createElement(_ActionButton.ActionButton, (0, _extends2["default"])({
|
|
25
|
+
key: idx,
|
|
26
|
+
resource: resource
|
|
27
|
+
}, props));
|
|
28
|
+
}), /*#__PURE__*/_react["default"].createElement(_reactAdmin.ListButton, null), /*#__PURE__*/_react["default"].createElement(_reactAdmin.EditButton, null));
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return /*#__PURE__*/_react["default"].createElement(_reactAdmin.Show, (0, _extends2["default"])({
|
|
32
|
+
actions: /*#__PURE__*/_react["default"].createElement(Actions, null)
|
|
33
|
+
}, props), /*#__PURE__*/_react["default"].createElement(_reactAdmin.SimpleShowLayout, null, (0, _utils.processAdmin)('show-fields', fields, resource)));
|
|
34
|
+
};
|
|
35
|
+
}));
|
|
36
|
+
(0, _utils.setupAdmin)('show-fields', _ui["default"]);
|
package/dist/web.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
Object.defineProperty(exports, "processAdmin", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _utils.processAdmin;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "setupAdmin", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function get() {
|
|
16
|
+
return _utils.setupAdmin;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
var _client = require("react-dom/client");
|
|
21
|
+
|
|
22
|
+
var _utils = require("./utils");
|
|
23
|
+
|
|
24
|
+
require("./admin");
|
|
25
|
+
|
|
26
|
+
var initAdmin = globalThis.initAdmin = function (props) {
|
|
27
|
+
var container = document.getElementById('root');
|
|
28
|
+
var root = (0, _client.createRoot)(container);
|
|
29
|
+
root.render((0, _utils.processAdmin)('admin', props));
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
var _default = initAdmin;
|
|
33
|
+
exports["default"] = _default;
|
package/jsconfig.json
ADDED
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "muffin-admin",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.31.1",
|
|
4
4
|
"description": "NPM package for https://github.com/klen/muffin-admin",
|
|
5
|
-
"main": "index.js",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
8
|
},
|
|
@@ -17,22 +17,34 @@
|
|
|
17
17
|
},
|
|
18
18
|
"homepage": "https://github.com/klen/muffin-admin#readme",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@material
|
|
21
|
-
"@material
|
|
20
|
+
"@mui/icons-material": "^5.6.2",
|
|
21
|
+
"@mui/material": "^5.6.3",
|
|
22
22
|
"js-cookie": "^3.0.1",
|
|
23
|
-
"react": "
|
|
24
|
-
"react-admin": "
|
|
25
|
-
"react-
|
|
26
|
-
"
|
|
23
|
+
"react": "^18.1.0",
|
|
24
|
+
"react-admin": "^4.0.1",
|
|
25
|
+
"react-dom": "^18.1.0",
|
|
26
|
+
"validator": "^13.7.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
+
"@babel/cli": "^7.17.10",
|
|
29
30
|
"@babel/core": "^7.17.8",
|
|
31
|
+
"@babel/eslint-parser": "^7.17.0",
|
|
30
32
|
"@babel/plugin-transform-runtime": "^7.17.0",
|
|
31
33
|
"@babel/preset-env": "^7.16.11",
|
|
32
34
|
"@babel/preset-react": "^7.16.7",
|
|
33
35
|
"babel-loader": "^8.2.4",
|
|
36
|
+
"eslint-plugin-react": "^7.29.4",
|
|
34
37
|
"webpack": "^5.24.4",
|
|
35
38
|
"webpack-cli": "^4.9.1",
|
|
36
39
|
"webpack-dev-server": "^4.3.1"
|
|
40
|
+
},
|
|
41
|
+
"babel": {
|
|
42
|
+
"presets": [
|
|
43
|
+
"@babel/preset-env",
|
|
44
|
+
"@babel/preset-react"
|
|
45
|
+
],
|
|
46
|
+
"plugins": [
|
|
47
|
+
"@babel/plugin-transform-runtime"
|
|
48
|
+
]
|
|
37
49
|
}
|
|
38
50
|
}
|
package/webpack.config.js
CHANGED
|
@@ -3,7 +3,7 @@ const path = require('path'),
|
|
|
3
3
|
mode = process.env.NODE_ENV
|
|
4
4
|
|
|
5
5
|
module.exports = {
|
|
6
|
-
entry: '
|
|
6
|
+
entry: './src/web',
|
|
7
7
|
|
|
8
8
|
output: {
|
|
9
9
|
filename: 'main.js',
|
|
@@ -14,13 +14,10 @@ module.exports = {
|
|
|
14
14
|
module: {
|
|
15
15
|
rules: [
|
|
16
16
|
{
|
|
17
|
-
test: /\.jsx
|
|
17
|
+
test: /\.jsx?$/,
|
|
18
|
+
exclude: /node_modules/,
|
|
18
19
|
use: {
|
|
19
20
|
loader: 'babel-loader',
|
|
20
|
-
options: {
|
|
21
|
-
presets: ['@babel/preset-env', '@babel/preset-react'],
|
|
22
|
-
plugins: ['@babel/plugin-transform-runtime'],
|
|
23
|
-
},
|
|
24
21
|
},
|
|
25
22
|
},
|
|
26
23
|
],
|
|
@@ -31,8 +28,13 @@ module.exports = {
|
|
|
31
28
|
mode: mode || 'production',
|
|
32
29
|
devtool: mode == 'development' && 'inline-source-map',
|
|
33
30
|
|
|
31
|
+
resolve: {
|
|
32
|
+
extensions: ['.jsx', '.js'],
|
|
33
|
+
},
|
|
34
|
+
|
|
34
35
|
devServer: {
|
|
35
36
|
hot: true,
|
|
37
|
+
open: true,
|
|
36
38
|
proxy: [
|
|
37
39
|
{
|
|
38
40
|
context: ['!*.js'],
|
package/admin.jsx
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import React from "react"
|
|
2
|
-
|
|
3
|
-
import { Admin, AppBar, Layout, Login } from "react-admin"
|
|
4
|
-
import { IconButton, SvgIcon, Tooltip, Typography } from "@material-ui/core"
|
|
5
|
-
import * as icons from "@material-ui/icons"
|
|
6
|
-
|
|
7
|
-
import authProvider from "./authprovider"
|
|
8
|
-
import dataProvider from "./dataprovider"
|
|
9
|
-
import { processAdmin, setupAdmin } from './utils'
|
|
10
|
-
|
|
11
|
-
import './dashboard.jsx';
|
|
12
|
-
import './resources.jsx';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// Initialize the admin
|
|
16
|
-
setupAdmin('admin', props => {
|
|
17
|
-
const { apiUrl, auth, adminProps, appBarLinks, dashboard, resources } = props;
|
|
18
|
-
|
|
19
|
-
let appBar = props => (
|
|
20
|
-
<AppBar {...props}>
|
|
21
|
-
<Typography
|
|
22
|
-
variant="h6"
|
|
23
|
-
color="inherit"
|
|
24
|
-
id="react-admin-title"
|
|
25
|
-
style={{
|
|
26
|
-
flex: 1,
|
|
27
|
-
textOverflow: 'ellipsis',
|
|
28
|
-
whiteSpace: 'nowrap',
|
|
29
|
-
overflow: 'hidden',
|
|
30
|
-
}}
|
|
31
|
-
/>
|
|
32
|
-
{ appBarLinks.map( info => (
|
|
33
|
-
<Tooltip key={ info.url } title={ info.title }>
|
|
34
|
-
<IconButton color="inherit" href={ info.url }>
|
|
35
|
-
<SvgIcon component={ icons[info.icon] }/>
|
|
36
|
-
</IconButton>
|
|
37
|
-
</Tooltip>
|
|
38
|
-
))}
|
|
39
|
-
</AppBar>
|
|
40
|
-
)
|
|
41
|
-
|
|
42
|
-
return <Admin authProvider={ processAdmin('auth', auth) }
|
|
43
|
-
dataProvider={ processAdmin('data', apiUrl) }
|
|
44
|
-
dashboard={ processAdmin('dashboard', dashboard) }
|
|
45
|
-
loginPage={ processAdmin('login', auth) }
|
|
46
|
-
layout={ props => <Layout appBar={appBar} {...props} /> }
|
|
47
|
-
children={ processAdmin('resources', resources) }
|
|
48
|
-
{ ...adminProps } />
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
// Initialize authentication and data providers
|
|
52
|
-
setupAdmin('auth', authProvider);
|
|
53
|
-
setupAdmin('data', dataProvider);
|
|
54
|
-
|
|
55
|
-
// Initialize login page
|
|
56
|
-
setupAdmin('login', (params, res) => (props) => <Login {...props} />);
|