@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/lib/index.js CHANGED
@@ -18,17 +18,20 @@ var FiltersProvider = require('@panneau/filters');
18
18
  var FormsProvider = require('@panneau/forms');
19
19
  var intl = require('@panneau/intl');
20
20
  var ListsProvider = require('@panneau/lists');
21
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
22
- var utils = require('@panneau/core/utils');
21
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
23
22
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
23
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
24
+ var isObject = require('lodash/isObject');
24
25
  var queryString = require('query-string');
25
26
  var reactIntl = require('react-intl');
26
27
  var hooks = require('@panneau/core/hooks');
28
+ var utils = require('@panneau/core/utils');
27
29
  var classNames = require('classnames');
28
30
  var Button = require('@panneau/element-button');
29
31
  var Form = require('@panneau/element-form');
30
- var Navbar = require('@panneau/element-navbar');
32
+ var isArray = require('lodash/isArray');
31
33
  var Menu = require('@panneau/element-menu');
34
+ var Navbar = require('@panneau/element-navbar');
32
35
  var Label = require('@panneau/element-label');
33
36
  var isString = require('lodash/isString');
34
37
  var Alert = require('@panneau/element-alert');
@@ -50,13 +53,16 @@ var FieldsProvider__default = /*#__PURE__*/_interopDefaultLegacy(FieldsProvider)
50
53
  var FiltersProvider__default = /*#__PURE__*/_interopDefaultLegacy(FiltersProvider);
51
54
  var FormsProvider__default = /*#__PURE__*/_interopDefaultLegacy(FormsProvider);
52
55
  var ListsProvider__default = /*#__PURE__*/_interopDefaultLegacy(ListsProvider);
53
- var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
56
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
54
57
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
58
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
59
+ var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
55
60
  var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
56
61
  var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
57
62
  var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form);
58
- var Navbar__default = /*#__PURE__*/_interopDefaultLegacy(Navbar);
63
+ var isArray__default = /*#__PURE__*/_interopDefaultLegacy(isArray);
59
64
  var Menu__default = /*#__PURE__*/_interopDefaultLegacy(Menu);
65
+ var Navbar__default = /*#__PURE__*/_interopDefaultLegacy(Navbar);
60
66
  var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label);
61
67
  var isString__default = /*#__PURE__*/_interopDefaultLegacy(isString);
62
68
  var Alert__default = /*#__PURE__*/_interopDefaultLegacy(Alert);
@@ -65,7 +71,7 @@ var Pagination__default = /*#__PURE__*/_interopDefaultLegacy(Pagination);
65
71
  var _toPropertyKey__default = /*#__PURE__*/_interopDefaultLegacy(_toPropertyKey);
66
72
  var FormGroup__default = /*#__PURE__*/_interopDefaultLegacy(FormGroup);
67
73
 
68
- var _excluded$5 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
74
+ var _excluded$6 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
69
75
  var propTypes$m = {
70
76
  resource: core.PropTypes.resource.isRequired,
71
77
  action: PropTypes__default["default"].string,
@@ -90,23 +96,20 @@ var defaultProps$m = {
90
96
  errors: null,
91
97
  className: null
92
98
  };
93
-
94
99
  var DeleteForm = function DeleteForm(_ref) {
95
100
  var resource = _ref.resource,
96
- action = _ref.action,
97
- previous = _ref.previous;
98
- _ref.status;
99
- var value = _ref.value,
100
- onSubmit = _ref.onSubmit;
101
- _ref.errors;
102
- var generalError = _ref.generalError,
103
- className = _ref.className,
104
- props = _objectWithoutProperties__default["default"](_ref, _excluded$5);
105
-
101
+ action = _ref.action,
102
+ previous = _ref.previous;
103
+ _ref.status;
104
+ var value = _ref.value,
105
+ onSubmit = _ref.onSubmit;
106
+ _ref.errors;
107
+ var generalError = _ref.generalError,
108
+ className = _ref.className,
109
+ props = _objectWithoutProperties__default["default"](_ref, _excluded$6);
106
110
  var _ref2 = value || {},
107
- _ref2$id = _ref2.id,
108
- id = _ref2$id === void 0 ? null : _ref2$id;
109
-
111
+ _ref2$id = _ref2.id,
112
+ id = _ref2$id === void 0 ? null : _ref2$id;
110
113
  var resourceValues = intl.useResourceValues(resource, {
111
114
  id: id
112
115
  });
@@ -174,11 +177,10 @@ var DeleteForm = function DeleteForm(_ref) {
174
177
  }]
175
178
  })))));
176
179
  };
177
-
178
180
  DeleteForm.propTypes = propTypes$m;
179
181
  DeleteForm.defaultProps = defaultProps$m;
180
182
 
181
- var _excluded$4 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
183
+ var _excluded$5 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
182
184
  var propTypes$l = {
183
185
  component: PropTypes__default["default"].string,
184
186
  resource: core.PropTypes.resource.isRequired,
@@ -195,129 +197,120 @@ var defaultProps$l = {
195
197
  onSuccess: null,
196
198
  isDelete: false
197
199
  };
198
-
199
200
  var ResourceForm = function ResourceForm(_ref) {
200
201
  var component = _ref.component,
201
- resource = _ref.resource,
202
- onSuccess = _ref.onSuccess,
203
- item = _ref.item,
204
- type = _ref.type,
205
- isDelete = _ref.isDelete,
206
- props = _objectWithoutProperties__default["default"](_ref, _excluded$4);
207
-
202
+ resource = _ref.resource,
203
+ onSuccess = _ref.onSuccess,
204
+ item = _ref.item,
205
+ type = _ref.type,
206
+ isDelete = _ref.isDelete,
207
+ props = _objectWithoutProperties__default["default"](_ref, _excluded$5);
208
208
  var locales = contexts.useLocales();
209
209
  var FormComponents = contexts.useFormsComponents();
210
210
  var _resource$fields = resource.fields,
211
- resourceFields = _resource$fields === void 0 ? [] : _resource$fields,
212
- _resource$types = resource.types,
213
- resourceTypes = _resource$types === void 0 ? [] : _resource$types,
214
- forms = resource.forms;
211
+ resourceFields = _resource$fields === void 0 ? [] : _resource$fields,
212
+ _resource$types = resource.types,
213
+ resourceTypes = _resource$types === void 0 ? [] : _resource$types,
214
+ forms = resource.forms;
215
215
  var resourceType = type !== null ? resourceTypes.find(function (it) {
216
216
  return it.id === type;
217
217
  }) || null : null;
218
-
219
218
  var _ref2 = resourceType || {},
220
- _ref2$fields = _ref2.fields,
221
- resourceTypeFields = _ref2$fields === void 0 ? null : _ref2$fields;
222
-
223
- var isCreate = item === null || !item.id; // Pick fields from resource root or form
219
+ _ref2$fields = _ref2.fields,
220
+ resourceTypeFields = _ref2$fields === void 0 ? null : _ref2$fields;
221
+ var isCreate = item === null || !item.id;
224
222
 
223
+ // Pick fields from resource root or form
225
224
  var _ref3 = forms || {},
226
- _ref3$default = _ref3["default"],
227
- defaultForm = _ref3$default === void 0 ? null : _ref3$default,
228
- _ref3$create = _ref3.create,
229
- createForm = _ref3$create === void 0 ? null : _ref3$create,
230
- _ref3$edit = _ref3.edit,
231
- editForm = _ref3$edit === void 0 ? null : _ref3$edit,
232
- _ref3$delete = _ref3["delete"],
233
- deleteForm = _ref3$delete === void 0 ? null : _ref3$delete;
234
-
225
+ _ref3$default = _ref3["default"],
226
+ defaultForm = _ref3$default === void 0 ? null : _ref3$default,
227
+ _ref3$create = _ref3.create,
228
+ createForm = _ref3$create === void 0 ? null : _ref3$create,
229
+ _ref3$edit = _ref3.edit,
230
+ editForm = _ref3$edit === void 0 ? null : _ref3$edit,
231
+ _ref3$delete = _ref3["delete"],
232
+ deleteForm = _ref3$delete === void 0 ? null : _ref3$delete;
235
233
  var _ref4 = defaultForm || {},
236
- _ref4$fields = _ref4.fields,
237
- defaultFields = _ref4$fields === void 0 ? null : _ref4$fields,
238
- defaultComponent = _ref4.component;
239
-
234
+ _ref4$fields = _ref4.fields,
235
+ defaultFields = _ref4$fields === void 0 ? null : _ref4$fields,
236
+ defaultComponent = _ref4.component;
240
237
  var createOrEditSource = isCreate ? createForm || {} : editForm || {};
241
-
242
238
  var _ref5 = isDelete ? deleteForm || {} : createOrEditSource || {},
243
- _ref5$fields = _ref5.fields,
244
- formFields = _ref5$fields === void 0 ? null : _ref5$fields,
245
- _ref5$component = _ref5.component,
246
- formComponent = _ref5$component === void 0 ? null : _ref5$component;
247
-
239
+ _ref5$fields = _ref5.fields,
240
+ formFields = _ref5$fields === void 0 ? null : _ref5$fields,
241
+ _ref5$component = _ref5.component,
242
+ formComponent = _ref5$component === void 0 ? null : _ref5$component;
248
243
  var finalFields = React.useMemo(function () {
249
244
  return (formFields || defaultFields || resourceTypeFields || resourceFields).filter(function (_ref6) {
250
- var _ref6$settings = _ref6.settings;
251
- _ref6$settings = _ref6$settings === void 0 ? {} : _ref6$settings;
252
- var _ref6$settings$hidden = _ref6$settings.hiddenInForm,
253
- hiddenInForm = _ref6$settings$hidden === void 0 ? false : _ref6$settings$hidden;
245
+ var _ref6$settings = _ref6.settings,
246
+ _ref6$settings2 = _ref6$settings === void 0 ? {} : _ref6$settings,
247
+ _ref6$settings2$hidde = _ref6$settings2.hiddenInForm,
248
+ hiddenInForm = _ref6$settings2$hidde === void 0 ? false : _ref6$settings2$hidde;
254
249
  return !hiddenInForm;
255
250
  });
256
- }, [formFields, defaultFields, resourceTypeFields, resourceFields]); // Form routes
251
+ }, [formFields, defaultFields, resourceTypeFields, resourceFields]);
257
252
 
253
+ // Form routes
258
254
  var resourceRoute = hooks.useResourceUrlGenerator(resource);
259
-
260
255
  var _useResourceStore = data.useResourceStore(resource),
261
- store = _useResourceStore.store;
262
-
256
+ store = _useResourceStore.store;
263
257
  var _useResourceUpdate = data.useResourceUpdate(resource, item != null ? item.id : null),
264
- update = _useResourceUpdate.update;
265
-
258
+ update = _useResourceUpdate.update;
266
259
  var _useResourceDestroy = data.useResourceDestroy(resource, item != null ? item.id : null),
267
- destroy = _useResourceDestroy.destroy; // Post actions
268
-
260
+ destroy = _useResourceDestroy.destroy;
269
261
 
262
+ // Post actions
270
263
  var postAction = isCreate ? store : update;
271
264
  var postForm = React.useCallback(function (action, data) {
272
265
  return isDelete ? destroy() : postAction(data);
273
- }, [postAction, isDelete, destroy, store, update]); // Form state
266
+ }, [postAction, isDelete, destroy, store, update]);
274
267
 
268
+ // Form state
275
269
  var getInitialValue = React.useCallback(function () {
276
270
  return item !== null ? item : finalFields.reduce(function (defaultValues, _ref7) {
277
271
  var name = _ref7.name,
278
- _ref7$defaultValue = _ref7.defaultValue,
279
- defaultValue = _ref7$defaultValue === void 0 ? null : _ref7$defaultValue;
272
+ _ref7$defaultValue = _ref7.defaultValue,
273
+ defaultValue = _ref7$defaultValue === void 0 ? null : _ref7$defaultValue;
280
274
  return defaultValue !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, defaultValues), {}, _defineProperty__default["default"]({}, name, defaultValue)) : defaultValues;
281
275
  }, type !== null ? {
282
276
  type: type
283
277
  } : null);
284
278
  }, [item, type, finalFields]);
285
-
286
279
  var _useState = React.useState(getInitialValue()),
287
- _useState2 = _slicedToArray__default["default"](_useState, 2),
288
- value = _useState2[0],
289
- setValueState = _useState2[1];
290
-
280
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
281
+ value = _useState2[0],
282
+ setValueState = _useState2[1];
291
283
  var setValue = React.useCallback(function (newValue) {
292
284
  // console.log('new value in resource form', newValue); // eslint-disable-line
293
285
  setValueState(newValue);
294
286
  }, [setValueState]);
295
-
296
287
  var _useForm = hooks.useForm({
297
- fields: finalFields,
298
- value: value,
299
- postForm: postForm,
300
- setValue: setValue,
301
- onComplete: onSuccess,
302
- locales: locales
303
- }),
304
- fields = _useForm.fields,
305
- onSubmit = _useForm.onSubmit,
306
- status = _useForm.status,
307
- generalError = _useForm.generalError,
308
- errors = _useForm.errors; // Form action
309
-
288
+ fields: finalFields,
289
+ value: value,
290
+ postForm: postForm,
291
+ setValue: setValue,
292
+ onComplete: onSuccess,
293
+ locales: locales
294
+ }),
295
+ fields = _useForm.fields,
296
+ onSubmit = _useForm.onSubmit,
297
+ status = _useForm.status,
298
+ generalError = _useForm.generalError,
299
+ errors = _useForm.errors;
310
300
 
301
+ // Form action
311
302
  var modifyAction = isCreate ? resourceRoute('store') : resourceRoute('update', {
312
303
  id: item.id
313
304
  });
314
305
  var action = isDelete ? resourceRoute('destroy', {
315
306
  id: item.id
316
307
  }) : modifyAction;
317
- var defaultFormName = isDelete ? component || formComponent || null : component || formComponent || defaultComponent || 'normal'; // Form component
308
+ var defaultFormName = isDelete ? component || formComponent || null : component || formComponent || defaultComponent || 'normal';
318
309
 
319
- var FormComponent = utils.getComponentFromName(defaultFormName, FormComponents, isDelete ? DeleteForm : component); // Lisen to item value change - this is important
310
+ // Form component
311
+ var FormComponent = utils.getComponentFromName(defaultFormName, FormComponents, isDelete ? DeleteForm : component);
320
312
 
313
+ // Lisen to item value change - this is important
321
314
  React.useEffect(function () {
322
315
  // console.log('get initial value from the top'); // eslint-disable-line
323
316
  setValue(getInitialValue());
@@ -339,7 +332,6 @@ var ResourceForm = function ResourceForm(_ref) {
339
332
  onChange: setValue
340
333
  })));
341
334
  };
342
-
343
335
  ResourceForm.propTypes = propTypes$l;
344
336
  ResourceForm.defaultProps = defaultProps$l;
345
337
 
@@ -353,11 +345,10 @@ var defaultProps$k = {
353
345
  itemClassName: null,
354
346
  linkClassName: null
355
347
  };
356
-
357
348
  var AccountMenu = function AccountMenu(_ref) {
358
349
  var className = _ref.className,
359
- itemClassName = _ref.itemClassName,
360
- linkClassName = _ref.linkClassName;
350
+ itemClassName = _ref.itemClassName,
351
+ linkClassName = _ref.linkClassName;
361
352
  var route = contexts.useUrlGenerator();
362
353
  var user = auth.useUser();
363
354
  var logout = auth.useLogout();
@@ -376,14 +367,15 @@ var AccountMenu = function AccountMenu(_ref) {
376
367
  }]
377
368
  }),
378
369
  href: route('account'),
379
- dropdown: [// {
370
+ dropdown: [
371
+ // {
380
372
  // label: (
381
373
  // <FormattedMessage
382
374
  // defaultMessage="Update account"
383
375
  // description="Menu label"
384
376
  // />
385
377
  // ),
386
- // href: route('panneau.account'),
378
+ // href: route('account'),
387
379
  // },
388
380
  {
389
381
  label: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
@@ -404,7 +396,7 @@ var AccountMenu = function AccountMenu(_ref) {
404
396
  "value": "Login"
405
397
  }]
406
398
  }),
407
- href: route('login')
399
+ href: route('auth.login')
408
400
  }];
409
401
  }, [user, route, onClickLogout]);
410
402
  return items !== null ? /*#__PURE__*/React__default["default"].createElement(Menu__default["default"], {
@@ -415,7 +407,6 @@ var AccountMenu = function AccountMenu(_ref) {
415
407
  dropdownAlign: "end"
416
408
  }) : null;
417
409
  };
418
-
419
410
  AccountMenu.propTypes = propTypes$k;
420
411
  AccountMenu.defaultProps = defaultProps$k;
421
412
 
@@ -429,23 +420,20 @@ var defaultProps$j = {
429
420
  itemClassName: null,
430
421
  linkClassName: null
431
422
  };
432
-
433
423
  var ResourcesMenu = function ResourcesMenu(_ref) {
434
424
  var className = _ref.className,
435
- itemClassName = _ref.itemClassName,
436
- linkClassName = _ref.linkClassName;
437
-
425
+ itemClassName = _ref.itemClassName,
426
+ linkClassName = _ref.linkClassName;
438
427
  var _useLocation = reactRouter.useLocation(),
439
- pathname = _useLocation.pathname;
440
-
428
+ pathname = _useLocation.pathname;
441
429
  var resources = contexts.usePanneauResources();
442
430
  var resourceRoute = hooks.useResourceUrlGenerator();
443
431
  var items = React.useMemo(function () {
444
432
  return resources.filter(function (_ref2) {
445
- var _ref2$settings = _ref2.settings;
446
- _ref2$settings = _ref2$settings === void 0 ? {} : _ref2$settings;
447
- var _ref2$settings$hideIn = _ref2$settings.hideInNavbar,
448
- hideInNavbar = _ref2$settings$hideIn === void 0 ? false : _ref2$settings$hideIn;
433
+ var _ref2$settings = _ref2.settings,
434
+ _ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
435
+ _ref2$settings2$hideI = _ref2$settings2.hideInNavbar,
436
+ hideInNavbar = _ref2$settings2$hideI === void 0 ? false : _ref2$settings2$hideI;
449
437
  return !hideInNavbar;
450
438
  }).map(function (it) {
451
439
  var url = resourceRoute(it, 'index');
@@ -464,39 +452,69 @@ var ResourcesMenu = function ResourcesMenu(_ref) {
464
452
  linkClassName: linkClassName
465
453
  });
466
454
  };
467
-
468
455
  ResourcesMenu.propTypes = propTypes$j;
469
456
  ResourcesMenu.defaultProps = defaultProps$j;
470
457
 
471
- /* eslint-disable react/jsx-props-no-spreading */
472
458
  var propTypes$i = {};
473
459
  var defaultProps$i = {};
474
-
475
460
  var MainNavbar = function MainNavbar(props) {
476
461
  var _usePanneau = contexts.usePanneau(),
477
- name = _usePanneau.name;
478
-
462
+ name = _usePanneau.name,
463
+ _usePanneau$menus = _usePanneau.menus,
464
+ menus = _usePanneau$menus === void 0 ? null : _usePanneau$menus;
465
+ var _ref = menus || {},
466
+ _ref$main = _ref.main,
467
+ main = _ref$main === void 0 ? null : _ref$main,
468
+ _ref$guest = _ref.guest,
469
+ guest = _ref$guest === void 0 ? null : _ref$guest;
479
470
  var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
480
- background = _usePanneauColorSchem.background;
481
-
471
+ background = _usePanneauColorSchem.background;
482
472
  var route = contexts.useUrlGenerator();
483
473
  var user = auth.useUser();
474
+ var items = React.useMemo(function () {
475
+ var menuItems = (user !== null ? main : guest) || [];
476
+ var hasResources = menuItems.indexOf('resources') !== -1;
477
+ var hasAccount = menuItems.indexOf('account') !== -1;
478
+ return [!hasResources && user !== null ? 'resources' : null].concat(_toConsumableArray__default["default"](menuItems), [!hasAccount && menuItems.indexOf('separator') === -1 ? 'separator' : null, !hasAccount ? 'account' : null]).filter(function (it) {
479
+ return it !== null;
480
+ }).reduce(function (currentItems, item) {
481
+ if (item === 'resources') {
482
+ return [].concat(_toConsumableArray__default["default"](currentItems), [/*#__PURE__*/React__default["default"].createElement(ResourcesMenu, {
483
+ className: "navbar-nav",
484
+ itemClassName: "nav-item",
485
+ linkClassName: "nav-link"
486
+ })]);
487
+ }
488
+ if (item === 'account') {
489
+ return [].concat(_toConsumableArray__default["default"](currentItems), [/*#__PURE__*/React__default["default"].createElement(AccountMenu, {
490
+ className: "navbar-nav",
491
+ itemClassName: "nav-item",
492
+ linkClassName: "nav-link"
493
+ })]);
494
+ }
495
+ if (item === 'separator') {
496
+ return [].concat(_toConsumableArray__default["default"](currentItems), [/*#__PURE__*/React__default["default"].createElement("span", {
497
+ className: "ms-auto"
498
+ })]);
499
+ }
500
+ var lastItem = currentItems.length > 0 ? currentItems[currentItems.length - 1] : null;
501
+ return isArray__default["default"](lastItem) ? [].concat(_toConsumableArray__default["default"](currentItems.slice(0, currentItems.length - 1)), [[].concat(_toConsumableArray__default["default"](lastItem), [item])]) : [].concat(_toConsumableArray__default["default"](currentItems), [[item]]);
502
+ }, []).map(function (it) {
503
+ return isArray__default["default"](it) ? /*#__PURE__*/React__default["default"].createElement(Menu__default["default"], {
504
+ items: it,
505
+ className: "navbar-nav",
506
+ itemClassName: "nav-item",
507
+ linkClassName: "nav-link"
508
+ }) : it;
509
+ });
510
+ }, [main]);
484
511
  return /*#__PURE__*/React__default["default"].createElement(Navbar__default["default"], Object.assign({
485
512
  theme: background
486
513
  }, props), name !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, {
487
514
  to: route('home'),
488
515
  className: "navbar-brand"
489
- }, name) : null, user !== null ? /*#__PURE__*/React__default["default"].createElement(ResourcesMenu, {
490
- className: "navbar-nav ml-4",
491
- itemClassName: "nav-item",
492
- linkClassName: "nav-link"
493
- }) : null, /*#__PURE__*/React__default["default"].createElement(AccountMenu, {
494
- className: "navbar-nav ms-auto",
495
- itemClassName: "nav-item",
496
- linkClassName: "nav-link"
497
- }));
516
+ }, name) : null, items);
498
517
  };
499
-
500
518
  MainNavbar.propTypes = propTypes$i;
501
519
  MainNavbar.defaultProps = defaultProps$i;
502
520
 
@@ -507,17 +525,13 @@ var propTypes$h = {
507
525
  var defaultProps$h = {
508
526
  fullscreen: false
509
527
  };
510
-
511
528
  var MainLayout = function MainLayout(_ref) {
512
529
  var _ref2;
513
-
514
530
  var children = _ref.children,
515
- fullscreen = _ref.fullscreen;
516
-
531
+ fullscreen = _ref.fullscreen;
517
532
  var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
518
- background = _usePanneauColorSchem.background,
519
- text = _usePanneauColorSchem.text;
520
-
533
+ background = _usePanneauColorSchem.background,
534
+ text = _usePanneauColorSchem.text;
521
535
  return /*#__PURE__*/React__default["default"].createElement("div", {
522
536
  className: classNames__default["default"](['d-flex', 'flex-column', 'min-vh-100'])
523
537
  }, /*#__PURE__*/React__default["default"].createElement(MainNavbar, {
@@ -528,7 +542,6 @@ var MainLayout = function MainLayout(_ref) {
528
542
  }, _defineProperty__default["default"](_ref2, "bg-".concat(background), background !== null), _defineProperty__default["default"](_ref2, "text-".concat(text), text !== null), _ref2)])
529
543
  }, children));
530
544
  };
531
-
532
545
  MainLayout.propTypes = propTypes$h;
533
546
  MainLayout.defaultProps = defaultProps$h;
534
547
 
@@ -546,22 +559,19 @@ var defaultProps$g = {
546
559
  className: null,
547
560
  children: null
548
561
  };
549
-
550
562
  var PageHeader = function PageHeader(_ref) {
551
563
  var _ref2;
552
-
553
564
  var title = _ref.title,
554
- actions = _ref.actions,
555
- small = _ref.small,
556
- className = _ref.className,
557
- children = _ref.children;
558
-
565
+ actions = _ref.actions,
566
+ small = _ref.small,
567
+ className = _ref.className,
568
+ children = _ref.children;
559
569
  // TODO: fix page header components
560
570
  // const { components } = usePanneau();
561
571
  var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
562
- text = _usePanneauColorSchem.text,
563
- background = _usePanneauColorSchem.background; // console.log('page-header', components); // eslint-disable-line
564
-
572
+ text = _usePanneauColorSchem.text,
573
+ background = _usePanneauColorSchem.background;
574
+ // console.log('page-header', components); // eslint-disable-line
565
575
 
566
576
  var inner = /*#__PURE__*/React__default["default"].createElement("div", {
567
577
  className: "d-flex align-items-center flex-wrap"
@@ -580,7 +590,6 @@ var PageHeader = function PageHeader(_ref) {
580
590
  className: "col-12 col-md-8 col-lg-7"
581
591
  }, inner)) : inner), children);
582
592
  };
583
-
584
593
  PageHeader.propTypes = propTypes$g;
585
594
  PageHeader.defaultProps = defaultProps$g;
586
595
 
@@ -588,25 +597,20 @@ var propTypes$f = {
588
597
  resource: core.PropTypes.resource.isRequired
589
598
  };
590
599
  var defaultProps$f = {};
591
-
592
600
  var ResourceCreatePage = function ResourceCreatePage(_ref) {
593
601
  var resource = _ref.resource;
594
602
  var navigate = reactRouter.useNavigate();
595
-
596
603
  var _useLocation = reactRouter.useLocation(),
597
- search = _useLocation.search;
598
-
604
+ search = _useLocation.search;
599
605
  var resourceRoute = hooks.useResourceUrlGenerator(resource);
600
606
  var onSuccess = React.useCallback(function () {
601
607
  navigate("".concat(resourceRoute('index'), "?created=true"));
602
608
  }, [navigate, resourceRoute]);
603
-
604
609
  var _useMemo = React.useMemo(function () {
605
- return queryString.parse(search);
606
- }, [search]),
607
- _useMemo$type = _useMemo.type,
608
- type = _useMemo$type === void 0 ? null : _useMemo$type;
609
-
610
+ return queryString.parse(search);
611
+ }, [search]),
612
+ _useMemo$type = _useMemo.type,
613
+ type = _useMemo$type === void 0 ? null : _useMemo$type;
610
614
  var resourceValues = intl.useResourceValues(resource);
611
615
  return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
612
616
  resource: resource
@@ -635,35 +639,31 @@ var ResourceCreatePage = function ResourceCreatePage(_ref) {
635
639
  onSuccess: onSuccess
636
640
  }))))));
637
641
  };
638
-
639
642
  ResourceCreatePage.propTypes = propTypes$f;
640
643
  ResourceCreatePage.defaultProps = defaultProps$f;
641
644
 
645
+ // import Button from '../buttons/Button';
646
+
642
647
  var propTypes$e = {
643
648
  resource: core.PropTypes.resource.isRequired
644
649
  };
645
650
  var defaultProps$e = {};
646
-
647
651
  var ResourceDeletePage = function ResourceDeletePage(_ref) {
648
652
  var resource = _ref.resource;
649
-
650
653
  var _useParams = reactRouter.useParams(),
651
- itemId = _useParams.id;
652
-
654
+ itemId = _useParams.id;
653
655
  var navigate = reactRouter.useNavigate();
654
656
  var resourceRoute = hooks.useResourceUrlGenerator(resource);
655
-
656
657
  var _useResourceItem = data.useResourceItem(resource, itemId),
657
- item = _useResourceItem.item;
658
-
658
+ item = _useResourceItem.item;
659
659
  var onSuccess = React.useCallback(function () {
660
660
  return navigate("".concat(resourceRoute('index'), "?deleted=true"));
661
- }, [navigate, resourceRoute]); // Navigate back
661
+ }, [navigate, resourceRoute]);
662
662
 
663
+ // Navigate back
663
664
  var _ref2 = history || {},
664
- _ref2$entries = _ref2.entries,
665
- entries = _ref2$entries === void 0 ? [] : _ref2$entries;
666
-
665
+ _ref2$entries = _ref2.entries,
666
+ entries = _ref2$entries === void 0 ? [] : _ref2$entries;
667
667
  var previousEntry = entries !== null && entries.length > 1 ? entries[entries.length - 2] : null;
668
668
  var previous = (previousEntry === null || previousEntry === void 0 ? void 0 : previousEntry.pathname) || null;
669
669
  var resourceValues = intl.useResourceValues(resource);
@@ -697,33 +697,28 @@ var ResourceDeletePage = function ResourceDeletePage(_ref) {
697
697
  isDelete: true
698
698
  }) : null)))));
699
699
  };
700
-
701
700
  ResourceDeletePage.propTypes = propTypes$e;
702
701
  ResourceDeletePage.defaultProps = defaultProps$e;
703
702
 
703
+ // import Button from '../buttons/Button';
704
+
704
705
  var propTypes$d = {
705
706
  resource: core.PropTypes.resource.isRequired
706
707
  };
707
708
  var defaultProps$d = {};
708
-
709
709
  var ResourceEditPage = function ResourceEditPage(_ref) {
710
710
  var resource = _ref.resource;
711
-
712
711
  var _useParams = reactRouter.useParams(),
713
- itemId = _useParams.id;
714
-
712
+ itemId = _useParams.id;
715
713
  var _useResourceItem = data.useResourceItem(resource, itemId),
716
- item = _useResourceItem.item;
717
-
714
+ item = _useResourceItem.item;
718
715
  var _ref2 = item || {},
719
- _ref2$type = _ref2.type,
720
- type = _ref2$type === void 0 ? null : _ref2$type;
721
-
716
+ _ref2$type = _ref2.type,
717
+ type = _ref2$type === void 0 ? null : _ref2$type;
722
718
  var _useState = React.useState(item),
723
- _useState2 = _slicedToArray__default["default"](_useState, 2),
724
- editItem = _useState2[0],
725
- setEditItem = _useState2[1];
726
-
719
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
720
+ editItem = _useState2[0],
721
+ setEditItem = _useState2[1];
727
722
  var onSuccess = React.useCallback(function (newItem) {
728
723
  return setEditItem(newItem);
729
724
  }, []);
@@ -759,7 +754,6 @@ var ResourceEditPage = function ResourceEditPage(_ref) {
759
754
  onSuccess: onSuccess
760
755
  }) : null)))));
761
756
  };
762
-
763
757
  ResourceEditPage.propTypes = propTypes$d;
764
758
  ResourceEditPage.defaultProps = defaultProps$d;
765
759
 
@@ -770,38 +764,36 @@ var propTypes$c = {
770
764
  var defaultProps$c = {
771
765
  className: null
772
766
  };
773
-
774
767
  var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
775
768
  var resource = _ref.resource,
776
- className = _ref.className;
769
+ className = _ref.className;
777
770
  var _resource$types = resource.types,
778
- types = _resource$types === void 0 ? null : _resource$types; // const intl = useIntl();
779
-
771
+ types = _resource$types === void 0 ? null : _resource$types;
772
+ // const intl = useIntl();
780
773
  var resourceRoute = hooks.useResourceUrlGenerator(resource);
781
774
  var resourceValues = intl.useResourceValues(resource);
782
-
783
775
  var _useState = React.useState(false),
784
- _useState2 = _slicedToArray__default["default"](_useState, 2),
785
- dropdownOpened = _useState2[0],
786
- setDropdownOpened = _useState2[1];
787
-
776
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
777
+ dropdownOpened = _useState2[0],
778
+ setDropdownOpened = _useState2[1];
788
779
  var onClickDropdown = React.useCallback(function (e) {
789
780
  e.preventDefault();
790
- setDropdownOpened(function (opened) {
791
- return !opened;
792
- });
793
- }, [setDropdownOpened]);
781
+ e.stopPropagation();
782
+ setDropdownOpened(!dropdownOpened);
783
+ }, [setDropdownOpened, dropdownOpened]);
794
784
  var finalTypes = types !== null ? types.filter(function (_ref2) {
795
- var _ref2$settings = _ref2.settings;
796
- _ref2$settings = _ref2$settings === void 0 ? {} : _ref2$settings;
797
- var _ref2$settings$canCre = _ref2$settings.canCreate,
798
- canCreate = _ref2$settings$canCre === void 0 ? true : _ref2$settings$canCre;
785
+ var _ref2$settings = _ref2.settings,
786
+ _ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
787
+ _ref2$settings2$canCr = _ref2$settings2.canCreate,
788
+ canCreate = _ref2$settings2$canCr === void 0 ? true : _ref2$settings2$canCr;
799
789
  return canCreate;
800
790
  }) : null;
801
791
  var hasMultipleTypes = finalTypes !== null && finalTypes.length > 1;
802
792
  var onDropdownClickOutside = React.useCallback(function () {
803
- setDropdownOpened(false);
804
- }, [setDropdownOpened]);
793
+ if (dropdownOpened) {
794
+ setDropdownOpened(false);
795
+ }
796
+ }, [setDropdownOpened, dropdownOpened]);
805
797
  var button = /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
806
798
  href: !hasMultipleTypes ? "".concat(resourceRoute('create')).concat(finalTypes !== null && finalTypes.length === 1 ? "?type=".concat(finalTypes[0].id) : '') : '#',
807
799
  size: "lg",
@@ -838,11 +830,10 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
838
830
  onClickOutside: onDropdownClickOutside
839
831
  })) : button;
840
832
  };
841
-
842
833
  ResourceCreateButtom.propTypes = propTypes$c;
843
834
  ResourceCreateButtom.defaultProps = defaultProps$c;
844
835
 
845
- var _excluded$3 = ["component", "name", "groupLabel"];
836
+ var _excluded$4 = ["component", "name", "groupLabel"];
846
837
  var propTypes$b = {
847
838
  filters: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
848
839
  id: PropTypes__default["default"].string.isRequired,
@@ -870,21 +861,18 @@ var defaultProps$b = {
870
861
  },
871
862
  className: null
872
863
  };
873
-
874
864
  var ResourceFilters = function ResourceFilters(_ref) {
875
865
  var filters = _ref.filters,
876
- value = _ref.value,
877
- onChange = _ref.onChange,
878
- onReset = _ref.onReset,
879
- withContainer = _ref.withContainer,
880
- withReset = _ref.withReset,
881
- defaultValue = _ref.defaultValue,
882
- className = _ref.className;
866
+ value = _ref.value,
867
+ onChange = _ref.onChange,
868
+ onReset = _ref.onReset,
869
+ withContainer = _ref.withContainer,
870
+ withReset = _ref.withReset,
871
+ defaultValue = _ref.defaultValue,
872
+ className = _ref.className;
883
873
  var FilterComponents = contexts.useFiltersComponents();
884
-
885
874
  var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
886
- background = _usePanneauColorSchem.background;
887
-
875
+ background = _usePanneauColorSchem.background;
888
876
  var currentFilters = filters || [];
889
877
  var onFiltersReset = React.useCallback(function () {
890
878
  if (onReset !== null) {
@@ -895,9 +883,10 @@ var ResourceFilters = function ResourceFilters(_ref) {
895
883
  if (value !== null && value[item.name]) {
896
884
  return true;
897
885
  }
898
-
899
886
  return isActive;
900
- }, false); // console.log('value', value);
887
+ }, false);
888
+
889
+ // console.log('value', value);
901
890
 
902
891
  return /*#__PURE__*/React__default["default"].createElement(Navbar__default["default"], {
903
892
  className: classNames__default["default"]([_defineProperty__default["default"]({
@@ -907,10 +896,9 @@ var ResourceFilters = function ResourceFilters(_ref) {
907
896
  withoutCollapse: true
908
897
  }, currentFilters.map(function (_ref3, index) {
909
898
  var component = _ref3.component,
910
- name = _ref3.name,
911
- groupLabel = _ref3.groupLabel,
912
- filterProps = _objectWithoutProperties__default["default"](_ref3, _excluded$3);
913
-
899
+ name = _ref3.name,
900
+ groupLabel = _ref3.groupLabel,
901
+ filterProps = _objectWithoutProperties__default["default"](_ref3, _excluded$4);
914
902
  var FilterComponent = utils.getComponentFromName(component, FilterComponents, null);
915
903
  var filterValue = value !== null && value[name] ? value[name] : null;
916
904
  var onFilterChange = React.useCallback(function (newFilterValue) {
@@ -921,9 +909,8 @@ var ResourceFilters = function ResourceFilters(_ref) {
921
909
  var onFilterClear = React.useCallback(function () {
922
910
  if (name !== null && onChange !== null) {
923
911
  var _ref4 = value || {};
924
- _ref4[name];
925
- var newValue = _objectWithoutProperties__default["default"](_ref4, [name].map(_toPropertyKey__default["default"]));
926
-
912
+ _ref4[name];
913
+ var newValue = _objectWithoutProperties__default["default"](_ref4, [name].map(_toPropertyKey__default["default"]));
927
914
  onChange(_objectSpread__default["default"](_objectSpread__default["default"]({}, newValue), defaultValue));
928
915
  }
929
916
  }, [onChange, name, value, defaultValue]);
@@ -943,12 +930,11 @@ var ResourceFilters = function ResourceFilters(_ref) {
943
930
  icon: freeSolidSvgIcons.faUndo
944
931
  })) : null);
945
932
  };
946
-
947
933
  ResourceFilters.propTypes = propTypes$b;
948
934
  ResourceFilters.defaultProps = defaultProps$b;
949
935
 
950
- var _excluded$2 = ["component", "showPagination", "filters"],
951
- _excluded2 = ["page"];
936
+ var _excluded$3 = ["component", "showPagination", "filters"],
937
+ _excluded2$1 = ["page"];
952
938
  var propTypes$a = {
953
939
  resource: core.PropTypes.resource.isRequired,
954
940
  query: PropTypes__default["default"].object,
@@ -970,51 +956,42 @@ var defaultProps$a = {
970
956
  onQueryChange: null,
971
957
  onQueryReset: null
972
958
  };
973
-
974
959
  var ResourceItemsList = function ResourceItemsList(_ref) {
975
960
  var resource = _ref.resource,
976
- query = _ref.query,
977
- baseUrl = _ref.baseUrl,
978
- onQueryChange = _ref.onQueryChange,
979
- onQueryReset = _ref.onQueryReset,
980
- paginated = _ref.paginated;
981
- var _resource$index = resource.index;
982
- _resource$index = _resource$index === void 0 ? {} : _resource$index;
983
-
984
- var _resource$index$compo = _resource$index.component,
985
- listComponent = _resource$index$compo === void 0 ? null : _resource$index$compo,
986
- _resource$index$showP = _resource$index.showPagination,
987
- showPagination = _resource$index$showP === void 0 ? true : _resource$index$showP,
988
- _resource$index$filte = _resource$index.filters,
989
- filters = _resource$index$filte === void 0 ? null : _resource$index$filte,
990
- listProps = _objectWithoutProperties__default["default"](_resource$index, _excluded$2);
991
-
961
+ query = _ref.query,
962
+ baseUrl = _ref.baseUrl,
963
+ onQueryChange = _ref.onQueryChange,
964
+ onQueryReset = _ref.onQueryReset,
965
+ paginated = _ref.paginated;
966
+ var _resource$index = resource.index,
967
+ _resource$index2 = _resource$index === void 0 ? {} : _resource$index,
968
+ _resource$index2$comp = _resource$index2.component,
969
+ listComponent = _resource$index2$comp === void 0 ? null : _resource$index2$comp,
970
+ _resource$index2$show = _resource$index2.showPagination,
971
+ showPagination = _resource$index2$show === void 0 ? true : _resource$index2$show,
972
+ _resource$index2$filt = _resource$index2.filters,
973
+ filters = _resource$index2$filt === void 0 ? null : _resource$index2$filt,
974
+ listProps = _objectWithoutProperties__default["default"](_resource$index2, _excluded$3);
992
975
  var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
993
- _usePanneauColorSchem2 = _usePanneauColorSchem.background,
994
- theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2;
995
-
976
+ _usePanneauColorSchem2 = _usePanneauColorSchem.background,
977
+ theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2;
996
978
  var ListComponents = contexts.useListsComponents();
997
-
998
979
  var _useMemo = React.useMemo(function () {
999
- var _ref2 = query || {},
980
+ var _ref2 = query || {},
1000
981
  _ref2$page = _ref2.page,
1001
982
  currentPage = _ref2$page === void 0 ? 1 : _ref2$page,
1002
- rest = _objectWithoutProperties__default["default"](_ref2, _excluded2);
1003
-
1004
- return [currentPage, rest];
1005
- }, [query]),
1006
- _useMemo2 = _slicedToArray__default["default"](_useMemo, 2),
1007
- page = _useMemo2[0],
1008
- queryWithoutPage = _useMemo2[1];
1009
-
983
+ rest = _objectWithoutProperties__default["default"](_ref2, _excluded2$1);
984
+ return [currentPage, rest];
985
+ }, [query]),
986
+ _useMemo2 = _slicedToArray__default["default"](_useMemo, 2),
987
+ page = _useMemo2[0],
988
+ queryWithoutPage = _useMemo2[1];
1010
989
  var itemsProps = data.useResourceItems(resource, queryWithoutPage, paginated ? parseInt(page, 10) : null);
1011
-
1012
990
  var _ref3 = itemsProps || {},
1013
- _ref3$lastPage = _ref3.lastPage,
1014
- lastPage = _ref3$lastPage === void 0 ? 0 : _ref3$lastPage,
1015
- _ref3$total = _ref3.total,
1016
- total = _ref3$total === void 0 ? 0 : _ref3$total;
1017
-
991
+ _ref3$lastPage = _ref3.lastPage,
992
+ lastPage = _ref3$lastPage === void 0 ? 0 : _ref3$lastPage,
993
+ _ref3$total = _ref3.total,
994
+ total = _ref3$total === void 0 ? 0 : _ref3$total;
1018
995
  var ListComponent = utils.getComponentFromName(listComponent || 'table', ListComponents);
1019
996
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, filters !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceFilters, {
1020
997
  filters: filters,
@@ -1044,39 +1021,34 @@ var ResourceItemsList = function ResourceItemsList(_ref) {
1044
1021
  className: "mt-4 mb-1"
1045
1022
  }) : null);
1046
1023
  };
1047
-
1048
1024
  ResourceItemsList.propTypes = propTypes$a;
1049
1025
  ResourceItemsList.defaultProps = defaultProps$a;
1050
1026
 
1051
- var _excluded$1 = ["id", "component"];
1027
+ var _excluded$2 = ["id", "component"];
1052
1028
  var propTypes$9 = {
1053
1029
  resource: core.PropTypes.resource.isRequired,
1054
1030
  defaultActions: PropTypes__default["default"].arrayOf(PropTypes__default["default"].object) // eslint-disable-line react/forbid-prop-types
1055
-
1056
1031
  };
1032
+
1057
1033
  var defaultProps$9 = {
1058
1034
  defaultActions: ['create']
1059
1035
  };
1060
-
1061
1036
  var ResourceIndexPage = function ResourceIndexPage(_ref) {
1062
1037
  var resource = _ref.resource,
1063
- defaultActions = _ref.defaultActions;
1038
+ defaultActions = _ref.defaultActions;
1064
1039
  var name = resource.name,
1065
- _resource$settings = resource.settings,
1066
- settings = _resource$settings === void 0 ? {} : _resource$settings,
1067
- _resource$index = resource.index,
1068
- index = _resource$index === void 0 ? {} : _resource$index;
1069
-
1040
+ _resource$settings = resource.settings,
1041
+ settings = _resource$settings === void 0 ? {} : _resource$settings,
1042
+ _resource$index = resource.index,
1043
+ index = _resource$index === void 0 ? {} : _resource$index;
1070
1044
  var _ref2 = settings || {},
1071
- _ref2$canCreate = _ref2.canCreate,
1072
- canCreate = _ref2$canCreate === void 0 ? true : _ref2$canCreate,
1073
- _ref2$indexIsPaginate = _ref2.indexIsPaginated,
1074
- paginated = _ref2$indexIsPaginate === void 0 ? false : _ref2$indexIsPaginate;
1075
-
1045
+ _ref2$canCreate = _ref2.canCreate,
1046
+ canCreate = _ref2$canCreate === void 0 ? true : _ref2$canCreate,
1047
+ _ref2$indexIsPaginate = _ref2.indexIsPaginated,
1048
+ paginated = _ref2$indexIsPaginate === void 0 ? false : _ref2$indexIsPaginate;
1076
1049
  var _ref3 = index || {},
1077
- _ref3$actions = _ref3.actions,
1078
- actions = _ref3$actions === void 0 ? null : _ref3$actions;
1079
-
1050
+ _ref3$actions = _ref3.actions,
1051
+ actions = _ref3$actions === void 0 ? null : _ref3$actions;
1080
1052
  var finalActions = React.useMemo(function () {
1081
1053
  return (actions || defaultActions.filter(function (it) {
1082
1054
  return it !== 'create' || canCreate;
@@ -1091,10 +1063,8 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1091
1063
  }, [canCreate, actions]);
1092
1064
  var resourceValues = intl.useResourceValues(resource);
1093
1065
  var componentsManager = contexts.useComponentsManager();
1094
-
1095
1066
  var _useLocation = reactRouter.useLocation(),
1096
- search = _useLocation.search;
1097
-
1067
+ search = _useLocation.search;
1098
1068
  var navigate = reactRouter.useNavigate();
1099
1069
  var query = React.useMemo(function () {
1100
1070
  return queryString.parse(search);
@@ -1102,13 +1072,11 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1102
1072
  var listQuery = React.useMemo(function () {
1103
1073
  return query;
1104
1074
  }, [query]); // TODO: omit routes
1105
-
1106
1075
  var _ref4 = query || {},
1107
- _ref4$created = _ref4.created,
1108
- created = _ref4$created === void 0 ? false : _ref4$created,
1109
- _ref4$deleted = _ref4.deleted,
1110
- deleted = _ref4$deleted === void 0 ? false : _ref4$deleted;
1111
-
1076
+ _ref4$created = _ref4.created,
1077
+ created = _ref4$created === void 0 ? false : _ref4$created,
1078
+ _ref4$deleted = _ref4.deleted,
1079
+ deleted = _ref4$deleted === void 0 ? false : _ref4$deleted;
1112
1080
  var resourceRoute = hooks.useResourceUrlGenerator(resource);
1113
1081
  var url = resourceRoute('index');
1114
1082
  var onQueryChange = React.useCallback(function (submitQuery) {
@@ -1127,8 +1095,10 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1127
1095
  navigate("".concat(url, "?").concat(queryString$1));
1128
1096
  }, [navigate, url, paginated]);
1129
1097
  var onClickCloseAlert = React.useCallback(function () {
1130
- history.replace(url);
1131
- }, [history, url]);
1098
+ navigate(url, {
1099
+ replace: true
1100
+ });
1101
+ }, [navigate, url]);
1132
1102
  return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
1133
1103
  resource: resource
1134
1104
  }, /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement(PageHeader, {
@@ -1137,10 +1107,9 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1137
1107
  className: "d-flex align-items-center"
1138
1108
  }, finalActions.map(function (_ref5) {
1139
1109
  var id = _ref5.id,
1140
- _ref5$component = _ref5.component,
1141
- component = _ref5$component === void 0 ? Button__default["default"] : _ref5$component,
1142
- actionProps = _objectWithoutProperties__default["default"](_ref5, _excluded$1);
1143
-
1110
+ _ref5$component = _ref5.component,
1111
+ component = _ref5$component === void 0 ? Button__default["default"] : _ref5$component,
1112
+ actionProps = _objectWithoutProperties__default["default"](_ref5, _excluded$2);
1144
1113
  var ActionComponent = isString__default["default"](component) ? componentsManager.getComponent(component) : component;
1145
1114
  return ActionComponent !== null ? /*#__PURE__*/React__default["default"].createElement(ActionComponent, Object.assign({
1146
1115
  key: "action-".concat(id)
@@ -1187,7 +1156,6 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1187
1156
  onQueryReset: onQueryReset
1188
1157
  }))));
1189
1158
  };
1190
-
1191
1159
  ResourceIndexPage.propTypes = propTypes$9;
1192
1160
  ResourceIndexPage.defaultProps = defaultProps$9;
1193
1161
 
@@ -1195,7 +1163,6 @@ var propTypes$8 = {
1195
1163
  resource: core.PropTypes.resource.isRequired
1196
1164
  };
1197
1165
  var defaultProps$8 = {};
1198
-
1199
1166
  var ResourceShowPage = function ResourceShowPage(_ref) {
1200
1167
  var resource = _ref.resource;
1201
1168
  return /*#__PURE__*/React__default["default"].createElement(contexts.ResourceProvider, {
@@ -1206,30 +1173,27 @@ var ResourceShowPage = function ResourceShowPage(_ref) {
1206
1173
  className: "container-sm"
1207
1174
  }, "Show page")));
1208
1175
  };
1209
-
1210
1176
  ResourceShowPage.propTypes = propTypes$8;
1211
1177
  ResourceShowPage.defaultProps = defaultProps$8;
1212
1178
 
1213
1179
  /* eslint-disable react/jsx-props-no-spreading */
1214
1180
  var propTypes$7 = {};
1215
1181
  var defaultProps$7 = {};
1216
-
1217
1182
  var HomePage = function HomePage() {
1218
1183
  var route = contexts.useUrlGenerator();
1219
1184
  var resources = contexts.usePanneauResources();
1220
1185
  var visibleResources = resources.filter(function (_ref) {
1221
- var _ref$settings = _ref.settings;
1222
- _ref$settings = _ref$settings === void 0 ? {} : _ref$settings;
1223
- var _ref$settings$hideInN = _ref$settings.hideInNavbar,
1224
- hideInNavbar = _ref$settings$hideInN === void 0 ? false : _ref$settings$hideInN;
1186
+ var _ref$settings = _ref.settings,
1187
+ _ref$settings2 = _ref$settings === void 0 ? {} : _ref$settings,
1188
+ _ref$settings2$hideIn = _ref$settings2.hideInNavbar,
1189
+ hideInNavbar = _ref$settings2$hideIn === void 0 ? false : _ref$settings2$hideIn;
1225
1190
  return !hideInNavbar;
1226
1191
  });
1227
1192
  return /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement("div", {
1228
1193
  className: "container-sm py-4"
1229
1194
  }, visibleResources.map(function (resource) {
1230
1195
  var _ref2 = resource || {},
1231
- resourceId = _ref2.id;
1232
-
1196
+ resourceId = _ref2.id;
1233
1197
  var resourceValues = intl.useResourceValues(resource);
1234
1198
  return /*#__PURE__*/React__default["default"].createElement(reactRouterDom.Link, {
1235
1199
  className: "d-block my-2",
@@ -1250,19 +1214,16 @@ var HomePage = function HomePage() {
1250
1214
  }));
1251
1215
  })));
1252
1216
  };
1253
-
1254
1217
  HomePage.propTypes = propTypes$7;
1255
1218
  HomePage.defaultProps = defaultProps$7;
1256
1219
 
1257
1220
  var propTypes$6 = {};
1258
1221
  var defaultProps$6 = {};
1259
-
1260
1222
  var AccountPage = function AccountPage() {
1261
1223
  return /*#__PURE__*/React__default["default"].createElement(MainLayout, null, /*#__PURE__*/React__default["default"].createElement("div", {
1262
1224
  className: "container-sm py-4"
1263
1225
  }, "Account page"));
1264
1226
  };
1265
-
1266
1227
  AccountPage.propTypes = propTypes$6;
1267
1228
  AccountPage.defaultProps = defaultProps$6;
1268
1229
 
@@ -1299,35 +1260,30 @@ var defaultProps$5 = {
1299
1260
  className: null,
1300
1261
  onSuccess: null
1301
1262
  };
1302
-
1303
1263
  var LoginForm = function LoginForm(_ref) {
1304
1264
  var formFields = _ref.fields,
1305
- className = _ref.className,
1306
- onSuccess = _ref.onSuccess;
1265
+ className = _ref.className,
1266
+ onSuccess = _ref.onSuccess;
1307
1267
  var url = contexts.useUrlGenerator();
1308
-
1309
1268
  var _useAuth = auth.useAuth(),
1310
- login = _useAuth.login;
1311
-
1269
+ login = _useAuth.login;
1312
1270
  var postForm = React.useCallback(function (action, _ref2) {
1313
1271
  var email = _ref2.email,
1314
- password = _ref2.password;
1272
+ password = _ref2.password;
1315
1273
  return login(email, password);
1316
1274
  }, [login]);
1317
-
1318
1275
  var _useForm = hooks.useForm({
1319
- fields: formFields,
1320
- postForm: postForm,
1321
- onComplete: onSuccess
1322
- }),
1323
- value = _useForm.value,
1324
- setValue = _useForm.setValue,
1325
- fields = _useForm.fields,
1326
- onSubmit = _useForm.onSubmit,
1327
- status = _useForm.status,
1328
- generalError = _useForm.generalError,
1329
- errors = _useForm.errors;
1330
-
1276
+ fields: formFields,
1277
+ postForm: postForm,
1278
+ onComplete: onSuccess
1279
+ }),
1280
+ value = _useForm.value,
1281
+ setValue = _useForm.setValue,
1282
+ fields = _useForm.fields,
1283
+ onSubmit = _useForm.onSubmit,
1284
+ status = _useForm.status,
1285
+ generalError = _useForm.generalError,
1286
+ errors = _useForm.errors;
1331
1287
  var NormalForm = contexts.useFormComponent('normal');
1332
1288
  return /*#__PURE__*/React__default["default"].createElement(NormalForm, {
1333
1289
  action: url('auth.login'),
@@ -1349,7 +1305,6 @@ var LoginForm = function LoginForm(_ref) {
1349
1305
  })
1350
1306
  });
1351
1307
  };
1352
-
1353
1308
  LoginForm.propTypes = propTypes$5;
1354
1309
  LoginForm.defaultProps = defaultProps$5;
1355
1310
 
@@ -1360,17 +1315,13 @@ var propTypes$4 = {
1360
1315
  var defaultProps$4 = {
1361
1316
  fullscreen: false
1362
1317
  };
1363
-
1364
1318
  var GuestLayout = function GuestLayout(_ref) {
1365
1319
  var _classNames;
1366
-
1367
1320
  var fullscreen = _ref.fullscreen,
1368
- children = _ref.children;
1369
-
1321
+ children = _ref.children;
1370
1322
  var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
1371
- background = _usePanneauColorSchem.background,
1372
- text = _usePanneauColorSchem.text;
1373
-
1323
+ background = _usePanneauColorSchem.background,
1324
+ text = _usePanneauColorSchem.text;
1374
1325
  return /*#__PURE__*/React__default["default"].createElement("div", {
1375
1326
  className: classNames__default["default"]({
1376
1327
  'd-flex flex-column min-vh-100': fullscreen
@@ -1387,14 +1338,12 @@ var GuestLayout = function GuestLayout(_ref) {
1387
1338
  })
1388
1339
  }, children)));
1389
1340
  };
1390
-
1391
1341
  GuestLayout.propTypes = propTypes$4;
1392
1342
  GuestLayout.defaultProps = defaultProps$4;
1393
1343
 
1394
1344
  /* eslint-disable react/jsx-props-no-spreading */
1395
1345
  var propTypes$3 = {};
1396
1346
  var defaultProps$3 = {};
1397
-
1398
1347
  var LoginPage = function LoginPage() {
1399
1348
  var route = contexts.useUrlGenerator();
1400
1349
  var onSuccess = React.useCallback(function () {
@@ -1420,7 +1369,6 @@ var LoginPage = function LoginPage() {
1420
1369
  onSuccess: onSuccess
1421
1370
  })))));
1422
1371
  };
1423
-
1424
1372
  LoginPage.propTypes = propTypes$3;
1425
1373
  LoginPage.defaultProps = defaultProps$3;
1426
1374
 
@@ -1523,7 +1471,6 @@ var propTypes$2 = {
1523
1471
  var defaultProps$2 = {
1524
1472
  statusCode: null
1525
1473
  };
1526
-
1527
1474
  var ErrorPage = function ErrorPage(_ref) {
1528
1475
  var statusCode = _ref.statusCode;
1529
1476
  return /*#__PURE__*/React__default["default"].createElement(GuestLayout, {
@@ -1536,68 +1483,50 @@ var ErrorPage = function ErrorPage(_ref) {
1536
1483
  className: "col-12 col-sm-8 col-md-6"
1537
1484
  }, /*#__PURE__*/React__default["default"].createElement("h1", null, /*#__PURE__*/React__default["default"].createElement(Label__default["default"], null, messages["title".concat(statusCode || 404)])), /*#__PURE__*/React__default["default"].createElement("p", null, /*#__PURE__*/React__default["default"].createElement(Label__default["default"], null, messages["description".concat(statusCode || 404)]))))));
1538
1485
  };
1539
-
1540
1486
  ErrorPage.propTypes = propTypes$2;
1541
1487
  ErrorPage.defaultProps = defaultProps$2;
1542
1488
 
1543
- var basePages = /*#__PURE__*/Object.freeze({
1544
- __proto__: null,
1545
- ResourceCreate: ResourceCreatePage,
1546
- ResourceDelete: ResourceDeletePage,
1547
- ResourceEdit: ResourceEditPage,
1548
- ResourceIndex: ResourceIndexPage,
1549
- ResourceShow: ResourceShowPage,
1550
- Home: HomePage,
1551
- Account: AccountPage,
1552
- Login: LoginPage,
1553
- Error: ErrorPage
1554
- });
1555
-
1556
- var _excluded = ["path", "component", "exact"];
1557
-
1489
+ var _excluded$1 = ["path", "component", "exact"];
1558
1490
  var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1559
1491
  var route = _ref.route,
1560
- componentsManager = _ref.componentsManager;
1492
+ componentsManager = _ref.componentsManager,
1493
+ _ref$pages = _ref.pages,
1494
+ pages = _ref$pages === void 0 ? {} : _ref$pages;
1561
1495
  var resourceId = resource.id,
1562
- _resource$pages = resource.pages,
1563
- pages = _resource$pages === void 0 ? {} : _resource$pages,
1564
- _resource$extraRoutes = resource.extraRoutes,
1565
- extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes; // Load custom pages from resource
1496
+ _resource$pages = resource.pages,
1497
+ resourcePages = _resource$pages === void 0 ? {} : _resource$pages,
1498
+ _resource$extraRoutes = resource.extraRoutes,
1499
+ extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes;
1566
1500
 
1501
+ // Load custom pages from resource
1567
1502
  var _ref2 = pages || {},
1568
- _ref2$index = _ref2.index,
1569
- indexPage = _ref2$index === void 0 ? null : _ref2$index,
1570
- _ref2$show = _ref2.show,
1571
- showPage = _ref2$show === void 0 ? null : _ref2$show,
1572
- _ref2$create = _ref2.create,
1573
- createPage = _ref2$create === void 0 ? null : _ref2$create,
1574
- _ref2$edit = _ref2.edit,
1575
- editPage = _ref2$edit === void 0 ? null : _ref2$edit,
1576
- _ref2$delete = _ref2["delete"],
1577
- deletePage = _ref2$delete === void 0 ? null : _ref2$delete;
1578
-
1579
- var ResourceIndexComponent = indexPage !== null && typeof indexPage.component !== 'undefined' ? componentsManager.getComponent(indexPage.component) : ResourceIndexPage;
1580
- var ResourceShowComponent = showPage !== null && typeof showPage.component !== 'undefined' ? componentsManager.getComponent(showPage.component) : ResourceShowPage;
1581
- var ResourceCreateComponent = createPage !== null && typeof createPage.component !== 'undefined' ? componentsManager.getComponent(createPage.component) : ResourceCreatePage;
1582
- var ResourceEditComponent = editPage !== null && typeof editPage.component !== 'undefined' ? componentsManager.getComponent(editPage.component) : ResourceEditPage;
1583
- var ResourceDeleteComponent = deletePage !== null && typeof deletePage.component !== 'undefined' ? componentsManager.getComponent(deletePage.component) : ResourceDeletePage;
1584
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, extraRoutes.map(function (_ref3) {
1585
- var path = _ref3.path,
1586
- component = _ref3.component,
1587
- _ref3$exact = _ref3.exact,
1588
- exact = _ref3$exact === void 0 ? true : _ref3$exact,
1589
- pageProps = _objectWithoutProperties__default["default"](_ref3, _excluded);
1590
-
1591
- var RouteComponent = componentsManager.getComponent(component);
1592
- return RouteComponent !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1593
- key: "route-".concat(path),
1594
- path: path,
1595
- exact: exact,
1596
- element: /*#__PURE__*/React__default["default"].createElement(RouteComponent, Object.assign({
1597
- resource: resource
1598
- }, pageProps))
1599
- }) : null;
1600
- }), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1503
+ _ref2$index = _ref2.index,
1504
+ indexPage = _ref2$index === void 0 ? null : _ref2$index,
1505
+ _ref2$show = _ref2.show,
1506
+ showPage = _ref2$show === void 0 ? null : _ref2$show,
1507
+ _ref2$create = _ref2.create,
1508
+ createPage = _ref2$create === void 0 ? null : _ref2$create,
1509
+ _ref2$edit = _ref2.edit,
1510
+ editPage = _ref2$edit === void 0 ? null : _ref2$edit,
1511
+ _ref2$delete = _ref2["delete"],
1512
+ deletePage = _ref2$delete === void 0 ? null : _ref2$delete;
1513
+ var _ref3 = resourcePages || {},
1514
+ _ref3$index = _ref3.index,
1515
+ resourceIndexPage = _ref3$index === void 0 ? null : _ref3$index,
1516
+ _ref3$show = _ref3.show,
1517
+ resourceShowPage = _ref3$show === void 0 ? null : _ref3$show,
1518
+ _ref3$create = _ref3.create,
1519
+ resourceCreatePage = _ref3$create === void 0 ? null : _ref3$create,
1520
+ _ref3$edit = _ref3.edit,
1521
+ resourceEditPage = _ref3$edit === void 0 ? null : _ref3$edit,
1522
+ _ref3$delete = _ref3["delete"],
1523
+ resourceDeletePage = _ref3$delete === void 0 ? null : _ref3$delete;
1524
+ 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;
1525
+ 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;
1526
+ 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;
1527
+ 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;
1528
+ 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;
1529
+ return [/*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1601
1530
  path: route('resources.index', {
1602
1531
  resource: resourceId
1603
1532
  }),
@@ -1640,116 +1569,163 @@ var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1640
1569
  element: /*#__PURE__*/React__default["default"].createElement(ResourceDeleteComponent, {
1641
1570
  resource: resource
1642
1571
  })
1643
- }));
1572
+ })].concat(_toConsumableArray__default["default"](extraRoutes.map(function (_ref4) {
1573
+ var path = _ref4.path,
1574
+ component = _ref4.component,
1575
+ _ref4$exact = _ref4.exact,
1576
+ exact = _ref4$exact === void 0 ? true : _ref4$exact,
1577
+ pageProps = _objectWithoutProperties__default["default"](_ref4, _excluded$1);
1578
+ var RouteComponent = componentsManager.getComponent(component);
1579
+ return RouteComponent !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1580
+ key: "route-".concat(path),
1581
+ path: path,
1582
+ exact: exact,
1583
+ element: /*#__PURE__*/React__default["default"].createElement(RouteComponent, Object.assign({
1584
+ resource: resource
1585
+ }, pageProps))
1586
+ }) : null;
1587
+ })));
1644
1588
  };
1645
1589
 
1590
+ var _excluded = ["home", "login", "account", "error", "index", "show", "create", "edit", "delete"],
1591
+ _excluded2 = ["path", "route", "component", "exact"];
1646
1592
  var propTypes$1 = {
1647
1593
  statusCode: core.PropTypes.statusCode
1648
1594
  };
1649
1595
  var defaultProps$1 = {
1650
1596
  statusCode: null
1651
1597
  };
1652
-
1653
1598
  var PanneauRoutes = function PanneauRoutes(_ref) {
1654
1599
  var initialStatusCode = _ref.statusCode;
1655
-
1656
- var _usePanneau = contexts.usePanneau(),
1657
- _usePanneau$pages = _usePanneau.pages,
1658
- pages = _usePanneau$pages === void 0 ? {} : _usePanneau$pages;
1659
-
1660
1600
  var routes = contexts.useRoutes();
1661
-
1662
1601
  var _useLocation = reactRouter.useLocation(),
1663
- pathname = _useLocation.pathname; // search
1664
-
1665
-
1602
+ pathname = _useLocation.pathname;
1666
1603
  var _useState = React.useState({
1667
- statusCode: initialStatusCode,
1668
- pathname: pathname
1669
- }),
1670
- _useState2 = _slicedToArray__default["default"](_useState, 2),
1671
- _useState2$ = _useState2[0],
1672
- statusCode = _useState2$.statusCode,
1673
- initialPathname = _useState2$.pathname,
1674
- setInitialRequest = _useState2[1];
1675
-
1604
+ statusCode: initialStatusCode,
1605
+ pathname: pathname
1606
+ }),
1607
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1608
+ _useState2$ = _useState2[0],
1609
+ statusCode = _useState2$.statusCode,
1610
+ lastPathname = _useState2$.pathname,
1611
+ setInitialRequest = _useState2[1];
1676
1612
  var user = auth.useUser();
1677
1613
  var route = contexts.useUrlGenerator();
1678
1614
  var resources = contexts.usePanneauResources();
1679
- var componentsManager = contexts.useComponentsManager(); // const nextUrl = useMemo(() => {
1680
- // const query = parseQuery(search);
1681
- // return query !== null ? query.next || null : null;
1682
- // }, [search]);
1683
-
1615
+ var componentsManager = contexts.usePagesComponentsManager();
1684
1616
  React.useEffect(function () {
1685
- if (pathname !== initialPathname) {
1617
+ if (pathname !== lastPathname) {
1686
1618
  setInitialRequest({
1687
1619
  pathname: pathname,
1688
1620
  statusCode: null
1689
1621
  });
1690
1622
  }
1691
- }, [pathname, initialPathname]); // Custom Pages
1623
+ }, [pathname, lastPathname]);
1692
1624
 
1625
+ // Custom Pages
1626
+ var _usePanneau = contexts.usePanneau(),
1627
+ _usePanneau$pages = _usePanneau.pages,
1628
+ pages = _usePanneau$pages === void 0 ? null : _usePanneau$pages,
1629
+ routesDefinition = _usePanneau.routes;
1693
1630
  var _ref2 = pages || {},
1694
- _ref2$home = _ref2.home,
1695
- homePage = _ref2$home === void 0 ? null : _ref2$home,
1696
- _ref2$login = _ref2.login,
1697
- loginPage = _ref2$login === void 0 ? null : _ref2$login,
1698
- _ref2$account = _ref2.account,
1699
- accountPage = _ref2$account === void 0 ? null : _ref2$account,
1700
- _ref2$error = _ref2.error,
1701
- errorPage = _ref2$error === void 0 ? null : _ref2$error;
1702
-
1703
- var HomeComponent = utils.getComponentFromName((homePage === null || homePage === void 0 ? void 0 : homePage.component) || 'home', basePages, homePage === null || homePage === void 0 ? void 0 : homePage.component);
1704
- var LoginComponent = utils.getComponentFromName((loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || 'login', basePages, loginPage === null || loginPage === void 0 ? void 0 : loginPage.component);
1705
- var AccountComponent = utils.getComponentFromName((accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || 'account', basePages, accountPage === null || accountPage === void 0 ? void 0 : accountPage.component);
1706
- var ErrorComponent = utils.getComponentFromName((errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || 'error', basePages, errorPage === null || errorPage === void 0 ? void 0 : errorPage.component);
1707
- return /*#__PURE__*/React__default["default"].createElement(reactRouter.Routes, null, statusCode !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1708
- path: "*",
1709
- element: /*#__PURE__*/React__default["default"].createElement(ErrorComponent, {
1631
+ _ref2$home = _ref2.home,
1632
+ homePage = _ref2$home === void 0 ? null : _ref2$home,
1633
+ _ref2$login = _ref2.login,
1634
+ loginPage = _ref2$login === void 0 ? null : _ref2$login,
1635
+ _ref2$account = _ref2.account,
1636
+ accountPage = _ref2$account === void 0 ? null : _ref2$account,
1637
+ _ref2$error = _ref2.error,
1638
+ errorPage = _ref2$error === void 0 ? null : _ref2$error;
1639
+ _ref2.index;
1640
+ _ref2.show;
1641
+ _ref2.create;
1642
+ _ref2.edit;
1643
+ _ref2["delete"];
1644
+ var otherPages = _objectWithoutProperties__default["default"](_ref2, _excluded);
1645
+ var customRoutes = React.useMemo(function () {
1646
+ return [].concat(_toConsumableArray__default["default"](Object.keys(routesDefinition).filter(function (key) {
1647
+ return key.match(/^(resources\.|auth\.)/) === null && key !== 'home' && key !== 'account';
1648
+ }).filter(function (key) {
1649
+ var routeDef = routesDefinition[key];
1650
+ return isObject__default["default"](routeDef) && typeof routeDef.component !== 'undefined' && typeof routeDef.path !== 'undefined';
1651
+ }).map(function (key) {
1652
+ return routesDefinition[key];
1653
+ })), _toConsumableArray__default["default"](Object.keys(otherPages).map(function (key) {
1654
+ return otherPages[key];
1655
+ }).filter(function (_ref3) {
1656
+ var _ref3$path = _ref3.path,
1657
+ path = _ref3$path === void 0 ? null : _ref3$path,
1658
+ _ref3$route = _ref3.route,
1659
+ pageRoute = _ref3$route === void 0 ? null : _ref3$route;
1660
+ return path !== null || pageRoute !== null;
1661
+ })));
1662
+ }, [routesDefinition, otherPages]);
1663
+ var HomeComponent = componentsManager.getComponent(homePage === null || homePage === void 0 ? void 0 : homePage.component) || HomePage;
1664
+ var LoginComponent = componentsManager.getComponent(loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || LoginPage;
1665
+ var AccountComponent = componentsManager.getComponent(accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || AccountPage;
1666
+ var ErrorComponent = componentsManager.getComponent(errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || ErrorPage;
1667
+
1668
+ // If there is an error status code
1669
+ if (statusCode !== null) {
1670
+ return /*#__PURE__*/React__default["default"].createElement(ErrorComponent, {
1710
1671
  statusCode: statusCode
1711
- })
1712
- }) : null, /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1713
- path: routes.home,
1714
- exact: true,
1715
- element: user !== null ? /*#__PURE__*/React__default["default"].createElement(HomeComponent, null) : /*#__PURE__*/React__default["default"].createElement(Navigate, {
1716
- to: route('login'),
1717
- replace: true
1718
- })
1719
- }), user === null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1720
- path: routes.login,
1721
- exact: true,
1722
- element: /*#__PURE__*/React__default["default"].createElement(LoginComponent, null)
1723
- }) : null, resources.map(function (resource) {
1724
- var _ref3 = resource || {},
1725
- resourceId = _ref3.id;
1672
+ });
1673
+ }
1726
1674
 
1727
- return user !== null ? createResourceRoutes(resource, {
1728
- route: route,
1729
- componentsManager: componentsManager
1730
- }) : /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1731
- key: "resource-".concat(resourceId),
1732
- path: route('resources.index', {
1733
- resource: resourceId
1734
- }),
1735
- element: /*#__PURE__*/React__default["default"].createElement(Navigate, {
1736
- to: "".concat(route('login'), "?next=").concat(encodeURIComponent(pathname)),
1675
+ // If user is unauthenticated
1676
+ if (user === null) {
1677
+ return /*#__PURE__*/React__default["default"].createElement(reactRouter.Routes, null, /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1678
+ path: routes['auth.login'],
1679
+ exact: true,
1680
+ element: /*#__PURE__*/React__default["default"].createElement(LoginComponent, null)
1681
+ }), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1682
+ path: "*",
1683
+ element: /*#__PURE__*/React__default["default"].createElement(reactRouter.Navigate, {
1684
+ to: "".concat(route('auth.login'), "?next=").concat(encodeURIComponent(pathname)),
1737
1685
  replace: true
1738
1686
  })
1739
- });
1687
+ }));
1688
+ }
1689
+
1690
+ // Normal routes
1691
+ return /*#__PURE__*/React__default["default"].createElement(reactRouter.Routes, null, /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1692
+ path: routes.home,
1693
+ exact: true,
1694
+ element: /*#__PURE__*/React__default["default"].createElement(HomeComponent, null)
1695
+ }), resources.map(function (resource) {
1696
+ var _ref4 = resource || {},
1697
+ resourceId = _ref4.id;
1698
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
1699
+ key: "resource-".concat(resourceId)
1700
+ }, createResourceRoutes(resource, {
1701
+ route: route,
1702
+ componentsManager: componentsManager,
1703
+ pages: pages
1704
+ }));
1740
1705
  }), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1741
- path: route('account'),
1706
+ path: routes.account,
1742
1707
  exact: true,
1743
- element: user !== null ? /*#__PURE__*/React__default["default"].createElement(AccountComponent, null) : /*#__PURE__*/React__default["default"].createElement(Navigate, {
1744
- to: "".concat(route('login'), "?next=").concat(encodeURIComponent(pathname)),
1745
- replace: true
1746
- })
1708
+ element: /*#__PURE__*/React__default["default"].createElement(AccountComponent, null)
1709
+ }), customRoutes.map(function (_ref5) {
1710
+ var _ref5$path = _ref5.path,
1711
+ path = _ref5$path === void 0 ? null : _ref5$path,
1712
+ _ref5$route = _ref5.route,
1713
+ pageRoute = _ref5$route === void 0 ? null : _ref5$route,
1714
+ component = _ref5.component,
1715
+ _ref5$exact = _ref5.exact,
1716
+ exact = _ref5$exact === void 0 ? true : _ref5$exact,
1717
+ props = _objectWithoutProperties__default["default"](_ref5, _excluded2);
1718
+ var PageComponent = componentsManager.getComponent(component);
1719
+ return PageComponent !== null ? /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1720
+ path: path || routes[pageRoute],
1721
+ exact: exact,
1722
+ element: /*#__PURE__*/React__default["default"].createElement(PageComponent, props)
1723
+ }) : null;
1747
1724
  }), /*#__PURE__*/React__default["default"].createElement(reactRouter.Route, {
1748
1725
  path: "*",
1749
- elmeent: /*#__PURE__*/React__default["default"].createElement(ErrorComponent, null)
1726
+ element: /*#__PURE__*/React__default["default"].createElement(ErrorComponent, null)
1750
1727
  }));
1751
1728
  };
1752
-
1753
1729
  PanneauRoutes.propTypes = propTypes$1;
1754
1730
  PanneauRoutes.defaultProps = defaultProps$1;
1755
1731
 
@@ -1770,41 +1746,40 @@ var defaultProps = {
1770
1746
  uppy: null,
1771
1747
  statusCode: null
1772
1748
  };
1773
-
1774
1749
  var Container = function Container(_ref) {
1775
1750
  var definition = _ref.definition,
1776
- components = _ref.components,
1777
- user = _ref.user,
1778
- memoryRouter = _ref.memoryRouter,
1779
- baseUrl = _ref.baseUrl,
1780
- uppy = _ref.uppy,
1781
- statusCode = _ref.statusCode;
1782
- var _definition$intl = definition.intl;
1783
- _definition$intl = _definition$intl === void 0 ? {} : _definition$intl;
1784
- var _definition$intl$loca = _definition$intl.locale,
1785
- locale = _definition$intl$loca === void 0 ? 'en' : _definition$intl$loca,
1786
- _definition$intl$loca2 = _definition$intl.locales,
1787
- locales = _definition$intl$loca2 === void 0 ? [] : _definition$intl$loca2,
1788
- _definition$routes = definition.routes,
1789
- routes = _definition$routes === void 0 ? {} : _definition$routes,
1790
- _definition$settings = definition.settings;
1791
- _definition$settings = _definition$settings === void 0 ? {} : _definition$settings;
1792
- var _definition$settings$ = _definition$settings.memoryRouter,
1793
- usesMemoryRouter = _definition$settings$ === void 0 ? false : _definition$settings$;
1751
+ components = _ref.components,
1752
+ user = _ref.user,
1753
+ memoryRouter = _ref.memoryRouter,
1754
+ baseUrl = _ref.baseUrl,
1755
+ uppy = _ref.uppy,
1756
+ statusCode = _ref.statusCode;
1757
+ var _definition$intl = definition.intl,
1758
+ _definition$intl2 = _definition$intl === void 0 ? {} : _definition$intl,
1759
+ _definition$intl2$loc = _definition$intl2.locale,
1760
+ locale = _definition$intl2$loc === void 0 ? 'en' : _definition$intl2$loc,
1761
+ _definition$intl2$loc2 = _definition$intl2.locales,
1762
+ locales = _definition$intl2$loc2 === void 0 ? [] : _definition$intl2$loc2,
1763
+ _definition$routes = definition.routes,
1764
+ routes = _definition$routes === void 0 ? {} : _definition$routes,
1765
+ _definition$settings = definition.settings,
1766
+ _definition$settings2 = _definition$settings === void 0 ? {} : _definition$settings,
1767
+ _definition$settings3 = _definition$settings2.memoryRouter,
1768
+ usesMemoryRouter = _definition$settings3 === void 0 ? false : _definition$settings3;
1794
1769
  var Router = memoryRouter || usesMemoryRouter ? reactRouter.MemoryRouter : reactRouterDom.BrowserRouter;
1795
1770
  var extraMessages = React.useMemo(function () {
1796
- var _definition$intl2 = definition.intl;
1797
- _definition$intl2 = _definition$intl2 === void 0 ? {} : _definition$intl2;
1798
- var _definition$intl2$mes = _definition$intl2.messages,
1799
- messages = _definition$intl2$mes === void 0 ? null : _definition$intl2$mes,
1800
- _definition$resources = definition.resources,
1801
- resources = _definition$resources === void 0 ? [] : _definition$resources;
1771
+ var _definition$intl3 = definition.intl,
1772
+ _definition$intl4 = _definition$intl3 === void 0 ? {} : _definition$intl3,
1773
+ _definition$intl4$mes = _definition$intl4.messages,
1774
+ messages = _definition$intl4$mes === void 0 ? null : _definition$intl4$mes,
1775
+ _definition$resources = definition.resources,
1776
+ resources = _definition$resources === void 0 ? [] : _definition$resources;
1802
1777
  return _objectSpread__default["default"](_objectSpread__default["default"]({}, messages), resources.reduce(function (allMessages, _ref2) {
1803
1778
  var id = _ref2.id,
1804
- _ref2$intl = _ref2.intl;
1805
- _ref2$intl = _ref2$intl === void 0 ? {} : _ref2$intl;
1806
- var _ref2$intl$messages = _ref2$intl.messages,
1807
- resourceMessages = _ref2$intl$messages === void 0 ? {} : _ref2$intl$messages;
1779
+ _ref2$intl = _ref2.intl,
1780
+ _ref2$intl2 = _ref2$intl === void 0 ? {} : _ref2$intl,
1781
+ _ref2$intl2$messages = _ref2$intl2.messages,
1782
+ resourceMessages = _ref2$intl2$messages === void 0 ? {} : _ref2$intl2$messages;
1808
1783
  return _objectSpread__default["default"](_objectSpread__default["default"]({}, allMessages), Object.keys(resourceMessages).reduce(function (allResourceMessages, key) {
1809
1784
  return _objectSpread__default["default"](_objectSpread__default["default"]({}, allResourceMessages), {}, _defineProperty__default["default"]({}, "resources.".concat(id, ".").concat(key), resourceMessages[key]));
1810
1785
  }, {}));
@@ -1836,7 +1811,6 @@ var Container = function Container(_ref) {
1836
1811
  statusCode: statusCode
1837
1812
  }))))))))))))));
1838
1813
  };
1839
-
1840
1814
  Container.propTypes = propTypes;
1841
1815
  Container.defaultProps = defaultProps;
1842
1816