@panneau/app 1.0.0-y.0 → 1.0.3-alpha.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/assets/css/styles.css +5 -7
- package/es/index.js +979 -1000
- package/lib/index.js +1086 -1093
- package/package.json +39 -32
- package/scss/styles.scss +1 -0
package/lib/index.js
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
'use strict';
|
2
2
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
4
|
+
|
5
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
6
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
7
|
+
var PropTypes = require('prop-types');
|
8
|
+
var React = require('react');
|
9
|
+
var reactRouter = require('react-router');
|
10
|
+
var reactRouterDom = require('react-router-dom');
|
11
|
+
var auth = require('@panneau/auth');
|
3
12
|
var core = require('@panneau/core');
|
4
13
|
var contexts = require('@panneau/core/contexts');
|
5
14
|
var data = require('@panneau/data');
|
@@ -9,342 +18,339 @@ var FiltersProvider = require('@panneau/filters');
|
|
9
18
|
var FormsProvider = require('@panneau/forms');
|
10
19
|
var intl = require('@panneau/intl');
|
11
20
|
var ListsProvider = require('@panneau/lists');
|
12
|
-
var PropTypes = require('prop-types');
|
13
|
-
var React = require('react');
|
14
|
-
var reactRouter = require('react-router');
|
15
|
-
var reactRouterDom = require('react-router-dom');
|
16
21
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
17
|
-
var
|
22
|
+
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
23
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
24
|
+
var queryString = require('query-string');
|
25
|
+
var reactIntl = require('react-intl');
|
18
26
|
var hooks = require('@panneau/core/hooks');
|
19
|
-
var
|
27
|
+
var utils = require('@panneau/core/utils');
|
20
28
|
var classNames = require('classnames');
|
29
|
+
var Button = require('@panneau/element-button');
|
30
|
+
var Form = require('@panneau/element-form');
|
21
31
|
var Navbar = require('@panneau/element-navbar');
|
22
32
|
var Menu = require('@panneau/element-menu');
|
23
|
-
var reactIntl = require('react-intl');
|
24
33
|
var Label = require('@panneau/element-label');
|
25
|
-
var
|
26
|
-
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
27
|
-
var queryString = require('query-string');
|
34
|
+
var isString = require('lodash/isString');
|
28
35
|
var Alert = require('@panneau/element-alert');
|
29
|
-
var Button = require('@panneau/element-button');
|
30
36
|
var Dropdown = require('@panneau/element-dropdown');
|
37
|
+
var Pagination = require('@panneau/element-pagination');
|
38
|
+
var _toPropertyKey = require('@babel/runtime/helpers/toPropertyKey');
|
39
|
+
var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
|
40
|
+
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
41
|
+
var FormGroup = require('@panneau/element-form-group');
|
31
42
|
|
32
43
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
33
44
|
|
45
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
46
|
+
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
47
|
+
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
48
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
34
49
|
var DisplaysProvider__default = /*#__PURE__*/_interopDefaultLegacy(DisplaysProvider);
|
35
50
|
var FieldsProvider__default = /*#__PURE__*/_interopDefaultLegacy(FieldsProvider);
|
36
51
|
var FiltersProvider__default = /*#__PURE__*/_interopDefaultLegacy(FiltersProvider);
|
37
52
|
var FormsProvider__default = /*#__PURE__*/_interopDefaultLegacy(FormsProvider);
|
38
53
|
var ListsProvider__default = /*#__PURE__*/_interopDefaultLegacy(ListsProvider);
|
39
|
-
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
40
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
41
54
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
42
|
-
var
|
55
|
+
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
56
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
43
57
|
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
58
|
+
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
59
|
+
var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form);
|
44
60
|
var Navbar__default = /*#__PURE__*/_interopDefaultLegacy(Navbar);
|
45
61
|
var Menu__default = /*#__PURE__*/_interopDefaultLegacy(Menu);
|
46
62
|
var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label);
|
47
|
-
var
|
48
|
-
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
63
|
+
var isString__default = /*#__PURE__*/_interopDefaultLegacy(isString);
|
49
64
|
var Alert__default = /*#__PURE__*/_interopDefaultLegacy(Alert);
|
50
|
-
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
51
65
|
var Dropdown__default = /*#__PURE__*/_interopDefaultLegacy(Dropdown);
|
66
|
+
var Pagination__default = /*#__PURE__*/_interopDefaultLegacy(Pagination);
|
67
|
+
var _toPropertyKey__default = /*#__PURE__*/_interopDefaultLegacy(_toPropertyKey);
|
68
|
+
var FormGroup__default = /*#__PURE__*/_interopDefaultLegacy(FormGroup);
|
52
69
|
|
53
|
-
var
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
throw e;
|
68
|
-
});
|
69
|
-
}, [api, setLoading]);
|
70
|
-
return {
|
71
|
-
check: check,
|
72
|
-
loading: loading
|
73
|
-
};
|
74
|
-
};
|
75
|
-
|
76
|
-
var useAuthLogin = function useAuthLogin() {
|
77
|
-
var _useState = React.useState(false),
|
78
|
-
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
79
|
-
loading = _useState2[0],
|
80
|
-
setLoading = _useState2[1];
|
81
|
-
|
82
|
-
var api = data.useApi();
|
83
|
-
var login = React.useCallback(function (email, password) {
|
84
|
-
setLoading(true);
|
85
|
-
return api.auth.login(email, password).then(function (response) {
|
86
|
-
setLoading(false);
|
87
|
-
return response;
|
88
|
-
})["catch"](function (e) {
|
89
|
-
setLoading(false);
|
90
|
-
throw e;
|
91
|
-
});
|
92
|
-
}, [api, setLoading]);
|
93
|
-
return {
|
94
|
-
login: login,
|
95
|
-
loading: loading
|
96
|
-
};
|
97
|
-
};
|
98
|
-
|
99
|
-
var useAuthLogout = function useAuthLogout() {
|
100
|
-
var _useState = React.useState(false),
|
101
|
-
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
102
|
-
loading = _useState2[0],
|
103
|
-
setLoading = _useState2[1];
|
104
|
-
|
105
|
-
var api = data.useApi();
|
106
|
-
var logout = React.useCallback(function () {
|
107
|
-
setLoading(true);
|
108
|
-
return api.auth.logout().then(function (response) {
|
109
|
-
setLoading(false);
|
110
|
-
return response;
|
111
|
-
})["catch"](function (e) {
|
112
|
-
setLoading(false);
|
113
|
-
throw e;
|
114
|
-
});
|
115
|
-
}, [api, setLoading]);
|
116
|
-
return {
|
117
|
-
logout: logout,
|
118
|
-
loading: loading
|
119
|
-
};
|
70
|
+
var _excluded$5 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
|
71
|
+
var propTypes$m = {
|
72
|
+
resource: core.PropTypes.resource.isRequired,
|
73
|
+
action: PropTypes__default["default"].string,
|
74
|
+
previous: PropTypes__default["default"].string,
|
75
|
+
fields: core.PropTypes.fields.isRequired,
|
76
|
+
value: PropTypes__default["default"].object,
|
77
|
+
// eslint-disable-line react/forbid-prop-types
|
78
|
+
onChange: PropTypes__default["default"].func.isRequired,
|
79
|
+
onSubmit: PropTypes__default["default"].func,
|
80
|
+
status: core.PropTypes.formStatus,
|
81
|
+
generalError: PropTypes__default["default"].string,
|
82
|
+
errors: PropTypes__default["default"].objectOf(PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)),
|
83
|
+
className: PropTypes__default["default"].string
|
120
84
|
};
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
setLoading(true);
|
131
|
-
return api.auth.register(data).then(function (response) {
|
132
|
-
setLoading(false);
|
133
|
-
return response;
|
134
|
-
})["catch"](function (e) {
|
135
|
-
setLoading(false);
|
136
|
-
throw e;
|
137
|
-
});
|
138
|
-
}, [api, setLoading]);
|
139
|
-
return {
|
140
|
-
register: register,
|
141
|
-
loading: loading
|
142
|
-
};
|
85
|
+
var defaultProps$m = {
|
86
|
+
action: null,
|
87
|
+
previous: null,
|
88
|
+
status: null,
|
89
|
+
value: null,
|
90
|
+
onSubmit: null,
|
91
|
+
generalError: null,
|
92
|
+
errors: null,
|
93
|
+
className: null
|
143
94
|
};
|
144
95
|
|
145
|
-
var
|
146
|
-
var
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
return response;
|
157
|
-
})["catch"](function (e) {
|
158
|
-
setLoading(false);
|
159
|
-
throw e;
|
160
|
-
});
|
161
|
-
}, [api, setLoading]);
|
162
|
-
return {
|
163
|
-
request: request,
|
164
|
-
loading: loading
|
165
|
-
};
|
166
|
-
};
|
96
|
+
var DeleteForm = function DeleteForm(_ref) {
|
97
|
+
var resource = _ref.resource,
|
98
|
+
action = _ref.action,
|
99
|
+
previous = _ref.previous;
|
100
|
+
_ref.status;
|
101
|
+
var value = _ref.value,
|
102
|
+
onSubmit = _ref.onSubmit;
|
103
|
+
_ref.errors;
|
104
|
+
var generalError = _ref.generalError,
|
105
|
+
className = _ref.className,
|
106
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$5);
|
167
107
|
|
168
|
-
var
|
169
|
-
|
170
|
-
|
171
|
-
loading = _useState2[0],
|
172
|
-
setLoading = _useState2[1];
|
173
|
-
|
174
|
-
var api = data.useApi();
|
175
|
-
var reset = React.useCallback(function (data) {
|
176
|
-
setLoading(true);
|
177
|
-
return api.auth.resetPassword(data).then(function (response) {
|
178
|
-
setLoading(false);
|
179
|
-
return response;
|
180
|
-
})["catch"](function (e) {
|
181
|
-
setLoading(false);
|
182
|
-
throw e;
|
183
|
-
});
|
184
|
-
}, [api, setLoading]);
|
185
|
-
return {
|
186
|
-
reset: reset,
|
187
|
-
loading: loading
|
188
|
-
};
|
189
|
-
};
|
108
|
+
var _ref2 = value || {},
|
109
|
+
_ref2$id = _ref2.id,
|
110
|
+
id = _ref2$id === void 0 ? null : _ref2$id;
|
190
111
|
|
191
|
-
var
|
192
|
-
|
193
|
-
|
112
|
+
var resourceValues = intl.useResourceValues(resource, {
|
113
|
+
id: id
|
114
|
+
});
|
115
|
+
return /*#__PURE__*/React__default["default"].createElement(Form__default["default"], Object.assign({
|
116
|
+
className: classNames__default["default"](['form', _defineProperty__default["default"]({
|
117
|
+
'invalid-feedback': generalError !== null
|
118
|
+
}, className, className !== null)]),
|
119
|
+
action: action,
|
120
|
+
onSubmit: onSubmit,
|
121
|
+
withoutActions: true,
|
122
|
+
withoutErrors: true
|
123
|
+
}, props), /*#__PURE__*/React__default["default"].createElement("div", {
|
124
|
+
className: "card"
|
125
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
126
|
+
className: "card-body"
|
127
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
128
|
+
values: resourceValues,
|
129
|
+
id: "yzfiXJ",
|
130
|
+
defaultMessage: [{
|
131
|
+
"type": 0,
|
132
|
+
"value": "Are you sure you want to delete "
|
133
|
+
}, {
|
134
|
+
"type": 1,
|
135
|
+
"value": "the_singular"
|
136
|
+
}, {
|
137
|
+
"type": 0,
|
138
|
+
"value": " #"
|
139
|
+
}, {
|
140
|
+
"type": 1,
|
141
|
+
"value": "id"
|
142
|
+
}, {
|
143
|
+
"type": 0,
|
144
|
+
"value": "?"
|
145
|
+
}]
|
146
|
+
}), generalError ? /*#__PURE__*/React__default["default"].createElement("p", {
|
147
|
+
className: "text-danger"
|
148
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
149
|
+
id: "y9zauY",
|
150
|
+
defaultMessage: [{
|
151
|
+
"type": 0,
|
152
|
+
"value": "An error occured and we could not delete this item successfully."
|
153
|
+
}]
|
154
|
+
})) : null), /*#__PURE__*/React__default["default"].createElement("div", {
|
155
|
+
className: "card-body d-flex"
|
156
|
+
}, previous !== null ? /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
157
|
+
href: previous,
|
158
|
+
className: "me-2",
|
159
|
+
theme: "secondary",
|
160
|
+
outline: true
|
161
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
162
|
+
id: "PyxZY2",
|
163
|
+
defaultMessage: [{
|
164
|
+
"type": 0,
|
165
|
+
"value": "Cancel"
|
166
|
+
}]
|
167
|
+
})) : null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
168
|
+
type: "submit",
|
169
|
+
className: "ms-auto",
|
170
|
+
theme: "danger"
|
171
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
172
|
+
id: "Bhu3B2",
|
173
|
+
defaultMessage: [{
|
174
|
+
"type": 0,
|
175
|
+
"value": "Delete"
|
176
|
+
}]
|
177
|
+
})))));
|
194
178
|
};
|
195
|
-
var useUser = function useUser() {
|
196
|
-
var _useAuth = useAuth(),
|
197
|
-
user = _useAuth.user;
|
198
179
|
|
199
|
-
|
200
|
-
|
201
|
-
var useLogout = function useLogout() {
|
202
|
-
var _useAuth3 = useAuth(),
|
203
|
-
logout = _useAuth3.logout;
|
180
|
+
DeleteForm.propTypes = propTypes$m;
|
181
|
+
DeleteForm.defaultProps = defaultProps$m;
|
204
182
|
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
183
|
+
var _excluded$4 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
|
184
|
+
var propTypes$l = {
|
185
|
+
component: PropTypes__default["default"].string,
|
186
|
+
resource: core.PropTypes.resource.isRequired,
|
187
|
+
item: PropTypes__default["default"].object,
|
188
|
+
// eslint-disable-line react/forbid-prop-types
|
189
|
+
type: PropTypes__default["default"].string,
|
190
|
+
onSuccess: PropTypes__default["default"].func,
|
191
|
+
isDelete: PropTypes__default["default"].bool
|
211
192
|
};
|
212
|
-
var defaultProps$
|
213
|
-
|
214
|
-
|
193
|
+
var defaultProps$l = {
|
194
|
+
component: null,
|
195
|
+
item: null,
|
196
|
+
type: null,
|
197
|
+
onSuccess: null,
|
198
|
+
isDelete: false
|
215
199
|
};
|
216
|
-
var AuthProvider = function AuthProvider(_ref) {
|
217
|
-
var initialUser = _ref.user,
|
218
|
-
checkOnMount = _ref.checkOnMount,
|
219
|
-
children = _ref.children;
|
220
200
|
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
201
|
+
var ResourceForm = function ResourceForm(_ref) {
|
202
|
+
var component = _ref.component,
|
203
|
+
resource = _ref.resource,
|
204
|
+
onSuccess = _ref.onSuccess,
|
205
|
+
item = _ref.item,
|
206
|
+
type = _ref.type,
|
207
|
+
isDelete = _ref.isDelete,
|
208
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded$4);
|
225
209
|
|
226
|
-
var
|
227
|
-
|
210
|
+
var locales = contexts.useLocales();
|
211
|
+
var FormComponents = contexts.useFormsComponents();
|
212
|
+
var _resource$fields = resource.fields,
|
213
|
+
resourceFields = _resource$fields === void 0 ? [] : _resource$fields,
|
214
|
+
_resource$types = resource.types,
|
215
|
+
resourceTypes = _resource$types === void 0 ? [] : _resource$types,
|
216
|
+
forms = resource.forms;
|
217
|
+
var resourceType = type !== null ? resourceTypes.find(function (it) {
|
218
|
+
return it.id === type;
|
219
|
+
}) || null : null;
|
220
|
+
|
221
|
+
var _ref2 = resourceType || {},
|
222
|
+
_ref2$fields = _ref2.fields,
|
223
|
+
resourceTypeFields = _ref2$fields === void 0 ? null : _ref2$fields;
|
228
224
|
|
229
|
-
var
|
230
|
-
authLogout = _useAuthLogout.logout;
|
225
|
+
var isCreate = item === null || !item.id; // Pick fields from resource root or form
|
231
226
|
|
232
|
-
var
|
233
|
-
|
227
|
+
var _ref3 = forms || {},
|
228
|
+
_ref3$default = _ref3["default"],
|
229
|
+
defaultForm = _ref3$default === void 0 ? null : _ref3$default,
|
230
|
+
_ref3$create = _ref3.create,
|
231
|
+
createForm = _ref3$create === void 0 ? null : _ref3$create,
|
232
|
+
_ref3$edit = _ref3.edit,
|
233
|
+
editForm = _ref3$edit === void 0 ? null : _ref3$edit,
|
234
|
+
_ref3$delete = _ref3["delete"],
|
235
|
+
deleteForm = _ref3$delete === void 0 ? null : _ref3$delete;
|
234
236
|
|
235
|
-
var
|
236
|
-
|
237
|
+
var _ref4 = defaultForm || {},
|
238
|
+
_ref4$fields = _ref4.fields,
|
239
|
+
defaultFields = _ref4$fields === void 0 ? null : _ref4$fields,
|
240
|
+
defaultComponent = _ref4.component;
|
237
241
|
|
238
|
-
var
|
239
|
-
authRequestPassword = _useAuthRequestPasswo.request;
|
242
|
+
var createOrEditSource = isCreate ? createForm || {} : editForm || {};
|
240
243
|
|
241
|
-
var
|
242
|
-
|
244
|
+
var _ref5 = isDelete ? deleteForm || {} : createOrEditSource || {},
|
245
|
+
_ref5$fields = _ref5.fields,
|
246
|
+
formFields = _ref5$fields === void 0 ? null : _ref5$fields,
|
247
|
+
_ref5$component = _ref5.component,
|
248
|
+
formComponent = _ref5$component === void 0 ? null : _ref5$component;
|
243
249
|
|
244
|
-
var
|
245
|
-
return
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
return authLogout().then(function () {
|
252
|
-
setUser(null);
|
253
|
-
});
|
254
|
-
}, [authLogout, setUser]);
|
255
|
-
var register = React.useCallback(function (data) {
|
256
|
-
return authRegister(data).then(function (newUser) {
|
257
|
-
setUser(newUser);
|
258
|
-
return newUser;
|
250
|
+
var finalFields = React.useMemo(function () {
|
251
|
+
return (formFields || defaultFields || resourceTypeFields || resourceFields).filter(function (_ref6) {
|
252
|
+
var _ref6$settings = _ref6.settings;
|
253
|
+
_ref6$settings = _ref6$settings === void 0 ? {} : _ref6$settings;
|
254
|
+
var _ref6$settings$hidden = _ref6$settings.hiddenInForm,
|
255
|
+
hiddenInForm = _ref6$settings$hidden === void 0 ? false : _ref6$settings$hidden;
|
256
|
+
return !hiddenInForm;
|
259
257
|
});
|
260
|
-
}, [
|
261
|
-
var requestPassword = React.useCallback(function (email) {
|
262
|
-
return authRequestPassword(email);
|
263
|
-
}, [authRequestPassword]);
|
264
|
-
var resetPassword = React.useCallback(function (data) {
|
265
|
-
return authResetPassword(data);
|
266
|
-
}, [authResetPassword]);
|
267
|
-
React.useEffect(function () {
|
268
|
-
if (checkOnMount) {
|
269
|
-
authCheck().then(function () {
|
270
|
-
var newUser = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
271
|
-
setUser(newUser);
|
272
|
-
})["catch"](function () {
|
273
|
-
setUser(null);
|
274
|
-
});
|
275
|
-
}
|
276
|
-
}, [authCheck, setUser, checkOnMount]);
|
277
|
-
return /*#__PURE__*/React__default['default'].createElement(AuthContext.Provider, {
|
278
|
-
value: {
|
279
|
-
user: user,
|
280
|
-
setUser: setUser,
|
281
|
-
loggedIn: user !== null,
|
282
|
-
logout: logout,
|
283
|
-
login: login,
|
284
|
-
register: register,
|
285
|
-
requestPassword: requestPassword,
|
286
|
-
resetPassword: resetPassword
|
287
|
-
}
|
288
|
-
}, children);
|
289
|
-
};
|
290
|
-
AuthProvider.propTypes = propTypes$o;
|
291
|
-
AuthProvider.defaultProps = defaultProps$o;
|
258
|
+
}, [formFields, defaultFields, resourceTypeFields, resourceFields]); // Form routes
|
292
259
|
|
293
|
-
var
|
294
|
-
className: PropTypes__default['default'].string,
|
295
|
-
itemClassName: PropTypes__default['default'].string,
|
296
|
-
linkClassName: PropTypes__default['default'].string
|
297
|
-
};
|
298
|
-
var defaultProps$n = {
|
299
|
-
className: null,
|
300
|
-
itemClassName: null,
|
301
|
-
linkClassName: null
|
302
|
-
};
|
260
|
+
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
303
261
|
|
304
|
-
var
|
305
|
-
|
306
|
-
itemClassName = _ref.itemClassName,
|
307
|
-
linkClassName = _ref.linkClassName;
|
262
|
+
var _useResourceStore = data.useResourceStore(resource),
|
263
|
+
store = _useResourceStore.store;
|
308
264
|
|
309
|
-
var
|
310
|
-
|
265
|
+
var _useResourceUpdate = data.useResourceUpdate(resource, item != null ? item.id : null),
|
266
|
+
update = _useResourceUpdate.update;
|
311
267
|
|
312
|
-
var
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
});
|
330
|
-
}, [
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
268
|
+
var _useResourceDestroy = data.useResourceDestroy(resource, item != null ? item.id : null),
|
269
|
+
destroy = _useResourceDestroy.destroy; // Post actions
|
270
|
+
|
271
|
+
|
272
|
+
var postAction = isCreate ? store : update;
|
273
|
+
var postForm = React.useCallback(function (action, data) {
|
274
|
+
return isDelete ? destroy() : postAction(data);
|
275
|
+
}, [postAction, isDelete, destroy, store, update]); // Form state
|
276
|
+
|
277
|
+
var getInitialValue = React.useCallback(function () {
|
278
|
+
return item !== null ? item : finalFields.reduce(function (defaultValues, _ref7) {
|
279
|
+
var name = _ref7.name,
|
280
|
+
_ref7$defaultValue = _ref7.defaultValue,
|
281
|
+
defaultValue = _ref7$defaultValue === void 0 ? null : _ref7$defaultValue;
|
282
|
+
return defaultValue !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, defaultValues), {}, _defineProperty__default["default"]({}, name, defaultValue)) : defaultValues;
|
283
|
+
}, type !== null ? {
|
284
|
+
type: type
|
285
|
+
} : null);
|
286
|
+
}, [item, type, finalFields]);
|
287
|
+
|
288
|
+
var _useState = React.useState(getInitialValue()),
|
289
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
290
|
+
value = _useState2[0],
|
291
|
+
setValueState = _useState2[1];
|
292
|
+
|
293
|
+
var setValue = React.useCallback(function (newValue) {
|
294
|
+
// console.log('new value in resource form', newValue); // eslint-disable-line
|
295
|
+
setValueState(newValue);
|
296
|
+
}, [setValueState]);
|
297
|
+
|
298
|
+
var _useForm = hooks.useForm({
|
299
|
+
fields: finalFields,
|
300
|
+
value: value,
|
301
|
+
postForm: postForm,
|
302
|
+
setValue: setValue,
|
303
|
+
onComplete: onSuccess,
|
304
|
+
locales: locales
|
305
|
+
}),
|
306
|
+
fields = _useForm.fields,
|
307
|
+
onSubmit = _useForm.onSubmit,
|
308
|
+
status = _useForm.status,
|
309
|
+
generalError = _useForm.generalError,
|
310
|
+
errors = _useForm.errors; // Form action
|
311
|
+
|
312
|
+
|
313
|
+
var modifyAction = isCreate ? resourceRoute('store') : resourceRoute('update', {
|
314
|
+
id: item.id
|
336
315
|
});
|
316
|
+
var action = isDelete ? resourceRoute('destroy', {
|
317
|
+
id: item.id
|
318
|
+
}) : modifyAction;
|
319
|
+
var defaultFormName = isDelete ? component || formComponent || null : component || formComponent || defaultComponent || 'normal'; // Form component
|
320
|
+
|
321
|
+
var FormComponent = utils.getComponentFromName(defaultFormName, FormComponents, isDelete ? DeleteForm : component); // Lisen to item value change - this is important
|
322
|
+
|
323
|
+
React.useEffect(function () {
|
324
|
+
// console.log('get initial value from the top'); // eslint-disable-line
|
325
|
+
setValue(getInitialValue());
|
326
|
+
}, [getInitialValue, setValue]);
|
327
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.FormProvider, {
|
328
|
+
value: value,
|
329
|
+
setValue: setValue
|
330
|
+
}, /*#__PURE__*/React__default["default"].createElement(FormComponent, Object.assign({}, props, {
|
331
|
+
status: status,
|
332
|
+
resource: resource,
|
333
|
+
item: item,
|
334
|
+
fields: fields,
|
335
|
+
generalError: generalError,
|
336
|
+
errors: errors,
|
337
|
+
action: action,
|
338
|
+
onSubmit: onSubmit,
|
339
|
+
isCreate: isCreate,
|
340
|
+
value: value,
|
341
|
+
onChange: setValue
|
342
|
+
})));
|
337
343
|
};
|
338
344
|
|
339
|
-
|
340
|
-
|
345
|
+
ResourceForm.propTypes = propTypes$l;
|
346
|
+
ResourceForm.defaultProps = defaultProps$l;
|
341
347
|
|
342
|
-
var propTypes$
|
343
|
-
className: PropTypes__default[
|
344
|
-
itemClassName: PropTypes__default[
|
345
|
-
linkClassName: PropTypes__default[
|
348
|
+
var propTypes$k = {
|
349
|
+
className: PropTypes__default["default"].string,
|
350
|
+
itemClassName: PropTypes__default["default"].string,
|
351
|
+
linkClassName: PropTypes__default["default"].string
|
346
352
|
};
|
347
|
-
var defaultProps$
|
353
|
+
var defaultProps$k = {
|
348
354
|
className: null,
|
349
355
|
itemClassName: null,
|
350
356
|
linkClassName: null
|
@@ -355,34 +361,34 @@ var AccountMenu = function AccountMenu(_ref) {
|
|
355
361
|
itemClassName = _ref.itemClassName,
|
356
362
|
linkClassName = _ref.linkClassName;
|
357
363
|
var route = contexts.useUrlGenerator();
|
358
|
-
var user = useUser();
|
359
|
-
var logout = useLogout();
|
364
|
+
var user = auth.useUser();
|
365
|
+
var logout = auth.useLogout();
|
360
366
|
var onClickLogout = React.useCallback(function (e) {
|
361
367
|
e.preventDefault();
|
362
368
|
logout();
|
363
|
-
}, [logout]);
|
369
|
+
}, [logout, route]);
|
364
370
|
var items = React.useMemo(function () {
|
365
371
|
return user !== null ? [{
|
366
372
|
id: 'account',
|
367
|
-
label: /*#__PURE__*/React__default[
|
373
|
+
label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
368
374
|
id: "IuqEHB",
|
369
375
|
defaultMessage: [{
|
370
376
|
"type": 0,
|
371
377
|
"value": "Account"
|
372
378
|
}]
|
373
379
|
}),
|
374
|
-
href: route('
|
375
|
-
dropdown: [{
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
label: /*#__PURE__*/React__default[
|
380
|
+
href: route('account'),
|
381
|
+
dropdown: [// {
|
382
|
+
// label: (
|
383
|
+
// <FormattedMessage
|
384
|
+
// defaultMessage="Update account"
|
385
|
+
// description="Menu label"
|
386
|
+
// />
|
387
|
+
// ),
|
388
|
+
// href: route('panneau.account'),
|
389
|
+
// },
|
390
|
+
{
|
391
|
+
label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
386
392
|
id: "REIcPg",
|
387
393
|
defaultMessage: [{
|
388
394
|
"type": 0,
|
@@ -393,17 +399,17 @@ var AccountMenu = function AccountMenu(_ref) {
|
|
393
399
|
onClick: onClickLogout
|
394
400
|
}]
|
395
401
|
}] : [{
|
396
|
-
label: /*#__PURE__*/React__default[
|
402
|
+
label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
397
403
|
id: "d0g58T",
|
398
404
|
defaultMessage: [{
|
399
405
|
"type": 0,
|
400
406
|
"value": "Login"
|
401
407
|
}]
|
402
408
|
}),
|
403
|
-
href: route('login')
|
409
|
+
href: route('auth.login')
|
404
410
|
}];
|
405
411
|
}, [user, route, onClickLogout]);
|
406
|
-
return items !== null ? /*#__PURE__*/React__default[
|
412
|
+
return items !== null ? /*#__PURE__*/React__default["default"].createElement(Menu__default["default"], {
|
407
413
|
className: className,
|
408
414
|
itemClassName: itemClassName,
|
409
415
|
linkClassName: linkClassName,
|
@@ -412,12 +418,61 @@ var AccountMenu = function AccountMenu(_ref) {
|
|
412
418
|
}) : null;
|
413
419
|
};
|
414
420
|
|
415
|
-
AccountMenu.propTypes = propTypes$
|
416
|
-
AccountMenu.defaultProps = defaultProps$
|
421
|
+
AccountMenu.propTypes = propTypes$k;
|
422
|
+
AccountMenu.defaultProps = defaultProps$k;
|
423
|
+
|
424
|
+
var propTypes$j = {
|
425
|
+
className: PropTypes__default["default"].string,
|
426
|
+
itemClassName: PropTypes__default["default"].string,
|
427
|
+
linkClassName: PropTypes__default["default"].string
|
428
|
+
};
|
429
|
+
var defaultProps$j = {
|
430
|
+
className: null,
|
431
|
+
itemClassName: null,
|
432
|
+
linkClassName: null
|
433
|
+
};
|
434
|
+
|
435
|
+
var ResourcesMenu = function ResourcesMenu(_ref) {
|
436
|
+
var className = _ref.className,
|
437
|
+
itemClassName = _ref.itemClassName,
|
438
|
+
linkClassName = _ref.linkClassName;
|
439
|
+
|
440
|
+
var _useLocation = reactRouter.useLocation(),
|
441
|
+
pathname = _useLocation.pathname;
|
442
|
+
|
443
|
+
var resources = contexts.usePanneauResources();
|
444
|
+
var resourceRoute = hooks.useResourceUrlGenerator();
|
445
|
+
var items = React.useMemo(function () {
|
446
|
+
return resources.filter(function (_ref2) {
|
447
|
+
var _ref2$settings = _ref2.settings;
|
448
|
+
_ref2$settings = _ref2$settings === void 0 ? {} : _ref2$settings;
|
449
|
+
var _ref2$settings$hideIn = _ref2$settings.hideInNavbar,
|
450
|
+
hideInNavbar = _ref2$settings$hideIn === void 0 ? false : _ref2$settings$hideIn;
|
451
|
+
return !hideInNavbar;
|
452
|
+
}).map(function (it) {
|
453
|
+
var url = resourceRoute(it, 'index');
|
454
|
+
return {
|
455
|
+
id: it.id,
|
456
|
+
label: it.name,
|
457
|
+
href: url,
|
458
|
+
active: pathname.substr(0, url.length) === url
|
459
|
+
};
|
460
|
+
});
|
461
|
+
}, [resources, pathname, resourceRoute]);
|
462
|
+
return /*#__PURE__*/React__default["default"].createElement(Menu__default["default"], {
|
463
|
+
items: items,
|
464
|
+
className: className,
|
465
|
+
itemClassName: itemClassName,
|
466
|
+
linkClassName: linkClassName
|
467
|
+
});
|
468
|
+
};
|
469
|
+
|
470
|
+
ResourcesMenu.propTypes = propTypes$j;
|
471
|
+
ResourcesMenu.defaultProps = defaultProps$j;
|
417
472
|
|
418
473
|
/* eslint-disable react/jsx-props-no-spreading */
|
419
|
-
var propTypes$
|
420
|
-
var defaultProps$
|
474
|
+
var propTypes$i = {};
|
475
|
+
var defaultProps$i = {};
|
421
476
|
|
422
477
|
var MainNavbar = function MainNavbar(props) {
|
423
478
|
var _usePanneau = contexts.usePanneau(),
|
@@ -427,31 +482,31 @@ var MainNavbar = function MainNavbar(props) {
|
|
427
482
|
background = _usePanneauColorSchem.background;
|
428
483
|
|
429
484
|
var route = contexts.useUrlGenerator();
|
430
|
-
var user = useUser();
|
431
|
-
return /*#__PURE__*/React__default[
|
485
|
+
var user = auth.useUser();
|
486
|
+
return /*#__PURE__*/React__default["default"].createElement(Navbar__default["default"], Object.assign({
|
432
487
|
theme: background
|
433
|
-
}, props), name !== null ? /*#__PURE__*/React__default[
|
488
|
+
}, props), name !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, {
|
434
489
|
to: route('home'),
|
435
490
|
className: "navbar-brand"
|
436
|
-
}, name) : null, user !== null ? /*#__PURE__*/React__default[
|
491
|
+
}, name) : null, user !== null ? /*#__PURE__*/React__default["default"].createElement(ResourcesMenu, {
|
437
492
|
className: "navbar-nav ml-4",
|
438
493
|
itemClassName: "nav-item",
|
439
494
|
linkClassName: "nav-link"
|
440
|
-
}) : null, /*#__PURE__*/React__default[
|
495
|
+
}) : null, /*#__PURE__*/React__default["default"].createElement(AccountMenu, {
|
441
496
|
className: "navbar-nav ms-auto",
|
442
497
|
itemClassName: "nav-item",
|
443
498
|
linkClassName: "nav-link"
|
444
499
|
}));
|
445
500
|
};
|
446
501
|
|
447
|
-
MainNavbar.propTypes = propTypes$
|
448
|
-
MainNavbar.defaultProps = defaultProps$
|
502
|
+
MainNavbar.propTypes = propTypes$i;
|
503
|
+
MainNavbar.defaultProps = defaultProps$i;
|
449
504
|
|
450
|
-
var propTypes$
|
451
|
-
children: PropTypes__default[
|
452
|
-
fullscreen: PropTypes__default[
|
505
|
+
var propTypes$h = {
|
506
|
+
children: PropTypes__default["default"].node.isRequired,
|
507
|
+
fullscreen: PropTypes__default["default"].bool
|
453
508
|
};
|
454
|
-
var defaultProps$
|
509
|
+
var defaultProps$h = {
|
455
510
|
fullscreen: false
|
456
511
|
};
|
457
512
|
|
@@ -465,28 +520,28 @@ var MainLayout = function MainLayout(_ref) {
|
|
465
520
|
background = _usePanneauColorSchem.background,
|
466
521
|
text = _usePanneauColorSchem.text;
|
467
522
|
|
468
|
-
return /*#__PURE__*/React__default[
|
469
|
-
className: classNames__default[
|
470
|
-
}, /*#__PURE__*/React__default[
|
471
|
-
className: classNames__default[
|
472
|
-
}), /*#__PURE__*/React__default[
|
473
|
-
className: classNames__default[
|
523
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
524
|
+
className: classNames__default["default"](['d-flex', 'flex-column', 'min-vh-100'])
|
525
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainNavbar, {
|
526
|
+
className: classNames__default["default"](['border-bottom', 'sticky-top', 'px-3'])
|
527
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
528
|
+
className: classNames__default["default"](['flex-grow-1', (_ref2 = {
|
474
529
|
'd-flex flex-column': fullscreen
|
475
|
-
}, _defineProperty__default[
|
530
|
+
}, _defineProperty__default["default"](_ref2, "bg-".concat(background), background !== null), _defineProperty__default["default"](_ref2, "text-".concat(text), text !== null), _ref2)])
|
476
531
|
}, children));
|
477
532
|
};
|
478
533
|
|
479
|
-
MainLayout.propTypes = propTypes$
|
480
|
-
MainLayout.defaultProps = defaultProps$
|
534
|
+
MainLayout.propTypes = propTypes$h;
|
535
|
+
MainLayout.defaultProps = defaultProps$h;
|
481
536
|
|
482
|
-
var propTypes$
|
537
|
+
var propTypes$g = {
|
483
538
|
title: core.PropTypes.label,
|
484
|
-
actions: PropTypes__default[
|
485
|
-
small: PropTypes__default[
|
486
|
-
className: PropTypes__default[
|
487
|
-
children: PropTypes__default[
|
539
|
+
actions: PropTypes__default["default"].node,
|
540
|
+
small: PropTypes__default["default"].bool,
|
541
|
+
className: PropTypes__default["default"].string,
|
542
|
+
children: PropTypes__default["default"].node
|
488
543
|
};
|
489
|
-
var defaultProps$
|
544
|
+
var defaultProps$g = {
|
490
545
|
title: null,
|
491
546
|
actions: null,
|
492
547
|
small: false,
|
@@ -503,365 +558,141 @@ var PageHeader = function PageHeader(_ref) {
|
|
503
558
|
className = _ref.className,
|
504
559
|
children = _ref.children;
|
505
560
|
|
506
|
-
|
507
|
-
|
508
|
-
|
561
|
+
// TODO: fix page header components
|
562
|
+
// const { components } = usePanneau();
|
509
563
|
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
510
564
|
text = _usePanneauColorSchem.text,
|
511
|
-
background = _usePanneauColorSchem.background;
|
565
|
+
background = _usePanneauColorSchem.background; // console.log('page-header', components); // eslint-disable-line
|
566
|
+
|
512
567
|
|
513
|
-
|
514
|
-
var inner = /*#__PURE__*/React__default['default'].createElement("div", {
|
568
|
+
var inner = /*#__PURE__*/React__default["default"].createElement("div", {
|
515
569
|
className: "d-flex align-items-center flex-wrap"
|
516
|
-
}, title !== null ? /*#__PURE__*/React__default[
|
570
|
+
}, title !== null ? /*#__PURE__*/React__default["default"].createElement("h1", {
|
517
571
|
className: "mb-0"
|
518
|
-
}, /*#__PURE__*/React__default[
|
572
|
+
}, /*#__PURE__*/React__default["default"].createElement(Label__default["default"], null, title)) : null, actions !== null ? /*#__PURE__*/React__default["default"].createElement("div", {
|
519
573
|
className: "ms-auto"
|
520
574
|
}, actions) : null);
|
521
|
-
return /*#__PURE__*/React__default[
|
522
|
-
className: classNames__default[
|
523
|
-
}, /*#__PURE__*/React__default[
|
524
|
-
className: "container-sm"
|
525
|
-
}, small ? /*#__PURE__*/React__default[
|
526
|
-
className: "row justify-content-center"
|
527
|
-
}, /*#__PURE__*/React__default[
|
528
|
-
className: "col-12 col-md-8 col-lg-7"
|
529
|
-
}, inner)) : inner), children);
|
530
|
-
};
|
531
|
-
|
532
|
-
PageHeader.propTypes = propTypes$j;
|
533
|
-
PageHeader.defaultProps = defaultProps$j;
|
534
|
-
|
535
|
-
var propTypes$i = {
|
536
|
-
resource: core.PropTypes.resource.isRequired,
|
537
|
-
values: PropTypes__default['default'].object,
|
538
|
-
// eslint-disable-line react/forbid-prop-types,
|
539
|
-
message: core.PropTypes.message.isRequired
|
540
|
-
};
|
541
|
-
var defaultProps$i = {
|
542
|
-
values: null
|
543
|
-
};
|
544
|
-
|
545
|
-
var ResourceLabel = function ResourceLabel(_ref) {
|
546
|
-
var resource = _ref.resource,
|
547
|
-
values = _ref.values,
|
548
|
-
message = _ref.message;
|
549
|
-
var _resource$label = resource.label,
|
550
|
-
label = _resource$label === void 0 ? null : _resource$label,
|
551
|
-
_resource$intl = resource.intl,
|
552
|
-
intl = _resource$intl === void 0 ? null : _resource$intl,
|
553
|
-
_resource$localizatio = resource.localization,
|
554
|
-
localization = _resource$localizatio === void 0 ? null : _resource$localizatio;
|
555
|
-
|
556
|
-
var _ref2 = intl || localization || {},
|
557
|
-
resourceValues = _ref2.values;
|
558
|
-
|
559
|
-
return /*#__PURE__*/React__default['default'].createElement(reactIntl.FormattedMessage, Object.assign({
|
560
|
-
values: _objectSpread__default['default'](_objectSpread__default['default']({
|
561
|
-
label: label
|
562
|
-
}, resourceValues), values)
|
563
|
-
}, message));
|
564
|
-
};
|
565
|
-
|
566
|
-
ResourceLabel.propTypes = propTypes$i;
|
567
|
-
ResourceLabel.defaultProps = defaultProps$i;
|
568
|
-
|
569
|
-
var _excluded$1 = ["component", "resource", "onSuccess", "item", "isDelete"];
|
570
|
-
|
571
|
-
var propTypes$h = {
|
572
|
-
component: PropTypes__default['default'].string,
|
573
|
-
resource: core.PropTypes.resource.isRequired,
|
574
|
-
item: PropTypes__default['default'].object,
|
575
|
-
// eslint-disable-line react/forbid-prop-types
|
576
|
-
onSuccess: PropTypes__default['default'].func,
|
577
|
-
isDelete: PropTypes__default['default'].bool
|
578
|
-
};
|
579
|
-
var defaultProps$h = {
|
580
|
-
component: null,
|
581
|
-
item: null,
|
582
|
-
onSuccess: null,
|
583
|
-
isDelete: false
|
584
|
-
};
|
585
|
-
|
586
|
-
var ResourceForm = function ResourceForm(_ref) {
|
587
|
-
var component = _ref.component,
|
588
|
-
resource = _ref.resource,
|
589
|
-
onSuccess = _ref.onSuccess,
|
590
|
-
item = _ref.item,
|
591
|
-
isDelete = _ref.isDelete,
|
592
|
-
props = _objectWithoutProperties__default['default'](_ref, _excluded$1);
|
593
|
-
|
594
|
-
var FormComponents = contexts.useFormsComponents();
|
595
|
-
|
596
|
-
var _ref2 = resource || {},
|
597
|
-
baseFields = _ref2.fields,
|
598
|
-
_ref2$forms = _ref2.forms,
|
599
|
-
forms = _ref2$forms === void 0 ? {} : _ref2$forms;
|
600
|
-
|
601
|
-
var isCreate = item === null || !item.id; // Pick fields from resource root or form
|
602
|
-
|
603
|
-
var _ref3 = forms || {},
|
604
|
-
_ref3$default = _ref3["default"],
|
605
|
-
defaultForm = _ref3$default === void 0 ? null : _ref3$default,
|
606
|
-
_ref3$create = _ref3.create,
|
607
|
-
createForm = _ref3$create === void 0 ? null : _ref3$create,
|
608
|
-
_ref3$edit = _ref3.edit,
|
609
|
-
editForm = _ref3$edit === void 0 ? null : _ref3$edit;
|
610
|
-
|
611
|
-
var _ref4 = defaultForm || {},
|
612
|
-
defaultFields = _ref4.fields,
|
613
|
-
defaultComponent = _ref4.component;
|
614
|
-
|
615
|
-
var _ref5 = isCreate ? createForm || {} : editForm || {},
|
616
|
-
_ref5$fields = _ref5.fields,
|
617
|
-
formFields = _ref5$fields === void 0 ? null : _ref5$fields,
|
618
|
-
_ref5$component = _ref5.component,
|
619
|
-
formComponent = _ref5$component === void 0 ? null : _ref5$component;
|
620
|
-
|
621
|
-
var resourceFields = formFields || defaultFields || baseFields; // Form routes
|
622
|
-
|
623
|
-
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
624
|
-
|
625
|
-
var _useResourceStore = data.useResourceStore(resource),
|
626
|
-
store = _useResourceStore.store;
|
627
|
-
|
628
|
-
var _useResourceUpdate = data.useResourceUpdate(resource, item != null ? item.id : null),
|
629
|
-
update = _useResourceUpdate.update;
|
630
|
-
|
631
|
-
var postForm = React.useCallback(function (action, data) {
|
632
|
-
return isCreate ? store(data) : update(data);
|
633
|
-
}, [isCreate, store, update]); // Form state
|
634
|
-
|
635
|
-
var getInitialValue = React.useCallback(function () {
|
636
|
-
return item !== null ? item : resourceFields.reduce(function (defaultValues, _ref6) {
|
637
|
-
var name = _ref6.name,
|
638
|
-
_ref6$default_value = _ref6.default_value,
|
639
|
-
defaultValue = _ref6$default_value === void 0 ? null : _ref6$default_value;
|
640
|
-
return defaultValue !== null ? _objectSpread__default['default'](_objectSpread__default['default']({}, defaultValues), {}, _defineProperty__default['default']({}, name, defaultValue)) : defaultValues;
|
641
|
-
}, null);
|
642
|
-
}, [item, resourceFields]);
|
643
|
-
|
644
|
-
var _useState = React.useState(getInitialValue()),
|
645
|
-
_useState2 = _slicedToArray__default['default'](_useState, 2),
|
646
|
-
value = _useState2[0],
|
647
|
-
setValue = _useState2[1];
|
648
|
-
|
649
|
-
var _useForm = hooks.useForm({
|
650
|
-
fields: resourceFields,
|
651
|
-
value: value,
|
652
|
-
postForm: postForm,
|
653
|
-
setValue: setValue,
|
654
|
-
onComplete: onSuccess
|
655
|
-
}),
|
656
|
-
fields = _useForm.fields,
|
657
|
-
onSubmit = _useForm.onSubmit,
|
658
|
-
status = _useForm.status,
|
659
|
-
generalError = _useForm.generalError,
|
660
|
-
errors = _useForm.errors; // Form action
|
661
|
-
|
662
|
-
|
663
|
-
var modifyAction = isCreate ? resourceRoute('store') : resourceRoute('update', {
|
664
|
-
id: item.id
|
665
|
-
});
|
666
|
-
var action = isDelete ? resourceRoute('destroy', {
|
667
|
-
id: item.id
|
668
|
-
}) : modifyAction; // Form component
|
669
|
-
|
670
|
-
var FormComponent = utils.getComponentFromName(component || formComponent || defaultComponent || 'normal', FormComponents, component); // Lisen to item value change
|
671
|
-
|
672
|
-
React.useEffect(function () {
|
673
|
-
setValue(getInitialValue());
|
674
|
-
}, [getInitialValue, setValue]);
|
675
|
-
return /*#__PURE__*/React__default['default'].createElement(contexts.FormProvider, {
|
676
|
-
value: value,
|
677
|
-
setValue: setValue
|
678
|
-
}, /*#__PURE__*/React__default['default'].createElement(FormComponent, Object.assign({}, props, {
|
679
|
-
status: status,
|
680
|
-
resource: resource,
|
681
|
-
item: item,
|
682
|
-
fields: fields,
|
683
|
-
generalError: generalError,
|
684
|
-
errors: errors,
|
685
|
-
action: action,
|
686
|
-
onSubmit: onSubmit,
|
687
|
-
isCreate: isCreate,
|
688
|
-
value: value,
|
689
|
-
onChange: setValue
|
690
|
-
})));
|
691
|
-
};
|
692
|
-
|
693
|
-
ResourceForm.propTypes = propTypes$h;
|
694
|
-
ResourceForm.defaultProps = defaultProps$h;
|
695
|
-
|
696
|
-
var messages$1 = reactIntl.defineMessages({
|
697
|
-
// Resources
|
698
|
-
index: {
|
699
|
-
"id": "resources.index",
|
700
|
-
"defaultMessage": [{
|
701
|
-
"type": 0,
|
702
|
-
"value": "View "
|
703
|
-
}, {
|
704
|
-
"type": 1,
|
705
|
-
"value": "a_plural"
|
706
|
-
}]
|
707
|
-
},
|
708
|
-
create: {
|
709
|
-
"id": "resources.create",
|
710
|
-
"defaultMessage": [{
|
711
|
-
"type": 0,
|
712
|
-
"value": "Create "
|
713
|
-
}, {
|
714
|
-
"type": 1,
|
715
|
-
"value": "a_singular"
|
716
|
-
}]
|
717
|
-
},
|
718
|
-
edit: {
|
719
|
-
"id": "resources.edit",
|
720
|
-
"defaultMessage": [{
|
721
|
-
"type": 0,
|
722
|
-
"value": "Edit "
|
723
|
-
}, {
|
724
|
-
"type": 1,
|
725
|
-
"value": "a_singular"
|
726
|
-
}]
|
727
|
-
},
|
728
|
-
"delete": {
|
729
|
-
"id": "resources.delete",
|
730
|
-
"defaultMessage": [{
|
731
|
-
"type": 0,
|
732
|
-
"value": "Delete "
|
733
|
-
}, {
|
734
|
-
"type": 1,
|
735
|
-
"value": "a_singular"
|
736
|
-
}]
|
737
|
-
},
|
738
|
-
created: {
|
739
|
-
"id": "resources.created",
|
740
|
-
"defaultMessage": [{
|
741
|
-
"type": 1,
|
742
|
-
"value": "the_singular"
|
743
|
-
}, {
|
744
|
-
"type": 0,
|
745
|
-
"value": " has been created."
|
746
|
-
}]
|
747
|
-
},
|
748
|
-
confirm_delete: {
|
749
|
-
"id": "resources.confirm_delete",
|
750
|
-
"defaultMessage": [{
|
751
|
-
"type": 0,
|
752
|
-
"value": "Are you sure you want to delete item #"
|
753
|
-
}, {
|
754
|
-
"type": 1,
|
755
|
-
"value": "id"
|
756
|
-
}, {
|
757
|
-
"type": 0,
|
758
|
-
"value": "?"
|
759
|
-
}]
|
760
|
-
},
|
761
|
-
deleted: {
|
762
|
-
"id": "resources.deleted",
|
763
|
-
"defaultMessage": [{
|
764
|
-
"type": 1,
|
765
|
-
"value": "the_singular"
|
766
|
-
}, {
|
767
|
-
"type": 0,
|
768
|
-
"value": " has been deleted."
|
769
|
-
}]
|
770
|
-
},
|
771
|
-
loading: {
|
772
|
-
"id": "resources.loading",
|
773
|
-
"defaultMessage": [{
|
774
|
-
"type": 0,
|
775
|
-
"value": "Loading "
|
776
|
-
}, {
|
777
|
-
"type": 1,
|
778
|
-
"value": "plural"
|
779
|
-
}, {
|
780
|
-
"type": 0,
|
781
|
-
"value": "..."
|
782
|
-
}]
|
783
|
-
}
|
784
|
-
});
|
575
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
576
|
+
className: classNames__default["default"](['py-4', (_ref2 = {}, _defineProperty__default["default"](_ref2, "bg-".concat(background), background !== null), _defineProperty__default["default"](_ref2, "text-".concat(text), text !== null), _defineProperty__default["default"](_ref2, "border-bottom", background || text !== null), _defineProperty__default["default"](_ref2, className, className !== null), _ref2)])
|
577
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
578
|
+
className: "container-sm"
|
579
|
+
}, small ? /*#__PURE__*/React__default["default"].createElement("div", {
|
580
|
+
className: "row justify-content-center"
|
581
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
582
|
+
className: "col-12 col-md-8 col-lg-7"
|
583
|
+
}, inner)) : inner), children);
|
584
|
+
};
|
785
585
|
|
786
|
-
|
586
|
+
PageHeader.propTypes = propTypes$g;
|
587
|
+
PageHeader.defaultProps = defaultProps$g;
|
588
|
+
|
589
|
+
var propTypes$f = {
|
787
590
|
resource: core.PropTypes.resource.isRequired
|
788
591
|
};
|
789
|
-
var defaultProps$
|
592
|
+
var defaultProps$f = {};
|
790
593
|
|
791
594
|
var ResourceCreatePage = function ResourceCreatePage(_ref) {
|
792
595
|
var resource = _ref.resource;
|
793
|
-
var
|
596
|
+
var navigate = reactRouter.useNavigate();
|
597
|
+
|
598
|
+
var _useLocation = reactRouter.useLocation(),
|
599
|
+
search = _useLocation.search;
|
600
|
+
|
794
601
|
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
795
602
|
var onSuccess = React.useCallback(function () {
|
796
|
-
|
797
|
-
}, [
|
798
|
-
|
603
|
+
navigate("".concat(resourceRoute('index'), "?created=true"));
|
604
|
+
}, [navigate, resourceRoute]);
|
605
|
+
|
606
|
+
var _useMemo = React.useMemo(function () {
|
607
|
+
return queryString.parse(search);
|
608
|
+
}, [search]),
|
609
|
+
_useMemo$type = _useMemo.type,
|
610
|
+
type = _useMemo$type === void 0 ? null : _useMemo$type;
|
611
|
+
|
612
|
+
var resourceValues = intl.useResourceValues(resource);
|
613
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
|
799
614
|
resource: resource
|
800
|
-
}, /*#__PURE__*/React__default[
|
801
|
-
title: /*#__PURE__*/React__default[
|
802
|
-
|
803
|
-
|
615
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
|
616
|
+
title: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
617
|
+
values: resourceValues,
|
618
|
+
id: "6viUpq",
|
619
|
+
defaultMessage: [{
|
620
|
+
"type": 0,
|
621
|
+
"value": "Create "
|
622
|
+
}, {
|
623
|
+
"type": 1,
|
624
|
+
"value": "a_singular"
|
625
|
+
}]
|
804
626
|
}),
|
805
627
|
small: true
|
806
|
-
}), /*#__PURE__*/React__default[
|
628
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
807
629
|
className: "container-sm py-4"
|
808
|
-
}, /*#__PURE__*/React__default[
|
630
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
809
631
|
className: "row justify-content-center"
|
810
|
-
}, /*#__PURE__*/React__default[
|
632
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
811
633
|
className: "col-12 col-md-8 col-lg-7"
|
812
|
-
}, /*#__PURE__*/React__default[
|
634
|
+
}, /*#__PURE__*/React__default["default"].createElement(ResourceForm, {
|
813
635
|
resource: resource,
|
814
|
-
|
636
|
+
type: type,
|
815
637
|
onSuccess: onSuccess
|
816
638
|
}))))));
|
817
639
|
};
|
818
640
|
|
819
|
-
ResourceCreatePage.propTypes = propTypes$
|
820
|
-
ResourceCreatePage.defaultProps = defaultProps$
|
641
|
+
ResourceCreatePage.propTypes = propTypes$f;
|
642
|
+
ResourceCreatePage.defaultProps = defaultProps$f;
|
821
643
|
|
822
|
-
var propTypes$
|
823
|
-
resource: core.PropTypes.resource.isRequired
|
824
|
-
itemId: PropTypes__default['default'].string.isRequired
|
644
|
+
var propTypes$e = {
|
645
|
+
resource: core.PropTypes.resource.isRequired
|
825
646
|
};
|
826
|
-
var defaultProps$
|
647
|
+
var defaultProps$e = {};
|
827
648
|
|
828
649
|
var ResourceDeletePage = function ResourceDeletePage(_ref) {
|
829
|
-
var resource = _ref.resource
|
830
|
-
|
831
|
-
var
|
650
|
+
var resource = _ref.resource;
|
651
|
+
|
652
|
+
var _useParams = reactRouter.useParams(),
|
653
|
+
itemId = _useParams.id;
|
654
|
+
|
655
|
+
var navigate = reactRouter.useNavigate();
|
832
656
|
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
833
657
|
|
834
658
|
var _useResourceItem = data.useResourceItem(resource, itemId),
|
835
659
|
item = _useResourceItem.item;
|
836
660
|
|
837
661
|
var onSuccess = React.useCallback(function () {
|
838
|
-
return
|
839
|
-
}, [
|
662
|
+
return navigate("".concat(resourceRoute('index'), "?deleted=true"));
|
663
|
+
}, [navigate, resourceRoute]); // Navigate back
|
840
664
|
|
841
|
-
var _ref2 = history ||
|
842
|
-
entries = _ref2.entries,
|
843
|
-
|
665
|
+
var _ref2 = history || {},
|
666
|
+
_ref2$entries = _ref2.entries,
|
667
|
+
entries = _ref2$entries === void 0 ? [] : _ref2$entries;
|
844
668
|
|
845
|
-
var previousEntry = length > 1 ? entries[length - 2] : null;
|
669
|
+
var previousEntry = entries !== null && entries.length > 1 ? entries[entries.length - 2] : null;
|
846
670
|
var previous = (previousEntry === null || previousEntry === void 0 ? void 0 : previousEntry.pathname) || null;
|
847
|
-
|
671
|
+
var resourceValues = intl.useResourceValues(resource);
|
672
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
|
848
673
|
resource: resource
|
849
|
-
}, /*#__PURE__*/React__default[
|
850
|
-
title: /*#__PURE__*/React__default[
|
851
|
-
|
852
|
-
|
674
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
|
675
|
+
title: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
676
|
+
values: resourceValues,
|
677
|
+
id: "zN5N/Q",
|
678
|
+
defaultMessage: [{
|
679
|
+
"type": 0,
|
680
|
+
"value": "Delete "
|
681
|
+
}, {
|
682
|
+
"type": 1,
|
683
|
+
"value": "a_singular"
|
684
|
+
}]
|
853
685
|
}),
|
854
686
|
small: true
|
855
|
-
}), /*#__PURE__*/React__default[
|
687
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
856
688
|
className: "container-sm py-4"
|
857
|
-
}, /*#__PURE__*/React__default[
|
689
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
858
690
|
className: "row justify-content-center"
|
859
|
-
}, /*#__PURE__*/React__default[
|
691
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
860
692
|
className: "col-12 col-md-8 col-lg-7"
|
861
|
-
}, item !== null ? /*#__PURE__*/React__default[
|
862
|
-
component: "
|
693
|
+
}, item !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceForm, {
|
694
|
+
component: "",
|
863
695
|
resource: resource,
|
864
|
-
messages: messages$1,
|
865
696
|
item: item,
|
866
697
|
onSuccess: onSuccess,
|
867
698
|
previous: previous,
|
@@ -869,26 +700,29 @@ var ResourceDeletePage = function ResourceDeletePage(_ref) {
|
|
869
700
|
}) : null)))));
|
870
701
|
};
|
871
702
|
|
872
|
-
ResourceDeletePage.propTypes = propTypes$
|
873
|
-
ResourceDeletePage.defaultProps = defaultProps$
|
703
|
+
ResourceDeletePage.propTypes = propTypes$e;
|
704
|
+
ResourceDeletePage.defaultProps = defaultProps$e;
|
874
705
|
|
875
|
-
var propTypes$
|
876
|
-
resource: core.PropTypes.resource.isRequired
|
877
|
-
itemId: PropTypes__default['default'].string.isRequired
|
706
|
+
var propTypes$d = {
|
707
|
+
resource: core.PropTypes.resource.isRequired
|
878
708
|
};
|
879
|
-
var defaultProps$
|
709
|
+
var defaultProps$d = {};
|
880
710
|
|
881
711
|
var ResourceEditPage = function ResourceEditPage(_ref) {
|
882
|
-
var resource = _ref.resource
|
883
|
-
|
712
|
+
var resource = _ref.resource;
|
713
|
+
|
714
|
+
var _useParams = reactRouter.useParams(),
|
715
|
+
itemId = _useParams.id;
|
884
716
|
|
885
|
-
// console.log(itemId);
|
886
|
-
// const resourceRoute = useResourceUrlGenerator(resource);
|
887
717
|
var _useResourceItem = data.useResourceItem(resource, itemId),
|
888
718
|
item = _useResourceItem.item;
|
889
719
|
|
720
|
+
var _ref2 = item || {},
|
721
|
+
_ref2$type = _ref2.type,
|
722
|
+
type = _ref2$type === void 0 ? null : _ref2$type;
|
723
|
+
|
890
724
|
var _useState = React.useState(item),
|
891
|
-
_useState2 = _slicedToArray__default[
|
725
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
892
726
|
editItem = _useState2[0],
|
893
727
|
setEditItem = _useState2[1];
|
894
728
|
|
@@ -898,36 +732,44 @@ var ResourceEditPage = function ResourceEditPage(_ref) {
|
|
898
732
|
React.useEffect(function () {
|
899
733
|
setEditItem(item);
|
900
734
|
}, [item, setEditItem]);
|
901
|
-
|
735
|
+
var resourceValues = intl.useResourceValues(resource);
|
736
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
|
902
737
|
resource: resource
|
903
|
-
}, /*#__PURE__*/React__default[
|
904
|
-
title: /*#__PURE__*/React__default[
|
905
|
-
|
906
|
-
|
738
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
|
739
|
+
title: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
740
|
+
values: resourceValues,
|
741
|
+
id: "mCfzkJ",
|
742
|
+
defaultMessage: [{
|
743
|
+
"type": 0,
|
744
|
+
"value": "Edit "
|
745
|
+
}, {
|
746
|
+
"type": 1,
|
747
|
+
"value": "a_singular"
|
748
|
+
}]
|
907
749
|
}),
|
908
750
|
small: true
|
909
|
-
}), /*#__PURE__*/React__default[
|
751
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
910
752
|
className: "container-sm py-4"
|
911
|
-
}, /*#__PURE__*/React__default[
|
753
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
912
754
|
className: "row justify-content-center"
|
913
|
-
}, /*#__PURE__*/React__default[
|
755
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
914
756
|
className: "col-12 col-md-8 col-lg-7"
|
915
|
-
}, editItem !== null ? /*#__PURE__*/React__default[
|
757
|
+
}, editItem !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceForm, {
|
916
758
|
resource: resource,
|
917
|
-
messages: messages$1,
|
918
759
|
item: editItem,
|
760
|
+
type: type,
|
919
761
|
onSuccess: onSuccess
|
920
762
|
}) : null)))));
|
921
763
|
};
|
922
764
|
|
923
|
-
ResourceEditPage.propTypes = propTypes$
|
924
|
-
ResourceEditPage.defaultProps = defaultProps$
|
765
|
+
ResourceEditPage.propTypes = propTypes$d;
|
766
|
+
ResourceEditPage.defaultProps = defaultProps$d;
|
925
767
|
|
926
|
-
var propTypes$
|
768
|
+
var propTypes$c = {
|
927
769
|
resource: core.PropTypes.resource.isRequired,
|
928
|
-
className: PropTypes__default[
|
770
|
+
className: PropTypes__default["default"].string
|
929
771
|
};
|
930
|
-
var defaultProps$
|
772
|
+
var defaultProps$c = {
|
931
773
|
className: null
|
932
774
|
};
|
933
775
|
|
@@ -935,42 +777,58 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
|
|
935
777
|
var resource = _ref.resource,
|
936
778
|
className = _ref.className;
|
937
779
|
var _resource$types = resource.types,
|
938
|
-
types = _resource$types === void 0 ? null : _resource$types;
|
780
|
+
types = _resource$types === void 0 ? null : _resource$types; // const intl = useIntl();
|
781
|
+
|
939
782
|
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
783
|
+
var resourceValues = intl.useResourceValues(resource);
|
940
784
|
|
941
785
|
var _useState = React.useState(false),
|
942
|
-
_useState2 = _slicedToArray__default[
|
786
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
943
787
|
dropdownOpened = _useState2[0],
|
944
788
|
setDropdownOpened = _useState2[1];
|
945
789
|
|
946
790
|
var onClickDropdown = React.useCallback(function (e) {
|
947
791
|
e.preventDefault();
|
948
|
-
setDropdownOpened(
|
949
|
-
|
950
|
-
|
951
|
-
|
792
|
+
setDropdownOpened(function (opened) {
|
793
|
+
return !opened;
|
794
|
+
});
|
795
|
+
}, [setDropdownOpened]);
|
796
|
+
var finalTypes = types !== null ? types.filter(function (_ref2) {
|
797
|
+
var _ref2$settings = _ref2.settings;
|
798
|
+
_ref2$settings = _ref2$settings === void 0 ? {} : _ref2$settings;
|
799
|
+
var _ref2$settings$canCre = _ref2$settings.canCreate,
|
800
|
+
canCreate = _ref2$settings$canCre === void 0 ? true : _ref2$settings$canCre;
|
801
|
+
return canCreate;
|
802
|
+
}) : null;
|
803
|
+
var hasMultipleTypes = finalTypes !== null && finalTypes.length > 1;
|
804
|
+
var onDropdownClickOutside = React.useCallback(function () {
|
805
|
+
setDropdownOpened(false);
|
806
|
+
}, [setDropdownOpened]);
|
807
|
+
var button = /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
808
|
+
href: !hasMultipleTypes ? "".concat(resourceRoute('create')).concat(finalTypes !== null && finalTypes.length === 1 ? "?type=".concat(finalTypes[0].id) : '') : '#',
|
952
809
|
size: "lg",
|
953
810
|
theme: "primary",
|
954
|
-
className: classNames__default[
|
955
|
-
'dropdown-toggle':
|
811
|
+
className: classNames__default["default"]([_defineProperty__default["default"]({
|
812
|
+
'dropdown-toggle': hasMultipleTypes
|
956
813
|
}, className, className !== null)]),
|
957
|
-
onClick:
|
958
|
-
}, /*#__PURE__*/React__default[
|
959
|
-
|
960
|
-
|
814
|
+
onClick: hasMultipleTypes ? onClickDropdown : null
|
815
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
816
|
+
values: resourceValues,
|
817
|
+
id: "l+ddDH",
|
818
|
+
defaultMessage: [{
|
819
|
+
"type": 0,
|
820
|
+
"value": "Create "
|
821
|
+
}, {
|
822
|
+
"type": 1,
|
823
|
+
"value": "a_singular"
|
824
|
+
}]
|
961
825
|
}));
|
962
|
-
return
|
963
|
-
className: classNames__default[
|
826
|
+
return hasMultipleTypes ? /*#__PURE__*/React__default["default"].createElement("div", {
|
827
|
+
className: classNames__default["default"](['dropdown', {
|
964
828
|
show: dropdownOpened
|
965
829
|
}])
|
966
|
-
}, button, /*#__PURE__*/React__default[
|
967
|
-
items:
|
968
|
-
var _ref3$settings = _ref3.settings;
|
969
|
-
_ref3$settings = _ref3$settings === void 0 ? {} : _ref3$settings;
|
970
|
-
var _ref3$settings$can_cr = _ref3$settings.can_create,
|
971
|
-
canCreate = _ref3$settings$can_cr === void 0 ? true : _ref3$settings$can_cr;
|
972
|
-
return canCreate;
|
973
|
-
}).map(function (it) {
|
830
|
+
}, button, /*#__PURE__*/React__default["default"].createElement(Dropdown__default["default"], {
|
831
|
+
items: finalTypes.map(function (it) {
|
974
832
|
return {
|
975
833
|
id: it.id,
|
976
834
|
label: it.name,
|
@@ -978,136 +836,160 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
|
|
978
836
|
};
|
979
837
|
}),
|
980
838
|
visible: dropdownOpened,
|
981
|
-
align: "
|
839
|
+
align: "end",
|
840
|
+
onClickOutside: onDropdownClickOutside
|
982
841
|
})) : button;
|
983
842
|
};
|
984
843
|
|
985
|
-
ResourceCreateButtom.propTypes = propTypes$
|
986
|
-
ResourceCreateButtom.defaultProps = defaultProps$
|
987
|
-
|
988
|
-
var getValueWithout = function getValueWithout(value, withoutKey) {
|
989
|
-
return value !== null ? _objectSpread__default['default']({}, Object.keys(value).reduce(function (newValueMap, key) {
|
990
|
-
return key !== withoutKey ? _objectSpread__default['default'](_objectSpread__default['default']({}, newValueMap), {}, _defineProperty__default['default']({}, key, value[key])) : newValueMap;
|
991
|
-
}, {})) : null;
|
992
|
-
};
|
844
|
+
ResourceCreateButtom.propTypes = propTypes$c;
|
845
|
+
ResourceCreateButtom.defaultProps = defaultProps$c;
|
993
846
|
|
994
|
-
var
|
995
|
-
|
996
|
-
|
847
|
+
var _excluded$3 = ["component", "name", "groupLabel"];
|
848
|
+
var propTypes$b = {
|
849
|
+
filters: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
|
850
|
+
id: PropTypes__default["default"].string.isRequired,
|
851
|
+
component: PropTypes__default["default"].string.isRequired
|
852
|
+
})),
|
853
|
+
value: PropTypes__default["default"].object,
|
997
854
|
// eslint-disable-line react/forbid-prop-types
|
998
|
-
onChange: PropTypes__default[
|
999
|
-
|
1000
|
-
withContainer: PropTypes__default[
|
1001
|
-
withReset: PropTypes__default[
|
1002
|
-
|
855
|
+
onChange: PropTypes__default["default"].func,
|
856
|
+
onReset: PropTypes__default["default"].func,
|
857
|
+
withContainer: PropTypes__default["default"].bool,
|
858
|
+
withReset: PropTypes__default["default"].bool,
|
859
|
+
defaultValue: PropTypes__default["default"].objectOf(PropTypes__default["default"].object),
|
860
|
+
// eslint-disable-line react/forbid-prop-types
|
861
|
+
className: PropTypes__default["default"].string
|
1003
862
|
};
|
1004
|
-
var defaultProps$
|
863
|
+
var defaultProps$b = {
|
1005
864
|
filters: [],
|
1006
865
|
value: null,
|
1007
866
|
onChange: null,
|
1008
|
-
|
867
|
+
onReset: null,
|
1009
868
|
withContainer: false,
|
1010
|
-
withReset:
|
869
|
+
withReset: true,
|
870
|
+
defaultValue: {
|
871
|
+
page: null
|
872
|
+
},
|
1011
873
|
className: null
|
1012
874
|
};
|
1013
875
|
|
1014
876
|
var ResourceFilters = function ResourceFilters(_ref) {
|
1015
877
|
var filters = _ref.filters,
|
1016
|
-
|
878
|
+
value = _ref.value,
|
1017
879
|
onChange = _ref.onChange,
|
1018
|
-
|
880
|
+
onReset = _ref.onReset,
|
1019
881
|
withContainer = _ref.withContainer,
|
1020
882
|
withReset = _ref.withReset,
|
883
|
+
defaultValue = _ref.defaultValue,
|
1021
884
|
className = _ref.className;
|
1022
885
|
var FilterComponents = contexts.useFiltersComponents();
|
1023
886
|
|
1024
|
-
var
|
1025
|
-
|
1026
|
-
value = _useState2[0],
|
1027
|
-
setValue = _useState2[1];
|
1028
|
-
|
1029
|
-
var onFormChange = React.useCallback(function (newFieldValue, key) {
|
1030
|
-
var newValue = newFieldValue !== null ? _objectSpread__default['default'](_objectSpread__default['default']({}, value), {}, _defineProperty__default['default']({}, key, newFieldValue)) : getValueWithout(value, key);
|
1031
|
-
setValue(newValue);
|
887
|
+
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
888
|
+
background = _usePanneauColorSchem.background;
|
1032
889
|
|
1033
|
-
|
1034
|
-
|
890
|
+
var currentFilters = filters || [];
|
891
|
+
var onFiltersReset = React.useCallback(function () {
|
892
|
+
if (onReset !== null) {
|
893
|
+
onReset(null);
|
1035
894
|
}
|
1036
|
-
}, [
|
1037
|
-
var
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
return
|
1043
|
-
});
|
1044
|
-
|
1045
|
-
|
895
|
+
}, [onReset]);
|
896
|
+
var hasActiveFilter = (currentFilters || []).reduce(function (isActive, item) {
|
897
|
+
if (value !== null && value[item.name]) {
|
898
|
+
return true;
|
899
|
+
}
|
900
|
+
|
901
|
+
return isActive;
|
902
|
+
}, false); // console.log('value', value);
|
903
|
+
|
904
|
+
return /*#__PURE__*/React__default["default"].createElement(Navbar__default["default"], {
|
905
|
+
className: classNames__default["default"]([_defineProperty__default["default"]({
|
1046
906
|
'navbar-expand-md': withContainer
|
1047
|
-
}, className, className !== null)]),
|
907
|
+
}, className, className !== null), 'justify-content-start', 'align-items-start', 'flex-column', 'flex-md-row']),
|
908
|
+
theme: background,
|
1048
909
|
withoutCollapse: true
|
1049
|
-
},
|
1050
|
-
var
|
1051
|
-
|
910
|
+
}, currentFilters.map(function (_ref3, index) {
|
911
|
+
var component = _ref3.component,
|
912
|
+
name = _ref3.name,
|
913
|
+
groupLabel = _ref3.groupLabel,
|
914
|
+
filterProps = _objectWithoutProperties__default["default"](_ref3, _excluded$3);
|
915
|
+
|
1052
916
|
var FilterComponent = utils.getComponentFromName(component, FilterComponents, null);
|
1053
|
-
|
1054
|
-
|
1055
|
-
onChange
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
917
|
+
var filterValue = value !== null && value[name] ? value[name] : null;
|
918
|
+
var onFilterChange = React.useCallback(function (newFilterValue) {
|
919
|
+
if (name !== null && onChange !== null) {
|
920
|
+
onChange(_objectSpread__default["default"](_objectSpread__default["default"]({}, value), {}, _defineProperty__default["default"]({}, name, newFilterValue), defaultValue));
|
921
|
+
}
|
922
|
+
}, [onChange, name, value, defaultValue]);
|
923
|
+
var onFilterClear = React.useCallback(function () {
|
924
|
+
if (name !== null && onChange !== null) {
|
925
|
+
var _ref4 = value || {};
|
926
|
+
_ref4[name];
|
927
|
+
var newValue = _objectWithoutProperties__default["default"](_ref4, [name].map(_toPropertyKey__default["default"]));
|
928
|
+
|
929
|
+
onChange(_objectSpread__default["default"](_objectSpread__default["default"]({}, newValue), defaultValue));
|
930
|
+
}
|
931
|
+
}, [onChange, name, value, defaultValue]);
|
932
|
+
return FilterComponent !== null ? /*#__PURE__*/React__default["default"].createElement(FormGroup__default["default"], {
|
933
|
+
key: "filter-".concat(name, "-").concat(index + 1),
|
934
|
+
label: groupLabel,
|
935
|
+
className: "me-4"
|
936
|
+
}, /*#__PURE__*/React__default["default"].createElement(FilterComponent, Object.assign({}, filterProps, {
|
937
|
+
value: filterValue,
|
938
|
+
onChange: onFilterChange,
|
939
|
+
onClear: onFilterClear
|
940
|
+
}))) : null;
|
941
|
+
}), withReset && hasActiveFilter && currentFilters.length > 0 ? /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
1067
942
|
theme: "primary",
|
1068
|
-
onClick:
|
1069
|
-
}, /*#__PURE__*/React__default[
|
1070
|
-
|
1071
|
-
defaultMessage: [{
|
1072
|
-
"type": 0,
|
1073
|
-
"value": "Reset"
|
1074
|
-
}]
|
943
|
+
onClick: onFiltersReset
|
944
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
|
945
|
+
icon: freeSolidSvgIcons.faUndo
|
1075
946
|
})) : null);
|
1076
947
|
};
|
1077
948
|
|
1078
|
-
ResourceFilters.propTypes = propTypes$
|
1079
|
-
ResourceFilters.defaultProps = defaultProps$
|
949
|
+
ResourceFilters.propTypes = propTypes$b;
|
950
|
+
ResourceFilters.defaultProps = defaultProps$b;
|
1080
951
|
|
1081
|
-
var _excluded = ["
|
1082
|
-
|
952
|
+
var _excluded$2 = ["component", "showPagination", "filters"],
|
953
|
+
_excluded2 = ["page"];
|
954
|
+
var propTypes$a = {
|
1083
955
|
resource: core.PropTypes.resource.isRequired,
|
1084
|
-
query: PropTypes__default[
|
956
|
+
query: PropTypes__default["default"].object,
|
1085
957
|
// eslint-disable-line react/forbid-prop-types
|
1086
|
-
paginated: PropTypes__default[
|
1087
|
-
|
1088
|
-
|
958
|
+
paginated: PropTypes__default["default"].bool,
|
959
|
+
baseUrl: PropTypes__default["default"].string,
|
960
|
+
component: PropTypes__default["default"].oneOfType([PropTypes__default["default"].elementType, PropTypes__default["default"].string]),
|
961
|
+
componentProps: PropTypes__default["default"].object,
|
1089
962
|
// eslint-disable-line react/forbid-prop-types
|
1090
|
-
|
1091
|
-
|
963
|
+
onQueryChange: PropTypes__default["default"].func,
|
964
|
+
onQueryReset: PropTypes__default["default"].func
|
1092
965
|
};
|
1093
|
-
var defaultProps$
|
966
|
+
var defaultProps$a = {
|
1094
967
|
query: null,
|
1095
968
|
paginated: true,
|
1096
969
|
component: null,
|
970
|
+
baseUrl: null,
|
1097
971
|
componentProps: null,
|
1098
|
-
|
1099
|
-
|
972
|
+
onQueryChange: null,
|
973
|
+
onQueryReset: null
|
1100
974
|
};
|
1101
975
|
|
1102
976
|
var ResourceItemsList = function ResourceItemsList(_ref) {
|
1103
977
|
var resource = _ref.resource,
|
1104
|
-
component = _ref.component,
|
1105
|
-
componentProps = _ref.componentProps,
|
1106
978
|
query = _ref.query,
|
979
|
+
baseUrl = _ref.baseUrl,
|
1107
980
|
onQueryChange = _ref.onQueryChange,
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
981
|
+
onQueryReset = _ref.onQueryReset,
|
982
|
+
paginated = _ref.paginated;
|
983
|
+
var _resource$index = resource.index;
|
984
|
+
_resource$index = _resource$index === void 0 ? {} : _resource$index;
|
985
|
+
|
986
|
+
var _resource$index$compo = _resource$index.component,
|
987
|
+
listComponent = _resource$index$compo === void 0 ? null : _resource$index$compo,
|
988
|
+
_resource$index$showP = _resource$index.showPagination,
|
989
|
+
showPagination = _resource$index$showP === void 0 ? true : _resource$index$showP,
|
990
|
+
_resource$index$filte = _resource$index.filters,
|
991
|
+
filters = _resource$index$filte === void 0 ? null : _resource$index$filte,
|
992
|
+
listProps = _objectWithoutProperties__default["default"](_resource$index, _excluded$2);
|
1111
993
|
|
1112
994
|
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
1113
995
|
_usePanneauColorSchem2 = _usePanneauColorSchem.background,
|
@@ -1115,48 +997,77 @@ var ResourceItemsList = function ResourceItemsList(_ref) {
|
|
1115
997
|
|
1116
998
|
var ListComponents = contexts.useListsComponents();
|
1117
999
|
|
1118
|
-
var
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1000
|
+
var _useMemo = React.useMemo(function () {
|
1001
|
+
var _ref2 = query || {},
|
1002
|
+
_ref2$page = _ref2.page,
|
1003
|
+
currentPage = _ref2$page === void 0 ? 1 : _ref2$page,
|
1004
|
+
rest = _objectWithoutProperties__default["default"](_ref2, _excluded2);
|
1005
|
+
|
1006
|
+
return [currentPage, rest];
|
1007
|
+
}, [query]),
|
1008
|
+
_useMemo2 = _slicedToArray__default["default"](_useMemo, 2),
|
1009
|
+
page = _useMemo2[0],
|
1010
|
+
queryWithoutPage = _useMemo2[1];
|
1011
|
+
|
1012
|
+
var itemsProps = data.useResourceItems(resource, queryWithoutPage, paginated ? parseInt(page, 10) : null);
|
1013
|
+
|
1014
|
+
var _ref3 = itemsProps || {},
|
1015
|
+
_ref3$lastPage = _ref3.lastPage,
|
1016
|
+
lastPage = _ref3$lastPage === void 0 ? 0 : _ref3$lastPage,
|
1017
|
+
_ref3$total = _ref3.total,
|
1018
|
+
total = _ref3$total === void 0 ? 0 : _ref3$total;
|
1019
|
+
|
1020
|
+
var ListComponent = utils.getComponentFromName(listComponent || 'table', ListComponents);
|
1021
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, filters !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceFilters, {
|
1022
|
+
filters: filters,
|
1131
1023
|
value: query,
|
1132
|
-
|
1133
|
-
|
1134
|
-
}) : null,
|
1135
|
-
page:
|
1024
|
+
onChange: onQueryChange,
|
1025
|
+
onReset: onQueryReset
|
1026
|
+
}) : null, paginated && showPagination ? /*#__PURE__*/React__default["default"].createElement(Pagination__default["default"], {
|
1027
|
+
page: page,
|
1028
|
+
lastPage: lastPage,
|
1029
|
+
total: total,
|
1030
|
+
url: baseUrl,
|
1031
|
+
query: query,
|
1032
|
+
className: "mt-1 mb-1"
|
1033
|
+
}) : null, ListComponent !== null ? /*#__PURE__*/React__default["default"].createElement(ListComponent, Object.assign({}, itemsProps, listProps, {
|
1136
1034
|
resource: resource,
|
1035
|
+
baseUrl: baseUrl,
|
1137
1036
|
query: query,
|
1138
|
-
onQueryChange:
|
1037
|
+
onQueryChange: onQueryChange,
|
1038
|
+
onQueryReset: onQueryReset,
|
1139
1039
|
theme: theme
|
1140
|
-
})) : null
|
1040
|
+
})) : null, paginated && showPagination ? /*#__PURE__*/React__default["default"].createElement(Pagination__default["default"], {
|
1041
|
+
page: page,
|
1042
|
+
lastPage: lastPage,
|
1043
|
+
total: total,
|
1044
|
+
url: baseUrl,
|
1045
|
+
query: query,
|
1046
|
+
className: "mt-4 mb-1"
|
1047
|
+
}) : null);
|
1141
1048
|
};
|
1142
1049
|
|
1143
|
-
ResourceItemsList.propTypes = propTypes$
|
1144
|
-
ResourceItemsList.defaultProps = defaultProps$
|
1050
|
+
ResourceItemsList.propTypes = propTypes$a;
|
1051
|
+
ResourceItemsList.defaultProps = defaultProps$a;
|
1145
1052
|
|
1146
|
-
var
|
1147
|
-
|
1053
|
+
var _excluded$1 = ["id", "component"];
|
1054
|
+
var propTypes$9 = {
|
1055
|
+
resource: core.PropTypes.resource.isRequired,
|
1056
|
+
defaultActions: PropTypes__default["default"].arrayOf(PropTypes__default["default"].object) // eslint-disable-line react/forbid-prop-types
|
1057
|
+
|
1058
|
+
};
|
1059
|
+
var defaultProps$9 = {
|
1060
|
+
defaultActions: ['create']
|
1148
1061
|
};
|
1149
|
-
var defaultProps$a = {};
|
1150
1062
|
|
1151
1063
|
var ResourceIndexPage = function ResourceIndexPage(_ref) {
|
1152
|
-
var resource = _ref.resource
|
1064
|
+
var resource = _ref.resource,
|
1065
|
+
defaultActions = _ref.defaultActions;
|
1153
1066
|
var name = resource.name,
|
1154
1067
|
_resource$settings = resource.settings,
|
1155
1068
|
settings = _resource$settings === void 0 ? {} : _resource$settings,
|
1156
|
-
_resource$
|
1157
|
-
|
1158
|
-
var _resource$components$ = _resource$components.index,
|
1159
|
-
index = _resource$components$ === void 0 ? {} : _resource$components$;
|
1069
|
+
_resource$index = resource.index,
|
1070
|
+
index = _resource$index === void 0 ? {} : _resource$index;
|
1160
1071
|
|
1161
1072
|
var _ref2 = settings || {},
|
1162
1073
|
_ref2$canCreate = _ref2.canCreate,
|
@@ -1165,15 +1076,28 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
|
|
1165
1076
|
paginated = _ref2$indexIsPaginate === void 0 ? false : _ref2$indexIsPaginate;
|
1166
1077
|
|
1167
1078
|
var _ref3 = index || {},
|
1168
|
-
_ref3$
|
1169
|
-
|
1170
|
-
|
1171
|
-
|
1079
|
+
_ref3$actions = _ref3.actions,
|
1080
|
+
actions = _ref3$actions === void 0 ? null : _ref3$actions;
|
1081
|
+
|
1082
|
+
var finalActions = React.useMemo(function () {
|
1083
|
+
return (actions || defaultActions.filter(function (it) {
|
1084
|
+
return it !== 'create' || canCreate;
|
1085
|
+
})).map(function (it) {
|
1086
|
+
return it === 'create' ? {
|
1087
|
+
id: 'create',
|
1088
|
+
component: ResourceCreateButtom,
|
1089
|
+
size: 'lg',
|
1090
|
+
theme: 'primary'
|
1091
|
+
} : it;
|
1092
|
+
});
|
1093
|
+
}, [canCreate, actions]);
|
1094
|
+
var resourceValues = intl.useResourceValues(resource);
|
1095
|
+
var componentsManager = contexts.useComponentsManager();
|
1172
1096
|
|
1173
1097
|
var _useLocation = reactRouter.useLocation(),
|
1174
1098
|
search = _useLocation.search;
|
1175
1099
|
|
1176
|
-
var
|
1100
|
+
var navigate = reactRouter.useNavigate();
|
1177
1101
|
var query = React.useMemo(function () {
|
1178
1102
|
return queryString.parse(search);
|
1179
1103
|
}, [search]);
|
@@ -1190,163 +1114,172 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
|
|
1190
1114
|
var resourceRoute = hooks.useResourceUrlGenerator(resource);
|
1191
1115
|
var url = resourceRoute('index');
|
1192
1116
|
var onQueryChange = React.useCallback(function (submitQuery) {
|
1193
|
-
|
1117
|
+
var newQuery = submitQuery !== null ? Object.keys(submitQuery).reduce(function (currentQuery, key) {
|
1118
|
+
var value = submitQuery[key];
|
1119
|
+
return value !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, currentQuery), {}, _defineProperty__default["default"]({}, key, value)) : currentQuery;
|
1120
|
+
}, null) : null;
|
1121
|
+
navigate("".concat(url).concat(newQuery !== null ? "?".concat(queryString.stringify(newQuery, {
|
1194
1122
|
arrayFormat: 'bracket'
|
1195
|
-
})));
|
1196
|
-
}, [
|
1123
|
+
})) : ''));
|
1124
|
+
}, [navigate, url, query, paginated]);
|
1125
|
+
var onQueryReset = React.useCallback(function () {
|
1126
|
+
var queryString$1 = queryString.stringify(null, {
|
1127
|
+
arrayFormat: 'bracket'
|
1128
|
+
});
|
1129
|
+
navigate("".concat(url, "?").concat(queryString$1));
|
1130
|
+
}, [navigate, url, paginated]);
|
1197
1131
|
var onClickCloseAlert = React.useCallback(function () {
|
1198
1132
|
history.replace(url);
|
1199
1133
|
}, [history, url]);
|
1200
|
-
return /*#__PURE__*/React__default[
|
1134
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
|
1201
1135
|
resource: resource
|
1202
|
-
}, /*#__PURE__*/React__default[
|
1136
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
|
1203
1137
|
title: name,
|
1204
|
-
actions:
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1138
|
+
actions: finalActions.length > 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
1139
|
+
className: "d-flex align-items-center"
|
1140
|
+
}, finalActions.map(function (_ref5) {
|
1141
|
+
var id = _ref5.id,
|
1142
|
+
_ref5$component = _ref5.component,
|
1143
|
+
component = _ref5$component === void 0 ? Button__default["default"] : _ref5$component,
|
1144
|
+
actionProps = _objectWithoutProperties__default["default"](_ref5, _excluded$1);
|
1145
|
+
|
1146
|
+
var ActionComponent = isString__default["default"](component) ? componentsManager.getComponent(component) : component;
|
1147
|
+
return ActionComponent !== null ? /*#__PURE__*/React__default["default"].createElement(ActionComponent, Object.assign({
|
1148
|
+
key: "action-".concat(id)
|
1149
|
+
}, actionProps, ActionComponent !== Button__default["default"] ? {
|
1150
|
+
resource: resource,
|
1151
|
+
query: query,
|
1152
|
+
onQueryChange: onQueryChange
|
1153
|
+
} : {})) : null;
|
1154
|
+
})) : null
|
1155
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
1156
|
+
className: classNames__default["default"](['container-sm py-4'])
|
1157
|
+
}, created ? /*#__PURE__*/React__default["default"].createElement(Alert__default["default"], {
|
1212
1158
|
className: "mb-4",
|
1213
1159
|
onClose: onClickCloseAlert
|
1214
|
-
}, /*#__PURE__*/React__default[
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
1160
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1161
|
+
values: resourceValues,
|
1162
|
+
id: "bfP/d8",
|
1163
|
+
defaultMessage: [{
|
1164
|
+
"type": 1,
|
1165
|
+
"value": "The_singular"
|
1166
|
+
}, {
|
1167
|
+
"type": 0,
|
1168
|
+
"value": " has been created."
|
1169
|
+
}]
|
1170
|
+
})) : null, deleted ? /*#__PURE__*/React__default["default"].createElement(Alert__default["default"], {
|
1218
1171
|
className: "mb-4",
|
1219
1172
|
onClose: onClickCloseAlert
|
1220
|
-
}, /*#__PURE__*/React__default[
|
1221
|
-
|
1222
|
-
|
1223
|
-
|
1173
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1174
|
+
values: resourceValues,
|
1175
|
+
id: "dkRdks",
|
1176
|
+
defaultMessage: [{
|
1177
|
+
"type": 1,
|
1178
|
+
"value": "The_singular"
|
1179
|
+
}, {
|
1180
|
+
"type": 0,
|
1181
|
+
"value": " has been deleted."
|
1182
|
+
}]
|
1183
|
+
})) : null, /*#__PURE__*/React__default["default"].createElement(ResourceItemsList, {
|
1224
1184
|
resource: resource,
|
1225
|
-
messages: messages$1,
|
1226
1185
|
baseUrl: url,
|
1227
1186
|
query: listQuery,
|
1228
1187
|
paginated: paginated,
|
1229
|
-
|
1230
|
-
|
1231
|
-
onQueryChange: onQueryChange
|
1188
|
+
onQueryChange: onQueryChange,
|
1189
|
+
onQueryReset: onQueryReset
|
1232
1190
|
}))));
|
1233
1191
|
};
|
1234
1192
|
|
1235
|
-
ResourceIndexPage.propTypes = propTypes$
|
1236
|
-
ResourceIndexPage.defaultProps = defaultProps$
|
1193
|
+
ResourceIndexPage.propTypes = propTypes$9;
|
1194
|
+
ResourceIndexPage.defaultProps = defaultProps$9;
|
1237
1195
|
|
1238
|
-
var propTypes$
|
1196
|
+
var propTypes$8 = {
|
1239
1197
|
resource: core.PropTypes.resource.isRequired
|
1240
1198
|
};
|
1241
|
-
var defaultProps$
|
1199
|
+
var defaultProps$8 = {};
|
1242
1200
|
|
1243
1201
|
var ResourceShowPage = function ResourceShowPage(_ref) {
|
1244
1202
|
var resource = _ref.resource;
|
1245
|
-
return /*#__PURE__*/React__default[
|
1203
|
+
return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
|
1246
1204
|
resource: resource
|
1247
|
-
}, /*#__PURE__*/React__default[
|
1205
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
|
1248
1206
|
title: resource === null || resource === void 0 ? void 0 : resource.name
|
1249
|
-
}), /*#__PURE__*/React__default[
|
1207
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
1250
1208
|
className: "container-sm"
|
1251
1209
|
}, "Show page")));
|
1252
1210
|
};
|
1253
1211
|
|
1254
|
-
ResourceShowPage.propTypes = propTypes$
|
1255
|
-
ResourceShowPage.defaultProps = defaultProps$
|
1212
|
+
ResourceShowPage.propTypes = propTypes$8;
|
1213
|
+
ResourceShowPage.defaultProps = defaultProps$8;
|
1256
1214
|
|
1257
1215
|
/* eslint-disable react/jsx-props-no-spreading */
|
1258
|
-
var propTypes$
|
1259
|
-
var defaultProps$
|
1216
|
+
var propTypes$7 = {};
|
1217
|
+
var defaultProps$7 = {};
|
1260
1218
|
|
1261
1219
|
var HomePage = function HomePage() {
|
1262
1220
|
var route = contexts.useUrlGenerator();
|
1263
1221
|
var resources = contexts.usePanneauResources();
|
1264
|
-
|
1222
|
+
var visibleResources = resources.filter(function (_ref) {
|
1223
|
+
var _ref$settings = _ref.settings;
|
1224
|
+
_ref$settings = _ref$settings === void 0 ? {} : _ref$settings;
|
1225
|
+
var _ref$settings$hideInN = _ref$settings.hideInNavbar,
|
1226
|
+
hideInNavbar = _ref$settings$hideInN === void 0 ? false : _ref$settings$hideInN;
|
1227
|
+
return !hideInNavbar;
|
1228
|
+
});
|
1229
|
+
return /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
1265
1230
|
className: "container-sm py-4"
|
1266
|
-
},
|
1267
|
-
var
|
1268
|
-
resourceId =
|
1269
|
-
hasRoutes = _ref.has_routes;
|
1231
|
+
}, visibleResources.map(function (resource) {
|
1232
|
+
var _ref2 = resource || {},
|
1233
|
+
resourceId = _ref2.id;
|
1270
1234
|
|
1271
|
-
var
|
1272
|
-
return /*#__PURE__*/React__default[
|
1235
|
+
var resourceValues = intl.useResourceValues(resource);
|
1236
|
+
return /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, {
|
1273
1237
|
className: "d-block my-2",
|
1274
1238
|
key: "resource-link-".concat(resourceId),
|
1275
|
-
to: route(
|
1239
|
+
to: route('resources.index', {
|
1276
1240
|
resource: resourceId
|
1277
1241
|
})
|
1278
|
-
}, /*#__PURE__*/React__default[
|
1279
|
-
|
1280
|
-
|
1242
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1243
|
+
values: resourceValues,
|
1244
|
+
id: "FntHPK",
|
1245
|
+
defaultMessage: [{
|
1246
|
+
"type": 0,
|
1247
|
+
"value": "View "
|
1248
|
+
}, {
|
1249
|
+
"type": 1,
|
1250
|
+
"value": "the_plural"
|
1251
|
+
}]
|
1281
1252
|
}));
|
1282
1253
|
})));
|
1283
1254
|
};
|
1284
1255
|
|
1285
|
-
HomePage.propTypes = propTypes$
|
1286
|
-
HomePage.defaultProps = defaultProps$
|
1256
|
+
HomePage.propTypes = propTypes$7;
|
1257
|
+
HomePage.defaultProps = defaultProps$7;
|
1287
1258
|
|
1288
|
-
var propTypes$
|
1289
|
-
var defaultProps$
|
1259
|
+
var propTypes$6 = {};
|
1260
|
+
var defaultProps$6 = {};
|
1290
1261
|
|
1291
1262
|
var AccountPage = function AccountPage() {
|
1292
|
-
return /*#__PURE__*/React__default[
|
1263
|
+
return /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
1293
1264
|
className: "container-sm py-4"
|
1294
1265
|
}, "Account page"));
|
1295
1266
|
};
|
1296
1267
|
|
1297
|
-
AccountPage.propTypes = propTypes$
|
1298
|
-
AccountPage.defaultProps = defaultProps$
|
1299
|
-
|
1300
|
-
var propTypes$6 = {
|
1301
|
-
children: PropTypes__default['default'].node.isRequired,
|
1302
|
-
fullscreen: PropTypes__default['default'].bool
|
1303
|
-
};
|
1304
|
-
var defaultProps$6 = {
|
1305
|
-
fullscreen: false
|
1306
|
-
};
|
1307
|
-
|
1308
|
-
var GuestLayout = function GuestLayout(_ref) {
|
1309
|
-
var _classNames;
|
1310
|
-
|
1311
|
-
var fullscreen = _ref.fullscreen,
|
1312
|
-
children = _ref.children;
|
1313
|
-
|
1314
|
-
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
1315
|
-
background = _usePanneauColorSchem.background,
|
1316
|
-
text = _usePanneauColorSchem.text;
|
1317
|
-
|
1318
|
-
return /*#__PURE__*/React__default['default'].createElement("div", {
|
1319
|
-
className: classNames__default['default']({
|
1320
|
-
'd-flex flex-column min-vh-100': fullscreen
|
1321
|
-
})
|
1322
|
-
}, /*#__PURE__*/React__default['default'].createElement(MainNavbar, {
|
1323
|
-
className: classNames__default['default'](['sticky-top', 'px-3'])
|
1324
|
-
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
1325
|
-
className: classNames__default['default']((_classNames = {
|
1326
|
-
'd-flex flex-column flex-grow-1': fullscreen
|
1327
|
-
}, _defineProperty__default['default'](_classNames, "bg-".concat(background), background !== null), _defineProperty__default['default'](_classNames, "text-".concat(text), text !== null), _classNames))
|
1328
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
1329
|
-
className: classNames__default['default']({
|
1330
|
-
'w-100 my-auto': fullscreen
|
1331
|
-
})
|
1332
|
-
}, children)));
|
1333
|
-
};
|
1334
|
-
|
1335
|
-
GuestLayout.propTypes = propTypes$6;
|
1336
|
-
GuestLayout.defaultProps = defaultProps$6;
|
1268
|
+
AccountPage.propTypes = propTypes$6;
|
1269
|
+
AccountPage.defaultProps = defaultProps$6;
|
1337
1270
|
|
1338
1271
|
/* eslint-disable react/jsx-props-no-spreading */
|
1339
1272
|
var propTypes$5 = {
|
1340
1273
|
fields: core.PropTypes.fields,
|
1341
|
-
className: PropTypes__default[
|
1342
|
-
onSuccess: PropTypes__default[
|
1274
|
+
className: PropTypes__default["default"].string,
|
1275
|
+
onSuccess: PropTypes__default["default"].func
|
1343
1276
|
};
|
1344
1277
|
var defaultProps$5 = {
|
1345
1278
|
fields: [{
|
1346
1279
|
name: 'email',
|
1347
1280
|
type: 'email',
|
1348
1281
|
size: 'lg',
|
1349
|
-
label: /*#__PURE__*/React__default[
|
1282
|
+
label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1350
1283
|
id: "LI0Gz4",
|
1351
1284
|
defaultMessage: [{
|
1352
1285
|
"type": 0,
|
@@ -1357,7 +1290,7 @@ var defaultProps$5 = {
|
|
1357
1290
|
name: 'password',
|
1358
1291
|
type: 'password',
|
1359
1292
|
size: 'lg',
|
1360
|
-
label: /*#__PURE__*/React__default[
|
1293
|
+
label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1361
1294
|
id: "4yfet+",
|
1362
1295
|
defaultMessage: [{
|
1363
1296
|
"type": 0,
|
@@ -1375,7 +1308,7 @@ var LoginForm = function LoginForm(_ref) {
|
|
1375
1308
|
onSuccess = _ref.onSuccess;
|
1376
1309
|
var url = contexts.useUrlGenerator();
|
1377
1310
|
|
1378
|
-
var _useAuth = useAuth(),
|
1311
|
+
var _useAuth = auth.useAuth(),
|
1379
1312
|
login = _useAuth.login;
|
1380
1313
|
|
1381
1314
|
var postForm = React.useCallback(function (action, _ref2) {
|
@@ -1398,7 +1331,7 @@ var LoginForm = function LoginForm(_ref) {
|
|
1398
1331
|
errors = _useForm.errors;
|
1399
1332
|
|
1400
1333
|
var NormalForm = contexts.useFormComponent('normal');
|
1401
|
-
return /*#__PURE__*/React__default[
|
1334
|
+
return /*#__PURE__*/React__default["default"].createElement(NormalForm, {
|
1402
1335
|
action: url('auth.login'),
|
1403
1336
|
method: "post",
|
1404
1337
|
fields: fields,
|
@@ -1409,7 +1342,7 @@ var LoginForm = function LoginForm(_ref) {
|
|
1409
1342
|
errors: errors,
|
1410
1343
|
value: value,
|
1411
1344
|
onChange: setValue,
|
1412
|
-
submitButtonLabel: /*#__PURE__*/React__default[
|
1345
|
+
submitButtonLabel: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1413
1346
|
id: "g6qbbX",
|
1414
1347
|
defaultMessage: [{
|
1415
1348
|
"type": 0,
|
@@ -1422,38 +1355,76 @@ var LoginForm = function LoginForm(_ref) {
|
|
1422
1355
|
LoginForm.propTypes = propTypes$5;
|
1423
1356
|
LoginForm.defaultProps = defaultProps$5;
|
1424
1357
|
|
1358
|
+
var propTypes$4 = {
|
1359
|
+
children: PropTypes__default["default"].node.isRequired,
|
1360
|
+
fullscreen: PropTypes__default["default"].bool
|
1361
|
+
};
|
1362
|
+
var defaultProps$4 = {
|
1363
|
+
fullscreen: false
|
1364
|
+
};
|
1365
|
+
|
1366
|
+
var GuestLayout = function GuestLayout(_ref) {
|
1367
|
+
var _classNames;
|
1368
|
+
|
1369
|
+
var fullscreen = _ref.fullscreen,
|
1370
|
+
children = _ref.children;
|
1371
|
+
|
1372
|
+
var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
|
1373
|
+
background = _usePanneauColorSchem.background,
|
1374
|
+
text = _usePanneauColorSchem.text;
|
1375
|
+
|
1376
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
1377
|
+
className: classNames__default["default"]({
|
1378
|
+
'd-flex flex-column min-vh-100': fullscreen
|
1379
|
+
})
|
1380
|
+
}, /*#__PURE__*/React__default["default"].createElement(MainNavbar, {
|
1381
|
+
className: classNames__default["default"](['sticky-top', 'px-3'])
|
1382
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
1383
|
+
className: classNames__default["default"]((_classNames = {
|
1384
|
+
'd-flex flex-column flex-grow-1': fullscreen
|
1385
|
+
}, _defineProperty__default["default"](_classNames, "bg-".concat(background), background !== null), _defineProperty__default["default"](_classNames, "text-".concat(text), text !== null), _classNames))
|
1386
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1387
|
+
className: classNames__default["default"]({
|
1388
|
+
'w-100 my-auto': fullscreen
|
1389
|
+
})
|
1390
|
+
}, children)));
|
1391
|
+
};
|
1392
|
+
|
1393
|
+
GuestLayout.propTypes = propTypes$4;
|
1394
|
+
GuestLayout.defaultProps = defaultProps$4;
|
1395
|
+
|
1425
1396
|
/* eslint-disable react/jsx-props-no-spreading */
|
1426
|
-
var propTypes$
|
1427
|
-
var defaultProps$
|
1397
|
+
var propTypes$3 = {};
|
1398
|
+
var defaultProps$3 = {};
|
1428
1399
|
|
1429
1400
|
var LoginPage = function LoginPage() {
|
1430
1401
|
var route = contexts.useUrlGenerator();
|
1431
1402
|
var onSuccess = React.useCallback(function () {
|
1432
1403
|
window.location.href = route('home');
|
1433
1404
|
}, [route]);
|
1434
|
-
return /*#__PURE__*/React__default[
|
1405
|
+
return /*#__PURE__*/React__default["default"].createElement(GuestLayout, {
|
1435
1406
|
fullscreen: true
|
1436
|
-
}, /*#__PURE__*/React__default[
|
1407
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1437
1408
|
className: "container-sm py-4"
|
1438
|
-
}, /*#__PURE__*/React__default[
|
1409
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1439
1410
|
className: "row justify-content-center"
|
1440
|
-
}, /*#__PURE__*/React__default[
|
1411
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1441
1412
|
className: "col-12 col-sm-8 col-md-6"
|
1442
|
-
}, /*#__PURE__*/React__default[
|
1413
|
+
}, /*#__PURE__*/React__default["default"].createElement("h1", {
|
1443
1414
|
className: "mb-4"
|
1444
|
-
}, /*#__PURE__*/React__default[
|
1415
|
+
}, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
|
1445
1416
|
id: "AeOZq+",
|
1446
1417
|
defaultMessage: [{
|
1447
1418
|
"type": 0,
|
1448
1419
|
"value": "Login"
|
1449
1420
|
}]
|
1450
|
-
})), /*#__PURE__*/React__default[
|
1421
|
+
})), /*#__PURE__*/React__default["default"].createElement(LoginForm, {
|
1451
1422
|
onSuccess: onSuccess
|
1452
1423
|
})))));
|
1453
1424
|
};
|
1454
1425
|
|
1455
|
-
LoginPage.propTypes = propTypes$
|
1456
|
-
LoginPage.defaultProps = defaultProps$
|
1426
|
+
LoginPage.propTypes = propTypes$3;
|
1427
|
+
LoginPage.defaultProps = defaultProps$3;
|
1457
1428
|
|
1458
1429
|
var messages = reactIntl.defineMessages({
|
1459
1430
|
metaTitle401: {
|
@@ -1548,55 +1519,41 @@ var messages = reactIntl.defineMessages({
|
|
1548
1519
|
}]
|
1549
1520
|
}
|
1550
1521
|
});
|
1551
|
-
var propTypes$
|
1522
|
+
var propTypes$2 = {
|
1552
1523
|
statusCode: core.PropTypes.statusCode
|
1553
1524
|
};
|
1554
|
-
var defaultProps$
|
1525
|
+
var defaultProps$2 = {
|
1555
1526
|
statusCode: null
|
1556
1527
|
};
|
1557
1528
|
|
1558
1529
|
var ErrorPage = function ErrorPage(_ref) {
|
1559
1530
|
var statusCode = _ref.statusCode;
|
1560
|
-
return /*#__PURE__*/React__default[
|
1531
|
+
return /*#__PURE__*/React__default["default"].createElement(GuestLayout, {
|
1561
1532
|
fullscreen: true
|
1562
|
-
}, /*#__PURE__*/React__default[
|
1533
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1563
1534
|
className: "container-sm py-4"
|
1564
|
-
}, /*#__PURE__*/React__default[
|
1535
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1565
1536
|
className: "row justify-content-center"
|
1566
|
-
}, /*#__PURE__*/React__default[
|
1537
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
1567
1538
|
className: "col-12 col-sm-8 col-md-6"
|
1568
|
-
}, /*#__PURE__*/React__default[
|
1539
|
+
}, /*#__PURE__*/React__default["default"].createElement("h1", null, /*#__PURE__*/React__default["default"].createElement(Label__default["default"], null, messages["title".concat(statusCode || 404)])), /*#__PURE__*/React__default["default"].createElement("p", null, /*#__PURE__*/React__default["default"].createElement(Label__default["default"], null, messages["description".concat(statusCode || 404)]))))));
|
1569
1540
|
};
|
1570
1541
|
|
1571
|
-
ErrorPage.propTypes = propTypes$
|
1572
|
-
ErrorPage.defaultProps = defaultProps$
|
1573
|
-
|
1574
|
-
var basePages = /*#__PURE__*/Object.freeze({
|
1575
|
-
__proto__: null,
|
1576
|
-
ResourceCreate: ResourceCreatePage,
|
1577
|
-
ResourceDelete: ResourceDeletePage,
|
1578
|
-
ResourceEdit: ResourceEditPage,
|
1579
|
-
ResourceIndex: ResourceIndexPage,
|
1580
|
-
ResourceShow: ResourceShowPage,
|
1581
|
-
Home: HomePage,
|
1582
|
-
Account: AccountPage,
|
1583
|
-
Login: LoginPage,
|
1584
|
-
Error: ErrorPage
|
1585
|
-
});
|
1542
|
+
ErrorPage.propTypes = propTypes$2;
|
1543
|
+
ErrorPage.defaultProps = defaultProps$2;
|
1586
1544
|
|
1587
|
-
var
|
1588
|
-
resource: core.PropTypes.resource.isRequired
|
1589
|
-
};
|
1590
|
-
var defaultProps$2 = {};
|
1545
|
+
var _excluded = ["path", "component", "exact"];
|
1591
1546
|
|
1592
|
-
var
|
1593
|
-
var
|
1547
|
+
var createResourceRoutes = function createResourceRoutes(resource, _ref) {
|
1548
|
+
var route = _ref.route,
|
1549
|
+
componentsManager = _ref.componentsManager,
|
1550
|
+
_ref$pages = _ref.pages,
|
1551
|
+
pages = _ref$pages === void 0 ? {} : _ref$pages;
|
1594
1552
|
var resourceId = resource.id,
|
1595
|
-
hasRoutes = resource.has_routes,
|
1596
1553
|
_resource$pages = resource.pages,
|
1597
|
-
|
1598
|
-
|
1599
|
-
|
1554
|
+
resourcePages = _resource$pages === void 0 ? {} : _resource$pages,
|
1555
|
+
_resource$extraRoutes = resource.extraRoutes,
|
1556
|
+
extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes; // Load custom pages from resource
|
1600
1557
|
|
1601
1558
|
var _ref2 = pages || {},
|
1602
1559
|
_ref2$index = _ref2.index,
|
@@ -1610,76 +1567,85 @@ var ResourceRoutes = function ResourceRoutes(_ref) {
|
|
1610
1567
|
_ref2$delete = _ref2["delete"],
|
1611
1568
|
deletePage = _ref2$delete === void 0 ? null : _ref2$delete;
|
1612
1569
|
|
1613
|
-
var
|
1614
|
-
|
1615
|
-
|
1616
|
-
|
1617
|
-
|
1618
|
-
|
1619
|
-
|
1570
|
+
var _ref3 = resourcePages || {},
|
1571
|
+
_ref3$index = _ref3.index,
|
1572
|
+
resourceIndexPage = _ref3$index === void 0 ? null : _ref3$index,
|
1573
|
+
_ref3$show = _ref3.show,
|
1574
|
+
resourceShowPage = _ref3$show === void 0 ? null : _ref3$show,
|
1575
|
+
_ref3$create = _ref3.create,
|
1576
|
+
resourceCreatePage = _ref3$create === void 0 ? null : _ref3$create,
|
1577
|
+
_ref3$edit = _ref3.edit,
|
1578
|
+
resourceEditPage = _ref3$edit === void 0 ? null : _ref3$edit,
|
1579
|
+
_ref3$delete = _ref3["delete"],
|
1580
|
+
resourceDeletePage = _ref3$delete === void 0 ? null : _ref3$delete;
|
1581
|
+
|
1582
|
+
var ResourceIndexComponent = componentsManager.getComponent(resourceIndexPage === null || resourceIndexPage === void 0 ? void 0 : resourceIndexPage.component) || componentsManager.getComponent(indexPage === null || indexPage === void 0 ? void 0 : indexPage.component) || ResourceIndexPage;
|
1583
|
+
var ResourceShowComponent = componentsManager.getComponent(resourceShowPage === null || resourceShowPage === void 0 ? void 0 : resourceShowPage.component) || componentsManager.getComponent(showPage === null || showPage === void 0 ? void 0 : showPage.component) || ResourceShowPage;
|
1584
|
+
var ResourceCreateComponent = componentsManager.getComponent(resourceCreatePage === null || resourceCreatePage === void 0 ? void 0 : resourceCreatePage.component) || componentsManager.getComponent(createPage === null || createPage === void 0 ? void 0 : createPage.component) || ResourceCreatePage;
|
1585
|
+
var ResourceEditComponent = componentsManager.getComponent(resourceEditPage === null || resourceEditPage === void 0 ? void 0 : resourceEditPage.component) || componentsManager.getComponent(editPage === null || editPage === void 0 ? void 0 : editPage.component) || ResourceEditPage;
|
1586
|
+
var ResourceDeleteComponent = componentsManager.getComponent(resourceDeletePage === null || resourceDeletePage === void 0 ? void 0 : resourceDeletePage.component) || componentsManager.getComponent(deletePage === null || deletePage === void 0 ? void 0 : deletePage.component) || ResourceDeletePage;
|
1587
|
+
return [/*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1588
|
+
path: route('resources.index', {
|
1620
1589
|
resource: resourceId
|
1621
1590
|
}),
|
1622
1591
|
exact: true,
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
}), /*#__PURE__*/React__default['default'].createElement(reactRouter.Route, {
|
1629
|
-
path: route("".concat(routeName, ".create"), {
|
1592
|
+
element: /*#__PURE__*/React__default["default"].createElement(ResourceIndexComponent, {
|
1593
|
+
resource: resource
|
1594
|
+
})
|
1595
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1596
|
+
path: route('resources.create', {
|
1630
1597
|
resource: resourceId
|
1631
1598
|
}),
|
1632
1599
|
exact: true,
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
|
1638
|
-
}), /*#__PURE__*/React__default['default'].createElement(reactRouter.Route, {
|
1639
|
-
path: route("".concat(routeName, ".show"), {
|
1600
|
+
element: /*#__PURE__*/React__default["default"].createElement(ResourceCreateComponent, {
|
1601
|
+
resource: resource
|
1602
|
+
})
|
1603
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1604
|
+
path: route('resources.show', {
|
1640
1605
|
resource: resourceId,
|
1641
1606
|
id: ':id'
|
1642
1607
|
}),
|
1643
1608
|
exact: true,
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1649
|
-
});
|
1650
|
-
}
|
1651
|
-
}), /*#__PURE__*/React__default['default'].createElement(reactRouter.Route, {
|
1652
|
-
path: route("".concat(routeName, ".edit"), {
|
1609
|
+
element: /*#__PURE__*/React__default["default"].createElement(ResourceShowComponent, {
|
1610
|
+
resource: resource
|
1611
|
+
})
|
1612
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1613
|
+
path: route('resources.edit', {
|
1653
1614
|
resource: resourceId,
|
1654
1615
|
id: ':id'
|
1655
1616
|
}),
|
1656
1617
|
exact: true,
|
1657
|
-
|
1658
|
-
|
1659
|
-
|
1660
|
-
|
1661
|
-
|
1662
|
-
});
|
1663
|
-
}
|
1664
|
-
}), /*#__PURE__*/React__default['default'].createElement(reactRouter.Route, {
|
1665
|
-
path: route("".concat(routeName, ".delete"), {
|
1618
|
+
element: /*#__PURE__*/React__default["default"].createElement(ResourceEditComponent, {
|
1619
|
+
resource: resource
|
1620
|
+
})
|
1621
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1622
|
+
path: route('resources.delete', {
|
1666
1623
|
resource: resourceId,
|
1667
1624
|
id: ':id'
|
1668
1625
|
}),
|
1669
1626
|
exact: true,
|
1670
|
-
|
1671
|
-
|
1672
|
-
|
1673
|
-
|
1674
|
-
|
1675
|
-
|
1676
|
-
|
1677
|
-
|
1627
|
+
element: /*#__PURE__*/React__default["default"].createElement(ResourceDeleteComponent, {
|
1628
|
+
resource: resource
|
1629
|
+
})
|
1630
|
+
})].concat(_toConsumableArray__default["default"](extraRoutes.map(function (_ref4) {
|
1631
|
+
var path = _ref4.path,
|
1632
|
+
component = _ref4.component,
|
1633
|
+
_ref4$exact = _ref4.exact,
|
1634
|
+
exact = _ref4$exact === void 0 ? true : _ref4$exact,
|
1635
|
+
pageProps = _objectWithoutProperties__default["default"](_ref4, _excluded);
|
1636
|
+
|
1637
|
+
var RouteComponent = componentsManager.getComponent(component);
|
1638
|
+
return RouteComponent !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1639
|
+
key: "route-".concat(path),
|
1640
|
+
path: path,
|
1641
|
+
exact: exact,
|
1642
|
+
element: /*#__PURE__*/React__default["default"].createElement(RouteComponent, Object.assign({
|
1643
|
+
resource: resource
|
1644
|
+
}, pageProps))
|
1645
|
+
}) : null;
|
1646
|
+
})));
|
1678
1647
|
};
|
1679
1648
|
|
1680
|
-
ResourceRoutes.propTypes = propTypes$2;
|
1681
|
-
ResourceRoutes.defaultProps = defaultProps$2;
|
1682
|
-
|
1683
1649
|
var propTypes$1 = {
|
1684
1650
|
statusCode: core.PropTypes.statusCode
|
1685
1651
|
};
|
@@ -1689,43 +1655,37 @@ var defaultProps$1 = {
|
|
1689
1655
|
|
1690
1656
|
var PanneauRoutes = function PanneauRoutes(_ref) {
|
1691
1657
|
var initialStatusCode = _ref.statusCode;
|
1692
|
-
|
1693
|
-
var _usePanneau = contexts.usePanneau(),
|
1694
|
-
_usePanneau$pages = _usePanneau.pages,
|
1695
|
-
pages = _usePanneau$pages === void 0 ? {} : _usePanneau$pages;
|
1696
|
-
|
1697
1658
|
var routes = contexts.useRoutes();
|
1698
1659
|
|
1699
1660
|
var _useLocation = reactRouter.useLocation(),
|
1700
|
-
pathname = _useLocation.pathname;
|
1701
|
-
// console.log('PATHNAME', pathname); // eslint-disable-line
|
1702
|
-
|
1661
|
+
pathname = _useLocation.pathname;
|
1703
1662
|
|
1704
1663
|
var _useState = React.useState({
|
1705
1664
|
statusCode: initialStatusCode,
|
1706
1665
|
pathname: pathname
|
1707
1666
|
}),
|
1708
|
-
_useState2 = _slicedToArray__default[
|
1667
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
1709
1668
|
_useState2$ = _useState2[0],
|
1710
1669
|
statusCode = _useState2$.statusCode,
|
1711
|
-
|
1670
|
+
lastPathname = _useState2$.pathname,
|
1712
1671
|
setInitialRequest = _useState2[1];
|
1713
1672
|
|
1714
|
-
var user = useUser();
|
1673
|
+
var user = auth.useUser();
|
1715
1674
|
var route = contexts.useUrlGenerator();
|
1716
|
-
var resources = contexts.usePanneauResources();
|
1717
|
-
|
1718
|
-
// return query !== null ? query.next || null : null;
|
1719
|
-
// }, [search]);
|
1720
|
-
|
1675
|
+
var resources = contexts.usePanneauResources();
|
1676
|
+
var componentsManager = contexts.usePagesComponentsManager();
|
1721
1677
|
React.useEffect(function () {
|
1722
|
-
if (pathname !==
|
1678
|
+
if (pathname !== lastPathname) {
|
1723
1679
|
setInitialRequest({
|
1724
1680
|
pathname: pathname,
|
1725
1681
|
statusCode: null
|
1726
1682
|
});
|
1727
1683
|
}
|
1728
|
-
}, [pathname,
|
1684
|
+
}, [pathname, lastPathname]); // Custom Pages
|
1685
|
+
|
1686
|
+
var _usePanneau = contexts.usePanneau(),
|
1687
|
+
_usePanneau$pages = _usePanneau.pages,
|
1688
|
+
pages = _usePanneau$pages === void 0 ? null : _usePanneau$pages;
|
1729
1689
|
|
1730
1690
|
var _ref2 = pages || {},
|
1731
1691
|
_ref2$home = _ref2.home,
|
@@ -1737,58 +1697,55 @@ var PanneauRoutes = function PanneauRoutes(_ref) {
|
|
1737
1697
|
_ref2$error = _ref2.error,
|
1738
1698
|
errorPage = _ref2$error === void 0 ? null : _ref2$error;
|
1739
1699
|
|
1740
|
-
var HomeComponent =
|
1741
|
-
var LoginComponent =
|
1742
|
-
var AccountComponent =
|
1743
|
-
var ErrorComponent =
|
1744
|
-
|
1745
|
-
|
1746
|
-
|
1747
|
-
|
1748
|
-
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
|
1753
|
-
|
1754
|
-
|
1755
|
-
|
1700
|
+
var HomeComponent = componentsManager.getComponent(homePage === null || homePage === void 0 ? void 0 : homePage.component) || HomePage;
|
1701
|
+
var LoginComponent = componentsManager.getComponent(loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || LoginPage;
|
1702
|
+
var AccountComponent = componentsManager.getComponent(accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || AccountPage;
|
1703
|
+
var ErrorComponent = componentsManager.getComponent(errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || ErrorPage; // If there is an error status code
|
1704
|
+
|
1705
|
+
if (statusCode !== null) {
|
1706
|
+
return /*#__PURE__*/React__default["default"].createElement(ErrorComponent, {
|
1707
|
+
statusCode: statusCode
|
1708
|
+
});
|
1709
|
+
} // If user is unauthenticated
|
1710
|
+
|
1711
|
+
|
1712
|
+
if (user === null) {
|
1713
|
+
return /*#__PURE__*/React__default["default"].createElement(reactRouter.Routes, null, /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1714
|
+
path: routes['auth.login'],
|
1715
|
+
exact: true,
|
1716
|
+
element: /*#__PURE__*/React__default["default"].createElement(LoginComponent, null)
|
1717
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1718
|
+
path: "*",
|
1719
|
+
element: /*#__PURE__*/React__default["default"].createElement(reactRouter.Navigate, {
|
1720
|
+
to: "".concat(route('auth.login'), "?next=").concat(encodeURIComponent(pathname)),
|
1721
|
+
replace: true
|
1722
|
+
})
|
1723
|
+
}));
|
1724
|
+
} // Normal routes
|
1725
|
+
|
1726
|
+
|
1727
|
+
return /*#__PURE__*/React__default["default"].createElement(reactRouter.Routes, null, /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1756
1728
|
path: routes.home,
|
1757
1729
|
exact: true,
|
1758
|
-
|
1759
|
-
}) : /*#__PURE__*/React__default['default'].createElement(reactRouter.Redirect, {
|
1760
|
-
from: routes.home,
|
1761
|
-
exact: true,
|
1762
|
-
to: route('login')
|
1730
|
+
element: /*#__PURE__*/React__default["default"].createElement(HomeComponent, null)
|
1763
1731
|
}), resources.map(function (resource) {
|
1764
1732
|
var _ref3 = resource || {},
|
1765
|
-
resourceId = _ref3.id
|
1766
|
-
|
1767
|
-
|
1768
|
-
|
1769
|
-
|
1770
|
-
|
1771
|
-
|
1772
|
-
|
1773
|
-
|
1774
|
-
|
1775
|
-
|
1776
|
-
|
1777
|
-
|
1778
|
-
|
1779
|
-
}) : /*#__PURE__*/React__default['default'].createElement(reactRouter.Redirect, {
|
1780
|
-
key: "resource-".concat(resourceId),
|
1781
|
-
from: route("".concat(routeName, ".index"), {
|
1782
|
-
resource: resourceId
|
1783
|
-
}),
|
1784
|
-
to: "".concat(route('login'), "?next=").concat(encodeURIComponent(pathname))
|
1785
|
-
});
|
1786
|
-
}), /*#__PURE__*/React__default['default'].createElement(reactRouter.Route, {
|
1787
|
-
path: route('auth.account'),
|
1788
|
-
component: AccountComponent
|
1789
|
-
}), /*#__PURE__*/React__default['default'].createElement(reactRouter.Route, {
|
1733
|
+
resourceId = _ref3.id;
|
1734
|
+
|
1735
|
+
return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
|
1736
|
+
key: "resource-".concat(resourceId)
|
1737
|
+
}, createResourceRoutes(resource, {
|
1738
|
+
route: route,
|
1739
|
+
componentsManager: componentsManager,
|
1740
|
+
pages: pages
|
1741
|
+
}));
|
1742
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1743
|
+
path: routes.account,
|
1744
|
+
exact: true,
|
1745
|
+
element: /*#__PURE__*/React__default["default"].createElement(AccountComponent, null)
|
1746
|
+
}), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
|
1790
1747
|
path: "*",
|
1791
|
-
|
1748
|
+
element: /*#__PURE__*/React__default["default"].createElement(ErrorComponent, null)
|
1792
1749
|
}));
|
1793
1750
|
};
|
1794
1751
|
|
@@ -1797,59 +1754,95 @@ PanneauRoutes.defaultProps = defaultProps$1;
|
|
1797
1754
|
|
1798
1755
|
var propTypes = {
|
1799
1756
|
definition: core.PropTypes.panneauDefinition.isRequired,
|
1757
|
+
components: PropTypes__default["default"].oneOfType([PropTypes__default["default"].objectOf(PropTypes__default["default"].elementType), PropTypes__default["default"].objectOf(PropTypes__default["default"].objectOf(PropTypes__default["default"].elementType))]),
|
1800
1758
|
user: core.PropTypes.user,
|
1801
|
-
memoryRouter: PropTypes__default[
|
1802
|
-
baseUrl: PropTypes__default[
|
1759
|
+
memoryRouter: PropTypes__default["default"].bool,
|
1760
|
+
baseUrl: PropTypes__default["default"].string,
|
1761
|
+
uppy: core.PropTypes.uppy,
|
1803
1762
|
statusCode: core.PropTypes.statusCode
|
1804
1763
|
};
|
1805
1764
|
var defaultProps = {
|
1765
|
+
components: null,
|
1806
1766
|
user: null,
|
1807
1767
|
memoryRouter: false,
|
1808
1768
|
baseUrl: null,
|
1769
|
+
uppy: null,
|
1809
1770
|
statusCode: null
|
1810
1771
|
};
|
1811
1772
|
|
1812
1773
|
var Container = function Container(_ref) {
|
1813
1774
|
var definition = _ref.definition,
|
1775
|
+
components = _ref.components,
|
1814
1776
|
user = _ref.user,
|
1815
1777
|
memoryRouter = _ref.memoryRouter,
|
1816
1778
|
baseUrl = _ref.baseUrl,
|
1779
|
+
uppy = _ref.uppy,
|
1817
1780
|
statusCode = _ref.statusCode;
|
1818
1781
|
var _definition$intl = definition.intl;
|
1819
1782
|
_definition$intl = _definition$intl === void 0 ? {} : _definition$intl;
|
1820
1783
|
var _definition$intl$loca = _definition$intl.locale,
|
1821
1784
|
locale = _definition$intl$loca === void 0 ? 'en' : _definition$intl$loca,
|
1822
|
-
|
1823
|
-
_definition$intl$
|
1824
|
-
translations = _definition$intl$mess === void 0 ? {} : _definition$intl$mess,
|
1785
|
+
_definition$intl$loca2 = _definition$intl.locales,
|
1786
|
+
locales = _definition$intl$loca2 === void 0 ? [] : _definition$intl$loca2,
|
1825
1787
|
_definition$routes = definition.routes,
|
1826
1788
|
routes = _definition$routes === void 0 ? {} : _definition$routes,
|
1827
|
-
_definition$settings = definition.settings
|
1828
|
-
|
1829
|
-
|
1830
|
-
|
1831
|
-
_ref2$memoryRouter = _ref2.memoryRouter,
|
1832
|
-
usesMemoryRouter = _ref2$memoryRouter === void 0 ? false : _ref2$memoryRouter;
|
1833
|
-
|
1789
|
+
_definition$settings = definition.settings;
|
1790
|
+
_definition$settings = _definition$settings === void 0 ? {} : _definition$settings;
|
1791
|
+
var _definition$settings$ = _definition$settings.memoryRouter,
|
1792
|
+
usesMemoryRouter = _definition$settings$ === void 0 ? false : _definition$settings$;
|
1834
1793
|
var Router = memoryRouter || usesMemoryRouter ? reactRouter.MemoryRouter : reactRouterDom.BrowserRouter;
|
1835
|
-
|
1794
|
+
var extraMessages = React.useMemo(function () {
|
1795
|
+
var _definition$intl2 = definition.intl;
|
1796
|
+
_definition$intl2 = _definition$intl2 === void 0 ? {} : _definition$intl2;
|
1797
|
+
var _definition$intl2$mes = _definition$intl2.messages,
|
1798
|
+
messages = _definition$intl2$mes === void 0 ? null : _definition$intl2$mes,
|
1799
|
+
_definition$resources = definition.resources,
|
1800
|
+
resources = _definition$resources === void 0 ? [] : _definition$resources;
|
1801
|
+
return _objectSpread__default["default"](_objectSpread__default["default"]({}, messages), resources.reduce(function (allMessages, _ref2) {
|
1802
|
+
var id = _ref2.id,
|
1803
|
+
_ref2$intl = _ref2.intl;
|
1804
|
+
_ref2$intl = _ref2$intl === void 0 ? {} : _ref2$intl;
|
1805
|
+
var _ref2$intl$messages = _ref2$intl.messages,
|
1806
|
+
resourceMessages = _ref2$intl$messages === void 0 ? {} : _ref2$intl$messages;
|
1807
|
+
return _objectSpread__default["default"](_objectSpread__default["default"]({}, allMessages), Object.keys(resourceMessages).reduce(function (allResourceMessages, key) {
|
1808
|
+
return _objectSpread__default["default"](_objectSpread__default["default"]({}, allResourceMessages), {}, _defineProperty__default["default"]({}, "resources.".concat(id, ".").concat(key), resourceMessages[key]));
|
1809
|
+
}, {}));
|
1810
|
+
}, {}));
|
1811
|
+
}, [definition]);
|
1812
|
+
var onUnauthorized = React.useCallback(function () {
|
1813
|
+
window.location.href = baseUrl;
|
1814
|
+
}, [baseUrl]);
|
1815
|
+
var onLogout = React.useCallback(function () {
|
1816
|
+
window.location.reload();
|
1817
|
+
}, [baseUrl]);
|
1818
|
+
return /*#__PURE__*/React__default["default"].createElement(Router, null, /*#__PURE__*/React__default["default"].createElement(intl.IntlProvider, {
|
1836
1819
|
locale: locale,
|
1837
1820
|
locales: locales,
|
1838
|
-
extraMessages:
|
1839
|
-
}, /*#__PURE__*/React__default[
|
1821
|
+
extraMessages: extraMessages
|
1822
|
+
}, /*#__PURE__*/React__default["default"].createElement(contexts.PanneauProvider, {
|
1840
1823
|
definition: definition
|
1841
|
-
}, /*#__PURE__*/React__default[
|
1824
|
+
}, /*#__PURE__*/React__default["default"].createElement(contexts.UppyProvider, uppy, /*#__PURE__*/React__default["default"].createElement(contexts.RoutesProvider, {
|
1842
1825
|
routes: routes
|
1843
|
-
}, /*#__PURE__*/React__default[
|
1844
|
-
baseUrl: baseUrl
|
1845
|
-
|
1846
|
-
|
1847
|
-
|
1826
|
+
}, /*#__PURE__*/React__default["default"].createElement(FieldsProvider__default["default"], null, /*#__PURE__*/React__default["default"].createElement(FormsProvider__default["default"], null, /*#__PURE__*/React__default["default"].createElement(ListsProvider__default["default"], null, /*#__PURE__*/React__default["default"].createElement(DisplaysProvider__default["default"], null, /*#__PURE__*/React__default["default"].createElement(FiltersProvider__default["default"], null, /*#__PURE__*/React__default["default"].createElement(data.ApiProvider, {
|
1827
|
+
baseUrl: baseUrl,
|
1828
|
+
onUnauthorized: onUnauthorized
|
1829
|
+
}, /*#__PURE__*/React__default["default"].createElement(auth.AuthProvider, {
|
1830
|
+
user: user,
|
1831
|
+
onLogout: onLogout
|
1832
|
+
}, /*#__PURE__*/React__default["default"].createElement(contexts.ComponentsProvider, {
|
1833
|
+
components: components
|
1834
|
+
}, /*#__PURE__*/React__default["default"].createElement(PanneauRoutes, {
|
1848
1835
|
statusCode: statusCode
|
1849
|
-
}))))))))))));
|
1836
|
+
}))))))))))))));
|
1850
1837
|
};
|
1851
1838
|
|
1852
1839
|
Container.propTypes = propTypes;
|
1853
1840
|
Container.defaultProps = defaultProps;
|
1854
1841
|
|
1855
|
-
|
1842
|
+
exports.GuestLayout = GuestLayout;
|
1843
|
+
exports.MainLayout = MainLayout;
|
1844
|
+
exports.PageHeader = PageHeader;
|
1845
|
+
exports.ResourceFilters = ResourceFilters;
|
1846
|
+
exports.ResourceForm = ResourceForm;
|
1847
|
+
exports.ResourceItemsList = ResourceItemsList;
|
1848
|
+
exports["default"] = Container;
|