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