@panneau/app 1.0.3-alpha.0 → 1.0.3-alpha.10

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/es/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
3
  import PropTypes$1 from 'prop-types';
4
- import React, { useMemo, useCallback, useState, useEffect } from 'react';
5
- import { useLocation, useNavigate, useParams, Route, Routes, MemoryRouter } from 'react-router';
4
+ import React, { useMemo, useCallback, useState, useEffect, Fragment } from 'react';
5
+ import { useLocation, useNavigate, useParams, Route, Routes, Navigate, MemoryRouter } from 'react-router';
6
6
  import { Link, BrowserRouter } from 'react-router-dom';
7
7
  import { useUser, useLogout, useAuth, AuthProvider } from '@panneau/auth';
8
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';
9
+ import { useLocales, useFormsComponents, FormProvider, useUrlGenerator, usePanneauResources, usePanneau, usePanneauColorScheme, ResourceProvider, useFiltersComponents, useListsComponents, useComponentsManager, useFormComponent, useRoutes, usePagesComponentsManager, PanneauProvider, UppyProvider, RoutesProvider, ComponentsProvider } from '@panneau/core/contexts';
10
10
  import { useResourceStore, useResourceUpdate, useResourceDestroy, useResourceItem, useResourceItems, ApiProvider } from '@panneau/data';
11
11
  import DisplaysProvider from '@panneau/displays';
12
12
  import FieldsProvider from '@panneau/fields';
@@ -14,17 +14,20 @@ import FiltersProvider from '@panneau/filters';
14
14
  import FormsProvider from '@panneau/forms';
15
15
  import { useResourceValues, IntlProvider } from '@panneau/intl';
16
16
  import ListsProvider from '@panneau/lists';
17
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
18
- import { getComponentFromName } from '@panneau/core/utils';
17
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
19
18
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
19
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
20
+ import isObject from 'lodash/isObject';
20
21
  import { parse, stringify } from 'query-string';
21
22
  import { FormattedMessage, defineMessages } from 'react-intl';
22
23
  import { useResourceUrlGenerator, useForm } from '@panneau/core/hooks';
24
+ import { getComponentFromName } from '@panneau/core/utils';
23
25
  import classNames from 'classnames';
24
26
  import Button from '@panneau/element-button';
25
27
  import Form from '@panneau/element-form';
26
- import Navbar from '@panneau/element-navbar';
28
+ import isArray from 'lodash/isArray';
27
29
  import Menu from '@panneau/element-menu';
30
+ import Navbar from '@panneau/element-navbar';
28
31
  import Label from '@panneau/element-label';
29
32
  import isString from 'lodash/isString';
30
33
  import Alert from '@panneau/element-alert';
@@ -35,7 +38,7 @@ import { faUndo } from '@fortawesome/free-solid-svg-icons';
35
38
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
36
39
  import FormGroup from '@panneau/element-form-group';
37
40
 
38
- var _excluded$5 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
41
+ var _excluded$6 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
39
42
  var propTypes$m = {
40
43
  resource: PropTypes.resource.isRequired,
41
44
  action: PropTypes$1.string,
@@ -60,23 +63,20 @@ var defaultProps$m = {
60
63
  errors: null,
61
64
  className: null
62
65
  };
63
-
64
66
  var DeleteForm = function DeleteForm(_ref) {
65
67
  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);
75
-
68
+ action = _ref.action,
69
+ previous = _ref.previous;
70
+ _ref.status;
71
+ var value = _ref.value,
72
+ onSubmit = _ref.onSubmit;
73
+ _ref.errors;
74
+ var generalError = _ref.generalError,
75
+ className = _ref.className,
76
+ props = _objectWithoutProperties(_ref, _excluded$6);
76
77
  var _ref2 = value || {},
77
- _ref2$id = _ref2.id,
78
- id = _ref2$id === void 0 ? null : _ref2$id;
79
-
78
+ _ref2$id = _ref2.id,
79
+ id = _ref2$id === void 0 ? null : _ref2$id;
80
80
  var resourceValues = useResourceValues(resource, {
81
81
  id: id
82
82
  });
@@ -144,11 +144,10 @@ var DeleteForm = function DeleteForm(_ref) {
144
144
  }]
145
145
  })))));
146
146
  };
147
-
148
147
  DeleteForm.propTypes = propTypes$m;
149
148
  DeleteForm.defaultProps = defaultProps$m;
150
149
 
151
- var _excluded$4 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
150
+ var _excluded$5 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
152
151
  var propTypes$l = {
153
152
  component: PropTypes$1.string,
154
153
  resource: PropTypes.resource.isRequired,
@@ -165,129 +164,120 @@ var defaultProps$l = {
165
164
  onSuccess: null,
166
165
  isDelete: false
167
166
  };
168
-
169
167
  var ResourceForm = function ResourceForm(_ref) {
170
168
  var component = _ref.component,
171
- resource = _ref.resource,
172
- onSuccess = _ref.onSuccess,
173
- item = _ref.item,
174
- type = _ref.type,
175
- isDelete = _ref.isDelete,
176
- props = _objectWithoutProperties(_ref, _excluded$4);
177
-
169
+ resource = _ref.resource,
170
+ onSuccess = _ref.onSuccess,
171
+ item = _ref.item,
172
+ type = _ref.type,
173
+ isDelete = _ref.isDelete,
174
+ props = _objectWithoutProperties(_ref, _excluded$5);
178
175
  var locales = useLocales();
179
176
  var FormComponents = useFormsComponents();
180
177
  var _resource$fields = resource.fields,
181
- resourceFields = _resource$fields === void 0 ? [] : _resource$fields,
182
- _resource$types = resource.types,
183
- resourceTypes = _resource$types === void 0 ? [] : _resource$types,
184
- forms = resource.forms;
178
+ resourceFields = _resource$fields === void 0 ? [] : _resource$fields,
179
+ _resource$types = resource.types,
180
+ resourceTypes = _resource$types === void 0 ? [] : _resource$types,
181
+ forms = resource.forms;
185
182
  var resourceType = type !== null ? resourceTypes.find(function (it) {
186
183
  return it.id === type;
187
184
  }) || null : null;
188
-
189
185
  var _ref2 = resourceType || {},
190
- _ref2$fields = _ref2.fields,
191
- resourceTypeFields = _ref2$fields === void 0 ? null : _ref2$fields;
192
-
193
- var isCreate = item === null || !item.id; // Pick fields from resource root or form
186
+ _ref2$fields = _ref2.fields,
187
+ resourceTypeFields = _ref2$fields === void 0 ? null : _ref2$fields;
188
+ var isCreate = item === null || !item.id;
194
189
 
190
+ // Pick fields from resource root or form
195
191
  var _ref3 = forms || {},
196
- _ref3$default = _ref3["default"],
197
- defaultForm = _ref3$default === void 0 ? null : _ref3$default,
198
- _ref3$create = _ref3.create,
199
- createForm = _ref3$create === void 0 ? null : _ref3$create,
200
- _ref3$edit = _ref3.edit,
201
- editForm = _ref3$edit === void 0 ? null : _ref3$edit,
202
- _ref3$delete = _ref3["delete"],
203
- deleteForm = _ref3$delete === void 0 ? null : _ref3$delete;
204
-
192
+ _ref3$default = _ref3["default"],
193
+ defaultForm = _ref3$default === void 0 ? null : _ref3$default,
194
+ _ref3$create = _ref3.create,
195
+ createForm = _ref3$create === void 0 ? null : _ref3$create,
196
+ _ref3$edit = _ref3.edit,
197
+ editForm = _ref3$edit === void 0 ? null : _ref3$edit,
198
+ _ref3$delete = _ref3["delete"],
199
+ deleteForm = _ref3$delete === void 0 ? null : _ref3$delete;
205
200
  var _ref4 = defaultForm || {},
206
- _ref4$fields = _ref4.fields,
207
- defaultFields = _ref4$fields === void 0 ? null : _ref4$fields,
208
- defaultComponent = _ref4.component;
209
-
201
+ _ref4$fields = _ref4.fields,
202
+ defaultFields = _ref4$fields === void 0 ? null : _ref4$fields,
203
+ defaultComponent = _ref4.component;
210
204
  var createOrEditSource = isCreate ? createForm || {} : editForm || {};
211
-
212
205
  var _ref5 = isDelete ? deleteForm || {} : createOrEditSource || {},
213
- _ref5$fields = _ref5.fields,
214
- formFields = _ref5$fields === void 0 ? null : _ref5$fields,
215
- _ref5$component = _ref5.component,
216
- formComponent = _ref5$component === void 0 ? null : _ref5$component;
217
-
206
+ _ref5$fields = _ref5.fields,
207
+ formFields = _ref5$fields === void 0 ? null : _ref5$fields,
208
+ _ref5$component = _ref5.component,
209
+ formComponent = _ref5$component === void 0 ? null : _ref5$component;
218
210
  var finalFields = useMemo(function () {
219
211
  return (formFields || defaultFields || resourceTypeFields || resourceFields).filter(function (_ref6) {
220
- var _ref6$settings = _ref6.settings;
221
- _ref6$settings = _ref6$settings === void 0 ? {} : _ref6$settings;
222
- var _ref6$settings$hidden = _ref6$settings.hiddenInForm,
223
- hiddenInForm = _ref6$settings$hidden === void 0 ? false : _ref6$settings$hidden;
212
+ var _ref6$settings = _ref6.settings,
213
+ _ref6$settings2 = _ref6$settings === void 0 ? {} : _ref6$settings,
214
+ _ref6$settings2$hidde = _ref6$settings2.hiddenInForm,
215
+ hiddenInForm = _ref6$settings2$hidde === void 0 ? false : _ref6$settings2$hidde;
224
216
  return !hiddenInForm;
225
217
  });
226
- }, [formFields, defaultFields, resourceTypeFields, resourceFields]); // Form routes
218
+ }, [formFields, defaultFields, resourceTypeFields, resourceFields]);
227
219
 
220
+ // Form routes
228
221
  var resourceRoute = useResourceUrlGenerator(resource);
229
-
230
222
  var _useResourceStore = useResourceStore(resource),
231
- store = _useResourceStore.store;
232
-
223
+ store = _useResourceStore.store;
233
224
  var _useResourceUpdate = useResourceUpdate(resource, item != null ? item.id : null),
234
- update = _useResourceUpdate.update;
235
-
225
+ update = _useResourceUpdate.update;
236
226
  var _useResourceDestroy = useResourceDestroy(resource, item != null ? item.id : null),
237
- destroy = _useResourceDestroy.destroy; // Post actions
238
-
227
+ destroy = _useResourceDestroy.destroy;
239
228
 
229
+ // Post actions
240
230
  var postAction = isCreate ? store : update;
241
231
  var postForm = useCallback(function (action, data) {
242
232
  return isDelete ? destroy() : postAction(data);
243
- }, [postAction, isDelete, destroy, store, update]); // Form state
233
+ }, [postAction, isDelete, destroy, store, update]);
244
234
 
235
+ // Form state
245
236
  var getInitialValue = useCallback(function () {
246
237
  return item !== null ? item : finalFields.reduce(function (defaultValues, _ref7) {
247
238
  var name = _ref7.name,
248
- _ref7$defaultValue = _ref7.defaultValue,
249
- defaultValue = _ref7$defaultValue === void 0 ? null : _ref7$defaultValue;
239
+ _ref7$defaultValue = _ref7.defaultValue,
240
+ defaultValue = _ref7$defaultValue === void 0 ? null : _ref7$defaultValue;
250
241
  return defaultValue !== null ? _objectSpread(_objectSpread({}, defaultValues), {}, _defineProperty({}, name, defaultValue)) : defaultValues;
251
242
  }, type !== null ? {
252
243
  type: type
253
244
  } : null);
254
245
  }, [item, type, finalFields]);
255
-
256
246
  var _useState = useState(getInitialValue()),
257
- _useState2 = _slicedToArray(_useState, 2),
258
- value = _useState2[0],
259
- setValueState = _useState2[1];
260
-
247
+ _useState2 = _slicedToArray(_useState, 2),
248
+ value = _useState2[0],
249
+ setValueState = _useState2[1];
261
250
  var setValue = useCallback(function (newValue) {
262
251
  // console.log('new value in resource form', newValue); // eslint-disable-line
263
252
  setValueState(newValue);
264
253
  }, [setValueState]);
265
-
266
254
  var _useForm = useForm({
267
- fields: finalFields,
268
- value: value,
269
- postForm: postForm,
270
- setValue: setValue,
271
- onComplete: onSuccess,
272
- locales: locales
273
- }),
274
- fields = _useForm.fields,
275
- onSubmit = _useForm.onSubmit,
276
- status = _useForm.status,
277
- generalError = _useForm.generalError,
278
- errors = _useForm.errors; // Form action
279
-
255
+ fields: finalFields,
256
+ value: value,
257
+ postForm: postForm,
258
+ setValue: setValue,
259
+ onComplete: onSuccess,
260
+ locales: locales
261
+ }),
262
+ fields = _useForm.fields,
263
+ onSubmit = _useForm.onSubmit,
264
+ status = _useForm.status,
265
+ generalError = _useForm.generalError,
266
+ errors = _useForm.errors;
280
267
 
268
+ // Form action
281
269
  var modifyAction = isCreate ? resourceRoute('store') : resourceRoute('update', {
282
270
  id: item.id
283
271
  });
284
272
  var action = isDelete ? resourceRoute('destroy', {
285
273
  id: item.id
286
274
  }) : modifyAction;
287
- var defaultFormName = isDelete ? component || formComponent || null : component || formComponent || defaultComponent || 'normal'; // Form component
275
+ var defaultFormName = isDelete ? component || formComponent || null : component || formComponent || defaultComponent || 'normal';
288
276
 
289
- var FormComponent = getComponentFromName(defaultFormName, FormComponents, isDelete ? DeleteForm : component); // Lisen to item value change - this is important
277
+ // Form component
278
+ var FormComponent = getComponentFromName(defaultFormName, FormComponents, isDelete ? DeleteForm : component);
290
279
 
280
+ // Lisen to item value change - this is important
291
281
  useEffect(function () {
292
282
  // console.log('get initial value from the top'); // eslint-disable-line
293
283
  setValue(getInitialValue());
@@ -309,7 +299,6 @@ var ResourceForm = function ResourceForm(_ref) {
309
299
  onChange: setValue
310
300
  })));
311
301
  };
312
-
313
302
  ResourceForm.propTypes = propTypes$l;
314
303
  ResourceForm.defaultProps = defaultProps$l;
315
304
 
@@ -323,11 +312,10 @@ var defaultProps$k = {
323
312
  itemClassName: null,
324
313
  linkClassName: null
325
314
  };
326
-
327
315
  var AccountMenu = function AccountMenu(_ref) {
328
316
  var className = _ref.className,
329
- itemClassName = _ref.itemClassName,
330
- linkClassName = _ref.linkClassName;
317
+ itemClassName = _ref.itemClassName,
318
+ linkClassName = _ref.linkClassName;
331
319
  var route = useUrlGenerator();
332
320
  var user = useUser();
333
321
  var logout = useLogout();
@@ -346,14 +334,15 @@ var AccountMenu = function AccountMenu(_ref) {
346
334
  }]
347
335
  }),
348
336
  href: route('account'),
349
- dropdown: [// {
337
+ dropdown: [
338
+ // {
350
339
  // label: (
351
340
  // <FormattedMessage
352
341
  // defaultMessage="Update account"
353
342
  // description="Menu label"
354
343
  // />
355
344
  // ),
356
- // href: route('panneau.account'),
345
+ // href: route('account'),
357
346
  // },
358
347
  {
359
348
  label: /*#__PURE__*/React.createElement(FormattedMessage, {
@@ -374,7 +363,7 @@ var AccountMenu = function AccountMenu(_ref) {
374
363
  "value": "Login"
375
364
  }]
376
365
  }),
377
- href: route('login')
366
+ href: route('auth.login')
378
367
  }];
379
368
  }, [user, route, onClickLogout]);
380
369
  return items !== null ? /*#__PURE__*/React.createElement(Menu, {
@@ -385,7 +374,6 @@ var AccountMenu = function AccountMenu(_ref) {
385
374
  dropdownAlign: "end"
386
375
  }) : null;
387
376
  };
388
-
389
377
  AccountMenu.propTypes = propTypes$k;
390
378
  AccountMenu.defaultProps = defaultProps$k;
391
379
 
@@ -399,23 +387,20 @@ var defaultProps$j = {
399
387
  itemClassName: null,
400
388
  linkClassName: null
401
389
  };
402
-
403
390
  var ResourcesMenu = function ResourcesMenu(_ref) {
404
391
  var className = _ref.className,
405
- itemClassName = _ref.itemClassName,
406
- linkClassName = _ref.linkClassName;
407
-
392
+ itemClassName = _ref.itemClassName,
393
+ linkClassName = _ref.linkClassName;
408
394
  var _useLocation = useLocation(),
409
- pathname = _useLocation.pathname;
410
-
395
+ pathname = _useLocation.pathname;
411
396
  var resources = usePanneauResources();
412
397
  var resourceRoute = useResourceUrlGenerator();
413
398
  var items = useMemo(function () {
414
399
  return resources.filter(function (_ref2) {
415
- var _ref2$settings = _ref2.settings;
416
- _ref2$settings = _ref2$settings === void 0 ? {} : _ref2$settings;
417
- var _ref2$settings$hideIn = _ref2$settings.hideInNavbar,
418
- hideInNavbar = _ref2$settings$hideIn === void 0 ? false : _ref2$settings$hideIn;
400
+ var _ref2$settings = _ref2.settings,
401
+ _ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
402
+ _ref2$settings2$hideI = _ref2$settings2.hideInNavbar,
403
+ hideInNavbar = _ref2$settings2$hideI === void 0 ? false : _ref2$settings2$hideI;
419
404
  return !hideInNavbar;
420
405
  }).map(function (it) {
421
406
  var url = resourceRoute(it, 'index');
@@ -434,39 +419,69 @@ var ResourcesMenu = function ResourcesMenu(_ref) {
434
419
  linkClassName: linkClassName
435
420
  });
436
421
  };
437
-
438
422
  ResourcesMenu.propTypes = propTypes$j;
439
423
  ResourcesMenu.defaultProps = defaultProps$j;
440
424
 
441
- /* eslint-disable react/jsx-props-no-spreading */
442
425
  var propTypes$i = {};
443
426
  var defaultProps$i = {};
444
-
445
427
  var MainNavbar = function MainNavbar(props) {
446
428
  var _usePanneau = usePanneau(),
447
- name = _usePanneau.name;
448
-
429
+ name = _usePanneau.name,
430
+ _usePanneau$menus = _usePanneau.menus,
431
+ menus = _usePanneau$menus === void 0 ? null : _usePanneau$menus;
432
+ var _ref = menus || {},
433
+ _ref$main = _ref.main,
434
+ main = _ref$main === void 0 ? null : _ref$main,
435
+ _ref$guest = _ref.guest,
436
+ guest = _ref$guest === void 0 ? null : _ref$guest;
449
437
  var _usePanneauColorSchem = usePanneauColorScheme(),
450
- background = _usePanneauColorSchem.background;
451
-
438
+ background = _usePanneauColorSchem.background;
452
439
  var route = useUrlGenerator();
453
440
  var user = useUser();
441
+ var items = useMemo(function () {
442
+ var menuItems = (user !== null ? main : guest) || [];
443
+ var hasResources = menuItems.indexOf('resources') !== -1;
444
+ var hasAccount = menuItems.indexOf('account') !== -1;
445
+ return [!hasResources && user !== null ? 'resources' : null].concat(_toConsumableArray(menuItems), [!hasAccount && menuItems.indexOf('separator') === -1 ? 'separator' : null, !hasAccount ? 'account' : null]).filter(function (it) {
446
+ return it !== null;
447
+ }).reduce(function (currentItems, item) {
448
+ if (item === 'resources') {
449
+ return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement(ResourcesMenu, {
450
+ className: "navbar-nav",
451
+ itemClassName: "nav-item",
452
+ linkClassName: "nav-link"
453
+ })]);
454
+ }
455
+ if (item === 'account') {
456
+ return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement(AccountMenu, {
457
+ className: "navbar-nav",
458
+ itemClassName: "nav-item",
459
+ linkClassName: "nav-link"
460
+ })]);
461
+ }
462
+ if (item === 'separator') {
463
+ return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement("span", {
464
+ className: "ms-auto"
465
+ })]);
466
+ }
467
+ var lastItem = currentItems.length > 0 ? currentItems[currentItems.length - 1] : null;
468
+ return isArray(lastItem) ? [].concat(_toConsumableArray(currentItems.slice(0, currentItems.length - 1)), [[].concat(_toConsumableArray(lastItem), [item])]) : [].concat(_toConsumableArray(currentItems), [[item]]);
469
+ }, []).map(function (it) {
470
+ return isArray(it) ? /*#__PURE__*/React.createElement(Menu, {
471
+ items: it,
472
+ className: "navbar-nav",
473
+ itemClassName: "nav-item",
474
+ linkClassName: "nav-link"
475
+ }) : it;
476
+ });
477
+ }, [main]);
454
478
  return /*#__PURE__*/React.createElement(Navbar, Object.assign({
455
479
  theme: background
456
480
  }, props), name !== null ? /*#__PURE__*/React.createElement(Link, {
457
481
  to: route('home'),
458
482
  className: "navbar-brand"
459
- }, name) : null, user !== null ? /*#__PURE__*/React.createElement(ResourcesMenu, {
460
- className: "navbar-nav ml-4",
461
- itemClassName: "nav-item",
462
- linkClassName: "nav-link"
463
- }) : null, /*#__PURE__*/React.createElement(AccountMenu, {
464
- className: "navbar-nav ms-auto",
465
- itemClassName: "nav-item",
466
- linkClassName: "nav-link"
467
- }));
483
+ }, name) : null, items);
468
484
  };
469
-
470
485
  MainNavbar.propTypes = propTypes$i;
471
486
  MainNavbar.defaultProps = defaultProps$i;
472
487
 
@@ -477,17 +492,13 @@ var propTypes$h = {
477
492
  var defaultProps$h = {
478
493
  fullscreen: false
479
494
  };
480
-
481
495
  var MainLayout = function MainLayout(_ref) {
482
496
  var _ref2;
483
-
484
497
  var children = _ref.children,
485
- fullscreen = _ref.fullscreen;
486
-
498
+ fullscreen = _ref.fullscreen;
487
499
  var _usePanneauColorSchem = usePanneauColorScheme(),
488
- background = _usePanneauColorSchem.background,
489
- text = _usePanneauColorSchem.text;
490
-
500
+ background = _usePanneauColorSchem.background,
501
+ text = _usePanneauColorSchem.text;
491
502
  return /*#__PURE__*/React.createElement("div", {
492
503
  className: classNames(['d-flex', 'flex-column', 'min-vh-100'])
493
504
  }, /*#__PURE__*/React.createElement(MainNavbar, {
@@ -498,7 +509,6 @@ var MainLayout = function MainLayout(_ref) {
498
509
  }, _defineProperty(_ref2, "bg-".concat(background), background !== null), _defineProperty(_ref2, "text-".concat(text), text !== null), _ref2)])
499
510
  }, children));
500
511
  };
501
-
502
512
  MainLayout.propTypes = propTypes$h;
503
513
  MainLayout.defaultProps = defaultProps$h;
504
514
 
@@ -516,22 +526,19 @@ var defaultProps$g = {
516
526
  className: null,
517
527
  children: null
518
528
  };
519
-
520
529
  var PageHeader = function PageHeader(_ref) {
521
530
  var _ref2;
522
-
523
531
  var title = _ref.title,
524
- actions = _ref.actions,
525
- small = _ref.small,
526
- className = _ref.className,
527
- children = _ref.children;
528
-
532
+ actions = _ref.actions,
533
+ small = _ref.small,
534
+ className = _ref.className,
535
+ children = _ref.children;
529
536
  // TODO: fix page header components
530
537
  // const { components } = usePanneau();
531
538
  var _usePanneauColorSchem = usePanneauColorScheme(),
532
- text = _usePanneauColorSchem.text,
533
- background = _usePanneauColorSchem.background; // console.log('page-header', components); // eslint-disable-line
534
-
539
+ text = _usePanneauColorSchem.text,
540
+ background = _usePanneauColorSchem.background;
541
+ // console.log('page-header', components); // eslint-disable-line
535
542
 
536
543
  var inner = /*#__PURE__*/React.createElement("div", {
537
544
  className: "d-flex align-items-center flex-wrap"
@@ -550,7 +557,6 @@ var PageHeader = function PageHeader(_ref) {
550
557
  className: "col-12 col-md-8 col-lg-7"
551
558
  }, inner)) : inner), children);
552
559
  };
553
-
554
560
  PageHeader.propTypes = propTypes$g;
555
561
  PageHeader.defaultProps = defaultProps$g;
556
562
 
@@ -558,25 +564,20 @@ var propTypes$f = {
558
564
  resource: PropTypes.resource.isRequired
559
565
  };
560
566
  var defaultProps$f = {};
561
-
562
567
  var ResourceCreatePage = function ResourceCreatePage(_ref) {
563
568
  var resource = _ref.resource;
564
569
  var navigate = useNavigate();
565
-
566
570
  var _useLocation = useLocation(),
567
- search = _useLocation.search;
568
-
571
+ search = _useLocation.search;
569
572
  var resourceRoute = useResourceUrlGenerator(resource);
570
573
  var onSuccess = useCallback(function () {
571
574
  navigate("".concat(resourceRoute('index'), "?created=true"));
572
575
  }, [navigate, resourceRoute]);
573
-
574
576
  var _useMemo = useMemo(function () {
575
- return parse(search);
576
- }, [search]),
577
- _useMemo$type = _useMemo.type,
578
- type = _useMemo$type === void 0 ? null : _useMemo$type;
579
-
577
+ return parse(search);
578
+ }, [search]),
579
+ _useMemo$type = _useMemo.type,
580
+ type = _useMemo$type === void 0 ? null : _useMemo$type;
580
581
  var resourceValues = useResourceValues(resource);
581
582
  return /*#__PURE__*/React.createElement(ResourceProvider, {
582
583
  resource: resource
@@ -605,35 +606,31 @@ var ResourceCreatePage = function ResourceCreatePage(_ref) {
605
606
  onSuccess: onSuccess
606
607
  }))))));
607
608
  };
608
-
609
609
  ResourceCreatePage.propTypes = propTypes$f;
610
610
  ResourceCreatePage.defaultProps = defaultProps$f;
611
611
 
612
+ // import Button from '../buttons/Button';
613
+
612
614
  var propTypes$e = {
613
615
  resource: PropTypes.resource.isRequired
614
616
  };
615
617
  var defaultProps$e = {};
616
-
617
618
  var ResourceDeletePage = function ResourceDeletePage(_ref) {
618
619
  var resource = _ref.resource;
619
-
620
620
  var _useParams = useParams(),
621
- itemId = _useParams.id;
622
-
621
+ itemId = _useParams.id;
623
622
  var navigate = useNavigate();
624
623
  var resourceRoute = useResourceUrlGenerator(resource);
625
-
626
624
  var _useResourceItem = useResourceItem(resource, itemId),
627
- item = _useResourceItem.item;
628
-
625
+ item = _useResourceItem.item;
629
626
  var onSuccess = useCallback(function () {
630
627
  return navigate("".concat(resourceRoute('index'), "?deleted=true"));
631
- }, [navigate, resourceRoute]); // Navigate back
628
+ }, [navigate, resourceRoute]);
632
629
 
630
+ // Navigate back
633
631
  var _ref2 = history || {},
634
- _ref2$entries = _ref2.entries,
635
- entries = _ref2$entries === void 0 ? [] : _ref2$entries;
636
-
632
+ _ref2$entries = _ref2.entries,
633
+ entries = _ref2$entries === void 0 ? [] : _ref2$entries;
637
634
  var previousEntry = entries !== null && entries.length > 1 ? entries[entries.length - 2] : null;
638
635
  var previous = (previousEntry === null || previousEntry === void 0 ? void 0 : previousEntry.pathname) || null;
639
636
  var resourceValues = useResourceValues(resource);
@@ -667,33 +664,28 @@ var ResourceDeletePage = function ResourceDeletePage(_ref) {
667
664
  isDelete: true
668
665
  }) : null)))));
669
666
  };
670
-
671
667
  ResourceDeletePage.propTypes = propTypes$e;
672
668
  ResourceDeletePage.defaultProps = defaultProps$e;
673
669
 
670
+ // import Button from '../buttons/Button';
671
+
674
672
  var propTypes$d = {
675
673
  resource: PropTypes.resource.isRequired
676
674
  };
677
675
  var defaultProps$d = {};
678
-
679
676
  var ResourceEditPage = function ResourceEditPage(_ref) {
680
677
  var resource = _ref.resource;
681
-
682
678
  var _useParams = useParams(),
683
- itemId = _useParams.id;
684
-
679
+ itemId = _useParams.id;
685
680
  var _useResourceItem = useResourceItem(resource, itemId),
686
- item = _useResourceItem.item;
687
-
681
+ item = _useResourceItem.item;
688
682
  var _ref2 = item || {},
689
- _ref2$type = _ref2.type,
690
- type = _ref2$type === void 0 ? null : _ref2$type;
691
-
683
+ _ref2$type = _ref2.type,
684
+ type = _ref2$type === void 0 ? null : _ref2$type;
692
685
  var _useState = useState(item),
693
- _useState2 = _slicedToArray(_useState, 2),
694
- editItem = _useState2[0],
695
- setEditItem = _useState2[1];
696
-
686
+ _useState2 = _slicedToArray(_useState, 2),
687
+ editItem = _useState2[0],
688
+ setEditItem = _useState2[1];
697
689
  var onSuccess = useCallback(function (newItem) {
698
690
  return setEditItem(newItem);
699
691
  }, []);
@@ -729,7 +721,6 @@ var ResourceEditPage = function ResourceEditPage(_ref) {
729
721
  onSuccess: onSuccess
730
722
  }) : null)))));
731
723
  };
732
-
733
724
  ResourceEditPage.propTypes = propTypes$d;
734
725
  ResourceEditPage.defaultProps = defaultProps$d;
735
726
 
@@ -740,38 +731,36 @@ var propTypes$c = {
740
731
  var defaultProps$c = {
741
732
  className: null
742
733
  };
743
-
744
734
  var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
745
735
  var resource = _ref.resource,
746
- className = _ref.className;
736
+ className = _ref.className;
747
737
  var _resource$types = resource.types,
748
- types = _resource$types === void 0 ? null : _resource$types; // const intl = useIntl();
749
-
738
+ types = _resource$types === void 0 ? null : _resource$types;
739
+ // const intl = useIntl();
750
740
  var resourceRoute = useResourceUrlGenerator(resource);
751
741
  var resourceValues = useResourceValues(resource);
752
-
753
742
  var _useState = useState(false),
754
- _useState2 = _slicedToArray(_useState, 2),
755
- dropdownOpened = _useState2[0],
756
- setDropdownOpened = _useState2[1];
757
-
743
+ _useState2 = _slicedToArray(_useState, 2),
744
+ dropdownOpened = _useState2[0],
745
+ setDropdownOpened = _useState2[1];
758
746
  var onClickDropdown = useCallback(function (e) {
759
747
  e.preventDefault();
760
- setDropdownOpened(function (opened) {
761
- return !opened;
762
- });
763
- }, [setDropdownOpened]);
748
+ e.stopPropagation();
749
+ setDropdownOpened(!dropdownOpened);
750
+ }, [setDropdownOpened, dropdownOpened]);
764
751
  var finalTypes = types !== null ? types.filter(function (_ref2) {
765
- var _ref2$settings = _ref2.settings;
766
- _ref2$settings = _ref2$settings === void 0 ? {} : _ref2$settings;
767
- var _ref2$settings$canCre = _ref2$settings.canCreate,
768
- canCreate = _ref2$settings$canCre === void 0 ? true : _ref2$settings$canCre;
752
+ var _ref2$settings = _ref2.settings,
753
+ _ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
754
+ _ref2$settings2$canCr = _ref2$settings2.canCreate,
755
+ canCreate = _ref2$settings2$canCr === void 0 ? true : _ref2$settings2$canCr;
769
756
  return canCreate;
770
757
  }) : null;
771
758
  var hasMultipleTypes = finalTypes !== null && finalTypes.length > 1;
772
759
  var onDropdownClickOutside = useCallback(function () {
773
- setDropdownOpened(false);
774
- }, [setDropdownOpened]);
760
+ if (dropdownOpened) {
761
+ setDropdownOpened(false);
762
+ }
763
+ }, [setDropdownOpened, dropdownOpened]);
775
764
  var button = /*#__PURE__*/React.createElement(Button, {
776
765
  href: !hasMultipleTypes ? "".concat(resourceRoute('create')).concat(finalTypes !== null && finalTypes.length === 1 ? "?type=".concat(finalTypes[0].id) : '') : '#',
777
766
  size: "lg",
@@ -808,11 +797,10 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
808
797
  onClickOutside: onDropdownClickOutside
809
798
  })) : button;
810
799
  };
811
-
812
800
  ResourceCreateButtom.propTypes = propTypes$c;
813
801
  ResourceCreateButtom.defaultProps = defaultProps$c;
814
802
 
815
- var _excluded$3 = ["component", "name", "groupLabel"];
803
+ var _excluded$4 = ["component", "name", "groupLabel"];
816
804
  var propTypes$b = {
817
805
  filters: PropTypes$1.arrayOf(PropTypes$1.shape({
818
806
  id: PropTypes$1.string.isRequired,
@@ -840,21 +828,18 @@ var defaultProps$b = {
840
828
  },
841
829
  className: null
842
830
  };
843
-
844
831
  var ResourceFilters = function ResourceFilters(_ref) {
845
832
  var filters = _ref.filters,
846
- value = _ref.value,
847
- onChange = _ref.onChange,
848
- onReset = _ref.onReset,
849
- withContainer = _ref.withContainer,
850
- withReset = _ref.withReset,
851
- defaultValue = _ref.defaultValue,
852
- className = _ref.className;
833
+ value = _ref.value,
834
+ onChange = _ref.onChange,
835
+ onReset = _ref.onReset,
836
+ withContainer = _ref.withContainer,
837
+ withReset = _ref.withReset,
838
+ defaultValue = _ref.defaultValue,
839
+ className = _ref.className;
853
840
  var FilterComponents = useFiltersComponents();
854
-
855
841
  var _usePanneauColorSchem = usePanneauColorScheme(),
856
- background = _usePanneauColorSchem.background;
857
-
842
+ background = _usePanneauColorSchem.background;
858
843
  var currentFilters = filters || [];
859
844
  var onFiltersReset = useCallback(function () {
860
845
  if (onReset !== null) {
@@ -865,9 +850,10 @@ var ResourceFilters = function ResourceFilters(_ref) {
865
850
  if (value !== null && value[item.name]) {
866
851
  return true;
867
852
  }
868
-
869
853
  return isActive;
870
- }, false); // console.log('value', value);
854
+ }, false);
855
+
856
+ // console.log('value', value);
871
857
 
872
858
  return /*#__PURE__*/React.createElement(Navbar, {
873
859
  className: classNames([_defineProperty({
@@ -877,10 +863,9 @@ var ResourceFilters = function ResourceFilters(_ref) {
877
863
  withoutCollapse: true
878
864
  }, currentFilters.map(function (_ref3, index) {
879
865
  var component = _ref3.component,
880
- name = _ref3.name,
881
- groupLabel = _ref3.groupLabel,
882
- filterProps = _objectWithoutProperties(_ref3, _excluded$3);
883
-
866
+ name = _ref3.name,
867
+ groupLabel = _ref3.groupLabel,
868
+ filterProps = _objectWithoutProperties(_ref3, _excluded$4);
884
869
  var FilterComponent = getComponentFromName(component, FilterComponents, null);
885
870
  var filterValue = value !== null && value[name] ? value[name] : null;
886
871
  var onFilterChange = useCallback(function (newFilterValue) {
@@ -891,9 +876,8 @@ var ResourceFilters = function ResourceFilters(_ref) {
891
876
  var onFilterClear = useCallback(function () {
892
877
  if (name !== null && onChange !== null) {
893
878
  var _ref4 = value || {};
894
- _ref4[name];
895
- var newValue = _objectWithoutProperties(_ref4, [name].map(_toPropertyKey));
896
-
879
+ _ref4[name];
880
+ var newValue = _objectWithoutProperties(_ref4, [name].map(_toPropertyKey));
897
881
  onChange(_objectSpread(_objectSpread({}, newValue), defaultValue));
898
882
  }
899
883
  }, [onChange, name, value, defaultValue]);
@@ -913,12 +897,11 @@ var ResourceFilters = function ResourceFilters(_ref) {
913
897
  icon: faUndo
914
898
  })) : null);
915
899
  };
916
-
917
900
  ResourceFilters.propTypes = propTypes$b;
918
901
  ResourceFilters.defaultProps = defaultProps$b;
919
902
 
920
- var _excluded$2 = ["component", "showPagination", "filters"],
921
- _excluded2 = ["page"];
903
+ var _excluded$3 = ["component", "showPagination", "filters"],
904
+ _excluded2$1 = ["page"];
922
905
  var propTypes$a = {
923
906
  resource: PropTypes.resource.isRequired,
924
907
  query: PropTypes$1.object,
@@ -940,51 +923,42 @@ var defaultProps$a = {
940
923
  onQueryChange: null,
941
924
  onQueryReset: null
942
925
  };
943
-
944
926
  var ResourceItemsList = function ResourceItemsList(_ref) {
945
927
  var resource = _ref.resource,
946
- query = _ref.query,
947
- baseUrl = _ref.baseUrl,
948
- onQueryChange = _ref.onQueryChange,
949
- onQueryReset = _ref.onQueryReset,
950
- paginated = _ref.paginated;
951
- var _resource$index = resource.index;
952
- _resource$index = _resource$index === void 0 ? {} : _resource$index;
953
-
954
- var _resource$index$compo = _resource$index.component,
955
- listComponent = _resource$index$compo === void 0 ? null : _resource$index$compo,
956
- _resource$index$showP = _resource$index.showPagination,
957
- showPagination = _resource$index$showP === void 0 ? true : _resource$index$showP,
958
- _resource$index$filte = _resource$index.filters,
959
- filters = _resource$index$filte === void 0 ? null : _resource$index$filte,
960
- listProps = _objectWithoutProperties(_resource$index, _excluded$2);
961
-
928
+ query = _ref.query,
929
+ baseUrl = _ref.baseUrl,
930
+ onQueryChange = _ref.onQueryChange,
931
+ onQueryReset = _ref.onQueryReset,
932
+ paginated = _ref.paginated;
933
+ var _resource$index = resource.index,
934
+ _resource$index2 = _resource$index === void 0 ? {} : _resource$index,
935
+ _resource$index2$comp = _resource$index2.component,
936
+ listComponent = _resource$index2$comp === void 0 ? null : _resource$index2$comp,
937
+ _resource$index2$show = _resource$index2.showPagination,
938
+ showPagination = _resource$index2$show === void 0 ? true : _resource$index2$show,
939
+ _resource$index2$filt = _resource$index2.filters,
940
+ filters = _resource$index2$filt === void 0 ? null : _resource$index2$filt,
941
+ listProps = _objectWithoutProperties(_resource$index2, _excluded$3);
962
942
  var _usePanneauColorSchem = usePanneauColorScheme(),
963
- _usePanneauColorSchem2 = _usePanneauColorSchem.background,
964
- theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2;
965
-
943
+ _usePanneauColorSchem2 = _usePanneauColorSchem.background,
944
+ theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2;
966
945
  var ListComponents = useListsComponents();
967
-
968
946
  var _useMemo = useMemo(function () {
969
- var _ref2 = query || {},
947
+ var _ref2 = query || {},
970
948
  _ref2$page = _ref2.page,
971
949
  currentPage = _ref2$page === void 0 ? 1 : _ref2$page,
972
- rest = _objectWithoutProperties(_ref2, _excluded2);
973
-
974
- return [currentPage, rest];
975
- }, [query]),
976
- _useMemo2 = _slicedToArray(_useMemo, 2),
977
- page = _useMemo2[0],
978
- queryWithoutPage = _useMemo2[1];
979
-
950
+ rest = _objectWithoutProperties(_ref2, _excluded2$1);
951
+ return [currentPage, rest];
952
+ }, [query]),
953
+ _useMemo2 = _slicedToArray(_useMemo, 2),
954
+ page = _useMemo2[0],
955
+ queryWithoutPage = _useMemo2[1];
980
956
  var itemsProps = useResourceItems(resource, queryWithoutPage, paginated ? parseInt(page, 10) : null);
981
-
982
957
  var _ref3 = itemsProps || {},
983
- _ref3$lastPage = _ref3.lastPage,
984
- lastPage = _ref3$lastPage === void 0 ? 0 : _ref3$lastPage,
985
- _ref3$total = _ref3.total,
986
- total = _ref3$total === void 0 ? 0 : _ref3$total;
987
-
958
+ _ref3$lastPage = _ref3.lastPage,
959
+ lastPage = _ref3$lastPage === void 0 ? 0 : _ref3$lastPage,
960
+ _ref3$total = _ref3.total,
961
+ total = _ref3$total === void 0 ? 0 : _ref3$total;
988
962
  var ListComponent = getComponentFromName(listComponent || 'table', ListComponents);
989
963
  return /*#__PURE__*/React.createElement(React.Fragment, null, filters !== null ? /*#__PURE__*/React.createElement(ResourceFilters, {
990
964
  filters: filters,
@@ -1014,39 +988,34 @@ var ResourceItemsList = function ResourceItemsList(_ref) {
1014
988
  className: "mt-4 mb-1"
1015
989
  }) : null);
1016
990
  };
1017
-
1018
991
  ResourceItemsList.propTypes = propTypes$a;
1019
992
  ResourceItemsList.defaultProps = defaultProps$a;
1020
993
 
1021
- var _excluded$1 = ["id", "component"];
994
+ var _excluded$2 = ["id", "component"];
1022
995
  var propTypes$9 = {
1023
996
  resource: PropTypes.resource.isRequired,
1024
997
  defaultActions: PropTypes$1.arrayOf(PropTypes$1.object) // eslint-disable-line react/forbid-prop-types
1025
-
1026
998
  };
999
+
1027
1000
  var defaultProps$9 = {
1028
1001
  defaultActions: ['create']
1029
1002
  };
1030
-
1031
1003
  var ResourceIndexPage = function ResourceIndexPage(_ref) {
1032
1004
  var resource = _ref.resource,
1033
- defaultActions = _ref.defaultActions;
1005
+ defaultActions = _ref.defaultActions;
1034
1006
  var name = resource.name,
1035
- _resource$settings = resource.settings,
1036
- settings = _resource$settings === void 0 ? {} : _resource$settings,
1037
- _resource$index = resource.index,
1038
- index = _resource$index === void 0 ? {} : _resource$index;
1039
-
1007
+ _resource$settings = resource.settings,
1008
+ settings = _resource$settings === void 0 ? {} : _resource$settings,
1009
+ _resource$index = resource.index,
1010
+ index = _resource$index === void 0 ? {} : _resource$index;
1040
1011
  var _ref2 = settings || {},
1041
- _ref2$canCreate = _ref2.canCreate,
1042
- canCreate = _ref2$canCreate === void 0 ? true : _ref2$canCreate,
1043
- _ref2$indexIsPaginate = _ref2.indexIsPaginated,
1044
- paginated = _ref2$indexIsPaginate === void 0 ? false : _ref2$indexIsPaginate;
1045
-
1012
+ _ref2$canCreate = _ref2.canCreate,
1013
+ canCreate = _ref2$canCreate === void 0 ? true : _ref2$canCreate,
1014
+ _ref2$indexIsPaginate = _ref2.indexIsPaginated,
1015
+ paginated = _ref2$indexIsPaginate === void 0 ? false : _ref2$indexIsPaginate;
1046
1016
  var _ref3 = index || {},
1047
- _ref3$actions = _ref3.actions,
1048
- actions = _ref3$actions === void 0 ? null : _ref3$actions;
1049
-
1017
+ _ref3$actions = _ref3.actions,
1018
+ actions = _ref3$actions === void 0 ? null : _ref3$actions;
1050
1019
  var finalActions = useMemo(function () {
1051
1020
  return (actions || defaultActions.filter(function (it) {
1052
1021
  return it !== 'create' || canCreate;
@@ -1061,10 +1030,8 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1061
1030
  }, [canCreate, actions]);
1062
1031
  var resourceValues = useResourceValues(resource);
1063
1032
  var componentsManager = useComponentsManager();
1064
-
1065
1033
  var _useLocation = useLocation(),
1066
- search = _useLocation.search;
1067
-
1034
+ search = _useLocation.search;
1068
1035
  var navigate = useNavigate();
1069
1036
  var query = useMemo(function () {
1070
1037
  return parse(search);
@@ -1072,13 +1039,11 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1072
1039
  var listQuery = useMemo(function () {
1073
1040
  return query;
1074
1041
  }, [query]); // TODO: omit routes
1075
-
1076
1042
  var _ref4 = query || {},
1077
- _ref4$created = _ref4.created,
1078
- created = _ref4$created === void 0 ? false : _ref4$created,
1079
- _ref4$deleted = _ref4.deleted,
1080
- deleted = _ref4$deleted === void 0 ? false : _ref4$deleted;
1081
-
1043
+ _ref4$created = _ref4.created,
1044
+ created = _ref4$created === void 0 ? false : _ref4$created,
1045
+ _ref4$deleted = _ref4.deleted,
1046
+ deleted = _ref4$deleted === void 0 ? false : _ref4$deleted;
1082
1047
  var resourceRoute = useResourceUrlGenerator(resource);
1083
1048
  var url = resourceRoute('index');
1084
1049
  var onQueryChange = useCallback(function (submitQuery) {
@@ -1097,8 +1062,10 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1097
1062
  navigate("".concat(url, "?").concat(queryString));
1098
1063
  }, [navigate, url, paginated]);
1099
1064
  var onClickCloseAlert = useCallback(function () {
1100
- history.replace(url);
1101
- }, [history, url]);
1065
+ navigate(url, {
1066
+ replace: true
1067
+ });
1068
+ }, [navigate, url]);
1102
1069
  return /*#__PURE__*/React.createElement(ResourceProvider, {
1103
1070
  resource: resource
1104
1071
  }, /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement(PageHeader, {
@@ -1107,10 +1074,9 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1107
1074
  className: "d-flex align-items-center"
1108
1075
  }, finalActions.map(function (_ref5) {
1109
1076
  var id = _ref5.id,
1110
- _ref5$component = _ref5.component,
1111
- component = _ref5$component === void 0 ? Button : _ref5$component,
1112
- actionProps = _objectWithoutProperties(_ref5, _excluded$1);
1113
-
1077
+ _ref5$component = _ref5.component,
1078
+ component = _ref5$component === void 0 ? Button : _ref5$component,
1079
+ actionProps = _objectWithoutProperties(_ref5, _excluded$2);
1114
1080
  var ActionComponent = isString(component) ? componentsManager.getComponent(component) : component;
1115
1081
  return ActionComponent !== null ? /*#__PURE__*/React.createElement(ActionComponent, Object.assign({
1116
1082
  key: "action-".concat(id)
@@ -1157,7 +1123,6 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1157
1123
  onQueryReset: onQueryReset
1158
1124
  }))));
1159
1125
  };
1160
-
1161
1126
  ResourceIndexPage.propTypes = propTypes$9;
1162
1127
  ResourceIndexPage.defaultProps = defaultProps$9;
1163
1128
 
@@ -1165,7 +1130,6 @@ var propTypes$8 = {
1165
1130
  resource: PropTypes.resource.isRequired
1166
1131
  };
1167
1132
  var defaultProps$8 = {};
1168
-
1169
1133
  var ResourceShowPage = function ResourceShowPage(_ref) {
1170
1134
  var resource = _ref.resource;
1171
1135
  return /*#__PURE__*/React.createElement(ResourceProvider, {
@@ -1176,30 +1140,27 @@ var ResourceShowPage = function ResourceShowPage(_ref) {
1176
1140
  className: "container-sm"
1177
1141
  }, "Show page")));
1178
1142
  };
1179
-
1180
1143
  ResourceShowPage.propTypes = propTypes$8;
1181
1144
  ResourceShowPage.defaultProps = defaultProps$8;
1182
1145
 
1183
1146
  /* eslint-disable react/jsx-props-no-spreading */
1184
1147
  var propTypes$7 = {};
1185
1148
  var defaultProps$7 = {};
1186
-
1187
1149
  var HomePage = function HomePage() {
1188
1150
  var route = useUrlGenerator();
1189
1151
  var resources = usePanneauResources();
1190
1152
  var visibleResources = resources.filter(function (_ref) {
1191
- var _ref$settings = _ref.settings;
1192
- _ref$settings = _ref$settings === void 0 ? {} : _ref$settings;
1193
- var _ref$settings$hideInN = _ref$settings.hideInNavbar,
1194
- hideInNavbar = _ref$settings$hideInN === void 0 ? false : _ref$settings$hideInN;
1153
+ var _ref$settings = _ref.settings,
1154
+ _ref$settings2 = _ref$settings === void 0 ? {} : _ref$settings,
1155
+ _ref$settings2$hideIn = _ref$settings2.hideInNavbar,
1156
+ hideInNavbar = _ref$settings2$hideIn === void 0 ? false : _ref$settings2$hideIn;
1195
1157
  return !hideInNavbar;
1196
1158
  });
1197
1159
  return /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement("div", {
1198
1160
  className: "container-sm py-4"
1199
1161
  }, visibleResources.map(function (resource) {
1200
1162
  var _ref2 = resource || {},
1201
- resourceId = _ref2.id;
1202
-
1163
+ resourceId = _ref2.id;
1203
1164
  var resourceValues = useResourceValues(resource);
1204
1165
  return /*#__PURE__*/React.createElement(Link, {
1205
1166
  className: "d-block my-2",
@@ -1220,19 +1181,16 @@ var HomePage = function HomePage() {
1220
1181
  }));
1221
1182
  })));
1222
1183
  };
1223
-
1224
1184
  HomePage.propTypes = propTypes$7;
1225
1185
  HomePage.defaultProps = defaultProps$7;
1226
1186
 
1227
1187
  var propTypes$6 = {};
1228
1188
  var defaultProps$6 = {};
1229
-
1230
1189
  var AccountPage = function AccountPage() {
1231
1190
  return /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement("div", {
1232
1191
  className: "container-sm py-4"
1233
1192
  }, "Account page"));
1234
1193
  };
1235
-
1236
1194
  AccountPage.propTypes = propTypes$6;
1237
1195
  AccountPage.defaultProps = defaultProps$6;
1238
1196
 
@@ -1269,35 +1227,30 @@ var defaultProps$5 = {
1269
1227
  className: null,
1270
1228
  onSuccess: null
1271
1229
  };
1272
-
1273
1230
  var LoginForm = function LoginForm(_ref) {
1274
1231
  var formFields = _ref.fields,
1275
- className = _ref.className,
1276
- onSuccess = _ref.onSuccess;
1232
+ className = _ref.className,
1233
+ onSuccess = _ref.onSuccess;
1277
1234
  var url = useUrlGenerator();
1278
-
1279
1235
  var _useAuth = useAuth(),
1280
- login = _useAuth.login;
1281
-
1236
+ login = _useAuth.login;
1282
1237
  var postForm = useCallback(function (action, _ref2) {
1283
1238
  var email = _ref2.email,
1284
- password = _ref2.password;
1239
+ password = _ref2.password;
1285
1240
  return login(email, password);
1286
1241
  }, [login]);
1287
-
1288
1242
  var _useForm = useForm({
1289
- fields: formFields,
1290
- postForm: postForm,
1291
- onComplete: onSuccess
1292
- }),
1293
- value = _useForm.value,
1294
- setValue = _useForm.setValue,
1295
- fields = _useForm.fields,
1296
- onSubmit = _useForm.onSubmit,
1297
- status = _useForm.status,
1298
- generalError = _useForm.generalError,
1299
- errors = _useForm.errors;
1300
-
1243
+ fields: formFields,
1244
+ postForm: postForm,
1245
+ onComplete: onSuccess
1246
+ }),
1247
+ value = _useForm.value,
1248
+ setValue = _useForm.setValue,
1249
+ fields = _useForm.fields,
1250
+ onSubmit = _useForm.onSubmit,
1251
+ status = _useForm.status,
1252
+ generalError = _useForm.generalError,
1253
+ errors = _useForm.errors;
1301
1254
  var NormalForm = useFormComponent('normal');
1302
1255
  return /*#__PURE__*/React.createElement(NormalForm, {
1303
1256
  action: url('auth.login'),
@@ -1319,7 +1272,6 @@ var LoginForm = function LoginForm(_ref) {
1319
1272
  })
1320
1273
  });
1321
1274
  };
1322
-
1323
1275
  LoginForm.propTypes = propTypes$5;
1324
1276
  LoginForm.defaultProps = defaultProps$5;
1325
1277
 
@@ -1330,17 +1282,13 @@ var propTypes$4 = {
1330
1282
  var defaultProps$4 = {
1331
1283
  fullscreen: false
1332
1284
  };
1333
-
1334
1285
  var GuestLayout = function GuestLayout(_ref) {
1335
1286
  var _classNames;
1336
-
1337
1287
  var fullscreen = _ref.fullscreen,
1338
- children = _ref.children;
1339
-
1288
+ children = _ref.children;
1340
1289
  var _usePanneauColorSchem = usePanneauColorScheme(),
1341
- background = _usePanneauColorSchem.background,
1342
- text = _usePanneauColorSchem.text;
1343
-
1290
+ background = _usePanneauColorSchem.background,
1291
+ text = _usePanneauColorSchem.text;
1344
1292
  return /*#__PURE__*/React.createElement("div", {
1345
1293
  className: classNames({
1346
1294
  'd-flex flex-column min-vh-100': fullscreen
@@ -1357,14 +1305,12 @@ var GuestLayout = function GuestLayout(_ref) {
1357
1305
  })
1358
1306
  }, children)));
1359
1307
  };
1360
-
1361
1308
  GuestLayout.propTypes = propTypes$4;
1362
1309
  GuestLayout.defaultProps = defaultProps$4;
1363
1310
 
1364
1311
  /* eslint-disable react/jsx-props-no-spreading */
1365
1312
  var propTypes$3 = {};
1366
1313
  var defaultProps$3 = {};
1367
-
1368
1314
  var LoginPage = function LoginPage() {
1369
1315
  var route = useUrlGenerator();
1370
1316
  var onSuccess = useCallback(function () {
@@ -1390,7 +1336,6 @@ var LoginPage = function LoginPage() {
1390
1336
  onSuccess: onSuccess
1391
1337
  })))));
1392
1338
  };
1393
-
1394
1339
  LoginPage.propTypes = propTypes$3;
1395
1340
  LoginPage.defaultProps = defaultProps$3;
1396
1341
 
@@ -1493,7 +1438,6 @@ var propTypes$2 = {
1493
1438
  var defaultProps$2 = {
1494
1439
  statusCode: null
1495
1440
  };
1496
-
1497
1441
  var ErrorPage = function ErrorPage(_ref) {
1498
1442
  var statusCode = _ref.statusCode;
1499
1443
  return /*#__PURE__*/React.createElement(GuestLayout, {
@@ -1506,68 +1450,50 @@ var ErrorPage = function ErrorPage(_ref) {
1506
1450
  className: "col-12 col-sm-8 col-md-6"
1507
1451
  }, /*#__PURE__*/React.createElement("h1", null, /*#__PURE__*/React.createElement(Label, null, messages["title".concat(statusCode || 404)])), /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement(Label, null, messages["description".concat(statusCode || 404)]))))));
1508
1452
  };
1509
-
1510
1453
  ErrorPage.propTypes = propTypes$2;
1511
1454
  ErrorPage.defaultProps = defaultProps$2;
1512
1455
 
1513
- var basePages = /*#__PURE__*/Object.freeze({
1514
- __proto__: null,
1515
- ResourceCreate: ResourceCreatePage,
1516
- ResourceDelete: ResourceDeletePage,
1517
- ResourceEdit: ResourceEditPage,
1518
- ResourceIndex: ResourceIndexPage,
1519
- ResourceShow: ResourceShowPage,
1520
- Home: HomePage,
1521
- Account: AccountPage,
1522
- Login: LoginPage,
1523
- Error: ErrorPage
1524
- });
1525
-
1526
- var _excluded = ["path", "component", "exact"];
1527
-
1456
+ var _excluded$1 = ["path", "component", "exact"];
1528
1457
  var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1529
1458
  var route = _ref.route,
1530
- componentsManager = _ref.componentsManager;
1459
+ componentsManager = _ref.componentsManager,
1460
+ _ref$pages = _ref.pages,
1461
+ pages = _ref$pages === void 0 ? {} : _ref$pages;
1531
1462
  var resourceId = resource.id,
1532
- _resource$pages = resource.pages,
1533
- pages = _resource$pages === void 0 ? {} : _resource$pages,
1534
- _resource$extraRoutes = resource.extraRoutes,
1535
- extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes; // Load custom pages from resource
1463
+ _resource$pages = resource.pages,
1464
+ resourcePages = _resource$pages === void 0 ? {} : _resource$pages,
1465
+ _resource$extraRoutes = resource.extraRoutes,
1466
+ extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes;
1536
1467
 
1468
+ // Load custom pages from resource
1537
1469
  var _ref2 = pages || {},
1538
- _ref2$index = _ref2.index,
1539
- indexPage = _ref2$index === void 0 ? null : _ref2$index,
1540
- _ref2$show = _ref2.show,
1541
- showPage = _ref2$show === void 0 ? null : _ref2$show,
1542
- _ref2$create = _ref2.create,
1543
- createPage = _ref2$create === void 0 ? null : _ref2$create,
1544
- _ref2$edit = _ref2.edit,
1545
- editPage = _ref2$edit === void 0 ? null : _ref2$edit,
1546
- _ref2$delete = _ref2["delete"],
1547
- deletePage = _ref2$delete === void 0 ? null : _ref2$delete;
1548
-
1549
- var ResourceIndexComponent = indexPage !== null && typeof indexPage.component !== 'undefined' ? componentsManager.getComponent(indexPage.component) : ResourceIndexPage;
1550
- var ResourceShowComponent = showPage !== null && typeof showPage.component !== 'undefined' ? componentsManager.getComponent(showPage.component) : ResourceShowPage;
1551
- var ResourceCreateComponent = createPage !== null && typeof createPage.component !== 'undefined' ? componentsManager.getComponent(createPage.component) : ResourceCreatePage;
1552
- var ResourceEditComponent = editPage !== null && typeof editPage.component !== 'undefined' ? componentsManager.getComponent(editPage.component) : ResourceEditPage;
1553
- var ResourceDeleteComponent = deletePage !== null && typeof deletePage.component !== 'undefined' ? componentsManager.getComponent(deletePage.component) : ResourceDeletePage;
1554
- return /*#__PURE__*/React.createElement(React.Fragment, null, extraRoutes.map(function (_ref3) {
1555
- var path = _ref3.path,
1556
- component = _ref3.component,
1557
- _ref3$exact = _ref3.exact,
1558
- exact = _ref3$exact === void 0 ? true : _ref3$exact,
1559
- pageProps = _objectWithoutProperties(_ref3, _excluded);
1560
-
1561
- var RouteComponent = componentsManager.getComponent(component);
1562
- return RouteComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1563
- key: "route-".concat(path),
1564
- path: path,
1565
- exact: exact,
1566
- element: /*#__PURE__*/React.createElement(RouteComponent, Object.assign({
1567
- resource: resource
1568
- }, pageProps))
1569
- }) : null;
1570
- }), /*#__PURE__*/React.createElement(Route, {
1470
+ _ref2$index = _ref2.index,
1471
+ indexPage = _ref2$index === void 0 ? null : _ref2$index,
1472
+ _ref2$show = _ref2.show,
1473
+ showPage = _ref2$show === void 0 ? null : _ref2$show,
1474
+ _ref2$create = _ref2.create,
1475
+ createPage = _ref2$create === void 0 ? null : _ref2$create,
1476
+ _ref2$edit = _ref2.edit,
1477
+ editPage = _ref2$edit === void 0 ? null : _ref2$edit,
1478
+ _ref2$delete = _ref2["delete"],
1479
+ deletePage = _ref2$delete === void 0 ? null : _ref2$delete;
1480
+ var _ref3 = resourcePages || {},
1481
+ _ref3$index = _ref3.index,
1482
+ resourceIndexPage = _ref3$index === void 0 ? null : _ref3$index,
1483
+ _ref3$show = _ref3.show,
1484
+ resourceShowPage = _ref3$show === void 0 ? null : _ref3$show,
1485
+ _ref3$create = _ref3.create,
1486
+ resourceCreatePage = _ref3$create === void 0 ? null : _ref3$create,
1487
+ _ref3$edit = _ref3.edit,
1488
+ resourceEditPage = _ref3$edit === void 0 ? null : _ref3$edit,
1489
+ _ref3$delete = _ref3["delete"],
1490
+ resourceDeletePage = _ref3$delete === void 0 ? null : _ref3$delete;
1491
+ var ResourceIndexComponent = componentsManager.getComponent(resourceIndexPage === null || resourceIndexPage === void 0 ? void 0 : resourceIndexPage.component) || componentsManager.getComponent(indexPage === null || indexPage === void 0 ? void 0 : indexPage.component) || ResourceIndexPage;
1492
+ var ResourceShowComponent = componentsManager.getComponent(resourceShowPage === null || resourceShowPage === void 0 ? void 0 : resourceShowPage.component) || componentsManager.getComponent(showPage === null || showPage === void 0 ? void 0 : showPage.component) || ResourceShowPage;
1493
+ var ResourceCreateComponent = componentsManager.getComponent(resourceCreatePage === null || resourceCreatePage === void 0 ? void 0 : resourceCreatePage.component) || componentsManager.getComponent(createPage === null || createPage === void 0 ? void 0 : createPage.component) || ResourceCreatePage;
1494
+ var ResourceEditComponent = componentsManager.getComponent(resourceEditPage === null || resourceEditPage === void 0 ? void 0 : resourceEditPage.component) || componentsManager.getComponent(editPage === null || editPage === void 0 ? void 0 : editPage.component) || ResourceEditPage;
1495
+ var ResourceDeleteComponent = componentsManager.getComponent(resourceDeletePage === null || resourceDeletePage === void 0 ? void 0 : resourceDeletePage.component) || componentsManager.getComponent(deletePage === null || deletePage === void 0 ? void 0 : deletePage.component) || ResourceDeletePage;
1496
+ return [/*#__PURE__*/React.createElement(Route, {
1571
1497
  path: route('resources.index', {
1572
1498
  resource: resourceId
1573
1499
  }),
@@ -1610,116 +1536,163 @@ var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1610
1536
  element: /*#__PURE__*/React.createElement(ResourceDeleteComponent, {
1611
1537
  resource: resource
1612
1538
  })
1613
- }));
1539
+ })].concat(_toConsumableArray(extraRoutes.map(function (_ref4) {
1540
+ var path = _ref4.path,
1541
+ component = _ref4.component,
1542
+ _ref4$exact = _ref4.exact,
1543
+ exact = _ref4$exact === void 0 ? true : _ref4$exact,
1544
+ pageProps = _objectWithoutProperties(_ref4, _excluded$1);
1545
+ var RouteComponent = componentsManager.getComponent(component);
1546
+ return RouteComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1547
+ key: "route-".concat(path),
1548
+ path: path,
1549
+ exact: exact,
1550
+ element: /*#__PURE__*/React.createElement(RouteComponent, Object.assign({
1551
+ resource: resource
1552
+ }, pageProps))
1553
+ }) : null;
1554
+ })));
1614
1555
  };
1615
1556
 
1557
+ var _excluded = ["home", "login", "account", "error", "index", "show", "create", "edit", "delete"],
1558
+ _excluded2 = ["path", "route", "component", "exact"];
1616
1559
  var propTypes$1 = {
1617
1560
  statusCode: PropTypes.statusCode
1618
1561
  };
1619
1562
  var defaultProps$1 = {
1620
1563
  statusCode: null
1621
1564
  };
1622
-
1623
1565
  var PanneauRoutes = function PanneauRoutes(_ref) {
1624
1566
  var initialStatusCode = _ref.statusCode;
1625
-
1626
- var _usePanneau = usePanneau(),
1627
- _usePanneau$pages = _usePanneau.pages,
1628
- pages = _usePanneau$pages === void 0 ? {} : _usePanneau$pages;
1629
-
1630
1567
  var routes = useRoutes();
1631
-
1632
1568
  var _useLocation = useLocation(),
1633
- pathname = _useLocation.pathname; // search
1634
-
1635
-
1569
+ pathname = _useLocation.pathname;
1636
1570
  var _useState = useState({
1637
- statusCode: initialStatusCode,
1638
- pathname: pathname
1639
- }),
1640
- _useState2 = _slicedToArray(_useState, 2),
1641
- _useState2$ = _useState2[0],
1642
- statusCode = _useState2$.statusCode,
1643
- initialPathname = _useState2$.pathname,
1644
- setInitialRequest = _useState2[1];
1645
-
1571
+ statusCode: initialStatusCode,
1572
+ pathname: pathname
1573
+ }),
1574
+ _useState2 = _slicedToArray(_useState, 2),
1575
+ _useState2$ = _useState2[0],
1576
+ statusCode = _useState2$.statusCode,
1577
+ lastPathname = _useState2$.pathname,
1578
+ setInitialRequest = _useState2[1];
1646
1579
  var user = useUser();
1647
1580
  var route = useUrlGenerator();
1648
1581
  var resources = usePanneauResources();
1649
- var componentsManager = useComponentsManager(); // const nextUrl = useMemo(() => {
1650
- // const query = parseQuery(search);
1651
- // return query !== null ? query.next || null : null;
1652
- // }, [search]);
1653
-
1582
+ var componentsManager = usePagesComponentsManager();
1654
1583
  useEffect(function () {
1655
- if (pathname !== initialPathname) {
1584
+ if (pathname !== lastPathname) {
1656
1585
  setInitialRequest({
1657
1586
  pathname: pathname,
1658
1587
  statusCode: null
1659
1588
  });
1660
1589
  }
1661
- }, [pathname, initialPathname]); // Custom Pages
1590
+ }, [pathname, lastPathname]);
1662
1591
 
1592
+ // Custom Pages
1593
+ var _usePanneau = usePanneau(),
1594
+ _usePanneau$pages = _usePanneau.pages,
1595
+ pages = _usePanneau$pages === void 0 ? null : _usePanneau$pages,
1596
+ routesDefinition = _usePanneau.routes;
1663
1597
  var _ref2 = pages || {},
1664
- _ref2$home = _ref2.home,
1665
- homePage = _ref2$home === void 0 ? null : _ref2$home,
1666
- _ref2$login = _ref2.login,
1667
- loginPage = _ref2$login === void 0 ? null : _ref2$login,
1668
- _ref2$account = _ref2.account,
1669
- accountPage = _ref2$account === void 0 ? null : _ref2$account,
1670
- _ref2$error = _ref2.error,
1671
- errorPage = _ref2$error === void 0 ? null : _ref2$error;
1672
-
1673
- var HomeComponent = getComponentFromName((homePage === null || homePage === void 0 ? void 0 : homePage.component) || 'home', basePages, homePage === null || homePage === void 0 ? void 0 : homePage.component);
1674
- var LoginComponent = getComponentFromName((loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || 'login', basePages, loginPage === null || loginPage === void 0 ? void 0 : loginPage.component);
1675
- var AccountComponent = getComponentFromName((accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || 'account', basePages, accountPage === null || accountPage === void 0 ? void 0 : accountPage.component);
1676
- var ErrorComponent = getComponentFromName((errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || 'error', basePages, errorPage === null || errorPage === void 0 ? void 0 : errorPage.component);
1677
- return /*#__PURE__*/React.createElement(Routes, null, statusCode !== null ? /*#__PURE__*/React.createElement(Route, {
1678
- path: "*",
1679
- element: /*#__PURE__*/React.createElement(ErrorComponent, {
1598
+ _ref2$home = _ref2.home,
1599
+ homePage = _ref2$home === void 0 ? null : _ref2$home,
1600
+ _ref2$login = _ref2.login,
1601
+ loginPage = _ref2$login === void 0 ? null : _ref2$login,
1602
+ _ref2$account = _ref2.account,
1603
+ accountPage = _ref2$account === void 0 ? null : _ref2$account,
1604
+ _ref2$error = _ref2.error,
1605
+ errorPage = _ref2$error === void 0 ? null : _ref2$error;
1606
+ _ref2.index;
1607
+ _ref2.show;
1608
+ _ref2.create;
1609
+ _ref2.edit;
1610
+ _ref2["delete"];
1611
+ var otherPages = _objectWithoutProperties(_ref2, _excluded);
1612
+ var customRoutes = useMemo(function () {
1613
+ return [].concat(_toConsumableArray(Object.keys(routesDefinition).filter(function (key) {
1614
+ return key.match(/^(resources\.|auth\.)/) === null && key !== 'home' && key !== 'account';
1615
+ }).filter(function (key) {
1616
+ var routeDef = routesDefinition[key];
1617
+ return isObject(routeDef) && typeof routeDef.component !== 'undefined' && typeof routeDef.path !== 'undefined';
1618
+ }).map(function (key) {
1619
+ return routesDefinition[key];
1620
+ })), _toConsumableArray(Object.keys(otherPages).map(function (key) {
1621
+ return otherPages[key];
1622
+ }).filter(function (_ref3) {
1623
+ var _ref3$path = _ref3.path,
1624
+ path = _ref3$path === void 0 ? null : _ref3$path,
1625
+ _ref3$route = _ref3.route,
1626
+ pageRoute = _ref3$route === void 0 ? null : _ref3$route;
1627
+ return path !== null || pageRoute !== null;
1628
+ })));
1629
+ }, [routesDefinition, otherPages]);
1630
+ var HomeComponent = componentsManager.getComponent(homePage === null || homePage === void 0 ? void 0 : homePage.component) || HomePage;
1631
+ var LoginComponent = componentsManager.getComponent(loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || LoginPage;
1632
+ var AccountComponent = componentsManager.getComponent(accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || AccountPage;
1633
+ var ErrorComponent = componentsManager.getComponent(errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || ErrorPage;
1634
+
1635
+ // If there is an error status code
1636
+ if (statusCode !== null) {
1637
+ return /*#__PURE__*/React.createElement(ErrorComponent, {
1680
1638
  statusCode: statusCode
1681
- })
1682
- }) : null, /*#__PURE__*/React.createElement(Route, {
1683
- path: routes.home,
1684
- exact: true,
1685
- element: user !== null ? /*#__PURE__*/React.createElement(HomeComponent, null) : /*#__PURE__*/React.createElement(Navigate, {
1686
- to: route('login'),
1687
- replace: true
1688
- })
1689
- }), user === null ? /*#__PURE__*/React.createElement(Route, {
1690
- path: routes.login,
1691
- exact: true,
1692
- element: /*#__PURE__*/React.createElement(LoginComponent, null)
1693
- }) : null, resources.map(function (resource) {
1694
- var _ref3 = resource || {},
1695
- resourceId = _ref3.id;
1639
+ });
1640
+ }
1696
1641
 
1697
- return user !== null ? createResourceRoutes(resource, {
1698
- route: route,
1699
- componentsManager: componentsManager
1700
- }) : /*#__PURE__*/React.createElement(Route, {
1701
- key: "resource-".concat(resourceId),
1702
- path: route('resources.index', {
1703
- resource: resourceId
1704
- }),
1642
+ // If user is unauthenticated
1643
+ if (user === null) {
1644
+ return /*#__PURE__*/React.createElement(Routes, null, /*#__PURE__*/React.createElement(Route, {
1645
+ path: routes['auth.login'],
1646
+ exact: true,
1647
+ element: /*#__PURE__*/React.createElement(LoginComponent, null)
1648
+ }), /*#__PURE__*/React.createElement(Route, {
1649
+ path: "*",
1705
1650
  element: /*#__PURE__*/React.createElement(Navigate, {
1706
- to: "".concat(route('login'), "?next=").concat(encodeURIComponent(pathname)),
1651
+ to: "".concat(route('auth.login'), "?next=").concat(encodeURIComponent(pathname)),
1707
1652
  replace: true
1708
1653
  })
1709
- });
1654
+ }));
1655
+ }
1656
+
1657
+ // Normal routes
1658
+ return /*#__PURE__*/React.createElement(Routes, null, /*#__PURE__*/React.createElement(Route, {
1659
+ path: routes.home,
1660
+ exact: true,
1661
+ element: /*#__PURE__*/React.createElement(HomeComponent, null)
1662
+ }), resources.map(function (resource) {
1663
+ var _ref4 = resource || {},
1664
+ resourceId = _ref4.id;
1665
+ return /*#__PURE__*/React.createElement(Fragment, {
1666
+ key: "resource-".concat(resourceId)
1667
+ }, createResourceRoutes(resource, {
1668
+ route: route,
1669
+ componentsManager: componentsManager,
1670
+ pages: pages
1671
+ }));
1710
1672
  }), /*#__PURE__*/React.createElement(Route, {
1711
- path: route('account'),
1673
+ path: routes.account,
1712
1674
  exact: true,
1713
- element: user !== null ? /*#__PURE__*/React.createElement(AccountComponent, null) : /*#__PURE__*/React.createElement(Navigate, {
1714
- to: "".concat(route('login'), "?next=").concat(encodeURIComponent(pathname)),
1715
- replace: true
1716
- })
1675
+ element: /*#__PURE__*/React.createElement(AccountComponent, null)
1676
+ }), customRoutes.map(function (_ref5) {
1677
+ var _ref5$path = _ref5.path,
1678
+ path = _ref5$path === void 0 ? null : _ref5$path,
1679
+ _ref5$route = _ref5.route,
1680
+ pageRoute = _ref5$route === void 0 ? null : _ref5$route,
1681
+ component = _ref5.component,
1682
+ _ref5$exact = _ref5.exact,
1683
+ exact = _ref5$exact === void 0 ? true : _ref5$exact,
1684
+ props = _objectWithoutProperties(_ref5, _excluded2);
1685
+ var PageComponent = componentsManager.getComponent(component);
1686
+ return PageComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1687
+ path: path || routes[pageRoute],
1688
+ exact: exact,
1689
+ element: /*#__PURE__*/React.createElement(PageComponent, props)
1690
+ }) : null;
1717
1691
  }), /*#__PURE__*/React.createElement(Route, {
1718
1692
  path: "*",
1719
- elmeent: /*#__PURE__*/React.createElement(ErrorComponent, null)
1693
+ element: /*#__PURE__*/React.createElement(ErrorComponent, null)
1720
1694
  }));
1721
1695
  };
1722
-
1723
1696
  PanneauRoutes.propTypes = propTypes$1;
1724
1697
  PanneauRoutes.defaultProps = defaultProps$1;
1725
1698
 
@@ -1740,41 +1713,40 @@ var defaultProps = {
1740
1713
  uppy: null,
1741
1714
  statusCode: null
1742
1715
  };
1743
-
1744
1716
  var Container = function Container(_ref) {
1745
1717
  var definition = _ref.definition,
1746
- components = _ref.components,
1747
- user = _ref.user,
1748
- memoryRouter = _ref.memoryRouter,
1749
- baseUrl = _ref.baseUrl,
1750
- uppy = _ref.uppy,
1751
- statusCode = _ref.statusCode;
1752
- var _definition$intl = definition.intl;
1753
- _definition$intl = _definition$intl === void 0 ? {} : _definition$intl;
1754
- var _definition$intl$loca = _definition$intl.locale,
1755
- locale = _definition$intl$loca === void 0 ? 'en' : _definition$intl$loca,
1756
- _definition$intl$loca2 = _definition$intl.locales,
1757
- locales = _definition$intl$loca2 === void 0 ? [] : _definition$intl$loca2,
1758
- _definition$routes = definition.routes,
1759
- routes = _definition$routes === void 0 ? {} : _definition$routes,
1760
- _definition$settings = definition.settings;
1761
- _definition$settings = _definition$settings === void 0 ? {} : _definition$settings;
1762
- var _definition$settings$ = _definition$settings.memoryRouter,
1763
- usesMemoryRouter = _definition$settings$ === void 0 ? false : _definition$settings$;
1718
+ components = _ref.components,
1719
+ user = _ref.user,
1720
+ memoryRouter = _ref.memoryRouter,
1721
+ baseUrl = _ref.baseUrl,
1722
+ uppy = _ref.uppy,
1723
+ statusCode = _ref.statusCode;
1724
+ var _definition$intl = definition.intl,
1725
+ _definition$intl2 = _definition$intl === void 0 ? {} : _definition$intl,
1726
+ _definition$intl2$loc = _definition$intl2.locale,
1727
+ locale = _definition$intl2$loc === void 0 ? 'en' : _definition$intl2$loc,
1728
+ _definition$intl2$loc2 = _definition$intl2.locales,
1729
+ locales = _definition$intl2$loc2 === void 0 ? [] : _definition$intl2$loc2,
1730
+ _definition$routes = definition.routes,
1731
+ routes = _definition$routes === void 0 ? {} : _definition$routes,
1732
+ _definition$settings = definition.settings,
1733
+ _definition$settings2 = _definition$settings === void 0 ? {} : _definition$settings,
1734
+ _definition$settings3 = _definition$settings2.memoryRouter,
1735
+ usesMemoryRouter = _definition$settings3 === void 0 ? false : _definition$settings3;
1764
1736
  var Router = memoryRouter || usesMemoryRouter ? MemoryRouter : BrowserRouter;
1765
1737
  var extraMessages = useMemo(function () {
1766
- var _definition$intl2 = definition.intl;
1767
- _definition$intl2 = _definition$intl2 === void 0 ? {} : _definition$intl2;
1768
- var _definition$intl2$mes = _definition$intl2.messages,
1769
- messages = _definition$intl2$mes === void 0 ? null : _definition$intl2$mes,
1770
- _definition$resources = definition.resources,
1771
- resources = _definition$resources === void 0 ? [] : _definition$resources;
1738
+ var _definition$intl3 = definition.intl,
1739
+ _definition$intl4 = _definition$intl3 === void 0 ? {} : _definition$intl3,
1740
+ _definition$intl4$mes = _definition$intl4.messages,
1741
+ messages = _definition$intl4$mes === void 0 ? null : _definition$intl4$mes,
1742
+ _definition$resources = definition.resources,
1743
+ resources = _definition$resources === void 0 ? [] : _definition$resources;
1772
1744
  return _objectSpread(_objectSpread({}, messages), resources.reduce(function (allMessages, _ref2) {
1773
1745
  var id = _ref2.id,
1774
- _ref2$intl = _ref2.intl;
1775
- _ref2$intl = _ref2$intl === void 0 ? {} : _ref2$intl;
1776
- var _ref2$intl$messages = _ref2$intl.messages,
1777
- resourceMessages = _ref2$intl$messages === void 0 ? {} : _ref2$intl$messages;
1746
+ _ref2$intl = _ref2.intl,
1747
+ _ref2$intl2 = _ref2$intl === void 0 ? {} : _ref2$intl,
1748
+ _ref2$intl2$messages = _ref2$intl2.messages,
1749
+ resourceMessages = _ref2$intl2$messages === void 0 ? {} : _ref2$intl2$messages;
1778
1750
  return _objectSpread(_objectSpread({}, allMessages), Object.keys(resourceMessages).reduce(function (allResourceMessages, key) {
1779
1751
  return _objectSpread(_objectSpread({}, allResourceMessages), {}, _defineProperty({}, "resources.".concat(id, ".").concat(key), resourceMessages[key]));
1780
1752
  }, {}));
@@ -1806,7 +1778,6 @@ var Container = function Container(_ref) {
1806
1778
  statusCode: statusCode
1807
1779
  }))))))))))))));
1808
1780
  };
1809
-
1810
1781
  Container.propTypes = propTypes;
1811
1782
  Container.defaultProps = defaultProps;
1812
1783