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