@panneau/app 3.0.298 → 3.0.299

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 ADDED
@@ -0,0 +1,1557 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
+ import { createPathToRegexpParser, useMemoryRouter } from '@folklore/routes';
4
+ import PropTypes from 'prop-types';
5
+ import React, { useCallback, useMemo, useState, useEffect, Fragment } from 'react';
6
+ import { useLocation, useSearch, Route, Switch, Redirect, Router } from 'wouter';
7
+ import ActionsProvider from '@panneau/actions';
8
+ import { useUser, useLogout, useAuth, AuthProvider } from '@panneau/auth';
9
+ import { PropTypes as PropTypes$1 } from '@panneau/core';
10
+ import { useUrlGenerator, usePanneauResources, usePanneau, usePanneauColorScheme, ResourceProvider, useComponentsManager, useFormsComponents, useRoutes, usePagesComponentsManager, PanneauProvider, RoutesProvider, ModalProvider, ComponentsProvider } from '@panneau/core/contexts';
11
+ import { useResourceItem, ApiProvider, QueryProvider } from '@panneau/data';
12
+ import DisplaysProvider from '@panneau/displays';
13
+ import FieldsProvider from '@panneau/fields';
14
+ import FiltersProvider from '@panneau/filters';
15
+ import FormsProvider from '@panneau/forms';
16
+ import { useResourceValues, IntlProvider } from '@panneau/intl';
17
+ import ListsProvider from '@panneau/lists';
18
+ import ModalsProvider from '@panneau/modals';
19
+ import { UppyProvider } from '@panneau/uppy';
20
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
21
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
22
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
23
+ import isObject from 'lodash-es/isObject';
24
+ import classNames from 'classnames';
25
+ import isString from 'lodash-es/isString';
26
+ import queryString from 'query-string';
27
+ import { FormattedMessage, defineMessages } from 'react-intl';
28
+ import { useResourceUrlGenerator, useResourceTypeName } from '@panneau/core/hooks';
29
+ import Alert from '@panneau/element-alert';
30
+ import Button from '@panneau/element-button';
31
+ import Dropdown from '@panneau/element-dropdown';
32
+ import { Modals } from '@panneau/element-modal';
33
+ import isArray from 'lodash-es/isArray';
34
+ import Link from '@panneau/element-link';
35
+ import Menu from '@panneau/element-menu';
36
+ import Navbar from '@panneau/element-navbar';
37
+ import Label from '@panneau/element-label';
38
+ import ResourceList from '@panneau/list-resource-items';
39
+ import Loading from '@panneau/element-loading';
40
+ import ResourceForm from '@panneau/form-resource';
41
+ import { getComponentFromName } from '@panneau/core/utils';
42
+ import Filters from '@panneau/filter-filters';
43
+
44
+ /* eslint-disable react/jsx-props-no-spreading */
45
+ // import PropTypes from 'prop-types';
46
+
47
+ // Kept for backward compatibility with exports
48
+ var ResourceFormWrapper = function ResourceFormWrapper(props) {
49
+ return /*#__PURE__*/React.createElement(ResourceForm, props);
50
+ };
51
+
52
+ var propTypes$k = {
53
+ withAccountForm: PropTypes.bool,
54
+ className: PropTypes.string,
55
+ itemClassName: PropTypes.string,
56
+ linkClassName: PropTypes.string
57
+ };
58
+ var defaultProps$j = {
59
+ withAccountForm: false,
60
+ className: null,
61
+ itemClassName: null,
62
+ linkClassName: null
63
+ };
64
+ var AccountMenu = function AccountMenu(_ref) {
65
+ var withAccountForm = _ref.withAccountForm,
66
+ className = _ref.className,
67
+ itemClassName = _ref.itemClassName,
68
+ linkClassName = _ref.linkClassName;
69
+ var route = useUrlGenerator();
70
+ var user = useUser();
71
+ var logout = useLogout();
72
+ var onClickLogout = useCallback(function (e) {
73
+ e.preventDefault();
74
+ logout();
75
+ }, [logout, route]);
76
+ var items = useMemo(function () {
77
+ return user !== null ? [{
78
+ id: 'account',
79
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
80
+ id: "IuqEHB",
81
+ defaultMessage: [{
82
+ "type": 0,
83
+ "value": "Account"
84
+ }]
85
+ }),
86
+ href: route('account'),
87
+ dropdown: [].concat(_toConsumableArray(withAccountForm ? [{
88
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
89
+ id: "V7Us0a",
90
+ defaultMessage: [{
91
+ "type": 0,
92
+ "value": "Update account"
93
+ }]
94
+ }),
95
+ href: route('account')
96
+ }] : []), [{
97
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
98
+ id: "REIcPg",
99
+ defaultMessage: [{
100
+ "type": 0,
101
+ "value": "Logout"
102
+ }]
103
+ }),
104
+ href: route('auth.logout'),
105
+ onClick: onClickLogout
106
+ }])
107
+ }] : [{
108
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
109
+ id: "d0g58T",
110
+ defaultMessage: [{
111
+ "type": 0,
112
+ "value": "Login"
113
+ }]
114
+ }),
115
+ href: route('auth.login')
116
+ }];
117
+ }, [user, route, onClickLogout, withAccountForm]);
118
+ return items !== null ? /*#__PURE__*/React.createElement(Menu, {
119
+ className: className,
120
+ itemClassName: itemClassName,
121
+ linkClassName: linkClassName,
122
+ items: items,
123
+ dropdownAlign: "end"
124
+ }) : null;
125
+ };
126
+ AccountMenu.propTypes = propTypes$k;
127
+ AccountMenu.defaultProps = defaultProps$j;
128
+
129
+ var propTypes$j = {
130
+ className: PropTypes.string,
131
+ itemClassName: PropTypes.string,
132
+ linkClassName: PropTypes.string
133
+ };
134
+ var defaultProps$i = {
135
+ className: null,
136
+ itemClassName: null,
137
+ linkClassName: null
138
+ };
139
+ var ResourcesMenu = function ResourcesMenu(_ref) {
140
+ var className = _ref.className,
141
+ itemClassName = _ref.itemClassName,
142
+ linkClassName = _ref.linkClassName;
143
+ var _useLocation = useLocation(),
144
+ _useLocation2 = _slicedToArray(_useLocation, 1),
145
+ pathname = _useLocation2[0];
146
+ var resources = usePanneauResources();
147
+ var resourceRoute = useResourceUrlGenerator();
148
+ var items = useMemo(function () {
149
+ return resources.filter(function (_ref2) {
150
+ var _ref2$settings = _ref2.settings,
151
+ _ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
152
+ _ref2$settings2$hideI = _ref2$settings2.hideInNavbar,
153
+ hideInNavbar = _ref2$settings2$hideI === void 0 ? false : _ref2$settings2$hideI;
154
+ return !hideInNavbar;
155
+ }).map(function (it) {
156
+ var url = resourceRoute(it, 'index');
157
+ return {
158
+ id: it.id,
159
+ label: it.name,
160
+ href: url,
161
+ active: pathname.substr(0, url.length) === url
162
+ };
163
+ });
164
+ }, [resources, pathname, resourceRoute]);
165
+ return /*#__PURE__*/React.createElement(Menu, {
166
+ items: items,
167
+ className: className,
168
+ itemClassName: itemClassName,
169
+ linkClassName: linkClassName
170
+ });
171
+ };
172
+ ResourcesMenu.propTypes = propTypes$j;
173
+ ResourcesMenu.defaultProps = defaultProps$i;
174
+
175
+ var _excluded$4 = ["loading", "theme", "vertical", "position"];
176
+ var propTypes$i = {
177
+ loading: PropTypes.bool,
178
+ theme: PropTypes.string,
179
+ vertical: PropTypes.bool,
180
+ position: PropTypes.string
181
+ };
182
+ var defaultProps$h = {
183
+ loading: false,
184
+ theme: 'light',
185
+ vertical: false,
186
+ position: 'top'
187
+ };
188
+ var MainNavbar = function MainNavbar(_ref) {
189
+ var loading = _ref.loading;
190
+ _ref.theme;
191
+ var vertical = _ref.vertical;
192
+ _ref.position;
193
+ var props = _objectWithoutProperties(_ref, _excluded$4);
194
+ var _usePanneau = usePanneau(),
195
+ name = _usePanneau.name,
196
+ _usePanneau$menus = _usePanneau.menus,
197
+ menus = _usePanneau$menus === void 0 ? null : _usePanneau$menus;
198
+ var _ref2 = menus || {},
199
+ _ref2$main = _ref2.main,
200
+ main = _ref2$main === void 0 ? null : _ref2$main,
201
+ _ref2$guest = _ref2.guest,
202
+ guest = _ref2$guest === void 0 ? null : _ref2$guest;
203
+ var _usePanneauColorSchem = usePanneauColorScheme(),
204
+ background = _usePanneauColorSchem.background;
205
+ var route = useUrlGenerator();
206
+ var user = useUser();
207
+ var navClassNames = vertical ? 'navbar-nav d-flex flex-column' : 'navbar-nav';
208
+ var items = useMemo(function () {
209
+ var menuItems = (user !== null ? main : guest) || [];
210
+ var hasResources = menuItems.indexOf('resources') !== -1;
211
+ var hasAccount = menuItems.indexOf('account') !== -1;
212
+ return [!hasResources && user !== null ? 'resources' : null].concat(_toConsumableArray(menuItems), [!hasAccount && menuItems.indexOf('separator') === -1 ? 'separator' : null, !hasAccount ? 'account' : null]).filter(function (it) {
213
+ return it !== null;
214
+ }).reduce(function (currentItems, item, index) {
215
+ if (item === 'resources') {
216
+ return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement(ResourcesMenu, {
217
+ key: "menu-item-resource-".concat(index + 1),
218
+ className: navClassNames,
219
+ itemClassName: "nav-item",
220
+ linkClassName: "nav-link"
221
+ })]);
222
+ }
223
+ if (item === 'account') {
224
+ return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement(AccountMenu, {
225
+ key: "menu-item-account-".concat(index + 1),
226
+ className: navClassNames,
227
+ itemClassName: "nav-item",
228
+ linkClassName: "nav-link"
229
+ })]);
230
+ }
231
+ if (item === 'separator') {
232
+ return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement("span", {
233
+ key: "menu-item-spacer-".concat(index + 1),
234
+ className: "ms-auto"
235
+ })]);
236
+ }
237
+ var lastItem = currentItems.length > 0 ? currentItems[currentItems.length - 1] : null;
238
+ return isArray(lastItem) ? [].concat(_toConsumableArray(currentItems.slice(0, currentItems.length - 1)), [[].concat(_toConsumableArray(lastItem), [item])]) : [].concat(_toConsumableArray(currentItems), [[item]]);
239
+ }, []).map(function (it, index) {
240
+ return isArray(it) ? /*#__PURE__*/React.createElement(Menu, {
241
+ items: it,
242
+ key: "submenu-item-".concat(index + 1),
243
+ className: navClassNames,
244
+ itemClassName: "nav-item",
245
+ linkClassName: "nav-link"
246
+ }) : it;
247
+ });
248
+ }, [main, navClassNames]);
249
+ return /*#__PURE__*/React.createElement(Navbar, Object.assign({
250
+ theme: background,
251
+ loading: loading,
252
+ vertical: vertical
253
+ }, props), name !== null ? /*#__PURE__*/React.createElement(Link, {
254
+ href: route('home'),
255
+ className: "navbar-brand"
256
+ }, /*#__PURE__*/React.createElement("span", {
257
+ className: classNames([{
258
+ 'text-opacity-75': loading,
259
+ 'ms-2': vertical
260
+ }])
261
+ }, name)) : null, items);
262
+ };
263
+ MainNavbar.propTypes = propTypes$i;
264
+ MainNavbar.defaultProps = defaultProps$h;
265
+
266
+ var styles$1 = {"container":"container","navbar":"navbar","verticalNav":"verticalNav","left":"left"};
267
+
268
+ var propTypes$h = {
269
+ children: PropTypes.node,
270
+ loading: PropTypes.bool,
271
+ fullscreen: PropTypes.bool
272
+ };
273
+ var defaultProps$g = {
274
+ fullscreen: false,
275
+ loading: false,
276
+ children: null
277
+ };
278
+ var MainLayout = function MainLayout(_ref) {
279
+ var fullscreen = _ref.fullscreen,
280
+ loading = _ref.loading,
281
+ children = _ref.children;
282
+ var _usePanneauColorSchem = usePanneauColorScheme(),
283
+ _usePanneauColorSchem2 = _usePanneauColorSchem.theme,
284
+ theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2,
285
+ _usePanneauColorSchem3 = _usePanneauColorSchem.sidebarPosition,
286
+ sidebarPosition = _usePanneauColorSchem3 === void 0 ? null : _usePanneauColorSchem3,
287
+ _usePanneauColorSchem4 = _usePanneauColorSchem.background,
288
+ background = _usePanneauColorSchem4 === void 0 ? null : _usePanneauColorSchem4,
289
+ _usePanneauColorSchem5 = _usePanneauColorSchem.text,
290
+ text = _usePanneauColorSchem5 === void 0 ? null : _usePanneauColorSchem5;
291
+ var vertical = sidebarPosition === 'left' || sidebarPosition === 'right';
292
+ return /*#__PURE__*/React.createElement("div", {
293
+ className: classNames([styles$1.container, 'd-flex', 'min-vh-100', {
294
+ 'flex-column': !vertical
295
+ }]),
296
+ "data-bs-theme": theme !== null ? theme : null
297
+ }, /*#__PURE__*/React.createElement(MainNavbar, {
298
+ className: classNames([_defineProperty(_defineProperty(_defineProperty({
299
+ 'shadow-sm': !vertical,
300
+ 'border-bottom': !vertical,
301
+ 'sticky-top': !vertical,
302
+ 'px-3': !vertical,
303
+ 'pe-3': vertical && sidebarPosition === 'left',
304
+ 'ps-3': vertical && sidebarPosition === 'right',
305
+ 'me-2': vertical && sidebarPosition === 'left',
306
+ 'ms-2': vertical && sidebarPosition === 'right'
307
+ }, styles$1.navbar, true), styles$1[sidebarPosition], sidebarPosition !== null), styles$1.verticalNav, vertical)]),
308
+ theme: theme,
309
+ loading: loading,
310
+ vertical: vertical
311
+ }), /*#__PURE__*/React.createElement("div", {
312
+ className: classNames(['flex-grow-1', _defineProperty(_defineProperty({
313
+ 'd-flex flex-column': fullscreen
314
+ }, "bg-".concat(background), background !== null), "text-".concat(text), text !== null)])
315
+ }, children), /*#__PURE__*/React.createElement(Modals, {
316
+ theme: theme
317
+ }));
318
+ };
319
+ MainLayout.propTypes = propTypes$h;
320
+ MainLayout.defaultProps = defaultProps$g;
321
+
322
+ var propTypes$g = {
323
+ title: PropTypes$1.label,
324
+ actions: PropTypes.node,
325
+ small: PropTypes.bool,
326
+ className: PropTypes.string,
327
+ children: PropTypes.node
328
+ };
329
+ var defaultProps$f = {
330
+ title: null,
331
+ actions: null,
332
+ small: false,
333
+ className: null,
334
+ children: null
335
+ };
336
+ var PageHeader = function PageHeader(_ref) {
337
+ var title = _ref.title,
338
+ actions = _ref.actions,
339
+ small = _ref.small,
340
+ className = _ref.className,
341
+ children = _ref.children;
342
+ // TODO: fix page header components
343
+ // const { components } = usePanneau();
344
+ // console.log('page-header', components); // eslint-disable-line
345
+ var _usePanneauColorSchem = usePanneauColorScheme(),
346
+ text = _usePanneauColorSchem.text,
347
+ background = _usePanneauColorSchem.background;
348
+ var inner = /*#__PURE__*/React.createElement("div", {
349
+ className: "d-flex align-items-center flex-wrap"
350
+ }, title !== null ? /*#__PURE__*/React.createElement("h1", {
351
+ className: classNames(['mb-0', {
352
+ h2: small
353
+ }])
354
+ }, /*#__PURE__*/React.createElement(Label, null, title)) : null, actions !== null ? /*#__PURE__*/React.createElement("div", {
355
+ className: "ms-auto"
356
+ }, actions) : null);
357
+ return /*#__PURE__*/React.createElement("div", {
358
+ className: classNames(['py-4', _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "bg-".concat(background), background !== null), "text-".concat(text), text !== null), "border-bottom", background || text !== null), className, className !== null)])
359
+ }, /*#__PURE__*/React.createElement("div", {
360
+ className: "container-sm"
361
+ }, small ? /*#__PURE__*/React.createElement("div", {
362
+ className: "row justify-content-center"
363
+ }, /*#__PURE__*/React.createElement("div", {
364
+ className: "col-12 col-md-8 col-lg-7"
365
+ }, inner)) : inner), children);
366
+ };
367
+ PageHeader.propTypes = propTypes$g;
368
+ PageHeader.defaultProps = defaultProps$f;
369
+
370
+ var propTypes$f = {
371
+ resource: PropTypes$1.resource.isRequired
372
+ };
373
+ var defaultProps$e = {};
374
+ var ResourceCreatePage = function ResourceCreatePage(_ref) {
375
+ var resource = _ref.resource;
376
+ var _useLocation = useLocation(),
377
+ _useLocation2 = _slicedToArray(_useLocation, 2),
378
+ navigate = _useLocation2[1];
379
+ var search = useSearch();
380
+ var resourceRoute = useResourceUrlGenerator(resource);
381
+ var _useMemo = useMemo(function () {
382
+ return queryString.parse(search, {
383
+ arrayFormat: 'bracket'
384
+ });
385
+ }, [search]),
386
+ _useMemo$type = _useMemo.type,
387
+ type = _useMemo$type === void 0 ? null : _useMemo$type;
388
+ var resourceValues = useResourceValues(resource);
389
+ var typeName = useResourceTypeName(resource, type);
390
+ var onSuccess = useCallback(function () {
391
+ navigate("".concat(resourceRoute('index'), "?created=true"));
392
+ }, [navigate, resourceRoute]);
393
+ return /*#__PURE__*/React.createElement(ResourceProvider, {
394
+ resource: resource
395
+ }, /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement(ResourceFormWrapper, {
396
+ resource: resource,
397
+ type: type,
398
+ onSuccess: onSuccess,
399
+ withContainer: true,
400
+ header: /*#__PURE__*/React.createElement(PageHeader, {
401
+ title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormattedMessage, {
402
+ values: resourceValues,
403
+ id: "6viUpq",
404
+ defaultMessage: [{
405
+ "type": 0,
406
+ "value": "Create "
407
+ }, {
408
+ "type": 1,
409
+ "value": "a_singular"
410
+ }]
411
+ }), typeName !== null ? /*#__PURE__*/React.createElement("span", {
412
+ className: "text-body-secondary"
413
+ }, " (", typeName, ")") : null),
414
+ small: true
415
+ })
416
+ })));
417
+ };
418
+ ResourceCreatePage.propTypes = propTypes$f;
419
+ ResourceCreatePage.defaultProps = defaultProps$e;
420
+
421
+ var propTypes$e = {
422
+ itemId: PropTypes.string.isRequired,
423
+ resource: PropTypes$1.resource.isRequired
424
+ };
425
+ var defaultProps$d = {};
426
+ var ResourceDeletePage = function ResourceDeletePage(_ref) {
427
+ var itemId = _ref.itemId,
428
+ resource = _ref.resource;
429
+ var _useLocation = useLocation(),
430
+ _useLocation2 = _slicedToArray(_useLocation, 2),
431
+ navigate = _useLocation2[1];
432
+ var resourceRoute = useResourceUrlGenerator(resource);
433
+ var _useResourceItem = useResourceItem(resource, itemId),
434
+ item = _useResourceItem.item,
435
+ loading = _useResourceItem.loading,
436
+ error = _useResourceItem.error;
437
+ var _ref2 = item || {},
438
+ _ref2$type = _ref2.type,
439
+ type = _ref2$type === void 0 ? null : _ref2$type;
440
+ var resourceValues = useResourceValues(resource);
441
+ var typeName = useResourceTypeName(resource, type);
442
+ var onSuccess = useCallback(function () {
443
+ return navigate("".concat(resourceRoute('index'), "?deleted=true"));
444
+ }, [navigate, resourceRoute]);
445
+ return /*#__PURE__*/React.createElement(ResourceProvider, {
446
+ resource: resource
447
+ }, /*#__PURE__*/React.createElement(MainLayout, {
448
+ loading: loading
449
+ }, item !== null ? /*#__PURE__*/React.createElement(ResourceFormWrapper, {
450
+ resource: resource,
451
+ item: item,
452
+ onSuccess: onSuccess,
453
+ isDelete: true,
454
+ withContainer: true,
455
+ header: /*#__PURE__*/React.createElement(PageHeader, {
456
+ title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormattedMessage, {
457
+ values: resourceValues,
458
+ id: "zN5N/Q",
459
+ defaultMessage: [{
460
+ "type": 0,
461
+ "value": "Delete "
462
+ }, {
463
+ "type": 1,
464
+ "value": "a_singular"
465
+ }]
466
+ }), typeName !== null ? /*#__PURE__*/React.createElement("span", {
467
+ className: "text-body-secondary"
468
+ }, ' ', "(", typeName, ")") : null),
469
+ small: true
470
+ })
471
+ }) : null, item === null && loading && !error ? /*#__PURE__*/React.createElement(Loading, {
472
+ withDelay: true
473
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
474
+ id: "TV3jir",
475
+ defaultMessage: [{
476
+ "type": 0,
477
+ "value": "Loading"
478
+ }]
479
+ })) : null));
480
+ };
481
+ ResourceDeletePage.propTypes = propTypes$e;
482
+ ResourceDeletePage.defaultProps = defaultProps$d;
483
+
484
+ var propTypes$d = {
485
+ itemId: PropTypes.string.isRequired,
486
+ resource: PropTypes$1.resource.isRequired
487
+ };
488
+ var defaultProps$c = {};
489
+ var ResourceEditPage = function ResourceEditPage(_ref) {
490
+ var itemId = _ref.itemId,
491
+ resource = _ref.resource;
492
+ var _useResourceItem = useResourceItem(resource, itemId),
493
+ item = _useResourceItem.item,
494
+ loading = _useResourceItem.loading,
495
+ error = _useResourceItem.error;
496
+ var _ref2 = item || {},
497
+ _ref2$type = _ref2.type,
498
+ type = _ref2$type === void 0 ? null : _ref2$type;
499
+ var _useState = useState(item),
500
+ _useState2 = _slicedToArray(_useState, 2),
501
+ editItem = _useState2[0],
502
+ setEditItem = _useState2[1];
503
+ var typeName = useResourceTypeName(resource, type);
504
+ var onSuccess = useCallback(function (newItem) {
505
+ return setEditItem(newItem);
506
+ }, []);
507
+ useEffect(function () {
508
+ setEditItem(item);
509
+ }, [item, setEditItem]);
510
+ var resourceValues = useResourceValues(resource);
511
+ return /*#__PURE__*/React.createElement(ResourceProvider, {
512
+ resource: resource
513
+ }, /*#__PURE__*/React.createElement(MainLayout, {
514
+ loading: loading
515
+ }, editItem !== null ? /*#__PURE__*/React.createElement(ResourceFormWrapper, {
516
+ resource: resource,
517
+ item: editItem,
518
+ type: type,
519
+ onSuccess: onSuccess,
520
+ withContainer: true,
521
+ header: /*#__PURE__*/React.createElement(PageHeader, {
522
+ title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormattedMessage, {
523
+ values: resourceValues,
524
+ id: "mCfzkJ",
525
+ defaultMessage: [{
526
+ "type": 0,
527
+ "value": "Edit "
528
+ }, {
529
+ "type": 1,
530
+ "value": "a_singular"
531
+ }]
532
+ }), typeName !== null ? /*#__PURE__*/React.createElement("span", {
533
+ className: "text-body-secondary"
534
+ }, ' ', "(", typeName, ")") : null),
535
+ small: true
536
+ })
537
+ }) : null, editItem === null && loading && !error ? /*#__PURE__*/React.createElement(Loading, {
538
+ withDelay: true
539
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
540
+ id: "TV3jir",
541
+ defaultMessage: [{
542
+ "type": 0,
543
+ "value": "Loading"
544
+ }]
545
+ })) : null));
546
+ };
547
+ ResourceEditPage.propTypes = propTypes$d;
548
+ ResourceEditPage.defaultProps = defaultProps$c;
549
+
550
+ var propTypes$c = {
551
+ resource: PropTypes$1.resource.isRequired,
552
+ className: PropTypes.string
553
+ };
554
+ var defaultProps$b = {
555
+ className: null
556
+ };
557
+ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
558
+ var resource = _ref.resource,
559
+ className = _ref.className;
560
+ var _resource$types = resource.types,
561
+ types = _resource$types === void 0 ? null : _resource$types;
562
+ // const intl = useIntl();
563
+ var resourceRoute = useResourceUrlGenerator(resource);
564
+ var resourceValues = useResourceValues(resource);
565
+ var _useState = useState(false),
566
+ _useState2 = _slicedToArray(_useState, 2),
567
+ dropdownOpened = _useState2[0],
568
+ setDropdownOpened = _useState2[1];
569
+ var onClickDropdown = useCallback(function (e) {
570
+ e.preventDefault();
571
+ e.stopPropagation();
572
+ setDropdownOpened(!dropdownOpened);
573
+ }, [setDropdownOpened, dropdownOpened]);
574
+ var finalTypes = types !== null ? types.filter(function (_ref2) {
575
+ var _ref2$settings = _ref2.settings,
576
+ _ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
577
+ _ref2$settings2$canCr = _ref2$settings2.canCreate,
578
+ canCreate = _ref2$settings2$canCr === void 0 ? true : _ref2$settings2$canCr;
579
+ return canCreate;
580
+ }) : null;
581
+ var hasMultipleTypes = finalTypes !== null && finalTypes.length > 1;
582
+ var onDropdownClickOutside = useCallback(function () {
583
+ if (dropdownOpened) {
584
+ setDropdownOpened(false);
585
+ }
586
+ }, [setDropdownOpened, dropdownOpened]);
587
+ var button = /*#__PURE__*/React.createElement(Button, {
588
+ href: !hasMultipleTypes ? "".concat(resourceRoute('create')).concat(finalTypes !== null && finalTypes.length === 1 ? "?type=".concat(finalTypes[0].id) : '') : '#',
589
+ size: "lg",
590
+ theme: "primary",
591
+ className: classNames([_defineProperty({
592
+ 'dropdown-toggle': hasMultipleTypes
593
+ }, className, className !== null)]),
594
+ onClick: hasMultipleTypes ? onClickDropdown : null
595
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
596
+ values: resourceValues,
597
+ id: "l+ddDH",
598
+ defaultMessage: [{
599
+ "type": 0,
600
+ "value": "Create "
601
+ }, {
602
+ "type": 1,
603
+ "value": "a_singular"
604
+ }]
605
+ }));
606
+ return hasMultipleTypes ? /*#__PURE__*/React.createElement("div", {
607
+ className: classNames(['dropdown', {
608
+ show: dropdownOpened
609
+ }])
610
+ }, button, /*#__PURE__*/React.createElement(Dropdown, {
611
+ items: finalTypes.map(function (it) {
612
+ return {
613
+ id: it.id,
614
+ label: it.name,
615
+ href: "".concat(resourceRoute('create'), "?type=").concat(it.id)
616
+ };
617
+ }),
618
+ visible: dropdownOpened,
619
+ align: "end",
620
+ onClickOutside: onDropdownClickOutside
621
+ })) : button;
622
+ };
623
+ ResourceCreateButtom.propTypes = propTypes$c;
624
+ ResourceCreateButtom.defaultProps = defaultProps$b;
625
+
626
+ var _excluded$3 = ["resource"];
627
+ var propTypes$b = {
628
+ resource: PropTypes.oneOfType([PropTypes.string, PropTypes.shape({
629
+ id: PropTypes.string
630
+ })]).isRequired
631
+ };
632
+
633
+ // Kept for backward compatibility with exports
634
+ var ResourceItemsList = function ResourceItemsList(_ref) {
635
+ var resource = _ref.resource,
636
+ props = _objectWithoutProperties(_ref, _excluded$3);
637
+ var _ref2 = isObject(resource) ? resource : {
638
+ id: resource
639
+ },
640
+ _ref2$id = _ref2.id,
641
+ finalResource = _ref2$id === void 0 ? null : _ref2$id;
642
+ return /*#__PURE__*/React.createElement(ResourceList, Object.assign({
643
+ resource: finalResource
644
+ }, props));
645
+ };
646
+ ResourceItemsList.propTypes = propTypes$b;
647
+
648
+ var _excluded$2 = ["id", "component", "withQuery", "href"];
649
+ var propTypes$a = {
650
+ resource: PropTypes$1.resource.isRequired,
651
+ defaultActions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.object])) // eslint-disable-line react/forbid-prop-types
652
+ };
653
+ var defaultProps$a = {
654
+ defaultActions: ['create']
655
+ };
656
+ var ResourceIndexPage = function ResourceIndexPage(_ref) {
657
+ var resource = _ref.resource,
658
+ defaultActions = _ref.defaultActions;
659
+ var _usePanneauColorSchem = usePanneauColorScheme(),
660
+ _usePanneauColorSchem2 = _usePanneauColorSchem.theme,
661
+ theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2;
662
+ var name = resource.name,
663
+ _resource$settings = resource.settings,
664
+ settings = _resource$settings === void 0 ? {} : _resource$settings,
665
+ _resource$index = resource.index,
666
+ index = _resource$index === void 0 ? {} : _resource$index;
667
+ var _ref2 = settings || {},
668
+ _ref2$canCreate = _ref2.canCreate,
669
+ canCreate = _ref2$canCreate === void 0 ? true : _ref2$canCreate,
670
+ _ref2$indexIsPaginate = _ref2.indexIsPaginated,
671
+ paginated = _ref2$indexIsPaginate === void 0 ? false : _ref2$indexIsPaginate;
672
+ var _ref3 = index || {},
673
+ _ref3$actions = _ref3.actions,
674
+ indexActions = _ref3$actions === void 0 ? null : _ref3$actions;
675
+ var finalActions = useMemo(function () {
676
+ return (indexActions || defaultActions.filter(function (it) {
677
+ return it !== 'create' || canCreate;
678
+ })).map(function (it) {
679
+ return it === 'create' ? {
680
+ id: 'create',
681
+ component: ResourceCreateButtom,
682
+ size: 'lg',
683
+ theme: 'primary'
684
+ } : it;
685
+ });
686
+ }, [canCreate, indexActions]);
687
+ var resourceValues = useResourceValues(resource);
688
+ var componentsManager = useComponentsManager();
689
+ var _useLocation = useLocation(),
690
+ _useLocation2 = _slicedToArray(_useLocation, 2),
691
+ navigate = _useLocation2[1];
692
+ var search = useSearch();
693
+ var query = useMemo(function () {
694
+ return queryString.parse(search, {
695
+ arrayFormat: 'bracket'
696
+ });
697
+ }, [search]);
698
+ var listQuery = useMemo(function () {
699
+ return query;
700
+ }, [query]); // TODO: omit routes
701
+ var _ref4 = query || {},
702
+ _ref4$created = _ref4.created,
703
+ created = _ref4$created === void 0 ? false : _ref4$created,
704
+ _ref4$deleted = _ref4.deleted,
705
+ deleted = _ref4$deleted === void 0 ? false : _ref4$deleted;
706
+ var resourceRoute = useResourceUrlGenerator(resource);
707
+ var url = resourceRoute('index');
708
+ var onQueryChange = useCallback(function (submitQuery) {
709
+ var newQuery = submitQuery !== null ? Object.keys(submitQuery).reduce(function (currentQuery, key) {
710
+ var value = submitQuery[key];
711
+ return value !== null ? _objectSpread(_objectSpread({}, currentQuery), {}, _defineProperty({}, key, value)) : currentQuery;
712
+ }, null) : null;
713
+ navigate("".concat(url).concat(newQuery !== null ? "?".concat(queryString.stringify(newQuery, {
714
+ arrayFormat: 'bracket'
715
+ })) : ''));
716
+ }, [navigate, url, query, paginated]);
717
+ var onQueryReset = useCallback(function () {
718
+ var resetQuery = queryString.stringify(null, {
719
+ arrayFormat: 'bracket'
720
+ });
721
+ navigate("".concat(url, "?").concat(resetQuery));
722
+ }, [navigate, url, paginated]);
723
+ var onClickCloseAlert = useCallback(function () {
724
+ navigate(url, {
725
+ replace: true
726
+ });
727
+ }, [navigate, url]);
728
+ return /*#__PURE__*/React.createElement(ResourceProvider, {
729
+ resource: resource
730
+ }, /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement(PageHeader, {
731
+ title: name,
732
+ actions: finalActions.length > 0 ? /*#__PURE__*/React.createElement("div", {
733
+ className: "d-flex align-items-center"
734
+ }, finalActions.map(function (_ref5) {
735
+ var id = _ref5.id,
736
+ _ref5$component = _ref5.component,
737
+ component = _ref5$component === void 0 ? Button : _ref5$component,
738
+ _ref5$withQuery = _ref5.withQuery,
739
+ withQuery = _ref5$withQuery === void 0 ? false : _ref5$withQuery,
740
+ _ref5$href = _ref5.href,
741
+ href = _ref5$href === void 0 ? null : _ref5$href,
742
+ actionsProps = _objectWithoutProperties(_ref5, _excluded$2);
743
+ var ActionComponent = isString(component) ? componentsManager.getComponent(component) : component;
744
+ var isButton = ActionComponent === Button;
745
+ var finalHref = href;
746
+ if (isButton && withQuery && href !== null) {
747
+ finalHref = "".concat(finalHref).concat(finalHref.indexOf('?') !== -1 ? '&' : '?').concat(queryString.stringify(query, {
748
+ arrayFormat: 'bracket'
749
+ }));
750
+ }
751
+ return ActionComponent !== null ? /*#__PURE__*/React.createElement(ActionComponent, Object.assign({
752
+ key: "action-".concat(id),
753
+ href: finalHref
754
+ }, actionsProps, !isButton ? {
755
+ resource: resource,
756
+ query: query,
757
+ onQueryChange: onQueryChange
758
+ } : {})) : null;
759
+ })) : null
760
+ }), /*#__PURE__*/React.createElement("div", {
761
+ className: classNames(['container-sm py-4'])
762
+ }, created ? /*#__PURE__*/React.createElement(Alert, {
763
+ className: "mb-4",
764
+ onClose: onClickCloseAlert
765
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
766
+ values: resourceValues,
767
+ id: "bfP/d8",
768
+ defaultMessage: [{
769
+ "type": 1,
770
+ "value": "The_singular"
771
+ }, {
772
+ "type": 0,
773
+ "value": " has been created."
774
+ }]
775
+ })) : null, deleted ? /*#__PURE__*/React.createElement(Alert, {
776
+ className: "mb-4",
777
+ onClose: onClickCloseAlert
778
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
779
+ values: resourceValues,
780
+ id: "dkRdks",
781
+ defaultMessage: [{
782
+ "type": 1,
783
+ "value": "The_singular"
784
+ }, {
785
+ "type": 0,
786
+ "value": " has been deleted."
787
+ }]
788
+ })) : null, /*#__PURE__*/React.createElement(ResourceItemsList, {
789
+ resource: resource,
790
+ baseUrl: url,
791
+ query: listQuery,
792
+ paginated: paginated,
793
+ onQueryChange: onQueryChange,
794
+ onQueryReset: onQueryReset,
795
+ theme: theme
796
+ }))));
797
+ };
798
+ ResourceIndexPage.propTypes = propTypes$a;
799
+ ResourceIndexPage.defaultProps = defaultProps$a;
800
+
801
+ var propTypes$9 = {
802
+ resource: PropTypes$1.resource.isRequired,
803
+ itemId: PropTypes.string.isRequired
804
+ };
805
+ var defaultProps$9 = {};
806
+ var ResourceShowPage = function ResourceShowPage(_ref) {
807
+ var resource = _ref.resource,
808
+ itemId = _ref.itemId;
809
+ var name = resource.name;
810
+ var _useResourceItem = useResourceItem(resource, itemId),
811
+ item = _useResourceItem.item,
812
+ loading = _useResourceItem.loading,
813
+ error = _useResourceItem.error;
814
+ var _ref2 = item || {},
815
+ _ref2$type = _ref2.type,
816
+ type = _ref2$type === void 0 ? null : _ref2$type;
817
+ return /*#__PURE__*/React.createElement(ResourceProvider, {
818
+ resource: resource
819
+ }, /*#__PURE__*/React.createElement(MainLayout, {
820
+ loading: loading
821
+ }, item !== null ? /*#__PURE__*/React.createElement(ResourceFormWrapper, {
822
+ resource: resource,
823
+ item: item,
824
+ type: type,
825
+ disabled: true,
826
+ header: /*#__PURE__*/React.createElement(PageHeader, {
827
+ title: "".concat(name, " #").concat(itemId),
828
+ small: true
829
+ }),
830
+ withContainer: true
831
+ }) : null, item === null && loading && !error ? /*#__PURE__*/React.createElement(Loading, {
832
+ withDelay: true
833
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
834
+ id: "TV3jir",
835
+ defaultMessage: [{
836
+ "type": 0,
837
+ "value": "Loading"
838
+ }]
839
+ })) : null));
840
+ };
841
+ ResourceShowPage.propTypes = propTypes$9;
842
+ ResourceShowPage.defaultProps = defaultProps$9;
843
+
844
+ var propTypes$8 = {
845
+ itemId: PropTypes.string.isRequired,
846
+ resource: PropTypes$1.resource.isRequired
847
+ };
848
+ var defaultProps$8 = {};
849
+ var ResourceDuplicatePage = function ResourceDuplicatePage(_ref) {
850
+ var itemId = _ref.itemId,
851
+ resource = _ref.resource;
852
+ var _useLocation = useLocation(),
853
+ _useLocation2 = _slicedToArray(_useLocation, 2),
854
+ navigate = _useLocation2[1];
855
+ var resourceRoute = useResourceUrlGenerator(resource);
856
+ var _useResourceItem = useResourceItem(resource, itemId),
857
+ item = _useResourceItem.item,
858
+ loading = _useResourceItem.loading,
859
+ error = _useResourceItem.error;
860
+ var _ref2 = item || {},
861
+ _ref2$type = _ref2.type,
862
+ type = _ref2$type === void 0 ? null : _ref2$type;
863
+ var resourceValues = useResourceValues(resource);
864
+ var typeName = useResourceTypeName(resource, type);
865
+ var onSuccess = useCallback(function () {
866
+ var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
867
+ _ref3$id = _ref3.id,
868
+ id = _ref3$id === void 0 ? null : _ref3$id;
869
+ return navigate("".concat(resourceRoute('edit', {
870
+ id: id
871
+ }), "?duplicated=true"));
872
+ }, [navigate, resourceRoute]);
873
+ return /*#__PURE__*/React.createElement(ResourceProvider, {
874
+ resource: resource
875
+ }, /*#__PURE__*/React.createElement(MainLayout, {
876
+ loading: loading
877
+ }, item !== null ? /*#__PURE__*/React.createElement(ResourceFormWrapper, {
878
+ resource: resource,
879
+ item: item,
880
+ onSuccess: onSuccess,
881
+ isDuplicate: true,
882
+ withContainer: true,
883
+ header: /*#__PURE__*/React.createElement(PageHeader, {
884
+ title: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormattedMessage, {
885
+ values: resourceValues,
886
+ id: "G7M4nI",
887
+ defaultMessage: [{
888
+ "type": 0,
889
+ "value": "Duplicate "
890
+ }, {
891
+ "type": 1,
892
+ "value": "a_singular"
893
+ }]
894
+ }), typeName !== null ? /*#__PURE__*/React.createElement("span", {
895
+ className: "text-body-secondary"
896
+ }, ' ', "(", typeName, ")") : null),
897
+ small: true
898
+ })
899
+ }) : null, item === null && loading && !error ? /*#__PURE__*/React.createElement(Loading, {
900
+ className: "w-10 m-auto",
901
+ withDelay: true
902
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
903
+ id: "TV3jir",
904
+ defaultMessage: [{
905
+ "type": 0,
906
+ "value": "Loading"
907
+ }]
908
+ })) : null));
909
+ };
910
+ ResourceDuplicatePage.propTypes = propTypes$8;
911
+ ResourceDuplicatePage.defaultProps = defaultProps$8;
912
+
913
+ /* eslint-disable react/jsx-props-no-spreading */
914
+ var propTypes$7 = {};
915
+ var defaultProps$7 = {};
916
+ var HomePage = function HomePage() {
917
+ var route = useUrlGenerator();
918
+ var resources = usePanneauResources();
919
+ var visibleResources = resources.filter(function (_ref) {
920
+ var _ref$settings = _ref.settings,
921
+ _ref$settings2 = _ref$settings === void 0 ? {} : _ref$settings,
922
+ _ref$settings2$hideIn = _ref$settings2.hideInNavbar,
923
+ hideInNavbar = _ref$settings2$hideIn === void 0 ? false : _ref$settings2$hideIn;
924
+ return !hideInNavbar;
925
+ });
926
+ return /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement("div", {
927
+ className: "container-sm py-4"
928
+ }, visibleResources.map(function (resource) {
929
+ var _ref2 = resource || {},
930
+ resourceId = _ref2.id;
931
+ var resourceValues = useResourceValues(resource);
932
+ return /*#__PURE__*/React.createElement(Link, {
933
+ className: "d-block my-2",
934
+ key: "resource-link-".concat(resourceId),
935
+ href: route('resources.index', {
936
+ resource: resourceId
937
+ })
938
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
939
+ values: resourceValues,
940
+ id: "FntHPK",
941
+ defaultMessage: [{
942
+ "type": 0,
943
+ "value": "View "
944
+ }, {
945
+ "type": 1,
946
+ "value": "the_plural"
947
+ }]
948
+ }));
949
+ })));
950
+ };
951
+ HomePage.propTypes = propTypes$7;
952
+ HomePage.defaultProps = defaultProps$7;
953
+
954
+ var propTypes$6 = {};
955
+ var defaultProps$6 = {};
956
+ var AccountPage = function AccountPage() {
957
+ return /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement("div", {
958
+ className: "container-sm py-4"
959
+ }, "Account page"));
960
+ };
961
+ AccountPage.propTypes = propTypes$6;
962
+ AccountPage.defaultProps = defaultProps$6;
963
+
964
+ /* eslint-disable react/jsx-props-no-spreading */
965
+ var propTypes$5 = {
966
+ className: PropTypes.string,
967
+ onSuccess: PropTypes.func
968
+ };
969
+ var defaultProps$5 = {
970
+ className: null,
971
+ onSuccess: null
972
+ };
973
+ var LoginForm = function LoginForm(_ref) {
974
+ var className = _ref.className,
975
+ onSuccess = _ref.onSuccess;
976
+ var url = useUrlGenerator();
977
+ var _useAuth = useAuth(),
978
+ login = _useAuth.login;
979
+ var postForm = useCallback(function (action, _ref2) {
980
+ var email = _ref2.email,
981
+ password = _ref2.password;
982
+ return login(email, password);
983
+ }, [login]);
984
+ var FormComponents = useFormsComponents();
985
+ var FormComponent = getComponentFromName('login', FormComponents);
986
+ return FormComponent !== null ? /*#__PURE__*/React.createElement(FormComponent, {
987
+ action: url('auth.login'),
988
+ postForm: postForm,
989
+ onComplete: onSuccess,
990
+ className: className,
991
+ submitButtonLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
992
+ id: "g6qbbX",
993
+ defaultMessage: [{
994
+ "type": 0,
995
+ "value": "Log in"
996
+ }]
997
+ })
998
+ }) : null;
999
+ };
1000
+ LoginForm.propTypes = propTypes$5;
1001
+ LoginForm.defaultProps = defaultProps$5;
1002
+
1003
+ var styles = {"container":"container"};
1004
+
1005
+ var propTypes$4 = {
1006
+ children: PropTypes.node.isRequired,
1007
+ fullscreen: PropTypes.bool
1008
+ };
1009
+ var defaultProps$4 = {
1010
+ fullscreen: false
1011
+ };
1012
+ var GuestLayout = function GuestLayout(_ref) {
1013
+ var fullscreen = _ref.fullscreen,
1014
+ children = _ref.children;
1015
+ var _usePanneauColorSchem = usePanneauColorScheme(),
1016
+ _usePanneauColorSchem2 = _usePanneauColorSchem.theme,
1017
+ theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2,
1018
+ _usePanneauColorSchem3 = _usePanneauColorSchem.background,
1019
+ background = _usePanneauColorSchem3 === void 0 ? null : _usePanneauColorSchem3,
1020
+ _usePanneauColorSchem4 = _usePanneauColorSchem.text,
1021
+ text = _usePanneauColorSchem4 === void 0 ? null : _usePanneauColorSchem4;
1022
+ return /*#__PURE__*/React.createElement("div", {
1023
+ className: classNames([styles.container, {
1024
+ 'd-flex flex-column min-vh-100': fullscreen
1025
+ }]),
1026
+ "data-bs-theme": theme !== null ? theme : null
1027
+ }, /*#__PURE__*/React.createElement(MainNavbar, {
1028
+ className: classNames(['sticky-top', 'px-3'])
1029
+ }), /*#__PURE__*/React.createElement("div", {
1030
+ className: classNames(_defineProperty(_defineProperty({
1031
+ 'd-flex flex-column flex-grow-1': fullscreen
1032
+ }, "bg-".concat(background), background !== null), "text-".concat(text), text !== null))
1033
+ }, /*#__PURE__*/React.createElement("div", {
1034
+ className: classNames({
1035
+ 'w-100 my-auto': fullscreen
1036
+ })
1037
+ }, children)));
1038
+ };
1039
+ GuestLayout.propTypes = propTypes$4;
1040
+ GuestLayout.defaultProps = defaultProps$4;
1041
+
1042
+ /* eslint-disable react/jsx-props-no-spreading */
1043
+ var propTypes$3 = {};
1044
+ var defaultProps$3 = {};
1045
+ var LoginPage = function LoginPage() {
1046
+ var route = useUrlGenerator();
1047
+ // Sadly necessary to update cookies and routes correctly from the backend,
1048
+ // make it post directly instead of api call
1049
+ var onSuccess = useCallback(function () {
1050
+ window.location.href = route('home');
1051
+ }, [route]);
1052
+ return /*#__PURE__*/React.createElement(GuestLayout, {
1053
+ fullscreen: true
1054
+ }, /*#__PURE__*/React.createElement("div", {
1055
+ className: "container-sm py-4"
1056
+ }, /*#__PURE__*/React.createElement("div", {
1057
+ className: "row justify-content-center"
1058
+ }, /*#__PURE__*/React.createElement("div", {
1059
+ className: "col-12 col-sm-8 col-md-6"
1060
+ }, /*#__PURE__*/React.createElement("h1", {
1061
+ className: "mb-4"
1062
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
1063
+ id: "AeOZq+",
1064
+ defaultMessage: [{
1065
+ "type": 0,
1066
+ "value": "Login"
1067
+ }]
1068
+ })), /*#__PURE__*/React.createElement(LoginForm, {
1069
+ onSuccess: onSuccess
1070
+ })))));
1071
+ };
1072
+ LoginPage.propTypes = propTypes$3;
1073
+ LoginPage.defaultProps = defaultProps$3;
1074
+
1075
+ var messages = defineMessages({
1076
+ metaTitle401: {
1077
+ "id": "HOobY2",
1078
+ "defaultMessage": [{
1079
+ "type": 0,
1080
+ "value": "Error 401"
1081
+ }]
1082
+ },
1083
+ title401: {
1084
+ "id": "6nwWPR",
1085
+ "defaultMessage": [{
1086
+ "type": 0,
1087
+ "value": "Error 401"
1088
+ }]
1089
+ },
1090
+ description401: {
1091
+ "id": "82P2dS",
1092
+ "defaultMessage": [{
1093
+ "type": 0,
1094
+ "value": "You are not authorized to access this page."
1095
+ }]
1096
+ },
1097
+ metaTitle403: {
1098
+ "id": "+6cCPF",
1099
+ "defaultMessage": [{
1100
+ "type": 0,
1101
+ "value": "Error 403"
1102
+ }]
1103
+ },
1104
+ title403: {
1105
+ "id": "Pih2UO",
1106
+ "defaultMessage": [{
1107
+ "type": 0,
1108
+ "value": "Error 403"
1109
+ }]
1110
+ },
1111
+ description403: {
1112
+ "id": "8HFiMs",
1113
+ "defaultMessage": [{
1114
+ "type": 0,
1115
+ "value": "Access to this page is forbidden"
1116
+ }]
1117
+ },
1118
+ metaTitle404: {
1119
+ "id": "US/AMe",
1120
+ "defaultMessage": [{
1121
+ "type": 0,
1122
+ "value": "Error 404"
1123
+ }]
1124
+ },
1125
+ title404: {
1126
+ "id": "6Ie+vL",
1127
+ "defaultMessage": [{
1128
+ "type": 0,
1129
+ "value": "Error 404"
1130
+ }]
1131
+ },
1132
+ description404: {
1133
+ "id": "wKPI1y",
1134
+ "defaultMessage": [{
1135
+ "type": 0,
1136
+ "value": "This page doesn’t exist"
1137
+ }]
1138
+ },
1139
+ metaTitle500: {
1140
+ "id": "ejwBSw",
1141
+ "defaultMessage": [{
1142
+ "type": 0,
1143
+ "value": "Error 500"
1144
+ }]
1145
+ },
1146
+ title500: {
1147
+ "id": "owrRHV",
1148
+ "defaultMessage": [{
1149
+ "type": 0,
1150
+ "value": "Error 500"
1151
+ }]
1152
+ },
1153
+ description500: {
1154
+ "id": "yALN2p",
1155
+ "defaultMessage": [{
1156
+ "type": 0,
1157
+ "value": "There was an error"
1158
+ }]
1159
+ },
1160
+ gotoHome: {
1161
+ "id": "hezcGl",
1162
+ "defaultMessage": [{
1163
+ "type": 0,
1164
+ "value": "Go to home page"
1165
+ }]
1166
+ }
1167
+ });
1168
+ var propTypes$2 = {
1169
+ statusCode: PropTypes$1.statusCode
1170
+ };
1171
+ var defaultProps$2 = {
1172
+ statusCode: null
1173
+ };
1174
+ var ErrorPage = function ErrorPage(_ref) {
1175
+ var statusCode = _ref.statusCode;
1176
+ return /*#__PURE__*/React.createElement(GuestLayout, {
1177
+ fullscreen: true
1178
+ }, /*#__PURE__*/React.createElement("div", {
1179
+ className: "container-sm py-4"
1180
+ }, /*#__PURE__*/React.createElement("div", {
1181
+ className: "row justify-content-center"
1182
+ }, /*#__PURE__*/React.createElement("div", {
1183
+ className: "col-12 col-sm-8 col-md-6"
1184
+ }, /*#__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)]))))));
1185
+ };
1186
+ ErrorPage.propTypes = propTypes$2;
1187
+ ErrorPage.defaultProps = defaultProps$2;
1188
+
1189
+ var _excluded$1 = ["path", "component"];
1190
+ var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1191
+ var route = _ref.route,
1192
+ componentsManager = _ref.componentsManager,
1193
+ _ref$pages = _ref.pages,
1194
+ pages = _ref$pages === void 0 ? {} : _ref$pages;
1195
+ var resourceId = resource.id,
1196
+ _resource$pages = resource.pages,
1197
+ resourcePages = _resource$pages === void 0 ? {} : _resource$pages,
1198
+ _resource$extraRoutes = resource.extraRoutes,
1199
+ extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes;
1200
+
1201
+ // Load custom pages from resource
1202
+ var _ref2 = pages || {},
1203
+ _ref2$index = _ref2.index,
1204
+ indexPage = _ref2$index === void 0 ? null : _ref2$index,
1205
+ _ref2$show = _ref2.show,
1206
+ showPage = _ref2$show === void 0 ? null : _ref2$show,
1207
+ _ref2$create = _ref2.create,
1208
+ createPage = _ref2$create === void 0 ? null : _ref2$create,
1209
+ _ref2$edit = _ref2.edit,
1210
+ editPage = _ref2$edit === void 0 ? null : _ref2$edit,
1211
+ _ref2$delete = _ref2["delete"],
1212
+ deletePage = _ref2$delete === void 0 ? null : _ref2$delete,
1213
+ _ref2$duplicate = _ref2.duplicate,
1214
+ duplicatePage = _ref2$duplicate === void 0 ? null : _ref2$duplicate;
1215
+ var _ref3 = resourcePages || {},
1216
+ _ref3$index = _ref3.index,
1217
+ resourceIndexPage = _ref3$index === void 0 ? null : _ref3$index,
1218
+ _ref3$show = _ref3.show,
1219
+ resourceShowPage = _ref3$show === void 0 ? null : _ref3$show,
1220
+ _ref3$create = _ref3.create,
1221
+ resourceCreatePage = _ref3$create === void 0 ? null : _ref3$create,
1222
+ _ref3$edit = _ref3.edit,
1223
+ resourceEditPage = _ref3$edit === void 0 ? null : _ref3$edit,
1224
+ _ref3$delete = _ref3["delete"],
1225
+ resourceDeletePage = _ref3$delete === void 0 ? null : _ref3$delete,
1226
+ _ref3$duplicate = _ref3.duplicate,
1227
+ resourceDuplicatePage = _ref3$duplicate === void 0 ? null : _ref3$duplicate;
1228
+ 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;
1229
+ 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;
1230
+ 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;
1231
+ 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;
1232
+ 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;
1233
+ var ResourceDuplicateComponent = componentsManager.getComponent(resourceDuplicatePage === null || resourceDuplicatePage === void 0 ? void 0 : resourceDuplicatePage.component) || componentsManager.getComponent(duplicatePage === null || duplicatePage === void 0 ? void 0 : duplicatePage.component) || ResourceDuplicatePage;
1234
+ return [/*#__PURE__*/React.createElement(Route, {
1235
+ key: "".concat(resourceId, "-create"),
1236
+ path: route('resources.create', {
1237
+ resource: resourceId
1238
+ }),
1239
+ exact: true
1240
+ }, function () {
1241
+ return /*#__PURE__*/React.createElement(ResourceCreateComponent, {
1242
+ resource: resource
1243
+ });
1244
+ }), /*#__PURE__*/React.createElement(Route, {
1245
+ key: "".concat(resourceId, "-show"),
1246
+ path: route('resources.show', {
1247
+ resource: resourceId,
1248
+ id: ':id'
1249
+ })
1250
+ }, function (_ref4) {
1251
+ var _ref4$id = _ref4.id,
1252
+ id = _ref4$id === void 0 ? null : _ref4$id;
1253
+ return /*#__PURE__*/React.createElement(ResourceShowComponent, {
1254
+ itemId: id,
1255
+ resource: resource
1256
+ });
1257
+ }), /*#__PURE__*/React.createElement(Route, {
1258
+ key: "".concat(resourceId, "-edit"),
1259
+ path: route('resources.edit', {
1260
+ resource: resourceId,
1261
+ id: ':id'
1262
+ })
1263
+ }, function (_ref5) {
1264
+ var _ref5$id = _ref5.id,
1265
+ id = _ref5$id === void 0 ? null : _ref5$id;
1266
+ return /*#__PURE__*/React.createElement(ResourceEditComponent, {
1267
+ itemId: id,
1268
+ resource: resource
1269
+ });
1270
+ }), /*#__PURE__*/React.createElement(Route, {
1271
+ key: "".concat(resourceId, "-delete"),
1272
+ path: route('resources.delete', {
1273
+ resource: resourceId,
1274
+ id: ':id'
1275
+ })
1276
+ }, function (_ref6) {
1277
+ var _ref6$id = _ref6.id,
1278
+ id = _ref6$id === void 0 ? null : _ref6$id;
1279
+ return /*#__PURE__*/React.createElement(ResourceDeleteComponent, {
1280
+ itemId: id,
1281
+ resource: resource
1282
+ });
1283
+ }), /*#__PURE__*/React.createElement(Route, {
1284
+ key: "".concat(resourceId, "-duplicate"),
1285
+ path: route('resources.duplicate', {
1286
+ resource: resourceId,
1287
+ id: ':id'
1288
+ })
1289
+ }, function (_ref7) {
1290
+ var _ref7$id = _ref7.id,
1291
+ id = _ref7$id === void 0 ? null : _ref7$id;
1292
+ return /*#__PURE__*/React.createElement(ResourceDuplicateComponent, {
1293
+ itemId: id,
1294
+ resource: resource
1295
+ });
1296
+ })].concat(_toConsumableArray(extraRoutes.map(function (_ref8) {
1297
+ var path = _ref8.path,
1298
+ component = _ref8.component,
1299
+ pageProps = _objectWithoutProperties(_ref8, _excluded$1);
1300
+ var RouteComponent = componentsManager.getComponent(component);
1301
+ return RouteComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1302
+ key: "route-".concat(path),
1303
+ path: path
1304
+ }, function () {
1305
+ return /*#__PURE__*/React.createElement(RouteComponent, Object.assign({
1306
+ resource: resource
1307
+ }, pageProps));
1308
+ }) : null;
1309
+ })), [/*#__PURE__*/React.createElement(Route, {
1310
+ key: "".concat(resourceId, "-index"),
1311
+ path: route('resources.index', {
1312
+ resource: resourceId
1313
+ })
1314
+ }, function () {
1315
+ return /*#__PURE__*/React.createElement(ResourceIndexComponent, {
1316
+ resource: resource
1317
+ });
1318
+ })]);
1319
+ };
1320
+
1321
+ var _excluded = ["home", "login", "account", "error", "index", "show", "create", "edit", "delete", "duplicate"],
1322
+ _excluded2 = ["path", "route", "component"];
1323
+ var propTypes$1 = {
1324
+ statusCode: PropTypes$1.statusCode
1325
+ };
1326
+ var defaultProps$1 = {
1327
+ statusCode: null
1328
+ };
1329
+ var PanneauRoutes = function PanneauRoutes(_ref) {
1330
+ var initialStatusCode = _ref.statusCode;
1331
+ var routes = useRoutes();
1332
+ var _useLocation = useLocation(),
1333
+ _useLocation2 = _slicedToArray(_useLocation, 1),
1334
+ pathname = _useLocation2[0];
1335
+ var _useState = useState({
1336
+ statusCode: initialStatusCode,
1337
+ pathname: pathname
1338
+ }),
1339
+ _useState2 = _slicedToArray(_useState, 2),
1340
+ _useState2$ = _useState2[0],
1341
+ statusCode = _useState2$.statusCode,
1342
+ lastPathname = _useState2$.pathname,
1343
+ setInitialRequest = _useState2[1];
1344
+ var user = useUser();
1345
+ var route = useUrlGenerator();
1346
+ var resources = usePanneauResources();
1347
+ var componentsManager = usePagesComponentsManager();
1348
+ useEffect(function () {
1349
+ if (pathname !== lastPathname) {
1350
+ setInitialRequest({
1351
+ pathname: pathname,
1352
+ statusCode: null
1353
+ });
1354
+ }
1355
+ }, [pathname, lastPathname]);
1356
+
1357
+ // Custom Pages
1358
+ var _usePanneau = usePanneau(),
1359
+ _usePanneau$pages = _usePanneau.pages,
1360
+ pages = _usePanneau$pages === void 0 ? null : _usePanneau$pages,
1361
+ routesDefinition = _usePanneau.routes;
1362
+ var _ref2 = pages || {},
1363
+ _ref2$home = _ref2.home,
1364
+ homePage = _ref2$home === void 0 ? null : _ref2$home,
1365
+ _ref2$login = _ref2.login,
1366
+ loginPage = _ref2$login === void 0 ? null : _ref2$login,
1367
+ _ref2$account = _ref2.account,
1368
+ accountPage = _ref2$account === void 0 ? null : _ref2$account,
1369
+ _ref2$error = _ref2.error,
1370
+ errorPage = _ref2$error === void 0 ? null : _ref2$error;
1371
+ _ref2.index;
1372
+ _ref2.show;
1373
+ _ref2.create;
1374
+ _ref2.edit;
1375
+ _ref2["delete"];
1376
+ _ref2.duplicate;
1377
+ var otherPages = _objectWithoutProperties(_ref2, _excluded);
1378
+ var customRoutes = useMemo(function () {
1379
+ return [].concat(_toConsumableArray(Object.keys(routesDefinition).filter(function (key) {
1380
+ return key.match(/^(resources\.|auth\.)/) === null && key !== 'home' && key !== 'account';
1381
+ }).filter(function (key) {
1382
+ var routeDef = routesDefinition[key];
1383
+ return isObject(routeDef) && typeof routeDef.component !== 'undefined' && typeof routeDef.path !== 'undefined';
1384
+ }).map(function (key) {
1385
+ return routesDefinition[key];
1386
+ })), _toConsumableArray(Object.keys(otherPages).map(function (key) {
1387
+ return otherPages[key];
1388
+ }).filter(function (_ref3) {
1389
+ var _ref3$path = _ref3.path,
1390
+ path = _ref3$path === void 0 ? null : _ref3$path,
1391
+ _ref3$route = _ref3.route,
1392
+ pageRoute = _ref3$route === void 0 ? null : _ref3$route;
1393
+ return path !== null || pageRoute !== null;
1394
+ })));
1395
+ }, [routesDefinition, otherPages]);
1396
+ var HomeComponent = componentsManager.getComponent(homePage === null || homePage === void 0 ? void 0 : homePage.component) || HomePage;
1397
+ var LoginComponent = componentsManager.getComponent(loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || LoginPage;
1398
+ var AccountComponent = componentsManager.getComponent(accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || AccountPage;
1399
+ var ErrorComponent = componentsManager.getComponent(errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || ErrorPage;
1400
+
1401
+ // If there is an error status code
1402
+ if (statusCode !== null) {
1403
+ return /*#__PURE__*/React.createElement(ErrorComponent, Object.assign({
1404
+ statusCode: statusCode
1405
+ }, errorPage));
1406
+ }
1407
+
1408
+ // If user is unauthenticated
1409
+ if (user === null) {
1410
+ return /*#__PURE__*/React.createElement(Switch, null, /*#__PURE__*/React.createElement(Route, {
1411
+ path: routes['auth.login']
1412
+ }, /*#__PURE__*/React.createElement(LoginComponent, loginPage)), /*#__PURE__*/React.createElement(Route, null, /*#__PURE__*/React.createElement(Redirect, {
1413
+ to: "".concat(route('auth.login'), "?next=").concat(encodeURIComponent(pathname))
1414
+ })));
1415
+ }
1416
+
1417
+ // Normal routes
1418
+ return /*#__PURE__*/React.createElement(Switch, null, user !== null ? /*#__PURE__*/React.createElement(Route, {
1419
+ path: routes['auth.login']
1420
+ }, /*#__PURE__*/React.createElement(Redirect, {
1421
+ to: routes.home,
1422
+ replace: true
1423
+ })) : null, resources.map(function (resource) {
1424
+ var _ref4 = resource || {},
1425
+ resourceId = _ref4.id;
1426
+ return /*#__PURE__*/React.createElement(Fragment, {
1427
+ key: "resource-".concat(resourceId)
1428
+ }, createResourceRoutes(resource, {
1429
+ route: route,
1430
+ componentsManager: componentsManager,
1431
+ pages: pages
1432
+ }));
1433
+ }), /*#__PURE__*/React.createElement(Route, {
1434
+ path: routes.account
1435
+ }, /*#__PURE__*/React.createElement(AccountComponent, accountPage)), customRoutes.map(function (_ref5) {
1436
+ var _ref5$path = _ref5.path,
1437
+ path = _ref5$path === void 0 ? null : _ref5$path,
1438
+ _ref5$route = _ref5.route,
1439
+ pageRoute = _ref5$route === void 0 ? null : _ref5$route,
1440
+ component = _ref5.component,
1441
+ props = _objectWithoutProperties(_ref5, _excluded2);
1442
+ var PageComponent = componentsManager.getComponent(component);
1443
+ var finalPath = path || routes[pageRoute];
1444
+ return PageComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1445
+ key: "custom-route-".concat(finalPath),
1446
+ path: path || routes[pageRoute]
1447
+ }, /*#__PURE__*/React.createElement(PageComponent, props)) : null;
1448
+ }), /*#__PURE__*/React.createElement(Route, {
1449
+ path: routes.home
1450
+ }, /*#__PURE__*/React.createElement(HomeComponent, homePage)), /*#__PURE__*/React.createElement(Route, null, /*#__PURE__*/React.createElement(ErrorComponent, null)));
1451
+ };
1452
+ PanneauRoutes.propTypes = propTypes$1;
1453
+ PanneauRoutes.defaultProps = defaultProps$1;
1454
+
1455
+ var pathToRegexpParser = createPathToRegexpParser();
1456
+ var propTypes = {
1457
+ definition: PropTypes$1.panneauDefinition.isRequired,
1458
+ components: PropTypes.oneOfType([PropTypes.objectOf(PropTypes.elementType), PropTypes.objectOf(PropTypes.objectOf(PropTypes.elementType))]),
1459
+ user: PropTypes$1.user,
1460
+ memoryRouter: PropTypes.bool,
1461
+ baseUrl: PropTypes.string,
1462
+ uppy: PropTypes$1.uppy,
1463
+ statusCode: PropTypes$1.statusCode
1464
+ };
1465
+ var defaultProps = {
1466
+ components: null,
1467
+ user: null,
1468
+ memoryRouter: false,
1469
+ baseUrl: null,
1470
+ uppy: null,
1471
+ statusCode: null
1472
+ };
1473
+ var Container = function Container(_ref) {
1474
+ var definition = _ref.definition,
1475
+ components = _ref.components,
1476
+ user = _ref.user,
1477
+ memoryRouter = _ref.memoryRouter,
1478
+ baseUrl = _ref.baseUrl,
1479
+ uppy = _ref.uppy,
1480
+ statusCode = _ref.statusCode;
1481
+ var _ref2 = definition || {},
1482
+ _ref2$intl = _ref2.intl,
1483
+ _ref2$intl2 = _ref2$intl === void 0 ? {} : _ref2$intl,
1484
+ _ref2$intl2$locale = _ref2$intl2.locale,
1485
+ locale = _ref2$intl2$locale === void 0 ? 'en' : _ref2$intl2$locale,
1486
+ _ref2$intl2$locales = _ref2$intl2.locales,
1487
+ locales = _ref2$intl2$locales === void 0 ? [] : _ref2$intl2$locales,
1488
+ _ref2$routes = _ref2.routes,
1489
+ routes = _ref2$routes === void 0 ? {} : _ref2$routes,
1490
+ _ref2$settings = _ref2.settings,
1491
+ _ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
1492
+ _ref2$settings2$memor = _ref2$settings2.memoryRouter,
1493
+ usesMemoryRouter = _ref2$settings2$memor === void 0 ? false : _ref2$settings2$memor;
1494
+ var isMemoryRouter = memoryRouter || usesMemoryRouter || false;
1495
+ var extraMessages = useMemo(function () {
1496
+ var _definition$intl = definition.intl,
1497
+ _definition$intl2 = _definition$intl === void 0 ? {} : _definition$intl,
1498
+ _definition$intl2$mes = _definition$intl2.messages,
1499
+ messages = _definition$intl2$mes === void 0 ? null : _definition$intl2$mes,
1500
+ _definition$resources = definition.resources,
1501
+ resources = _definition$resources === void 0 ? [] : _definition$resources;
1502
+ return _objectSpread(_objectSpread({}, messages), resources.reduce(function (allMessages, _ref3) {
1503
+ var id = _ref3.id,
1504
+ _ref3$intl = _ref3.intl,
1505
+ _ref3$intl2 = _ref3$intl === void 0 ? {} : _ref3$intl,
1506
+ _ref3$intl2$messages = _ref3$intl2.messages,
1507
+ resourceMessages = _ref3$intl2$messages === void 0 ? {} : _ref3$intl2$messages;
1508
+ return _objectSpread(_objectSpread({}, allMessages), Object.keys(resourceMessages).reduce(function (allResourceMessages, key) {
1509
+ return _objectSpread(_objectSpread({}, allResourceMessages), {}, _defineProperty({}, "resources.".concat(id, ".").concat(key), resourceMessages[key]));
1510
+ }, {}));
1511
+ }, {}));
1512
+ }, [definition]);
1513
+ var onUnauthorized = useCallback(function () {
1514
+ window.location.href = baseUrl;
1515
+ }, [baseUrl]);
1516
+ var onLogout = useCallback(function () {
1517
+ window.location.reload();
1518
+ }, [baseUrl]);
1519
+ var _useMemoryRouter = useMemoryRouter(),
1520
+ memoryLocationHook = _useMemoryRouter.hook,
1521
+ memorySearchHook = _useMemoryRouter.searchHook;
1522
+ return /*#__PURE__*/React.createElement(Router, {
1523
+ hook: isMemoryRouter ? memoryLocationHook : null,
1524
+ searchHook: isMemoryRouter ? memorySearchHook : null,
1525
+ parser: pathToRegexpParser
1526
+ }, /*#__PURE__*/React.createElement(IntlProvider, {
1527
+ locale: locale,
1528
+ locales: locales,
1529
+ extraMessages: extraMessages
1530
+ }, /*#__PURE__*/React.createElement(PanneauProvider, {
1531
+ definition: definition
1532
+ }, /*#__PURE__*/React.createElement(UppyProvider, uppy, /*#__PURE__*/React.createElement(RoutesProvider, {
1533
+ routes: routes
1534
+ }, /*#__PURE__*/React.createElement(FieldsProvider, null, /*#__PURE__*/React.createElement(FormsProvider, null, /*#__PURE__*/React.createElement(ListsProvider, null, /*#__PURE__*/React.createElement(DisplaysProvider, null, /*#__PURE__*/React.createElement(FiltersProvider, null, /*#__PURE__*/React.createElement(ActionsProvider, null, /*#__PURE__*/React.createElement(ModalProvider, null, /*#__PURE__*/React.createElement(ModalsProvider, null, /*#__PURE__*/React.createElement(ApiProvider, {
1535
+ baseUrl: baseUrl,
1536
+ onUnauthorized: onUnauthorized
1537
+ }, /*#__PURE__*/React.createElement(QueryProvider, null, /*#__PURE__*/React.createElement(AuthProvider, {
1538
+ user: user,
1539
+ onLogout: onLogout
1540
+ }, /*#__PURE__*/React.createElement(ComponentsProvider, {
1541
+ components: components
1542
+ }, /*#__PURE__*/React.createElement(PanneauRoutes, {
1543
+ statusCode: statusCode
1544
+ }))))))))))))))))));
1545
+ };
1546
+ Container.propTypes = propTypes;
1547
+ Container.defaultProps = defaultProps;
1548
+
1549
+ /* eslint-disable react/jsx-props-no-spreading */
1550
+ // import PropTypes from 'prop-types';
1551
+
1552
+ // Kept for backward compatibility with exports
1553
+ var ResourceFilters = function ResourceFilters(props) {
1554
+ return /*#__PURE__*/React.createElement(Filters, props);
1555
+ };
1556
+
1557
+ export { GuestLayout, MainLayout, PageHeader, ResourceFilters, ResourceFormWrapper as ResourceForm, ResourceItemsList, Container as default };